From 391680ad4e62b725e9e40e1bdcdaf48b4875fd28 Mon Sep 17 00:00:00 2001 From: Brian Freeman Date: Sat, 11 Aug 2018 15:20:58 -0500 Subject: Updates for SO Containers and change mso to so Issue-ID: INT-621 Change-Id: Iad1ae6f08e91c46482d49b6cf1e3e41ebf0cd271 Signed-off-by: Brian Freeman --- robot/resources/asdc_interface.robot | 2 +- robot/resources/demo_preload.robot | 2 +- robot/resources/mso_interface.robot | 93 ------------------ robot/resources/so_interface.robot | 113 ++++++++++++++++++++++ robot/resources/vid/create_service_instance.robot | 2 +- robot/resources/vid/create_vid_vnf.robot | 2 +- robot/testsuites/health-check.robot | 4 +- 7 files changed, 119 insertions(+), 99 deletions(-) delete mode 100644 robot/resources/mso_interface.robot create mode 100644 robot/resources/so_interface.robot diff --git a/robot/resources/asdc_interface.robot b/robot/resources/asdc_interface.robot index fa0713a5..382821e9 100644 --- a/robot/resources/asdc_interface.robot +++ b/robot/resources/asdc_interface.robot @@ -103,7 +103,7 @@ Setup ASDC Catalog Resource Package ASDC Software Product ${software_product_id} ${software_product_version_id} ${software_product_resp}= Get ASDC Software Product ${software_product_id} ${software_product_version_id} ${catalog_resource_id}= Add ASDC Catalog Resource ${license_agreement_id} ${software_product_resp['name']} ${license_model_resp['vendorName']} ${software_product_id} - Request Certify ASDC Catalog Resource ${catalog_resource_id} + ${catalog_resource_id}= Certify ASDC Catalog Resource ${catalog_resource_id} ${ASDC_DESIGNER_USER_ID} [Return] ${catalog_resource_id} Add ASDC License Model [Documentation] Creates an asdc license model and returns its id diff --git a/robot/resources/demo_preload.robot b/robot/resources/demo_preload.robot index bab21be1..f87cc366 100644 --- a/robot/resources/demo_preload.robot +++ b/robot/resources/demo_preload.robot @@ -4,7 +4,7 @@ Documentation This test template encapsulates the VNF Orchestration use case. Resource test_templates/model_test_template.robot Resource test_templates/vnf_orchestration_test_template.robot Resource asdc_interface.robot -Resource mso_interface.robot +Resource so_interface.robot Resource vid/vid_interface.robot Resource policy_interface.robot diff --git a/robot/resources/mso_interface.robot b/robot/resources/mso_interface.robot deleted file mode 100644 index bded5282..00000000 --- a/robot/resources/mso_interface.robot +++ /dev/null @@ -1,93 +0,0 @@ -*** Settings *** -Documentation The main interface for interacting with MSO. It handles low level stuff like managing the http request library and MSO required fields -Library RequestsLibrary -Library UUID -Library OperatingSystem -Library Collections -Resource global_properties.robot -Resource ../resources/json_templater.robot -*** Variables *** -${MSO_HEALTH_CHECK_PATH} /ecomp/mso/infra/globalhealthcheck -${MSO_ENDPOINT} ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_IP_ADDR}:${GLOBAL_MSO_SERVER_PORT} - -*** Keywords *** -Run MSO Health Check - [Documentation] Runs an MSO global health check - ${auth}= Create List ${GLOBAL_MSO_USERNAME} ${GLOBAL_MSO_PASSWORD} - ${session}= Create Session mso ${MSO_ENDPOINT} - ${uuid}= Generate UUID - ${headers}= Create Dictionary Accept=text/html Content-Type=text/html X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} - ${resp}= Get Request mso ${MSO_HEALTH_CHECK_PATH} headers=${headers} - Should Be Equal As Strings ${resp.status_code} 200 - -Run MSO Get ModelInvariantId - [Documentation] Runs an MSO Get ModelInvariantID for ClosedLoop Polieis - [Arguments] ${service_model_name} ${vf_module_label}=NULL - ${param_dict}= Create Dictionary serviceModelName ${service_model_name} - ${param}= Evaluate urllib.urlencode(${param_dict}) urllib - ${data_path}= Catenate SEPARATOR= /ecomp/mso/catalog/v2/serviceVnfs? ${param} - ${resp}= Run MSO Get Request ${data_path} - Log ${resp.json()} - # ${resp.json()['serviceVnfs'][0]['vfModules'][0]['vfModuleLabel'] should be 'base_vpkg' - ${model_invariant_id}= Set Variable NULL - @{ITEMS}= Copy List ${resp.json()['serviceVnfs']} - :FOR ${ELEMENT} IN @{ITEMS} - \ Log ${ELEMENT['vfModules']} - \ ${model_invariant_id} Set Variable If ('${vf_module_label}' in '${ELEMENT['vfModules'][0]['vfModuleLabel']}') ${ELEMENT['modelInfo']['modelInvariantUuid']} NULL - \ Exit For Loop If '${model_invariant_id}' != 'NULL' - [Return] ${model_invariant_id} - -Run MSO Get Request - [Documentation] Runs an MSO get request - [Arguments] ${data_path} ${accept}=application/json - ${auth}= Create List ${GLOBAL_MSO_USERNAME} ${GLOBAL_MSO_PASSWORD} - Log Creating session ${MSO_ENDPOINT} - ${session}= Create Session mso ${MSO_ENDPOINT} auth=${auth} - ${uuid}= Generate UUID - ${headers}= Create Dictionary Accept=${accept} Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} - ${resp}= Get Request mso ${data_path} headers=${headers} - Log Received response from mso ${resp.text} - [Return] ${resp} - -Poll MSO Get Request - [Documentation] Runs an MSO get request until a certain status is received. valid values are COMPLETE - [Arguments] ${data_path} ${status} - ${auth}= Create List ${GLOBAL_MSO_USERNAME} ${GLOBAL_MSO_PASSWORD} - Log Creating session ${MSO_ENDPOINT} - ${session}= Create Session mso ${MSO_ENDPOINT} auth=${auth} - ${uuid}= Generate UUID - ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} - #do this until it is done - :FOR ${i} IN RANGE 20 - \ ${resp}= Get Request mso ${data_path} headers=${headers} - \ Should Not Contain ${resp.text} FAILED - \ Log ${resp.json()['request']['requestStatus']['requestState']} - \ ${exit_loop}= Evaluate "${resp.json()['request']['requestStatus']['requestState']}" == "${status}" - \ Exit For Loop If ${exit_loop} - \ Sleep 15s - Log Received response from mso ${resp.text} - [Return] ${resp} - -Run MSO Post request - [Documentation] Runs an MSO post request - [Arguments] ${data_path} ${data} - ${auth}= Create List ${GLOBAL_MSO_USERNAME} ${GLOBAL_MSO_PASSWORD} - Log Creating session ${MSO_ENDPOINT} - ${session}= Create Session mso ${MSO_ENDPOINT} auth=${auth} - ${uuid}= Generate UUID - ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} - ${resp}= Post Request mso ${data_path} data=${data} headers=${headers} - Log Received response from mso ${resp.text} - [Return] ${resp} - -Run MSO Delete request - [Documentation] Runs an MSO Delete request - [Arguments] ${data_path} ${data} - ${auth}= Create List ${GLOBAL_MSO_USERNAME} ${GLOBAL_MSO_PASSWORD} - Log Creating session ${MSO_ENDPOINT} - ${session}= Create Session mso ${MSO_ENDPOINT} auth=${auth} - ${uuid}= Generate UUID - ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} - ${resp}= Delete Request mso ${data_path} ${data} headers=${headers} - Log Received response from mso ${resp.text} - [Return] ${resp} diff --git a/robot/resources/so_interface.robot b/robot/resources/so_interface.robot new file mode 100644 index 00000000..70faf3bf --- /dev/null +++ b/robot/resources/so_interface.robot @@ -0,0 +1,113 @@ +*** Settings *** +Documentation The main interface for interacting with MSO. It handles low level stuff like managing the http request library and MSO required fields +Library RequestsLibrary +Library UUID +Library OperatingSystem +Library Collections +Resource global_properties.robot +Resource ../resources/json_templater.robot +*** Variables *** +${MSO_HEALTH_CHECK_PATH} /manage/health +${MSO_ENDPOINT} ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_IP_ADDR}:${GLOBAL_MSO_SERVER_PORT} +${SO_APIHAND_ENDPOINT} ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_IP_ADDR}:${GLOBAL_MSO_APIHAND_SERVER_PORT} +${SO_ASDCHAND_ENDPOINT} ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_IP_ADDR}:${GLOBAL_MSO__ASDCHAND_SERVER_PORT} +${SO_BPMN_ENDPOINT} ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_IP_ADDR}:${GLOBAL_MSO_BPMN_SERVER_PORT} +${SO_CATDB_ENDPOINT} ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_IP_ADDR}:${GLOBAL_MSO__CATDB_SERVER_PORT} +${SO_OPENSTACK_ENDPOINT} ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_IP_ADDR}:${GLOBAL_MSO_OPENSTACK_SERVER_PORT} +${SO_REQDB_ENDPOINT} ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_IP_ADDR}:${GLOBAL_MSO_REQDB_SERVER_PORT} +${SO_SDNC_ENDPOINT} ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_IP_ADDR}:${GLOBAL_MSO_SDNC_SERVER_PORT} +${SO_VFC_ENDPOINT} ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_IP_ADDR}:${GLOBAL_MSO_VFC_SERVER_PORT} + +*** Keywords *** +Run SO Global Health Check + Run SO Container Health Check API_HANDLER ${SO_APIHAND_ENDPOINT} + Run SO Container Health Check ASDC_HANDLER ${SO_ASDCHAND_ENDPOINT} + Run SO Container Health Check BPMN_INFRA ${SO_BPMN_ENDPOINT} + Run SO Container Health Check CATALOG_DB ${SO_CATDB_ENDPOINT} + Run SO Container Health Check OPENSTACK_INFRA ${SO_OPENSTACK_ENDPOINT} + Run SO Container Health Check REQUEST_DB ${SO_REQDB_ENDPOINT} + Run SO Container Health Check SDNC_INFRA ${SO_SDNC_ENDPOINT} + Run SO Container Health Check VFC_INFRA ${SO_VFC_ENDPOINT} + + +Run SO Container Health Check + [Documentation] Runs an MSO global health check + [Arguments] ${so_endpoint_label} ${so_endpoint} + ${auth}= Create List ${GLOBAL_MSO_USERNAME} ${GLOBAL_MSO_PASSWORD} + ${session}= Create Session mso ${so_endpoint} + ${uuid}= Generate UUID + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} + ${resp}= Get Request mso ${MSO_HEALTH_CHECK_PATH} headers=${headers} + Should Be Equal As Strings ${resp.status_code} 200 + +Run MSO Get ModelInvariantId + [Documentation] Runs an MSO Get ModelInvariantID for ClosedLoop Polieis + [Arguments] ${service_model_name} ${vf_module_label}=NULL + ${param_dict}= Create Dictionary serviceModelName ${service_model_name} + ${param}= Evaluate urllib.urlencode(${param_dict}) urllib + ${data_path}= Catenate SEPARATOR= /ecomp/mso/catalog/v2/serviceVnfs? ${param} + ${resp}= Run MSO Get Request ${data_path} + Log ${resp.json()} + # ${resp.json()['serviceVnfs'][0]['vfModules'][0]['vfModuleLabel'] should be 'base_vpkg' + ${model_invariant_id}= Set Variable NULL + @{ITEMS}= Copy List ${resp.json()['serviceVnfs']} + :FOR ${ELEMENT} IN @{ITEMS} + \ Log ${ELEMENT['vfModules']} + \ ${model_invariant_id} Set Variable If ('${vf_module_label}' in '${ELEMENT['vfModules'][0]['vfModuleLabel']}') ${ELEMENT['modelInfo']['modelInvariantUuid']} NULL + \ Exit For Loop If '${model_invariant_id}' != 'NULL' + [Return] ${model_invariant_id} + +Run MSO Get Request + [Documentation] Runs an MSO get request + [Arguments] ${data_path} ${accept}=application/json + ${auth}= Create List ${GLOBAL_MSO_USERNAME} ${GLOBAL_MSO_PASSWORD} + Log Creating session ${MSO_ENDPOINT} + ${session}= Create Session mso ${MSO_ENDPOINT} auth=${auth} + ${uuid}= Generate UUID + ${headers}= Create Dictionary Accept=${accept} Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} + ${resp}= Get Request mso ${data_path} headers=${headers} + Log Received response from mso ${resp.text} + [Return] ${resp} + +Poll MSO Get Request + [Documentation] Runs an MSO get request until a certain status is received. valid values are COMPLETE + [Arguments] ${data_path} ${status} + ${auth}= Create List ${GLOBAL_MSO_USERNAME} ${GLOBAL_MSO_PASSWORD} + Log Creating session ${MSO_ENDPOINT} + ${session}= Create Session mso ${MSO_ENDPOINT} auth=${auth} + ${uuid}= Generate UUID + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} + #do this until it is done + :FOR ${i} IN RANGE 20 + \ ${resp}= Get Request mso ${data_path} headers=${headers} + \ Should Not Contain ${resp.text} FAILED + \ Log ${resp.json()['request']['requestStatus']['requestState']} + \ ${exit_loop}= Evaluate "${resp.json()['request']['requestStatus']['requestState']}" == "${status}" + \ Exit For Loop If ${exit_loop} + \ Sleep 15s + Log Received response from mso ${resp.text} + [Return] ${resp} + +Run MSO Post request + [Documentation] Runs an MSO post request + [Arguments] ${data_path} ${data} + ${auth}= Create List ${GLOBAL_MSO_USERNAME} ${GLOBAL_MSO_PASSWORD} + Log Creating session ${MSO_ENDPOINT} + ${session}= Create Session mso ${MSO_ENDPOINT} auth=${auth} + ${uuid}= Generate UUID + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} + ${resp}= Post Request mso ${data_path} data=${data} headers=${headers} + Log Received response from mso ${resp.text} + [Return] ${resp} + +Run MSO Delete request + [Documentation] Runs an MSO Delete request + [Arguments] ${data_path} ${data} + ${auth}= Create List ${GLOBAL_MSO_USERNAME} ${GLOBAL_MSO_PASSWORD} + Log Creating session ${MSO_ENDPOINT} + ${session}= Create Session mso ${MSO_ENDPOINT} auth=${auth} + ${uuid}= Generate UUID + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} + ${resp}= Delete Request mso ${data_path} ${data} headers=${headers} + Log Received response from mso ${resp.text} + [Return] ${resp} diff --git a/robot/resources/vid/create_service_instance.robot b/robot/resources/vid/create_service_instance.robot index d57abc4b..76597260 100644 --- a/robot/resources/vid/create_service_instance.robot +++ b/robot/resources/vid/create_service_instance.robot @@ -8,7 +8,7 @@ Library UUID Library String Library DateTime -Resource ../mso_interface.robot +Resource ../so_interface.robot Resource vid_interface.robot *** Keywords *** diff --git a/robot/resources/vid/create_vid_vnf.robot b/robot/resources/vid/create_vid_vnf.robot index a7cc8e1f..5997b07e 100644 --- a/robot/resources/vid/create_vid_vnf.robot +++ b/robot/resources/vid/create_vid_vnf.robot @@ -7,7 +7,7 @@ Library String Library DateTime Library RequestsLibrary -Resource ../mso_interface.robot +Resource ../so_interface.robot Resource vid_interface.robot *** Keywords *** diff --git a/robot/testsuites/health-check.robot b/robot/testsuites/health-check.robot index bad08850..14ae4e58 100644 --- a/robot/testsuites/health-check.robot +++ b/robot/testsuites/health-check.robot @@ -9,7 +9,7 @@ Resource ../resources/sdngc_interface.robot Resource ../resources/aai/aai_interface.robot Resource ../resources/vid/vid_interface.robot Resource ../resources/policy_interface.robot -Resource ../resources/mso_interface.robot +Resource ../resources/so_interface.robot Resource ../resources/asdc_interface.robot Resource ../resources/appc_interface.robot Resource ../resources/portal_interface.robot @@ -122,7 +122,7 @@ Basic SDNC Health Check Basic SO Health Check [Tags] health core - Run MSO Health Check + Run SO Global Health Check Basic UseCaseUI API Health Check [Tags] health api -- cgit 1.2.3-korg