upgrade to python3 libraries 72/87272/2
authorDR695H <dr695h@att.com>
Wed, 8 May 2019 17:55:32 +0000 (13:55 -0400)
committerDR695H <dr695h@att.com>
Thu, 9 May 2019 14:41:52 +0000 (10:41 -0400)
basing the code off of robot framework 3.1.1 instead of 3.0, replacing
selenium2lib with selnium lib and selenium3, replacing extendedselenium
with angularjs lib. Fixing most warnings and all errors from these moves

Change-Id: Ifed68c5b8cd28c7bbdc80ee7245860914bdee5b4
Issue-ID: TEST-151
Signed-off-by: DR695H <dr695h@att.com>
48 files changed:
docker/Dockerfile
red.xml
robot/resources/aai/create_complex.robot
robot/resources/aai/create_service.robot
robot/resources/aai/create_tenant.robot
robot/resources/appc_interface.robot
robot/resources/asdc_interface.robot
robot/resources/browser_setup.robot
robot/resources/demo_preload.robot
robot/resources/heatbridge.robot
robot/resources/music/music_interface.robot
robot/resources/nbi_interface.robot
robot/resources/oof_interface.robot
robot/resources/openstack/keystone_interface.robot
robot/resources/openstack/neutron_interface.robot
robot/resources/openstack/nova_interface.robot
robot/resources/policy_interface.robot
robot/resources/portal-sdk/portalDef.robot
robot/resources/portal-sdk/portalSdkDef.robot
robot/resources/portal_interface.robot
robot/resources/sdngc_interface.robot
robot/resources/sms_interface.robot
robot/resources/so/direct_instantiate.robot
robot/resources/ssh/processes.robot
robot/resources/stack_validation/darkstat_interface.robot [deleted file]
robot/resources/stack_validation/packet_generator_interface.robot
robot/resources/stack_validation/policy_check_vfw.robot
robot/resources/stack_validation/validate_common.robot
robot/resources/test_templates/model_test_template.robot
robot/resources/test_templates/model_test_template_vcperescust.robot
robot/resources/test_templates/pnf_registration_without_SO_template.robot
robot/resources/test_templates/vnf_orchestration_test_template.robot
robot/resources/test_templates/vnf_orchestration_with_cds_test_template.robot
robot/resources/vid/create_service_instance.robot
robot/resources/vid/create_vid_vnf.robot
robot/resources/vid/teardown_vid.robot
robot/resources/vid/vid_interface.robot
robot/resources/vvp_interface.robot
robot/testsuites/create-cloud-config.robot
robot/testsuites/demo.robot
robot/testsuites/health-check.robot
robot/testsuites/hvves.robot
robot/testsuites/model-distribution-vcpe.robot
robot/testsuites/model-distribution.robot
robot/testsuites/pnf-registration.robot
robot/testsuites/portalApp.robot
robot/testsuites/update_onap_page.robot
setup.sh

index 46409cd..723158a 100644 (file)
@@ -36,7 +36,7 @@ RUN apt-get update \
             vim
             
 
-RUN pip install robotframework==3.0.4 \
+RUN pip install robotframework==3.1.1 \
     && python --version
 
 # Copy the robot code
diff --git a/red.xml b/red.xml
index ad4556f..182c4f6 100644 (file)
--- a/red.xml
+++ b/red.xml
@@ -5,8 +5,8 @@
     <referencedLibrary type="PYTHON" name="RequestsLibrary" path="testsuite/robot/library"/>
     <referencedLibrary type="PYTHON" name="RequestsClientCert" path="testsuite/robot/library/eteutils"/>
     <referencedLibrary type="PYTHON" name="UUID" path="testsuite/robot/library/eteutils"/>
-    <referencedLibrary type="PYTHON" name="Selenium2Library" path="testsuite/robot/library"/>
-    <referencedLibrary type="PYTHON" name="ExtendedSelenium2Library" path="testsuite/robot/library"/>
+    <referencedLibrary type="PYTHON" name="SeleniumLibrary" path="testsuite/robot/library"/>
+    <referencedLibrary type="PYTHON" name="AngularJSLibrary" path="testsuite/robot/library"/>
     <referencedLibrary type="PYTHON" name="SSHLibrary" path="testsuite/robot/library"/>
     <referencedLibrary type="PYTHON" name="HTTPUtils" path="testsuite/robot/library/eteutils"/>
     <referencedLibrary type="PYTHON" name="JSONUtils" path="testsuite/robot/library/eteutils"/>
     <referencedLibrary type="PYTHON" name="HEATUtils" path="testsuite/robot/library/eteutils"/>
     <referencedLibrary type="PYTHON" name="OSUtils" path="testsuite/robot/library/eteutils"/>
     <referencedLibrary type="PYTHON" name="DNSUtils" path="testsuite/robot/library/eteutils"/>
