From adaa2374a3bbfc972605f33238f0ebd14b946f42 Mon Sep 17 00:00:00 2001 From: Brian Freeman Date: Wed, 24 Oct 2018 12:25:22 -0500 Subject: Updates for cloud_config, SDC health, VID timing Based on contribution from Steve Smokowski Issue-ID: INT-621 Change-Id: I82828397bc0b9701fb0fa90123ac4cdd3b8d327d Signed-off-by: Brian Freeman --- .../templates/so/create_cloud_config.template | 17 +++++++++ robot/resources/asdc_interface.robot | 15 +++++--- robot/resources/so/create_cloud_config.robot | 42 ++++++++++++++++++++++ robot/resources/so_interface.robot | 24 +++++++++++++ robot/resources/vid/create_vid_vnf.robot | 2 ++ robot/testsuites/create-cloud-config.robot | 17 +++++++++ 6 files changed, 112 insertions(+), 5 deletions(-) create mode 100644 robot/assets/templates/so/create_cloud_config.template create mode 100644 robot/resources/so/create_cloud_config.robot create mode 100644 robot/testsuites/create-cloud-config.robot diff --git a/robot/assets/templates/so/create_cloud_config.template b/robot/assets/templates/so/create_cloud_config.template new file mode 100644 index 00000000..969a8b05 --- /dev/null +++ b/robot/assets/templates/so/create_cloud_config.template @@ -0,0 +1,17 @@ +{ + "id": "${site_name}", + "region_id": "${region_id}", + "aic_version": "2.5", + "clli": "${clli}", + "identityService": { + "identity_url": "${identity_url}", + "mso_id": "${mso_id}", + "mso_pass": "${mso_pass}", + "admin_tenant": "${admin_tenant}", + "member_role": "${member_role}", + "tenant_meta_data": true, + "id": "${identity_id}", + "identity_server_type": "${identity_server_type}", + "identity_authentication_type": "${authentication_type}" + } +} diff --git a/robot/resources/asdc_interface.robot b/robot/resources/asdc_interface.robot index 8a5aa3f5..c49f942e 100644 --- a/robot/resources/asdc_interface.robot +++ b/robot/resources/asdc_interface.robot @@ -80,11 +80,13 @@ Distribute Model From ASDC Loop Over Check Catalog Service Distributed [Arguments] ${catalog_service_id} - # SO watchdog timeout is 300 seconds - : FOR ${CHECK_INDEX} IN RANGE 15 - \ ${status} ${_} = Run Keyword And Ignore Error Check Catalog Service Distributed ${catalog_service_id} + # SO watchdog timeout is 300 seconds need buffer + ${dist_status}= Set Variable FAIL + : FOR ${CHECK_INDEX} IN RANGE 20 + \ ${status} ${_} = Run Keyword And Ignore Error Check Catalog Service Distributed ${catalog_service_id} ${dist_status} \ Sleep 20s \ Return From Keyword If '${status}'=='PASS' + \ Exit For Loop If '${dist_status}'=='EXIT' Should Be Equal As Strings ${status} PASS Setup ASDC Catalog Resource @@ -398,7 +400,7 @@ Get Catalog Service Distribution [Return] ${resp.json()} Check Catalog Service Distributed [Documentation] gets an asdc catalog Service distrbution - [Arguments] ${catalog_service_uuid} + [Arguments] ${catalog_service_uuid} ${dist_status} ${dist_resp}= Get Catalog Service Distribution ${catalog_service_uuid} Should Be Equal As Strings ${dist_resp['distributionStatusOfServiceList'][0]['deployementStatus']} Distributed ${det_resp}= Get Catalog Service Distribution Details ${dist_resp['distributionStatusOfServiceList'][0]['distributionID']} @@ -411,6 +413,8 @@ Check Catalog Service Distributed \ ${SO_COMPLETE} Set Variable If (('${ELEMENT['status']}' == 'DISTRIBUTION_COMPLETE_OK')) or ('${SO_COMPLETE}'=='TRUE') TRUE \ Exit For Loop If ('${SO_COMPLETE}'=='TRUE') \ Exit For Loop If ('${ELEMENT['status']}' == 'DISTRIBUTION_COMPLETE_ERROR') + \ ${dist_status}= Set Variable If (('${ELEMENT['status']}' == 'COMPONENT_DONE_ERROR') and ('${ELEMENT['omfComponentID']}' == 'aai-ml')) EXIT + \ Exit For Loop If (('${ELEMENT['status']}' == 'COMPONENT_DONE_ERROR') and ('${ELEMENT['omfComponentID']}' == 'aai-ml')) Should Be True ( '${SO_COMPLETE}'=='TRUE') SO Test Get Catalog Service Distribution Details [Documentation] gets an asdc catalog Service distrbution details @@ -424,13 +428,14 @@ Run ASDC Health Check ${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 asdc ${ASDC_HEALTH_CHECK_PATH} headers=${headers} + # only test for HTTP 200 to determine SDC Health. SDC_DE_HEALTH is informational Should Be Equal As Strings ${resp.status_code} 200 SDC DOWN ${SDC_DE_HEALTH}= Catenate DOWN @{ITEMS}= Copy List ${resp.json()['componentsInfo']} :FOR ${ELEMENT} IN @{ITEMS} \ Log ${ELEMENT['healthCheckStatus']} \ ${SDC_DE_HEALTH} Set Variable If (('DE' in '${ELEMENT['healthCheckComponent']}') and ('${ELEMENT['healthCheckStatus']}' == 'UP')) or ('${SDC_DE_HEALTH}'=='UP') UP - Should Be Equal As Strings ${SDC_DE_HEALTH} UP SDC_DE DOWN + Log Console SDC DMaaP Interface Health: ${SDC_DE_HEALTH} Run ASDC Get Request [Documentation] Runs an ASDC get request [Arguments] ${data_path} ${user}=${ASDC_DESIGNER_USER_ID} ${MY_ASDC_BE_ENDPOINT}=${ASDC_BE_ENDPOINT} diff --git a/robot/resources/so/create_cloud_config.robot b/robot/resources/so/create_cloud_config.robot new file mode 100644 index 00000000..be578127 --- /dev/null +++ b/robot/resources/so/create_cloud_config.robot @@ -0,0 +1,42 @@ +*** Settings *** +Documentation Create Cloud Config + +Resource ../json_templater.robot +Resource ../so_interface.robot +Library OperatingSystem +Library Collections + + +*** Variables *** +${CLOUD_CONFIG_PATH} /cloudSite + +${SYSTEM USER} robot-ete +${SO_ADD_CLOUD_CONFIG}= robot/assets/templates/so/create_cloud_config.template + +*** Keywords *** +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} + ${data}= Fill JSON Template File ${SO_ADD_CLOUD_CONFIG} ${arguments} + ${get_resp}= Run SO Catalog Post request ${CLOUD_CONFIG_PATH}/${site_name} ${data} + + ${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 + +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} + ${data}= Fill JSON Template File ${SO_ADD_CLOUD_CONFIG} ${arguments} + ${get_resp}= Run SO Catalog Put request ${CLOUD_CONFIG_PATH}/${site_name} ${data} + Should Be Equal As Strings ${get_resp.status_code} 200 + [Return] ${get_resp} + +Get Cloud Configuration + [Documentation] Gets cloud configuration in SO + [Arguments] ${site_name} + ${get_resp}= Run MSO Catalog Get request ${CLOUD_CONFIG_PATH}/${site_name} + Should Be Equal As Strings ${get_resp.status_code} 200 + + diff --git a/robot/resources/so_interface.robot b/robot/resources/so_interface.robot index 23ab9415..0378caff 100644 --- a/robot/resources/so_interface.robot +++ b/robot/resources/so_interface.robot @@ -113,6 +113,30 @@ Run MSO Post request 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}= + ${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 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 so_catdb ${data_path} data=${data} headers=${headers} + Log Received response from so_catdb ${resp.text} + [Return] ${resp} + +Run SO Catalog Put request + [Documentation] Runs an SO put request + [Arguments] ${data_path} ${data} ${so_port}= + ${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 UUID + ${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} + Run MSO Delete request [Documentation] Runs an MSO Delete request [Arguments] ${data_path} ${data} diff --git a/robot/resources/vid/create_vid_vnf.robot b/robot/resources/vid/create_vid_vnf.robot index 5997b07e..fe0d3e15 100644 --- a/robot/resources/vid/create_vid_vnf.robot +++ b/robot/resources/vid/create_vid_vnf.robot @@ -109,6 +109,8 @@ Create VID VNF module Input Text xpath=//input[@parameter-id='instanceName'] ${vf_module_name} Select From List By Label xpath=//select[@parameter-id='lcpRegion'] ${lcp_region} Select From List By Label xpath=//select[@parameter-id='tenant'] ${tenant} + Wait Until Element Is Visible xpath=//input[@parameter-id='sdncPreload'] ${GLOBAL_VID_UI_TIMEOUT_SHORT} + Wait Until Element Is Enabled xpath=//input[@parameter-id='sdncPreload'] ${GLOBAL_VID_UI_TIMEOUT_SHORT} Select Checkbox xpath=//input[@parameter-id='sdncPreload'] Click Element button=Confirm Wait Until Element Contains xpath=//pre[@class = 'log ng-binding'] requestState timeout=${GLOBAL_VID_UI_TIMEOUT_LONG} diff --git a/robot/testsuites/create-cloud-config.robot b/robot/testsuites/create-cloud-config.robot new file mode 100644 index 00000000..3c1277cb --- /dev/null +++ b/robot/testsuites/create-cloud-config.robot @@ -0,0 +1,17 @@ +*** Settings *** +Documentation SO Cloud Config Test Cases +Test Timeout 1 minute + + +Resource ../resources/so/create_cloud_config.robot + + +*** Test Cases *** +Create Cloud Config Test + [TAGS] mso cloudconfig + # Run Create Cloud Configuration RegionOne RegionOne RegionOne DEFAULT_KEYSTONE identify_url:http://10.12.25.2:5000/v2.0 mso_id:demo mso_pass:encrypted_password admin_tenant:1e097c6713e74fd7ac8e4295e605ee1e member_role:admin identity_server_type:KEYSTONE identity_authentication_type:USERNAME_PASSWORD + Create Cloud Configuration ${GLOBAL_INJECTED_REGION} ${GLOBAL_INJECTED_REGION} ${GLOBAL_INJECTED_REGION} DEFAULT_KEYSTONE ${GLOBAL_INJECTED_KEYSTONE}/${GLOBAL_INJECTED_OPENSTACK_KEYSTONE_API_VERSION} ${GLOBAL_INJECTED_OPENSTACK_USERNAME} ${GLOBAL_INJECTED_OPENSTACK_API_KEY} ${GLOBAL_INJECTED_OPENSTACK_TENANT_ID} admin KEYSTONE USERNAME_PASSWORD + +Get Cloud Config Test + [TAGS] mso cloudconfig + Get Cloud Configuration ${GLOBAL_INJECTED_REGION} -- cgit 1.2.3-korg