From 24b4ca714b1a95d825f84743f16c3d28153a074f Mon Sep 17 00:00:00 2001 From: Ahmed Alabulrahman Date: Wed, 23 Aug 2017 13:33:10 -0400 Subject: [PATCH] Updated robot configs to 1.1 Changed robot configs to 1.1 and updated necessary variables Issue-ID: OOM-169 Change-Id: Ie747105b291b88d1d6d54f6e717dceb6310bf438 Signed-off-by: Ahmed Alabulrahman --- .../config/integration_robot_properties.py | 42 +++++---- .../config/robot/eteshare/config/vm_properties.py | 44 ++++++--- .../robot/robot/resources/asdc_interface.robot | 103 ++++++++++++--------- .../robot/robot/resources/policy_interface.robot | 20 ++-- .../robot/robot/resources/sdngc_interface.robot | 62 +++++++------ 5 files changed, 156 insertions(+), 115 deletions(-) diff --git a/kubernetes/config/docker/init/src/config/robot/eteshare/config/integration_robot_properties.py b/kubernetes/config/docker/init/src/config/robot/eteshare/config/integration_robot_properties.py index 6b5c336d44..d0e0919b90 100755 --- a/kubernetes/config/docker/init/src/config/robot/eteshare/config/integration_robot_properties.py +++ b/kubernetes/config/docker/init/src/config/robot/eteshare/config/integration_robot_properties.py @@ -3,65 +3,73 @@ GLOBAL_AAF_SERVER = "http://10.0.12.1:8101" GLOBAL_AAF_USERNAME = "dgl@openecomp.org" GLOBAL_AAF_PASSWORD = "ecomp_admin" # aai info - everything is from the private oam network (also called ecomp private network) -GLOBAL_AAI_SERVER_URL = "https://aai-service.onap-aai:8443" +GLOBAL_AAI_SERVER_PROTOCOL = "https" +GLOBAL_AAI_SERVER_PORT = "8443" GLOBAL_AAI_USERNAME = "AAI" GLOBAL_AAI_PASSWORD = "AAI" # appc info - everything is from the private oam network (also called ecomp private network) -GLOBAL_APPC_SERVER = "http://sdnhost.onap-appc:8282" +GLOBAL_APPC_SERVER_PROTOCOL = "http" +GLOBAL_APPC_SERVER_PORT = "8282" +GLOBAL_APPC_SERVER = "http://10.0.2.1:" GLOBAL_APPC_USERNAME = "admin" GLOBAL_APPC_PASSWORD = "Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U" # sdc info - everything is from the private oam network (also called ecomp private network) -GLOBAL_ASDC_FE_SERVER = "http://sdc-fe.onap-sdc" -GLOBAL_ASDC_BE_SERVER = "http://sdc-be.onap-sdc" +GLOBAL_ASDC_SERVER_PROTOCOL = "http" GLOBAL_ASDC_FE_PORT = "8181" GLOBAL_ASDC_BE_PORT = "8080" GLOBAL_ASDC_BE_USERNAME = "beep" GLOBAL_ASDC_BE_PASSWORD = "boop" # dcae info - everything is from the private oam network (also called ecomp private network) -GLOBAL_DCAE_SERVER = "http://dcae-controller.onap-dcae:9998" +GLOBAL_DCAE_SERVER_PROTOCOL = "http" +GLOBAL_DCAE_SERVER_PORT = "9998" GLOBAL_DCAE_USERNAME = "console" GLOBAL_DCAE_PASSWORD = "ZjJkYjllMjljMTI2M2Iz" # message router info - everything is from the private oam network (also called ecomp private network) -GLOBAL_MR_SERVER = "http://dmaap.onap-message-router:3904" +GLOBAL_MR_SERVER_PROTOCOL = "http" +GLOBAL_MR_SERVER_PORT = "3904" # mso info - everything is from the private oam network (also called ecomp private network) -GLOBAL_MSO_SERVER = "http://mso.onap-mso:8080" +GLOBAL_MSO_SERVER_PROTOCOL = "http" +GLOBAL_MSO_SERVER_PORT = "8080" GLOBAL_MSO_USERNAME = "InfraPortalClient" GLOBAL_MSO_PASSWORD = "password1$" # openstack info - info to select right info in environment -GLOBAL_OPENSTACK_KEYSTONE_SERVER = "http://OPENSTACK_KEYSTONE_IP_HERE:5000" +GLOBAL_OPENSTACK_TENANT_NAME = "" # packet generate vnf info - everything is from the private oam network (also called ecomp private network) GLOBAL_PACKET_GENERATOR_PORT = "8183" GLOBAL_PACKET_GENERATOR_USERNAME = "admin" GLOBAL_PACKET_GENERATOR_PASSWORD = "admin" GLOBAL_PGN_PORT = "2831" # policy info - everything is from the private oam network (also called ecomp private network) -GLOBAL_POLICY_SERVER_URL = "http://pypdp.onap-policy:8480" -GLOBAL_POLICY_AUTH = "dGVzdHJlc3Q6M2MwbXBVI2gwMUBOMWMz" +GLOBAL_POLICY_SERVER_PROTOCOL = "http" +GLOBAL_POLICY_SERVER_PORT = "8081" +GLOBAL_POLICY_HEALTHCHECK_PORT = "6969" +GLOBAL_POLICY_AUTH = "dGVzdHBkcDphbHBoYTEyMw==" GLOBAL_POLICY_CLIENTAUTH = "cHl0aG9uOnRlc3Q=" -GLOBAL_POLICY_HEALTHCHECK_URL = "http://drools.onap-policy:6969" GLOBAL_POLICY_USERNAME = "healthcheck" GLOBAL_POLICY_PASSWORD = "zb!XztG34" # portal info - everything is from the private oam network (also called ecomp private network) -GLOBAL_PORTAL_SERVER = "http://portalapps.onap-portal:8989" +GLOBAL_PORTAL_SERVER_PROTOCOL = "http" +GLOBAL_PORTAL_SERVER_PORT = "8989" GLOBAL_PORTAL_USERNAME = "demo" GLOBAL_PORTAL_PASSWORD = "Kp8bJ4SXszM0WXlhak3eHlcse" # sdngc info - everything is from the private oam network (also called ecomp private network) -GLOBAL_SDNGC_SERVER = "http://sdnhost.onap-sdnc" -GLOBAL_SDNGC_PORTAL = "http://sdnc-portal.onap-sdnc" +GLOBAL_SDNGC_SERVER_PROTOCOL = "http" GLOBAL_SDNGC_REST_PORT = "8282" GLOBAL_SDNGC_ADMIN_PORT = "8843" GLOBAL_SDNGC_USERNAME = "admin" GLOBAL_SDNGC_PASSWORD = "Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U" # vid info - everything is from the private oam network (also called ecomp private network) +GLOBAL_VID_SERVER_PROTOCOL = "http" +GLOBAL_VID_SERVER_PORT = "8080" GLOBAL_VID_USERNAME = "demo" GLOBAL_VID_PASSWORD = "Kp8bJ4SXszM0WX" GLOBAL_VID_HEALTH_USERNAME = "Default" GLOBAL_VID_HEALTH_PASSWORD = "AppPassword!1" -GLOBAL_VID_SERVER = "http://vid-server.onap-vid:8080" #global selenium info GLOBAL_PROXY_WARNING_TITLE="" GLOBAL_PROXY_WARNING_CONTINUE_XPATH="" # settings for vm to attach vvg too -GLOBAL_VVGSERVER_IMAGE = "UBUNTU_14_IMAGE_NAME_HERE" -GLOBAL_VVGSERVER_FLAVOR = "OPENSTACK_FLAVOUR_NAME_HERE" +GLOBAL_VVGSERVER_IMAGE = "Ubuntu 14.04 LTS (Trusty Tahr) (PVHVM)" +GLOBAL_VVGSERVER_FLAVOR = "4 GB General Purpose v1" # dns info +GLOBAL_DNS_TRAFFIC_DURATION = "600" \ No newline at end of file diff --git a/kubernetes/config/docker/init/src/config/robot/eteshare/config/vm_properties.py b/kubernetes/config/docker/init/src/config/robot/eteshare/config/vm_properties.py index 88f1020bcb..77d1f96c66 100755 --- a/kubernetes/config/docker/init/src/config/robot/eteshare/config/vm_properties.py +++ b/kubernetes/config/docker/init/src/config/robot/eteshare/config/vm_properties.py @@ -1,17 +1,31 @@ # File generated from /opt/config # -GLOBAL_VM_PROPERTIES = { - "artifacts_version" : "1.0.0", - "cloud_env" : "openstack", - "dns_ip_addr" : "10.43.0.10", - "docker_version" : "1.0-STAGING-latest", - "gerrit_branch" : "release-1.0.0", - "network" : "onap_oam", - "nexus_docker_repo" : "nexus3.onap.org:10001", - "nexus_password" : "docker", - "nexus_repo" : "https://nexus.onap.org/content/sites/raw", - "nexus_username" : "docker", - "openstack_password" : "dev", - "openstack_username" : "dev", - "region" : "RegionOne" - } +GLOBAL_INJECTED_AAI1_IP_ADDR = "aai-service.onap-aai" +#GLOBAL_INJECTED_AAI2_IP_ADDR = "10.0.1.2" +GLOBAL_INJECTED_APPC_IP_ADDR = "10.0.2.1" +GLOBAL_INJECTED_ARTIFACTS_VERSION = "1.1.0-SNAPSHOT" +GLOBAL_INJECTED_CLOUD_ENV = "openstack" +GLOBAL_INJECTED_DCAE_IP_ADDR = "dcae-controller.onap-dcae" +GLOBAL_INJECTED_DNS_IP_ADDR = "10.0.100.1" +GLOBAL_INJECTED_DOCKER_VERSION = "1.1-STAGING-latest" +GLOBAL_INJECTED_GERRIT_BRANCH = "master" +GLOBAL_INJECTED_KEYSTONE = "http://10.100.100.10:5000" +GLOBAL_INJECTED_MR_IP_ADDR = "dmaap.onap-message-router" +GLOBAL_INJECTED_MSO_IP_ADDR = "mso.onap-mso" +GLOBAL_INJECTED_NETWORK = "oam_ecomp_1b5B" +GLOBAL_INJECTED_NEXUS_DOCKER_REPO = "nexus3.onap.org:10001" +GLOBAL_INJECTED_NEXUS_PASSWORD = "docker" +GLOBAL_INJECTED_NEXUS_REPO = "https://nexus.onap.org/content/sites/raw" +GLOBAL_INJECTED_NEXUS_USERNAME = "docker" +GLOBAL_INJECTED_OPENSTACK_PASSWORD = "dev" +GLOBAL_INJECTED_OPENSTACK_USERNAME = "dev" +GLOBAL_INJECTED_POLICY_IP_ADDR = "pypdp.onap-policy" +GLOBAL_INJECTED_POLICY_HEALTHCHECK_IP_ADDR = "drools.onap-policy" +GLOBAL_INJECTED_PORTAL_IP_ADDR = "portalapps.onap-portal" +GLOBAL_INJECTED_REGION = "RegionOne" +GLOBAL_INJECTED_SDC_FE_IP_ADDR = "sdc-fe.onap-sdc" +GLOBAL_INJECTED_SDC_BE_IP_ADDR = "sdc-be.onap-sdc" +GLOBAL_INJECTED_SDNC_IP_ADDR = "sdnhost.onap-sdnc" +GLOBAL_INJECTED_SDNC_PORTAL_IP_ADDR = "sdnc-portal.onap-sdnc" +GLOBAL_INJECTED_VID_IP_ADDR = "vid-server.onap-vid" + diff --git a/kubernetes/config/docker/init/src/config/robot/robot/resources/asdc_interface.robot b/kubernetes/config/docker/init/src/config/robot/robot/resources/asdc_interface.robot index 36a18811d1..72407defe5 100644 --- a/kubernetes/config/docker/init/src/config/robot/robot/resources/asdc_interface.robot +++ b/kubernetes/config/docker/init/src/config/robot/robot/resources/asdc_interface.robot @@ -22,7 +22,7 @@ ${ASDC_VENDOR_ENTITLEMENT_POOL_PATH} /entitlement-pools ${ASDC_VENDOR_FEATURE_GROUP_PATH} /feature-groups ${ASDC_VENDOR_LICENSE_AGREEMENT_PATH} /license-agreements ${ASDC_VENDOR_ACTIONS_PATH} /actions -${ASDC_VENDOR_SOFTWARE_UPLOAD_PATH} /upload +${ASDC_VENDOR_SOFTWARE_UPLOAD_PATH} /orchestration-template-candidate ${ASDC_CATALOG_RESOURCES_PATH} /sdc2/rest/v1/catalog/resources ${ASDC_CATALOG_SERVICES_PATH} /sdc2/rest/v1/catalog/services ${ASDC_CATALOG_INACTIVE_RESOURCES_PATH} /sdc2/rest/v1/inactiveComponents/resource @@ -44,6 +44,9 @@ ${ASDC_CATALOG_RESOURCE_TEMPLATE} robot/assets/templates/asdc/catalog_resourc ${ASDC_USER_REMARKS_TEMPLATE} robot/assets/templates/asdc/user_remarks.template ${ASDC_CATALOG_SERVICE_TEMPLATE} robot/assets/templates/asdc/catalog_service.template ${ASDC_RESOURCE_INSTANCE_TEMPLATE} robot/assets/templates/asdc/resource_instance.template +${ASDC_FE_ENDPOINT} ${GLOBAL_ASDC_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SDC_FE_IP_ADDR}:${GLOBAL_ASDC_FE_PORT} +${ASDC_BE_ENDPOINT} ${GLOBAL_ASDC_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SDC_BE_IP_ADDR}:${GLOBAL_ASDC_BE_PORT} + *** Keywords *** Distribute Model From ASDC [Documentation] goes end to end creating all the asdc objects based ona model and distributing it to the systems. it then returns the service name, vf name and vf module name @@ -77,13 +80,14 @@ Setup ASDC Catalog Resource ${license_agreement_id}= Add ASDC License Agreement ${license_model_id} ${feature_group_id} Checkin ASDC License Model ${license_model_id} Submit ASDC License Model ${license_model_id} - ${license_model_resp}= Get ASDC License Model ${license_model_id} + ${license_model_resp}= Get ASDC License Model ${license_model_id} 1.0 ${software_product_id}= Add ASDC Software Product ${license_agreement_id} ${feature_group_id} ${license_model_resp['vendorName']} ${license_model_id} Upload ASDC Heat Package ${software_product_id} ${model_zip_path} + Validate ASDC Software Product ${software_product_id} Checkin ASDC Software Product ${software_product_id} Submit ASDC Software Product ${software_product_id} Package ASDC Software Product ${software_product_id} - ${software_product_resp}= Get ASDC Software Product ${software_product_id} + ${software_product_resp}= Get ASDC Software Product ${software_product_id} 1.0 ${catalog_resource_id}= Add ASDC Catalog Resource ${license_agreement_id} ${software_product_resp['name']} ${license_model_resp['vendorName']} ${software_product_id} Checkin ASDC Catalog Resource ${catalog_resource_id} Request Certify ASDC Catalog Resource ${catalog_resource_id} @@ -102,57 +106,68 @@ Add ASDC License Model [Return] ${resp.json()['value']} Get ASDC License Model [Documentation] gets an asdc license model by its id - [Arguments] ${id} - ${resp}= Run ASDC Get Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${id} + [Arguments] ${id} ${version_id}=0.1 + ${resp}= Run ASDC Get Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${id}/versions/${version_id} + [Return] ${resp.json()} +Get ASDC License Models + [Documentation] gets an asdc license model by its id + ${resp}= Run ASDC Get Request ${ASDC_VENDOR_LICENSE_MODEL_PATH} [Return] ${resp.json()} Checkin ASDC License Model [Documentation] checksin an asdc license model by its id - [Arguments] ${id} + [Arguments] ${id} ${version_id}=0.1 ${map}= Create Dictionary action=Checkin ${data}= Fill JSON Template File ${ASDC_ACTION_TEMPLATE} ${map} - ${resp}= Run ASDC Put Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${id}${ASDC_VENDOR_ACTIONS_PATH} ${data} + ${resp}= Run ASDC Put Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${id}/versions/${version_id}${ASDC_VENDOR_ACTIONS_PATH} ${data} Should Be Equal As Strings ${resp.status_code} 200 [Return] ${resp.json()} Submit ASDC License Model [Documentation] submits an asdc license model by its id - [Arguments] ${id} + [Arguments] ${id} ${version_id}=0.1 ${map}= Create Dictionary action=Submit ${data}= Fill JSON Template File ${ASDC_ACTION_TEMPLATE} ${map} - ${resp}= Run ASDC Put Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${id}${ASDC_VENDOR_ACTIONS_PATH} ${data} + ${resp}= Run ASDC Put Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${id}/versions/${version_id}${ASDC_VENDOR_ACTIONS_PATH} ${data} Should Be Equal As Strings ${resp.status_code} 200 [Return] ${resp.json()} Checkin ASDC Software Product [Documentation] checksin an asdc Software Product by its id - [Arguments] ${id} + [Arguments] ${id} ${version_id}=0.1 ${map}= Create Dictionary action=Checkin ${data}= Fill JSON Template File ${ASDC_ACTION_TEMPLATE} ${map} - ${resp}= Run ASDC Put Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${id}${ASDC_VENDOR_ACTIONS_PATH} ${data} + ${resp}= Run ASDC Put Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${id}/versions/${version_id}${ASDC_VENDOR_ACTIONS_PATH} ${data} + Should Be Equal As Strings ${resp.status_code} 200 + [Return] ${resp.json()} +Validate ASDC Software Product + [Documentation] checksin an asdc Software Product by its id + [Arguments] ${id} ${version_id}=0.1 + ${data}= Catenate + ${resp}= Run ASDC Put Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${id}/versions/${version_id}/orchestration-template-candidate/process ${data} Should Be Equal As Strings ${resp.status_code} 200 [Return] ${resp.json()} Submit ASDC Software Product [Documentation] submits an asdc Software Product by its id - [Arguments] ${id} + [Arguments] ${id} ${version_id}=0.1 ${map}= Create Dictionary action=Submit ${data}= Fill JSON Template File ${ASDC_ACTION_TEMPLATE} ${map} - ${resp}= Run ASDC Put Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${id}${ASDC_VENDOR_ACTIONS_PATH} ${data} + ${resp}= Run ASDC Put Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${id}/versions/${version_id}${ASDC_VENDOR_ACTIONS_PATH} ${data} Should Be Equal As Strings ${resp.status_code} 200 [Return] ${resp.json()} Package ASDC Software Product [Documentation] creates_package on an asdc Software Product by its id - [Arguments] ${id} + [Arguments] ${id} ${version_id}=0.1 ${map}= Create Dictionary action=Create_Package ${data}= Fill JSON Template File ${ASDC_ACTION_TEMPLATE} ${map} - ${resp}= Run ASDC Put Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${id}${ASDC_VENDOR_ACTIONS_PATH} ${data} + ${resp}= Run ASDC Put Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${id}/versions/${version_id}${ASDC_VENDOR_ACTIONS_PATH} ${data} Should Be Equal As Strings ${resp.status_code} 200 [Return] ${resp.json()} Add ASDC Entitlement Pool [Documentation] Creates an asdc Entitlement Pool and returns its id - [Arguments] ${license_model_id} + [Arguments] ${license_model_id} ${version_id}=0.1 ${uuid}= Generate UUID ${shortened_uuid}= Evaluate str("${uuid}")[:23] ${map}= Create Dictionary entitlement_pool_name=${shortened_uuid} ${data}= Fill JSON Template File ${ASDC_ENTITLEMENT_POOL_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}${ASDC_VENDOR_ENTITLEMENT_POOL_PATH} ${data} + ${resp}= Run ASDC Post Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}/versions/${version_id}${ASDC_VENDOR_ENTITLEMENT_POOL_PATH} ${data} Should Be Equal As Strings ${resp.status_code} 200 [Return] ${resp.json()['value']} Get ASDC Entitlement Pool @@ -162,27 +177,27 @@ Get ASDC Entitlement Pool [Return] ${resp.json()} Add ASDC License Group [Documentation] Creates an asdc license group and returns its id - [Arguments] ${license_model_id} + [Arguments] ${license_model_id} ${version_id}=0.1 ${uuid}= Generate UUID ${shortened_uuid}= Evaluate str("${uuid}")[:23] ${map}= Create Dictionary key_group_name=${shortened_uuid} ${data}= Fill JSON Template File ${ASDC_KEY_GROUP_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}${ASDC_VENDOR_KEY_GROUP_PATH} ${data} + ${resp}= Run ASDC Post Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}/versions/${version_id}${ASDC_VENDOR_KEY_GROUP_PATH} ${data} Should Be Equal As Strings ${resp.status_code} 200 [Return] ${resp.json()['value']} Get ASDC License Group [Documentation] gets an asdc license group by its id - [Arguments] ${license_model_id} ${group_id} - ${resp}= Run ASDC Get Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}${ASDC_VENDOR_KEY_GROUP_PATH}/${group_id} + [Arguments] ${license_model_id} ${group_id} ${version_id} + ${resp}= Run ASDC Get Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}/versions/${version_id}${ASDC_VENDOR_KEY_GROUP_PATH}/${group_id} [Return] ${resp.json()} Add ASDC Feature Group [Documentation] Creates an asdc Feature Group and returns its id - [Arguments] ${license_model_id} ${key_group_id} ${entitlement_pool_id} + [Arguments] ${license_model_id} ${key_group_id} ${entitlement_pool_id} ${version_id}=0.1 ${uuid}= Generate UUID ${shortened_uuid}= Evaluate str("${uuid}")[:23] - ${map}= Create Dictionary feature_group_name=${shortened_uuid} key_group_id=${key_group_id} entitlement_pool_id=${entitlement_pool_id} + ${map}= Create Dictionary feature_group_name=${shortened_uuid} key_group_id=${key_group_id} entitlement_pool_id=${entitlement_pool_id} manufacturer_reference_number=mrn${shortened_uuid} ${data}= Fill JSON Template File ${ASDC_FEATURE_GROUP_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}${ASDC_VENDOR_FEATURE_GROUP_PATH} ${data} + ${resp}= Run ASDC Post Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}/versions/${version_id}${ASDC_VENDOR_FEATURE_GROUP_PATH} ${data} Should Be Equal As Strings ${resp.status_code} 200 [Return] ${resp.json()['value']} Get ASDC Feature Group @@ -192,12 +207,12 @@ Get ASDC Feature Group [Return] ${resp.json()} Add ASDC License Agreement [Documentation] Creates an asdc License Agreement and returns its id - [Arguments] ${license_model_id} ${feature_group_id} + [Arguments] ${license_model_id} ${feature_group_id} ${version_id}=0.1 ${uuid}= Generate UUID ${shortened_uuid}= Evaluate str("${uuid}")[:23] ${map}= Create Dictionary license_agreement_name=${shortened_uuid} feature_group_id=${feature_group_id} ${data}= Fill JSON Template File ${ASDC_LICENSE_AGREEMENT_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}${ASDC_VENDOR_LICENSE_AGREEMENT_PATH} ${data} + ${resp}= Run ASDC Post Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}/versions/${version_id}${ASDC_VENDOR_LICENSE_AGREEMENT_PATH} ${data} Should Be Equal As Strings ${resp.status_code} 200 [Return] ${resp.json()['value']} Get ASDC License Agreement @@ -217,8 +232,8 @@ Add ASDC Software Product [Return] ${resp.json()['vspId']} Get ASDC Software Product [Documentation] gets an asdc Software Product by its id - [Arguments] ${software_product_id} - ${resp}= Run ASDC Get Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${software_product_id} + [Arguments] ${software_product_id} ${version_id}=0.1 + ${resp}= Run ASDC Get Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${software_product_id}/versions/${version_id} [Return] ${resp.json()} Add ASDC Catalog Resource [Documentation] Creates an asdc Catalog Resource and returns its id @@ -276,10 +291,10 @@ Certify ASDC Catalog Resource [Return] ${resp.json()['uniqueId']} Upload ASDC Heat Package [Documentation] Creates an asdc Software Product and returns its id - [Arguments] ${software_product_id} ${file_path} + [Arguments] ${software_product_id} ${file_path} ${version_id}=0.1 ${file}= Get Binary File ${file_path} ${files}= Create Dictionary upload=${file} - ${resp}= Run ASDC Post Files Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${software_product_id}${ASDC_VENDOR_SOFTWARE_UPLOAD_PATH} ${files} ${ASDC_DESIGNER_USER_ID} + ${resp}= Run ASDC Post Files Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${software_product_id}/versions/${version_id}${ASDC_VENDOR_SOFTWARE_UPLOAD_PATH} ${files} ${ASDC_DESIGNER_USER_ID} Should Be Equal As Strings ${resp.status_code} 200 Add ASDC Catalog Service [Documentation] Creates an asdc Catalog Service and returns its id @@ -385,7 +400,7 @@ Get Catalog Service Distribution Details [Return] ${resp.json()} Run ASDC Health Check [Documentation] Runs a ASDC health check - ${session}= Create Session asdc ${GLOBAL_ASDC_FE_SERVER}:${GLOBAL_ASDC_FE_PORT} + ${session}= Create Session asdc ${ASDC_FE_ENDPOINT} ${uuid}= Generate UUID ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} ${resp}= Get Request asdc ${ASDC_HEALTH_CHECK_PATH} headers=${headers} @@ -398,8 +413,8 @@ Run ASDC Get Request [Documentation] Runs an ASDC get request [Arguments] ${data_path} ${user}=${ASDC_DESIGNER_USER_ID} ${auth}= Create List ${GLOBAL_ASDC_BE_USERNAME} ${GLOBAL_ASDC_BE_PASSWORD} - Log Creating session ${GLOBAL_ASDC_BE_SERVER} - ${session}= Create Session asdc ${GLOBAL_ASDC_BE_SERVER}:${GLOBAL_ASDC_BE_PORT} auth=${auth} + Log Creating session ${ASDC_BE_ENDPOINT} + ${session}= Create Session asdc ${ASDC_BE_ENDPOINT} auth=${auth} ${uuid}= Generate UUID ${headers}= Create Dictionary Accept=application/json Content-Type=application/json USER_ID=${user} X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} ${resp}= Get Request asdc ${data_path} headers=${headers} @@ -409,8 +424,8 @@ Run ASDC Put Request [Documentation] Runs an ASDC put request [Arguments] ${data_path} ${data} ${user}=${ASDC_DESIGNER_USER_ID} ${auth}= Create List ${GLOBAL_ASDC_BE_USERNAME} ${GLOBAL_ASDC_BE_PASSWORD} - Log Creating session ${GLOBAL_ASDC_BE_SERVER} - ${session}= Create Session asdc ${GLOBAL_ASDC_BE_SERVER}:${GLOBAL_ASDC_BE_PORT} auth=${auth} + Log Creating session ${ASDC_BE_ENDPOINT} + ${session}= Create Session asdc ${ASDC_BE_ENDPOINT} auth=${auth} ${uuid}= Generate UUID ${headers}= Create Dictionary Accept=application/json Content-Type=application/json USER_ID=${user} X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} ${resp}= Put Request asdc ${data_path} data=${data} headers=${headers} @@ -420,8 +435,8 @@ Run ASDC Post Files Request [Documentation] Runs an ASDC post request [Arguments] ${data_path} ${files} ${user}=${ASDC_DESIGNER_USER_ID} ${auth}= Create List ${GLOBAL_ASDC_BE_USERNAME} ${GLOBAL_ASDC_BE_PASSWORD} - Log Creating session ${GLOBAL_ASDC_BE_SERVER} - ${session}= Create Session asdc ${GLOBAL_ASDC_BE_SERVER}:${GLOBAL_ASDC_BE_PORT} auth=${auth} + Log Creating session ${ASDC_BE_ENDPOINT} + ${session}= Create Session asdc ${ASDC_BE_ENDPOINT} auth=${auth} ${uuid}= Generate UUID ${headers}= Create Dictionary Accept=application/json Content-Type=multipart/form-data USER_ID=${user} X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} ${resp}= Post Request asdc ${data_path} files=${files} headers=${headers} @@ -431,8 +446,8 @@ Run ASDC Post Request [Documentation] Runs an ASDC post request [Arguments] ${data_path} ${data} ${user}=${ASDC_DESIGNER_USER_ID} ${auth}= Create List ${GLOBAL_ASDC_BE_USERNAME} ${GLOBAL_ASDC_BE_PASSWORD} - Log Creating session ${GLOBAL_ASDC_BE_SERVER} - ${session}= Create Session asdc ${GLOBAL_ASDC_BE_SERVER}:${GLOBAL_ASDC_BE_PORT} auth=${auth} + Log Creating session ${ASDC_BE_ENDPOINT} + ${session}= Create Session asdc ${ASDC_BE_ENDPOINT} auth=${auth} ${uuid}= Generate UUID ${headers}= Create Dictionary Accept=application/json Content-Type=application/json USER_ID=${user} X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} ${resp}= Post Request asdc ${data_path} data=${data} headers=${headers} @@ -442,8 +457,8 @@ Run ASDC Delete Request [Documentation] Runs an ASDC delete request [Arguments] ${data_path} ${user}=${ASDC_DESIGNER_USER_ID} ${auth}= Create List ${GLOBAL_ASDC_BE_USERNAME} ${GLOBAL_ASDC_BE_PASSWORD} - Log Creating session ${GLOBAL_ASDC_BE_SERVER} - ${session}= Create Session asdc ${GLOBAL_ASDC_BE_SERVER}:${GLOBAL_ASDC_BE_PORT} auth=${auth} + Log Creating session ${ASDC_BE_ENDPOINT} + ${session}= Create Session asdc ${ASDC_BE_ENDPOINT} auth=${auth} ${uuid}= Generate UUID ${headers}= Create Dictionary Accept=application/json Content-Type=application/json USER_ID=${user} X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} ${resp}= Delete Request asdc ${data_path} headers=${headers} @@ -454,11 +469,11 @@ Open ASDC GUI [Arguments] ${PATH} ## Setup Browever now being managed by the test case ##Setup Browser - Go To ${GLOBAL_ASDC_FE_SERVER}${PATH} + Go To ${ASDC_FE_ENDPOINT}${PATH} Maximize Browser Window Set Selenium Speed ${GLOBAL_SELENIUM_DELAY} Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT} - Log Logging in to ${GLOBAL_ASDC_FE_SERVER}${PATH} + Log Logging in to ${ASDC_FE_ENDPOINT}${PATH} Title Should Be ASDC Wait Until Page Contains Element xpath=//div/a[text()='SDC'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT} - Log Logged in to ${GLOBAL_PORTAL_SERVER}${PATH} + Log Logged in to ${ASDC_FE_ENDPOINT}${PATH} diff --git a/kubernetes/config/docker/init/src/config/robot/robot/resources/policy_interface.robot b/kubernetes/config/docker/init/src/config/robot/robot/resources/policy_interface.robot index 3bd51f5a43..4798c91d60 100644 --- a/kubernetes/config/docker/init/src/config/robot/robot/resources/policy_interface.robot +++ b/kubernetes/config/docker/init/src/config/robot/robot/resources/policy_interface.robot @@ -9,14 +9,16 @@ Resource global_properties.robot *** Variables *** ${POLICY_HEALTH_CHECK_PATH} /healthcheck +${POLICY_ENDPOINT} ${GLOBAL_POLICY_SERVER_PROTOCOL}://${GLOBAL_INJECTED_POLICY_IP_ADDR}:${GLOBAL_POLICY_SERVER_PORT} +${POLICY_HEALTHCHECK_ENDPOINT} ${GLOBAL_POLICY_SERVER_PROTOCOL}://${GLOBAL_INJECTED_POLICY_HEALTHCHECK_IP_ADDR}:${GLOBAL_POLICY_HEALTHCHECK_PORT} *** Keywords *** Run Policy Health Check [Documentation] Runs Policy Health check ${auth}= Create List ${GLOBAL_POLICY_USERNAME} ${GLOBAL_POLICY_PASSWORD} - Log Creating session ${GLOBAL_POLICY_SERVER_URL} - ${session}= Create Session policy ${GLOBAL_POLICY_HEALTHCHECK_URL} auth=${auth} + Log Creating session ${POLICY_ENDPOINT} + ${session}= Create Session policy ${POLICY_HEALTHCHECK_ENDPOINT} auth=${auth} ${headers}= Create Dictionary Accept=application/json Content-Type=application/json ${resp}= Get Request policy ${POLICY_HEALTH_CHECK_PATH} headers=${headers} Log Received response from policy ${resp.text} @@ -30,8 +32,8 @@ Run Policy Health Check Run Policy Put Request [Documentation] Runs Policy Put request [Arguments] ${data_path} ${data} - Log Creating session ${GLOBAL_POLICY_SERVER_URL} - ${session}= Create Session policy ${GLOBAL_POLICY_SERVER_URL} + Log Creating session ${POLICY_ENDPOINT} + ${session}= Create Session policy ${POLICY_ENDPOINT} ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH} Environment=TEST ${resp}= Put Request policy ${data_path} data=${data} headers=${headers} Log Received response from policy ${resp.text} @@ -40,8 +42,8 @@ Run Policy Put Request Run Policy Delete Request [Documentation] Runs Policy Delete request [Arguments] ${data_path} ${data} - Log Creating session ${GLOBAL_POLICY_SERVER_URL} - ${session}= Create Session policy ${GLOBAL_POLICY_SERVER_URL} + Log Creating session ${POLICY_ENDPOINT} + ${session}= Create Session policy ${POLICY_ENDPOINT} ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH} Environment=TEST ${resp}= Delete Request policy ${data_path} data=${data} headers=${headers} Log Received response from policy ${resp.text} @@ -50,9 +52,9 @@ Run Policy Delete Request Run Policy Get Configs Request [Documentation] Runs Policy Get Configs request [Arguments] ${data_path} ${data} - Log Creating session ${GLOBAL_POLICY_SERVER_URL} - ${session}= Create Session policy ${GLOBAL_POLICY_SERVER_URL} + Log Creating session ${POLICY_ENDPOINT} + ${session}= Create Session policy ${POLICY_ENDPOINT} ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH} ${resp}= Post Request policy ${data_path} data=${data} headers=${headers} Log Received response from policy ${resp.text} - [Return] ${resp} \ No newline at end of file + [Return] ${resp} diff --git a/kubernetes/config/docker/init/src/config/robot/robot/resources/sdngc_interface.robot b/kubernetes/config/docker/init/src/config/robot/robot/resources/sdngc_interface.robot index 0d4f10e35b..a2693b8fba 100644 --- a/kubernetes/config/docker/init/src/config/robot/robot/resources/sdngc_interface.robot +++ b/kubernetes/config/docker/init/src/config/robot/robot/resources/sdngc_interface.robot @@ -1,7 +1,7 @@ *** Settings *** Documentation The main interface for interacting with SDN-GC. It handles low level stuff like managing the http request library and SDN-GC required fields Library RequestsLibrary -Library UUID +Library UUID Library OperatingSystem Library ExtendedSelenium2Library Library Collections @@ -19,8 +19,8 @@ ${PRELOAD_VNF_CONFIG_PATH} /config/VNF-API:preload-vnfs/vnf-preload-list ${PRELOAD_VNF_TOPOLOGY_OPERATION_BODY} robot/assets/templates/sdnc/ ${SDNGC_INDEX_PATH} /restconf ${SDNCGC_HEALTHCHECK_OPERATION_PATH} /operations/SLI-API:healthcheck -${SDNGC_REST_ENDPOINT} ${GLOBAL_SDNGC_SERVER}:${GLOBAL_SDNGC_REST_PORT} -${SDNGC_ADMIN_ENDPOINT} ${GLOBAL_SDNGC_PORTAL}:${GLOBAL_SDNGC_ADMIN_PORT} +${SDNGC_REST_ENDPOINT} ${GLOBAL_SDNGC_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SDNC_IP_ADDR}:${GLOBAL_SDNGC_REST_PORT} +${SDNGC_ADMIN_ENDPOINT} ${GLOBAL_SDNGC_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SDNC_PORTAL_IP_ADDR}:${GLOBAL_SDNGC_ADMIN_PORT} ${SDNGC_ADMIN_SIGNUP_URL} ${SDNGC_ADMIN_ENDPOINT}/signup ${SDNGC_ADMIN_LOGIN_URL} ${SDNGC_ADMIN_ENDPOINT}/login ${SDNGC_ADMIN_VNF_PROFILE_URL} ${SDNGC_ADMIN_ENDPOINT}/mobility/getVnfProfile @@ -30,7 +30,7 @@ Run SDNGC Health Check [Documentation] Runs an SDNGC healthcheck ${resp}= Run SDNGC Post Request ${SDNGC_INDEX PATH}${SDNCGC_HEALTHCHECK_OPERATION_PATH} ${None} Should Be Equal As Strings ${resp.status_code} 200 - Should Be Equal As Strings ${resp.json()['output']['response-code']} 200 + Should Be Equal As Strings ${resp.json()['output']['response-code']} 200 Run SDNGC Get Request [Documentation] Runs an SDNGC get request @@ -43,7 +43,7 @@ Run SDNGC Get Request ${resp}= Get Request sdngc ${data_path} headers=${headers} Log Received response from sdngc ${resp.text} [Return] ${resp} - + Run SDNGC Put Request [Documentation] Runs an SDNGC put request [Arguments] ${data_path} ${data} @@ -66,8 +66,8 @@ Run SDNGC Post Request ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} ${resp}= Post Request sdngc ${data_path} data=${data} headers=${headers} Log Received response from sdngc ${resp.text} - [Return] ${resp} - + [Return] ${resp} + Run SDNGC Delete Request [Documentation] Runs an SDNGC delete request [Arguments] ${data_path} @@ -92,37 +92,37 @@ Preload Vnf \ ${filename}= Get From Dictionary ${dict} template \ ${base_vf_module_type}= Set Variable If '${dict['isBase']}' == 'true' ${vf_module_type} ${base_vf_module_type} \ ${closedloop_vf_module}= Set Variable If '${dict['isBase']}' == 'false' ${vf_module} ${closedloop_vf_module} - \ ${vf_name}= Update Module Name ${dict} ${vf_module_name} - \ Preload Vnf Profile ${vf_module_type} + \ ${vf_name}= Update Module Name ${dict} ${vf_module_name} + \ Preload Vnf Profile ${vf_module_type} \ Preload One Vnf Topology ${service_type_uuid} ${generic_vnf_name} ${generic_vnf_type} ${vf_name} ${vf_module_type} ${service} ${filename} ${uuid} - [Return] ${base_vf_module_type} ${closedloop_vf_module} + [Return] ${base_vf_module_type} ${closedloop_vf_module} Update Module Name [Arguments] ${dict} ${vf_module_name} Return From Keyword If 'prefix' not in ${dict} ${vf_module_name} Return From Keyword If '${dict['prefix']}' == '' ${vf_module_name} - ${name}= Replace String ${vf_module_name} Vfmodule_ ${dict['prefix']} - [Return] ${name} + ${name}= Replace String ${vf_module_name} Vfmodule_ ${dict['prefix']} + [Return] ${name} Get From Mapping - [Documentation] Retrieve the appropriate prelad template entry for the passed vf_module + [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} - \ Return From Keyword If '${template['name_pattern']}' in '${vf_module_name}' ${template} + :for ${template} in @{templates} + \ Return From Keyword If '${template['name_pattern']}' in '${vf_module_name}' ${template} [Return] None - - + + Preload One Vnf Topology [Arguments] ${service_type_uuid} ${generic_vnf_name} ${generic_vnf_type} ${vf_module_name} ${vf_module_type} ${service} ${filename} ${uuid} Return From Keyword If '${filename}' == '' ${data_template}= OperatingSystem.Get File ${PRELOAD_VNF_TOPOLOGY_OPERATION_BODY}/${filename} ${parameters}= Get Template Parameters ${filename} ${uuid} Set To Dictionary ${parameters} generic_vnf_name=${generic_vnf_name} generic_vnf_type=${generic_vnf_type} service_type=${service_type_uuid} vf_module_name=${vf_module_name} vf_module_type=${vf_module_type} uuid=${uuid} - ${data}= Fill JSON Template ${data_template} ${parameters} + ${data}= Fill JSON Template ${data_template} ${parameters} ${put_resp}= Run SDNGC Post Request ${SDNGC_INDEX_PATH}${PRELOAD_VNF_TOPOLOGY_OPERATION_PATH} ${data} - Should Be Equal As Strings ${put_resp.json()['output']['response-code']} 200 + Should Be Equal As Strings ${put_resp.json()['output']['response-code']} 200 ${get_resp}= Run SDNGC Get Request ${SDNGC_INDEX_PATH}${PRELOAD_VNF_CONFIG_PATH}/${vf_module_name}/${vf_module_type} Should Be Equal As Strings ${get_resp.status_code} 200 @@ -133,7 +133,9 @@ Get Template Parameters ${hostid}= Get Substring ${uuid} -4 ${ecompnet}= Evaluate ${GLOBAL_BUILD_NUMBER}%255 # Initialize the value map with the properties generated from the Robot VM /opt/config folder - ${valuemap}= Copy Dictionary ${GLOBAL_VM_PROPERTIES} + ${valuemap}= Create Dictionary + Set To Dictionary ${valuemap} artifacts_version=${GLOBAL_INJECTED_ARTIFACTS_VERSION} + Set To Dictionary ${valuemap} network=${GLOBAL_INJECTED_NETWORK} # update the value map with unique values. Set To Dictionary ${valuemap} uuid=${uuid} hostid=${hostid} ecompnet=${ecompnet} ${parameters}= Create Dictionary @@ -143,15 +145,15 @@ Get Template Parameters ${template}= Get From Dictionary ${suite_templates} ${template} Resolve Values Into Dictionary ${valuemap} ${template} ${parameters} [Return] ${parameters} - -Resolve Values Into Dictionary + +Resolve Values Into Dictionary [Arguments] ${valuemap} ${from} ${to} ${keys}= Get Dictionary Keys ${from} :for ${key} in @{keys} \ ${value}= Get From Dictionary ${from} ${key} \ ${value}= Template String ${value} ${valuemap} \ Set To Dictionary ${to} ${key} ${value} - + Preload Vnf Profile [Arguments] ${vnf_name} Login To SDNGC Admin GUI @@ -161,25 +163,25 @@ Preload Vnf Profile Input Text xpath=//input[@id='nf_availability_zone_count'] 999 Input Text xpath=//input[@id='nf_equipment_role'] robot-ete-test Click Button xpath=//button[contains(.,'Submit')] - Page Should Contain VNF Profile + Page Should Contain VNF Profile Input Text xpath=//div[@id='vnf_profile_filter']//input ${vnf_name} - Page Should Contain ${vnf_name} + Page Should Contain ${vnf_name} Delete Vnf Profile [Arguments] ${vnf_name} Login To SDNGC Admin GUI Go To ${SDNGC_ADMIN_VNF_PROFILE_URL} - Page Should Contain VNF Profile + Page Should Contain VNF Profile Input Text xpath=//div[@id='vnf_profile_filter']//input ${vnf_name} Page Should Contain ${vnf_name} - Click Button xpath=//button[contains(@onclick, '${vnf_name}')] + Click Button xpath=//button[contains(@onclick, '${vnf_name}')] Page Should Contain Are you sure you want to delete VNF_PROFILE Click Button xpath=//button[contains(text(), 'Yes')] Page Should Not Contain ${vnf_name} - + Login To SDNGC Admin GUI [Documentation] Login To SDNGC Admin GUI - ## Setup Browser is now being managed by the test case + ## Setup Browser is now being managed by the test case ## Setup Browser Go To ${SDNGC_ADMIN_SIGNUP_URL} Maximize Browser Window @@ -188,7 +190,7 @@ Login To SDNGC Admin GUI Log Logging in to ${SDNGC_ADMIN_LOGIN_URL} Handle Proxy Warning Title Should Be AdminPortal - ${uuid}= Generate UUID + ${uuid}= Generate UUID ${shortened_uuid}= Evaluate str("${uuid}")[:12] ${email}= Catenate ${shortened_uuid}@robotete.com Input Text xpath=//input[@id='nf_email'] ${email} -- 2.16.6