diff options
Diffstat (limited to 'robot/resources/so_interface.robot')
-rw-r--r-- | robot/resources/so_interface.robot | 190 |
1 files changed, 51 insertions, 139 deletions
diff --git a/robot/resources/so_interface.robot b/robot/resources/so_interface.robot index 1e555dbf..f0491d31 100644 --- a/robot/resources/so_interface.robot +++ b/robot/resources/so_interface.robot @@ -1,152 +1,64 @@ *** 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 ONAPLibrary.Utilities -Library OperatingSystem -Library Collections +Library ONAPLibrary.SO WITH NAME SO +Library ONAPLibrary.Templating WITH NAME Templating + Resource global_properties.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_APIHAND_IP_ADDR}:${GLOBAL_MSO_APIHAND_SERVER_PORT} -${SO_ASDCHAND_ENDPOINT} ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_ASDCHAND_IP_ADDR}:${GLOBAL_MSO__ASDCHAND_SERVER_PORT} -${SO_BPMN_ENDPOINT} ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_BPMN_IP_ADDR}:${GLOBAL_MSO_BPMN_SERVER_PORT} -${SO_CATDB_ENDPOINT} ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_CATDB_IP_ADDR}:${GLOBAL_MSO__CATDB_SERVER_PORT} -${SO_OPENSTACK_ENDPOINT} ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_OPENSTACK_IP_ADDR}:${GLOBAL_MSO_OPENSTACK_SERVER_PORT} -${SO_REQDB_ENDPOINT} ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_REQDB_IP_ADDR}:${GLOBAL_MSO_REQDB_SERVER_PORT} -${SO_SDNC_ENDPOINT} ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_SDNC_IP_ADDR}:${GLOBAL_MSO_SDNC_SERVER_PORT} -${SO_VFC_ENDPOINT} ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_VFC_IP_ADDR}:${GLOBAL_MSO_VFC_SERVER_PORT} -${SO_VNFM_ENDPOINT} ${GLOBAL_MSO_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SO_VNFM_IP_ADDR}:${GLOBAL_MSO_VNFM_SERVER_PORT} +${SO_HEALTH_CHECK_PATH} /manage/health +${CLOUD_CONFIG_PATH} /cloudSite +${SO_ADD_CLOUD_CONFIG}= robot/assets/templates/so/create_cloud_config.template +${SO_ADD_CLOUD_CONFIG_V3}= robot/assets/templates/so/cloud_config_v3.template *** 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 VNFM_INFRA ${SO_VNFM_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 UUID4 - ${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 Policies - [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 Catalog 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' - Should Not Be Equal As Strings ${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 UUID4 - ${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} + Run Get Request ${GLOBAL_SO_APIHAND_ENDPOINT} ${SO_HEALTH_CHECK_PATH} + Run Get Request ${GLOBAL_SO_ASDCHAND_ENDPOINT} ${SO_HEALTH_CHECK_PATH} + Run Get Request ${GLOBAL_SO_BPMN_ENDPOINT} ${SO_HEALTH_CHECK_PATH} + Run Get Request ${GLOBAL_SO_CATDB_ENDPOINT} ${SO_HEALTH_CHECK_PATH} + Run Get Request ${GLOBAL_SO_OPENSTACK_ENDPOINT} ${SO_HEALTH_CHECK_PATH} + Run Get Request ${GLOBAL_SO_REQDB_ENDPOINT} ${SO_HEALTH_CHECK_PATH} + Run Get Request ${GLOBAL_SO_SDNC_ENDPOINT} ${SO_HEALTH_CHECK_PATH} + Run Get Request ${GLOBAL_SO_VFC_ENDPOINT} ${SO_HEALTH_CHECK_PATH} + Run Get Request ${GLOBAL_SO_VNFM_ENDPOINT} ${SO_HEALTH_CHECK_PATH} -Run MSO Catalog Get Request - [Documentation] Runs an MSO get request - [Arguments] ${data_path} ${accept}=application/json +Get Cloud Configuration + [Documentation] Gets cloud configuration in SO + [Arguments] ${site_name} ${auth}= Create List ${GLOBAL_MSO_CATDB_USERNAME} ${GLOBAL_MSO_PASSWORD} - Log Creating session ${SO_CATDB_ENDPOINT} - ${session}= Create Session so_catdb ${SO_CATDB_ENDPOINT} auth=${auth} - ${uuid}= Generate UUID4 - ${headers}= Create Dictionary Accept=${accept} Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} - ${resp}= Get Request so_catdb ${data_path} headers=${headers} - Log Received response from so_catdb ${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 UUID4 - ${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 UUID4 - ${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 SO Catalog Post request - [Documentation] Runs an SO post request - [Arguments] ${data_path} ${data} ${so_port}= + ${get_resp}= SO.Run Get Request ${GLOBAL_SO_CATDB_ENDPOINT} ${CLOUD_CONFIG_PATH}/${site_name} auth=${auth} + Should Be Equal As Strings ${get_resp.status_code} 200 + +Create Cloud Configuration + [Documentation] Creates a cloud configuration in SO, so it knows how to talk to an openstack cloud + [Arguments] ${site_name} ${region_id} ${clli} ${identity_id} ${identity_url} ${mso_id} ${mso_pass} ${admin_tenant} ${member_role} ${identity_server_type} ${authentication_type} + ${arguments}= Create Dictionary site_name=${site_name} region_id=${region_id} clli=${clli} identity_id=${identity_id} identity_url=${identity_url} mso_id=${mso_id} mso_pass=${mso_pass} admin_tenant=${admin_tenant} member_role=${member_role} identity_server_type=${identity_server_type} authentication_type=${authentication_type} + Templating.Create Environment so ${GLOBAL_TEMPLATE_FOLDER} + ${data}= Templating.Apply Template so ${SO_ADD_CLOUD_CONFIG} ${arguments} ${auth}= Create List ${GLOBAL_MSO_CATDB_USERNAME} ${GLOBAL_MSO_PASSWORD} - Log Creating session ${SO_CATDB_ENDPOINT} - ${session}= Create Session so_catdb ${SO_CATDB_ENDPOINT} auth=${auth} - ${uuid}= Generate UUID4 - ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} - ${resp}= Post Request so_catdb ${data_path} data=${data} headers=${headers} - Log Received response from so_catdb ${resp.text} - [Return] ${resp} + ${get_resp}= SO.Run Put Request ${GLOBAL_SO_CATDB_ENDPOINT} ${CLOUD_CONFIG_PATH}/${site_name} ${data} auth=${auth} + ${get_resp}= Run Keyword If '${get_resp.status_code}'=='404' Update Cloud Configuration ${site_name} ${region_id} ${clli} ${identity_id} ${identity_url} ${mso_id} ${mso_pass} ${admin_tenant} ${member_role} ${identity_server_type} ${authentication_type} + Should Be Equal As Strings ${get_resp.status_code} 200 -Run SO Catalog Put request - [Documentation] Runs an SO put request - [Arguments] ${data_path} ${data} ${so_port}= +Create Cloud Configuration v3 + [Documentation] Creates a cloud configuration in SO, so it knows how to talk to an openstack cloud + [Arguments] ${site_name} ${region_id} ${clli} ${identity_id} ${identity_url} ${mso_id} ${mso_pass} ${admin_tenant} ${member_role} ${identity_server_type} ${authentication_type} ${project_domain_name} ${user_domain_Name} + ${arguments}= Create Dictionary site_name=${site_name} region_id=${region_id} clli=${clli} identity_id=${identity_id} identity_url=${identity_url} mso_id=${mso_id} mso_pass=${mso_pass} admin_tenant=${admin_tenant} member_role=${member_role} identity_server_type=${identity_server_type} authentication_type=${authentication_type} project_domain_name=${project_domain_name} user_domain_name=${user_domain_name} + Log ${arguments} + Templating.Create Environment so ${GLOBAL_TEMPLATE_FOLDER} + ${data}= Templating.Apply Template so ${SO_ADD_CLOUD_CONFIG_V3} ${arguments} ${auth}= Create List ${GLOBAL_MSO_CATDB_USERNAME} ${GLOBAL_MSO_PASSWORD} - Log Creating session ${SO_CATDB_ENDPOINT} - ${session}= Create Session so_catdb ${SO_CATDB_ENDPOINT} auth=${auth} - ${uuid}= Generate UUID4 - ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} - ${resp}= Put Request so_catdb ${data_path} data=${data} headers=${headers} - Log Received response from so_catdb ${resp.text} - [Return] ${resp} + ${get_resp}= SO.Run Post Request ${GLOBAL_SO_CATDB_ENDPOINT} ${CLOUD_CONFIG_PATH} ${data} auth=${auth} + ${status_string}= Convert To String ${get_resp.status_code} + Should Match Regexp ${status_string} ^(201|200)$ -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 UUID4 - ${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} +Update Cloud Configuration + [Documentation] Updates a cloud configuration in SO + [Arguments] ${site_name} ${region_id} ${clli} ${identity_id} ${identity_url} ${mso_id} ${mso_pass} ${admin_tenant} ${member_role} ${identity_server_type} ${authentication_type} + ${arguments}= Create Dictionary site_name=${site_name} region_id=${region_id} clli=${clli} identity_id=${identity_id} identity_url=${identity_url} mso_id=${mso_id} mso_pass=${mso_pass} admin_tenant=${admin_tenant} member_role=${member_role} identity_server_type=${identity_server_type} authentication_type=${authentication_type} + Templating.Create Environment so ${GLOBAL_TEMPLATE_FOLDER} + ${data}= Templating.Apply Template so ${SO_ADD_CLOUD_CONFIG} ${arguments} + ${auth}= Create List ${GLOBAL_MSO_CATDB_USERNAME} ${GLOBAL_MSO_PASSWORD} + ${get_resp}= SO.Run Put Request ${GLOBAL_SO_CATDB_ENDPOINT} ${CLOUD_CONFIG_PATH}/${site_name} ${data} auth=${auth} + Should Be Equal As Strings ${get_resp.status_code} 200 + [Return] ${get_resp}
\ No newline at end of file |