diff options
Diffstat (limited to 'robot/resources')
36 files changed, 138 insertions, 268 deletions
diff --git a/robot/resources/aai/create_complex.robot b/robot/resources/aai/create_complex.robot index 185d44d5..e1be288a 100644 --- a/robot/resources/aai/create_complex.robot +++ b/robot/resources/aai/create_complex.robot @@ -43,7 +43,7 @@ Delete Complex If Exists [Documentation] Removes a complex [Arguments] ${physical_location_id} ${get_resp}= Run A&AI Get Request ${COMPLEX_INDEX_PATH}${ROOT_COMPLEX_PATH}/${physical_location_id} - Run Keyword If '${get_resp.status_code}' == '200' Delete Zone Exists ${physical_location_id} ${get_resp.json()} + Run Keyword If '${get_resp.status_code}' == '200' Delete Complex ${physical_location_id} ${get_resp.json()} Delete Complex [Arguments] ${physical_location_id} ${json} diff --git a/robot/resources/aai/create_service.robot b/robot/resources/aai/create_service.robot index bcf14e3d..49864b89 100644 --- a/robot/resources/aai/create_service.robot +++ b/robot/resources/aai/create_service.robot @@ -67,7 +67,7 @@ Get Services Update Service Dictionary [Arguments] ${dict} ${json} ${list}= Evaluate ${json}['service'] - :for ${map} in @{list} + :FOR ${map} IN @{list} \ ${status} ${service_type}= Run Keyword And Ignore Error Get From Dictionary ${map} service-description \ Run Keyword If '${status}' == 'PASS' Set To Dictionary ${dict} ${service_type}=${map} Log ${dict} diff --git a/robot/resources/aai/create_tenant.robot b/robot/resources/aai/create_tenant.robot index 95f1c25a..99d3a08d 100644 --- a/robot/resources/aai/create_tenant.robot +++ b/robot/resources/aai/create_tenant.robot @@ -89,7 +89,7 @@ Get Cloud Region Update Tenant Dictionary [Arguments] ${dict} ${json} ${list}= Evaluate ${json}['tenant'] - :for ${map} in @{list} + :FOR ${map} IN @{list} \ ${status} ${tenant_id}= Run Keyword And Ignore Error Get From Dictionary ${map} tenant-id \ Run Keyword If '${status}' == 'PASS' Set To Dictionary ${dict} ${tenant_id}=${map} Log ${dict} diff --git a/robot/resources/appc_interface.robot b/robot/resources/appc_interface.robot index 91c44c63..2415539c 100644 --- a/robot/resources/appc_interface.robot +++ b/robot/resources/appc_interface.robot @@ -3,8 +3,10 @@ Documentation The main interface for interacting with APP-C. It handles low Library RequestsLibrary Library UUID Library OperatingSystem +Library SeleniumLibrary Library StringTemplater Resource global_properties.robot +Resource browser_setup.robot *** Variables *** ${APPC_INDEX_PATH} /restconf diff --git a/robot/resources/asdc_interface.robot b/robot/resources/asdc_interface.robot index 1160c316..6ffc17e1 100644 --- a/robot/resources/asdc_interface.robot +++ b/robot/resources/asdc_interface.robot @@ -5,7 +5,7 @@ Library UUID Library JSONUtils Library OperatingSystem Library Collections -Library ExtendedSelenium2Library +Library SeleniumLibrary Library HttpLibrary.HTTP Library String Library StringTemplater @@ -87,7 +87,7 @@ Distribute Model From ASDC # TODO: CHECK vCPE models to make sure they aren't broken with the split ${resource_types}= Create Dictionary - : FOR ${zip} IN @{model_zip_path} + :FOR ${zip} IN @{model_zip_path} \ ${loop_catalog_resource_id}= Setup ASDC Catalog Resource ${zip} ${cds} # zip can be vFW.zip or vFWDT_VFWSNK.zip \ ${resource_type_match}= Get Regexp Matches ${zip} ${service}_(.*)\.zip 1 @@ -102,7 +102,7 @@ Distribute Model From ASDC # Spread the icons on the pallette starting on the left ${xoffset}= Set Variable ${0} - : FOR ${vnf} IN @{vnflist} + :FOR ${vnf} IN @{vnflist} \ ${loop_catalog_resource_resp}= Get ASDC Catalog Resource ${resource_types['${vnf}']} \ Set To Dictionary ${catalog_resources} ${resource_types['${vnf}']}=${loop_catalog_resource_resp} \ ${catalog_resource_unique_name}= Add ASDC Resource Instance ${catalog_service_id} ${resource_types['${vnf}']} ${loop_catalog_resource_resp['name']} ${xoffset} @@ -114,7 +114,7 @@ Distribute Model From ASDC # do network ${networklist}= Get From Dictionary ${GLOBAL_SERVICE_GEN_NEUTRON_NETWORK_MAPPING} ${service} ${generic_neutron_net_uuid}= Get Generic NeutronNet UUID - :FOR ${network} in @{networklist} + :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} @@ -137,7 +137,7 @@ Distribute Model From ASDC # on certify it gets a new id ${catalog_service_id}= Certify ASDC Catalog Service ${catalog_service_id} Approve ASDC Catalog Service ${catalog_service_id} - : FOR ${DIST_INDEX} IN RANGE 1 + :FOR ${DIST_INDEX} IN RANGE 1 \ Log Distribution Attempt ${DIST_INDEX} \ Distribute ASDC Catalog Service ${catalog_service_id} \ ${catalog_service_resp}= Get ASDC Catalog Service ${catalog_service_id} @@ -160,7 +160,7 @@ Distribute vCPEResCust Model From ASDC #${catalog_service_id}= Add ASDC Catalog Service ${catalog_service_name} ${catalog_resource_ids}= Create List ${catalog_resources}= Create Dictionary - : FOR ${zip} IN @{model_zip_path} + :FOR ${zip} IN @{model_zip_path} \ ${loop_catalog_resource_id}= Setup ASDC Catalog Resource ${zip} ${cds} \ Append To List ${catalog_resource_ids} ${loop_catalog_resource_id} \ ${loop_catalog_resource_resp}= Get ASDC Catalog Resource ${loop_catalog_resource_id} @@ -189,7 +189,7 @@ Distribute vCPEResCust Model From ASDC ${xoffset}= Set Variable ${100} ${allottedresource_uuid}= Get AllottedResource UUID ${random}= Get Current Date - :FOR ${allottedresource} in @{allottedresource_list} + :FOR ${allottedresource} IN @{allottedresource_list} \ ${loop_catalog_resource_id}= Set Variable ${allottedresource_uuid} \ Append To List ${catalog_resource_ids} ${loop_catalog_resource_id} \ ${loop_catalog_resource_id}= Add ASDC Allotted Resource Catalog Resource 00000 ${allottedresource}_${random} ONAP ${loop_catalog_resource_id} ${allottedresource} @@ -215,7 +215,7 @@ Distribute vCPEResCust Model From ASDC # on certify it gets a new id ${catalog_service_id}= Certify ASDC Catalog Service ${catalog_service_id} Approve ASDC Catalog Service ${catalog_service_id} - : FOR ${DIST_INDEX} IN RANGE 1 + :FOR ${DIST_INDEX} IN RANGE 1 \ Log Distribution Attempt ${DIST_INDEX} \ Distribute ASDC Catalog Service ${catalog_service_id} \ ${catalog_service_resp}= Get ASDC Catalog Service ${catalog_service_id} @@ -227,13 +227,12 @@ Distribute vCPEResCust Model From ASDC Create Allotted Resource Data File [Documentation] Create alloted resource json data file - [Arguments] ${allotted_resource}= Create Dictionary ${allotted_csar_map}= Create Dictionary Set To Dictionary ${allotted_csar_map} tunnelxconn=service-Demovcpevgmux-csar.csar Set To Dictionary ${allotted_csar_map} brg=service-Demovcpevbrgemu-csar.csar ${keys}= Get Dictionary Keys ${allotted_csar_map} - :for ${key} in @{keys} + :FOR ${key} IN @{keys} \ ${csar}= Get From Dictionary ${allotted_csar_map} ${key} \ ${dir} ${ext}= Split String From Right ${csar} - 1 \ Extract Zip File /tmp/csar/${csar} /tmp/csar/${dir} @@ -261,7 +260,6 @@ Download CSAR ${binObj}= Evaluate base64.b64decode("${base64Obj}") modules=base64 Create Binary File ${save_directory}/${csar_file_name} ${binObj} Log To Console ${\n}Downloaded:${csar_file_name} - [Return] Get Generic NeutronNet UUID @@ -279,14 +277,13 @@ Loop Over Check Catalog Service Distributed [Arguments] ${catalog_service_id} # SO watchdog timeout is 300 seconds need buffer ${dist_status}= Set Variable CONTINUE - : FOR ${CHECK_INDEX} IN RANGE 20 + :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' # need a way to exit the loop early on DISTRIBUTION_COMPLETE_ERROR ${dist_status} doesnt work #\ Exit For Loop If '${dist_status}'=='EXIT' Should Be Equal As Strings ${status} PASS - [Return] Setup ASDC Catalog Resource [Documentation] Creates all the steps a vf needs for an asdc catalog resource and returns the id @@ -363,8 +360,6 @@ Setup SDC Catalog Resource GenericNeutronNet Properties \ 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 SDC Catalog Resource AllottedResource Properties @@ -409,7 +404,7 @@ Setup SDC Catalog Resource AllottedResource Inputs # Set vnf inputs ${resp}= Get ASDC Catalog Resource Inputs ${catalog_resource_id} ${dict}= Create Dictionary - :FOR ${comp} in @{resp['inputs']} + :FOR ${comp} IN @{resp['inputs']} \ ${name} Set Variable ${comp['name']} \ ${uid} Set Variable ${comp['uniqueId']} \ Run Keyword If '${name}'=='nf_type' Set To Dictionary ${dict} nf_type=${nf_role} nf_type_uid=${uid} @@ -423,7 +418,7 @@ Setup ASDC Catalog Resource CDS Properties [Arguments] ${catalog_resource_id} # Set vnf module properties ${resp}= Get ASDC Catalog Resource Component Instances ${catalog_resource_id} - :FOR ${comp} in @{resp['componentInstances']} + :FOR ${comp} IN @{resp['componentInstances']} \ ${name} Set Variable ${comp['name']} \ ${uniqueId} Set Variable ${comp['uniqueId']} \ ${actualComponentUid} Set Variable ${comp['actualComponentUid']} @@ -441,7 +436,7 @@ Setup ASDC Catalog Resource CDS Properties # Set vnf inputs ${resp}= Get ASDC Catalog Resource Inputs ${catalog_resource_id} ${dict}= Create Dictionary - :FOR ${comp} in @{resp['inputs']} + :FOR ${comp} IN @{resp['inputs']} \ ${name} Set Variable ${comp['name']} \ ${uid} Set Variable ${comp['uniqueId']} \ Run Keyword If '${name}'=='nf_function' Set To Dictionary ${dict} nf_function=ONAP-FIREWALL nf_function_uid=${uid} @@ -879,7 +874,6 @@ Check Catalog Service Distributed \ ${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 - [Return] Get Catalog Service Distribution Details [Documentation] gets an asdc catalog Service distrbution details diff --git a/robot/resources/browser_setup.robot b/robot/resources/browser_setup.robot index 5d34d3de..f9203f31 100644 --- a/robot/resources/browser_setup.robot +++ b/robot/resources/browser_setup.robot @@ -3,7 +3,7 @@ Documentation The main interface for interacting with VID. It handles low le Library Collections Library OSUtils Library OperatingSystem -Library ExtendedSelenium2Library +Library SeleniumLibrary Resource global_properties.robot *** Variables *** @@ -21,8 +21,6 @@ Setup Browser Firefox ${caps}= Evaluate sys.modules['selenium.webdriver'].common.desired_capabilities.DesiredCapabilities.FIREFOX sys Set To Dictionary ${caps} marionette= Set To Dictionary ${caps} elementScrollBehavior 1 - # TODO - # Figure out how to run FF headless without Xvfb ${wd}= Create WebDriver Firefox capabilities=${caps} Set Global Variable ${GLOBAL_SELENIUM_BROWSER_CAPABILITIES} ${caps} @@ -39,9 +37,9 @@ Setup Browser Firefox Handle Proxy Warning [Documentation] Handle Intermediate Warnings from Proxies - ${status} ${data}= Run Keyword And Ignore Error Variable Should Exist \${GLOBAL_PROXY_WARNING_TITLE} + ${status} ${data}= Run Keyword And Ignore Error Variable Should Exist ${GLOBAL_PROXY_WARNING_TITLE} Return From Keyword if '${status}' != 'PASS' - ${status} ${data}= Run Keyword And Ignore Error Variable Should Exist \${GLOBAL_PROXY_WARNING_CONTINUE_XPATH} + ${status} ${data}= Run Keyword And Ignore Error Variable Should Exist ${GLOBAL_PROXY_WARNING_CONTINUE_XPATH} Return From Keyword if '${status}' != 'PASS' Return From Keyword if "${GLOBAL_PROXY_WARNING_TITLE}" == '' Return From Keyword if "${GLOBAL_PROXY_WARNING_CONTINUE_XPATH}" == '' diff --git a/robot/resources/demo_preload.robot b/robot/resources/demo_preload.robot index 25575e17..ef8bbabf 100644 --- a/robot/resources/demo_preload.robot +++ b/robot/resources/demo_preload.robot @@ -2,6 +2,7 @@ Documentation This test template encapsulates the VNF Orchestration use case. Resource test_templates/model_test_template.robot +Resource test_templates/model_test_template_vcperescust.robot Resource test_templates/vnf_orchestration_test_template.robot Resource asdc_interface.robot Resource so_interface.robot @@ -13,7 +14,7 @@ Library UUID Library Collections Library OperatingSystem Library HttpLibrary.HTTP -Library ExtendedSelenium2Library +Library SeleniumLibrary Library RequestsLibrary *** Variables *** @@ -116,7 +117,7 @@ Preload User Model ${relationships}= Set Variable ${generic_vnf['relationship-list']['relationship']} ${relationship_data}= Get Relationship Data ${relationships} ${customer_id}= Catenate - :for ${r} in @{relationship_data} + :FOR ${r} IN @{relationship_data} \ ${service}= Set Variable If '${r['relationship-key']}' == 'service-subscription.service-type' ${r['relationship-value']} ${service} \ ${service_instance_id}= Set Variable If '${r['relationship-key']}' == 'service-instance.service-instance-id' ${r['relationship-value']} ${service_instance_id} \ ${customer_id}= Set Variable If '${r['relationship-key']}' == 'customer.global-customer-id' ${r['relationship-value']} ${customer_id} @@ -134,7 +135,7 @@ Preload User Model Get Relationship Data [Arguments] ${relationships} - :for ${r} in @{relationships} + :FOR ${r} IN @{relationships} \ ${status} ${relationship_data} Run Keyword And Ignore Error Set Variable ${r['relationship-data']} \ Return From Keyword If '${status}' == 'PASS' ${relationship_data} @@ -184,7 +185,7 @@ Instantiate VNF # 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} + :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} Log to Console Update old vFWCL Policy for ModelInvariantID=${model_invariant_id} @@ -203,7 +204,7 @@ Instantiate Demo VNF # 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} + :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} Log to Console ModelInvariantID=${model_invariant_id} @@ -229,13 +230,13 @@ Save For Delete ${vars}= Catenate ${keys}= Get Dictionary Keys ${dict} - :for ${key} in @{keys} + :FOR ${key} IN @{keys} \ ${value}= Get From Dictionary ${dict} ${key} \ ${vars}= Catenate ${vars}${key} = "${value}"\n ${comma}= Catenate ${vars}= Catenate ${vars}CATALOG_RESOURCE_IDS = [ - :for ${id} in @{CATALOG_RESOURCE_IDS} + :FOR ${id} IN @{CATALOG_RESOURCE_IDS} \ ${vars}= Catenate ${vars}${comma} "${id}" \ ${comma}= Catenate , ${vars}= Catenate ${vars}]\n diff --git a/robot/resources/heatbridge.robot b/robot/resources/heatbridge.robot index c0b9a910..f155c8f3 100644 --- a/robot/resources/heatbridge.robot +++ b/robot/resources/heatbridge.robot @@ -46,7 +46,7 @@ Execute Heatbridge ### Create a vnfc for each vServer ### ${stack_resources}= Get Stack Resources auth ${stack_name} ${stack_id} ${resource_list}= Get From Dictionary ${stack_resources} resources - :FOR ${resource} in @{resource_list} + :FOR ${resource} IN @{resource_list} \ Run Keyword If '${resource['resource_type']}' == 'OS::Nova::Server' Run Create VNFC auth ${resource['physical_resource_id']} ${service} ${keystone_api_version}= Run Keyword If '${GLOBAL_INJECTED_OPENSTACK_KEYSTONE_API_VERSION}'=='' Get KeystoneAPIVersion ... ELSE Set Variable ${GLOBAL_INJECTED_OPENSTACK_KEYSTONE_API_VERSION} @@ -122,7 +122,7 @@ Run Get Generic VNF By VnfId Execute Reverse Heatbridge [Documentation] VID has already torn down the stack, reverse HB Return From Keyword If len(${REVERSE_HEATBRIDGE}) == 0 - :for ${uri} in @{REVERSE_HEATBRIDGE} + :FOR ${uri} IN @{REVERSE_HEATBRIDGE} \ Run Keyword And Ignore Error Delete A&AI Entity ${uri} Generate Reverse Heatbridge From Stack Name @@ -142,10 +142,10 @@ Generate Reverse Heatbridge From Stack Info ${keys}= Create Dictionary region=${region} cloud=${GLOBAL_AAI_CLOUD_OWNER} tenant=${tenant_id} ${stack_resources}= Get Stack Resources auth ${stack_name} ${stack_id} ${resource_list}= Get From Dictionary ${stack_resources} resources - :FOR ${resource} in @{resource_list} + :FOR ${resource} IN @{resource_list} \ Log ${resource} \ Run Keyword If '${resource['resource_type']}' == 'OS::Neutron::Port' Generate Linterface Uri auth ${resource['physical_resource_id']} ${reverse_heatbridge} ${keys} - :FOR ${resource} in @{resource_list} + :FOR ${resource} IN @{resource_list} \ Log ${resource} \ Run Keyword If '${resource['resource_type']}' == 'OS::Nova::Server' Generate Vserver Uri auth ${resource['physical_resource_id']} ${reverse_heatbridge} ${keys} ${resource_list} [Return] ${reverse_heatbridge} diff --git a/robot/resources/music/music_interface.robot b/robot/resources/music/music_interface.robot index 73d393d3..3251e56b 100644 --- a/robot/resources/music/music_interface.robot +++ b/robot/resources/music/music_interface.robot @@ -1,6 +1,5 @@ *** Settings *** Documentation The main interface for interacting with MUSIC. It handles low level stuff like managing the http request library and MUSIC required fields -Library RequestsClientCert Library RequestsLibrary Library UUID diff --git a/robot/resources/nbi_interface.robot b/robot/resources/nbi_interface.robot index 9d5313de..ab0f571e 100644 --- a/robot/resources/nbi_interface.robot +++ b/robot/resources/nbi_interface.robot @@ -1,6 +1,7 @@ *** Settings *** Documentation The main interface for interacting with External API/NBI Library RequestsLibrary +Library Collections Resource global_properties.robot diff --git a/robot/resources/oof_interface.robot b/robot/resources/oof_interface.robot index 987c27fc..de922d3b 100644 --- a/robot/resources/oof_interface.robot +++ b/robot/resources/oof_interface.robot @@ -2,6 +2,7 @@ Documentation The main interface for interacting with OOF: SNIRO and Homing Service Library RequestsLibrary Library UUID +Library OperatingSystem Library String Library DateTime Library Collections @@ -116,7 +117,7 @@ OOF-CMSO Create Schedule ${nodelist}= Create List node1 node2 node3 node4 ${nn}= Catenate 1 # Support up to 4 ChangeWindows - : For ${i} IN RANGE 1 4 + :FOR ${i} IN RANGE 1 4 \ ${today}= Evaluate ((${i}-1)*1440)+${minutesFromNow} \ ${tomorrow} Evaluate ${today}+1440 \ ${last_time} Evaluate ${today}+30 @@ -124,7 +125,7 @@ OOF-CMSO Create Schedule \ ${end_time}= Get Current Date UTC + ${tomorrow} minutes result_format=${OOF_CMSO_UTC} \ Set To Dictionary ${map} start_time${i}=${start_time} end_time${i}=${end_time} ${requestList}= Create List - : For ${vnf} IN @{nodelist} + :FOR ${vnf} IN @{nodelist} \ Set To Dictionary ${map} node${nn} ${vnf} \ ${nn}= Evaluate ${nn}+1 \ Set To DIctionary ${dict} vnfName=${vnf} @@ -166,7 +167,7 @@ OOF-CMSO Json Escape Run OOF-OSDF Post Request [Documentation] Runs a scheduler POST request - [Arguments] ${data_path} ${data}={} ${auth} + [Arguments] ${data_path} ${auth} ${data}={} ${session}= Create Session session ${OOF_OSDF_ENDPOINT} auth=${auth} ${headers}= Create Dictionary Accept=application/json Content-Type=application/json @@ -179,12 +180,12 @@ Run OOF-OSDF Post Homing [Documentation] Runs a osdf homing request ${auth}= Create List ${GLOBAL_OOF_OSDF_USERNAME} ${GLOBAL_OOF_OSDF_PASSWORD} ${data}= Get Binary File ${OOF_OSDF_TEMPLATE_FOLDER}${/}placement_request.json - ${resp}= Run OOF-OSDF Post Request /api/oof/placement/v1 data=${data} auth=${auth} + ${resp}= Run OOF-OSDF Post Request /api/oof/placement/v1 auth=${auth} data=${data} Should Be Equal As Strings ${resp.status_code} 204 Run OOF-OSDF Post PCI-OPT [Documentation] Runs a osdf PCI-OPT request ${auth}= Create List ${GLOBAL_OOF_PCI_USERNAME} ${GLOBAL_OOF_PCI_PASSWORD} ${data}= Get Binary File ${OOF_OSDF_TEMPLATE_FOLDER}${/}pci-opt-request.json - ${resp}= Run OOF-OSDF Post Request /api/oof/pci/v1 data=${data} auth=${auth} + ${resp}= Run OOF-OSDF Post Request /api/oof/pci/v1 auth=${auth} data=${data} Should Be Equal As Strings ${resp.status_code} 204 diff --git a/robot/resources/openstack/keystone_interface.robot b/robot/resources/openstack/keystone_interface.robot index fa37733c..03e94bb0 100644 --- a/robot/resources/openstack/keystone_interface.robot +++ b/robot/resources/openstack/keystone_interface.robot @@ -57,7 +57,7 @@ Get KeystoneAPIVersion ${json}= Parse Json ${resp.content} ${versions}= Get From Dictionary ${json} versions ${values}= Get From Dictionary ${versions} values - : FOR ${value} IN @{values} + :FOR ${value} IN @{values} \ ${status}= Get Variable Value ${value["status"]} \ Run Keyword If '${status}'=='stable' Exit For Loop ${href}= Set Variable ${value["links"][0]["href"]} diff --git a/robot/resources/openstack/neutron_interface.robot b/robot/resources/openstack/neutron_interface.robot index bdb64b98..93563891 100644 --- a/robot/resources/openstack/neutron_interface.robot +++ b/robot/resources/openstack/neutron_interface.robot @@ -88,7 +88,7 @@ Get Openstack Subnet By Name ${resp}= Get Openstack Subnets ${alias} @{list}= Get From Dictionary ${resp} subnets ${returnnet}= Set Variable - :for ${net} in @{list} + :FOR ${net} IN @{list} \ ${name}= Get From Dictionary ${net} name \ ${cidr}= Get From Dictionary ${net} cidr \ ${returnnet}= Set Variable ${net} @@ -100,7 +100,7 @@ Get Openstack IP By Name [Arguments] ${alias} ${network_name} ${cidr} ${ip} ${ports}= Get Openstack Ports For Subnet ${alias} ${network_name} ${cidr} Log ${ports} - :for ${port} in @{ports} + :FOR ${port} IN @{ports} \ Return From Keyword If '${port['fixed_ips'][0]['ip_address']}' == '${ip}' ${port} [Return] None @@ -109,7 +109,7 @@ Get Openstack Ports For Subnet ${net}= Get Openstack Subnet By Name ${alias} ${network_name} ${cidr} ${ports}= Get Openstack Ports ${alias} ${net_ports}= Create List - :for ${port} in @{ports['ports']} + :FOR ${port} IN @{ports['ports']} \ Run Keyword If '${net['network_id']}' == '${port['network_id']}' Append To List ${net_ports} ${port} [Return] ${net_ports} diff --git a/robot/resources/openstack/nova_interface.robot b/robot/resources/openstack/nova_interface.robot index 2c9ec4c5..8b64bb95 100644 --- a/robot/resources/openstack/nova_interface.robot +++ b/robot/resources/openstack/nova_interface.robot @@ -142,7 +142,7 @@ Delete Server Get Id For Name [Arguments] ${list} ${name} - :for ${item} in @{list} + :FOR ${item} IN @{list} \ ${id}= Get From Dictionary ${item} id \ ${n}= Get From Dictionary ${item} name \ Return from Keyword If '${n}' == '${name}' ${id} diff --git a/robot/resources/policy_interface.robot b/robot/resources/policy_interface.robot index 88f2b6f8..66f29f50 100644 --- a/robot/resources/policy_interface.robot +++ b/robot/resources/policy_interface.robot @@ -5,7 +5,12 @@ Library RequestsLibrary Library String Library JSONUtils Library Collections +Library Collections +Library SSHLibrary +Library OperatingSystem +Resource json_templater.robot Resource global_properties.robot +Resource ssh/files.robot *** Variables *** ${POLICY_HEALTH_CHECK_PATH} /healthcheck diff --git a/robot/resources/portal-sdk/portalDef.robot b/robot/resources/portal-sdk/portalDef.robot index 57b6e1bb..41fbeea4 100644 --- a/robot/resources/portal-sdk/portalDef.robot +++ b/robot/resources/portal-sdk/portalDef.robot @@ -1,16 +1,14 @@ *** Settings *** Documentation This is RobotFrame work script -Library ExtendedSelenium2Library +Library SeleniumLibrary Library OperatingSystem -Library ../../library/eteutils/RequestsClientCert.py Library RequestsLibrary -Library ../../library/eteutils/UUID.py -Library ../../library/robot/libraries/DateTime.py +Library UUID +Library DateTime Library Collections -Library ../../library/eteutils/OSUtils.py -Library ../../library/eteutils/StringTemplater.py +Library OSUtils +Library StringTemplater Library String -#Library XvfbRobot Resource ../json_templater.robot Resource ../browser_setup.robot @@ -23,8 +21,8 @@ ${PORTAL_LOGIN_URL} ${PORTAL_URL}${PORTAL_ENV}/login.htm ${PORTAL_HOME_PAGE} ${PORTAL_URL}${PORTAL_ENV}/applicationsHome ${PORTAL_MICRO_ENDPOINT} ${PORTAL_URL}${PORTAL_ENV}/commonWidgets ${PORTAL_HOME_URL} ${PORTAL_URL}${PORTAL_ENV}/applicationsHome -${PORTAL_HEALTH_CHECK_PATH} /ONAPPORTAL/portalApi/healthCheck -${PORTAL_XDEMPAPP_REST_URL} http://portal-sdk:8080/ONAPPORTALSDK/api/v2 +${PORTAL_HEALTH_CHECK_PATH} ${PORTAL_ENV}/portalApi/healthCheck +${PORTAL_XDEMPAPP_REST_URL} ${PORTAL_URL}/ONAPPORTALSDK/api/v2 ${PORTAL_ASSETS_DIRECTORY} ../../assets/widgets/ ${GLOBAL_APPLICATION_ID} robot-functional ${GLOBAL_PORTAL_ADMIN_USER} demo @@ -33,14 +31,11 @@ ${GLOBAL_MSO_STATUS_PATH} /ecomp/mso/infra/orchestrationRequests/v2/ ${GLOBAL_BUILD_NUMBER} 0 ${GLOBAL_VM_PRIVATE_KEY} ${EXECDIR}/robot/assets/keys/robot_ssh_private_key.pvt ${jira} jira -${RESOURCE_PATH} ONAPPORTAL/auxapi/ticketevent +${RESOURCE_PATH} ${PORTAL_URL}/auxapi/ticketevent ${portal_Template} ${CURDIR}/portal.template -${Result} FALSE -${td_id} 0 -${download_link_id} 0 -${HEADLESS} False +${download_link_id} 0 *** Keywords *** @@ -165,8 +160,7 @@ Portal admin Add Application admin User New user Input Text xpath=//input[@ng-model='searchUsers.newUser.loginPwd'] ${GLOBAL_PORTAL_ADMIN_PWD} Input Text xpath=//input[@ng-model='searchUsers.newUser.loginPwdCheck'] ${GLOBAL_PORTAL_ADMIN_PWD} Click Button xpath=//button[@ng-click='searchUsers.addNewUserFun()'] - - ${Result}= Get Matching XPath Count xpath=//*[contains(text(),'User with same loginId already exists')] + ${Result}= Get Element Count xpath=//*[contains(text(),'User with same loginId already exists')] #log ${Result} #${type_result}= Evaluate type(${Result}) @@ -212,7 +206,7 @@ Portal admin Add Standard User New user Input Text xpath=//input[@ng-model='searchUsers.newUser.loginPwdCheck'] ${GLOBAL_PORTAL_ADMIN_PWD} Click Button xpath=//button[@ng-click='searchUsers.addNewUserFun()'] - ${Result}= Get Matching XPath Count xpath=//*[contains(text(),'User with same loginId already exists')] + ${Result}= Get Element Count xpath=//*[contains(text(),'User with same loginId already exists')] #log ${Result} #${type_result}= Evaluate type(${Result}) @@ -907,7 +901,7 @@ Admin widget download Wait until page contains Element xpath=//a[@title='Widget Onboarding'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT} Click Link xpath=//a[@title='Widget Onboarding'] Wait until page contains Element xpath=//table[@class='ng-scope'] - ${td_id}= get element attribute xpath=//*[contains(text(),'Events')]@id + ${td_id}= get element attribute xpath=//*[contains(text(),'Events')] id log ${td_id} ${test}= Get Substring ${td_id} -1 log ${test} diff --git a/robot/resources/portal-sdk/portalSdkDef.robot b/robot/resources/portal-sdk/portalSdkDef.robot index 1efb1413..16cef97b 100644 --- a/robot/resources/portal-sdk/portalSdkDef.robot +++ b/robot/resources/portal-sdk/portalSdkDef.robot @@ -1,60 +1,10 @@ *** Settings *** Documentation This is RobotFrame work script -Library ExtendedSelenium2Library -Library OperatingSystem -#Library XvfbRobot +Library SeleniumLibrary -*** Variables *** -${PORTAL_SDK_URL} http://portal.api.simpledemo.onap.org:8990 -${PORTAL_SDK_ENV} /ONAPPORTALSDK -${PORTAL_SDK_LOGIN_URL} ${PORTAL_SDK_URL}${PORTAL_ENV}/login.htm -${PORTAL_SDK_HOME_PAGE} ${PORTAL_SDK_URL}${PORTAL_ENV}/welcome -${PORTAL_SDK_MICRO_ENDPOINT} ${PORTAL_SDK_URL}${PORTAL_ENV}/commonWidgets -${PORTAL_SDK_HOME_URL} ${PORTAL_SDK_URL}${PORTAL_ENV}/applicationsHome -${GLOBAL_APPLICATION_ID} robot-functional -${GLOBAL_PORTAL_ADMIN_USER} demo -${GLOBAL_PORTAL_ADMIN_PWD} demo -${GLOBAL_SELENIUM_BROWSER} chrome -${GLOBAL_SELENIUM_BROWSER_CAPABILITIES} Create Dictionary -${GLOBAL_SELENIUM_DELAY} 0 -${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT} 5 -${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT} 15 -${GLOBAL_BUILD_NUMBER} 0 -${GLOBAL_VM_PRIVATE_KEY} ${EXECDIR}/robot/assets/keys/robot_ssh_private_key.pvt - -#*** Test Cases *** - *** Keywords *** -SDKPortal admin Login To Portal GUI - [Documentation] Logs into Portal GUI - # Setup Browser - # Start Virtual Display 1920 1080 - Open Browser ${PORTAL_SDK_LOGIN_URL} chrome - # Go To ${PORTAL_SDK_LOGIN_URL} - Maximize Browser Window - Set Selenium Speed ${GLOBAL_SELENIUM_DELAY} - Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT} - Log Logging in to ${PORTAL_SDK_URL}${PORTAL_SDK_ENV} - # Handle Proxy Warning - Title Should Be Login - Input Text xpath=//input[@id='loginId'] ${GLOBAL_PORTAL_ADMIN_USER} - Input Password xpath=//input[@id='password'] ${GLOBAL_PORTAL_ADMIN_PWD} - Click Element //*[@id="loginBtn"] - Wait Until Page Contains Element xpath=//img[@src='app/fusionapp/icons/logo_onap_transbg.png'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT} - Log Logged in to ${PORTAL_SDK_URL}${PORTAL_SDK_ENV} - -SDKPortalAdmin Navigation Application Link Tab - [Documentation] Logs into Portal GUI as Portal admin - Comment Click Element xpath=.//h3[contains(text(),'xDemo App')]/following::div[1] - Comment Go To ${PORTAL_SDK_HOME_PAGE} - Comment Dismiss Alert accept=false - #Scroll Element Into View xpath=//span[@id='tab-Home'] - #Click Element xpath=//span[@id='tab-Home'] - #Click Element xpath=(//span[@id='tab-xDemo-App']/following::i[@class='ion-close-round'])[1] - Comment Click Element xpath=.//h3[contains(text(),'xDemo App')]/following::div[1] - Validate SDK Sub Menu [Documentation] Logs into SDK GUI as Portal admin Page Should Contain Home @@ -132,6 +82,4 @@ Click Admin and validate sub Menu Click Link xpath=//a[@id='parent-item-Admin'] Click Link xpath=//a[@id='parent-item-Admin'] Click Link xpath=//a[contains(@title,'Usage')] - Page Should Contain Current Usage - - + Page Should Contain Current Usage
\ No newline at end of file diff --git a/robot/resources/portal_interface.robot b/robot/resources/portal_interface.robot index 2281b1eb..67c98889 100644 --- a/robot/resources/portal_interface.robot +++ b/robot/resources/portal_interface.robot @@ -3,7 +3,7 @@ Documentation The main interface for interacting with Portal. It handles low l Library RequestsClientCert Library RequestsLibrary Library UUID -Library ExtendedSelenium2Library +Library SeleniumLibrary Library Collections Library String @@ -59,6 +59,12 @@ Run Portal Application Access Tests Run Portal Application Login Test demo demo123456! gridster-Policy-icon-link tabframe-Policy Policy Editor Close All Browsers +Login To Portal GUI And Go Home + [Documentation] Logs in to Portal GUI + [Arguments] ${loginId} ${password} + Login To Portal GUI ${loginId} ${password} + Go To Portal HOME + Login To Portal GUI [Documentation] Logs in to Portal GUI [Arguments] ${loginId} ${password} @@ -66,7 +72,6 @@ Login To Portal GUI ### revert to local Setup Browser for Login test Setup Browser Go To ${PORTAL_LOGIN_URL} - #Maximize Browser Window Set Selenium Speed ${GLOBAL_SELENIUM_DELAY} Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT} Log Logging in to ${PORTAL_ENDPOINT}${PORTAL_ENV} @@ -74,11 +79,17 @@ Login To Portal GUI Title Should Be Login Input Text xpath=//input[@ng-model='loginId'] ${loginId} Input Password xpath=//input[@ng-model='password'] ${password} - #Click Button xpath=//a[@ng-click='loginExternal();'] Click Element xpath=//a[@id='loginBtn'] Wait Until Page Contains Applications ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT} Log Logged in to ${PORTAL_ENDPOINT}${PORTAL_ENV} Log To Console ${loginId} SUCCESS + +Logout From Portal GUI + [Documentation] Logs out of Portal GUI + Go To ${PORTAL_LOGIN_URL} + Click Element xpath=//div[@id='header-user-icon'] + Run Keyword And Ignore Error Click Button xpath=//button[contains(.,'Log out')] + Log Logged out of ${PORTAL_ENDPOINT}${PORTAL_ENV} Run Portal Application Login Test [Documentation] Login to Portal Application diff --git a/robot/resources/sdngc_interface.robot b/robot/resources/sdngc_interface.robot index 81642bef..0570be8a 100644 --- a/robot/resources/sdngc_interface.robot +++ b/robot/resources/sdngc_interface.robot @@ -3,7 +3,7 @@ Documentation The main interface for interacting with SDN-GC. It handles low Library RequestsLibrary Library UUID Library OperatingSystem -Library ExtendedSelenium2Library +Library SeleniumLibrary Library Collections Library String Library StringTemplater @@ -86,7 +86,7 @@ Preload Vnf ${base_vf_module_type}= Catenate ${closedloop_vf_module}= Create Dictionary ${templates}= Get From Dictionary ${GLOBAL_SERVICE_TEMPLATE_MAPPING} ${service} - :for ${vf_module} in @{vf_modules} + :FOR ${vf_module} IN @{vf_modules} \ ${vf_module_type}= Get From Dictionary ${vf_module} name # need to pass in vnf_index if non-zero \ ${dict} Run Keyword If "${generic_vnf_name}".endswith('0') Get From Mapping With Index ${templates} ${vf_module} 0 @@ -117,7 +117,7 @@ Get From Mapping With Index [Documentation] Retrieve the appropriate prelad template entry for the passed vf_module [Arguments] ${templates} ${vf_module} ${vnf_index}=0 ${vf_module_name}= Get From DIctionary ${vf_module} name - :for ${template} in @{templates} + :FOR ${template} IN @{templates} \ Return From Keyword If '${template['name_pattern']}' in '${vf_module_name}' and ('${template['vnf_index']}' == '${vnf_index}') ${template} ${result}= Create Dictionary [Return] ${result} @@ -126,7 +126,7 @@ Get From Mapping [Documentation] Retrieve the appropriate prelad template entry for the passed vf_module [Arguments] ${templates} ${vf_module} ${vf_module_name}= Get From DIctionary ${vf_module} name - :for ${template} in @{templates} + :FOR ${template} IN @{templates} \ Return From Keyword If '${template['name_pattern']}' in '${vf_module_name}' ${template} ${result}= Create Dictionary [Return] ${result} @@ -176,7 +176,7 @@ Get Template Parameters ${defaults}= Get From Dictionary ${GLOBAL_PRELOAD_PARAMETERS} defaults # add all of the defaults to template... @{keys}= Get Dictionary Keys ${defaults} - :for ${key} in @{keys} + :FOR ${key} IN @{keys} \ ${value}= Get From Dictionary ${defaults} ${key} \ Set To Dictionary ${template} ${key} ${value} @@ -191,7 +191,7 @@ Get Template Parameters Resolve Values Into Dictionary [Arguments] ${valuemap} ${from} ${to} ${keys}= Get Dictionary Keys ${from} - :for ${key} in @{keys} + :FOR ${key} IN @{keys} \ ${value}= Get From Dictionary ${from} ${key} \ ${value}= Template String ${value} ${valuemap} \ Set To Dictionary ${to} ${key} ${value} @@ -200,7 +200,7 @@ Resolve VNF Parameters Into Array [Arguments] ${valuemap} ${from} ${vnf_parameters}= Create List ${keys}= Get Dictionary Keys ${from} - :for ${key} in @{keys} + :FOR ${key} IN @{keys} \ ${value}= Get From Dictionary ${from} ${key} \ ${value}= Template String ${value} ${valuemap} \ ${parameter}= Create Dictionary vnf-parameter-name=${key} vnf-parameter-value=${value} diff --git a/robot/resources/sms_interface.robot b/robot/resources/sms_interface.robot index dd2cabeb..81d728f8 100644 --- a/robot/resources/sms_interface.robot +++ b/robot/resources/sms_interface.robot @@ -1,6 +1,5 @@ *** Settings *** Documentation The main interface for interacting with SMS. -Library RequestsClientCert Library RequestsLibrary Library UUID diff --git a/robot/resources/so/direct_instantiate.robot b/robot/resources/so/direct_instantiate.robot index 5548c937..72a92df0 100644 --- a/robot/resources/so/direct_instantiate.robot +++ b/robot/resources/so/direct_instantiate.robot @@ -6,10 +6,7 @@ Library Collections Library String Library DateTime Library SoUtils - - -*** Variables *** - +Resource ../global_properties.robot *** Keywords *** Instantiate Service Direct To SO @@ -23,7 +20,7 @@ Instantiate Service Direct To SO ${preload_dict}= Copy Dictionary ${GLOBAL_PRELOAD_PARAMETERS['defaults']} ${template}= Create Dictionary @{keys}= Get Dictionary Keys ${preload_dict} - :for ${key} in @{keys} + :FOR ${key} IN @{keys} \ ${value}= Get From Dictionary ${preload_dict} ${key} \ ${tmp_value}= Set Variable If 'GLOBAL_' in $value ${value} \ ${tmp_value}= Run Keyword If 'GLOBAL_' in $value Replace String ${tmp_value} \$ ${EMPTY} diff --git a/robot/resources/ssh/processes.robot b/robot/resources/ssh/processes.robot index 2ab6a14a..8b5cf157 100644 --- a/robot/resources/ssh/processes.robot +++ b/robot/resources/ssh/processes.robot @@ -28,7 +28,7 @@ Create Process Map [Arguments] ${input} @{lines}= Split To Lines ${input} ${map}= Create Dictionary - :for ${line} in @{lines} + :FOR ${line} IN @{lines} \ @{parts}= Split String ${line} max_split=7 \ ${pid}= Catenate ${parts[1]} \ ${name}= Catenate ${parts[7]} @@ -57,7 +57,7 @@ Is Process on Host ${pass} ${map}= Run Keyword and Ignore Error Grep Processes ${process_name} @{pids}= Get Dictionary Keys ${map} ${foundpid}= Catenate "" - :for ${pid} in @{pids} + :FOR ${pid} IN @{pids} \ ${process_cmd}= Get From Dictionary ${map} ${pid} \ ${status} ${value}= Run Keyword And Ignore Error Should Match Regexp ${process_cmd} ${process_name} \ Run Keyword If '${status}' == 'PASS' Set Test Variable ${foundpid} ${pid} diff --git a/robot/resources/stack_validation/darkstat_interface.robot b/robot/resources/stack_validation/darkstat_interface.robot deleted file mode 100644 index 3537408a..00000000 --- a/robot/resources/stack_validation/darkstat_interface.robot +++ /dev/null @@ -1,82 +0,0 @@ -*** Settings *** -Documentation The main interface for interacting with A&AI. It handles low level stuff like managing the http request library and A&AI required fields -Library ExtendedSelenium2Library -Library StringTemplater -Library UUID -Library OperatingSystem -Resource ../global_properties.robot -Resource ../browser_setup.robot - -*** Variables *** -${SNK_HOSTS_TEMPLATE} http://\${host}:\${port}/hosts/ -${SNK_HOME_TEMPLATE} http://\${host}:\${port}/ -${SNK_PATH} -${SNK_PORT} 667 -${BYTES_PER_PACKET} 29 -${PACKETS_PER_SECOND_PER_STREAM} 11 -${MONITOR_INTERVAL_IN_SECONDS} 4 - -*** Keywords *** -Get Darkstat Bytes In - [Documentation] Get bytes received on the passed interface for the given interval - [Arguments] ${host} ${interface} ${interval}=${MONITOR_INTERVAL_IN_SECONDS} - ${map}= Create Dictionary host=${host} port=${SNK_PORT} path=${SNK_PATH} - ${url}= Template String ${SNK_HOSTS_TEMPLATE} ${map} - Connect to Darkstat ${host} ${url} - Title Should Be Hosts (darkstat3 eth1) - ${initial_bytes}= Get Current Bytes In ${interface} - Sleep ${interval} - Go To ${url} - ${new_bytes}= Get Current Bytes In ${interface} - ${return_bytes}= Evaluate int(${new_bytes}) - int(${initial_bytes}) - [Return] ${return_bytes} - -Get Darkstat Packets In - [Documentation] Get bytes received on the passed interface for the given interval - [Arguments] ${host} ${interval}=${MONITOR_INTERVAL_IN_SECONDS} - ${map}= Create Dictionary host=${host} port=${SNK_PORT} path=${SNK_PATH} - ${url}= Template String ${SNK_HOME_TEMPLATE} ${map} - Connect to Darkstat ${host} ${url} - Title Should Be Graphs (darkstat3 eth1) - ${initial_pkts}= Get Current Packets In - Sleep ${interval} - Go To ${url} - ${new_pkts}= Get Current Packets In - ${return_pkts}= Evaluate int(${new_pkts}) - int(${initial_pkts}) - [Return] ${return_pkts} - - -Connect to Darkstat - [Documentation] COnnects to the Darkstat port on passed host - [Arguments] ${host} ${url} - ## Being managed by the test case - ##Setup Browser - Go To ${url} - Maximize Browser Window - Set Selenium Speed ${GLOBAL_SELENIUM_DELAY} - Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT} - Log Logging in to ${url} - Handle Proxy Warning - - -Get Current Bytes In - [Documentation] Retrieves packets input from given host from current Darkstats hosts page - [Arguments] ${interface} - ${bytes}= Get Text xpath=//tr[td/a[text() = '${interface}']]/td[4] - ${bytes}= Evaluate ${bytes.replace(',', '')} - [Return] ${bytes} - -Get Current Packets In - [Documentation] Retrieves packets input from given host from current Darkstats hosts page - ${bytes}= Get Text xpath=//span[@id = 'tp'] - ${bytes}= Evaluate ${bytes.replace(',', '')} - [Return] ${bytes} - - -Get Expected Range For Number Of Streams - [Documentation] Calculates the expected range of bytes for an interval for the given number of streams - [Arguments] ${number_of_streams} - ${bytes_per_second}= Evaluate ${BYTES_PER_PACKET}*(${PACKETS_PER_SECOND_PER_STREAM}*${number_of_streams}) - ${low_bytes}= Evaluate (${MONITOR_INTERVAL_IN_SECONDS}-1)*${bytes_per_second} - ${high_bytes}= Evaluate (${MONITOR_INTERVAL_IN_SECONDS}+1)*${bytes_per_second} - [Return] ${low_bytes} ${high_bytes}
\ No newline at end of file diff --git a/robot/resources/stack_validation/packet_generator_interface.robot b/robot/resources/stack_validation/packet_generator_interface.robot index cc9ba04f..c75e61b5 100644 --- a/robot/resources/stack_validation/packet_generator_interface.robot +++ b/robot/resources/stack_validation/packet_generator_interface.robot @@ -47,7 +47,7 @@ Enable Streams ${streams}= Set Variable ${comma}= Set Variable ${stream_count}= Evaluate ${stream_count}+1 - :for ${i} in Range 1 ${stream_count} + :FOR ${i} IN RANGE 1 ${stream_count} \ ${name}= Catenate ${prefix}${i} \ ${map}= Create Dictionary stream=${name} \ ${one}= Fill JSON Template File ${PGN_ENABLE_STREAM_TEMPLATE} ${map} diff --git a/robot/resources/stack_validation/policy_check_vfw.robot b/robot/resources/stack_validation/policy_check_vfw.robot index 6876748c..35f7dea3 100644 --- a/robot/resources/stack_validation/policy_check_vfw.robot +++ b/robot/resources/stack_validation/policy_check_vfw.robot @@ -8,16 +8,16 @@ Library JSONUtils Library OpenstackLibrary Library HEATUtils Library Collections -LIbrary String -Resource ../../resources/openstack/keystone_interface.robot -Resource ../../resources/openstack/nova_interface.robot -Resource ../../resources/openstack/heat_interface.robot -Resource ../../resources/ssh/files.robot -Resource ../../resources/ssh/processes.robot +Library String +Resource ../openstack/keystone_interface.robot +Resource ../openstack/nova_interface.robot +Resource ../openstack/heat_interface.robot +Resource ../ssh/files.robot +Resource ../ssh/processes.robot +Resource ../demo_preload.robot Resource packet_generator_interface.robot -Resource darkstat_interface.robot Resource validate_common.robot -Resource ../../resources/test_templates/vnf_orchestration_test_template.robot +Resource ../test_templates/vnf_orchestration_test_template.robot *** Variables *** @@ -92,7 +92,7 @@ Policy Check vLB Stack Get DNSScaling Prefix ${mapping}= Get From Dictionary ${GLOBAL_SERVICE_TEMPLATE_MAPPING} vLB - :for ${dict} in @{mapping} + :FOR ${dict} IN @{mapping} \ Return From Keyword If '${dict['isBase']}' == 'false' ${dict['prefix']} [Return] None diff --git a/robot/resources/stack_validation/validate_common.robot b/robot/resources/stack_validation/validate_common.robot index 8b292131..d189258e 100644 --- a/robot/resources/stack_validation/validate_common.robot +++ b/robot/resources/stack_validation/validate_common.robot @@ -79,7 +79,7 @@ Find Openstack 2 Get V4 IP [Arguments] ${ipmaps} - :for ${ipmap} in @{ipmaps} + :FOR ${ipmap} IN @{ipmaps} \ ${ip} Get From Dictionary ${ipmap} addr \ ${version} Get From Dictionary ${ipmap} version \ Return from Keyword if '${version}' == '4' ${ip} @@ -88,7 +88,7 @@ Get V4 IP Get V4 IP Openstack [Arguments] ${addresses} ${testtype} ${ipmaps}= Get From Dictionary ${addresses} ${testtype} - :for ${ipmap} in @{ipmaps} + :FOR ${ipmap} IN @{ipmaps} \ ${ip} Get From Dictionary ${ipmap} addr \ ${version} Get From Dictionary ${ipmap} version \ Return from Keyword if '${version}'=='4' ${ip} @@ -96,7 +96,7 @@ Get V4 IP Openstack Get V4 IP Openstack 2 [Arguments] ${ipmaps} ${testtype} - :for ${ipmap} in @{ipmaps} + :FOR ${ipmap} IN @{ipmaps} \ ${type} Get From Dictionary ${ipmap} OS-EXT-IPS:type \ ${ip} Get From Dictionary ${ipmap} addr \ ${version} Get From Dictionary ${ipmap} version diff --git a/robot/resources/test_templates/model_test_template.robot b/robot/resources/test_templates/model_test_template.robot index 981e1c9d..47083c3b 100644 --- a/robot/resources/test_templates/model_test_template.robot +++ b/robot/resources/test_templates/model_test_template.robot @@ -29,7 +29,7 @@ Model Distribution For Directory ${service_name}= Catenate ${service} ${uuid} ${shortened_uuid}= Evaluate str("${service_name}")[:23] ${catalog_service_name}= Set Variable If '${catalog_service_name}' =='' ${shortened_uuid} ${catalog_service_name} - :for ${directory} in @{directory_list} + :FOR ${directory} IN @{directory_list} \ ${zipname}= Replace String ${directory} / _ \ ${zip}= Catenate ${ASDC_ZIP_DIRECTORY}/${zipname}.zip \ ${folder}= Catenate ${ASDC_ASSETS_DIRECTORY}/${directory} @@ -55,7 +55,7 @@ Teardown Models [Documentation] Clean up at the end of the test [Arguments] ${catalog_service_id} ${catalog_resource_ids} Return From Keyword If '${catalog_service_id}' == '' - :for ${catalog_resource_id} in @{catalog_resource_ids} + :FOR ${catalog_resource_id} IN @{catalog_resource_ids} \ ${resourece_json}= Mark ASDC Catalog Resource Inactive ${catalog_resource_id} ${service_json}= Mark ASDC Catalog Service Inactive ${catalog_service_id} ${services_json}= Delete Inactive ASDC Catalog Services diff --git a/robot/resources/test_templates/model_test_template_vcperescust.robot b/robot/resources/test_templates/model_test_template_vcperescust.robot index 127decbe..17e3965d 100644 --- a/robot/resources/test_templates/model_test_template_vcperescust.robot +++ b/robot/resources/test_templates/model_test_template_vcperescust.robot @@ -29,7 +29,7 @@ Model Distribution For vCPEResCust Directory ${service_name}= Catenate ${service} ${uuid} ${shortened_uuid}= Evaluate str("${service_name}")[:23] ${catalog_service_name}= Set Variable If '${catalog_service_name}' =='' ${shortened_uuid} ${catalog_service_name} - :for ${directory} in @{directory_list} + :FOR ${directory} IN @{directory_list} \ ${zipname}= Replace String ${directory} / _ \ ${zip}= Catenate ${ASDC_ZIP_DIRECTORY}/${zipname}.zip \ ${folder}= Catenate ${ASDC_ASSETS_DIRECTORY}/${directory} @@ -56,7 +56,7 @@ Teardown Models [Documentation] Clean up at the end of the test [Arguments] ${catalog_service_id} ${catalog_resource_ids} Return From Keyword If '${catalog_service_id}' == '' - :for ${catalog_resource_id} in @{catalog_resource_ids} + :FOR ${catalog_resource_id} IN @{catalog_resource_ids} \ ${resourece_json}= Mark ASDC Catalog Resource Inactive ${catalog_resource_id} ${service_json}= Mark ASDC Catalog Service Inactive ${catalog_service_id} ${services_json}= Delete Inactive ASDC Catalog Services diff --git a/robot/resources/test_templates/pnf_registration_without_SO_template.robot b/robot/resources/test_templates/pnf_registration_without_SO_template.robot index fdd9dc4f..09655b51 100644 --- a/robot/resources/test_templates/pnf_registration_without_SO_template.robot +++ b/robot/resources/test_templates/pnf_registration_without_SO_template.robot @@ -5,6 +5,7 @@ Resource ../mr_interface.robot Resource ../json_templater.robot Library OpenstackLibrary Library OperatingSystem +Library RequestsLibrary Library UUID Library Collections Library JSONUtils diff --git a/robot/resources/test_templates/vnf_orchestration_test_template.robot b/robot/resources/test_templates/vnf_orchestration_test_template.robot index b3a4bdda..ec22265b 100644 --- a/robot/resources/test_templates/vnf_orchestration_test_template.robot +++ b/robot/resources/test_templates/vnf_orchestration_test_template.robot @@ -19,7 +19,7 @@ Resource ../heatbridge.robot Library OpenstackLibrary -Library ExtendedSelenium2Library +Library SeleniumLibrary Library UUID Library Collections Library JSONUtils @@ -71,7 +71,7 @@ Orchestrate VNF ${vnf_name_index}= Set Variable 0 ${vf_module_name_list}= Create List ${uuid}= Evaluate str("${uuid}")[:8] - :for ${vnf} in @{vnflist} + :FOR ${vnf} IN @{vnflist} # APPC max is 50 characters \ ${vnf_name}= Catenate Ete_${vnf}_${uuid}_${vnf_name_index} \ ${vf_module_name}= Catenate Vfmodule_Ete_${vnf}_${uuid}_${vnf_name_index} @@ -118,7 +118,7 @@ Orchestrate Demo VNF Validate Service Instance ${service_instance_id} ${service} ${customer_name} ${vnflist}= Get From Dictionary ${GLOBAL_SERVICE_VNF_MAPPING} ${service} ${generic_vnfs}= Create Dictionary - :for ${vnf} in @{vnflist} + :FOR ${vnf} IN @{vnflist} \ ${vnf_name}= Catenate Ete_${vnf}_${uuid} \ ${vf_module_name}= Catenate Vfmodule_Demo_${vnf}_${uuid} \ ${vnf_type}= Set Variable ${vnf_json_resources['${vnf}']['vnf_type']} @@ -160,7 +160,7 @@ Get Catalog Resource ${base_name}= Get Name Pattern ${vnf} ${keys}= Get Dictionary Keys ${resources} - :for ${key} in @{keys} + :FOR ${key} IN @{keys} \ ${cr}= Get From Dictionary ${resources} ${key} \ Return From Keyword If '${base_name}' in '${cr['allArtifacts']['heat1']['artifactDisplayName']}' ${cr} \ Run Keyword If 'heat2' in ${cr['allArtifacts']} Return From Keyword If '${base_name}' in '${cr['allArtifacts']['heat2']['artifactDisplayName']}' ${cr} @@ -170,7 +170,7 @@ Get Name Pattern [Documentation] To support services with multiple VNFs, we need to dig the vnf type out of the SDC catalog resources to select in the VID UI [Arguments] ${vnf} ${list}= Get From Dictionary ${GLOBAL_SERVICE_TEMPLATE_MAPPING} ${vnf} - :for ${dict} in @{list} + :FOR ${dict} IN @{list} \ ${base_name}= Get From Dictionary ${dict} name_pattern \ Return From Keyword If '${dict['isBase']}' == 'true' ${base_name} Fail Unable to locate base name pattern @@ -237,23 +237,23 @@ Delete VNF [Documentation] Called at the end of a test case to tear down the VNF created by Orchestrate VNF ${lcp_region}= Get Openstack Region ${list}= Create List - Set Test Variable ${KEYPAIRS} ${list} # remove duplicates, sort vFW-> vPKG , revers to get vPKG > vFWSNK ${sorted_stack_names}= Create List ${sorted_stack_names}= Remove Duplicates ${STACK_NAMES} Sort List ${sorted_stack_names} Reverse List ${sorted_stack_names} - :for ${stack} in @{sorted_stack_names} - \ Get Stack Keypairs ${stack} + :FOR ${stack} IN @{sorted_stack_names} + \ ${keypair_name}= Get Stack Keypairs ${stack} + \ Append To List ${list} ${keypair_name} Teardown VVG Server #Teardown VLB Closed Loop Hack Run Keyword and Ignore Error Teardown VID ${SERVICE_INSTANCE_ID} ${lcp_region} ${TENANT_NAME} ${CUSTOMER_NAME} # - :for ${stack} in @{sorted_stack_names} + :FOR ${stack} IN @{sorted_stack_names} \ Run Keyword and Ignore Error Teardown Stack ${stack} \ Log Stack Deleted ${stack} # only needed if stack deleted but not keypair - :for ${key_pair} in @{KEYPAIRS} + :FOR ${key_pair} IN @{list} \ Run Keyword and Ignore Error Delete Stack Keypair ${key_pair} \ Log Key pair Deleted ${key_pair} Log VNF Deleted @@ -282,7 +282,7 @@ Get Stack Keypairs Log ${stack_info} ${stack_id}= Get From Dictionary ${stack_info} id ${key_pair_status} ${keypair_name}= Run Keyword And Ignore Error Get From Dictionary ${stack_info} key_name - Append To List ${KEYPAIRS} ${keypair_name} + [Return] ${keypair_name} Delete Stack Keypair [Documentation] Delete keypairs from openstack diff --git a/robot/resources/test_templates/vnf_orchestration_with_cds_test_template.robot b/robot/resources/test_templates/vnf_orchestration_with_cds_test_template.robot index 4775dcc2..e5626e6f 100644 --- a/robot/resources/test_templates/vnf_orchestration_with_cds_test_template.robot +++ b/robot/resources/test_templates/vnf_orchestration_with_cds_test_template.robot @@ -22,9 +22,9 @@ Resource ../json_templater.robot Resource ../so_interface.robot Library OpenstackLibrary -Library ExtendedSelenium2Library Library UUID Library Collections +Library String Library JSONUtils Library RequestsLibrary @@ -89,7 +89,7 @@ Orchestrate VNF With CDS ${list}= Create List ${vnfs}= Get From Dictionary ${jsondata['topology_template']} node_templates ${keys}= Get Dictionary Keys ${vnfs} - :for ${key} in @{keys} + :FOR ${key} IN @{keys} \ ${vnf}= Get From Dictionary ${vnfs} ${key} \ Get VNF Info ${key} ${vnf} ${dict} \ ${vf_modules}= Get From Dictionary ${jsondata['topology_template']} groups @@ -136,7 +136,7 @@ Get VFModule Info ${keys}= Get Dictionary Keys ${vfModules} ${data}= Catenate ${delim}= Catenate - :for ${key} in @{keys} + :FOR ${key} IN @{keys} \ ${module}= Get From Dictionary ${vfModules} ${key} \ Log to console ${vnf} ${key} \ Run keyword if "${vnf}" in "${key}" set vfmodule param ${key} ${module} ${dict} diff --git a/robot/resources/vid/create_service_instance.robot b/robot/resources/vid/create_service_instance.robot index 719b85d6..112da109 100644 --- a/robot/resources/vid/create_service_instance.robot +++ b/robot/resources/vid/create_service_instance.robot @@ -3,7 +3,7 @@ Documentation Creates VID Service Instance ... ... Creates VID Service Instance -Library ExtendedSelenium2Library +Library SeleniumLibrary Library UUID Library String Library DateTime @@ -26,8 +26,8 @@ Create VID Service Instance Select From List When Enabled //select[@prompt='Select Project Name'] ${project_name} timeout=${GLOBAL_VID_UI_TIMEOUT_LONG} Select From List When Enabled //select[@prompt='Select Owning Entity'] ${owning_entity} timeout=${GLOBAL_VID_UI_TIMEOUT_LONG} Capture Page Screenshot - Xpath Should Match X Times //input[@parameter-name='Instance Name'] 1 - Focus //input[@parameter-name='Instance Name'] + Page Should Contain Element //input[@parameter-name='Instance Name'] limit=1 + Set Focus To Element //input[@parameter-name='Instance Name'] Wait Until Keyword Succeeds 120s 5s Input Text When Enabled //input[@parameter-name='Instance Name'] ${service_name} timeout=${GLOBAL_VID_UI_TIMEOUT_LONG} Capture Page Screenshot Click On Button When Enabled //div[@class = 'buttonRow']/button[text() = 'Confirm'] diff --git a/robot/resources/vid/create_vid_vnf.robot b/robot/resources/vid/create_vid_vnf.robot index eaca637d..07de71dd 100644 --- a/robot/resources/vid/create_vid_vnf.robot +++ b/robot/resources/vid/create_vid_vnf.robot @@ -1,7 +1,7 @@ *** Settings *** Documentation Creates VID VNF Instance -Library ExtendedSelenium2Library 60 +Library SeleniumLibrary 60 Library UUID Library String Library DateTime diff --git a/robot/resources/vid/teardown_vid.robot b/robot/resources/vid/teardown_vid.robot index e1850bf6..80365a32 100644 --- a/robot/resources/vid/teardown_vid.robot +++ b/robot/resources/vid/teardown_vid.robot @@ -1,6 +1,6 @@ *** Settings *** Documentation The main interface for interacting with VID. It handles low level stuff like managing the selenium request library and VID required steps -Library ExtendedSelenium2Library +Library SeleniumLibrary Library Collections Library String Library StringTemplater @@ -8,6 +8,7 @@ Library UUID Resource vid_interface.robot Resource create_vid_vnf.robot Resource create_service_instance.robot +Resource ../heatbridge.robot *** Variables *** ${VID_ENV} /vid @@ -54,10 +55,10 @@ Delete Next VID Entity Select From List By Label //select[@ng-model='selectedCustomer'] ${customer} Click Button button=Submit - # When Handle alert detects a pop-up. it will return FAIL and we are done + # When Handle VID Alert detects a pop-up. it will return FAIL and we are done # Return from Keyword is required because FAIL is inored during teardown Set Test Variable ${TEARDOWN_STATUS} PASS - ${status} ${value} Run Keyword And Ignore Error Handle Alert + ${status} ${value} Run Keyword And Ignore Error Handle VID Alert Return From Keyword If '${status}' == 'FAIL' ${status} ${status} ${value} Run Keyword And Ignore Error Wait Until Page Contains Element link=View/Edit timeout=${GLOBAL_VID_UI_TIMEOUT_MEDIUM} Return From Keyword If '${status}' == 'FAIL' ${status} @@ -68,7 +69,7 @@ Delete Next VID Entity Wait Until Page Contains View/Edit Service Instance timeout=${GLOBAL_VID_UI_TIMEOUT_MEDIUM} Wait Until Element Is Visible xpath=//a/span[@class='glyphicon glyphicon-remove'] timeout=${GLOBAL_VID_UI_TIMEOUT_LONG} - :for ${remove_first} in @{remove_order} + :FOR ${remove_first} IN @{remove_order} \ ${remove_xpath}= Set Variable //li/div[contains(.,'${remove_first}')]/a/span[@class='glyphicon glyphicon-remove'] \ ${status} ${data}= Run Keyword And Ignore Error Page Should Contain Element xpath=${remove_xpath} \ Exit For Loop If '${status}' == 'PASS' @@ -88,10 +89,10 @@ Delete Next VID Entity Poll MSO Get Request ${GLOBAL_MSO_STATUS_PATH}${request_id} COMPLETE [Return] ${vfmodule} -Handle Alert +Handle VID Alert [Documentation] When service instance has been deleted, an alert will be triggered on the search to end the loop ... The various Alert keywords did not prevent the alert exception on the Click ELement, hence this roundabout way of handling the alert Run Keyword And Ignore Error Click Element button=Submit - ${status} ${t}= Run Keyword And Ignore Error Get Alert Message + ${status} ${t}= Run Keyword And Ignore Error Handle Alert Return From Keyword If '${status}' == 'FAIL' Fail ${t} diff --git a/robot/resources/vid/vid_interface.robot b/robot/resources/vid/vid_interface.robot index 47cb7860..dd68ede8 100644 --- a/robot/resources/vid/vid_interface.robot +++ b/robot/resources/vid/vid_interface.robot @@ -1,6 +1,6 @@ *** Settings *** Documentation The main interface for interacting with VID. It handles low level stuff like managing the selenium request library and VID required steps -Library ExtendedSelenium2Library +Library SeleniumLibrary Library Collections Library String Library RequestsLibrary @@ -110,7 +110,7 @@ Get Model UUID from VID ${resp}= Get Text xpath=//body/pre ${json}= To Json ${resp} ${services}= Get From Dictionary ${json} services - :for ${dict} in @{services} + :FOR ${dict} IN @{services} \ ${uuid}= Get From DIctionary ${dict} uuid \ ${inv}= Get From DIctionary ${dict} invariantUUID \ Return From Keyword If "${invariantUUID}" == "${inv}" ${uuid} @@ -128,7 +128,7 @@ Get Module Names from VID ${modules}= Create List ${vnfs}= Get From Dictionary ${json} vnfs ${keys}= Get Dictionary Keys ${vnfs} - :for ${key} in @{keys} + :FOR ${key} IN @{keys} \ Add VFModule ${vnfs['${key}']} ${modules} [Return] ${modules} @@ -137,7 +137,7 @@ Add VFModule [Arguments] ${vnf} ${modules} ${vfModules}= Get From Dictionary ${vnf} vfModules ${keys}= Get Dictionary Keys ${vfModules} - :for ${key} in @{keys} + :FOR ${key} IN @{keys} \ ${module}= Get From Dictionary ${vfModules} ${key} \ ${dict}= Create Dictionary name=${module['name']} \ Append to List ${modules} ${dict} diff --git a/robot/resources/vvp_interface.robot b/robot/resources/vvp_interface.robot index 57c67b84..0bca8a57 100644 --- a/robot/resources/vvp_interface.robot +++ b/robot/resources/vvp_interface.robot @@ -34,11 +34,11 @@ Run ICE CI Container (Automat Testing) Get Request [Return] ${resp} Run VVP CMS Health Check - [Documentation] Tests interface for container with purpose: backend uwsgi server which hosts django application + [Documentation] Tests interface for container with purpose: backend uwsgi server which hosts django application ${resp}= Run VVP CMS Get Request ${VVP_PATH} Should Be Equal As Strings ${resp.status_code} 200 -Run VVP CMS Get Request ${VVP_PATH} +Run VVP CMS Get Request [Documentation] Runs request in container with purpose: backend uwsgi server which hosts django application [Arguments] ${data_path} Log Creating session ${VVP_CMS_UWSGI_ENDPOINT} |