summaryrefslogtreecommitdiffstats
path: root/robot/resources
diff options
context:
space:
mode:
authorBrian Freeman <bf1936@att.com>2018-11-16 18:42:21 -0500
committerBrian Freeman <bf1936@att.com>2018-11-16 18:42:29 -0500
commiteef7c6f27e0770415188a9bd72355d73af660a4e (patch)
treefea04e790e6efd4171632a8ebcda8cef4c7cdd76 /robot/resources
parent8ed11afa5e5ab732170060fa9f0c137fdaffb4f4 (diff)
Automate Onboarding of vCPE:Infra,BNG,GMUX,BRG
Issue-ID: INT-601 Change-Id: If39cab716749e5dfe6abcce2f468366fca0bf849 Signed-off-by: Brian Freeman <bf1936@att.com>
Diffstat (limited to 'robot/resources')
-rw-r--r--robot/resources/asdc_interface.robot91
-rw-r--r--robot/resources/demo_preload.robot35
-rw-r--r--robot/resources/test_templates/model_test_template.robot2
3 files changed, 105 insertions, 23 deletions
diff --git a/robot/resources/asdc_interface.robot b/robot/resources/asdc_interface.robot
index e339a26f..e5126a10 100644
--- a/robot/resources/asdc_interface.robot
+++ b/robot/resources/asdc_interface.robot
@@ -24,9 +24,11 @@ ${ASDC_VENDOR_LICENSE_AGREEMENT_PATH} /license-agreements
${ASDC_VENDOR_ACTIONS_PATH} /actions
${ASDC_VENDOR_SOFTWARE_UPLOAD_PATH} /orchestration-template-candidate
${ASDC_FE_CATALOG_RESOURCES_PATH} /sdc1/feProxy/rest/v1/catalog/resources
+${ASDC_FE_CATALOG_SERVICES_PATH} /sdc1/feProxy/rest/v1/catalog/services
${ASDC_CATALOG_RESOURCES_PATH} /sdc2/rest/v1/catalog/resources
${ASDC_CATALOG_SERVICES_PATH} /sdc2/rest/v1/catalog/services
${ASDC_CATALOG_INACTIVE_RESOURCES_PATH} /sdc2/rest/v1/inactiveComponents/resource
+${ASDC_CATALOG_RESOURCES_QUERY_PATH} /sdc2/rest/v1/catalog/resources/resourceName
${ASDC_CATALOG_INACTIVE_SERVICES_PATH} /sdc2/rest/v1/inactiveComponents/service
${ASDC_CATALOG_LIFECYCLE_PATH} /lifecycleState
${ASDC_CATALOG_SERVICE_RESOURCE_INSTANCE_PATH} /resourceInstance
@@ -47,6 +49,7 @@ ${ASDC_CATALOG_SERVICE_TEMPLATE} robot/assets/templates/asdc/catalog_service.
${ASDC_RESOURCE_INSTANCE_TEMPLATE} robot/assets/templates/asdc/resource_instance.template
${ASDC_RESOURCE_INSTANCE_VNF_PROPERTIES_TEMPLATE} robot/assets/templates/asdc/catalog_vnf_properties.template
${ASDC_RESOURCE_INSTANCE_VNF_INPUTS_TEMPLATE} robot/assets/templates/asdc/catalog_vnf_inputs.template
+${SDC_CATALOG_NET_RESOURCE_INPUT_TEMPLATE} robot/assets/templates/asdc/catalog_net_input_properties.template
${ASDC_FE_ENDPOINT} ${GLOBAL_ASDC_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SDC_FE_IP_ADDR}:${GLOBAL_ASDC_FE_PORT}
${ASDC_BE_ENDPOINT} ${GLOBAL_ASDC_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SDC_BE_IP_ADDR}:${GLOBAL_ASDC_BE_PORT}
${ASDC_BE_ONBOARD_ENDPOINT} ${GLOBAL_ASDC_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SDC_BE_ONBOARD_IP_ADDR}:${GLOBAL_ASDC_BE_ONBOARD_PORT}
@@ -54,7 +57,9 @@ ${ASDC_BE_ONBOARD_ENDPOINT} ${GLOBAL_ASDC_SERVER_PROTOCOL}://${GLOBAL_INJECT
*** Keywords ***
Distribute Model From ASDC
[Documentation] goes end to end creating all the asdc objects based ona model and distributing it to the systems. it then returns the service name, vf name and vf module name
- [Arguments] ${model_zip_path} ${catalog_service_name}= ${cds}=
+ [Arguments] ${model_zip_path} ${catalog_service_name}= ${cds}= ${service}=
+ #${random}= Get Current Date
+ #${catalog_service_id}= Add ASDC Catalog Service ${catalog_service_name}_${random}
${catalog_service_id}= Add ASDC Catalog Service ${catalog_service_name}
${catalog_resource_ids}= Create List
${catalog_resources}= Create Dictionary
@@ -64,6 +69,25 @@ Distribute Model From ASDC
\ ${loop_catalog_resource_resp}= Get ASDC Catalog Resource ${loop_catalog_resource_id}
\ Add ASDC Resource Instance ${catalog_service_id} ${loop_catalog_resource_id} ${loop_catalog_resource_resp['name']}
\ Set To Dictionary ${catalog_resources} ${loop_catalog_resource_id}=${loop_catalog_resource_resp}
+ #
+ # do this here because the loop_catalog_resource_resp is different format after adding networks
+ ${vf_module}= Find Element In Array ${loop_catalog_resource_resp['groups']} type org.openecomp.groups.VfModule
+ #
+ # do network
+ ${networklist}= Get From Dictionary ${GLOBAL_SERVICE_GEN_NEUTRON_NETWORK_MAPPING} ${service}
+ ${xoffset}= Set Variable ${100}
+ ${generic_neutron_net_uuid}= Get Generic NeutronNet UUID
+ :FOR ${network} in @{networklist}
+ \ ${loop_catalog_resource_id}= Set Variable ${generic_neutron_net_uuid}
+ \ Append To List ${catalog_resource_ids} ${loop_catalog_resource_id}
+ \ ${loop_catalog_resource_resp}= Get ASDC Catalog Resource ${loop_catalog_resource_id}
+ #
+ \ ${loop_catalog_resource_id}= Add ASDC Resource Instance ${catalog_service_id} ${loop_catalog_resource_id} ${network} ${xoffset} ${0}
+ \ ${nf_role}= Convert To Lowercase ${network}
+ \ Setup SDC Catalog Resource GenericNeutronNet Properties ${catalog_service_id} ${nf_role} ${loop_catalog_resource_id}
+ \ ${xoffset}= Set Variable ${xoffset+100}
+ \ Set To Dictionary ${catalog_resources} ${loop_catalog_resource_id}=${loop_catalog_resource_resp}
+ #
${catalog_service_resp}= Get ASDC Catalog Service ${catalog_service_id}
Checkin ASDC Catalog Service ${catalog_service_id}
Request Certify ASDC Catalog Service ${catalog_service_id}
@@ -75,12 +99,19 @@ Distribute Model From ASDC
\ Log Distribution Attempt ${DIST_INDEX}
\ Distribute ASDC Catalog Service ${catalog_service_id}
\ ${catalog_service_resp}= Get ASDC Catalog Service ${catalog_service_id}
- \ ${vf_module}= Find Element In Array ${loop_catalog_resource_resp['groups']} type org.openecomp.groups.VfModule
\ ${status} ${_} = Run Keyword And Ignore Error Loop Over Check Catalog Service Distributed ${catalog_service_resp['uuid']}
\ Exit For Loop If '${status}'=='PASS'
Should Be Equal As Strings ${status} PASS
[Return] ${catalog_service_resp['name']} ${loop_catalog_resource_resp['name']} ${vf_module} ${catalog_resource_ids} ${catalog_service_id} ${catalog_resources}
+
+Get Generic NeutronNet UUID
+ [Documentation] Lookoup the UUID of the Generic NeutronNetwork Resource
+ # http://137.117.87.170:30205/sdc2/rest/v1/catalog/resources/resourceName/Generic%20NeutronNet/resourceVersion/1.0
+ # 411edcfd-c290-41dc-bd2c-5600f9f0af05
+ ${resp}= Run ASDC Get Request ${ASDC_CATALOG_RESOURCES_QUERY_PATH}/Generic%20NeutronNet/resourceVersion/1.0 ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ENDPOINT}
+ [Return] ${resp.json()['allVersions']['1.0']}
+
Loop Over Check Catalog Service Distributed
[Arguments] ${catalog_service_id}
# SO watchdog timeout is 300 seconds need buffer
@@ -114,6 +145,39 @@ Setup ASDC Catalog Resource
${catalog_resource_id}= Certify ASDC Catalog Resource ${catalog_resource_id} ${ASDC_DESIGNER_USER_ID}
[Return] ${catalog_resource_id}
+
+Setup SDC Catalog Resource GenericNeutronNet Properties
+ [Documentation] Set up GenericNeutronNet properties and inputs
+ [Arguments] ${catalog_service_id} ${nf_role} ${catalog_parent_service_id}
+ # Set component instances properties
+ ${resp}= Get ASDC Catalog Resource Component Instances Properties ${catalog_service_id}
+ #${resp}= Get ASDC Catalog Resource Component Instances ${catalog_service_id}
+ ${componentInstances} Set Variable @{resp['componentInstancesProperties']}
+ # componentInstances can have 1 or more than 1 entry
+ ${passed}= Run Keyword And Return Status Evaluate type(${componentInstances})
+ ${type}= Run Keyword If ${passed} Evaluate type(${componentInstances})
+ ${componentInstancesList}= Run Keyword If "${type}"!="<type 'list'>" Create List ${componentInstances}
+ ... ELSE Set Variable ${componentInstances}
+ :FOR ${item} IN @{componentInstancesList}
+ \ ${test} ${v}= Run Keyword and Ignore Error Should Contain ${item} ${nf_role}
+ \ Run Keyword If '${test}' == 'FAIL' Continue For Loop
+ \ ${componentInstance1}= Set Variable ${item}
+ :FOR ${comp} IN @{resp['componentInstancesProperties']["${componentInstance1}"]}
+ \ ${name} Set Variable ${comp['name']}
+ \ ${test} ${v}= Run Keyword and Ignore Error Should Contain ${name} network_role
+ \ Run Keyword If '${test}' == 'FAIL' Continue For Loop
+ \ ${description} Set Variable ${comp['description']}
+ \ ${description}= Replace String ${description} ${\n} \
+ \ ${uniqueId} Set Variable ${comp['uniqueId']}
+ \ ${parentUniqueId} Set Variable ${comp['parentUniqueId']}
+ \ ${ownerId} Set Variable ${comp['ownerId']}
+ \ ${dict}= Create Dictionary parentUniqueId=${parentUniqueId} ownerId=${ownerId} uniqueId=${uniqueId} description=${description}
+ \ Run Keyword If '${name}'=='network_role' Set To Dictionary ${dict} name=${name} value=${nf_role}
+ \ ${data}= Fill JSON Template File ${SDC_CATALOG_NET_RESOURCE_INPUT_TEMPLATE} ${dict}
+ \ ${response}= Set ASDC Catalog Resource Component Instance Properties ${catalog_parent_service_id} ${catalog_service_id} ${data}
+ #\ Log To Console resp=${response}
+ [Return]
+
Setup ASDC Catalog Resource CDS Properties
[Documentation] Set up vfwng VNF properties and inputs for CDS
[Arguments] ${catalog_resource_id}
@@ -313,16 +377,26 @@ Get ASDC Catalog Resource
[Arguments] ${catalog_resource_id}
${resp}= Run ASDC Get Request ${ASDC_CATALOG_RESOURCES_PATH}/${catalog_resource_id} ${ASDC_DESIGNER_USER_ID}
[Return] ${resp.json()}
+
Get ASDC Catalog Resource Component Instances
[Documentation] gets asdc Catalog Resource Component Instances by its id
[Arguments] ${catalog_resource_id}
${resp}= Run ASDC Get Request ${ASDC_FE_CATALOG_RESOURCES_PATH}/${catalog_resource_id}/filteredDataByParams?include=componentInstances ${ASDC_DESIGNER_USER_ID} ${ASDC_FE_ENDPOINT}
[Return] ${resp.json()}
+Get ASDC Catalog Resource Component Instances Properties
+ [Documentation] gets asdc Catalog Resource Component Instances Properties by its id
+ [Arguments] ${catalog_resource_id}
+ #${resp}= Run ASDC Get Request ${ASDC_FE_CATALOG_RESOURCES_PATH}/${catalog_resource_id}/filteredDataByParams?include=componentInstancesProperties ${ASDC_DESIGNER_USER_ID} ${ASDC_FE_ENDPOINT}
+ ${resp}= Run ASDC Get Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_resource_id}/filteredDataByParams?include=componentInstancesProperties ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ENDPOINT}
+ [Return] ${resp.json()}
+
+
Get ASDC Catalog Resource Inputs
[Documentation] gets asdc Catalog Inputs by its id
[Arguments] ${catalog_resource_id}
${resp}= Run ASDC Get Request ${ASDC_FE_CATALOG_RESOURCES_PATH}/${catalog_resource_id}/filteredDataByParams?include=inputs ${ASDC_DESIGNER_USER_ID} ${ASDC_FE_ENDPOINT}
[Return] ${resp.json()}
+
Get ASDC Catalog Resource Component Instance Properties
[Documentation] gets an asdc Catalog Resource properties by its id
[Arguments] ${catalog_resource_id} ${component_instance_id} ${component_id}
@@ -330,9 +404,11 @@ Get ASDC Catalog Resource Component Instance Properties
[Return] ${resp.json()}
Set ASDC Catalog Resource Component Instance Properties
[Documentation] sets an asdc Catalog Resource by its id
- [Arguments] ${catalog_resource_id} ${component_instance_id} ${data}
- ${resp}= Run ASDC Post Request ${ASDC_FE_CATALOG_RESOURCES_PATH}/${catalog_resource_id}/resourceInstance/${component_instance_id}/inputs ${data} ${ASDC_DESIGNER_USER_ID} ${ASDC_FE_ENDPOINT}
+ [Arguments] ${catalog_resource_id} ${component_parent_service_id} ${data}
+ #${resp}= Run ASDC Post Request ${ASDC_FE_CATALOG_RESOURCES_PATH}/${component_parent_service_id}/resourceInstance/${catalog_resource_id}/inputs ${data} ${ASDC_DESIGNER_USER_ID} ${ASDC_FE_ENDPOINT}
+ ${resp}= Run ASDC Post Request ${ASDC_FE_CATALOG_SERVICES_PATH}/${component_parent_service_id}/resourceInstance/${catalog_resource_id}/properties ${data} ${ASDC_DESIGNER_USER_ID} ${ASDC_FE_ENDPOINT}
[Return] ${resp.json()}
+
Set ASDC Catalog Resource VNF Inputs
[Documentation] sets an asdc Catalog Resource by its id
[Arguments] ${catalog_resource_id} ${data}
@@ -474,13 +550,16 @@ Distribute ASDC Catalog Service
[Return] ${resp.json()}
Add ASDC Resource Instance
[Documentation] Creates an asdc Resource Instance and returns its id
- [Arguments] ${catalog_service_id} ${catalog_resource_id} ${catalog_resource_name}
+ [Arguments] ${catalog_service_id} ${catalog_resource_id} ${catalog_resource_name} ${xoffset}=${0} ${yoffset}=${0}
${milli_timestamp}= Generate MilliTimestamp UUID
- ${map}= Create Dictionary catalog_resource_id=${catalog_resource_id} catalog_resource_name=${catalog_resource_name} milli_timestamp=${milli_timestamp}
+ ${xoffset}= Set Variable ${xoffset+306}
+ ${yoffset}= Set Variable ${yoffset+248}
+ ${map}= Create Dictionary catalog_resource_id=${catalog_resource_id} catalog_resource_name=${catalog_resource_name} milli_timestamp=${milli_timestamp} posX=${xoffset} posY=${yoffset}
${data}= Fill JSON Template File ${ASDC_RESOURCE_INSTANCE_TEMPLATE} ${map}
${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_SERVICE_RESOURCE_INSTANCE_PATH} ${data} ${ASDC_DESIGNER_USER_ID}
Should Be Equal As Strings ${resp.status_code} 201
[Return] ${resp.json()['uniqueId']}
+
Get Catalog Service Distribution
[Documentation] gets an asdc catalog Service distrbution
[Arguments] ${catalog_service_uuid}
diff --git a/robot/resources/demo_preload.robot b/robot/resources/demo_preload.robot
index 41936a04..1fbd57a9 100644
--- a/robot/resources/demo_preload.robot
+++ b/robot/resources/demo_preload.robot
@@ -47,7 +47,7 @@ Load OwningEntity
${uuid}= Generate UUID
${headers}= Create Dictionary Accept=application/json Content-Type=application/json USER_ID=${GLOBAL_VID_USERNAME} X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
${resp}= Post Request vid ${data_path} data=${vid_data} headers=${headers}
-
+
Load Customer
[Documentation] Use openECOMP to Orchestrate a service.
[Arguments] ${customer_name}
@@ -55,15 +55,28 @@ Load Customer
Set Test Variable ${CUSTOMER_NAME} ${customer_name}
${region}= Get Openstack Region
Create Customer For VNF Demo ${CUSTOMER_NAME} ${CUSTOMER_NAME} INFRA ${GLOBAL_AAI_CLOUD_OWNER} ${region} ${TENANT_ID}
+ Create Customer For VNF Demo ${CUSTOMER_NAME} ${CUSTOMER_NAME} INFRA ${GLOBAL_AAI_CLOUD_OWNER} RegionTlab 50b190410b2a4c229d8a6044a80ab7c1
Load Models
[Documentation] Use openECOMP to Orchestrate a service.
[Arguments] ${customer_name}
Set Test Variable ${CUSTOMER_NAME} ${customer_name}
+ Log To Console Distibuting vFWCL
${status} ${value}= Run Keyword And Ignore Error Distribute Model vFWCL ${DEMO_PREFIX}VFWCL
+ Log To Console Distibuting vLB
${status} ${value}= Run Keyword And Ignore Error Distribute Model vLB ${DEMO_PREFIX}VLB
- ${status} ${value}= Run Keyword And Ignore Error Distribute Model vCPE ${DEMO_PREFIX}VCPE
+ ##${status} ${value}= Run Keyword And Ignore Error Distribute Model vCPE ${DEMO_PREFIX}VCPE
##${status} ${value}= Run Keyword And Ignore Error Distribute Model vIMS ${DEMO_PREFIX}VIMS
+ Log To Console Distibuting vCPEInfra
+ ${status} ${value}= Run Keyword And Ignore Error Distribute Model vCPEInfra ${DEMO_PREFIX}VCPEInfra
+ Log To Console Distibuting vCPEvBNG
+ ${status} ${value}= Run Keyword And Ignore Error Distribute Model vCPEvBNG ${DEMO_PREFIX}VCPEvBNG
+ Log To Console Distibuting vCPEvBRGEMU
+ ${status} ${value}= Run Keyword And Ignore Error Distribute Model vCPEvBRGEMU ${DEMO_PREFIX}VCPEvBRGEMU
+ Log To Console Distibuting vCPEvGMUX
+ ${status} ${value}= Run Keyword And Ignore Error Distribute Model vCPEvGMUX ${DEMO_PREFIX}VCPEvGMUX
+ Log To Console Distibuting vCPEvGW (this is not vCPEResCust service)
+ ${status} ${value}= Run Keyword And Ignore Error Distribute Model vCPEvGW ${DEMO_PREFIX}VCPEvGW
Distribute Model
[Arguments] ${service} ${modelName}
@@ -156,16 +169,11 @@ APPC Mount Point
Instantiate VNF
[Arguments] ${service} ${vf_module_label}=NULL
Setup Orchestrate VNF ${GLOBAL_AAI_CLOUD_OWNER} SharedNode OwnerType v1 CloudZone
- ${vf_module_name} ${service} ${generic_vnfs}= Orchestrate VNF DemoCust ${service} ${service} ${TENANT_NAME}
+ ${vf_module_name} ${service}= Orchestrate VNF DemoCust ${service} ${service} ${TENANT_NAME}
Save For Delete
Log to Console Customer Name=${CUSTOMER_NAME}
Log to Console VNF Module Name=${vf_module_name}
- # Don't get from MSO for now due to SO-1186
- # ${model_invariant_id}= Run MSO Get ModelInvariantId ${SUITE_SERVICE_MODEL_NAME} ${vf_module_label}
- ${model_invariant_id}= Set Variable ${EMPTY}
- :for ${vf_module} in @{generic_vnfs}
- \ ${generic_vnf}= Get From Dictionary ${generic_vnfs} ${vf_module}
- \ ${model_invariant_id}= Set Variable If '${vf_module_label}' in '${vf_module}' ${generic_vnf['model-invariant-id']} ${model_invariant_id}
+ ${model_invariant_id}= Run MSO Get ModelInvariantId ${SUITE_SERVICE_MODEL_NAME} ${vf_module_label}
Log to Console ModelInvariantID=${model_invariant_id}
${status} ${value}= Run Keyword And Ignore Error Update vVFWCL Policy ${model_invariant_id}
${status} ${value}= Run Keyword And Ignore Error APPC Mount Point ${vf_module_name}
@@ -173,16 +181,11 @@ Instantiate VNF
Instantiate Demo VNF
[Arguments] ${service} ${vf_module_label}=NULL
Setup Orchestrate VNF ${GLOBAL_AAI_CLOUD_OWNER} SharedNode OwnerType v1 CloudZone
- ${vf_module_name} ${service} ${generic_vnfs}= Orchestrate Demo VNF Demonstration ${service} ${service} ${TENANT_NAME}
+ ${vf_module_name} ${service}= Orchestrate Demo VNF Demonstration ${service} ${service} ${TENANT_NAME}
#Save For Delete
Log to Console Customer Name=${CUSTOMER_NAME}
Log to Console VNF Module Name=${vf_module_name}
- # Don't get from MSO for now due to SO-1186
- # ${model_invariant_id}= Run MSO Get ModelInvariantId ${SUITE_SERVICE_MODEL_NAME} ${vf_module_label}
- ${model_invariant_id}= Set Variable ${EMPTY}
- :for ${vf_module} in @{generic_vnfs}
- \ ${generic_vnf}= Get From Dictionary ${generic_vnfs} ${vf_module}
- \ ${model_invariant_id}= Set Variable If '${vf_module_label}' in '${vf_module}' ${generic_vnf['model-invariant-id']} ${model_invariant_id}
+ ${model_invariant_id}= Run MSO Get ModelInvariantId ${SUITE_SERVICE_MODEL_NAME} ${vf_module_label}
Log to Console ModelInvariantID=${model_invariant_id}
${status} ${value}= Run Keyword And Ignore Error Update vVFWCL Policy ${model_invariant_id}
${status} ${value}= Run Keyword And Ignore Error APPC Mount Point ${vf_module_name}
diff --git a/robot/resources/test_templates/model_test_template.robot b/robot/resources/test_templates/model_test_template.robot
index 3fbf7d26..f48b43fa 100644
--- a/robot/resources/test_templates/model_test_template.robot
+++ b/robot/resources/test_templates/model_test_template.robot
@@ -36,7 +36,7 @@ Model Distribution For Directory
\ OperatingSystem.Create Directory ${ASDC_ASSETS_DIRECTORY}/temp
\ Create Zip From Files In Directory ${folder} ${zip}
\ Append To List ${ziplist} ${zip}
- ${catalog_service_name} ${catalog_resource_name} ${vf_modules} ${catalog_resource_ids} ${catalog_service_id} ${catalog_resources} Distribute Model From ASDC ${ziplist} ${catalog_service_name} ${cds}
+ ${catalog_service_name} ${catalog_resource_name} ${vf_modules} ${catalog_resource_ids} ${catalog_service_id} ${catalog_resources} Distribute Model From ASDC ${ziplist} ${catalog_service_name} ${cds} ${service}
Set Test Variable ${CATALOG_RESOURCE_IDS} ${catalog_resource_ids}
Set Test Variable ${CATALOG_SERVICE_ID} ${catalog_service_id}
Set Test Variable ${CATALOG_RESOURCES} ${catalog_resources}