summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJerry Flood <jf9860@att.com>2017-10-11 11:09:19 -0400
committerJerry Flood <jf9860@att.com>2017-10-11 11:16:23 -0400
commit3fc36a390f863a47a03a994acb0d76ee220292b0 (patch)
treefa77ccab365c04f5cc98f264d0353261e7ec120f
parent26c6fc25f20d90e87f08f443058fc2356fe8bea7 (diff)
Update HEAT and support in demo.sh
Issue: TEST-65 Change-Id: If9cea0cecfd5ac8fa40499995fba72bfa66f61a2 Signed-off-by: Jerry Flood <jf9860@att.com>
-rw-r--r--robot/assets/asdc/base_vcpe_infra/base_vcpe_infra.env14
-rw-r--r--robot/assets/asdc/base_vcpe_infra/base_vcpe_infra.yaml50
-rw-r--r--robot/assets/asdc/base_vcpe_vbng/MANIFEST.json4
-rw-r--r--robot/assets/asdc/base_vcpe_vbng/base_vcpe_vbng.env (renamed from robot/assets/asdc/base_vcpe_vbng/base_vcpe_vbng_rackspace.env)18
-rw-r--r--robot/assets/asdc/base_vcpe_vbng/base_vcpe_vbng.yaml (renamed from robot/assets/asdc/base_vcpe_vbng/base_vcpe_vbng_rackspace.yaml)51
-rw-r--r--robot/assets/asdc/base_vcpe_vbrgemu/MANIFEST.json4
-rw-r--r--robot/assets/asdc/base_vcpe_vbrgemu/base_vcpe_vbrgemu.env (renamed from robot/assets/asdc/base_vcpe_vbrgemu/base_vcpe_vbrgemu_rackspace.env)19
-rw-r--r--robot/assets/asdc/base_vcpe_vbrgemu/base_vcpe_vbrgemu.yaml (renamed from robot/assets/asdc/base_vcpe_vbrgemu/base_vcpe_vbrgemu_rackspace.yaml)44
-rw-r--r--robot/assets/asdc/base_vcpe_vgmux/MANIFEST.json4
-rw-r--r--robot/assets/asdc/base_vcpe_vgmux/base_vcpe_vgmux.env (renamed from robot/assets/asdc/base_vcpe_vgmux/base_vcpe_vgmux_rackspace.env)22
-rw-r--r--robot/assets/asdc/base_vcpe_vgmux/base_vcpe_vgmux.yaml (renamed from robot/assets/asdc/base_vcpe_vgmux/base_vcpe_vgmux_rackspace.yaml)80
-rw-r--r--robot/assets/asdc/base_vcpe_vgw/MANIFEST.json4
-rw-r--r--robot/assets/asdc/base_vcpe_vgw/base_vcpe_vgw.env (renamed from robot/assets/asdc/base_vcpe_vgw/base_vcpe_vgw_rackspace.env)20
-rw-r--r--robot/assets/asdc/base_vcpe_vgw/base_vcpe_vgw.yaml (renamed from robot/assets/asdc/base_vcpe_vgw/base_vcpe_vgw_rackspace.yaml)40
-rw-r--r--robot/assets/asdc/base_vfw/base_vfw.yaml358
-rw-r--r--robot/assets/asdc/base_vlb/base_vlb.yaml413
-rw-r--r--robot/assets/asdc/base_vlb/dnsscaling.yaml190
-rw-r--r--robot/assets/service_mappings.py26
-rw-r--r--robot/assets/templates/aai/add_demo_customer.template38
-rw-r--r--robot/resources/demo_preload.robot6
-rw-r--r--robot/testsuites/update_onap_page.robot32
21 files changed, 771 insertions, 666 deletions
diff --git a/robot/assets/asdc/base_vcpe_infra/base_vcpe_infra.env b/robot/assets/asdc/base_vcpe_infra/base_vcpe_infra.env
index 689d1cf0..1d820705 100644
--- a/robot/assets/asdc/base_vcpe_infra/base_vcpe_infra.env
+++ b/robot/assets/asdc/base_vcpe_infra/base_vcpe_infra.env
@@ -1,17 +1,19 @@
parameters:
- vcpe_image_name: Ubuntu 16.04 LTS (Xenial Xerus) (PVHVM)
- vcpe_flavor_name: 4 GB General Purpose v1
- public_net_id: 00000000-0000-0000-0000-000000000000
+ vcpe_image_name: PUT THE IMAGE NAME HERE (Ubuntu 1604 SUGGESTED)
+ vcpe_flavor_name: PUT THE FLAVOR NAME HERE (MEDIUM FLAVOR SUGGESTED)
+ public_net_id: PUT THE PUBLIC NETWORK ID HERE
cpe_signal_net_id: zdfw1cpe01_private
+ cpe_signal_subnet_id: zdfw1cpe01_sub_private
cpe_public_net_id: zdfw1cpe01_public
+ cpe_public_subnet_id: zdfw1cpe01_sub_public
onap_private_net_id: PUT THE ONAP PRIVATE NETWORK NAME HERE
- onap_private_subnet_id: PUT THE ONAP PRIVATE NETWORK NAME HERE
+ onap_private_subnet_id: PUT THE ONAP PRIVATE SUBNETWORK NAME HERE
onap_private_net_cidr: 10.0.0.0/16
cpe_signal_net_cidr: 10.4.0.0/24
cpe_public_net_cidr: 10.2.0.0/24
vdhcp_private_ip_0: 10.4.0.1
vdhcp_private_ip_1: 10.0.101.1
- vaaa_private_ip_0: 10.4.0.2
+ vaaa_private_ip_0: 10.4.0.4
vaaa_private_ip_1: 10.0.101.2
vdns_private_ip_0: 10.2.0.1
vdns_private_ip_1: 10.0.101.3
@@ -32,4 +34,4 @@ parameters:
install_script_version: 1.1.0-SNAPSHOT
key_name: vaaa_key
pub_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQXYJYYi3/OUZXUiCYWdtc7K0m5C0dJKVxPG0eI8EWZrEHYdfYe6WoTSDJCww+1qlBSpA5ac/Ba4Wn9vh+lR1vtUKkyIC/nrYb90ReUd385Glkgzrfh5HdR5y5S2cL/Frh86lAn9r6b3iWTJD8wBwXFyoe1S2nMTOIuG4RPNvfmyCTYVh8XTCCE8HPvh3xv2r4egawG1P4Q4UDwk+hDBXThY2KS8M5/8EMyxHV0ImpLbpYCTBA6KYDIRtqmgS6iKyy8v2D1aSY5mc9J0T5t9S2Gv+VZQNWQDDKNFnxqYaAo1uEoq/i1q63XC5AD3ckXb2VT6dp23BQMdDfbHyUWfJN
- cloud_env: rackspace
+ cloud_env: PUT THE CLOUD PROVIDED HERE (openstack or rackspace)
diff --git a/robot/assets/asdc/base_vcpe_infra/base_vcpe_infra.yaml b/robot/assets/asdc/base_vcpe_infra/base_vcpe_infra.yaml
index c0a18756..c6349581 100644
--- a/robot/assets/asdc/base_vcpe_infra/base_vcpe_infra.yaml
+++ b/robot/assets/asdc/base_vcpe_infra/base_vcpe_infra.yaml
@@ -24,7 +24,7 @@
heat_template_version: 2013-05-23
-description: Heat template to deploy vCPE Infrastructue emlements (vAAA, vDHCP, vDNS_DHCP, webServer_sink) for ONAP
+description: Heat template to deploy vCPE Infrastructue emlements (vAAA, vDHCP, vDNS_DHCP, webServer)
##############
# #
@@ -61,6 +61,10 @@ parameters:
type: string
label: vAAA private network name or ID
description: Private network that connects vAAA with vDNSs
+ cpe_signal_subnet_id:
+ type: string
+ label: CPE Signal subnet
+ description: CPE Signal subnet
cpe_signal_net_cidr:
type: string
label: vAAA private network CIDR
@@ -69,6 +73,10 @@ parameters:
type: string
label: vCPE Public network (emulates internet) name or ID
description: Private network that connects vGW to emulated internet
+ cpe_public_subnet_id:
+ type: string
+ label: CPE Public subnet
+ description: CPE Public subnet
cpe_public_net_cidr:
type: string
label: vCPE public network CIDR
@@ -195,37 +203,13 @@ resources:
public_key: { get_param: pub_key }
save_private_key: false
- cpe_signal_network:
- type: OS::Neutron::Net
- properties:
- name: { get_param: cpe_signal_net_id }
-
- cpe_signal_subnet:
- type: OS::Neutron::Subnet
- properties:
- name: { get_param: cpe_signal_net_id }
- network_id: { get_resource: cpe_signal_network }
- cidr: { get_param: cpe_signal_net_cidr }
-
- cpe_public_network:
- type: OS::Neutron::Net
- properties:
- name: { get_param: cpe_public_net_id }
-
- cpe_public_subnet:
- type: OS::Neutron::Subnet
- properties:
- name: { get_param: cpe_public_net_id }
- network_id: { get_resource: cpe_public_network }
- cidr: { get_param: cpe_public_net_cidr }
-
# Virtual AAA server Instantiation
vaaa_private_0_port:
type: OS::Neutron::Port
properties:
- network: { get_resource: cpe_signal_network }
- fixed_ips: [{"subnet": { get_resource: cpe_signal_subnet }, "ip_address": { get_param: vaaa_private_ip_0 }}]
+ network: { get_param: cpe_signal_net_id }
+ fixed_ips: [{"subnet": { get_param: cpe_signal_subnet_id }, "ip_address": { get_param: vaaa_private_ip_0 }}]
vaaa_private_1_port:
type: OS::Neutron::Port
@@ -288,8 +272,8 @@ resources:
vdns_private_0_port:
type: OS::Neutron::Port
properties:
- network: { get_resource: cpe_public_network }
- fixed_ips: [{"subnet": { get_resource: cpe_public_subnet }, "ip_address": { get_param: vdns_private_ip_0 }}]
+ network: { get_param: cpe_public_net_id }
+ fixed_ips: [{"subnet": { get_param: cpe_public_subnet_id }, "ip_address": { get_param: vdns_private_ip_0 }}]
vdns_private_1_port:
type: OS::Neutron::Port
@@ -348,8 +332,8 @@ resources:
vdhcp_private_0_port:
type: OS::Neutron::Port
properties:
- network: { get_resource: cpe_signal_network }
- fixed_ips: [{"subnet": { get_resource: cpe_signal_subnet }, "ip_address": { get_param: vdhcp_private_ip_0 }}]
+ network: { get_param: cpe_signal_net_id }
+ fixed_ips: [{"subnet": { get_param: cpe_signal_subnet_id }, "ip_address": { get_param: vdhcp_private_ip_0 }}]
vdhcp_private_1_port:
type: OS::Neutron::Port
@@ -409,8 +393,8 @@ resources:
vweb_private_0_port:
type: OS::Neutron::Port
properties:
- network: { get_resource: cpe_public_network }
- fixed_ips: [{"subnet": { get_resource: cpe_public_subnet }, "ip_address": { get_param: vweb_private_ip_0 }}]
+ network: { get_param: cpe_public_net_id }
+ fixed_ips: [{"subnet": { get_param: cpe_public_subnet_id }, "ip_address": { get_param: vweb_private_ip_0 }}]
vweb_private_1_port:
type: OS::Neutron::Port
diff --git a/robot/assets/asdc/base_vcpe_vbng/MANIFEST.json b/robot/assets/asdc/base_vcpe_vbng/MANIFEST.json
index f4fbb305..0b34111e 100644
--- a/robot/assets/asdc/base_vcpe_vbng/MANIFEST.json
+++ b/robot/assets/asdc/base_vcpe_vbng/MANIFEST.json
@@ -3,12 +3,12 @@
"description": "",
"data": [
{
- "file": "base_vcpe_vbng_rackspace.yaml",
+ "file": "base_vcpe_vbng.yaml",
"type": "HEAT",
"isBase": "true",
"data": [
{
- "file": "base_vcpe_vbng_rackspace.env",
+ "file": "base_vcpe_vbng.env",
"type": "HEAT_ENV"
}
]
diff --git a/robot/assets/asdc/base_vcpe_vbng/base_vcpe_vbng_rackspace.env b/robot/assets/asdc/base_vcpe_vbng/base_vcpe_vbng.env
index e363b3d7..be4f9728 100644
--- a/robot/assets/asdc/base_vcpe_vbng/base_vcpe_vbng_rackspace.env
+++ b/robot/assets/asdc/base_vcpe_vbng/base_vcpe_vbng.env
@@ -1,13 +1,16 @@
parameters:
- vcpe_image_name: Ubuntu 16.04 LTS (Xenial Xerus) (PVHVM)
- vcpe_flavor_name: 4 GB General Purpose v1
- public_net_id: 00000000-0000-0000-0000-000000000000
+ vcpe_image_name: PUT THE IMAGE NAME HERE (Ubuntu 1604 SUGGESTED)
+ vcpe_flavor_name: PUT THE FLAVOR NAME HERE (MEDIUM FLAVOR SUGGESTED)
+ public_net_id: PUT THE PUBLIC NETWORK ID HERE
brgemu_bng_private_net_id: zdfw1bngin01_private
+ brgemu_bng_private_subnet_id: zdfw1bngin01_sub_private
bng_gmux_private_net_id: zdfw1bngmux01_private
- onap_private_net_id: <PUT_YOUR_ONAP_NET_ID_HERE>
- onap_private_subnet_id: <PUT_YOUR_ONAP_NET_ID_HERE>
+ bng_gmux_private_subnet_id: zdfw1bngmux01_sub_private
+ onap_private_net_id: PUT THE ONAP PRIVATE NETWORK NAME HERE
+ onap_private_subnet_id: PUT THE ONAP PRIVATE SUBNETWORK NAME HERE
onap_private_net_cidr: 10.0.0.0/16
cpe_signal_net_id: zdfw1cpe01_private
+ cpe_signal_subnet_id: zdfw1cpe01_sub_private
brgemu_bng_private_net_cidr: 10.3.0.0/24
bng_gmux_private_net_cidr: 10.1.0.0/24
cpe_signal_private_net_cidr: 10.4.0.0/24
@@ -26,4 +29,7 @@
install_script_version: 1.1.0-SNAPSHOT
key_name: vbng_key
pub_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQXYJYYi3/OUZXUiCYWdtc7K0m5C0dJKVxPG0eI8EWZrEHYdfYe6WoTSDJCww+1qlBSpA5ac/Ba4Wn9vh+lR1vtUKkyIC/nrYb90ReUd385Glkgzrfh5HdR5y5S2cL/Frh86lAn9r6b3iWTJD8wBwXFyoe1S2nMTOIuG4RPNvfmyCTYVh8XTCCE8HPvh3xv2r4egawG1P4Q4UDwk+hDBXThY2KS8M5/8EMyxHV0ImpLbpYCTBA6KYDIRtqmgS6iKyy8v2D1aSY5mc9J0T5t9S2Gv+VZQNWQDDKNFnxqYaAo1uEoq/i1q63XC5AD3ckXb2VT6dp23BQMdDfbHyUWfJN
- cloud_env: rackspace
+ cloud_env: PUT THE CLOUD PROVIDED HERE (openstack or rackspace)
+ vpp_source_repo_url: https://gerrit.fd.io/r/vpp
+ vpp_source_repo_branch: stable/1704
+ vpp_patch_url: https://git.onap.org/demo/plain/vnfs/vCPE/vpp-radius-client-for-vbng/src/patches/Vpp-Integrate-FreeRADIUS-Client-for-vBNG.patch
diff --git a/robot/assets/asdc/base_vcpe_vbng/base_vcpe_vbng_rackspace.yaml b/robot/assets/asdc/base_vcpe_vbng/base_vcpe_vbng.yaml
index d5c0eed8..9cc44840 100644
--- a/robot/assets/asdc/base_vcpe_vbng/base_vcpe_vbng_rackspace.yaml
+++ b/robot/assets/asdc/base_vcpe_vbng/base_vcpe_vbng.yaml
@@ -24,7 +24,7 @@
heat_template_version: 2013-05-23
-description: Heat template to deploy vCPE virtual Broadband Network Gateway (vBNG) for ONAP
+description: Heat template to deploy vCPE virtual Broadband Network Gateway (vBNG)
##############
# #
@@ -49,6 +49,10 @@ parameters:
type: string
label: vBNG IN private network name or ID
description: Private network that connects vBRG to vBNG
+ brgemu_bng_private_subnet_id:
+ type: string
+ label: vBNG IN private sub-network name or ID
+ description: vBNG IN private sub-network name or ID
brgemu_bng_private_net_cidr:
type: string
label: vBNG IN private network CIDR
@@ -57,6 +61,10 @@ parameters:
type: string
label: vBNG vGMUX private network name or ID
description: Private network that connects vBNG to vGMUX
+ bng_gmux_private_subnet_id:
+ type: string
+ label: vBNG vGMUX private sub-network name or ID
+ description: vBNG vGMUX private sub-network name or ID
bng_gmux_private_net_cidr:
type: string
label: vGMUX private network CIDR
@@ -77,6 +85,10 @@ parameters:
type: string
label: vCPE private network name or ID
description: Private network that connects vCPE elements with vCPE infrastructure elements
+ cpe_signal_subnet_id:
+ type: string
+ label: vCPE private sub-network name or ID
+ description: vCPE private sub-network name or ID
cpe_signal_private_net_cidr:
type: string
label: vAAA private network CIDR
@@ -145,6 +157,18 @@ parameters:
type: string
label: Cloud environment
description: Cloud environment (e.g., openstack, rackspace)
+ vpp_source_repo_url:
+ type: string
+ label: VPP Source Git Repo
+ description: URL for VPP source codes
+ vpp_source_repo_branch:
+ type: string
+ label: VPP Source Git Branch
+ description: Git Branch for the VPP source codes
+ vpp_patch_url:
+ type: string
+ label: VPP Patch URL
+ description: URL for VPP patch for vBNG
#############
# #
@@ -171,24 +195,13 @@ resources:
public_key: { get_param: pub_key }
save_private_key: false
- brgemu_bng_private_network:
- type: OS::Neutron::Net
- properties:
- name: { get_param: brgemu_bng_private_net_id }
-
- brgemu_bng_private_subnet:
- type: OS::Neutron::Subnet
- properties:
- name: { get_param: brgemu_bng_private_net_id }
- network_id: { get_resource: brgemu_bng_private_network }
- cidr: { get_param: brgemu_bng_private_net_cidr }
# Virtual BNG Instantiation
vbng_private_0_port:
type: OS::Neutron::Port
properties:
- network: { get_resource: brgemu_bng_private_network }
- fixed_ips: [{"subnet": { get_resource: brgemu_bng_private_subnet }, "ip_address": { get_param: vbng_private_ip_0 }}]
+ network: { get_param: brgemu_bng_private_net_id }
+ fixed_ips: [{"subnet": { get_param: brgemu_bng_private_subnet_id }, "ip_address": { get_param: vbng_private_ip_0 }}]
vbng_private_1_port:
type: OS::Neutron::Port
@@ -200,13 +213,13 @@ resources:
type: OS::Neutron::Port
properties:
network: { get_param: cpe_signal_net_id }
- fixed_ips: [{"subnet": { get_param: cpe_signal_net_id }, "ip_address": { get_param: vbng_private_ip_2 }}]
+ fixed_ips: [{"subnet": { get_param: cpe_signal_subnet_id }, "ip_address": { get_param: vbng_private_ip_2 }}]
vbng_private_3_port:
type: OS::Neutron::Port
properties:
network: { get_param: bng_gmux_private_net_id }
- fixed_ips: [{"subnet": { get_param: bng_gmux_private_net_id }, "ip_address": { get_param: vbng_private_ip_3 }}]
+ fixed_ips: [{"subnet": { get_param: bng_gmux_private_subnet_id }, "ip_address": { get_param: vbng_private_ip_3 }}]
vbng_0:
type: OS::Nova::Server
@@ -240,6 +253,9 @@ resources:
__demo_artifacts_version__ : { get_param: demo_artifacts_version }
__install_script_version__ : { get_param: install_script_version }
__cloud_env__ : { get_param: cloud_env }
+ __vpp_source_repo_url__ : { get_param: vpp_source_repo_url }
+ __vpp_source_repo_branch__ : { get_param: vpp_source_repo_branch }
+ __vpp_patch_url__ : { get_param: vpp_patch_url }
template: |
#!/bin/bash
@@ -260,6 +276,9 @@ resources:
echo "__demo_artifacts_version__" > /opt/config/demo_artifacts_version.txt
echo "__install_script_version__" > /opt/config/install_script_version.txt
echo "__cloud_env__" > /opt/config/cloud_env.txt
+ echo "__vpp_source_repo_url__" > /opt/config/vpp_source_repo_url.txt
+ echo "__vpp_source_repo_branch__" > /opt/config/vpp_source_repo_branch.txt
+ echo "__vpp_patch_url__" > /opt/config/vpp_patch_url.txt
# Download and run install script
curl -k __repo_url_blob__/org.onap.demo/vnfs/vcpe/__install_script_version__/v_bng_install.sh -o /opt/v_bng_install.sh
diff --git a/robot/assets/asdc/base_vcpe_vbrgemu/MANIFEST.json b/robot/assets/asdc/base_vcpe_vbrgemu/MANIFEST.json
index 0edc4b9d..603f92d9 100644
--- a/robot/assets/asdc/base_vcpe_vbrgemu/MANIFEST.json
+++ b/robot/assets/asdc/base_vcpe_vbrgemu/MANIFEST.json
@@ -3,12 +3,12 @@
"description": "",
"data": [
{
- "file": "base_vcpe_vbrgemu_rackspace.yaml",
+ "file": "base_vcpe_vbrgemu.yaml",
"type": "HEAT",
"isBase": "true",
"data": [
{
- "file": "base_vcpe_vbrgemu_rackspace.env",
+ "file": "base_vcpe_vbrgemu.env",
"type": "HEAT_ENV"
}
]
diff --git a/robot/assets/asdc/base_vcpe_vbrgemu/base_vcpe_vbrgemu_rackspace.env b/robot/assets/asdc/base_vcpe_vbrgemu/base_vcpe_vbrgemu.env
index 1951c5e4..ea8bc823 100644
--- a/robot/assets/asdc/base_vcpe_vbrgemu/base_vcpe_vbrgemu_rackspace.env
+++ b/robot/assets/asdc/base_vcpe_vbrgemu/base_vcpe_vbrgemu.env
@@ -1,13 +1,15 @@
parameters:
- vcpe_image_name: Ubuntu 16.04 LTS (Xenial Xerus) (PVHVM)
- vcpe_flavor_name: 4 GB General Purpose v1
- public_net_id: 00000000-0000-0000-0000-000000000000
+ vcpe_image_name: PUT THE IMAGE NAME HERE (Ubuntu 1604 SUGGESTED)
+ vcpe_flavor_name: PUT THE FLAVOR NAME HERE (MEDIUM FLAVOR SUGGESTED)
+ public_net_id: PUT THE PUBLIC NETWORK ID HERE
vbrgemu_bng_private_net_id: zdfw1bngin01_private
- vbrgemu_private_net_id: zdfw1vbrgemu01_private
+ vbrgemu_bng_private_subnet_id: zdfw1bngin01_sub_private
vbrgemu_bng_private_net_cidr: 10.3.0.0/24
+ vbrgemu_private_net_id: zdfw1vbrgemu01_private
vbrgemu_private_net_cidr: 192.168.1.0/24
- vbrgemu_private_ip_0: 10.3.0.2
+ vbrgemu_private_ip_0: 10.3.0.4
vbrgemu_private_ip_1: 192.168.1.1
+ sdnc_ip: 10.0.7.1
vbrgemu_name_0: zdcpe1cpe01brgemu01
vnf_id: vCPE_Infrastructure_BGREMU_demo_app
vf_module_id: vCPE_Customer_BRGEMU
@@ -17,4 +19,9 @@
install_script_version: 1.1.0-SNAPSHOT
key_name: vbrgemu_key
pub_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQXYJYYi3/OUZXUiCYWdtc7K0m5C0dJKVxPG0eI8EWZrEHYdfYe6WoTSDJCww+1qlBSpA5ac/Ba4Wn9vh+lR1vtUKkyIC/nrYb90ReUd385Glkgzrfh5HdR5y5S2cL/Frh86lAn9r6b3iWTJD8wBwXFyoe1S2nMTOIuG4RPNvfmyCTYVh8XTCCE8HPvh3xv2r4egawG1P4Q4UDwk+hDBXThY2KS8M5/8EMyxHV0ImpLbpYCTBA6KYDIRtqmgS6iKyy8v2D1aSY5mc9J0T5t9S2Gv+VZQNWQDDKNFnxqYaAo1uEoq/i1q63XC5AD3ckXb2VT6dp23BQMdDfbHyUWfJN
- cloud_env: rackspace
+ cloud_env: PUT THE CLOUD PROVIDED HERE (openstack or rackspace)
+ vpp_source_repo_url: https://gerrit.fd.io/r/vpp
+ vpp_source_repo_branch: stable/1704
+ hc2vpp_source_repo_url: https://gerrit.fd.io/r/hc2vpp
+ hc2vpp_source_repo_branch: stable/1704
+ vpp_patch_url: https://git.onap.org/demo/plain/vnfs/vCPE/vpp-option-82-for-vbrg/src/patches/VPP-Add-Option82-Nat-Filter-For-vBRG.patch
diff --git a/robot/assets/asdc/base_vcpe_vbrgemu/base_vcpe_vbrgemu_rackspace.yaml b/robot/assets/asdc/base_vcpe_vbrgemu/base_vcpe_vbrgemu.yaml
index 6f926eb5..a9eb8726 100644
--- a/robot/assets/asdc/base_vcpe_vbrgemu/base_vcpe_vbrgemu_rackspace.yaml
+++ b/robot/assets/asdc/base_vcpe_vbrgemu/base_vcpe_vbrgemu.yaml
@@ -24,7 +24,7 @@
heat_template_version: 2013-05-23
-description: Heat template to deploy vCPE vBRG Emulator (vBRGEMU) for ONAP
+description: Heat template to deploy vCPE vBRG Emulator (vBRGEMU)
#######################################################################
# #
@@ -51,6 +51,10 @@ parameters:
type: string
label: vBNG private network name or ID
description: Private network that connects vBRGEMU to vBNG
+ vbrgemu_bng_private_subnet_id:
+ type: string
+ label: vBNG private sub-network name or ID
+ description: vBNG private sub-network name or ID
vbrgemu_bng_private_net_cidr:
type: string
label: vBNG IN private network CIDR
@@ -111,6 +115,30 @@ parameters:
type: string
label: Cloud environment
description: Cloud environment (e.g., openstack, rackspace)
+ vpp_source_repo_url:
+ type: string
+ label: VPP Source Git Repo
+ description: URL for VPP source codes
+ vpp_source_repo_branch:
+ type: string
+ label: VPP Source Git Branch
+ description: Git Branch for the VPP source codes
+ hc2vpp_source_repo_url:
+ type: string
+ label: Honeycomb Source Git Repo
+ description: URL for Honeycomb source codes
+ hc2vpp_source_repo_branch:
+ type: string
+ label: Honeycomb Source Git Branch
+ description: Git Branch for the Honeycomb source codes
+ vpp_patch_url:
+ type: string
+ label: VPP Patch URL
+ description: URL for VPP patch for vBRG Emulator
+ sdnc_ip:
+ type: string
+ label: SDNC ip address
+ description: SDNC ip address uesd to set NAT
#############
# #
@@ -155,7 +183,7 @@ resources:
type: OS::Neutron::Port
properties:
network: { get_param: vbrgemu_bng_private_net_id }
- fixed_ips: [{"subnet": { get_param: vbrgemu_bng_private_net_id }, "ip_address": { get_param: vbrgemu_private_ip_0 }}]
+ fixed_ips: [{"subnet": { get_param: vbrgemu_bng_private_subnet_id }, "ip_address": { get_param: vbrgemu_private_ip_0 }}]
vbrgemu_private_1_port:
type: OS::Neutron::Port
@@ -187,6 +215,12 @@ resources:
__demo_artifacts_version__ : { get_param: demo_artifacts_version }
__install_script_version__ : { get_param: install_script_version }
__cloud_env__ : { get_param: cloud_env }
+ __vpp_source_repo_url__ : { get_param: vpp_source_repo_url }
+ __vpp_source_repo_branch__ : { get_param: vpp_source_repo_branch }
+ __hc2vpp_source_repo_url__ : { get_param: hc2vpp_source_repo_url }
+ __hc2vpp_source_repo_branch__ : { get_param: hc2vpp_source_repo_branch }
+ __vpp_patch_url__ : { get_param: vpp_patch_url }
+ __sdnc_ip__ : { get_param: sdnc_ip }
template: |
#!/bin/bash
@@ -200,6 +234,12 @@ resources:
echo "__demo_artifacts_version__" > /opt/config/demo_artifacts_version.txt
echo "__install_script_version__" > /opt/config/install_script_version.txt
echo "__cloud_env__" > /opt/config/cloud_env.txt
+ echo "__vpp_source_repo_url__" > /opt/config/vpp_source_repo_url.txt
+ echo "__vpp_source_repo_branch__" > /opt/config/vpp_source_repo_branch.txt
+ echo "__hc2vpp_source_repo_url__" > /opt/config/hc2vpp_source_repo_url.txt
+ echo "__hc2vpp_source_repo_branch__" > /opt/config/hc2vpp_source_repo_branch.txt
+ echo "__vpp_patch_url__" > /opt/config/vpp_patch_url.txt
+ echo "__sdnc_ip__" > /opt/config/sdnc_ip.txt
# Download and run install script
curl -k __repo_url_blob__/org.onap.demo/vnfs/vcpe/__install_script_version__/v_brgemu_install.sh -o /opt/v_brgemu_install.sh
diff --git a/robot/assets/asdc/base_vcpe_vgmux/MANIFEST.json b/robot/assets/asdc/base_vcpe_vgmux/MANIFEST.json
index 35603f9a..62d1ef97 100644
--- a/robot/assets/asdc/base_vcpe_vgmux/MANIFEST.json
+++ b/robot/assets/asdc/base_vcpe_vgmux/MANIFEST.json
@@ -3,12 +3,12 @@
"description": "",
"data": [
{
- "file": "base_vcpe_vgmux_rackspace.yaml",
+ "file": "base_vcpe_vgmux.yaml",
"type": "HEAT",
"isBase": "true",
"data": [
{
- "file": "base_vcpe_vgmux_rackspace.env",
+ "file": "base_vcpe_vgmux.env",
"type": "HEAT_ENV"
}
]
diff --git a/robot/assets/asdc/base_vcpe_vgmux/base_vcpe_vgmux_rackspace.env b/robot/assets/asdc/base_vcpe_vgmux/base_vcpe_vgmux.env
index c6b20f9c..aad4784b 100644
--- a/robot/assets/asdc/base_vcpe_vgmux/base_vcpe_vgmux_rackspace.env
+++ b/robot/assets/asdc/base_vcpe_vgmux/base_vcpe_vgmux.env
@@ -1,11 +1,13 @@
parameters:
- vcpe_image_name: Ubuntu 16.04 LTS (Xenial Xerus) (PVHVM)
- vcpe_flavor_name: 4 GB General Purpose v1
- public_net_id: 00000000-0000-0000-0000-000000000000
+ vcpe_image_name: PUT THE IMAGE NAME HERE (Ubuntu 1604 SUGGESTED)
+ vcpe_flavor_name: PUT THE FLAVOR NAME HERE (MEDIUM FLAVOR SUGGESTED)
+ public_net_id: PUT THE PUBLIC NETWORK ID HERE
bng_gmux_private_net_id: zdfw1bngmux01_private
+ bng_gmux_private_subnet_id: zdfw1bngmux01_sub_private
mux_gw_private_net_id: zdfw1muxgw01_private
- onap_private_net_id: <PUT_YOUR_ONAP_NET_ID_HERE>
- onap_private_subnet_id: <PUT_YOUR_ONAP_NET_ID_HERE>
+ mux_gw_private_subnet_id: zdfw1muxgw01_sub_private
+ onap_private_net_id: PUT THE ONAP PRIVATE NETWORK NAME HERE
+ onap_private_subnet_id: PUT THE ONAP PRIVATE SUBNETWORK NAME HERE
onap_private_net_cidr: 10.0.0.0/16
bng_gmux_private_net_cidr: 10.1.0.0/24
mux_gw_private_net_cidr: 10.5.0.0/24
@@ -21,6 +23,12 @@
repo_url_artifacts: https://nexus.onap.org/content/groups/staging
demo_artifacts_version: 1.1.0
install_script_version: 1.1.0-SNAPSHOT
- key_name: vbng_key
+ key_name: vgmux_key
pub_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQXYJYYi3/OUZXUiCYWdtc7K0m5C0dJKVxPG0eI8EWZrEHYdfYe6WoTSDJCww+1qlBSpA5ac/Ba4Wn9vh+lR1vtUKkyIC/nrYb90ReUd385Glkgzrfh5HdR5y5S2cL/Frh86lAn9r6b3iWTJD8wBwXFyoe1S2nMTOIuG4RPNvfmyCTYVh8XTCCE8HPvh3xv2r4egawG1P4Q4UDwk+hDBXThY2KS8M5/8EMyxHV0ImpLbpYCTBA6KYDIRtqmgS6iKyy8v2D1aSY5mc9J0T5t9S2Gv+VZQNWQDDKNFnxqYaAo1uEoq/i1q63XC5AD3ckXb2VT6dp23BQMdDfbHyUWfJN
- cloud_env: rackspace
+ cloud_env: PUT THE CLOUD PROVIDED HERE (openstack or rackspace)
+ vpp_source_repo_url: https://gerrit.fd.io/r/vpp
+ vpp_source_repo_branch: stable/1704
+ hc2vpp_source_repo_url: https://gerrit.fd.io/r/hc2vpp
+ hc2vpp_source_repo_branch: stable/1704
+ vpp_patch_url: https://git.onap.org/demo/plain/vnfs/vCPE/vpp-ves-agent-for-vgmux/src/patches/Vpp-Add-VES-agent-for-vG-MUX.patch
+ hc2vpp_patch_url: https://git.onap.org/demo/plain/vnfs/vCPE/vpp-ves-agent-for-vgmux/src/patches/Hc2vpp-Add-VES-agent-for-vG-MUX.patch
diff --git a/robot/assets/asdc/base_vcpe_vgmux/base_vcpe_vgmux_rackspace.yaml b/robot/assets/asdc/base_vcpe_vgmux/base_vcpe_vgmux.yaml
index b6e212a1..4f12c64e 100644
--- a/robot/assets/asdc/base_vcpe_vgmux/base_vcpe_vgmux_rackspace.yaml
+++ b/robot/assets/asdc/base_vcpe_vgmux/base_vcpe_vgmux.yaml
@@ -24,7 +24,7 @@
heat_template_version: 2013-05-23
-description: Heat template to deploy vCPE Infrastructue Metro vGMUX for ONAP
+description: Heat template to deploy vCPE Infrastructue Metro vGMUX
##############
# #
@@ -49,14 +49,22 @@ parameters:
type: string
label: vBNG vGMUX private network name or ID
description: Private network that connects vBNG to vGMUX
+ bng_gmux_private_subnet_id:
+ type: string
+ label: vBNG vGMUX private sub-network name or ID
+ description: vBNG vGMUX private sub-network name or ID
bng_gmux_private_net_cidr:
type: string
label: vBNG vGMUX private network CIDR
description: The CIDR of the vBNG-vGMUX private network
mux_gw_private_net_id:
type: string
- label: vCPE Public network name or ID
+ label: vGMUX vGWs network name or ID
description: Private network that connects vGMUX to vGWs
+ mux_gw_private_subnet_id:
+ type: string
+ label: vGMUX vGWs sub-network name or ID
+ description: vGMUX vGWs sub-network name or ID
mux_gw_private_net_cidr:
type: string
label: vGMUX private network CIDR
@@ -133,6 +141,30 @@ parameters:
type: string
label: Cloud environment
description: Cloud environment (e.g., openstack, rackspace)
+ vpp_source_repo_url:
+ type: string
+ label: VPP Source Git Repo
+ description: URL for VPP source codes
+ vpp_source_repo_branch:
+ type: string
+ label: VPP Source Git Branch
+ description: Git Branch for the VPP source codes
+ hc2vpp_source_repo_url:
+ type: string
+ label: Honeycomb Source Git Repo
+ description: URL for Honeycomb source codes
+ hc2vpp_source_repo_branch:
+ type: string
+ label: Honeycomb Source Git Branch
+ description: Git Branch for the Honeycomb source codes
+ vpp_patch_url:
+ type: string
+ label: VPP Patch URL
+ description: URL for VPP patch for vG-MUX
+ hc2vpp_patch_url:
+ type: string
+ label: Honeycomb Patch URL
+ description: URL for Honeycomb patch for vG-MUX
#############
# #
@@ -159,36 +191,13 @@ resources:
public_key: { get_param: pub_key }
save_private_key: false
- mux_gw_private_network:
- type: OS::Neutron::Net
- properties:
- name: { get_param: mux_gw_private_net_id }
-
- mux_gw_private_subnet:
- type: OS::Neutron::Subnet
- properties:
- name: { get_param: mux_gw_private_net_id }
- network_id: { get_resource: mux_gw_private_network }
- cidr: { get_param: mux_gw_private_net_cidr }
-
- bng_gmux_private_network:
- type: OS::Neutron::Net
- properties:
- name: { get_param: bng_gmux_private_net_id }
-
- bng_gmux_private_subnet:
- type: OS::Neutron::Subnet
- properties:
- name: { get_param: bng_gmux_private_net_id }
- network_id: { get_resource: bng_gmux_private_network }
- cidr: { get_param: bng_gmux_private_net_cidr }
# Virtual GMUX Instantiation
vgmux_private_0_port:
type: OS::Neutron::Port
properties:
- network: { get_resource: bng_gmux_private_network }
- fixed_ips: [{"subnet": { get_resource: bng_gmux_private_subnet }, "ip_address": { get_param: vgmux_private_ip_0 }}]
+ network: { get_param: bng_gmux_private_net_id }
+ fixed_ips: [{"subnet": { get_param: bng_gmux_private_subnet_id }, "ip_address": { get_param: vgmux_private_ip_0 }}]
vgmux_private_1_port:
type: OS::Neutron::Port
@@ -199,8 +208,8 @@ resources:
vgmux_private_2_port:
type: OS::Neutron::Port
properties:
- network: { get_resource: mux_gw_private_network }
- fixed_ips: [{"subnet": { get_resource: mux_gw_private_subnet }, "ip_address": { get_param: vgmux_private_ip_2 }}]
+ network: { get_param: mux_gw_private_net_id }
+ fixed_ips: [{"subnet": { get_param: mux_gw_private_subnet_id }, "ip_address": { get_param: vgmux_private_ip_2 }}]
vgmux_0:
type: OS::Nova::Server
@@ -230,6 +239,12 @@ resources:
__demo_artifacts_version__ : { get_param: demo_artifacts_version }
__install_script_version__ : { get_param: install_script_version }
__cloud_env__ : { get_param: cloud_env }
+ __vpp_source_repo_url__ : { get_param: vpp_source_repo_url }
+ __vpp_source_repo_branch__ : { get_param: vpp_source_repo_branch }
+ __hc2vpp_source_repo_url__ : { get_param: hc2vpp_source_repo_url }
+ __hc2vpp_source_repo_branch__ : { get_param: hc2vpp_source_repo_branch }
+ __vpp_patch_url__ : { get_param: vpp_patch_url }
+ __hc2vpp_patch_url__ : { get_param: hc2vpp_patch_url }
template: |
#!/bin/bash
@@ -246,10 +261,15 @@ resources:
echo "__demo_artifacts_version__" > /opt/config/demo_artifacts_version.txt
echo "__install_script_version__" > /opt/config/install_script_version.txt
echo "__cloud_env__" > /opt/config/cloud_env.txt
+ echo "__vpp_source_repo_url__" > /opt/config/vpp_source_repo_url.txt
+ echo "__vpp_source_repo_branch__" > /opt/config/vpp_source_repo_branch.txt
+ echo "__vpp_patch_url__" > /opt/config/vpp_patch_url.txt
+ echo "__hc2vpp_source_repo_url__" > /opt/config/hc2vpp_source_repo_url.txt
+ echo "__hc2vpp_source_repo_branch__" > /opt/config/hc2vpp_source_repo_branch.txt
+ echo "__hc2vpp_patch_url__" > /opt/config/hc2vpp_patch_url.txt
# Download and run install script
curl -k __repo_url_blob__/org.onap.demo/vnfs/vcpe/__install_script_version__/v_gmux_install.sh -o /opt/v_gmux_install.sh
cd /opt
chmod +x v_gmux_install.sh
./v_gmux_install.sh
-
diff --git a/robot/assets/asdc/base_vcpe_vgw/MANIFEST.json b/robot/assets/asdc/base_vcpe_vgw/MANIFEST.json
index edaface7..f99303e4 100644
--- a/robot/assets/asdc/base_vcpe_vgw/MANIFEST.json
+++ b/robot/assets/asdc/base_vcpe_vgw/MANIFEST.json
@@ -3,12 +3,12 @@
"description": "",
"data": [
{
- "file": "base_vcpe_vgw_rackspace.yaml",
+ "file": "base_vcpe_vgw.yaml",
"type": "HEAT",
"isBase": "true",
"data": [
{
- "file": "base_vcpe_vgw_rackspace.env",
+ "file": "base_vcpe_vgw.env",
"type": "HEAT_ENV"
}
]
diff --git a/robot/assets/asdc/base_vcpe_vgw/base_vcpe_vgw_rackspace.env b/robot/assets/asdc/base_vcpe_vgw/base_vcpe_vgw.env
index 93096f2d..f1cadb83 100644
--- a/robot/assets/asdc/base_vcpe_vgw/base_vcpe_vgw_rackspace.env
+++ b/robot/assets/asdc/base_vcpe_vgw/base_vcpe_vgw.env
@@ -1,17 +1,19 @@
parameters:
- vcpe_image_name: Ubuntu 16.04 LTS (Xenial Xerus) (PVHVM)
- vcpe_flavor_name: 4 GB General Purpose v1
- public_net_id: 00000000-0000-0000-0000-000000000000
+ vcpe_image_name: PUT THE IMAGE NAME HERE (Ubuntu 1604 SUGGESTED)
+ vcpe_flavor_name: PUT THE FLAVOR NAME HERE (MEDIUM FLAVOR SUGGESTED)
+ public_net_id: PUT THE PUBLIC NETWORK ID HERE
mux_gw_private_net_id: zdfw1muxgw01_private
+ mux_gw_private_subnet_id: zdfw1muxgw01_sub_private
mux_gw_private_net_cidr: 10.5.0.0/24
cpe_public_net_id: zdfw1cpe01_public
+ cpe_public_subnet_id: zdfw1cpe01_sub_public
cpe_public_net_cidr: 10.2.0.0/24
- onap_private_net_id: <PUT_YOUR_ONAP_NET_ID_HERE>
- onap_private_subnet_id: <PUT_YOUR_ONAP_NET_ID_HERE>
+ onap_private_net_id: PUT THE ONAP PRIVATE NETWORK NAME HERE
+ onap_private_subnet_id: PUT THE ONAP PRIVATE SUBNETWORK NAME HERE
onap_private_net_cidr: 10.0.0.0/16
vgw_private_ip_0: 10.5.0.21
vgw_private_ip_1: 10.0.101.30
- vgw_private_ip_2: 10.2.0.2
+ vgw_private_ip_2: 10.2.0.3
vgw_name_0: zdcpe1cpe01gw01
vnf_id: vCPE_Infrastructure_GW_demo_app
vf_module_id: vCPE_Customer_GW
@@ -23,4 +25,8 @@
install_script_version: 1.1.0-SNAPSHOT
key_name: vgw_key
pub_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQXYJYYi3/OUZXUiCYWdtc7K0m5C0dJKVxPG0eI8EWZrEHYdfYe6WoTSDJCww+1qlBSpA5ac/Ba4Wn9vh+lR1vtUKkyIC/nrYb90ReUd385Glkgzrfh5HdR5y5S2cL/Frh86lAn9r6b3iWTJD8wBwXFyoe1S2nMTOIuG4RPNvfmyCTYVh8XTCCE8HPvh3xv2r4egawG1P4Q4UDwk+hDBXThY2KS8M5/8EMyxHV0ImpLbpYCTBA6KYDIRtqmgS6iKyy8v2D1aSY5mc9J0T5t9S2Gv+VZQNWQDDKNFnxqYaAo1uEoq/i1q63XC5AD3ckXb2VT6dp23BQMdDfbHyUWfJN
- cloud_env: rackspace
+ cloud_env: PUT THE CLOUD PROVIDED HERE (openstack or rackspace)
+ vpp_source_repo_url: https://gerrit.fd.io/r/vpp
+ vpp_source_repo_branch: stable/1704
+ hc2vpp_source_repo_url: https://gerrit.fd.io/r/hc2vpp
+ hc2vpp_source_repo_branch: stable/1704
diff --git a/robot/assets/asdc/base_vcpe_vgw/base_vcpe_vgw_rackspace.yaml b/robot/assets/asdc/base_vcpe_vgw/base_vcpe_vgw.yaml
index 0621556a..173ba6dd 100644
--- a/robot/assets/asdc/base_vcpe_vgw/base_vcpe_vgw_rackspace.yaml
+++ b/robot/assets/asdc/base_vcpe_vgw/base_vcpe_vgw.yaml
@@ -24,7 +24,7 @@
heat_template_version: 2013-05-23
-description: Heat template to deploy vCPE vGateway (vG) for ONAP
+description: Heat template to deploy vCPE vGateway (vG)
##############
# #
@@ -49,6 +49,10 @@ parameters:
type: string
label: vGMUX private network name or ID
description: Private network that connects vGMUX to vGWs
+ mux_gw_private_subnet_id:
+ type: string
+ label: vGMUX private sub-network name or ID
+ description: vGMUX private sub-network name or ID
mux_gw_private_net_cidr:
type: string
label: vGMUX private network CIDR
@@ -69,6 +73,10 @@ parameters:
type: string
label: vCPE network that emulates internetmanagement name or ID
description: Private network that connects vGW to emulated internet
+ cpe_public_subnet_id:
+ type: string
+ label: vCPE Public subnet
+ description: vCPE Public subnet
cpe_public_net_cidr:
type: string
label: vCPE public network CIDR
@@ -133,6 +141,22 @@ parameters:
type: string
label: Cloud environment
description: Cloud environment (e.g., openstack, rackspace)
+ vpp_source_repo_url:
+ type: string
+ label: VPP Source Git Repo
+ description: URL for VPP source codes
+ vpp_source_repo_branch:
+ type: string
+ label: VPP Source Git Branch
+ description: Git Branch for the VPP source codes
+ hc2vpp_source_repo_url:
+ type: string
+ label: Honeycomb Source Git Repo
+ description: URL for Honeycomb source codes
+ hc2vpp_source_repo_branch:
+ type: string
+ label: Honeycomb Source Git Branch
+ description: Git Branch for the Honeycomb source codes
#############
# #
@@ -160,13 +184,11 @@ resources:
save_private_key: false
# Virtual GW Instantiation
- # mux_gw_private_net created by mux heat template
- # cpe_public_net created by infra heat template (vDNS)
vgw_private_0_port:
type: OS::Neutron::Port
properties:
network: { get_param: mux_gw_private_net_id }
- fixed_ips: [{"subnet": { get_param: mux_gw_private_net_id }, "ip_address": { get_param: vgw_private_ip_0 }}]
+ fixed_ips: [{"subnet": { get_param: mux_gw_private_subnet_id }, "ip_address": { get_param: vgw_private_ip_0 }}]
vgw_private_1_port:
type: OS::Neutron::Port
@@ -178,7 +200,7 @@ resources:
type: OS::Neutron::Port
properties:
network: { get_param: cpe_public_net_id}
- fixed_ips: [{"subnet": { get_param: cpe_public_net_id }, "ip_address": { get_param: vgw_private_ip_2 }}]
+ fixed_ips: [{"subnet": { get_param: cpe_public_subnet_id }, "ip_address": { get_param: vgw_private_ip_2 }}]
vgw_0:
type: OS::Nova::Server
@@ -207,6 +229,10 @@ resources:
__demo_artifacts_version__ : { get_param: demo_artifacts_version }
__install_script_version__ : { get_param: install_script_version }
__cloud_env__ : { get_param: cloud_env }
+ __vpp_source_repo_url__ : { get_param: vpp_source_repo_url }
+ __vpp_source_repo_branch__ : { get_param: vpp_source_repo_branch }
+ __hc2vpp_source_repo_url__ : { get_param: hc2vpp_source_repo_url }
+ __hc2vpp_source_repo_branch__ : { get_param: hc2vpp_source_repo_branch }
template: |
#!/bin/bash
@@ -222,6 +248,10 @@ resources:
echo "__demo_artifacts_version__" > /opt/config/demo_artifacts_version.txt
echo "__install_script_version__" > /opt/config/install_script_version.txt
echo "__cloud_env__" > /opt/config/cloud_env.txt
+ echo "__vpp_source_repo_url__" > /opt/config/vpp_source_repo_url.txt
+ echo "__vpp_source_repo_branch__" > /opt/config/vpp_source_repo_branch.txt
+ echo "__hc2vpp_source_repo_url__" > /opt/config/hc2vpp_source_repo_url.txt
+ echo "__hc2vpp_source_repo_branch__" > /opt/config/hc2vpp_source_repo_branch.txt
# Download and run install script
curl -k __repo_url_blob__/org.onap.demo/vnfs/vcpe/__install_script_version__/v_gw_install.sh -o /opt/v_gw_install.sh
diff --git a/robot/assets/asdc/base_vfw/base_vfw.yaml b/robot/assets/asdc/base_vfw/base_vfw.yaml
index 0ba1d5ca..a7df854a 100644
--- a/robot/assets/asdc/base_vfw/base_vfw.yaml
+++ b/robot/assets/asdc/base_vfw/base_vfw.yaml
@@ -1,36 +1,6 @@
-##########################################################################
-#
-#==================LICENSE_START==========================================
-#
-#
-# Copyright © 2017 AT&T Intellectual Property. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#==================LICENSE_END============================================
-#
-# ECOMP is a trademark and service mark of AT&T Intellectual Property.
-#
-##########################################################################
-
heat_template_version: 2013-05-23
-description: Heat template that deploys vFirewall demo app for ONAP
-
-##############
-# #
-# PARAMETERS #
-# #
-##############
+description: Heat template to deploy vFirewall demo app for OpenECOMP
parameters:
vfw_image_name:
@@ -53,14 +23,14 @@ parameters:
type: string
label: Protected private network name or ID
description: Private network that connects vFirewall with vSink
- onap_private_net_id:
+ ecomp_private_net_id:
type: string
- label: ONAP management network name or ID
- description: Private network that connects ONAP components and the VNF
- onap_private_subnet_id:
+ label: ECOMP management network name or ID
+ description: Private network that connects ECOMP component and the VNF
+ ecomp_private_subnet_id:
type: string
- label: ONAP management sub-network name or ID
- description: Private sub-network that connects ONAP components and the VNF
+ label: ECOMP management sub-network name or ID
+ description: Private sub-network that connects ECOMP component and the VNF
unprotected_private_net_cidr:
type: string
label: Unprotected private network CIDR
@@ -69,9 +39,9 @@ parameters:
type: string
label: Protected private network CIDR
description: The CIDR of the protected private network
- onap_private_net_cidr:
+ ecomp_private_net_cidr:
type: string
- label: ONAP private network CIDR
+ label: ECOMP private network CIDR
description: The CIDR of the protected private network
vfw_private_ip_0:
type: string
@@ -83,24 +53,24 @@ parameters:
description: Private IP address that is assigned to the vFirewall to communicate with the vSink
vfw_private_ip_2:
type: string
- label: vFirewall private IP address towards the ONAP management network
- description: Private IP address that is assigned to the vFirewall to communicate with ONAP components
+ label: vFirewall private IP address towards the ECOMP management network
+ description: Private IP address that is assigned to the vFirewall to communicate with ECOMP components
vpg_private_ip_0:
type: string
label: vPacketGenerator private IP address towards the unprotected network
description: Private IP address that is assigned to the vPacketGenerator to communicate with the vFirewall
vpg_private_ip_1:
type: string
- label: vPacketGenerator private IP address towards the ONAP management network
- description: Private IP address that is assigned to the vPacketGenerator to communicate with ONAP components
+ label: vPacketGenerator private IP address towards the ECOMP management network
+ description: Private IP address that is assigned to the vPacketGenerator to communicate with ECOMP components
vsn_private_ip_0:
type: string
label: vSink private IP address towards the protected network
description: Private IP address that is assigned to the vSink to communicate with the vFirewall
vsn_private_ip_1:
type: string
- label: vSink private IP address towards the ONAP management network
- description: Private IP address that is assigned to the vSink to communicate with ONAP components
+ label: vSink private IP address towards the ECOMP management network
+ description: Private IP address that is assigned to the vSink to communicate with ECOMP components
vfw_name_0:
type: string
label: vFirewall name
@@ -116,11 +86,11 @@ parameters:
vnf_id:
type: string
label: VNF ID
- description: The VNF ID is provided by ONAP
+ description: The VNF ID is provided by ECOMP
vf_module_id:
type: string
label: vFirewall module ID
- description: The vFirewall Module ID is provided by ONAP
+ description: The vFirewall Module ID is provided by ECOMP
dcae_collector_ip:
type: string
label: DCAE collector IP address
@@ -145,26 +115,13 @@ parameters:
type: string
label: Repository URL
description: URL of the repository that hosts the demo packages
- install_script_version:
- type: string
- label: Installation script version number
- description: Version number of the scripts that install the vFW demo app
demo_artifacts_version:
type: string
label: Artifacts version used in demo vnfs
description: Artifacts (jar, tar.gz) version used in demo vnfs
- cloud_env:
- type: string
- label: Cloud environment
- description: Cloud environment (e.g., openstack, rackspace)
-
-#############
-# #
-# RESOURCES #
-# #
-#############
resources:
+
random-str:
type: OS::Heat::RandomString
properties:
@@ -173,12 +130,12 @@ resources:
my_keypair:
type: OS::Nova::KeyPair
properties:
- name:
+ name:
str_replace:
template: base_rand
params:
base: { get_param: key_name }
- rand: { get_resource: random-str }
+ rand: { get_resource: random-str }
public_key: { get_param: pub_key }
save_private_key: false
@@ -204,26 +161,6 @@ resources:
network_id: { get_resource: protected_private_network }
cidr: { get_param: protected_private_net_cidr }
- # Virtual Firewall instantiation
- vfw_private_0_port:
- type: OS::Neutron::Port
- properties:
- network: { get_resource: unprotected_private_network }
- fixed_ips: [{"subnet": { get_resource: unprotected_private_subnet }, "ip_address": { get_param: vfw_private_ip_0 }}]
-
- vfw_private_1_port:
- type: OS::Neutron::Port
- properties:
- allowed_address_pairs: [{ "ip_address": { get_param: vpg_private_ip_0 }}]
- network: { get_resource: protected_private_network }
- fixed_ips: [{"subnet": { get_resource: protected_private_subnet }, "ip_address": { get_param: vfw_private_ip_1 }}]
-
- vfw_private_2_port:
- type: OS::Neutron::Port
- properties:
- network: { get_param: onap_private_net_id }
- fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: vfw_private_ip_2 }}]
-
vfw_0:
type: OS::Nova::Server
properties:
@@ -246,52 +183,87 @@ resources:
__repo_url_blob__ : { get_param: repo_url_blob }
__repo_url_artifacts__ : { get_param: repo_url_artifacts }
__demo_artifacts_version__ : { get_param: demo_artifacts_version }
- __install_script_version__ : { get_param: install_script_version }
- __vfw_private_ip_0__ : { get_param: vfw_private_ip_0 }
- __vfw_private_ip_1__ : { get_param: vfw_private_ip_1 }
- __vfw_private_ip_2__ : { get_param: vfw_private_ip_2 }
- __unprotected_private_net_cidr__ : { get_param: unprotected_private_net_cidr }
- __protected_private_net_cidr__ : { get_param: protected_private_net_cidr }
- __onap_private_net_cidr__ : { get_param: onap_private_net_cidr }
- __cloud_env__ : { get_param: cloud_env }
template: |
#!/bin/bash
-
- # Create configuration files
+
+ DCAE_COLLECTOR_IP=__dcae_collector_ip__
+ DCAE_COLLECTOR_PORT=__dcae_collector_port__
+ REPO_URL_BLOB=__repo_url_blob__
+ REPO_URL_ARTIFACTS=__repo_url_artifacts__
+ DEMO_ARTIFACTS_VERSION=__demo_artifacts_version__
+
+ # Download required dependencies
+ add-apt-repository -y ppa:openjdk-r/ppa
+ apt-get update
+ apt-get install -y make wget openjdk-8-jdk gcc libcurl4-openssl-dev python-pip bridge-utils apt-transport-https ca-certificates
+ apt-get install -y maven
+ pip install jsonschema
+
+ # Download vFirewall code for virtual firewall
mkdir /opt/config
- echo "__dcae_collector_ip__" > /opt/config/dcae_collector_ip.txt
- echo "__dcae_collector_port__" > /opt/config/dcae_collector_port.txt
- echo "__repo_url_blob__" > /opt/config/repo_url_blob.txt
- echo "__repo_url_artifacts__" > /opt/config/repo_url_artifacts.txt
- echo "__demo_artifacts_version__" > /opt/config/demo_artifacts_version.txt
- echo "__install_script_version__" > /opt/config/install_script_version.txt
- echo "__vfw_private_ip_0__" > /opt/config/vfw_private_ip_0.txt
- echo "__vfw_private_ip_1__" > /opt/config/vfw_private_ip_1.txt
- echo "__vfw_private_ip_2__" > /opt/config/vfw_private_ip_2.txt
- echo "__unprotected_private_net_cidr__" > /opt/config/unprotected_private_net_cidr.txt
- echo "__protected_private_net_cidr__" > /opt/config/protected_private_net_cidr.txt
- echo "__onap_private_net_cidr__" > /opt/config/onap_private_net_cidr.txt
- echo "__cloud_env__" > /opt/config/cloud_env.txt
-
- # Download and run install script
- curl -k __repo_url_blob__/org.onap.demo/vnfs/vfw/__install_script_version__/v_firewall_install.sh -o /opt/v_firewall_install.sh
+ mkdir /opt/honeycomb
cd /opt
- chmod +x v_firewall_install.sh
- ./v_firewall_install.sh
+ wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vfw/$DEMO_ARTIFACTS_VERSION/v_firewall_init.sh
+ wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vfw/$DEMO_ARTIFACTS_VERSION/vfirewall.sh
+ mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:get -DremoteRepositories=$REPO_URL_ARTIFACTS -Dartifact=org.openecomp.demo.vnf:sample-distribution:$DEMO_ARTIFACTS_VERSION:tar.gz:hc -Dtransitive=false -Ddest=.
+ mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:get -DremoteRepositories=$REPO_URL_ARTIFACTS -Dartifact=org.openecomp.demo.vnf.ves:ves:$DEMO_ARTIFACTS_VERSION:tar.gz:demo -Dtransitive=false -Ddest=.
+ mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:get -DremoteRepositories=$REPO_URL_ARTIFACTS -Dartifact=org.openecomp.demo.vnf.ves:ves_vfw_reporting:$DEMO_ARTIFACTS_VERSION:tar.gz:demo -Dtransitive=false -Ddest=.
- # Virtual Packet Generator instantiation
- vpg_private_0_port:
+
+ tar -zxvf ves-$DEMO_ARTIFACTS_VERSION-demo.tar.gz
+ mv ves-$DEMO_ARTIFACTS_VERSION VES
+ tar -zxvf ves_vfw_reporting-$DEMO_ARTIFACTS_VERSION-demo.tar.gz
+ mv ves_vfw_reporting-$DEMO_ARTIFACTS_VERSION VESreporting_vFW
+ tar -zxvf sample-distribution-$DEMO_ARTIFACTS_VERSION-hc.tar.gz
+ mv sample-distribution-$DEMO_ARTIFACTS_VERSION honeycomb
+ sed -i 's/"restconf-binding-address": "127.0.0.1",/"restconf-binding-address": "0.0.0.0",/g' honeycomb/sample-distribution-$DEMO_ARTIFACTS_VERSION/config/honeycomb.json
+ mv VESreporting_vFW /opt/VES/code/evel_training/VESreporting
+ rm *.tar.gz
+ chmod +x v_firewall_init.sh
+ chmod +x vfirewall.sh
+ echo $DCAE_COLLECTOR_IP > config/dcae_collector_ip.txt
+ echo $DCAE_COLLECTOR_PORT > config/dcae_collector_port.txt
+ echo $DEMO_ARTIFACTS_VERSION > config/artifacts_version.txt
+
+ # Install VPP
+ export UBUNTU="trusty"
+ export RELEASE=".stable.1609"
+ rm /etc/apt/sources.list.d/99fd.io.list
+ echo "deb [trusted=yes] https://nexus.fd.io/content/repositories/fd.io$RELEASE.ubuntu.$UBUNTU.main/ ./" | sudo tee -a /etc/apt/sources.list.d/99fd.io.list
+ apt-get update
+ apt-get install -y vpp vpp-dpdk-dkms vpp-lib vpp-dbg vpp-plugins vpp-dev
+ sleep 1
+
+ # Install VES
+ cd /opt/VES/bldjobs/
+ make clean
+ make
+ sleep 1
+
+ # Run instantiation script
+ cd /opt
+ mv vfirewall.sh /etc/init.d
+ update-rc.d vfirewall.sh defaults
+ ./v_firewall_init.sh
+
+ vfw_private_0_port:
type: OS::Neutron::Port
properties:
network: { get_resource: unprotected_private_network }
- fixed_ips: [{"subnet": { get_resource: unprotected_private_subnet }, "ip_address": { get_param: vpg_private_ip_0 }}]
+ fixed_ips: [{"subnet": { get_resource: unprotected_private_subnet }, "ip_address": { get_param: vfw_private_ip_0 }}]
- vpg_private_1_port:
+ vfw_private_1_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: protected_private_network }
+ fixed_ips: [{"subnet": { get_resource: protected_private_subnet }, "ip_address": { get_param: vfw_private_ip_1 }}]
+
+ vfw_private_2_port:
type: OS::Neutron::Port
properties:
- network: { get_param: onap_private_net_id }
- fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: vpg_private_ip_1 }}]
+ network: { get_param: ecomp_private_net_id }
+ fixed_ips: [{"subnet": { get_param: ecomp_private_subnet_id }, "ip_address": { get_param: vfw_private_ip_2 }}]
vpg_0:
type: OS::Nova::Server
@@ -315,49 +287,75 @@ resources:
__repo_url_blob__ : { get_param: repo_url_blob }
__repo_url_artifacts__ : { get_param: repo_url_artifacts }
__demo_artifacts_version__ : { get_param: demo_artifacts_version }
- __install_script_version__ : { get_param: install_script_version }
- __vpg_private_ip_0__ : { get_param: vpg_private_ip_0 }
- __vpg_private_ip_1__ : { get_param: vpg_private_ip_1 }
- __unprotected_private_net_cidr__ : { get_param: unprotected_private_net_cidr }
- __onap_private_net_cidr__ : { get_param: onap_private_net_cidr }
- __cloud_env__ : { get_param: cloud_env }
template: |
#!/bin/bash
-
- # Create configuration files
+
+ FW_IPADDR=__fw_ipaddr__
+ PROTECTED_NET_CIDR=__protected_net_cidr__
+ SINK_IPADDR=__sink_ipaddr__
+ REPO_URL_BLOB=__repo_url_blob__
+ REPO_URL_ARTIFACTS=__repo_url_artifacts__
+ DEMO_ARTIFACTS_VERSION=__demo_artifacts_version__
+
+ # Download required dependencies
+ add-apt-repository -y ppa:openjdk-r/ppa
+ apt-get update
+ apt-get install -y make wget openjdk-8-jdk gcc libcurl4-openssl-dev python-pip bridge-utils apt-transport-https ca-certificates
+ apt-get install -y maven
+ pip install jsonschema
+
+ # Download vFirewall demo code for packet generator
mkdir /opt/config
- echo "__fw_ipaddr__" > /opt/config/fw_ipaddr.txt
- echo "__protected_net_cidr__" > /opt/config/protected_net_cidr.txt
- echo "__sink_ipaddr__" > /opt/config/sink_ipaddr.txt
- echo "__repo_url_blob__" > /opt/config/repo_url_blob.txt
- echo "__repo_url_artifacts__" > /opt/config/repo_url_artifacts.txt
- echo "__demo_artifacts_version__" > /opt/config/demo_artifacts_version.txt
- echo "__install_script_version__" > /opt/config/install_script_version.txt
- echo "__vpg_private_ip_0__" > /opt/config/vpg_private_ip_0.txt
- echo "__vpg_private_ip_1__" > /opt/config/vpg_private_ip_1.txt
- echo "__unprotected_private_net_cidr__" > /opt/config/unprotected_private_net_cidr.txt
- echo "__onap_private_net_cidr__" > /opt/config/onap_private_net_cidr.txt
- echo "__cloud_env__" > /opt/config/cloud_env.txt
-
- # Download and run install script
- curl -k __repo_url_blob__/org.onap.demo/vnfs/vfw/__install_script_version__/v_packetgen_install.sh -o /opt/v_packetgen_install.sh
+ mkdir /opt/honeycomb
cd /opt
- chmod +x v_packetgen_install.sh
- ./v_packetgen_install.sh
+ wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vfw/$DEMO_ARTIFACTS_VERSION/v_packetgen_init.sh
+ wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vfw/$DEMO_ARTIFACTS_VERSION/vpacketgen.sh
+ wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vfw/$DEMO_ARTIFACTS_VERSION/run_traffic_fw_demo.sh
- # Virtual Sink instantiation
- vsn_private_0_port:
+ mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:get -DremoteRepositories=$REPO_URL_ARTIFACTS -Dartifact=org.openecomp.demo.vnf:sample-distribution:$DEMO_ARTIFACTS_VERSION:tar.gz:hc -Dtransitive=false -Ddest=.
+ mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:get -DremoteRepositories=$REPO_URL_ARTIFACTS -Dartifact=org.openecomp.demo.vnf.vfw:vfw_pg_streams:$DEMO_ARTIFACTS_VERSION:tar.gz:demo -Dtransitive=false -Ddest=.
+
+
+ tar -zxvf sample-distribution-$DEMO_ARTIFACTS_VERSION-hc.tar.gz
+ tar -zxvf vfw_pg_streams-$DEMO_ARTIFACTS_VERSION-demo.tar.gz
+ mv vfw_pg_streams-$DEMO_ARTIFACTS_VERSION pg_streams
+ mv sample-distribution-$DEMO_ARTIFACTS_VERSION honeycomb
+ sed -i 's/"restconf-binding-address": "127.0.0.1",/"restconf-binding-address": "0.0.0.0",/g' honeycomb/sample-distribution-$DEMO_ARTIFACTS_VERSION/config/honeycomb.json
+ rm *.tar.gz
+ chmod +x v_packetgen_init.sh
+ chmod +x vpacketgen.sh
+ echo $FW_IPADDR > config/fw_ipaddr.txt
+ echo $PROTECTED_NET_CIDR > config/protected_net_cidr.txt
+ echo $SINK_IPADDR > config/sink_ipaddr.txt
+ echo $DEMO_ARTIFACTS_VERSION > config/artifacts_version.txt
+
+ # Install VPP
+ export UBUNTU="trusty"
+ export RELEASE=".stable.1609"
+ rm /etc/apt/sources.list.d/99fd.io.list
+ echo "deb [trusted=yes] https://nexus.fd.io/content/repositories/fd.io$RELEASE.ubuntu.$UBUNTU.main/ ./" | sudo tee -a /etc/apt/sources.list.d/99fd.io.list
+ apt-get update
+ apt-get install -y vpp vpp-dpdk-dkms vpp-lib vpp-dbg vpp-plugins vpp-dev
+ sleep 1
+
+ # Run instantiation script
+ cd /opt
+ mv vpacketgen.sh /etc/init.d
+ update-rc.d vpacketgen.sh defaults
+ ./v_packetgen_init.sh
+
+ vpg_private_0_port:
type: OS::Neutron::Port
properties:
- network: { get_resource: protected_private_network }
- fixed_ips: [{"subnet": { get_resource: protected_private_subnet }, "ip_address": { get_param: vsn_private_ip_0 }}]
+ network: { get_resource: unprotected_private_network }
+ fixed_ips: [{"subnet": { get_resource: unprotected_private_subnet }, "ip_address": { get_param: vpg_private_ip_0 }}]
- vsn_private_1_port:
+ vpg_private_1_port:
type: OS::Neutron::Port
properties:
- network: { get_param: onap_private_net_id }
- fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: vsn_private_ip_1 }}]
+ network: { get_param: ecomp_private_net_id }
+ fixed_ips: [{"subnet": { get_param: ecomp_private_subnet_id }, "ip_address": { get_param: vpg_private_ip_1 }}]
vsn_0:
type: OS::Nova::Server
@@ -379,29 +377,47 @@ resources:
__unprotected_net__: { get_param: unprotected_private_net_cidr }
__repo_url_blob__ : { get_param: repo_url_blob }
__repo_url_artifacts__ : { get_param: repo_url_artifacts }
- __install_script_version__ : { get_param: install_script_version }
- __vsn_private_ip_0__ : { get_param: vsn_private_ip_0 }
- __vsn_private_ip_1__ : { get_param: vsn_private_ip_1 }
- __protected_private_net_cidr__ : { get_param: protected_private_net_cidr }
- __onap_private_net_cidr__ : { get_param: onap_private_net_cidr }
- __cloud_env__ : { get_param: cloud_env }
+ __demo_artifacts_version__ : { get_param: demo_artifacts_version }
template: |
#!/bin/bash
-
- # Create configuration files
+
+ PROTECTED_NET_GW=__protected_net_gw__
+ UNPROTECTED_NET=__unprotected_net__
+ UNPROTECTED_NET=$(echo $UNPROTECTED_NET | cut -d'/' -f1)
+ REPO_URL_BLOB=__repo_url_blob__
+ REPO_URL_ARTIFACTS=__repo_url_artifacts__
+ DEMO_ARTIFACTS_VERSION=__demo_artifacts_version__
+
+ # Download required dependencies
+ add-apt-repository -y ppa:openjdk-r/ppa
+ apt-get update
+ apt-get install -y make wget openjdk-8-jdk apt-transport-https ca-certificates darkstat
+
+ # Configure and run darkstat
+ sed -i "s/START_DARKSTAT=.*/START_DARKSTAT=yes/g" /etc/darkstat/init.cfg
+ sed -i "s/INTERFACE=.*/INTERFACE=\"-i eth1\"/g" /etc/darkstat/init.cfg
+ /etc/init.d/darkstat start
+
mkdir /opt/config
- echo "__protected_net_gw__" > /opt/config/protected_net_gw.txt
- echo "__unprotected_net__" > /opt/config/unprotected_net.txt
- echo "__repo_url_blob__" > /opt/config/repo_url_blob.txt
- echo "__install_script_version__" > /opt/config/install_script_version.txt
- echo "__vsn_private_ip_0__" > /opt/config/vsn_private_ip_0.txt
- echo "__vsn_private_ip_1__" > /opt/config/vsn_private_ip_1.txt
- echo "__protected_private_net_cidr__" > /opt/config/protected_private_net_cidr.txt
- echo "__onap_private_net_cidr__" > /opt/config/onap_private_net_cidr.txt
- echo "__cloud_env__" > /opt/config/cloud_env.txt
-
- # Download and run install script
- curl -k __repo_url_blob__/org.onap.demo/vnfs/vfw/__install_script_version__/v_sink_install.sh -o /opt/v_sink_install.sh
cd /opt
- chmod +x v_sink_install.sh
- ./v_sink_install.sh \ No newline at end of file
+ wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vfw/$DEMO_ARTIFACTS_VERSION/v_sink_init.sh
+ wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vfw/$DEMO_ARTIFACTS_VERSION/vsink.sh
+ chmod +x v_sink_init.sh
+ chmod +x vsink.sh
+ echo $PROTECTED_NET_GW > config/protected_net_gw.txt
+ echo $UNPROTECTED_NET > config/unprotected_net.txt
+ mv vsink.sh /etc/init.d
+ update-rc.d vsink.sh defaults
+ ./v_sink_init.sh
+
+ vsn_private_0_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: protected_private_network }
+ fixed_ips: [{"subnet": { get_resource: protected_private_subnet }, "ip_address": { get_param: vsn_private_ip_0 }}]
+
+ vsn_private_1_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: ecomp_private_net_id }
+ fixed_ips: [{"subnet": { get_param: ecomp_private_subnet_id }, "ip_address": { get_param: vsn_private_ip_1 }}]
diff --git a/robot/assets/asdc/base_vlb/base_vlb.yaml b/robot/assets/asdc/base_vlb/base_vlb.yaml
index fa4fea0a..c292f295 100644
--- a/robot/assets/asdc/base_vlb/base_vlb.yaml
+++ b/robot/assets/asdc/base_vlb/base_vlb.yaml
@@ -1,36 +1,6 @@
-##########################################################################
-#
-#==================LICENSE_START==========================================
-#
-#
-# Copyright © 2017 AT&T Intellectual Property. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#==================LICENSE_END============================================
-#
-# ECOMP is a trademark and service mark of AT&T Intellectual Property.
-#
-##########################################################################
-
heat_template_version: 2013-05-23
-description: Heat template to deploy vLoadBalancer/vDNS demo app for ONAP
-
-##############
-# #
-# PARAMETERS #
-# #
-##############
+description: Heat template to deploy vLoadBalancer/vDNS demo app for OpenECOMP
parameters:
vlb_image_name:
@@ -49,29 +19,21 @@ parameters:
type: string
label: vLoadBalancer private network name or ID
description: Private network that connects vLoadBalancer with vDNSs
- pktgen_private_net_id:
- type: string
- label: vPacketGen private network name or ID
- description: Private network that connects vLoadBalancer with vPacketGen
- onap_private_net_id:
+ ecomp_private_net_id:
type: string
label: ECOMP management network name or ID
- description: Private network that connects ONAP component and the VNF
- onap_private_subnet_id:
+ description: Private network that connects ECOMP component and the VNF
+ ecomp_private_subnet_id:
type: string
label: ECOMP management sub-network name or ID
- description: Private sub-network that connects ONAP component and the VNF
+ description: Private sub-network that connects ECOMP component and the VNF
vlb_private_net_cidr:
type: string
label: vLoadBalancer private network CIDR
description: The CIDR of the vLoadBalancer private network
- pktgen_private_net_cidr:
+ ecomp_private_net_cidr:
type: string
- label: vPacketGen private network CIDR
- description: The CIDR of the vPacketGen private network
- onap_private_net_cidr:
- type: string
- label: ONAP private network CIDR
+ label: ECOMP private network CIDR
description: The CIDR of the protected private network
vlb_private_ip_0:
type: string
@@ -79,40 +41,16 @@ parameters:
description: Private IP address that is assigned to the vLoadBalancer to communicate with the vDNSs
vlb_private_ip_1:
type: string
- label: vLoadBalancer private IP address towards the ONAP management network
- description: Private IP address that is assigned to the vLoadBalancer to communicate with ONAP components
- vlb_private_ip_2:
- type: string
- label: vLoadBalancer private IP address towards the vPacketGen network
- description: Private IP address that is assigned to the vLoadBalancer to communicate with vPacketGen
+ label: vLoadBalancer private IP address towards the ECOMP management network
+ description: Private IP address that is assigned to the vLoadBalancer to communicate with ECOMP components
vdns_private_ip_0:
type: string
label: vDNS private IP address towards the private network
description: Private IP address that is assigned to the vDNS to communicate with the vLoadBalancer
vdns_private_ip_1:
type: string
- label: vDNS private IP address towards the ONAP management network
- description: Private IP address that is assigned to the vDNS to communicate with ONAP components
- vpg_private_ip_0:
- type: string
- label: vPacketGen private IP address towards the vPacketGen private network
- description: Private IP address that is assigned to the vPacketGen to communicate with the vLoadBalancer
- vpg_private_ip_1:
- type: string
- label: vPacketGen private IP address towards the ONAP management network
- description: Private IP address that is assigned to the vPacketGen to communicate with ONAP components
- vip:
- type: string
- label: Virtual Private IP of the vLoadBalancer
- description: Virtual Private IP that is assigned to the vLoadBalancer's VPP layer
- gre_ipaddr:
- type: string
- label: IP Address of the GRE tunnel
- description: IP address assigned to the GRE tunnel on the vLoadBalancer
- pg_int:
- type: string
- label: IP Address of the output vPacketGen interface
- description: IP address assigned to the output interface of the vPacketGen's VPP layer
+ label: vDNS private IP address towards the ECOMP management network
+ description: Private IP address that is assigned to the vDNS to communicate with ECOMP components
vlb_name_0:
type: string
label: vLoadBalancer name
@@ -121,18 +59,14 @@ parameters:
type: string
label: vDNS name
description: Name of the vDNS
- vpg_name_0:
- type: string
- label: vPKTGEN name
- description: Name of the vPKTGEN
vnf_id:
type: string
label: VNF ID
- description: The VNF ID is provided by ONAP
+ description: The VNF ID is provided by ECOMP
vf_module_id:
type: string
label: vFirewall module ID
- description: The vLoadBalancer Module ID is provided by ONAP
+ description: The vLoadBalancer Module ID is provided by ECOMP
dcae_collector_ip:
type: string
label: DCAE collector IP address
@@ -161,20 +95,6 @@ parameters:
type: string
label: Artifacts version used in demo vnfs
description: Artifacts (jar, tar.gz) version used in demo vnfs
- install_script_version:
- type: string
- label: Installation script version number
- description: Version number of the scripts that install the vFW demo app
- cloud_env:
- type: string
- label: Cloud environment
- description: Cloud environment (e.g., openstack, rackspace)
-
-#############
-# #
-# RESOURCES #
-# #
-#############
resources:
@@ -182,7 +102,7 @@ resources:
type: OS::Heat::RandomString
properties:
length: 4
-
+
my_keypair:
type: OS::Nova::KeyPair
properties:
@@ -207,36 +127,6 @@ resources:
network_id: { get_resource: vlb_private_network }
cidr: { get_param: vlb_private_net_cidr }
- pktgen_private_network:
- type: OS::Neutron::Net
- properties:
- name: { get_param: pktgen_private_net_id }
-
- pktgen_private_subnet:
- type: OS::Neutron::Subnet
- properties:
- name: { get_param: pktgen_private_net_id }
- network_id: { get_resource: pktgen_private_network }
- cidr: { get_param: pktgen_private_net_cidr }
-
- vlb_private_0_port:
- type: OS::Neutron::Port
- properties:
- network: { get_resource: vlb_private_network }
- fixed_ips: [{"subnet": { get_resource: vlb_private_subnet }, "ip_address": { get_param: vlb_private_ip_0 }}]
-
- vlb_private_1_port:
- type: OS::Neutron::Port
- properties:
- network: { get_param: onap_private_net_id }
- fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: vlb_private_ip_1 }}]
-
- vlb_private_2_port:
- type: OS::Neutron::Port
- properties:
- network: { get_resource: pktgen_private_network }
- fixed_ips: [{"subnet": { get_resource: pktgen_private_subnet }, "ip_address": { get_param: vlb_private_ip_2 }}]
-
vlb_0:
type: OS::Nova::Server
properties:
@@ -248,7 +138,6 @@ resources:
- network: { get_param: public_net_id }
- port: { get_resource: vlb_private_0_port }
- port: { get_resource: vlb_private_1_port }
- - port: { get_resource: vlb_private_2_port }
metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }}
user_data_format: RAW
user_data:
@@ -256,62 +145,100 @@ resources:
params:
__dcae_collector_ip__: { get_param: dcae_collector_ip }
__dcae_collector_port__: { get_param: dcae_collector_port }
- __ip_to_dns_net__: { get_param: vlb_private_ip_0 }
- __ip_to_pktgen_net__: { get_param: vlb_private_ip_2 }
- __vip__: { get_param: vip }
- __gre_ipaddr__: { get_param: gre_ipaddr }
- __pktgen_ipaddr__: { get_param: vpg_private_ip_0 }
- __oam_private_ipaddr__: { get_param: vlb_private_ip_1 }
- __repo_url_blob__: { get_param: repo_url_blob }
- __repo_url_artifacts__: { get_param: repo_url_artifacts }
- __demo_artifacts_version__: { get_param: demo_artifacts_version }
- __install_script_version__: { get_param: install_script_version }
- __vlb_private_net_cidr__: { get_param: vlb_private_net_cidr }
- __onap_private_net_cidr__: { get_param: onap_private_net_cidr }
- __pktgen_private_net_cidr__: { get_param: pktgen_private_net_cidr }
- __pktgen_mac__: { get_attr: [vpg_private_0_port, mac_address] }
- __cloud_env__: { get_param: cloud_env }
+ __local_private_ipaddr__: { get_param: vlb_private_ip_0 }
+ __repo_url_blob__ : { get_param: repo_url_blob }
+ __repo_url_artifacts__ : { get_param: repo_url_artifacts }
+ __demo_artifacts_version__ : { get_param: demo_artifacts_version }
template: |
#!/bin/bash
- # Create configuration files
+ DCAE_COLLECTOR_IP=__dcae_collector_ip__
+ DCAE_COLLECTOR_PORT=__dcae_collector_port__
+ LOCAL_PRIVATE_IPADDR=__local_private_ipaddr__
+ REPO_URL_BLOB=__repo_url_blob__
+ REPO_URL_ARTIFACTS=__repo_url_artifacts__
+ DEMO_ARTIFACTS_VERSION=__demo_artifacts_version__
+
+ # Download required dependencies
+ add-apt-repository -y ppa:openjdk-r/ppa
+ apt-get update
+ apt-get install -y make gcc wget openjdk-8-jdk bridge-utils libcurl4-openssl-dev apt-transport-https ca-certificates
+ apt-get install -y maven
+ sleep 1
+
+ # Download vLB demo code for load balancer
mkdir /opt/config
- echo "__dcae_collector_ip__" > /opt/config/dcae_collector_ip.txt
- echo "__dcae_collector_port__" > /opt/config/dcae_collector_port.txt
- echo "__ip_to_dns_net__" > /opt/config/ip_to_dns_net.txt
- echo "__ip_to_pktgen_net__" > /opt/config/ip_to_pktgen_net.txt
- echo "__vip__" > /opt/config/vip.txt
- echo "__gre_ipaddr__" > /opt/config/gre_ipaddr.txt
- echo "__pktgen_ipaddr__" > /opt/config/pktgen_ipaddr.txt
- echo "__oam_private_ipaddr__" > /opt/config/oam_private_ipaddr.txt
- echo "__repo_url_blob__" > /opt/config/repo_url_blob.txt
- echo "__repo_url_artifacts__" > /opt/config/repo_url_artifacts.txt
- echo "__demo_artifacts_version__" > /opt/config/demo_artifacts_version.txt
- echo "__install_script_version__" > /opt/config/install_script_version.txt
- echo "__vlb_private_net_cidr__" > /opt/config/vlb_private_net_cidr.txt
- echo "__pktgen_private_net_cidr__" > /opt/config/pktgen_private_net_cidr.txt
- echo "__onap_private_net_cidr__" > /opt/config/onap_private_net_cidr.txt
- echo "__pktgen_mac__" > /opt/config/pktgen_mac.txt
- echo "__cloud_env__" > /opt/config/cloud_env.txt
-
- # Download and run install script
- curl -k __repo_url_blob__/org.onap.demo/vnfs/vlb/__install_script_version__/v_lb_install.sh -o /opt/v_lb_install.sh
+ mkdir /opt/FDserver
cd /opt
- chmod +x v_lb_install.sh
- ./v_lb_install.sh
+ wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/v_lb_init.sh
+ wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/vlb.sh
+ wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/dnsmembership.sh
+ wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/add_dns.sh
+ wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/remove_dns.sh
- vdns_private_0_port:
+ mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:get -DremoteRepositories=$REPO_URL_ARTIFACTS -Dartifact=org.openecomp.demo.vnf.vlb:dns-manager:$DEMO_ARTIFACTS_VERSION:jar -Dtransitive=false -Ddest=.
+ mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:get -DremoteRepositories=$REPO_URL_ARTIFACTS -Dartifact=org.openecomp.demo.vnf.ves:ves:$DEMO_ARTIFACTS_VERSION:tar.gz:demo -Dtransitive=false -Ddest=.
+ mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:get -DremoteRepositories=$REPO_URL_ARTIFACTS -Dartifact=org.openecomp.demo.vnf.ves:ves_vlb_reporting:$DEMO_ARTIFACTS_VERSION:tar.gz:demo -Dtransitive=false -Ddest=.
+
+ tar -zxvf ves-$DEMO_ARTIFACTS_VERSION-demo.tar.gz
+ mv ves-$DEMO_ARTIFACTS_VERSION VES
+ tar -zxvf ves_vlb_reporting-$DEMO_ARTIFACTS_VERSION-demo.tar.gz
+ mv ves_vlb_reporting-$DEMO_ARTIFACTS_VERSION VESreporting_vLB
+
+ mv VESreporting_vLB /opt/VES/code/evel_training/VESreporting
+ mv dns-manager-$DEMO_ARTIFACTS_VERSION.jar /opt/FDserver/dns-manager-$DEMO_ARTIFACTS_VERSION.jar
+ mv dnsmembership.sh /opt/FDserver/dnsmembership.sh
+ mv add_dns.sh /opt/FDserver/add_dns.sh
+ mv remove_dns.sh /opt/FDserver/remove_dns.sh
+ rm *.tar.gz
+
+ chmod +x v_lb_init.sh
+ chmod +x vlb.sh
+ chmod +x /opt/VES/code/evel_training/VESreporting/go-client.sh
+ chmod +x /opt/FDserver/dnsmembership.sh
+ chmod +x /opt/FDserver/add_dns.sh
+ chmod +x /opt/FDserver/remove_dns.sh
+
+ echo $DCAE_COLLECTOR_IP > config/dcae_collector_ip.txt
+ echo $DCAE_COLLECTOR_PORT > config/dcae_collector_port.txt
+ echo $LOCAL_PRIVATE_IPADDR > config/local_private_ipaddr.txt
+ LOCAL_PUBLIC_IPADDR=$(ifconfig eth0 | grep "inet addr" | tr -s ' ' | cut -d' ' -f3 | cut -d':' -f2)
+ echo $LOCAL_PUBLIC_IPADDR > config/local_public_ipaddr.txt
+ echo $DEMO_ARTIFACTS_VERSION > config/artifacts_version.txt
+
+ # Install VPP
+ export UBUNTU="trusty"
+ export RELEASE=".stable.1609"
+ rm /etc/apt/sources.list.d/99fd.io.list
+ echo "deb [trusted=yes] https://nexus.fd.io/content/repositories/fd.io$RELEASE.ubuntu.$UBUNTU.main/ ./" | sudo tee -a /etc/apt/sources.list.d/99fd.io.list
+ apt-get update
+ apt-get install -y vpp vpp-dpdk-dkms vpp-lib vpp-dbg vpp-plugins vpp-dev
+ sleep 1
+
+ # Install VES
+ cd /opt/VES/bldjobs/
+ make clean
+ make
+ sleep 1
+
+ # Run instantiation script
+ cd /opt
+ mv vlb.sh /etc/init.d
+ update-rc.d vlb.sh defaults
+ ./v_lb_init.sh
+
+ vlb_private_0_port:
type: OS::Neutron::Port
properties:
network: { get_resource: vlb_private_network }
- fixed_ips: [{"subnet": { get_resource: vlb_private_subnet }, "ip_address": { get_param: vdns_private_ip_0 }}]
+ fixed_ips: [{"subnet": { get_resource: vlb_private_subnet }, "ip_address": { get_param: vlb_private_ip_0 }}]
- vdns_private_1_port:
+ vlb_private_1_port:
type: OS::Neutron::Port
properties:
- network: { get_param: onap_private_net_id }
- fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: vdns_private_ip_1 }}]
+ network: { get_param: ecomp_private_net_id }
+ fixed_ips: [{"subnet": { get_param: ecomp_private_subnet_id }, "ip_address": { get_param: vlb_private_ip_1 }}]
vdns_0:
type: OS::Nova::Server
@@ -329,100 +256,84 @@ resources:
user_data:
str_replace:
params:
- __lb_oam_int__: { get_param: vlb_private_ip_1 }
+ __lb_oam_int__ : { get_param: vlb_private_ip_1 }
__lb_private_ipaddr__: { get_param: vlb_private_ip_0 }
__local_private_ipaddr__: { get_param: vdns_private_ip_0 }
- __oam_private_ipaddr__: { get_param: vdns_private_ip_1 }
- __repo_url_blob__: { get_param: repo_url_blob }
- __repo_url_artifacts__: { get_param: repo_url_artifacts }
- __demo_artifacts_version__: { get_param: demo_artifacts_version }
- __install_script_version__: { get_param: install_script_version }
- __vlb_private_net_cidr__: { get_param: vlb_private_net_cidr }
- __onap_private_net_cidr__: { get_param: onap_private_net_cidr }
- __cloud_env__: { get_param: cloud_env }
+ __repo_url_blob__ : { get_param: repo_url_blob }
+ __repo_url_artifacts__ : { get_param: repo_url_artifacts }
+ __demo_artifacts_version__ : { get_param: demo_artifacts_version }
template: |
#!/bin/bash
- # Create configuration files
+ LB_OAM_INT=__lb_oam_int__
+ LB_PRIVATE_IPADDR=__lb_private_ipaddr__
+ LOCAL_PRIVATE_IPADDR=__local_private_ipaddr__
+ REPO_URL_BLOB=__repo_url_blob__
+ REPO_URL_ARTIFACTS=__repo_url_artifacts__
+ DEMO_ARTIFACTS_VERSION=__demo_artifacts_version__
+
+ # Download required dependencies
+ add-apt-repository -y ppa:openjdk-r/ppa
+ apt-get update
+ apt-get install -y wget openjdk-8-jdk bind9 bind9utils bind9-doc apt-transport-https ca-certificates
+ apt-get install -y maven
+ sleep 1
+
+ # Download vDNS demo code for DNS Server
mkdir /opt/config
- echo "__lb_oam_int__" > /opt/config/lb_oam_int.txt
- echo "__lb_private_ipaddr__" > /opt/config/lb_private_ipaddr.txt
- echo "__local_private_ipaddr__" > /opt/config/local_private_ipaddr.txt
- echo "__oam_private_ipaddr__" > /opt/config/oam_private_ipaddr.txt
- echo "__repo_url_blob__" > /opt/config/repo_url_blob.txt
- echo "__repo_url_artifacts__" > /opt/config/repo_url_artifacts.txt
- echo "__demo_artifacts_version__" > /opt/config/demo_artifacts_version.txt
- echo "__install_script_version__" > /opt/config/install_script_version.txt
- echo "__vlb_private_net_cidr__" > /opt/config/vlb_private_net_cidr.txt
- echo "__onap_private_net_cidr__" > /opt/config/onap_private_net_cidr.txt
- echo "__cloud_env__" > /opt/config/cloud_env.txt
-
- # Download and run install script
- curl -k __repo_url_blob__/org.onap.demo/vnfs/vlb/__install_script_version__/v_dns_install.sh -o /opt/v_dns_install.sh
+ mkdir /opt/FDclient
cd /opt
- chmod +x v_dns_install.sh
- ./v_dns_install.sh
+
+ wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/v_dns_init.sh
+ wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/vdns.sh
+ wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/dnsclient.sh
+ wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/set_gre_tunnel.sh
+
+ mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:get -DremoteRepositories=$REPO_URL_ARTIFACTS -Dartifact=org.openecomp.demo.vnf.vlb:dns-client:$DEMO_ARTIFACTS_VERSION:jar -Dtransitive=false -Ddest=.
+ mv dns-client-$DEMO_ARTIFACTS_VERSION.jar /opt/FDclient/
+ mv dnsclient.sh /opt/FDclient/
+ mv set_gre_tunnel.sh /opt/FDclient/
- vpg_private_0_port:
- type: OS::Neutron::Port
- properties:
- network: { get_resource: pktgen_private_network }
- fixed_ips: [{"subnet": { get_resource: pktgen_private_subnet }, "ip_address": { get_param: vpg_private_ip_0 }}]
+ chmod +x v_dns_init.sh
+ chmod +x vdns.sh
+ chmod +x /opt/FDclient/dnsclient.sh
+ chmod +x /opt/FDclient/set_gre_tunnel.sh
+
+ echo $LB_OAM_INT > config/lb_oam_int.txt
+ echo $LB_PRIVATE_IPADDR > config/lb_private_ipaddr.txt
+ echo $LOCAL_PRIVATE_IPADDR > config/local_private_ipaddr.txt
+ echo $DEMO_ARTIFACTS_VERSION > config/artifacts_version.txt
- vpg_private_1_port:
+ # Download Bind config files
+ cd /opt/config
+ wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/db_dnsdemo_openecomp_org
+ wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/named.conf.options
+ wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/named.conf.local
+
+ # Configure Bind
+ modprobe ip_gre
+ mkdir /etc/bind/zones
+ sed -i "s/OPTIONS=.*/OPTIONS=\"-4 -u bind\"/g" /etc/default/bind9
+ mv db_dnsdemo_openecomp_org /etc/bind/zones/db.dnsdemo.openecomp.org
+ mv named.conf.options /etc/bind/
+ mv named.conf.local /etc/bind/
+ sleep 1
+
+ # Run instantiation script
+ cd /opt
+ mv vdns.sh /etc/init.d
+ update-rc.d vdns.sh defaults
+ ./v_dns_init.sh
+
+ vdns_private_0_port:
type: OS::Neutron::Port
properties:
- network: { get_param: onap_private_net_id }
- fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: vpg_private_ip_1 }}]
+ network: { get_resource: vlb_private_network }
+ fixed_ips: [{"subnet": { get_resource: vlb_private_subnet }, "ip_address": { get_param: vdns_private_ip_0 }}]
- vpg_0:
- type: OS::Nova::Server
+ vdns_private_1_port:
+ type: OS::Neutron::Port
properties:
- image: { get_param: vlb_image_name }
- flavor: { get_param: vlb_flavor_name }
- name: { get_param: vpg_name_0 }
- key_name: { get_resource: my_keypair }
- networks:
- - network: { get_param: public_net_id }
- - port: { get_resource: vpg_private_0_port }
- - port: { get_resource: vpg_private_1_port }
- user_data_format: RAW
- user_data:
- str_replace:
- params:
- __repo_url_blob__: { get_param: repo_url_blob }
- __repo_url_artifacts__: { get_param: repo_url_artifacts }
- __local_private_ipaddr__: { get_param: vpg_private_ip_0 }
- __oam_private_ipaddr__: { get_param: vpg_private_ip_1 }
- __onap_private_net_cidr__: { get_param: onap_private_net_cidr }
- __pktgen_private_net_cidr__: { get_param: pktgen_private_net_cidr }
- __vlb_ipaddr__: { get_param: vlb_private_ip_2 }
- __demo_artifacts_version__: { get_param: demo_artifacts_version }
- __install_script_version__: { get_param: install_script_version }
- __pg_int__: { get_param: pg_int }
- __vlb_mac__: { get_attr: [vlb_private_2_port, mac_address] }
- __cloud_env__: { get_param: cloud_env }
- template: |
- #!/bin/bash
-
- # Create configuration files
- mkdir /opt/config
- echo "__oam_private_ipaddr__" > /opt/config/oam_private_ipaddr.txt
- echo "__onap_private_net_cidr__" > /opt/config/onap_private_net_cidr.txt
- echo "__local_private_ipaddr__" > /opt/config/local_private_ipaddr.txt
- echo "__pktgen_private_net_cidr__" > /opt/config/pktgen_private_net_cidr.txt
- echo "__vlb_ipaddr__" > /opt/config/vlb_ipaddr.txt
- echo "__repo_url_blob__" > /opt/config/repo_url_blob.txt
- echo "__repo_url_artifacts__" > /opt/config/repo_url_artifacts.txt
- echo "__demo_artifacts_version__" > /opt/config/demo_artifacts_version.txt
- echo "__install_script_version__" > /opt/config/install_script_version.txt
- echo "__pg_int__" > /opt/config/pg_int.txt
- echo "__vlb_mac__" > /opt/config/vlb_mac.txt
- echo "__cloud_env__" > /opt/config/cloud_env.txt
-
- # Download and run install script
- curl -k __repo_url_blob__/org.onap.demo/vnfs/vlb/__install_script_version__/v_packetgen_install.sh -o /opt/v_packetgen_install.sh
- cd /opt
- chmod +x v_packetgen_install.sh
- ./v_packetgen_install.sh \ No newline at end of file
+ network: { get_param: ecomp_private_net_id }
+ fixed_ips: [{"subnet": { get_param: ecomp_private_subnet_id }, "ip_address": { get_param: vdns_private_ip_1 }}]
diff --git a/robot/assets/asdc/base_vlb/dnsscaling.yaml b/robot/assets/asdc/base_vlb/dnsscaling.yaml
index 20718276..003deb91 100644
--- a/robot/assets/asdc/base_vlb/dnsscaling.yaml
+++ b/robot/assets/asdc/base_vlb/dnsscaling.yaml
@@ -1,36 +1,6 @@
-##########################################################################
-#
-#==================LICENSE_START==========================================
-#
-#
-# Copyright © 2017 AT&T Intellectual Property. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#==================LICENSE_END============================================
-#
-# ECOMP is a trademark and service mark of AT&T Intellectual Property.
-#
-##########################################################################
-
heat_template_version: 2013-05-23
-description: Heat template to deploy a vDNS for ONAP (scaling-up scenario)
-
-##############
-# #
-# PARAMETERS #
-# #
-##############
+description: Heat template to deploy a vDNS for OpenECOMP (scaling-up scenario)
parameters:
vlb_image_name:
@@ -49,38 +19,30 @@ parameters:
type: string
label: vLoadBalancer private network name or ID
description: Private network that connects vLoadBalancer with vDNSs
- onap_private_net_id:
- type: string
- label: ONAP management network name or ID
- description: Private network that connects ONAP component and the VNF
- onap_private_subnet_id:
+ ecomp_private_net_id:
type: string
- label: ONAP management sub-network name or ID
- description: Private sub-network that connects ONAP component and the VNF
- vlb_private_net_cidr:
+ label: ECOMP management network name or ID
+ description: Private network that connects ECOMP component and the VNF
+ ecomp_private_subnet_id:
type: string
- label: vLoadBalancer private network CIDR
- description: The CIDR of the vLoadBalancer private network
- onap_private_net_cidr:
- type: string
- label: ONAP private network CIDR
- description: The CIDR of the protected private network
+ label: ECOMP management sub-network name or ID
+ description: Private sub-network that connects ECOMP component and the VNF
vlb_private_ip_0:
type: string
label: vLoadBalancer private IP address towards the private network
description: Private IP address that is assigned to the vLoadBalancer to communicate with the vDNSs
vlb_private_ip_1:
type: string
- label: vLoadBalancer private IP address towards the ONAP management network
- description: Private IP address that is assigned to the vLoadBalancer to communicate with ONAP components
+ label: vLoadBalancer private IP address towards the ECOMP management network
+ description: Private IP address that is assigned to the vLoadBalancer to communicate with ECOMP components
vdns_private_ip_0:
type: string
label: vDNS private IP address towards the private network
description: Private IP address that is assigned to the vDNS to communicate with the vLoadBalancer
vdns_private_ip_1:
type: string
- label: vDNS private IP address towards the ONAP management network
- description: Private IP address that is assigned to the vDNS to communicate with ONAP components
+ label: vDNS private IP address towards the ECOMP management network
+ description: Private IP address that is assigned to the vDNS to communicate with ECOMP components
vdns_name_0:
type: string
label: vDNS name
@@ -88,11 +50,11 @@ parameters:
vnf_id:
type: string
label: VNF ID
- description: The VNF ID is provided by ONAP
+ description: The VNF ID is provided by ECOMP
vf_module_id:
type: string
label: vFirewall module ID
- description: The vLoadBalancer Module ID is provided by ONAP
+ description: The vLoadBalancer Module ID is provided by ECOMP
key_name:
type: string
label: Key pair name
@@ -109,24 +71,10 @@ parameters:
type: string
label: Repository URL
description: URL of the repository that hosts the demo packages
- install_script_version:
- type: string
- label: Installation script version number
- description: Version number of the scripts that install the vFW demo app
demo_artifacts_version:
type: string
label: Artifacts version used in demo vnfs
description: Artifacts (jar, tar.gz) version used in demo vnfs
- cloud_env:
- type: string
- label: Cloud environment
- description: Cloud environment (e.g., openstack, rackspace)
-
-#############
-# #
-# RESOURCES #
-# #
-#############
resources:
@@ -147,18 +95,6 @@ resources:
public_key: { get_param: pub_key }
save_private_key: false
- vdns_private_0_port:
- type: OS::Neutron::Port
- properties:
- network: { get_param: vlb_private_net_id }
- fixed_ips: [{"subnet": { get_param: vlb_private_net_id }, "ip_address": { get_param: vdns_private_ip_0 }}]
-
- vdns_private_1_port:
- type: OS::Neutron::Port
- properties:
- network: { get_param: onap_private_net_id }
- fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: vdns_private_ip_1 }}]
-
vdns_0:
type: OS::Nova::Server
properties:
@@ -175,36 +111,84 @@ resources:
user_data:
str_replace:
params:
- __lb_oam_int__: { get_param: vlb_private_ip_1 }
+ __lb_oam_int__ : { get_param: vlb_private_ip_1 }
__lb_private_ipaddr__: { get_param: vlb_private_ip_0 }
__local_private_ipaddr__: { get_param: vdns_private_ip_0 }
- __oam_private_ipaddr__: { get_param: vdns_private_ip_1 }
- __repo_url_blob__: { get_param: repo_url_blob }
- __repo_url_artifacts__: { get_param: repo_url_artifacts }
- __demo_artifacts_version__: { get_param: demo_artifacts_version }
- __install_script_version__: { get_param: install_script_version }
- __vlb_private_net_cidr__: { get_param: vlb_private_net_cidr }
- __onap_private_net_cidr__: { get_param: onap_private_net_cidr }
- __cloud_env__: { get_param: cloud_env }
+ __repo_url_blob__ : { get_param: repo_url_blob }
+ __repo_url_artifacts__ : { get_param: repo_url_artifacts }
+ __demo_artifacts_version__ : { get_param: demo_artifacts_version }
template: |
#!/bin/bash
- # Create configuration files
+ LB_OAM_INT=__lb_oam_int__
+ LB_PRIVATE_IPADDR=__lb_private_ipaddr__
+ LOCAL_PRIVATE_IPADDR=__local_private_ipaddr__
+ REPO_URL_BLOB=__repo_url_blob__
+ REPO_URL_ARTIFACTS=__repo_url_artifacts__
+ DEMO_ARTIFACTS_VERSION=__demo_artifacts_version__
+
+ # Download required dependencies
+ add-apt-repository -y ppa:openjdk-r/ppa
+ apt-get update
+ apt-get install -y wget openjdk-8-jdk bind9 bind9utils bind9-doc apt-transport-https ca-certificates
+ apt-get install -y maven
+ sleep 1
+
+ # Download vDNS demo code for DNS Server
mkdir /opt/config
- echo "__lb_oam_int__" > /opt/config/lb_oam_int.txt
- echo "__lb_private_ipaddr__" > /opt/config/lb_private_ipaddr.txt
- echo "__local_private_ipaddr__" > /opt/config/local_private_ipaddr.txt
- echo "__oam_private_ipaddr__" > /opt/config/oam_private_ipaddr.txt
- echo "__repo_url_blob__" > /opt/config/repo_url_blob.txt
- echo "__repo_url_artifacts__" > /opt/config/repo_url_artifacts.txt
- echo "__demo_artifacts_version__" > /opt/config/demo_artifacts_version.txt
- echo "__install_script_version__" > /opt/config/install_script_version.txt
- echo "__vlb_private_net_cidr__" > /opt/config/vlb_private_net_cidr.txt
- echo "__onap_private_net_cidr__" > /opt/config/onap_private_net_cidr.txt
- echo "__cloud_env__" > /opt/config/cloud_env.txt
-
- # Download and run install script
- curl -k __repo_url_blob__/org.onap.demo/vnfs/vlb/__install_script_version__/v_dns_install.sh -o /opt/v_dns_install.sh
+ mkdir /opt/FDclient
cd /opt
- chmod +x v_dns_install.sh
- ./v_dns_install.sh \ No newline at end of file
+
+ wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/v_dns_init.sh
+ wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/vdns.sh
+ wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/dnsclient.sh
+ wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/set_gre_tunnel.sh
+
+ mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:get -DremoteRepositories=$REPO_URL_ARTIFACTS -Dartifact=org.openecomp.demo.vnf.vlb:dns-client:$DEMO_ARTIFACTS_VERSION:jar -Dtransitive=false -Ddest=.
+
+ mv dns-client-$DEMO_ARTIFACTS_VERSION.jar /opt/FDclient/
+ mv dnsclient.sh /opt/FDclient/
+ mv set_gre_tunnel.sh /opt/FDclient/
+
+ chmod +x v_dns_init.sh
+ chmod +x vdns.sh
+ chmod +x /opt/FDclient/dnsclient.sh
+ chmod +x /opt/FDclient/set_gre_tunnel.sh
+
+ echo $LB_OAM_INT > config/lb_oam_int.txt
+ echo $LB_PRIVATE_IPADDR > config/lb_private_ipaddr.txt
+ echo $LOCAL_PRIVATE_IPADDR > config/local_private_ipaddr.txt
+ echo $DEMO_ARTIFACTS_VERSION > config/artifacts_version.txt
+
+ # Download Bind config files
+ cd /opt/config
+ wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/db_dnsdemo_openecomp_org
+ wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/named.conf.options
+ wget $REPO_URL_BLOB/org.openecomp.demo/vnfs/vlb/$DEMO_ARTIFACTS_VERSION/named.conf.local
+
+ # Configure Bind
+ modprobe ip_gre
+ mkdir /etc/bind/zones
+ sed -i "s/OPTIONS=.*/OPTIONS=\"-4 -u bind\"/g" /etc/default/bind9
+ mv db_dnsdemo_openecomp_org /etc/bind/zones/db.dnsdemo.openecomp.org
+ mv named.conf.options /etc/bind/
+ mv named.conf.local /etc/bind/
+ sleep 1
+
+ # Run instantiation script
+ cd /opt
+ mv vdns.sh /etc/init.d
+ update-rc.d vdns.sh defaults
+ ./v_dns_init.sh
+
+ vdns_private_0_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: vlb_private_net_id }
+ fixed_ips: [{"subnet": { get_param: vlb_private_net_id }, "ip_address": { get_param: vdns_private_ip_0 }}]
+
+ vdns_private_1_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: ecomp_private_net_id }
+ fixed_ips: [{"subnet": { get_param: ecomp_private_subnet_id }, "ip_address": { get_param: vdns_private_ip_1 }}]
diff --git a/robot/assets/service_mappings.py b/robot/assets/service_mappings.py
index 563cfe16..c1a5079b 100644
--- a/robot/assets/service_mappings.py
+++ b/robot/assets/service_mappings.py
@@ -5,26 +5,30 @@ GLOBAL_SERVICE_FOLDER_MAPPING = {"vFW" : ['base_vfw'], \
"vLB" : ['base_vlb'], \
"vVG" : ['base_vvg'], \
"vIMS" : ['base_clearwater'], \
- "vCPE" : ['base_vcpe_infra', 'base_vcpe_vbng', 'base_vcpe_vbrgemu', 'base_vcpe_vgmux', 'base_vcpe_vgw'], \
+ "vCPE" : ['base_vcpe_infra', 'base_vcpe_vbng', 'base_vcpe_vbrgemu', 'base_vcpe_vgmux', 'base_vcpe_vgw'],
}
'''
This metadata identifes the preloads that need to be done for a VNF as there may be more than one (vLB)
-"template" maps to the key value in the preload_paramenters.py - GLOBAL_PRELOAD_PARAMETERS[<testcase>][<template>] -
- GLOBAL_PRELOAD_PARAMETERS['Demo'][dnsscaling_preload.template']
-It no longer refers to a template file as all have been collapsed into preload.template
+"template" maps to the parameters in the preload_paramenters.py
+ - GLOBAL_PRELOAD_PARAMETERS[<testcase>][<template>] -
+ i.e. GLOBAL_PRELOAD_PARAMETERS['Demo'][dnsscaling_preload.template']
'''
-GLOBAL_SERVICE_TEMPLATE_MAPPING = {"vFW" : [{"isBase" : "true", "template" : "vfw_preload.template", "name_pattern": "base_vfw"}], \
- "vLB" : [{"isBase" : "true", "template" : "vlb_preload.template", "name_pattern": "base_vlb"},
- {"isBase" : "false", "template" : "dnsscaling_preload.template", "name_pattern": "dnsscaling", "prefix" : "vDNS_"}],
- "vVG" : [{"isBase" : "true", "template" : "vvg_preload.template", "name_pattern": "base_vvg"}], \
- "vIMS" : [{"isBase" : "true", "template" : "vims_preload.template", "name_pattern": "base_clearwater"}], \
- }
+GLOBAL_SERVICE_TEMPLATE_MAPPING = {
+ "vFW" : [{"isBase" : "true", "template" : "vfw_preload.template", "name_pattern": "base_vfw"}],
+ "vLB" : [{"isBase" : "true", "template" : "vlb_preload.template", "name_pattern": "base_vlb"},
+ {"isBase" : "false", "template" : "dnsscaling_preload.template", "name_pattern": "dnsscaling", "prefix" : "vDNS_"}],
+ "vVG" : [{"isBase" : "true", "template" : "vvg_preload.template", "name_pattern": "base_vvg"}],
+ "vIMS" : [{"isBase" : "true", "template" : "vims_preload.template", "name_pattern": "base_clearwater"}],
+ "vCPE" : [{"isBase" : "true", "template" : "vcpe_preload.template", "name_pattern": "base_clearwater"}],
+}
'''
Used by the Heatbridge Validate Query to A&AI to locate the vserver name
'''
GLOBAL_VALIDATE_NAME_MAPPING = {"vFW" : 'vfw_name_0',
"vLB" : 'vlb_name_0',
- "vVG" : ''
+ "vVG" : '',
+ "vIMS" : '',
+ "vCPE" : '',
}
diff --git a/robot/assets/templates/aai/add_demo_customer.template b/robot/assets/templates/aai/add_demo_customer.template
index e56577c5..a52d65bd 100644
--- a/robot/assets/templates/aai/add_demo_customer.template
+++ b/robot/assets/templates/aai/add_demo_customer.template
@@ -41,6 +41,44 @@
}
]
}
+ }, {
+ "service-type" : "${service3}",
+ "relationship-list" : {
+ "relationship" : [{
+ "related-to" : "tenant",
+ "relationship-data" : [{
+ "relationship-key" : "cloud-region.cloud-owner",
+ "relationship-value" : "${cloud_owner}"
+ }, {
+ "relationship-key" : "cloud-region.cloud-region-id",
+ "relationship-value" : "${cloud_region_id}"
+ }, {
+ "relationship-key" : "tenant.tenant-id",
+ "relationship-value" : "${tenant_id}"
+ }
+ ]
+ }
+ ]
+ }
+ }, {
+ "service-type" : "${service4}",
+ "relationship-list" : {
+ "relationship" : [{
+ "related-to" : "tenant",
+ "relationship-data" : [{
+ "relationship-key" : "cloud-region.cloud-owner",
+ "relationship-value" : "${cloud_owner}"
+ }, {
+ "relationship-key" : "cloud-region.cloud-region-id",
+ "relationship-value" : "${cloud_region_id}"
+ }, {
+ "relationship-key" : "tenant.tenant-id",
+ "relationship-value" : "${tenant_id}"
+ }
+ ]
+ }
+ ]
+ }
}
]
}
diff --git a/robot/resources/demo_preload.robot b/robot/resources/demo_preload.robot
index cb41c573..ac15288d 100644
--- a/robot/resources/demo_preload.robot
+++ b/robot/resources/demo_preload.robot
@@ -41,6 +41,8 @@ Load Models
Set Test Variable ${CUSTOMER_NAME} ${customer_name}
${status} ${value}= Run Keyword And Ignore Error Distribute Model vFW demoVFW
${status} ${value}= Run Keyword And Ignore Error Distribute Model vLB demoVLB
+ ${status} ${value}= Run Keyword And Ignore Error Distribute Model vCPE demoVCPE
+ ${status} ${value}= Run Keyword And Ignore Error Distribute Model vIMS demoVIMS
Distribute Model
[Arguments] ${service} ${modelName}
@@ -51,13 +53,15 @@ Create Customer For VNF Demo
[Arguments] ${customer_name} ${customer_id} ${customer_type} ${clouder_owner} ${cloud_region_id} ${tenant_id}
${data_template}= OperatingSystem.Get File ${ADD_DEMO_CUSTOMER_BODY}
${arguments}= Create Dictionary subscriber_name=${customer_name} global_customer_id=${customer_id} subscriber_type=${customer_type} cloud_owner=${clouder_owner} cloud_region_id=${cloud_region_id} tenant_id=${tenant_id}
- Set To Dictionary ${arguments} service1=vFW service2=vLB
+ Set To Dictionary ${arguments} service1=vFW service2=vLB service3=vCPE service4=vIMS
${data}= Fill JSON Template ${data_template} ${arguments}
${put_resp}= Run A&AI Put Request ${INDEX PATH}${ROOT_CUSTOMER_PATH}${customer_id} ${data}
${status_string}= Convert To String ${put_resp.status_code}
Should Match Regexp ${status_string} ^(201|412)$
Create Service If Not Exists vFW
Create Service If Not Exists vLB
+ Create Service If Not Exists vCPE
+ Create Service If Not Exists vIMS
Preload User Model
[Documentation] Preload the demo data for the passed VNF with the passed module name
diff --git a/robot/testsuites/update_onap_page.robot b/robot/testsuites/update_onap_page.robot
index d4eb6162..2f8ca167 100644
--- a/robot/testsuites/update_onap_page.robot
+++ b/robot/testsuites/update_onap_page.robot
@@ -8,7 +8,7 @@ Resource ../resources/openstack/keystone_interface.robot
Resource ../resources/openstack/nova_interface.robot
-Test Timeout 1 minutes
+Test Timeout 5 minutes
*** Variables ***
${URLS_HTML_TEMPLATE} robot/assets/templates/web/index.html.template
@@ -70,12 +70,20 @@ Get Public Ip
${servers} Get Dictionary Values ${server_map}
:for ${server} in @{servers}
\ ${status} ${public_ip} Run Keyword And Ignore Error Search Addresses ${server} ${oam_ip}
- \ Return From Keyword If '${status}' == 'PASS' ${public_ip}
+ \ Return From Keyword If '${status}'=='PASS' ${public_ip}
Fail ${oam_ip} Server Not Found
Search Addresses
[Arguments] ${server} ${oam_ip}
${addresses} Get From Dictionary ${server} addresses
+ ${status} ${public_ip}= Run Keyword And Ignore Error Find Rackspace ${addresses} ${oam_ip}
+ Return From Keyword If '${status}'=='PASS' ${public_ip}
+ ${status} ${public_ip}= Run Keyword And Ignore Error Find Openstack ${addresses} ${oam_ip}
+ Return From Keyword If '${status}'=='PASS' ${public_ip}
+ Fail ${oam_ip} Server Not Found
+
+Find Rackspace
+ [Arguments] ${addresses} ${oam_ip}
${public_ips} Get From Dictionary ${addresses} public
${public_ip}= Get V4 IP ${public_ips}
${oam_ips} Get From Dictionary ${addresses} ${GLOBAL_INJECTED_NETWORK}
@@ -83,10 +91,28 @@ Search Addresses
Return From Keyword If '${this_oam_ip}' == '${oam_ip}' ${public_ip}
Fail ${oam_ip} Server Not Found
+Find Openstack
+ [Arguments] ${addresses} ${oam_ip}
+ ${ips} Get From Dictionary ${addresses} ${GLOBAL_INJECTED_NETWORK}
+ ${public_ip}= Get V4 IP Openstack ${ips} floating
+ ##${oam_ips} Get From Dictionary ${addresses} ${GLOBAL_INJECTED_NETWORK}
+ ${this_oam_ip}= Get V4 IP Openstack ${ips} fixed
+ Return From Keyword If '${this_oam_ip}'=='${oam_ip}' ${public_ip}
+ Fail ${oam_ip} Server Not Found
+
Get V4 IP
[Arguments] ${ipmaps}
:for ${ipmap} in @{ipmaps}
\ ${ip} Get From Dictionary ${ipmap} addr
\ ${version} Get From Dictionary ${ipmap} version
\ Return from Keyword if '${version}' == '4' ${ip}
- Fail No Version 4 IP \ No newline at end of file
+ Fail No Version 4 IP
+
+Get V4 IP Openstack
+ [Arguments] ${ipmaps} ${testtype}
+ :for ${ipmap} in @{ipmaps}
+ \ ${type} Get From Dictionary ${ipmap} OS-EXT-IPS:type
+ \ ${ip} Get From Dictionary ${ipmap} addr
+ \ ${version} Get From Dictionary ${ipmap} version
+ \ Return from Keyword if '${version}'=='4' and '${type}'=='${testtype}' ${ip}
+ Fail No Version 4 IP \ No newline at end of file