Table of Contents |
---|
Pairwise:
Dependencies: OOF, Multicloud, SO, Policy, AAI
...
Components
...
Status
...
AAI – Multicloud
...
Done - Working
...
OOF – AAI
Done - Working
...
OOF – SO
...
Testing In Progress – SO - OOF testing started in SB01
...
OOF – Policy
...
Done - Working per Ankit
We are making good progress on pairwise testing. HPA is unique in that it relies on a multitude of projects and OOF is new and untested. Most of HPA work is gated by OOF, but we are doing our best to help facilitate OOF testing.
Updates:
Thursday 5/17/18
OOF - Policy Done | OOF - AAI Done | OOF - SO, testing started in SB01
Wednesday 5/16/18
Example policies and modified CSAR's have been created and attached to this page. | OOF - Policy Debug Still in Progress | OOF - AAI Waiting for multicloud fix | OOF - SO, testing started in SB01
Tuesday 5/15/18
OOF -AAI, AAI connectivity resolved | OOF - Policy, Still testing/Troubleshooting with Policy | OOF - SO, exact regression CSAR's acquired, modification started | AAI – Multicloud, A couple issues with data model used have been fixed that blocked AAI
Monday 5/14/18
OOF - Policy, Bugs Found in Final Tests, Policy Team working on fixes per Ankit | OOF - AAI Needed further data populated by Multicloud in AAI - In Progress | OOF - SO, Testing Setup but blocked by other parts | AAI - Multicloud Working
Friday 5/11/18
OOF -AAI, Bugs found, Fixed and Retested | OOF - SO, Testing Setup but blocked by other parts | OOF - Policy, Testing In Progress - Will be completed Today | AAI - Multicloud, Working
Integration:
vCPE Regression (ensure HPA changes do not break vCPE)
vCPE + HPA
- Gated by vCPE Regression, If vCPE doesn’t work in regression it won’t work with HPA
- The work to test HPA over vCPE regression is only + 10%
vCPE + HPA Integration Test Plan
...
Create HPA policies – See wiki page /wiki/spaces/DW/pages/16279393
Example policies:
...
language | bash |
---|---|
title | HPA Policy Example 1 |
...
Table of Contents |
---|
TESTING PROGRESS: 95%
Pairwise:
Dependencies: OOF, Multicloud, SO, Policy, AAI
Components | Status |
---|---|
AAI – Multicloud | Done - Working |
OOF – AAI | Done - Working |
OOF – SO | Done - Working |
OOF – Policy | Done - Working per Ankit |
HPA is unique in that it relies on a multitude of projects and OOF is new and untested. Most of HPA work is gated by OOF, but we are doing our best to help facilitate OOF testing.
Updates:
Thursday 5/31/18
We were able to send a homing request to OOF and receive HPA flavor labels. Solving the last issue from OOF. See Jira Legacy server System Jira serverId 4733707d-2057-3a0f-ae5e-4fd8aff50176 key SO-661
Tuesday 5/29/18
Fixed
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Wednesday 5/23/18
OOF - SO, Fixing some API conformance issues, for example OOF does not support License Homing for Beijing, removed from the homing call https://gerrit.onap.org/r/#/c/48825/, retesting and working through
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Tuesday 5/22/18
OOF - SO, We have had multiple working meetings since last week and have made a lot of progress. We got SB01 configured and have been running tests, filing bugs and fixing bugs and retesting.
SO Issues:
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
OOF Issues:
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Thursday 5/17/18
OOF - Policy Done | OOF - AAI Done | OOF - SO, testing started in SB01
Wednesday 5/16/18
Example policies and modified CSAR's have been created and attached to this page. | OOF - Policy Debug Still in Progress | OOF - AAI Waiting for multicloud fix | OOF - SO, testing started in SB01
Tuesday 5/15/18
OOF -AAI, AAI connectivity resolved | OOF - Policy, Still testing/Troubleshooting with Policy | OOF - SO, exact regression CSAR's acquired, modification started | AAI – Multicloud, A couple issues with data model used have been fixed that blocked AAI
Monday 5/14/18
OOF - Policy, Bugs Found in Final Tests, Policy Team working on fixes per Ankit | OOF - AAI Needed further data populated by Multicloud in AAI - In Progress | OOF - SO, Testing Setup but blocked by other parts | AAI - Multicloud Working
Friday 5/11/18
OOF -AAI, Bugs found, Fixed and Retested | OOF - SO, Testing Setup but blocked by other parts | OOF - Policy, Testing In Progress - Will be completed Today | AAI - Multicloud, Working
Integration:
vCPE Regression (ensure HPA changes do not break vCPE)
vCPE + HPA
- Gated by vCPE Regression, If vCPE doesn’t work in regression it won’t work with HPA
- The work to test HPA over vCPE regression is only + 10%
vCPE + HPA Integration Test Plan
- Setup vCPE the same as regression; up to Service Instantiation
- Before vCPE Service Instantiation
Create HPA policies – See wiki page /wiki/spaces/DW/pages/16279393
Example policies:Code Block language bash title HPA Policy Example 1 { "riskLevel":"1", "riskType":"SampleRiskType", "policyName":"PolicyHPA3", "service":"hpaPolicy", "guard":"False", "description":"Must have Huge pages support", "templateVersion":"OpenSource.version.1", "priority":"1", "version":"CSIT", "content":{ "identity":"hpaPolicy_set3", "policyScope":[ "INTERNATIONAL" ], "policyType":"hpaPolicy", "guardresources":"FalsevGMuxInfra", "description":"Must have Huge pages support",flavorFeatures":[ { "templateVersionflavorLabel":"OpenSourcevcpe.version.1vgmux", "priority":"1",flavorProperties":[ { "version":"CSIT", "contenthpa-feature-attributes":{[ "identity":"hpaPolicy_set3", "policyScope":[ { "INTERNATIONAL" ], "policyType":"hpaPolicy", "resourceshpa-attribute-key":"vGMuxInfranumVirtualCpu", "flavorFeatures":[ "hpa-attribute-value":"4", { "flavorLabeloperator":"vcpe.vgmux=", "flavorProperties":[ }, { { "hpa-featureattribute-attributeskey":["virtualMemSize", { "hpa-attribute-value":"8192", "hpa-attribute-key":"numVirtualCpu", "hpa-attribute-value"operator":"4=", "operatorunit":"=MB" }, { ], "hpa-attribute-keymandatory":"virtualMemSizeTrue", "hpa-attribute-valuefeature":"8192basicCapabilities", "operatorarchitecture":"=generic", "hpa-version":"v1" }, "unit":"MB" { } "hpa-feature-attributes":[ ], { "mandatory":"True", "hpa-attribute-featurekey":"basicCapabilitieslogicalCpuPinningPolicy", "architecture":"generic", "hpa-attribute-versionvalue":"v1dedicated", }, "operator":"=" { } "hpa-feature-attributes":[ ], { "mandatory":"True", "hpa-attribute-keyfeature":"logicalCpuPinningPolicycpuPinning", "architecture":"generic", "hpa-attribute-valueversion":"dedicatedv1", } "operator":"=" ] } ] } }
This example will change based on flavors in OpenStack/Multicloud in the lab.Create flavors in OpenStackCode Block language bash title HPA Policy Example 2 { "riskLevel":"1", }"riskType":"SampleRiskType", "policyName":"PolicyHPA3", "service":"hpaPolicy", "guard":"False", "description":"Must have Huge pages ]support", "templateVersion":"OpenSource.version.1", "priority":"1", "mandatoryversion":"TrueCSIT", "content":{ "identity":"hpaPolicy_set3", "hpa-feature":"cpuPinning","policyScope":[ "INTERNATIONAL" ], "architecture":"generic", "hpa-versionpolicyType":"v1hpaPolicy", "resources":"vGMuxInfra", "flavorFeatures":[ } { ] } "flavorLabel":"vcpe.vgmux", ] } }
Code Block language bash title HPA Policy Example 2 { "riskLevelflavorProperties":"1", "riskType":"SampleRiskType",[ "policyName":"PolicyHPA3", "service":"hpaPolicy", "guard":"False", "description":"Must have Huge pages support",{ "templateVersion":"OpenSource.version.1", "priority":"1", "version":"CSIT", "contenthpa-feature-attributes":{[ "identity":"hpaPolicy_set3", "policyScope":[ { "INTERNATIONAL" ], "policyType":"hpaPolicy", "resourceshpa-attribute-key":"vGMuxInfranumVirtualCpu", "flavorFeatures":[ "hpa-attribute-value":"4", { "flavorLabeloperator":"vcpe.vgmux>=", "flavorProperties":[ }, { { "hpa-featureattribute-attributeskey":[ "virtualMemSize", { "hpa-attribute-value":"8", "hpa-attribute-key":"numVirtualCpu", "hpa-attribute-value "operator":"4=", "operatorunit":">=MB" }, { ], "hpa-attribute-keymandatory":"virtualMemSizeTrue", "hpa-attribute-valuefeature":"8basicCapabilities", "operatorarchitecture":"=generic", "hpa-version":"v1" "unit":"MB"} ] } ], "mandatory":"True", "hpa-feature":"basicCapabilities", "architecture":"generic", "hpa-version":"v1" } ] } ] } }
- flavors which is used to discover HPA information should named with prefix of "onap." , otherwise there will no HPA information can be extracted by multicloud plugins for OpenStack the number of flavors to be created for ONAP is determined by number of the generic flavors multiplied by the combination of HPA specification.
- In this example, there are 2 generic flavors:
- medium: 4 vcpu, 4GB memory, 40GB storage
- large: 6 vcpu, 8GB memory, 80GB storage
- In this example, there are 2 set of HPA specification:
- set 1: hw:numa_nodes=2, hw:cpu_policy=dedicated, hw:mem_page_size=2M;
- set 2: hw:cpu_policy=dedicated, hw:mem_page_size=2M
Hence the flavors named with prefix of "onap." are: - onap.flavor2.medium
- medium with HPA set 1
- onap.flavor2.large
- large with HPA set 1
- onap.flavor3.medium
- medium with HPA set 2
onap.flavor3.largelarge with HPA set 2
- Use modified CSARs flavorLabel attributes to match the ones created in policy - See below 'HPA Updated CSAR's' section.
- Distribute CSARs to SO
- Send updated REST service instantiation request to SO that includes user param: Customer_Location
...
] } }
This example will change based on flavors in OpenStack/Multicloud in the lab.- Create flavors in OpenStack
- flavors which is used to discover HPA information should named with prefix of "onap." , otherwise there will no HPA information can be extracted by multicloud plugins for OpenStack
- the number of flavors to be created for ONAP is determined by number of the generic flavors multiplied by the combination of HPA specification.
- In this example, there are 2 generic flavors:
- medium: 4 vcpu, 4GB memory, 40GB storage
- large: 6 vcpu, 8GB memory, 80GB storage
- In this example, there are 2 set of HPA specification:
- set 1: hw:numa_nodes=2, hw:cpu_policy=dedicated, hw:mem_page_size=2M;
- set 2: hw:cpu_policy=dedicated, hw:mem_page_size=2M
- Hence the flavors named with prefix of "onap." are:
- onap.flavor2.medium
- medium with HPA set 1
- onap.flavor2.large
- large with HPA set 1
- onap.flavor3.medium
- medium with HPA set 2
- onap.flavor3.large
- large with HPA set 2
- large with HPA set 2
- onap.flavor2.medium
- In this example, there are 2 generic flavors:
- Use modified CSARs flavorLabel attributes to match the ones created in policy - See below 'HPA Updated CSAR's' section.
- Distribute CSARs to SO
- At vCPE Service Instantiation
- Send updated REST service instantiation request to SO that includes user param: Customer_Location
- Continue the same as vCPE Regression and confirm all is well
Updates:
Thursday 5/31/18
We were able to send a homing request to OOF and receive HPA flavor labels. SO then processes these correctly. However we need to make it through vCPE Use Case to the portion where we instantiat vGW to verfy. Made it through vCPE Use Case until "PostProcess SDNC Create" where I hit bug:
2018-06-01 00:32:35,497 | ERROR | tp1609525416-571 | GenericResourceApiProvider | 374 - org.onap.sdnc.northbound.generic-resource-api-provider - 1.3.3 - - | Caught exception executing service logic for tunnelxconn-topology-operation
org.onap.ccsdk.sli.core.sli.SvcLogicException: Invalid index values [0,]
Brian Freeman told me I could solve bug by pulling the latest containers and updating a few config to match SB07. Trying to pull the latest containers has been in progress for three hours. I will retest HPA when containers finish pulling.
Tuesday 5/29/18
Started integration testing by setting up vCPE use case in SB01. Will update wiki with instructions on the additional procedures.
Wednesday 5/16/18
Example policies and modified CSAR's have been created and attached to this page. On policy side more will need to be created for all vCPE CSARs.
HPA Updated CSAR's
The above CSAR's are copies of the ones Kang is using for vCPE Regression Integration with one minor change.
Each CSAR has heat Environment File update to vcpe_flavor_name as follows:
CSAR Name | vcpe_flavor_name |
---|---|
service-VcpesvcInfra0412a-csar | vcpe.infra |
service-VcpesvcRescust0412a-csar | vcpe.vgw |
service-VcpesvcVbng0412a-csar | vcpe.bng |
service-VcpesvcVbrg0412a-csar | vcpe.brg |
service-VcpesvcVgmux0412a-csar | vcpe.vgmux |
HPA Code uses the vcpe_flavor_name to match HPA flavors to the correct policy and service.
Postman Collection
Code Block | ||
---|---|---|
| ||
{ "variables": [], "info": { "name": "SO Pairwise", "_postman_id": "2cf34bf0-16d9-e9ad-0948-c0ded70fed44", "description": "", "schema": "https://schema.getpostman.com/json/collection/v2.0.0/collection.json" }, "item": [ { "name": "SO Create vCPE", "request": { "url": "http://{{SO Host}}:8080/ecomp/mso/infra/serviceInstances/v5", "method": "PUT", "header": [ { "key": "Content-Type", "value": "application/json", "description": "" }, { "key": "Authorization", "value": "Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==", "description": "" } ], "body": { "mode": "raw", "raw": "{\r\n \"requestDetails\": {\r\n \"cloudConfiguration\": {\r\n \"lcpCloudRegionId\": \"RegionOne\",\r\n \"tenantId\": \"1e097c6713e74fd7ac8e4295e605ee1e\"\r\n },\r\n \"modelInfo\": {\r\n \"modelInvariantId\": \"a3ebfaf2-3dea-43b0-bb8e-566f95735230\",\r\n \"modelName\": \"vcpesvc_rescust_0412a\",\r\n \"modelType\": \"service\",\r\n \"modelVersion\": \"1.0\",\r\n \"modelVersionId\": \"dc316752-561f-48a3-8354-d873c813735d\"\r\n },\r\n \"owningEntity\": {\r\n \"owningEntityId\": \"520cc603-a3c4-4ec2-9ef4-ca70facd79c0\",\r\n \"owningEntityName\": \"OE-Demonstration\"\r\n },\r\n \"project\": {\r\n \"projectName\": \"Project-Demonstration\"\r\n },\r\n \"requestInfo\": {\r\n \"instanceName\": \"vcpe_svc_vcpesvc_rescust_0412a_201805102300\",\r\n \"productFamilyId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\",\r\n \"requestorId\": \"vCPE-Robot\",\r\n \"source\": \"VID\",\r\n \"suppressRollback\": \"true\"\r\n },\r\n \"requestParameters\": {\r\n \"aLaCarte\": \"false\",\r\n \"subscriptionServiceType\": \"vCPE\",\r\n \"userParams\": [\r\n {\r\n \"name\": \"BRG_WAN_MAC_Address\",\r\n \"value\": \"fa:16:3e:c0:34:ef\"\r\n },\r\n {\r\n \"name\": \"Customer_Location\",\r\n \"value\": {\r\n \"customerLatitude\": \"32.897480\",\r\n \"customerLongitude\": \"-97.040443\",\r\n \"customerName\": \"some_company\"\r\n }\r\n }\r\n\r\n ]\r\n },\r\n \"subscriberInfo\": {\r\n \"globalSubscriberId\": \"SDN-ETHERNET-INTERNET\",\r\n \"subscriberName\": \"Kaneohe\"\r\n }\r\n }\r\n}" }, "description": "" }, "response": [] }, { "name": "Policy vCPE HPA1", "request": { "url": "http://{{Policy Host}}/pdp/api/createPolicy", "method": "PUT", "header": [ { "key": "Content-Type", "value": "application/json", "description": "" }, { "key": "Authorization", "value": "Basic dGVzdHBkcDphbHBoYTEyMw==", "description": "" }, { "key": "cache-control", "value": "no-cache", "description": "" }, { "key": "clientauth", "value": "cHl0aG9uOnRlc3Q=", "description": "" }, { "key": "content-type", "value": "application/json", "description": "" }, { "key": "environment", "value": "TEST", "description": "" } ], "body": { "mode": "raw", "raw": "{\r\n \"riskLevel\":\"1\",\r\n \"riskType\":\"SampleRiskType\",\r\n \"policyName\":\"PolicyHPA3\",\r\n \"service\":\"hpaPolicy\",\r\n \"guard\":\"False\",\r\n \"description\":\"Must have Huge pages support\",\r\n \"templateVersion\":\"OpenSource.version.1\",\r\n \"priority\":\"1\",\r\n \"version\":\"CSIT\",\r\n \"content\":{\r\n \"identity\":\"hpaPolicy_set3\",\r\n \"policyScope\":[\r\n \"INTERNATIONAL\"\r\n ],\r\n \"policyType\":\"hpaPolicy\",\r\n \"resources\":\"vGMuxInfra\",\r\n \"flavorFeatures\":[\r\n {\r\n \"flavorLabel\":\"vcpe.vgmux\",\r\n \"flavorProperties\":[\r\n {\r\n \"hpa-feature-attributes\":[\r\n {\r\n \"hpa-attribute-key\":\"numVirtualCpu\",\r\n \"hpa-attribute-value\":\"4\",\r\n \"operator\":\"=\"\r\n },\r\n {\r\n \"hpa-attribute-key\":\"virtualMemSize\",\r\n \"hpa-attribute-value\":\"8192\",\r\n \"operator\":\"=\",\r\n \"unit\":\"MB\"\r\n }\r\n ],\r\n \"mandatory\":\"True\",\r\n \"hpa-feature\":\"basicCapabilities\",\r\n \"architecture\":\"generic\",\r\n \"hpa-version\":\"v1\"\r\n },\r\n {\r\n \"hpa-feature-attributes\":[\r\n {\r\n \"hpa-attribute-key\":\"logicalCpuPinningPolicy\",\r\n \"hpa-attribute-value\":\"dedicated\",\r\n \"operator\":\"=\"\r\n }\r\n ],\r\n \"mandatory\":\"True\",\r\n \"hpa-feature\":\"cpuPinning\",\r\n \"architecture\":\"generic\",\r\n \"hpa-version\":\"v1\",\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n}" }, "description": "" }, "response": [] }, { "name": "Policy vCPE HPA2", "request": { "url": "http://{{Policy Host}}/pdp/api/createPolicy", "method": "PUT", "header": [ { "key": "Content-Type", "value": "application/json", "description": "" }, { "key": "Authorization", "value": "Basic dGVzdHBkcDphbHBoYTEyMw==", "description": "" }, { "key": "cache-control", "value": "no-cache", "description": "" }, { "key": "clientauth", "value": "cHl0aG9uOnRlc3Q=", "description": "" }, { "key": "content-type", "value": "application/json", "description": "" }, { "key": "environment", "value": "application/jsonTEST", "description": "" } ], "body": { "keymode": "environmentraw", "value": "TEST", "description": "" } ], "body": { "mode": "raw", "raw": "{"raw": "{\r\n \"riskLevel\":\"1\",\r\n \"riskType\":\"SampleRiskType\",\r\n \"policyName\":\"PolicyHPA3\",\r\n \"service\":\"hpaPolicy\",\r\n \"guard\":\"False\",\r\n \"description\":\"Must have Huge pages support\",\r\n \"riskLeveltemplateVersion\":\"OpenSource.version.1\",\r\n \"riskTypepriority\":\"SampleRiskType1\",\r\n \"version\":\"policyNameCSIT\":,\r\n \"PolicyHPA3content\",:{\r\n \"serviceidentity\":\"hpaPolicy_set3\",\r\n \"guardpolicyScope\":\"False\",\[\r\n \"descriptionINTERNATIONAL\":\"Must have Huge pages support\"\r\n ],\r\n \"templateVersionpolicyType\":\"OpenSource.version.1hpaPolicy\",\r\n \"priorityresources\":\"1vGMuxInfra\",\r\n \"versionflavorFeatures\":\"CSIT\",[\r\n \"content\":{\r\n \"identityflavorLabel\":\"hpaPolicy_set3vcpe.vgmux\",\r\n \"policyScopeflavorProperties\":[\r\n {\"INTERNATIONAL\"\r\n ],\r\n \"policyTypehpa-feature-attributes\":[\"hpaPolicy\",r\n {\r\n \"resourceshpa-attribute-key\":\"vGMuxInfranumVirtualCpu\",\r\n \"flavorFeatures\":[\r\n {\r\n \"flavorLabelhpa-attribute-value\":\"vcpe.vgmux4\",\r\n \"flavorPropertiesoperator\":[\">=\"\r\n { },\r\n \"hpa-feature-attributes\":[ {\r\n {\"hpa-attribute-key\":\"virtualMemSize\",\r\n \"hpa-attribute-keyvalue\":\"numVirtualCpu8\",\r\n \"hpa-attribute-valueoperator\":\"4=\",\r\n \"operatorunit\":\">=MB\"\r\n },\r\n {],\r\n \"hpa-attribute-keymandatory\":\"virtualMemSizeTrue\",\r\n \"hpa-attribute-valuefeature\":\"8basicCapabilities\",\r\n \"operatorarchitecture\":\"=generic\",\r\n \"unithpa-version\":\"MB\"\"v1\"\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n}" }, "description": "" }, "response": [] } ],\r\n } |
Associate a Complex Object with a cloud region
Code Block | ||||
---|---|---|---|---|
| ||||
Assume: AAI IP:PORT = 10.12.6.233:8443 cloud-owner = CloudOwner \"mandatory\":\"True\",\r\n \"hpa-feature\":\"basicCapabilities\",\r\n \"architecture\":\"generic\",\r\n \"hpa-version\":\"v1\"\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n}" }, "description": "" }, "response": [] } ] }Cloud-region-id = RegionOne Complex object with physical location id: clli1 curl -X PUT \ https://10.12.6.233:8443/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/relationship-list/relationship \ -H 'Accept: application/json' \ -H 'Authorization: Basic QUFJOkFBSQ==' \ -H 'Cache-Control: no-cache' \ -H 'Content-Type: application/json' \ -H 'Postman-Token: 64960a1c-be11-cb66-ffb5-f6d0298b0ac4' \ -H 'Real-Time: true' \ -H 'X-FromAppId: jimmy-postman' \ -H 'X-TransactionId: 9999' \ -d '{ "related-to": "complex", "related-link": "/aai/v11/cloud-infrastructure/complexes/complex/clli1", "relationship-data": [ { "relationship-key": "complex.physical-location-id", "relationship-value": "clli1" } ] }' |
Another way to populate the default cloud region with complex is the robot script:
Attach to robot VM, execute following script:
$ /opt/demo.sh init_customer
The default cloud-region (CloudOwner,RegionOne) and the default complex (clli1) and the association between them will be populated .
Caveat: The cloud-region populated by this script is not conform to the cloud region expected by multicloud. So it is not possible to discover/populate HPA information under this default cloud region.