From 7ea563e097a945ec695c713fb2de3665c0c9b49c Mon Sep 17 00:00:00 2001 From: Mandeep Khinda Date: Tue, 17 Apr 2018 03:26:26 +0000 Subject: Synching robot up with Beijing code -updating configmaps with master -parameterizing auth -removing asdc interface fork. no longer needed as be/fe are split -fixing spaces -aligning with templates better -adding comments to values that need overriding per environment -injecting demo project into container in /share/heat on startup -addressing comment on demo-k8s.sh Issue-ID: OOM-795 Change-Id: Iebc959c20491e3e2ca8cf64f22444918650d1970 Signed-off-by: Mandeep Khinda --- kubernetes/robot/demo-k8s.sh | 30 +- kubernetes/robot/resources/config/authorization | 2 +- .../config/integration_preload_parameters.py | 341 ++++++++++---- .../config/integration_robot_properties.py | 50 ++- .../config/eteshare/config/vm_properties.py | 42 +- .../config/robot/resources/asdc_interface.robot | 495 --------------------- .../config/robot/resources/policy_interface.robot | 7 +- .../config/robot/resources/sdngc_interface.robot | 96 ++-- kubernetes/robot/templates/deployment.yaml | 120 ++--- kubernetes/robot/templates/service.yaml | 12 +- kubernetes/robot/values.yaml | 61 ++- 11 files changed, 506 insertions(+), 750 deletions(-) delete mode 100644 kubernetes/robot/resources/config/robot/resources/asdc_interface.robot diff --git a/kubernetes/robot/demo-k8s.sh b/kubernetes/robot/demo-k8s.sh index 23fc555dc5..d5e7a0384d 100755 --- a/kubernetes/robot/demo-k8s.sh +++ b/kubernetes/robot/demo-k8s.sh @@ -22,7 +22,7 @@ function usage echo " demo.sh appc " echo " - provide APPC with vFW module mount point for closed loop" echo " " - echo " demo.sh init_robot" + echo " demo.sh init_robot [ ]" echo " - Initialize robot after all ONAP VMs have started" echo " " echo " demo.sh instantiateVFW" @@ -36,7 +36,7 @@ function usage } # Set the defaults -if [ $# -le 1 ];then +if [ $# -le 2 ];then usage exit fi @@ -47,9 +47,9 @@ shift ## ## if more than 1 tag is supplied, the must be provided with -i or -e ## -while [ $# -gt 0 ] +while [ $# -gt 1 ] do - key="$1" + key="$2" case $key in init_robot) @@ -62,6 +62,10 @@ do fi VARIABLES="$VARIABLES -v WEB_PASSWORD:$WEB_PASSWORD" shift + if [ $# -eq 2 ];then + VARIABLES="$VARIABLES -v HOSTS_PREFIX:$2" + fi + shift ;; init) TAG="InitDemo" @@ -75,7 +79,7 @@ do TAG="InitDistribution" shift if [ $# -eq 1 ];then - VARIABLES="$VARIABLES -v DEMO_PREFIX:$1" + VARIABLES="$VARIABLES -v DEMO_PREFIX:$2" fi shift ;; @@ -86,9 +90,9 @@ do echo "Usage: demo.sh preload " exit fi - VARIABLES="$VARIABLES -v VNF_NAME:$1" + VARIABLES="$VARIABLES -v VNF_NAME:$2" shift - VARIABLES="$VARIABLES -v MODULE_NAME:$1" + VARIABLES="$VARIABLES -v MODULE_NAME:$2" shift ;; appc) @@ -98,7 +102,7 @@ do echo "Usage: demo.sh appc " exit fi - VARIABLES="$VARIABLES -v MODULE_NAME:$1" + VARIABLES="$VARIABLES -v MODULE_NAME:$2" shift ;; instantiateVFW) @@ -113,14 +117,14 @@ do echo "Usage: demo.sh deleteVNF " exit fi - VARFILE=$1.py + VARFILE=$2.py if [ -e /opt/eteshare/${VARFILE} ]; then VARIABLES="$VARIABLES -V /share/${VARFILE}" else echo "Cache file ${VARFILE} is not found" exit fi - shift + shift ;; heatbridge) TAG="heatbridge" @@ -129,11 +133,11 @@ do echo "Usage: demo.sh heatbridge " exit fi - VARIABLES="$VARIABLES -v HB_STACK:$1" + VARIABLES="$VARIABLES -v HB_STACK:$2" shift - VARIABLES="$VARIABLES -v HB_SERVICE_INSTANCE_ID:$1" + VARIABLES="$VARIABLES -v HB_SERVICE_INSTANCE_ID:$2" shift - VARIABLES="$VARIABLES -v HB_SERVICE:$1" + VARIABLES="$VARIABLES -v HB_SERVICE:$2" shift ;; *) diff --git a/kubernetes/robot/resources/config/authorization b/kubernetes/robot/resources/config/authorization index 988730f7a8..23b429e04e 100755 --- a/kubernetes/robot/resources/config/authorization +++ b/kubernetes/robot/resources/config/authorization @@ -1 +1 @@ -robot:robot +{{ .Values.config.lightHttpdUsername }}:{{ .Values.config.lightHttpdPassword }} diff --git a/kubernetes/robot/resources/config/eteshare/config/integration_preload_parameters.py b/kubernetes/robot/resources/config/eteshare/config/integration_preload_parameters.py index b125f792b9..502d8fcc63 100755 --- a/kubernetes/robot/resources/config/eteshare/config/integration_preload_parameters.py +++ b/kubernetes/robot/resources/config/eteshare/config/integration_preload_parameters.py @@ -1,57 +1,24 @@ GLOBAL_PRELOAD_PARAMETERS = { -# heat template parameter values common to all heat template continaing these parameters + # heat template parameter values common to all heat template continaing these parameters "defaults" : { - 'key_name' : 'vfw_key${uuid}', - "pub_key" : "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAqqnA9BAiMLtjOPSYBfhzLu4CiBolWoskDg4KVwhTJVTTeB6CqrQNcadlGXxOHhCYuNCKkUmIVF4WTOisVOJ75Z1c4OMoZLL85xVPKSIeH63kgVugwgPYQu55NbbWX+rsbUha3LnElDhNviMM3iTPbD5nnhKixNERAJMTLKXvZZZGqxW94bREknYPQTT2qrk3YRqwldncopp6Nkgv3AnSJz2gc9tjxnWF0poTQnQm/3D6hiJICrzKfAV0EaPN0KdtYjPhKrYoy6Qb/tKOVaaqsvwfKBJGrT9LfcA7D7M/yj292RT1XN63hI84WC383LsaPJ6eWdDTE6zUP1eGTWCoOw== rsa-key-20161026", - "repo_url_blob" : "https://nexus.onap.org/content/repositories/raw", - "repo_url_artifacts" : "https://nexus.onap.org/content/groups/staging", - "demo_artifacts_version" : "{{ .Values.demoArtifactsVersion }}", - "onap_private_net_id" : "{{ .Values.openStackPrivateNetId }}", - "onap_private_subnet_id" : "{{ .Values.openStackPrivateSubnetId }}", - "onap_private_net_cidr" : "{{ .Values.openStackPrivateNetCidr }}", - "dcae_collector_ip" : "10.0.4.102", - "dcae_collector_port" : "8080", - "public_net_id" : "{{ .Values.openStackPublicNetId }}", - "cloud_env" : "${cloud_env}", - "install_script_version" : "${install_script_version}", -### -# vims_preload same for every instantiation -### - "bono_image_name" : "${vm_image_name}", - "sprout_image_name" : "${vm_image_name}", - "homer_image_name" : "${vm_image_name}", - "homestead_image_name" : "${vm_image_name}", - "ralf_image_name" : "${vm_image_name}", - "ellis_image_name" : "${vm_image_name}", - "dns_image_name" : "${vm_image_name}", - "bono_flavor_name" : "${vm_flavor_name}", - "sprout_flavor_name" : "${vm_flavor_name}", - "homer_flavor_name" : "${vm_flavor_name}", - "homestead_flavor_name" : "${vm_flavor_name}", - "ralf_flavor_name" : "${vm_flavor_name}", - "ellis_flavor_name" : "${vm_flavor_name}", - "dns_flavor_name" : "${vm_flavor_name}", - "repo_url" : "http://repo.cw-ngv.com/stable", - "zone" : "me.cw-ngv.com", - "dn_range_start" : "2425550000", - "dn_range_length" : "10000", - "dnssec_key" : "9FPdYTWhk5+LbhrqtTPQKw==", -### -# vlb_preload same for every instantiation -### - "vlb_image_name" : "${vm_image_name}", - "vlb_flavor_name" : "${vm_flavor_name}", -### -# vlb_preload same for every instantiation -### - "vfw_image_name" : "${vm_image_name}", - "vfw_flavor_name" : "${vm_flavor_name}", -### - }, + 'key_name' : 'vfw_key${uuid}', + "pub_key" : "${pub_key}", + "repo_url_blob" : "https://nexus.onap.org/content/repositories/raw", + "repo_url_artifacts" : "https://nexus.onap.org/content/groups/staging", + "demo_artifacts_version" : "${GLOBAL_INJECTED_ARTIFACTS_VERSION}", + "onap_private_net_id" : "${GLOBAL_INJECTED_NETWORK}", + "onap_private_subnet_id" : "{{ .Values.openStackPrivateSubnetId }}", + "onap_private_net_cidr" : "{{ .Values.openStackPrivateNetCidr }}", + "dcae_collector_ip" : "${dcae_collector_ip}", + "dcae_collector_port" : "8080", + "public_net_id" : "${GLOBAL_INJECTED_PUBLIC_NET_ID}", + "cloud_env" : "${GLOBAL_INJECTED_CLOUD_ENV}", + "install_script_version" : "${GLOBAL_INJECTED_SCRIPT_VERSION}", + }, -### -# heat template parameter values for heat template instances created during Vnf-Orchestration test cases -### +# ## + # heat template parameter values for heat template instances created during Vnf-Orchestration test cases + # ## "Vnf-Orchestration" : { "vfw_preload.template": { "unprotected_private_net_id" : "vofwl01_unprotected${hostid}", @@ -60,37 +27,103 @@ GLOBAL_PRELOAD_PARAMETERS = { "protected_private_net_cidr" : "192.168.20.0/24", "vfw_private_ip_0" : "192.168.10.100", "vfw_private_ip_1" : "192.168.20.100", - "vfw_private_ip_2" : "{{ .Values.openStackOamNetworkCidrPrefix }}.1", + "vfw_private_ip_2" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.1", "vpg_private_ip_0" : "192.168.10.200", - "vpg_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.2", + "vpg_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.2", "vsn_private_ip_0" : "192.168.20.250", - "vsn_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.3", + "vsn_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.3", 'vfw_name_0':'vofwl01fwl${hostid}', 'vpg_name_0':'vofwl01pgn${hostid}', + "vfw_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "vfw_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", 'vsn_name_0':'vofwl01snk${hostid}' }, + "vfwsnk_preload.template": { + "unprotected_private_net_id" : "vofwlsnk_unprotected${hostid}", + "unprotected_private_subnet_id" : "vofwlsnk_unprotected_sub${hostid}", + "unprotected_private_net_cidr" : "192.168.10.0/24", + "protected_private_net_id" : "vofwlsnk_protected${hostid}", + "protected_private_subnet_id" : "vofwlsnk_protected_sub${hostid}", + "protected_private_net_cidr" : "192.168.20.0/24", + "vfw_private_ip_0" : "192.168.10.100", + "vfw_private_ip_1" : "192.168.20.100", + "vfw_private_ip_2" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.101", + "vpg_private_ip_0" : "192.168.10.200", + "vsn_private_ip_0" : "192.168.20.250", + "vsn_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.102", + 'vfw_name_0':'vofwl01fwl${hostid}', + 'vsn_name_0':'vofwl01snk${hostid}', + "image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + }, + "vpkg_preload.template": { + "unprotected_private_net_id" : "vofwlsnk_unprotected${hostid}", + "unprotected_private_subnet_id" : "vofwlsnk_unprotected_sub${hostid}", + "unprotected_private_net_cidr" : "192.168.10.0/24", + "protected_private_net_cidr" : "192.168.20.0/24", + "vfw_private_ip_0" : "192.168.10.100", + "vpg_private_ip_0" : "192.168.10.200", + "vpg_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.103", + "vsn_private_ip_0" : "192.168.20.250", + 'vpg_name_0':'vofwl01pgn${hostid}', + "image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + }, "vlb_preload.template" : { + "vlb_image_name" : "${GLOBAL_INJECTED_UBUNTU_1604_IMAGE}", + "vlb_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", "vlb_private_net_id" : "volb01_private${hostid}", + "pktgen_private_net_id" : "volb01_pktgen${hostid}", "vlb_private_net_cidr" : "192.168.30.0/24", "vlb_private_ip_0" : "192.168.30.100", - "vlb_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.4", + "vlb_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.4", "vdns_private_ip_0" : "192.168.30.110", - "vdns_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.5", + "vdns_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.5", 'vlb_name_0':'vovlblb${hostid}', 'vdns_name_0':'vovlbdns${hostid}', - "vlb_private_net_cidr" : "192.168.10.0/24", - "pktgen_private_net_cidr" : "192.168.9.0/24" + "pktgen_private_net_cidr" : "192.168.9.0/24", + "vpg_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.7", + "pg_int" : "192.168.9.109", + "vpg_private_ip_0" : "192.168.9.110", + "vlb_private_ip_2" : "192.168.9.111", + "vip" : "192.168.9.112", + "gre_ipaddr" : "192.168.30.112", + "vpg_name_0" : "vovlbpgn${hostid}", + "vnf_id" : "vLoadBalancer_${hostid}", + "vf_module_id" : "vLoadBalancer" }, "dnsscaling_preload.template" : { "vlb_private_net_id" : "volb01_private${hostid}", "vlb_private_ip_0" : "192.168.30.100", - "vlb_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.4", + "vlb_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.4", "vdns_private_ip_0" : "192.168.30.222", - "vdns_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.6", + "vdns_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.6", 'scaling_vdns_name_0':'vovlbscaling${hostid}', "vlb_private_net_cidr" : "192.168.10.0/24" }, + "vims_preload.template" : { + "bono_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "sprout_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "homer_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "homestead_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "ralf_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "ellis_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "dns_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "bono_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "sprout_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "homer_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "homestead_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "ralf_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "ellis_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "dns_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "repo_url" : "http://repo.cw-ngv.com/stable", + "zone" : "me.cw-ngv.com", + "dn_range_start" : "2425550000", + "dn_range_length" : "10000", + "dnssec_key" : "9FPdYTWhk5+LbhrqtTPQKw==" + + }, "vvg_preload.template" : { } }, @@ -103,36 +136,101 @@ GLOBAL_PRELOAD_PARAMETERS = { "protected_private_net_cidr" : "192.168.120.0/24", "vfw_private_ip_0" : "192.168.110.100", "vfw_private_ip_1" : "192.168.120.100", - "vfw_private_ip_2" : "{{ .Values.openStackOamNetworkCidrPrefix }}.11", + "vfw_private_ip_2" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.11", "vpg_private_ip_0" : "192.168.110.200", - "vpg_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.12", + "vpg_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.12", "vsn_private_ip_0" : "192.168.120.250", - "vsn_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.13", + "vsn_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.13", 'vfw_name_0':'clfwl01fwl${hostid}', 'vpg_name_0':'clfwl01pgn${hostid}', + "vfw_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "vfw_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", 'vsn_name_0':'clfwl01snk${hostid}' }, + "vfwsnk_preload.template": { + "unprotected_private_net_id" : "clfwlsnk_unprotected${hostid}", + "unprotected_private_subnet_id" : "clfwlsnk_unprotected_sub${hostid}", + "unprotected_private_net_cidr" : "192.168.10.0/24", + "protected_private_net_id" : "clfwlsnk_protected${hostid}", + "protected_private_subnet_id" : "clfwlsnk_protected_sub${hostid}", + "protected_private_net_cidr" : "192.168.20.0/24", + "vfw_private_ip_0" : "192.168.10.100", + "vfw_private_ip_1" : "192.168.20.100", + "vfw_private_ip_2" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.111", + "vpg_private_ip_0" : "192.168.10.200", + "vsn_private_ip_0" : "192.168.20.250", + "vsn_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.112", + 'vfw_name_0':'clfwl01fwl${hostid}', + 'vsn_name_0':'clfwl01snk${hostid}', + "image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + }, + "vpkg_preload.template": { + "unprotected_private_net_id" : "clfwlsnk_unprotected${hostid}", + "unprotected_private_subnet_id" : "clfwlsnk_unprotected_sub${hostid}", + "unprotected_private_net_cidr" : "192.168.10.0/24", + "protected_private_net_cidr" : "192.168.20.0/24", + "vfw_private_ip_0" : "192.168.10.100", + "vpg_private_ip_0" : "192.168.10.200", + "vpg_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.113", + "vsn_private_ip_0" : "192.168.20.250", + 'vpg_name_0':'clfwl01pgn${hostid}', + "image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + }, "vlb_preload.template" : { + "vlb_image_name" : "${GLOBAL_INJECTED_UBUNTU_1604_IMAGE}", + "vlb_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", "vlb_private_net_id" : "cllb01_private${hostid}", - "vlb_private_net_cidr" : "192.168.130.0/24", - "vlb_private_ip_0" : "192.168.130.100", - "vlb_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.14", - "vdns_private_ip_0" : "192.168.130.110", - "vdns_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.15", + "pktgen_private_net_id" : "cllb01_pktgen${hostid}", + "vlb_private_net_cidr" : "192.168.30.0/24", + "vlb_private_ip_0" : "192.168.30.100", + "vlb_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.14", + "vdns_private_ip_0" : "192.168.30.110", + "vdns_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.15", 'vlb_name_0':'clvlblb${hostid}', 'vdns_name_0':'clvlbdns${hostid}', - "vlb_private_net_cidr" : "192.168.10.0/24", - "pktgen_private_net_cidr" : "192.168.9.0/24" + "pktgen_private_net_cidr" : "192.168.9.0/24", + "vpg_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.17", + "pg_int" : "192.168.9.109", + "vpg_private_ip_0" : "192.168.9.110", + "vlb_private_ip_2" : "192.168.9.111", + "vip" : "192.168.9.112", + "gre_ipaddr" : "192.168.30.112", + "vpg_name_0" : "clvlbpgn${hostid}", + "vnf_id" : "vLoadBalancer_${hostid}", + "vf_module_id" : "vLoadBalancer" }, "dnsscaling_preload.template" : { "vlb_private_net_id" : "cllb01_private${hostid}", "vlb_private_ip_0" : "192.168.130.100", - "vlb_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.14", + "vlb_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.14", "vdns_private_ip_0" : "192.168.130.222", - "vdns_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.16", + "vdns_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.16", 'scaling_vdns_name_0':'clvlbscaling${hostid}', "vlb_private_net_cidr" : "192.168.10.0/24" }, + "vims_preload.template" : { + "bono_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "sprout_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "homer_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "homestead_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "ralf_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "ellis_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "dns_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "bono_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "sprout_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "homer_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "homestead_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "ralf_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "ellis_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "dns_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "repo_url" : "http://repo.cw-ngv.com/stable", + "zone" : "me.cw-ngv.com", + "dn_range_start" : "2425550000", + "dn_range_length" : "10000", + "dnssec_key" : "9FPdYTWhk5+LbhrqtTPQKw==" + }, "vvg_preload.template" : { } }, @@ -145,36 +243,101 @@ GLOBAL_PRELOAD_PARAMETERS = { "protected_private_net_cidr" : "192.168.120.0/24", "vfw_private_ip_0" : "192.168.110.100", "vfw_private_ip_1" : "192.168.120.100", - "vfw_private_ip_2" : "{{ .Values.openStackOamNetworkCidrPrefix }}.11", + "vfw_private_ip_2" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.11", "vpg_private_ip_0" : "192.168.110.200", - "vpg_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.12", + "vpg_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.12", "vsn_private_ip_0" : "192.168.120.250", - "vsn_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.13", + "vsn_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.13", 'vfw_name_0':'demofwl01fwl', 'vpg_name_0':'demofwl01pgn', + "vfw_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "vfw_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", 'vsn_name_0':'demofwl01snk' }, + "vfwsnk_preload.template": { + "unprotected_private_net_id" : "demofwlsnk_unprotected${hostid}", + "unprotected_private_subnet_id" : "demofwlsnk_unprotected_sub${hostid}", + "unprotected_private_net_cidr" : "192.168.10.0/24", + "protected_private_net_id" : "demofwlsnk_protected${hostid}", + "protected_private_subnet_id" : "vofwlsnk_protected_sub${hostid}", + "protected_private_net_cidr" : "192.168.20.0/24", + "vfw_private_ip_0" : "192.168.10.100", + "vfw_private_ip_1" : "192.168.20.100", + "vfw_private_ip_2" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.121", + "vpg_private_ip_0" : "192.168.10.200", + "vsn_private_ip_0" : "192.168.20.250", + "vsn_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.122", + 'vfw_name_0':'${generic_vnf_name}', + 'vsn_name_0':'demofwl01snk${hostid}', + "image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + }, + "vpkg_preload.template": { + "unprotected_private_net_id" : "demofwlsnk_unprotected${hostid}", + "unprotected_private_subnet_id" : "demofwlsnk_unprotected_sub${hostid}", + "unprotected_private_net_cidr" : "192.168.10.0/24", + "protected_private_net_cidr" : "192.168.20.0/24", + "vfw_private_ip_0" : "192.168.10.100", + "vpg_private_ip_0" : "192.168.10.200", + "vpg_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.123", + "vsn_private_ip_0" : "192.168.20.250", + 'vpg_name_0':'demofwl01pgn${hostid}', + "image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}" + }, "vlb_preload.template" : { - "vlb_private_net_id" : "demolb_private", - "vlb_private_net_cidr" : "192.168.130.0/24", - "vlb_private_ip_0" : "192.168.130.100", - "vlb_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.14", - "vdns_private_ip_0" : "192.168.130.110", - "vdns_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.15", - 'vlb_name_0':'demovlblb', - 'vdns_name_0':'demovlbdns', - "vlb_private_net_cidr" : "192.168.10.0/24", - "pktgen_private_net_cidr" : "192.168.9.0/24" + "vlb_image_name" : "${GLOBAL_INJECTED_UBUNTU_1604_IMAGE}", + "vlb_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "vlb_private_net_id" : "demolb_private${hostid}", + "pktgen_private_net_id" : "demolb_pktgen${hostid}", + "vlb_private_net_cidr" : "192.168.30.0/24", + "vlb_private_ip_0" : "192.168.30.100", + "vlb_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.24", + "vdns_private_ip_0" : "192.168.30.110", + "vdns_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.25", + 'vlb_name_0':'demovlblb${hostid}', + 'vdns_name_0':'demovlbdns${hostid}', + "pktgen_private_net_cidr" : "192.168.9.0/24", + "vpg_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.27", + "pg_int" : "192.168.9.109", + "vpg_private_ip_0" : "192.168.9.110", + "vlb_private_ip_2" : "192.168.9.111", + "vip" : "192.168.9.112", + "gre_ipaddr" : "192.168.30.112", + "vpg_name_0" : "clvlbpgn${hostid}", + "vnf_id" : "vLoadBalancer_${hostid}", + "vf_module_id" : "vLoadBalancer" }, "dnsscaling_preload.template" : { - "vlb_private_net_id" : "demolb_private", + "vlb_private_net_id" : "demolb_private${hostid}", "vlb_private_ip_0" : "192.168.130.100", - "vlb_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.14", + "vlb_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.24", "vdns_private_ip_0" : "192.168.130.222", - "vdns_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.16", - 'scaling_vdns_name_0':'demovlbscaling', + "vdns_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.26", + 'scaling_vdns_name_0':'demovlbscaling${hostid}', "vlb_private_net_cidr" : "192.168.10.0/24" }, + "vims_preload.template" : { + "bono_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "sprout_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "homer_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "homestead_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "ralf_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "ellis_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "dns_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}", + "bono_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "sprout_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "homer_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "homestead_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "ralf_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "ellis_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "dns_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}", + "repo_url" : "http://repo.cw-ngv.com/stable", + "zone" : "me.cw-ngv.com", + "dn_range_start" : "2425550000", + "dn_range_length" : "10000", + "dnssec_key" : "9FPdYTWhk5+LbhrqtTPQKw==" + }, "vvg_preload.template" : { } } diff --git a/kubernetes/robot/resources/config/eteshare/config/integration_robot_properties.py b/kubernetes/robot/resources/config/eteshare/config/integration_robot_properties.py index 305ba3e8a0..0c65960ad8 100755 --- a/kubernetes/robot/resources/config/eteshare/config/integration_robot_properties.py +++ b/kubernetes/robot/resources/config/eteshare/config/integration_robot_properties.py @@ -1,50 +1,56 @@ -# aaf info - everything is from the private oam network (also called ecomp private network) -GLOBAL_AAF_SERVER = "http://10.0.12.1:8101" +# aaf info - everything is from the private oam network (also called onap private network) +GLOBAL_AAF_SERVER = "http://{{.Release.Name}}-aaf.{{include "common.namespace" .}}: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) +# aai info - everything is from the private oam network (also called onap private network) 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) +# appc info - everything is from the private oam network (also called onap private network) GLOBAL_APPC_SERVER_PROTOCOL = "http" GLOBAL_APPC_SERVER_PORT = "8282" -GLOBAL_APPC_SERVER = "http://10.0.2.1:" +GLOBAL_APPC_SERVER = "http://{{.Release.Name}}-appc.{{include "common.namespace" .}}:" GLOBAL_APPC_USERNAME = "admin" -GLOBAL_APPC_PASSWORD = "Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U" -# sdc info - everything is from the private oam network (also called ecomp private network) +GLOBAL_APPC_PASSWORD = "admin" +# sdc info - everything is from the private oam network (also called onap private network) 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" -# clamp info - everything is from the private oam network (also called ecomp private network) +# clamp info - everything is from the private oam network (also called onap private network) GLOBAL_CLAMP_SERVER_PROTOCOL = "http" GLOBAL_CLAMP_SERVER_PORT = "8080" -# dcae info - everything is from the private oam network (also called ecomp private network) +# cli info - everything is from the private oam network (also called onap private network) +GLOBAL_CLI_SERVER_PROTOCOL = "http" +GLOBAL_CLI_SERVER_PORT = "8080" +# dcae info - everything is from the private oam network (also called onap private network) GLOBAL_DCAE_SERVER_PROTOCOL = "http" -GLOBAL_DCAE_SERVER_PORT = "8080" +GLOBAL_DCAE_HEALTH_SERVER_PORT = "8000" GLOBAL_DCAE_USERNAME = "console" GLOBAL_DCAE_PASSWORD = "ZjJkYjllMjljMTI2M2Iz" -# microservice bus info - everything is from the private oam network (also called ecomp private network) +# microservice bus info - everything is from the private oam network (also called onap private network) GLOBAL_MSB_SERVER_PROTOCOL = "http" GLOBAL_MSB_SERVER_PORT = "80" -# message router info - everything is from the private oam network (also called ecomp private network) +# message router info - everything is from the private oam network (also called onap private network) GLOBAL_MR_SERVER_PROTOCOL = "http" GLOBAL_MR_SERVER_PORT = "3904" -# mso info - everything is from the private oam network (also called ecomp private network) +# mso info - everything is from the private oam network (also called onap private network) GLOBAL_MSO_SERVER_PROTOCOL = "http" GLOBAL_MSO_SERVER_PORT = "8080" GLOBAL_MSO_USERNAME = "InfraPortalClient" GLOBAL_MSO_PASSWORD = "password1$" +# music info - everything is from the private oam network (also called onap private network) +GLOBAL_MUSIC_SERVER_PROTOCOL = "http" +GLOBAL_MUSIC_SERVER_PORT = "8080" # openstack info - info to select right info in environment -# packet generate vnf info - everything is from the private oam network (also called ecomp private network) +# packet generate vnf info - everything is from the private oam network (also called onap 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) +# policy info - everything is from the private oam network (also called onap private network) GLOBAL_POLICY_SERVER_PROTOCOL = "http" GLOBAL_POLICY_SERVER_PORT = "8081" GLOBAL_POLICY_HEALTHCHECK_PORT = "6969" @@ -52,18 +58,18 @@ GLOBAL_POLICY_AUTH = "dGVzdHBkcDphbHBoYTEyMw==" GLOBAL_POLICY_CLIENTAUTH = "cHl0aG9uOnRlc3Q=" GLOBAL_POLICY_USERNAME = "healthcheck" GLOBAL_POLICY_PASSWORD = "zb!XztG34" -# portal info - everything is from the private oam network (also called ecomp private network) +# portal info - everything is from the private oam network (also called onap private network) 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) +# sdngc info - everything is from the private oam network (also called onap private network) 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) +# vid info - everything is from the private oam network (also called onap private network) GLOBAL_VID_SERVER_PROTOCOL = "http" GLOBAL_VID_SERVER_PORT = "8080" GLOBAL_VID_USERNAME = "demo" @@ -71,11 +77,9 @@ GLOBAL_VID_PASSWORD = "Kp8bJ4SXszM0WX" GLOBAL_VID_HEALTH_USERNAME = "Default" GLOBAL_VID_HEALTH_PASSWORD = "AppPassword!1" #global selenium info -GLOBAL_PROXY_WARNING_TITLE = "" -GLOBAL_PROXY_WARNING_CONTINUE_XPATH = "" -# settings for vm to attach vvg too -GLOBAL_VVGSERVER_IMAGE = "{{ .Values.ubuntuImage }}" -GLOBAL_VVGSERVER_FLAVOR = "{{ .Values.openStackFlavourMedium }}" +GLOBAL_PROXY_WARNING_TITLE="" +GLOBAL_PROXY_WARNING_CONTINUE_XPATH="" # dns info GLOBAL_DNS_TRAFFIC_DURATION = "600" +# location where heat templates are loaded from GLOBAL_HEAT_TEMPLATES_FOLDER = "/share/heat" diff --git a/kubernetes/robot/resources/config/eteshare/config/vm_properties.py b/kubernetes/robot/resources/config/eteshare/config/vm_properties.py index c62c4402b7..b7da6fadd2 100755 --- a/kubernetes/robot/resources/config/eteshare/config/vm_properties.py +++ b/kubernetes/robot/resources/config/eteshare/config/vm_properties.py @@ -1,5 +1,6 @@ -#file generated from /opt/config +# File generated from /opt/config # +GLOBAL_INJECTED_AAF_IP_ADDR = "{{.Release.Name}}-aaf.{{include "common.namespace" .}}" GLOBAL_INJECTED_AAI1_IP_ADDR = "aai.{{include "common.namespace" .}}" GLOBAL_INJECTED_AAI2_IP_ADDR = "N/A" GLOBAL_INJECTED_APPC_IP_ADDR = "{{.Release.Name}}-appc.{{include "common.namespace" .}}" @@ -7,56 +8,65 @@ GLOBAL_INJECTED_ARTIFACTS_VERSION = "{{.Values.demoArtifactsVersion}}" GLOBAL_INJECTED_CLAMP_IP_ADDR = "{{.Release.Name}}-clamp.{{include "common.namespace" .}}" GLOBAL_INJECTED_CLOUD_ENV = "openstack" GLOBAL_INJECTED_DCAE_IP_ADDR = "{{.Release.Name}}-dcae-controller.{{include "common.namespace" .}}" -GLOBAL_INJECTED_DNS_IP_ADDR = "10.0.100.1" +GLOBAL_INJECTED_DNS_IP_ADDR = "N/A" GLOBAL_INJECTED_DOCKER_VERSION = "1.2-STAGING-latest" -#GLOBAL_INJECTED_EXTERNAL_DNS = "N/A" +GLOBAL_INJECTED_EXTERNAL_DNS = "N/A" GLOBAL_INJECTED_GERRIT_BRANCH = "master" GLOBAL_INJECTED_KEYSTONE = "{{ .Values.openStackKeyStoneUrl }}" GLOBAL_INJECTED_MR_IP_ADDR = "message-router.{{include "common.namespace" .}}" GLOBAL_INJECTED_MSO_IP_ADDR = "so.{{include "common.namespace" .}}" +GLOBAL_INJECTED_MUSIC_IP_ADDR = "music.{{include "common.namespace" .}}" GLOBAL_INJECTED_NETWORK = "{{ .Values.openStackPrivateNetId }}" 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_OOF_IP_ADDR = "oof.{{include "common.namespace" .}}" GLOBAL_INJECTED_OPENO_IP_ADDR = "msb-iag.{{include "common.namespace" .}}" -GLOBAL_INJECTED_OPENSTACK_PASSWORD = "{{ .Values.openStackEncryptedPassword }}" +GLOBAL_INJECTED_OPENSTACK_PASSWORD = "{{ .Values.openStackPassword }}" GLOBAL_INJECTED_OPENSTACK_TENANT_ID = "{{ .Values.openStackTenantId }}" GLOBAL_INJECTED_OPENSTACK_USERNAME = "{{ .Values.openStackUserName }}" GLOBAL_INJECTED_POLICY_IP_ADDR = "pdp.{{include "common.namespace" .}}" GLOBAL_INJECTED_POLICY_HEALTHCHECK_IP_ADDR = "{{.Release.Name}}-drools.{{include "common.namespace" .}}" GLOBAL_INJECTED_PORTAL_IP_ADDR = "{{.Release.Name}}-portal-app.{{include "common.namespace" .}}" +GLOBAL_INJECTED_PUBLIC_NET_ID = "{{ .Values.openStackPublicNetId }}" GLOBAL_INJECTED_REGION = "{{ .Values.openStackRegion }}" GLOBAL_INJECTED_REMOTE_REPO = "http://gerrit.onap.org/r/testsuite/properties.git" -GLOBAL_INJECTED_SDC_IP_ADDR = "{{.Release.Name}}-sdc-be.{{include "common.namespace" .}}" -GLOBAL_INJECTED_SDC_FE_IP_ADDR = "{{.Release.Name}}-sdc-fe.{{include "common.namespace" .}}" +GLOBAL_INJECTED_SCRIPT_VERSION = "{{ .Values.scriptVersion }}" GLOBAL_INJECTED_SDC_BE_IP_ADDR = "{{.Release.Name}}-sdc-be.{{include "common.namespace" .}}" +GLOBAL_INJECTED_SDC_FE_IP_ADDR = "{{.Release.Name}}-sdc-fe.{{include "common.namespace" .}}" +GLOBAL_INJECTED_SDC_IP_ADDR = "N/A" GLOBAL_INJECTED_SDNC_IP_ADDR = "{{.Release.Name}}-sdnc.{{include "common.namespace" .}}" GLOBAL_INJECTED_SDNC_PORTAL_IP_ADDR = "{{.Release.Name}}-sdnc-portal.{{include "common.namespace" .}}" GLOBAL_INJECTED_SO_IP_ADDR = "so.{{include "common.namespace" .}}" +GLOBAL_INJECTED_UBUNTU_1404_IMAGE = "{{ .Values.ubuntu14Image }}" +GLOBAL_INJECTED_UBUNTU_1604_IMAGE = "{{ .Values.ubuntu16Image }}" GLOBAL_INJECTED_VID_IP_ADDR = "{{.Release.Name}}-vid.{{include "common.namespace" .}}" GLOBAL_INJECTED_VM_FLAVOR = "{{ .Values.openStackFlavourMedium }}" -GLOBAL_INJECTED_VM_IMAGE_NAME = "{{ .Values.ubuntuImage }}" -GLOBAL_INJECTED_PUBLIC_NET_ID = "{{ .Values.openStackPublicNetId }}" -GLOBAL_INJECTED_SCRIPT_VERSION = "{{ .Values.scriptVersion }}" + GLOBAL_INJECTED_PROPERTIES = { + "GLOBAL_INJECTED_AAF_IP_ADDR" : "{{.Release.Name}}-aaf.{{include "common.namespace" .}}", "GLOBAL_INJECTED_AAI1_IP_ADDR" : "aai.{{include "common.namespace" .}}", + "GLOBAL_INJECTED_AAI2_IP_ADDR" : "N/A", "GLOBAL_INJECTED_APPC_IP_ADDR" : "{{.Release.Name}}-appc.{{include "common.namespace" .}}", "GLOBAL_INJECTED_ARTIFACTS_VERSION" : "{{.Values.demoArtifactsVersion}}", "GLOBAL_INJECTED_CLAMP_IP_ADDR" : "{{.Release.Name}}-clamp.{{include "common.namespace" .}}", "GLOBAL_INJECTED_CLOUD_ENV" : "openstack", "GLOBAL_INJECTED_DCAE_IP_ADDR" : "{{.Release.Name}}-dcae-controller.{{include "common.namespace" .}}", - "GLOBAL_INJECTED_DNS_IP_ADDR" : "10.0.100.1", + "GLOBAL_INJECTED_DNS_IP_ADDR" : "N/A", "GLOBAL_INJECTED_DOCKER_VERSION" : "1.2-STAGING-latest", + "GLOBAL_INJECTED_EXTERNAL_DNS" : "N/A", "GLOBAL_INJECTED_GERRIT_BRANCH" : "master", "GLOBAL_INJECTED_KEYSTONE" : "{{ .Values.openStackKeyStoneUrl }}", "GLOBAL_INJECTED_MR_IP_ADDR" : "message-router.{{include "common.namespace" .}}", "GLOBAL_INJECTED_MSO_IP_ADDR" : "so.{{include "common.namespace" .}}", + "GLOBAL_INJECTED_MUSIC_IP_ADDR" : "music.{{include "common.namespace" .}}", "GLOBAL_INJECTED_NETWORK" : "{{ .Values.openStackPrivateNetId }}", "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_OOF_IP_ADDR" : "oof.{{include "common.namespace" .}}", "GLOBAL_INJECTED_OPENO_IP_ADDR" : "msb-iag.{{include "common.namespace" .}}", "GLOBAL_INJECTED_OPENSTACK_PASSWORD" : "{{ .Values.openStackEncryptedPassword }}", "GLOBAL_INJECTED_OPENSTACK_TENANT_ID" : "{{ .Values.openStackTenantId }}", @@ -64,16 +74,18 @@ GLOBAL_INJECTED_PROPERTIES = { "GLOBAL_INJECTED_POLICY_IP_ADDR" : "pdp.{{include "common.namespace" .}}", "GLOBAL_INJECTED_POLICY_HEALTHCHECK_IP_ADDR" : "{{.Release.Name}}-drools.{{include "common.namespace" .}}", "GLOBAL_INJECTED_PORTAL_IP_ADDR" : "{{.Release.Name}}-portalapps.{{include "common.namespace" .}}", + "GLOBAL_INJECTED_PUBLIC_NET_ID" : "{{ .Values.openStackPublicNetId }}", "GLOBAL_INJECTED_REGION" : "{{ .Values.openStackRegion }}", "GLOBAL_INJECTED_REMOTE_REPO" : "http://gerrit.onap.org/r/testsuite/properties.git", - "GLOBAL_INJECTED_SDC_FE_IP_ADDR" : "{{.Release.Name}}-sdc-fe.{{include "common.namespace" .}}", "GLOBAL_INJECTED_SDC_BE_IP_ADDR" : "{{.Release.Name}}-sdc-be.{{include "common.namespace" .}}", + "GLOBAL_INJECTED_SDC_FE_IP_ADDR" : "{{.Release.Name}}-sdc-fe.{{include "common.namespace" .}}", + "GLOBAL_INJECTED_SDC_IP_ADDR" : "N/A", + "GLOBAL_INJECTED_SCRIPT_VERSION" : "{{ .Values.scriptVersion }}", "GLOBAL_INJECTED_SDNC_IP_ADDR" : "{{.Release.Name}}-sdnc.{{include "common.namespace" .}}", "GLOBAL_INJECTED_SDNC_PORTAL_IP_ADDR" : "{{.Release.Name}}-sdnc-portal.{{include "common.namespace" .}}", "GLOBAL_INJECTED_SO_IP_ADDR" : "so.{{include "common.namespace" .}}", + "GLOBAL_INJECTED_UBUNTU_1404_IMAGE" : "{{.Values.ubuntu14Image}}", + "GLOBAL_INJECTED_UBUNTU_1604_IMAGE" : "{{.Values.ubuntu16Image}}", "GLOBAL_INJECTED_VID_IP_ADDR" : "{{.Release.Name}}-vid.{{include "common.namespace" .}}", - "GLOBAL_INJECTED_VM_FLAVOR" : "{{ .Values.openStackFlavourMedium }}", - "GLOBAL_INJECTED_VM_IMAGE_NAME" : "{{ .Values.ubuntuImage }}", - "GLOBAL_INJECTED_PUBLIC_NET_ID" : "{{ .Values.openStackPublicNetId }}", - "GLOBAL_INJECTED_SCRIPT_VERSION" : "{{ .Values.scriptVersion }}" + "GLOBAL_INJECTED_VM_FLAVOR" : "{{ .Values.openStackFlavourMedium }}" } \ No newline at end of file diff --git a/kubernetes/robot/resources/config/robot/resources/asdc_interface.robot b/kubernetes/robot/resources/config/robot/resources/asdc_interface.robot deleted file mode 100644 index 5b69a66c7c..0000000000 --- a/kubernetes/robot/resources/config/robot/resources/asdc_interface.robot +++ /dev/null @@ -1,495 +0,0 @@ -*** Settings *** -Documentation The main interface for interacting with ASDC. It handles low level stuff like managing the http request library and DCAE required fields -Library RequestsLibrary -Library UUID -Library JSONUtils -Library OperatingSystem -Library Collections -Library ExtendedSelenium2Library -Resource global_properties.robot -Resource browser_setup.robot -Resource json_templater.robot -*** Variables *** -${ASDC_DESIGNER_USER_ID} cs0008 -${ASDC_TESTER_USER_ID} jm0007 -${ASDC_GOVERNOR_USER_ID} gv0001 -${ASDC_OPS_USER_ID} op0001 -${ASDC_HEALTH_CHECK_PATH} /sdc1/rest/healthCheck -${ASDC_VENDOR_LICENSE_MODEL_PATH} /onboarding-api/v1.0/vendor-license-models -${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH} /onboarding-api/v1.0/vendor-software-products -${ASDC_VENDOR_KEY_GROUP_PATH} /license-key-groups -${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} /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 -${ASDC_CATALOG_INACTIVE_SERVICES_PATH} /sdc2/rest/v1/inactiveComponents/service -${ASDC_CATALOG_LIFECYCLE_PATH} /lifecycleState -${ASDC_CATALOG_SERVICE_RESOURCE_INSTANCE_PATH} /resourceInstance -${ASDC_CATALOG_SERVICE_DISTRIBUTION_STATE_PATH} /distribution-state -${ASDC_CATALOG_SERVICE_DISTRIBUTION_PATH} /distribution -${ASDC_DISTRIBUTION_STATE_APPROVE_PATH} /approve -${ASDC_CATALOG_SERVICE_DISTRIBUTION_ACTIVATE_PATH} /distribution/PROD/activate -${ASDC_LICENSE_MODEL_TEMPLATE} robot/assets/templates/asdc/license_model.template -${ASDC_KEY_GROUP_TEMPLATE} robot/assets/templates/asdc/key_group.template -${ASDC_ENTITLEMENT_POOL_TEMPLATE} robot/assets/templates/asdc/entitlement_pool.template -${ASDC_FEATURE_GROUP_TEMPLATE} robot/assets/templates/asdc/feature_group.template -${ASDC_LICENSE_AGREEMENT_TEMPLATE} robot/assets/templates/asdc/license_agreement.template -${ASDC_ACTION_TEMPLATE} robot/assets/templates/asdc/action.template -${ASDC_SOFTWARE_PRODUCT_TEMPLATE} robot/assets/templates/asdc/software_product.template -${ASDC_CATALOG_RESOURCE_TEMPLATE} robot/assets/templates/asdc/catalog_resource.template -${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 - [Arguments] ${model_zip_path} ${catalog_service_name}= - ${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} - \ ${loop_catalog_resource_id}= Setup ASDC Catalog Resource ${zip} - \ Append To List ${catalog_resource_ids} ${loop_catalog_resource_id} - \ ${loop_catalog_resource_resp}= Get ASDC Catalog Resource ${loop_catalog_resource_id} - \ Add ASDC Resource Instance ${catalog_service_id} ${loop_catalog_resource_id} ${loop_catalog_resource_resp['name']} - \ Set To Dictionary ${catalog_resources} ${loop_catalog_resource_id}=${loop_catalog_resource_resp} - ${catalog_service_resp}= Get ASDC Catalog Service ${catalog_service_id} - Checkin ASDC Catalog Service ${catalog_service_id} - Request Certify ASDC Catalog Service ${catalog_service_id} - Start Certify ASDC Catalog Service ${catalog_service_id} - # on certify it gets a new id - ${catalog_service_id}= Certify ASDC Catalog Service ${catalog_service_id} - Approve ASDC Catalog Service ${catalog_service_id} - Distribute ASDC Catalog Service ${catalog_service_id} - ${catalog_service_resp}= Get ASDC Catalog Service ${catalog_service_id} - ${vf_module}= Find Element In Array ${loop_catalog_resource_resp['groups']} type org.openecomp.groups.VfModule - Check Catalog Service Distributed ${catalog_service_resp['uuid']} - [Return] ${catalog_service_resp['name']} ${loop_catalog_resource_resp['name']} ${vf_module} ${catalog_resource_ids} ${catalog_service_id} ${catalog_resources} - -Setup ASDC Catalog Resource - [Documentation] Creates all the steps a vf needs for an asdc catalog resource and returns the id - [Arguments] ${model_zip_path} - ${license_model_id}= Add ASDC License Model - ${key_group_id}= Add ASDC License Group ${license_model_id} - ${pool_id}= Add ASDC Entitlement Pool ${license_model_id} - ${feature_group_id}= Add ASDC Feature Group ${license_model_id} ${key_group_id} ${pool_id} - ${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} 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} 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} - Start Certify ASDC Catalog Resource ${catalog_resource_id} - # on certify it gets a new id - [Return] ${catalog_resource_id} - ${catalog_resource_id}= Certify ASDC Catalog Resource ${catalog_resource_id} -Add ASDC License Model - [Documentation] Creates an asdc license model and returns its id - ${uuid}= Generate UUID - ${shortened_uuid}= Evaluate str("${uuid}")[:23] - ${map}= Create Dictionary vendor_name=${shortened_uuid} - ${data}= Fill JSON Template File ${ASDC_LICENSE_MODEL_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_VENDOR_LICENSE_MODEL_PATH} ${data} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()['value']} -Get ASDC License Model - [Documentation] gets an asdc license model by its 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} ${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}/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} ${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}/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} ${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}/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} ${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}/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} ${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}/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} ${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}/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 - [Documentation] gets an asdc Entitlement Pool by its id - [Arguments] ${license_model_id} ${pool_id} - ${resp}= Run ASDC Get Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}${ASDC_VENDOR_ENTITLEMENT_POOL_PATH}/${pool_id} - [Return] ${resp.json()} -Add ASDC License Group - [Documentation] Creates an asdc license group and returns its 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}/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} ${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} ${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} 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}/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 - [Documentation] gets an asdc Feature 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_FEATURE_GROUP_PATH}/${group_id} - [Return] ${resp.json()} -Add ASDC License Agreement - [Documentation] Creates an asdc License Agreement and returns its 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}/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 - [Documentation] gets an asdc License Agreement by its id - [Arguments] ${license_model_id} ${agreement_id} - ${resp}= Run ASDC Get Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}${ASDC_VENDOR_LICENSE_AGREEMENT_PATH}/${agreement_id} - [Return] ${resp.json()} -Add ASDC Software Product - [Documentation] Creates an asdc Software Product and returns its id - [Arguments] ${license_agreement_id} ${feature_group_id} ${license_model_name} ${license_model_id} - ${uuid}= Generate UUID - ${shortened_uuid}= Evaluate str("${uuid}")[:23] - ${map}= Create Dictionary software_product_name=${shortened_uuid} feature_group_id=${feature_group_id} license_agreement_id=${license_agreement_id} vendor_name=${license_model_name} vendor_id=${license_model_id} - ${data}= Fill JSON Template File ${ASDC_SOFTWARE_PRODUCT_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH} ${data} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()['vspId']} -Get ASDC Software Product - [Documentation] gets an asdc Software Product by its 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 - [Arguments] ${license_agreement_id} ${software_product_name} ${license_model_name} ${software_product_id} - ${map}= Create Dictionary software_product_id=${software_product_id} software_product_name=${software_product_name} license_agreement_id=${license_agreement_id} vendor_name=${license_model_name} - ${data}= Fill JSON Template File ${ASDC_CATALOG_RESOURCE_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_CATALOG_RESOURCES_PATH} ${data} ${ASDC_DESIGNER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 201 - [Return] ${resp.json()['uniqueId']} -Mark ASDC Catalog Resource Inactive - [Documentation] deletes an asdc Catalog Resource - [Arguments] ${catalog_resource_id} - ${resp}= Run ASDC Delete Request ${ASDC_CATALOG_RESOURCES_PATH}/${catalog_resource_id} ${ASDC_DESIGNER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 204 - [Return] ${resp} -Delete Inactive ASDC Catalog Resources - [Documentation] delete all asdc Catalog Resources that are inactive - ${resp}= Run ASDC Delete Request ${ASDC_CATALOG_INACTIVE_RESOURCES_PATH} ${ASDC_DESIGNER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Get ASDC Catalog Resource - [Documentation] gets an asdc Catalog Resource by its id - [Arguments] ${catalog_resource_id} - ${resp}= Run ASDC Get Request ${ASDC_CATALOG_RESOURCES_PATH}/${catalog_resource_id} ${ASDC_DESIGNER_USER_ID} - [Return] ${resp.json()} -Checkin ASDC Catalog Resource - [Documentation] checksin an asdc Catalog Resource by its id - [Arguments] ${catalog_resource_id} - ${map}= Create Dictionary user_remarks=Robot remarks - ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_CATALOG_RESOURCES_PATH}/${catalog_resource_id}${ASDC_CATALOG_LIFECYCLE_PATH}/checkin ${data} ${ASDC_DESIGNER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Request Certify ASDC Catalog Resource - [Documentation] requests certify on an asdc Catalog Resource by its id - [Arguments] ${catalog_resource_id} - ${map}= Create Dictionary user_remarks=Robot remarks - ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_CATALOG_RESOURCES_PATH}/${catalog_resource_id}${ASDC_CATALOG_LIFECYCLE_PATH}/certificationRequest ${data} ${ASDC_DESIGNER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Start Certify ASDC Catalog Resource - [Documentation] start certify an asdc Catalog Resource by its id - [Arguments] ${catalog_resource_id} - ${resp}= Run ASDC Post Request ${ASDC_CATALOG_RESOURCES_PATH}/${catalog_resource_id}${ASDC_CATALOG_LIFECYCLE_PATH}/startCertification ${None} ${ASDC_TESTER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Certify ASDC Catalog Resource - [Documentation] start certify an asdc Catalog Resource by its id and returns the new id - [Arguments] ${catalog_resource_id} - ${map}= Create Dictionary user_remarks=Robot remarks - ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_CATALOG_RESOURCES_PATH}/${catalog_resource_id}${ASDC_CATALOG_LIFECYCLE_PATH}/certify ${data} ${ASDC_TESTER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()['uniqueId']} - -Upload ASDC Heat Package - [Documentation] Creates an asdc Software Product and returns its id - [Arguments] ${software_product_id} ${file_path} ${version_id}=0.1 - ${files}= Create Dictionary - Create Multi Part ${files} upload ${file_path} contentType=application/zip - ${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 - [Arguments] ${catalog_service_name} - ${uuid}= Generate UUID - ${shortened_uuid}= Evaluate str("${uuid}")[:23] - ${catalog_service_name}= Set Variable If '${catalog_service_name}' =='' ${shortened_uuid} ${catalog_service_name} - ${map}= Create Dictionary service_name=${catalog_service_name} - ${data}= Fill JSON Template File ${ASDC_CATALOG_SERVICE_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH} ${data} ${ASDC_DESIGNER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 201 - [Return] ${resp.json()['uniqueId']} -Mark ASDC Catalog Service Inactive - [Documentation] Deletes an asdc Catalog Service - [Arguments] ${catalog_service_id} - ${resp}= Run ASDC Delete Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id} ${ASDC_DESIGNER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 204 - [Return] ${resp} -Delete Inactive ASDC Catalog Services - [Documentation] delete all asdc Catalog Serivces that are inactive - ${resp}= Run ASDC Delete Request ${ASDC_CATALOG_INACTIVE_SERVICES_PATH} ${ASDC_DESIGNER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Get ASDC Catalog Service - [Documentation] gets an asdc Catalog Service by its id - [Arguments] ${catalog_service_id} - ${resp}= Run ASDC Get Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id} ${ASDC_DESIGNER_USER_ID} - [Return] ${resp.json()} -Checkin ASDC Catalog Service - [Documentation] checksin an asdc Catalog Service by its id - [Arguments] ${catalog_service_id} - ${map}= Create Dictionary user_remarks=Robot remarks - ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_LIFECYCLE_PATH}/checkin ${data} ${ASDC_DESIGNER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Request Certify ASDC Catalog Service - [Documentation] requests certify on an asdc Catalog Service by its id - [Arguments] ${catalog_service_id} - ${map}= Create Dictionary user_remarks=Robot remarks - ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_LIFECYCLE_PATH}/certificationRequest ${data} ${ASDC_DESIGNER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Start Certify ASDC Catalog Service - [Documentation] start certify an asdc Catalog Service by its id - [Arguments] ${catalog_service_id} - ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_LIFECYCLE_PATH}/startCertification ${None} ${ASDC_TESTER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Certify ASDC Catalog Service - [Documentation] start certify an asdc Catalog Service by its id and returns the new id - [Arguments] ${catalog_service_id} - ${map}= Create Dictionary user_remarks=Robot remarks - ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_LIFECYCLE_PATH}/certify ${data} ${ASDC_TESTER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()['uniqueId']} -Approve ASDC Catalog Service - [Documentation] approve an asdc Catalog Service by its id - [Arguments] ${catalog_service_id} - ${map}= Create Dictionary user_remarks=Robot remarks - ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_SERVICE_DISTRIBUTION_STATE_PATH}${ASDC_DISTRIBUTION_STATE_APPROVE_PATH} ${data} ${ASDC_GOVERNOR_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Distribute ASDC Catalog Service - [Documentation] distribute an asdc Catalog Service by its id - [Arguments] ${catalog_service_id} - ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_SERVICE_DISTRIBUTION_ACTIVATE_PATH} ${None} ${ASDC_OPS_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Add ASDC Resource Instance - [Documentation] Creates an asdc Resource Instance and returns its id - [Arguments] ${catalog_service_id} ${catalog_resource_id} ${catalog_resource_name} - ${milli_timestamp}= Generate MilliTimestamp UUID - ${map}= Create Dictionary catalog_resource_id=${catalog_resource_id} catalog_resource_name=${catalog_resource_name} milli_timestamp=${milli_timestamp} - ${data}= Fill JSON Template File ${ASDC_RESOURCE_INSTANCE_TEMPLATE} ${map} - ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_SERVICE_RESOURCE_INSTANCE_PATH} ${data} ${ASDC_DESIGNER_USER_ID} - Should Be Equal As Strings ${resp.status_code} 201 - [Return] ${resp.json()['uniqueId']} -Get Catalog Service Distribution - [Documentation] gets an asdc catalog Service distrbution - [Arguments] ${catalog_service_uuid} - ${resp}= Run ASDC Get Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_uuid}${ASDC_CATALOG_SERVICE_DISTRIBUTION_PATH} ${ASDC_OPS_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Check Catalog Service Distributed - [Documentation] gets an asdc catalog Service distrbution - [Arguments] ${catalog_service_uuid} - ${dist_resp}= Get Catalog Service Distribution ${catalog_service_uuid} - Should Be Equal As Strings ${dist_resp['distributionStatusOfServiceList'][0]['deployementStatus']} Distributed - Sleep 3 minutes - ${det_resp}= Get Catalog Service Distribution Details ${dist_resp['distributionStatusOfServiceList'][0]['distributionID']} - @{ITEMS}= Copy List ${det_resp['distributionStatusList']} - :FOR ${ELEMENT} IN @{ITEMS} - \ Log ${ELEMENT['status']} - \ Should Match Regexp ${ELEMENT['status']} ^(DEPLOY_OK|NOTIFIED|DOWNLOAD_OK|NOT_NOTIFIED)$ -Get Catalog Service Distribution Details - [Documentation] gets an asdc catalog Service distrbution details - [Arguments] ${catalog_service_distribution_id} - ${resp}= Run ASDC Get Request ${ASDC_CATALOG_SERVICES_PATH}${ASDC_CATALOG_SERVICE_DISTRIBUTION_PATH}/${catalog_service_distribution_id} ${ASDC_OPS_USER_ID} - Should Be Equal As Strings ${resp.status_code} 200 - [Return] ${resp.json()} -Run ASDC Health Check - [Documentation] Runs a ASDC health check - ${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} - Should Be Equal As Strings ${resp.status_code} 200 - @{ITEMS}= Copy List ${resp.json()['componentsInfo']} - :FOR ${ELEMENT} IN @{ITEMS} - \ Log ${ELEMENT['healthCheckStatus']} - \ Should Be Equal As Strings ${ELEMENT['healthCheckStatus']} UP -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 ${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} - Log Received response from asdc ${resp.text} - [Return] ${resp} -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 ${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} - Log Received response from asdc ${resp.text} - [Return] ${resp} - -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 ${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} - Log Received response from asdc ${resp.text} - [Return] ${resp} - -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 ${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} - Log Received response from asdc ${resp.text} - [Return] ${resp} -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 ${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} - Log Received response from asdc ${resp.text} - [Return] ${resp} -Open ASDC GUI - [Documentation] Logs in to ASDC GUI - [Arguments] ${PATH} - ## Setup Browever now being managed by the test case - ##Setup Browser - Go To ${ASDC_FE_ENDPOINT}${PATH} - Maximize Browser Window - - Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT} - 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 ${ASDC_FE_ENDPOINT}${PATH} - - -Create Multi Part - [Arguments] ${addTo} ${partName} ${filePath} ${contentType}=${None} - ${fileData}= Get Binary File ${filePath} - ${fileDir} ${fileName}= Split Path ${filePath} - ${partData}= Create List ${fileName} ${fileData} ${contentType} - Set To Dictionary ${addTo} ${partName}=${partData} diff --git a/kubernetes/robot/resources/config/robot/resources/policy_interface.robot b/kubernetes/robot/resources/config/robot/resources/policy_interface.robot index 9193fe438a..9656b7bc90 100644 --- a/kubernetes/robot/resources/config/robot/resources/policy_interface.robot +++ b/kubernetes/robot/resources/config/robot/resources/policy_interface.robot @@ -28,6 +28,7 @@ Run Policy Health Check :FOR ${ELEMENT} IN @{ITEMS} \ Should Be Equal As Strings ${ELEMENT['code']} 200 \ Should Be True ${ELEMENT['healthy']} + Run Policy Put Request [Documentation] Runs Policy Put request [Arguments] ${data_path} ${data} @@ -37,6 +38,7 @@ Run Policy Put Request ${resp}= Put Request policy ${data_path} data=${data} headers=${headers} Log Received response from policy ${resp.text} [Return] ${resp} + Run Policy Delete Request [Documentation] Runs Policy Delete request [Arguments] ${data_path} ${data} @@ -46,12 +48,13 @@ Run Policy Delete Request ${resp}= Delete Request policy ${data_path} data=${data} headers=${headers} Log Received response from policy ${resp.text} [Return] ${resp} + Run Policy Get Configs Request [Documentation] Runs Policy Get Configs request [Arguments] ${data_path} ${data} 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} + ${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} + [Return] ${resp} \ No newline at end of file diff --git a/kubernetes/robot/resources/config/robot/resources/sdngc_interface.robot b/kubernetes/robot/resources/config/robot/resources/sdngc_interface.robot index 5b79f9a305..57198dbe99 100644 --- a/kubernetes/robot/resources/config/robot/resources/sdngc_interface.robot +++ b/kubernetes/robot/resources/config/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 @@ -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} @@ -83,7 +83,7 @@ Run SDNGC Delete Request Preload Vnf [Arguments] ${service_type_uuid} ${generic_vnf_name} ${generic_vnf_type} ${vf_module_name} ${vf_modules} ${service} ${uuid} - ${base_vf_module_type}= Catenate '' + ${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} @@ -92,36 +92,36 @@ 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} - [Return] None - + :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}/preload.template ${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} + 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} + ${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 @@ -130,29 +130,47 @@ Get Template Parameters ${rest} ${suite}= Split String From Right ${SUITE NAME} . 1 ${uuid}= Catenate ${uuid} ${hostid}= Get Substring ${uuid} -4 - ${ecompnet}= Evaluate ${GLOBAL_BUILD_NUMBER}%255 + ${ecompnet}= Evaluate (${GLOBAL_BUILD_NUMBER}%128)+128 + + # Initialize the value map with the properties generated from the Robot VM /opt/config folder - ${valuemap}= Create Dictionary + ${valuemap}= Copy Dictionary ${GLOBAL_INJECTED_PROPERTIES} + + # These should be deprecated by the above.... Set To Dictionary ${valuemap} artifacts_version=${GLOBAL_INJECTED_ARTIFACTS_VERSION} - Set To Dictionary ${valuemap} network=${GLOBAL_INJECTED_NETWORK} + Set To Dictionary ${valuemap} network=${GLOBAL_INJECTED_NETWORK} Set To Dictionary ${valuemap} public_net_id=${GLOBAL_INJECTED_PUBLIC_NET_ID} Set To Dictionary ${valuemap} cloud_env=${GLOBAL_INJECTED_CLOUD_ENV} Set To Dictionary ${valuemap} install_script_version=${GLOBAL_INJECTED_SCRIPT_VERSION} Set To Dictionary ${valuemap} vm_image_name=${GLOBAL_INJECTED_VM_IMAGE_NAME} Set To Dictionary ${valuemap} vm_flavor_name=${GLOBAL_INJECTED_VM_FLAVOR} + + # update the value map with unique values. Set To Dictionary ${valuemap} uuid=${uuid} hostid=${hostid} ecompnet=${ecompnet} - ${parameters}= Create Dictionary - ${defaults}= Get From Dictionary ${GLOBAL_PRELOAD_PARAMETERS} defaults - Resolve Values Into Dictionary ${valuemap} ${defaults} ${parameters} + + # + # Mash together the defaults dict with the test case dict to create the set of + # preload parameters + # ${suite_templates}= Get From Dictionary ${GLOBAL_PRELOAD_PARAMETERS} ${suite} ${template}= Get From Dictionary ${suite_templates} ${template} - ${vnf_parameters}= Resolve VNF Parameters Into Array ${valuemap} ${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} + \ ${value}= Get From Dictionary ${defaults} ${key} + \ Set To Dictionary ${template} ${key} ${value} + + # + # Get the vnf_parameters to preload + # + ${vnf_parameters}= Resolve VNF Parameters Into Array ${valuemap} ${template} ${vnf_parameters_json}= Evaluate json.dumps(${vnf_parameters}) json - Set To Dictionary ${parameters} vnf_parameters=${vnf_parameters_json} + ${parameters}= Create Dictionary vnf_parameters=${vnf_parameters_json} [Return] ${parameters} - -Resolve Values Into Dictionary + +Resolve Values Into Dictionary [Arguments] ${valuemap} ${from} ${to} ${keys}= Get Dictionary Keys ${from} :for ${key} in @{keys} @@ -161,7 +179,7 @@ Resolve Values Into Dictionary \ Set To Dictionary ${to} ${key} ${value} Resolve VNF Parameters Into Array - [Arguments] ${valuemap} ${from} ${to} + [Arguments] ${valuemap} ${from} ${vnf_parameters}= Create List ${keys}= Get Dictionary Keys ${from} :for ${key} in @{keys} @@ -170,7 +188,7 @@ Resolve VNF Parameters Into Array \ ${parameter}= Create Dictionary vnf-parameter-name=${key} vnf-parameter-value=${value} \ Append To List ${vnf_parameters} ${parameter} [Return] ${vnf_parameters} - + Preload Vnf Profile [Arguments] ${vnf_name} Login To SDNGC Admin GUI @@ -180,25 +198,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 @@ -207,7 +225,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} @@ -219,4 +237,4 @@ Login To SDNGC Admin GUI Input Password xpath=//input[@id='password'] ${shortened_uuid} Click Button xpath=//button[@type='submit'] Title Should Be SDN-C AdminPortal - Log Logged in to ${SDNGC_ADMIN_LOGIN_URL} + Log Logged in to ${SDNGC_ADMIN_LOGIN_URL} \ No newline at end of file diff --git a/kubernetes/robot/templates/deployment.yaml b/kubernetes/robot/templates/deployment.yaml index 3403810d20..6379aa1908 100644 --- a/kubernetes/robot/templates/deployment.yaml +++ b/kubernetes/robot/templates/deployment.yaml @@ -23,52 +23,64 @@ metadata: release: {{ .Release.Name }} heritage: {{ .Release.Service }} spec: - replicas: {{ .Values.robotReplicas }} + replicas: {{ .Values.replicaCount }} template: metadata: - labels: + labels: app: {{ include "common.name" . }} release: {{ .Release.Name }} spec: + initContainers: + - name: {{ include "common.name" . }}-inject-demo-project + command: + - /bin/bash + - -c + - > + git clone -b {{ .Values.config.gerritBranch }} --single-branch {{ .Values.config.gerritProject }} /tmp/gerrit; + echo "Clone complete. Copying from /tmp/gerrit/heat to /share"; + cp -rf /tmp/gerrit/heat /share; + echo "Done."; + image: "{{ .Values.global.ubuntuInitRepository }}/{{ .Values.ubuntuInitImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + volumeMounts: + - name: demodir + mountPath: "/share" containers: - - name: {{ .Chart.Name }} - image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}" - imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} - ports: - - containerPort: {{ .Values.service.internalPort }} - # disable liveness probe when breakpoints set in debugger - # so K8s doesn't restart unresponsive container - {{- if eq .Values.liveness.enabled true }} - livenessProbe: - tcpSocket: - port: {{ .Values.service.internalPort }} - initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} - periodSeconds: {{ .Values.liveness.periodSeconds }} - {{ end -}} - readinessProbe: - tcpSocket: - port: {{ .Values.service.internalPort }} - initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} - periodSeconds: {{ .Values.readiness.periodSeconds }} - volumeMounts: - - name: localtime - mountPath: /etc/localtime - readOnly: true - - name: robot-eteshare - mountPath: /share/config - - name: robot-resources - mountPath: /var/opt/OpenECOMP_ETE/robot/resources/asdc_interface.robot - subPath: asdc_interface.robot - - name: robot-resources - mountPath: /var/opt/OpenECOMP_ETE/robot/resources/policy_interface.robot - subPath: policy_interface.robot - - name: robot-resources - mountPath: /var/opt/OpenECOMP_ETE/robot/resources/sdngc_interface.robot - subPath: sdngc_interface.robot - - name: robot-lighttpd-authorization - mountPath: /etc/lighttpd/authorization - subPath: authorization - resources: + - name: {{ include "common.name" . }} + image: "{{ include "common.repository" . }}/{{ .Values.image }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + {{ if .Values.liveness.enabled }} + livenessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + {{ end }} + readinessProbe: + tcpSocket: + port: {{ .Values.service.internalPort }} + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + volumeMounts: + - name: localtime + mountPath: /etc/localtime + readOnly: true + - name: robot-eteshare + mountPath: /share/config + - name: robot-resources + mountPath: /var/opt/OpenECOMP_ETE/robot/resources/policy_interface.robot + subPath: policy_interface.robot + - name: robot-resources + mountPath: /var/opt/OpenECOMP_ETE/robot/resources/sdngc_interface.robot + subPath: sdngc_interface.robot + - name: robot-lighttpd-authorization + mountPath: /etc/lighttpd/authorization + subPath: authorization + - name: demodir + mountPath: /share + resources: {{ toYaml .Values.resources | indent 12 }} {{- if .Values.nodeSelector }} nodeSelector: @@ -79,18 +91,20 @@ spec: {{ toYaml .Values.affinity | indent 10 }} {{- end }} volumes: - - name: localtime - hostPath: - path: /etc/localtime - - name: robot-eteshare - configMap: - name: {{ include "common.fullname" . }}-eteshare-configmap - defaultMode: 0755 - - name: robot-resources - configMap: - name: {{ include "common.fullname" . }}-resources-configmap - - name: robot-lighttpd-authorization - configMap: - name: {{ include "common.fullname" . }}-lighttpd-authorization-configmap + - name: localtime + hostPath: + path: /etc/localtime + - name: robot-eteshare + configMap: + name: {{ include "common.fullname" . }}-eteshare-configmap + defaultMode: 0755 + - name: robot-resources + configMap: + name: {{ include "common.fullname" . }}-resources-configmap + - name: robot-lighttpd-authorization + configMap: + name: {{ include "common.fullname" . }}-lighttpd-authorization-configmap + - name: demodir + emptyDir: {} imagePullSecrets: - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/robot/templates/service.yaml b/kubernetes/robot/templates/service.yaml index f9f2805f00..3fc21b4550 100644 --- a/kubernetes/robot/templates/service.yaml +++ b/kubernetes/robot/templates/service.yaml @@ -15,7 +15,7 @@ apiVersion: v1 kind: Service metadata: - name: {{ include "common.fullname" . }} + name: {{ include "common.servicename" . }} namespace: {{ include "common.namespace" . }} labels: app: {{ include "common.name" . }} @@ -26,14 +26,14 @@ spec: type: {{ .Values.service.type }} ports: {{if eq .Values.service.type "NodePort" -}} - - port: {{ .Values.service.internalPort }} - nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.externalPort }} - name: {{ .Values.service.name }} + - port: {{ .Values.service.externalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + name: {{ .Values.service.portName | default "http" }} {{- else -}} - port: {{ .Values.service.externalPort }} targetPort: {{ .Values.service.internalPort }} - name: {{ .Values.service.name }} + name: {{ .Values.service.portName | default "http" }} {{- end}} selector: app: {{ include "common.name" . }} - release: {{ .Release.Name }} + release: {{ .Release.Name }} \ No newline at end of file diff --git a/kubernetes/robot/values.yaml b/kubernetes/robot/values.yaml index 06f168c571..a842673930 100644 --- a/kubernetes/robot/values.yaml +++ b/kubernetes/robot/values.yaml @@ -18,38 +18,69 @@ global: # global defaults nodePortPrefix: 302 repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + ubuntuInitRepository: registry.hub.docker.com # application image repository: nexus3.onap.org:10001 image: onap/testsuite:1.2-STAGING-latest pullPolicy: Always +ubuntuInitImage: oomk8s/ubuntu-init:2.0.0 + # flag to enable debugging - application support required debugEnabled: false ################################################################# # Application configuration defaults. ################################################################# - -# openstack configuration - +config: + # Username of the lighthttpd server. Used for HTML auth for webpage access + lightHttpdUsername: robot + # Password of the lighthttpd server. Used for HTML auth for webpage access + lightHttpdPassword: robot + # gerrit branch where the latest heat code is checked in + gerritBranch: master + # gerrit project where the latest heat code is checked in + gerritProject: http://gerrit.onap.org/r/demo.git + + +# Demo configuration +# Nexus demo artifact version. Maps to GLOBAL_INJECTED_ARTIFACTS_VERSION demoArtifactsVersion: "1.2.0-SNAPSHOT" -openStackPrivateNetCidr: "192.168.30.0" +# Openstack medium sized flavour name. Maps GLOBAL_INJECTED_VM_FLAVOR openStackFlavourMedium: "m1.medium" +# Openstack keystone URL. Maps to GLOBAL_INJECTED_KEYSTONE openStackKeyStoneUrl: "http://1.2.3.4:5000" +# UUID of the Openstack network that can assign floating ips. Maps to GLOBAL_INJECTED_PUBLIC_NET_ID openStackPublicNetId: "e8f51958045716781ffc" -openStackPrivateNetId: "e8f51956-00dd-4425-af36-045716781ffc" -openStackOamNetworkCidrPrefix: "192.168.120" -openStackEncryptedPassword: "c124921a3a0efbe579782cde8227681e" +# password for Openstack tenant where VNFs will be spawned. Maps to GLOBAL_INJECTED_OPENSTACK_PASSWORD +openStackPassword: "tenantPassword" +# Openstack region. Maps to GLOBAL_INJECTED_REGION openStackRegion: "RegionOne" -openStackPrivateSubnetId: "e8f51956-00dd-4425-af36-045716781ffc" +# Openstack tenant UUID where VNFs will be spawned. Maps to GLOBAL_INJECTED_OPENSTACK_TENANT_ID openStackTenantId: "47899782ed714295b1151681fdfd51f5" -openStackUserName: "vnf_user" -ubuntuImage: "Ubuntu_14.04.5_LTS" -scriptVersion: "1.1.1" +# username for Openstack tenant where VNFs will be spawned. Maps to GLOBAL_INJECTED_OPENSTACK_USERNAME +openStackUserName: "tenantUsername" +# Openstack glance image name for Ubuntu 14. Maps to GLOBAL_INJECTED_UBUNTU_1404_IMAGE +ubuntu14Image: "Ubuntu_14_trusty" +# Openstack glance image name for Ubuntu 16. Maps to GLOBAL_INJECTED_UBUNTU_1604_IMAGE +ubuntu16Image: "Ubuntu_16_xenial" +# GLOBAL_INJECTED_SCRIPT_VERSION. Maps to GLOBAL_INJECTED_SCRIPT_VERSION +scriptVersion: "1.2.0-SNAPSHOT" +# Openstack network to which VNFs will bind their primary (first) interface. Maps to GLOBAL_INJECTED_NETWORK +openStackPrivateNetId: "e8f51956-00dd-4425-af36-045716781ffc" + +# SDNC Preload configuration +# Openstack subnet UUID for the network defined by openStackPrivateNetId. Maps to onap_private_subnet_id +openStackPrivateSubnetId: "e8f51956-00dd-4425-af36-045716781ffc" +# CIDR notation for the Openstack private network where VNFs will be spawned. Maps to onap_private_net_cidr +openStackPrivateNetCidr: "10.0.0.0/8" +# The first 2 octets of the private Openstack subnet where VNFs will be spawned. +# Needed because sdnc preload templates hardcodes things like this 10.0.${ecompnet}.X +openStackOamNetworkCidrPrefix: "10.0" # default number of instances -robotReplicas: 1 +replicaCount: 1 nodeSelector: {} @@ -69,10 +100,12 @@ readiness: service: - type: NodePort name: robot - externalPort: "09" + type: NodePort + portName: httpd + externalPort: 88 internalPort: 88 + nodePort: "09" ingress: -- cgit 1.2.3-korg