-    <referencedLibrary type="PYTHON" name="EteGatherDataListener" path="testsuite/robot/library/eteutils"/>
     <referencedLibrary type="PYTHON" name="ArchiveLibrary" path="testsuite/robot/library"/>
     <referencedLibrary type="PYTHON" name="HeatBridge" path="testsuite/robot/library/heatbridge"/>
+    <referencedLibrary type="PYTHON" name="KafkaLibrary" path="testsuite/robot/library"/>
+    <referencedLibrary type="PYTHON" name="Rammbock" path="testsuite/robot/library"/>
+    <referencedLibrary type="PYTHON" name="DateTime" path="testsuite/robot/library"/>
     <pythonpath>
         <path location="robot/library"/>
     </pythonpath>
     <classpath/>
-    <variableFiles path="../properties/integration_preload_parameters.py"/>
-    <variableFiles path="../properties/integration_robot_properties.py"/>
-    <variableFiles path="../properties/sample_vm_properties.py"/>
+    <variableFiles path="../oom/kubernetes/robot/resources/config/eteshare/config/integration_preload_parameters.py"/>
+    <variableFiles path="../oom/kubernetes/robot/resources/config/eteshare/config/integration_robot_properties.py"/>
+    <variableFiles path="../oom/kubernetes/robot/resources/config/eteshare/config/vm_properties.py"/>
     <variableFiles path="testsuite/robot/assets/service_mappings.py"/>
     <excludedForValidation/>
     <isValidatedFileSizeCheckingEnabled>true</isValidatedFileSizeCheckingEnabled>
index 185d44d..e1be288 100644 (file)
@@ -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}
index bcf14e3..49864b8 100644 (file)
@@ -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}
index 95f1c25..99d3a08 100644 (file)
@@ -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}
index 91c44c6..2415539 100644 (file)
@@ -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
index 1160c31..6ffc17e 100644 (file)
@@ -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
index 5d34d3d..f9203f3 100644 (file)
@@ -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}" == ''
index 25575e1..ef8bbab 100644 (file)
@@ -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
index c0b9a91..f155c8f 100644 (file)
@@ -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}
index 73d393d..3251e56 100644 (file)
@@ -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      
 
index 9d5313d..ab0f571 100644 (file)
@@ -1,6 +1,7 @@
 *** Settings ***
 Documentation     The main interface for interacting with External API/NBI
 Library           RequestsLibrary
+Library            Collections
 
 Resource          global_properties.robot
 
index 987c27f..de922d3 100644 (file)
@@ -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
index fa37733..03e94bb 100644 (file)
@@ -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"]}
index bdb64b9..9356389 100644 (file)
@@ -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}
 
index 2c9ec4c..8b64bb9 100644 (file)
@@ -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}
index 88f2b6f..66f29f5 100644 (file)
@@ -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
index 57b6e1b..41fbeea 100644 (file)
@@ -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}
index 1efb141..16cef97 100644 (file)
@@ -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
index 2281b1e..67c9888 100644 (file)
@@ -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
index 81642be..0570be8 100644 (file)
@@ -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}
index dd2cabe..81d728f 100644 (file)
@@ -1,6 +1,5 @@
 *** Settings ***
 Documentation    The main interface for interacting with SMS.
-Library                  RequestsClientCert
 Library              RequestsLibrary
 Library                  UUID
 
index 5548c93..72a92df 100644 (file)
@@ -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}
index 2ab6a14..8b5cf15 100644 (file)
@@ -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 (file)
index 3537408..0000000
+++ /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
index cc9ba04..c75e61b 100644 (file)
@@ -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}
index 6876748..35f7dea 100644 (file)
@@ -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
 
index 8b29213..d189258 100644 (file)
@@ -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
index 981e1c9..47083c3 100644 (file)
@@ -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
index 127decb..17e3965 100644 (file)
@@ -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
index fdd9dc4..09655b5 100644 (file)
@@ -5,6 +5,7 @@ Resource        ../mr_interface.robot
 Resource        ../json_templater.robot
 Library         OpenstackLibrary
 Library         OperatingSystem
+Library         RequestsLibrary
 Library         UUID
 Library         Collections
 Library         JSONUtils
index b3a4bdd..ec22265 100644 (file)
@@ -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
index 4775dcc..e5626e6 100644 (file)
@@ -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}
index 719b85d..112da10 100644 (file)
@@ -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']
index eaca637..07de71d 100644 (file)
@@ -1,7 +1,7 @@
 *** Settings ***
 Documentation    Creates VID VNF Instance
 
-Library    ExtendedSelenium2Library    60
+Library    SeleniumLibrary    60
 Library                UUID
 Library         String
 Library        DateTime
index e1850bf..80365a3 100644 (file)
@@ -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}
index 47cb786..dd68ede 100644 (file)
@@ -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}
index 57c67b8..0bca8a5 100644 (file)
@@ -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}
index 0af4f0e..662bc29 100644 (file)
@@ -11,7 +11,7 @@ Resource          ../resources/aai/create_tenant.robot
 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_MSO_ENCRYPTED_PASSWORD}    ${GLOBAL_INJECTED_OPENSTACK_TENANT_ID}     admin    KEYSTONE    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 
 
 Create Cloud Config RegionThree V3 Test
     [TAGS]    mso    cloudconfig  cloudconfigv3
index a4ab099..1e9e8d4 100644 (file)
@@ -13,6 +13,7 @@ ${MODULE_NAME}    DemoModuleName
 ${HB_STACK}
 ${HB_SERVICE_INSTANCE_ID}
 ${HB_SERVICE}
+${HB_IPV4_OAM_ADDRESS}
 
 
 *** Test Cases ***
index daba7c1..5feaa9c 100644 (file)
@@ -286,11 +286,11 @@ Portal Application Access Tests
 
 Basic Holmes Rule Management API Health Check
     [Tags]    health    medium   health-dcae
-    Run Holmes Rule Mgmt Health Check
+    Run Holmes Rule Mgmt Healthcheck
 
 Basic Holmes Engine Management API Health Check
     [Tags]    health    medium   health-dcae
-    Run Holmes Engine Mgmt Health Check
+    Run Holmes Engine Mgmt Healthcheck
 
 Basic Multicloud-fcaps API Health Check
     [Tags]    health    multicloud   health-multicloud
index a67b0c3..941f664 100644 (file)
@@ -1,7 +1,9 @@
 *** Settings ***
-Documentation   HV-VES 'Sunny Scenario' Robot Framwork test - message is sent to the collector and Kafka topic is checked if the message has been published.
-Default Tags    HVVES   ete
-Test Timeout    10s
+Documentation   HV-VES 'Sunny Scenario' Robot Framwork test - message is sent to the collector and Kafka topic is checked if the message has been published. 
+
+
+Library    Rammbock
+Library    OperatingSystem
 Resource    ${EXECDIR}/robot/resources/global_properties.robot
 Resource    ${EXECDIR}/robot/resources/test_templates/hvves_template.robot
 Suite Teardown  Reset Rammbock
@@ -10,6 +12,8 @@ Suite Teardown  Reset Rammbock
 
 *** Test Cases ***
 HV-VES test case
+    [Tags]    HVVES   ete
+    [Timeout]     10s
     ${msg_number_initial}=  Check Number Of Messages On Topic   ${GLOBAL_DNS_MESSAGE_ROUTER_KAFKA_NAME}  ${GLOBAL_MESSAGE_ROUTER_KAFKA_PORT}  ${hvves_kafka_topic}
     Define WTP Protocol
     Start HV-VES TCP Client And Send Message     ${GLOBAL_DNS_HV_VES_NAME}   ${GLOBAL_HV_VES_SERVER_PORT}
index b0016b2..09a4430 100644 (file)
@@ -3,7 +3,6 @@ Documentation     Testing asdc.
 Library    OperatingSystem
 Library    RequestsLibrary
 Library    Collections
-Library              ExtendedSelenium2Library
 Resource          ../resources/test_templates/model_test_template_vcperescust.robot
 
 Test Template         Model Distribution For vCPEResCust Directory
index fb31c20..5633cdc 100644 (file)
@@ -3,7 +3,6 @@ Documentation     Testing asdc.
 Library    OperatingSystem
 Library    RequestsLibrary
 Library    Collections
-Library              ExtendedSelenium2Library
 Resource          ../resources/test_templates/model_test_template.robot
 
 Test Template         Model Distribution For Directory
index b4aeee3..6336df2 100644 (file)
@@ -10,16 +10,7 @@ Resource         ../resources/test_templates/pnf_registration_without_SO_templat
 Create A&AI antry without SO and succesfully registrate PNF, PNF entry contains: correlation ID, PNF_IPv4_address and PNF_IPv6_address
      [Documentation]  This test is checking creation A&AI entry without SO and succesfull PNF registration
      [Tags]   pnf_registrate   ete
-     [Setup]    Initialize PNF entry with correlation ID, PNF_IPv4_address and PNF_IPv6_address
+     ${PNF_entry_dict}=  Create Dictionary  correlation_id=ABCDEFG1234567  PNF_IPv4_address=13.13.13.13  PNF_IPv6_address=2001:0db8:0:0:0:0:1428:57ab
+     Log  Initial PNF entry ${PNF_entry_dict}
      Create A&AI antry without SO and succesfully registrate PNF  ${PNF_entry_dict}
-     [Teardown]  Cleanup PNF entry in A&AI  ${PNF_entry_dict}
-
-
-*** Keyword ***
-
-Initialize PNF entry with correlation ID, PNF_IPv4_address and PNF_IPv6_address
-    [Documentation]  Setup test case variable
-    ${PNF_entry_dict}=  Create Dictionary  correlation_id=ABCDEFG1234567  PNF_IPv4_address=13.13.13.13  PNF_IPv6_address=2001:0db8:0:0:0:0:1428:57ab
-    Set Test Variable  ${PNF_entry_dict}
-    Log  Initial PNF entry ${PNF_entry_dict}
-
+     [Teardown]  Cleanup PNF entry in A&AI  ${PNF_entry_dict}
\ No newline at end of file
index d441e19..6a447e8 100644 (file)
@@ -2,15 +2,16 @@
 Test Timeout    5 minute
 Documentation    This is RobotFrame work script
 Resource       ../resources/portal-sdk/portalDef.robot
-Resource       ../resources/portal-sdk/portalSdkDef.robot
+Resource    ../resources/portal_interface.robot
+Library        SeleniumLibrary
 Suite Setup     Generate Random User Name
+Suite Teardown    Close All Browsers
 
 *** Test Cases ***
      
 Login into Portal URL
     [TAGS]  portal
-    Close All Browsers
-    Portal admin Login To Portal GUI  
+    Portal admin Login To Portal GUI
 
 Portal Change REST URL Of X-DemoApp
     [TAGS]  portal
@@ -21,10 +22,6 @@ Portal R1 Release for AAF
     [TAGS]  portal
     [Documentation]    ONAP Portal R1 functionality for AAF test
     Portal AAF new fields
-         
-#Create Microse service onboarding
-#    [TAGS]  portal
-#      Portal admin Microservice Onboarding
 
 EP Admin widget layout reset
     [TAGS]  portal
@@ -41,17 +38,7 @@ Validate Functional Top Menu Contact Us
 Edit Functional Menu
     [TAGS]  portal
        Portal admin Edit Functional menu
-    
-#Broadbond Notification functionality
-#    [TAGS]  portal
-#      ${AdminBroadCastMsg}=    Portal Admin Broadcast Notifications
-#      set global variable    ${AdminBroadCastMsg}
-   
-#Category Notification functionality
-#    [TAGS]  portal
-#      ${AdminCategoryMsg}=   Portal Admin Category Notifications
-#      set global variable    ${AdminCategoryMsg}
-         
+      
 Create a Test user for Application Admin -Test
     [TAGS]  portal
        Portal admin Add Application admin User New user -Test
@@ -76,18 +63,6 @@ Delete Application Admin for Exisitng User
     [TAGS]  portal
        Portal admin Delete Application Admin Existing User
     
-#Add Standard User Role for Existing user
-#    [TAGS]  portal
-#      Portal admin Add Standard User Existing user
-    
-#Edit Standard User Role for Existing user
-#    [TAGS]  portal
-#      Portal admin Edit Standard User Existing user
-    
-#Delete Standard User Role for Existing user
-#    [TAGS]  portal
-#      Portal admin Delete Standard User Existing user
-
 Logout from Portal GUI as Portal Admin
     [TAGS]  portal
     Portal admin Logout from Portal GUI
@@ -96,19 +71,7 @@ Logout from Portal GUI as Portal Admin
         
 Login To Portal GUI as APP Admin
     [TAGS]  portal
-       Application admin Login To Portal GUI
-
-#Add Standard User Role for Existing user as APP Admin
-#    [TAGS]  portal
-#      Application admin Add Standard User Existing user
-    
-#Edit Standard User Role for Existing user as APP Admin
-#    [TAGS]  portal
-#      Application admin Edit Standard User Existing user
-    
-#Delete Standard User Role for Existing user as APP Admin
-#    [TAGS]  portal
-#      Application admin Delete Standard User Existing user
+    Application admin Login To Portal GUI
 
 Logout from Portal GUI as APP Admin
     [TAGS]  portal
@@ -116,12 +79,7 @@ Logout from Portal GUI as APP Admin
    
 #Standard User Test cases
    
-Login To Portal GUI as Standared User
-    [TAGS]  portal
-       Standared user Login To Portal GUI
-
 Logout from Portal GUI as Standared User
     [TAGS]  portal
        Standared User Logout from Portal GUI
     Close All Browsers
-    
index 2e14eb4..57a433b 100644 (file)
@@ -49,7 +49,7 @@ Update ONAP Page
 
     ${values}=   Create Dictionary
     ${keys}=    Get Dictionary Keys    ${oam_ip_map}
-    :for   ${oam_ip}   in    @{keys}
+    :FOR   ${oam_ip}   IN    @{keys}
     \    ${value_name}=   Get From Dictionary    ${oam_ip_map}   ${oam_ip}
     \    Set Public Ip    ${server_map}    ${oam_ip}   ${value_name}   ${values}
     Log    ${values}
@@ -82,7 +82,7 @@ Set Public Ip
 Get Public Ip
     [Arguments]   ${server_map}    ${oam_ip}
     ${servers}   Get Dictionary Values    ${server_map}
-    :for   ${server}   in   @{servers}
+    :FOR   ${server}   IN   @{servers}
     \    ${status}   ${public_ip}   Run Keyword And Ignore Error   Search Addresses   ${server}   ${oam_ip}
     \    Return From Keyword If   '${status}'=='PASS'   ${public_ip}
     Fail  ${oam_ip} Server Not Found
@@ -124,7 +124,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}
@@ -133,7 +133,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}
@@ -141,7 +141,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
index 0b77a93..1d7b2b9 100755 (executable)
--- a/setup.sh
+++ b/setup.sh
@@ -17,17 +17,15 @@ pip install \
 --no-cache-dir \
 --exists-action s \
 --target="$path/robot/library" \
-'selenium<=3.0.0' \
-'robotframework-selenium2library==1.8.0' \
+'robotframework-seleniumlibrary==3.3.1' \
 'robotframework-databaselibrary==0.8.1' \
-'robotframework-extendedselenium2library==0.9.1' \
+'robotframework-angularjs==0.0.9' \
 'robotframework-requests==0.5.0' \
-'robotframework-sshlibrary==2.1.2' \
-'robotframework-sudslibrary==0.8' \
+'robotframework-sshlibrary==3.3.0' \
 'robotframework-ftplibrary==1.3' \
 'robotframework-rammbock==0.4.0.1' \
 'robotframework-httplibrary==0.4.2' \
-'robotframework-archivelibrary==0.3.2' \
+'robotframework-archivelibrary==0.4' \
 'robotframework-kafkalibrary==0.0.2'
 
 
@@ -80,16 +78,6 @@ pip install \
 --target="$path/robot/library" \
 ./heatbridge
 
-
-# NOTE: Patch to incude explicit install of paramiko to 2.0.2 to work with sshlibrary 2.1.2
-# This should be removed on new release of paramiko (2.1.2) or sshlibrary
-# https://github.com/robotframework/SSHLibrary/issues/157
-pip install \
---no-cache-dir \
---target="$path/robot/library" \
--U 'paramiko==2.0.2'
-
-
 # Go back to execution folder
 cd $path