From ccff30b6e325f359879595998e83bbfe6624c851 Mon Sep 17 00:00:00 2001 From: DR695H Date: Fri, 17 Feb 2017 18:44:24 -0500 Subject: Initial checkin of EopenECOMP testsuite Change-Id: I64a2b6d8cf66169829866b73b3d26a4ff59b0a42 Signed-off-by: DR695H --- robot/assets/asdc/.gitignore | 1 + robot/assets/asdc/base_vfw/MANIFEST.json | 17 + robot/assets/asdc/base_vfw/base_vfw.env | 4 + robot/assets/asdc/base_vfw/base_vfw.yaml | 423 +++++++++++++++++++++ robot/assets/asdc/base_vlb/MANIFEST.json | 28 ++ robot/assets/asdc/base_vlb/base_vlb.env | 4 + robot/assets/asdc/base_vlb/base_vlb.yaml | 330 ++++++++++++++++ robot/assets/asdc/base_vlb/dnsscaling.env | 4 + robot/assets/asdc/base_vlb/dnsscaling.yaml | 182 +++++++++ robot/assets/asdc/base_vvg/MANIFEST.json | 17 + robot/assets/asdc/base_vvg/base_vvg.env | 3 + robot/assets/asdc/base_vvg/base_vvg.yaml | 22 ++ robot/assets/dcae/dcae_healthcheck.json | 5 + robot/assets/keys/ecompdemo.pvt | 30 ++ robot/assets/keys/robot_ssh_private_key.ppk | 26 ++ robot/assets/keys/robot_ssh_private_key.pvt | 27 ++ robot/assets/keys/robot_ssh_public_key.pub | 9 + robot/assets/keys/robot_ssh_public_key.txt | 1 + robot/assets/service_mappings.py | 29 ++ .../templates/aai/add_cloud_region_body.template | 15 + robot/assets/templates/aai/add_customer.template | 25 ++ .../assets/templates/aai/add_service_body.template | 6 + .../assets/templates/aai/add_tenant_body.template | 17 + robot/assets/templates/aai/named_query.template | 17 + .../templates/aai/service_subscription.template | 19 + .../templates/aai/vlb_closed_loop_hack.template | 7 + robot/assets/templates/appc/vnf_mount.template | 16 + robot/assets/templates/asdc/action.template | 3 + .../templates/asdc/catalog_resource.template | 43 +++ .../assets/templates/asdc/catalog_service.template | 34 ++ .../templates/asdc/entitlement_pool.template | 26 ++ robot/assets/templates/asdc/feature_group.template | 11 + robot/assets/templates/asdc/key_group.template | 11 + .../templates/asdc/license_agreement.template | 12 + robot/assets/templates/asdc/license_model.template | 5 + .../templates/asdc/resource_instance.template | 10 + .../templates/asdc/software_product.template | 16 + robot/assets/templates/asdc/user_remarks.template | 1 + robot/assets/templates/cinder_add_volume.template | 9 + robot/assets/templates/heat_add_stack.template | 12 + robot/assets/templates/keystone_get_auth.template | 8 + .../assets/templates/neutron_add_network.template | 7 + robot/assets/templates/neutron_add_subnet.template | 8 + robot/assets/templates/nova_add_keypair.template | 6 + robot/assets/templates/nova_add_server.template | 17 + .../policy/closedloop_configpolicy.template | 31 ++ .../policy/closedloop_createpolicy.template | 21 + .../policy/closedloop_deletepolicy.template | 5 + .../policy/closedloop_getconfigpolicy.template | 8 + .../templates/policy/closedloop_opspolicy.template | 25 ++ .../policy/closedloop_pushpolicy.template | 5 + .../templates/sdnc/dnsscaling_preload.template | 96 +++++ robot/assets/templates/sdnc/vfw_preload.template | 132 +++++++ robot/assets/templates/sdnc/vlb_preload.template | 108 ++++++ robot/assets/templates/sdnc/vvg_preload.template | 36 ++ robot/assets/templates/template_example.template | 6 + .../assets/templates/vfw_pg_stream_enable.template | 4 + .../templates/vfw_pg_streams_enable.template | 7 + 58 files changed, 2007 insertions(+) create mode 100644 robot/assets/asdc/.gitignore create mode 100644 robot/assets/asdc/base_vfw/MANIFEST.json create mode 100644 robot/assets/asdc/base_vfw/base_vfw.env create mode 100644 robot/assets/asdc/base_vfw/base_vfw.yaml create mode 100644 robot/assets/asdc/base_vlb/MANIFEST.json create mode 100644 robot/assets/asdc/base_vlb/base_vlb.env create mode 100644 robot/assets/asdc/base_vlb/base_vlb.yaml create mode 100644 robot/assets/asdc/base_vlb/dnsscaling.env create mode 100644 robot/assets/asdc/base_vlb/dnsscaling.yaml create mode 100644 robot/assets/asdc/base_vvg/MANIFEST.json create mode 100644 robot/assets/asdc/base_vvg/base_vvg.env create mode 100644 robot/assets/asdc/base_vvg/base_vvg.yaml create mode 100644 robot/assets/dcae/dcae_healthcheck.json create mode 100644 robot/assets/keys/ecompdemo.pvt create mode 100644 robot/assets/keys/robot_ssh_private_key.ppk create mode 100644 robot/assets/keys/robot_ssh_private_key.pvt create mode 100644 robot/assets/keys/robot_ssh_public_key.pub create mode 100644 robot/assets/keys/robot_ssh_public_key.txt create mode 100644 robot/assets/service_mappings.py create mode 100644 robot/assets/templates/aai/add_cloud_region_body.template create mode 100644 robot/assets/templates/aai/add_customer.template create mode 100644 robot/assets/templates/aai/add_service_body.template create mode 100644 robot/assets/templates/aai/add_tenant_body.template create mode 100644 robot/assets/templates/aai/named_query.template create mode 100644 robot/assets/templates/aai/service_subscription.template create mode 100644 robot/assets/templates/aai/vlb_closed_loop_hack.template create mode 100644 robot/assets/templates/appc/vnf_mount.template create mode 100644 robot/assets/templates/asdc/action.template create mode 100644 robot/assets/templates/asdc/catalog_resource.template create mode 100644 robot/assets/templates/asdc/catalog_service.template create mode 100644 robot/assets/templates/asdc/entitlement_pool.template create mode 100644 robot/assets/templates/asdc/feature_group.template create mode 100644 robot/assets/templates/asdc/key_group.template create mode 100644 robot/assets/templates/asdc/license_agreement.template create mode 100644 robot/assets/templates/asdc/license_model.template create mode 100644 robot/assets/templates/asdc/resource_instance.template create mode 100644 robot/assets/templates/asdc/software_product.template create mode 100644 robot/assets/templates/asdc/user_remarks.template create mode 100644 robot/assets/templates/cinder_add_volume.template create mode 100644 robot/assets/templates/heat_add_stack.template create mode 100644 robot/assets/templates/keystone_get_auth.template create mode 100644 robot/assets/templates/neutron_add_network.template create mode 100644 robot/assets/templates/neutron_add_subnet.template create mode 100644 robot/assets/templates/nova_add_keypair.template create mode 100644 robot/assets/templates/nova_add_server.template create mode 100644 robot/assets/templates/policy/closedloop_configpolicy.template create mode 100644 robot/assets/templates/policy/closedloop_createpolicy.template create mode 100644 robot/assets/templates/policy/closedloop_deletepolicy.template create mode 100644 robot/assets/templates/policy/closedloop_getconfigpolicy.template create mode 100644 robot/assets/templates/policy/closedloop_opspolicy.template create mode 100644 robot/assets/templates/policy/closedloop_pushpolicy.template create mode 100644 robot/assets/templates/sdnc/dnsscaling_preload.template create mode 100644 robot/assets/templates/sdnc/vfw_preload.template create mode 100644 robot/assets/templates/sdnc/vlb_preload.template create mode 100644 robot/assets/templates/sdnc/vvg_preload.template create mode 100644 robot/assets/templates/template_example.template create mode 100644 robot/assets/templates/vfw_pg_stream_enable.template create mode 100644 robot/assets/templates/vfw_pg_streams_enable.template (limited to 'robot/assets') diff --git a/robot/assets/asdc/.gitignore b/robot/assets/asdc/.gitignore new file mode 100644 index 00000000..abe251a7 --- /dev/null +++ b/robot/assets/asdc/.gitignore @@ -0,0 +1 @@ +/temp \ No newline at end of file diff --git a/robot/assets/asdc/base_vfw/MANIFEST.json b/robot/assets/asdc/base_vfw/MANIFEST.json new file mode 100644 index 00000000..a4e5cfd0 --- /dev/null +++ b/robot/assets/asdc/base_vfw/MANIFEST.json @@ -0,0 +1,17 @@ +{ + "name": "virtualFireWall", + "description": "robot ete manifest", + "data": [ + { + "file": "base_vfw.yaml", + "type": "HEAT", + "isBase": "true", + "data": [ + { + "file": "base_vfw.env", + "type": "HEAT_ENV" + } + ] + } + ] +} \ No newline at end of file diff --git a/robot/assets/asdc/base_vfw/base_vfw.env b/robot/assets/asdc/base_vfw/base_vfw.env new file mode 100644 index 00000000..f7d2c803 --- /dev/null +++ b/robot/assets/asdc/base_vfw/base_vfw.env @@ -0,0 +1,4 @@ +parameters: + vfw_image_name: Ubuntu 14.04 LTS (Trusty Tahr) (PVHVM) + vfw_flavor_name: 4 GB General Purpose v1 + public_net_id: 00000000-0000-0000-0000-000000000000 \ No newline at end of file diff --git a/robot/assets/asdc/base_vfw/base_vfw.yaml b/robot/assets/asdc/base_vfw/base_vfw.yaml new file mode 100644 index 00000000..076a8340 --- /dev/null +++ b/robot/assets/asdc/base_vfw/base_vfw.yaml @@ -0,0 +1,423 @@ +heat_template_version: 2013-05-23 + +description: Heat template to deploy vFirewall demo app for OpenECOMP + +parameters: + vfw_image_name: + type: string + label: Image name or ID + description: Image to be used for compute instance + vfw_flavor_name: + type: string + label: Flavor + description: Type of instance (flavor) to be used + public_net_id: + type: string + label: Public network name or ID + description: Public network that enables remote connection to VNF + unprotected_private_net_id: + type: string + label: Unprotected private network name or ID + description: Private network that connects vPacketGenerator with vFirewall + protected_private_net_id: + type: string + label: Protected private network name or ID + description: Private network that connects vFirewall with vSink + ecomp_private_net_id: + type: string + label: ECOMP management network name or 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 ECOMP component and the VNF + unprotected_private_net_cidr: + type: string + label: Unprotected private network CIDR + description: The CIDR of the unprotected private network + protected_private_net_cidr: + type: string + label: Protected private network CIDR + description: The CIDR of the protected private network + ecomp_private_net_cidr: + type: string + label: ECOMP private network CIDR + description: The CIDR of the protected private network + vfw_private_ip_0: + type: string + label: vFirewall private IP address towards the unprotected network + description: Private IP address that is assigned to the vFirewall to communicate with the vPacketGenerator + vfw_private_ip_1: + type: string + label: vFirewall private IP address towards the protected network + 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 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 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 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 + description: Name of the vFirewall + vpg_name_0: + type: string + label: vPacketGenerator name + description: Name of the vPacketGenerator + vsn_name_0: + type: string + label: vSink name + description: Name of the vSink + vnf_id: + type: string + label: VNF ID + 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 ECOMP + webserver_ip: + type: string + label: Webserver IP address + description: IP address of the webserver that hosts the source code and binaries + dcae_collector_ip: + type: string + label: DCAE collector IP address + description: IP address of the DCAE collector + dcae_collector_port: + type: string + label: DCAE collector port + description: Port of the DCAE collector + key_name: + type: string + label: Key pair name + description: Public/Private key pair name + pub_key: + type: string + label: Public key + description: Public key to be installed on the compute instance + repo_user: + type: string + label: Repository username + description: Username to access the repository that hosts the demo packages + repo_passwd: + type: string + label: Repository password + description: Password to access the repository that hosts the demo packages + repo_url: + type: string + label: Repository URL + description: URL of the repository that hosts the demo packages + +resources: + my_keypair: + type: OS::Nova::KeyPair + properties: + name: { get_param: key_name } + public_key: { get_param: pub_key } + save_private_key: false + + unprotected_private_network: + type: OS::Neutron::Net + properties: + name: { get_param: unprotected_private_net_id } + + protected_private_network: + type: OS::Neutron::Net + properties: + name: { get_param: protected_private_net_id } + + unprotected_private_subnet: + type: OS::Neutron::Subnet + properties: + network_id: { get_resource: unprotected_private_network } + cidr: { get_param: unprotected_private_net_cidr } + + protected_private_subnet: + type: OS::Neutron::Subnet + properties: + network_id: { get_resource: protected_private_network } + cidr: { get_param: protected_private_net_cidr } + + vfw_0: + type: OS::Nova::Server + properties: + image: { get_param: vfw_image_name } + flavor: { get_param: vfw_flavor_name } + name: { get_param: vfw_name_0 } + key_name: { get_resource: my_keypair } + networks: + - network: { get_param: public_net_id } + - port: { get_resource: vfw_private_0_port } + - port: { get_resource: vfw_private_1_port } + - port: { get_resource: vfw_private_2_port } + metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }} + user_data_format: RAW + user_data: + str_replace: + params: + __webserver__: { get_param: webserver_ip } + __dcae_collector_ip__ : { get_param: dcae_collector_ip } + __dcae_collector_port__ : { get_param: dcae_collector_port } + __repo_url__ : { get_param: repo_url } + __repo_user__ : { get_param: repo_user } + __repo_passwd__ : { get_param: repo_passwd } + template: | + #!/bin/bash + + WEBSERVER_IP=__webserver__ + DCAE_COLLECTOR_IP=__dcae_collector_ip__ + DCAE_COLLECTOR_PORT=__dcae_collector_port__ + REPO_URL=__repo_url__ + REPO_USER=__repo_user__ + REPO_PASSWD=__repo_passwd__ + + # 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 + pip install jsonschema + + # Install Nexus certificate + echo "$WEBSERVER_IP ecomp-nexus" >> /etc/hosts + keytool -printcert -sslserver $WEBSERVER_IP:8443 -rfc > nexus.crt + cp nexus.crt /usr/local/share/ca-certificates/ + update-ca-certificates + + # Download vFirewall code for virtual firewall + mkdir /opt/config + cd /opt + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/v_firewall_init.sh + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/vfirewall.sh + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/VESvFW.tar.gz + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/vpp.tar.gz + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/honeycomb.tar.gz + tar -zxvf VESvFW.tar.gz + tar -zxvf vpp.tar.gz + tar -zxvf honeycomb.tar.gz + 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 + + # Install VPP + cd /opt/vpp/build-root/ + dpkg -i vpp-lib_16.09-3~gc021053_amd64.deb + dpkg -i vpp_16.09-3~gc021053_amd64.deb + dpkg -i vpp-dbg_16.09-3~gc021053_amd64.deb + dpkg -i vpp-dev_16.09-3~gc021053_amd64.deb + dpkg -i vpp-dpdk-dev_16.09-3~gc021053_amd64.deb + dpkg -i vpp-plugins_16.09-3~gc021053_amd64.deb + sleep 1 + + # Install VES + cd /opt/VES1.1/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: vfw_private_ip_0 }}] + + 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: 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 + properties: + image: { get_param: vfw_image_name } + flavor: { get_param: vfw_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 } + metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }} + user_data_format: RAW + user_data: + str_replace: + params: + __webserver__: { get_param: webserver_ip } + __fw_ipaddr__: { get_param: vfw_private_ip_0 } + __protected_net_cidr__: { get_param: protected_private_net_cidr } + __sink_ipaddr__: { get_param: vsn_private_ip_0 } + __repo_url__ : { get_param: repo_url } + __repo_user__ : { get_param: repo_user } + __repo_passwd__ : { get_param: repo_passwd } + template: | + #!/bin/bash + + WEBSERVER_IP=__webserver__ + FW_IPADDR=__fw_ipaddr__ + PROTECTED_NET_CIDR=__protected_net_cidr__ + SINK_IPADDR=__sink_ipaddr__ + REPO_URL=__repo_url__ + REPO_USER=__repo_user__ + REPO_PASSWD=__repo_passwd__ + + # 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 + pip install jsonschema + + # Install Nexus certificate + echo "$WEBSERVER_IP ecomp-nexus" >> /etc/hosts + keytool -printcert -sslserver $WEBSERVER_IP:8443 -rfc > nexus.crt + cp nexus.crt /usr/local/share/ca-certificates/ + update-ca-certificates + + # Download vFirewall demo code for packet generator + mkdir /opt/config + cd /opt + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/v_packetgen_init.sh + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/vpacketgen.sh + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/vpp.tar.gz + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/honeycomb.tar.gz + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/pg_streams.tar.gz + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/run_traffic_fw_demo.sh + tar -zxvf vpp.tar.gz + tar -zxvf honeycomb.tar.gz + tar -zxvf pg_streams.tar.gz + 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 + + # Install VPP + cd /opt/vpp/build-root/ + dpkg -i vpp-lib_16.09-3~gc021053_amd64.deb + dpkg -i vpp_16.09-3~gc021053_amd64.deb + dpkg -i vpp-dbg_16.09-3~gc021053_amd64.deb + dpkg -i vpp-dev_16.09-3~gc021053_amd64.deb + dpkg -i vpp-dpdk-dev_16.09-3~gc021053_amd64.deb + dpkg -i vpp-plugins_16.09-3~gc021053_amd64.deb + 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: unprotected_private_network } + fixed_ips: [{"subnet": { get_resource: unprotected_private_subnet }, "ip_address": { get_param: vpg_private_ip_0 }}] + + vpg_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: vpg_private_ip_1 }}] + + vsn_0: + type: OS::Nova::Server + properties: + image: { get_param: vfw_image_name } + flavor: { get_param: vfw_flavor_name } + name: { get_param: vsn_name_0 } + key_name: { get_resource: my_keypair } + networks: + - network: { get_param: public_net_id } + - port: { get_resource: vsn_private_0_port } + - port: { get_resource: vsn_private_1_port } + metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }} + user_data_format: RAW + user_data: + str_replace: + params: + __webserver__: { get_param: webserver_ip } + __protected_net_gw__: { get_param: vfw_private_ip_1 } + __unprotected_net__: { get_param: unprotected_private_net_cidr } + __repo_url__ : { get_param: repo_url } + __repo_user__ : { get_param: repo_user } + __repo_passwd__ : { get_param: repo_passwd } + template: | + #!/bin/bash + + WEBSERVER_IP=__webserver__ + PROTECTED_NET_GW=__protected_net_gw__ + UNPROTECTED_NET=__unprotected_net__ + UNPROTECTED_NET=$(echo $UNPROTECTED_NET | cut -d'/' -f1) + REPO_URL=__repo_url__ + REPO_USER=__repo_user__ + REPO_PASSWD=__repo_passwd__ + + # 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 + + # Install Nexus certificate + echo "$WEBSERVER_IP ecomp-nexus" >> /etc/hosts + keytool -printcert -sslserver $WEBSERVER_IP:8443 -rfc > nexus.crt + cp nexus.crt /usr/local/share/ca-certificates/ + update-ca-certificates + + mkdir /opt/config + cd /opt + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/v_sink_init.sh + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/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/MANIFEST.json b/robot/assets/asdc/base_vlb/MANIFEST.json new file mode 100644 index 00000000..bb8d70a1 --- /dev/null +++ b/robot/assets/asdc/base_vlb/MANIFEST.json @@ -0,0 +1,28 @@ +{ + "name": "virtualLoadBalancer", + "description": "robot ete manifest", + "data": [ + { + "file": "base_vlb.yaml", + "type": "HEAT", + "isBase": "true", + "data": [ + { + "file": "base_vlb.env", + "type": "HEAT_ENV" + } + ] + }, + { + "file": "dnsscaling.yaml", + "type": "HEAT", + "isBase": "false", + "data": [ + { + "file": "dnsscaling.env", + "type": "HEAT_ENV" + } + ] + } + ] +} \ No newline at end of file diff --git a/robot/assets/asdc/base_vlb/base_vlb.env b/robot/assets/asdc/base_vlb/base_vlb.env new file mode 100644 index 00000000..f18b0011 --- /dev/null +++ b/robot/assets/asdc/base_vlb/base_vlb.env @@ -0,0 +1,4 @@ +parameters: + vlb_image_name: Ubuntu 14.04 LTS (Trusty Tahr) (PVHVM) + vlb_flavor_name: 4 GB General Purpose v1 + public_net_id: 00000000-0000-0000-0000-000000000000 \ No newline at end of file diff --git a/robot/assets/asdc/base_vlb/base_vlb.yaml b/robot/assets/asdc/base_vlb/base_vlb.yaml new file mode 100644 index 00000000..5dfc4322 --- /dev/null +++ b/robot/assets/asdc/base_vlb/base_vlb.yaml @@ -0,0 +1,330 @@ +heat_template_version: 2013-05-23 + +description: Heat template to deploy vLoadBalancer/vDNS demo app for OpenECOMP + +parameters: + vlb_image_name: + type: string + label: Image name or ID + description: Image to be used for compute instance + vlb_flavor_name: + type: string + label: Flavor + description: Type of instance (flavor) to be used + public_net_id: + type: string + label: Public network name or ID + description: Public network that enables remote connection to VNF + vlb_private_net_id: + type: string + label: vLoadBalancer private network name or ID + description: Private network that connects vLoadBalancer with vDNSs + ecomp_private_net_id: + type: string + label: ECOMP management network name or 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 ECOMP component and the VNF + vlb_private_net_cidr: + type: string + label: vLoadBalancer private network CIDR + description: The CIDR of the vLoadBalancer private network + ecomp_private_net_cidr: + type: string + label: ECOMP private network CIDR + description: The CIDR of the protected private network + 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 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 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 + description: Name of the vLoadBalancer + vdns_name_0: + type: string + label: vDNS name + description: Name of the vDNS + vnf_id: + type: string + label: VNF ID + 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 ECOMP + webserver_ip: + type: string + label: Webserver IP address + description: IP address of the webserver that hosts the source code and binaries + dcae_collector_ip: + type: string + label: DCAE collector IP address + description: IP address of the DCAE collector + dcae_collector_port: + type: string + label: DCAE collector port + description: Port of the DCAE collector + key_name: + type: string + label: Key pair name + description: Public/Private key pair name + pub_key: + type: string + label: Public key + description: Public key to be installed on the compute instance + repo_user: + type: string + label: Repository username + description: Username to access the repository that hosts the demo packages + repo_passwd: + type: string + label: Repository password + description: Password to access the repository that hosts the demo packages + repo_url: + type: string + label: Repository URL + description: URL of the repository that hosts the demo packages + +resources: + my_keypair: + type: OS::Nova::KeyPair + properties: + name: { get_param: key_name } + public_key: { get_param: pub_key } + save_private_key: false + + vlb_private_network: + type: OS::Neutron::Net + properties: + name: { get_param: vlb_private_net_id } + + vlb_private_subnet: + type: OS::Neutron::Subnet + properties: + name: { get_param: vlb_private_net_id } + network_id: { get_resource: vlb_private_network } + cidr: { get_param: vlb_private_net_cidr } + + vlb_0: + type: OS::Nova::Server + properties: + image: { get_param: vlb_image_name } + flavor: { get_param: vlb_flavor_name } + name: { get_param: vlb_name_0 } + key_name: { get_resource: my_keypair } + networks: + - network: { get_param: public_net_id } + - port: { get_resource: vlb_private_0_port } + - port: { get_resource: vlb_private_1_port } + metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }} + user_data_format: RAW + user_data: + str_replace: + params: + __webserver__: { get_param: webserver_ip } + __dcae_collector_ip__: { get_param: dcae_collector_ip } + __dcae_collector_port__: { get_param: dcae_collector_port } + __local_private_ipaddr__: { get_param: vlb_private_ip_0 } + __repo_url__ : { get_param: repo_url } + __repo_user__ : { get_param: repo_user } + __repo_passwd__ : { get_param: repo_passwd } + template: | + #!/bin/bash + + WEBSERVER_IP=__webserver__ + DCAE_COLLECTOR_IP=__dcae_collector_ip__ + DCAE_COLLECTOR_PORT=__dcae_collector_port__ + LOCAL_PRIVATE_IPADDR=__local_private_ipaddr__ + REPO_URL=__repo_url__ + REPO_USER=__repo_user__ + REPO_PASSWD=__repo_passwd__ + + # 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 + sleep 1 + + # Install Nexus certificate + echo "$WEBSERVER_IP ecomp-nexus" >> /etc/hosts + keytool -printcert -sslserver $WEBSERVER_IP:8443 -rfc > nexus.crt + cp nexus.crt /usr/local/share/ca-certificates/ + update-ca-certificates + + # Download vLB demo code for load balancer + mkdir /opt/config + cd /opt + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/v_lb_init.sh + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/vlb.sh + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/vpp.tar.gz + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/DNSManager.tar.gz + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/VESvLB.tar.gz + tar -zxvf vpp.tar.gz + tar -zxvf DNSManager.tar.gz + tar -zxvf VESvLB.tar.gz + rm *.tar.gz + chmod +x v_lb_init.sh + chmod +x vlb.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 + + # Install VPP + cd /opt/vpp/build-root/ + dpkg -i vpp-lib_16.09-3~gc021053_amd64.deb + dpkg -i vpp_16.09-3~gc021053_amd64.deb + dpkg -i vpp-dbg_16.09-3~gc021053_amd64.deb + dpkg -i vpp-dev_16.09-3~gc021053_amd64.deb + dpkg -i vpp-dpdk-dev_16.09-3~gc021053_amd64.deb + dpkg -i vpp-plugins_16.09-3~gc021053_amd64.deb + sleep 1 + + # Install Failure Detector + cd /opt/DNSManager/src + javac -d ../bin/ *.java + cd /opt/DNSManager/bin + chmod +x dnsmembership.sh + chmod +x add_dns.sh + chmod +x remove_dns.sh + sleep 1 + + # Install VES + cd /opt/VES1.1/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: vlb_private_ip_0 }}] + + vlb_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: vlb_private_ip_1 }}] + + vdns_0: + type: OS::Nova::Server + properties: + image: { get_param: vlb_image_name } + flavor: { get_param: vlb_flavor_name } + name: { get_param: vdns_name_0 } + key_name: { get_resource: my_keypair } + networks: + - network: { get_param: public_net_id } + - port: { get_resource: vdns_private_0_port } + - port: { get_resource: vdns_private_1_port } + metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }} + user_data_format: RAW + user_data: + str_replace: + params: + __webserver__: { get_param: webserver_ip } + __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 } + __repo_url__ : { get_param: repo_url } + __repo_user__ : { get_param: repo_user } + __repo_passwd__ : { get_param: repo_passwd } + template: | + #!/bin/bash + + WEBSERVER_IP=__webserver__ + LB_OAM_INT=__lb_oam_int__ + LB_PRIVATE_IPADDR=__lb_private_ipaddr__ + LOCAL_PRIVATE_IPADDR=__local_private_ipaddr__ + REPO_URL=__repo_url__ + REPO_USER=__repo_user__ + REPO_PASSWD=__repo_passwd__ + + # 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 + sleep 1 + + # Install Nexus certificate + echo "$WEBSERVER_IP ecomp-nexus" >> /etc/hosts + keytool -printcert -sslserver $WEBSERVER_IP:8443 -rfc > nexus.crt + cp nexus.crt /usr/local/share/ca-certificates/ + update-ca-certificates + + # Download vDNS demo code for DNS Server + mkdir /opt/config + cd /opt + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/v_dns_init.sh + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/vdns.sh + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/DNSClient.tar.gz + tar -zxvf DNSClient.tar.gz + rm *.tar.gz + chmod +x v_dns_init.sh + chmod +x vdns.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 + + # Download Bind config files + cd /opt/config + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/db_dnsdemo_openecomp_org + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/named.conf.options + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/named.conf.local + + # Configure Bind + modprobe ip_gre + mkdir /etc/bind/zones + sed -i "s/OPTIONS=.*/OPTIONS=\"-4 -u bind\"/g" /etc/default/bind9 + cp /opt/config/db_dnsdemo_openecomp_org /etc/bind/zones/db.dnsdemo.openecomp.org + cp /opt/config/named.conf.local /etc/bind/ + sleep 1 + + # Start Failure Detector + cd /opt/DNSClient/src + javac -d ../bin/ *.java + cd /opt/DNSClient/bin + chmod +x dnsclient.sh + chmod +x set_gre_tunnel.sh + 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_resource: vlb_private_network } + fixed_ips: [{"subnet": { get_resource: vlb_private_subnet }, "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/asdc/base_vlb/dnsscaling.env b/robot/assets/asdc/base_vlb/dnsscaling.env new file mode 100644 index 00000000..f18b0011 --- /dev/null +++ b/robot/assets/asdc/base_vlb/dnsscaling.env @@ -0,0 +1,4 @@ +parameters: + vlb_image_name: Ubuntu 14.04 LTS (Trusty Tahr) (PVHVM) + vlb_flavor_name: 4 GB General Purpose v1 + public_net_id: 00000000-0000-0000-0000-000000000000 \ No newline at end of file diff --git a/robot/assets/asdc/base_vlb/dnsscaling.yaml b/robot/assets/asdc/base_vlb/dnsscaling.yaml new file mode 100644 index 00000000..8f177231 --- /dev/null +++ b/robot/assets/asdc/base_vlb/dnsscaling.yaml @@ -0,0 +1,182 @@ +heat_template_version: 2013-05-23 + +description: Heat template to deploy a vDNS for OpenECOMP (scaling-up scenario) + +parameters: + vlb_image_name: + type: string + label: Image name or ID + description: Image to be used for compute instance + vlb_flavor_name: + type: string + label: Flavor + description: Type of instance (flavor) to be used + public_net_id: + type: string + label: Public network name or ID + description: Public network that enables remote connection to VNF + vlb_private_net_id: + type: string + label: vLoadBalancer private network name or ID + description: Private network that connects vLoadBalancer with vDNSs + ecomp_private_net_id: + type: string + label: ECOMP management network name or 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 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 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 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 + description: Name of the vDNS + vnf_id: + type: string + label: VNF ID + 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 ECOMP + webserver_ip: + type: string + label: Webserver IP address + description: IP address of the webserver that hosts the source code and binaries + key_name: + type: string + label: Key pair name + description: Public/Private key pair name + pub_key: + type: string + label: Public key + description: Public key to be installed on the compute instance + repo_user: + type: string + label: Repository username + description: Username to access the repository that hosts the demo packages + repo_passwd: + type: string + label: Repository password + description: Password to access the repository that hosts the demo packages + repo_url: + type: string + label: Repository URL + description: URL of the repository that hosts the demo packages + +resources: + vdns_0: + type: OS::Nova::Server + properties: + image: { get_param: vlb_image_name } + flavor: { get_param: vlb_flavor_name } + name: { get_param: vdns_name_0 } + key_name: { get_param: key_name } + networks: + - network: { get_param: public_net_id } + - port: { get_resource: vdns_private_0_port } + - port: { get_resource: vdns_private_1_port } + metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }} + user_data_format: RAW + user_data: + str_replace: + params: + __webserver__: { get_param: webserver_ip } + __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 } + __repo_url__ : { get_param: repo_url } + __repo_user__ : { get_param: repo_user } + __repo_passwd__ : { get_param: repo_passwd } + template: | + #!/bin/bash + + WEBSERVER_IP=__webserver__ + LB_OAM_INT=__lb_oam_int__ + LB_PRIVATE_IPADDR=__lb_private_ipaddr__ + LOCAL_PRIVATE_IPADDR=__local_private_ipaddr__ + REPO_URL=__repo_url__ + REPO_USER=__repo_user__ + REPO_PASSWD=__repo_passwd__ + + # 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 + sleep 1 + + # Install Nexus certificate + echo "$WEBSERVER_IP ecomp-nexus" >> /etc/hosts + keytool -printcert -sslserver $WEBSERVER_IP:8443 -rfc > nexus.crt + cp nexus.crt /usr/local/share/ca-certificates/ + update-ca-certificates + + # Download vDNS demo code for DNS Server + mkdir /opt/config + cd /opt + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/v_dns_init.sh + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/vdns.sh + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/DNSClient.tar.gz + tar -zxvf DNSClient.tar.gz + rm *.tar.gz + chmod +x v_dns_init.sh + chmod +x vdns.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 + + # Download Bind config files + cd /opt/config + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/db_dnsdemo_openecomp_org + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/named.conf.options + wget --user=$REPO_USER --password=$REPO_PASSWD $REPO_URL/named.conf.local + + # Configure Bind + modprobe ip_gre + mkdir /etc/bind/zones + sed -i "s/OPTIONS=.*/OPTIONS=\"-4 -u bind\"/g" /etc/default/bind9 + cp /opt/config/db_dnsdemo_openecomp_org /etc/bind/zones/db.dnsdemo.openecomp.org + cp /opt/config/named.conf.local /etc/bind/ + sleep 1 + + # Start Failure Detector + cd /opt/DNSClient/src + javac -d ../bin/ *.java + cd /opt/DNSClient/bin + chmod +x dnsclient.sh + chmod +x set_gre_tunnel.sh + 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/asdc/base_vvg/MANIFEST.json b/robot/assets/asdc/base_vvg/MANIFEST.json new file mode 100644 index 00000000..67312f23 --- /dev/null +++ b/robot/assets/asdc/base_vvg/MANIFEST.json @@ -0,0 +1,17 @@ +{ + "name": "volumeGroup.yaml", + "description": "robot ete manifest", + "data": [ + { + "file": "base_vvg.yaml", + "type": "HEAT", + "isBase": "true", + "data": [ + { + "file": "base_vvg.env", + "type": "HEAT_ENV" + } + ] + } + ] +} \ No newline at end of file diff --git a/robot/assets/asdc/base_vvg/base_vvg.env b/robot/assets/asdc/base_vvg/base_vvg.env new file mode 100644 index 00000000..2b4e72b8 --- /dev/null +++ b/robot/assets/asdc/base_vvg/base_vvg.env @@ -0,0 +1,3 @@ +parameters: + volume_size: 100 + nova_instance: 1234456 \ No newline at end of file diff --git a/robot/assets/asdc/base_vvg/base_vvg.yaml b/robot/assets/asdc/base_vvg/base_vvg.yaml new file mode 100644 index 00000000..c20d4e48 --- /dev/null +++ b/robot/assets/asdc/base_vvg/base_vvg.yaml @@ -0,0 +1,22 @@ +heat_template_version: 2013-05-23 +description: create a Nova instance, a Cinder volume and attach the volume to the instance. + +parameters: + nova_instance: + type: string + label: Instance name or ID + description: ID of the vm to use for the disk to be attached too + volume_size: + type: number + label: GB + description: Size of the volume to be created. +resources: + cinder_volume: + type: OS::Cinder::Volume + properties: + size: { get_param: volume_size } + volume_attachment: + type: OS::Cinder::VolumeAttachment + properties: + volume_id: { get_resource: cinder_volume } + instance_uuid: { get_param: nova_instance } \ No newline at end of file diff --git a/robot/assets/dcae/dcae_healthcheck.json b/robot/assets/dcae/dcae_healthcheck.json new file mode 100644 index 00000000..d612b082 --- /dev/null +++ b/robot/assets/dcae/dcae_healthcheck.json @@ -0,0 +1,5 @@ +{ + "path": "/reports/dcae/service-instances", + "start": "-24hour", + "end": "now" +} \ No newline at end of file diff --git a/robot/assets/keys/ecompdemo.pvt b/robot/assets/keys/ecompdemo.pvt new file mode 100644 index 00000000..36d9e9cf --- /dev/null +++ b/robot/assets/keys/ecompdemo.pvt @@ -0,0 +1,30 @@ +-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: DES-EDE3-CBC,E9DC8BE477D6D4AC + +4lYXpDswDU9oNh/OdB/0krK7AVN2OYnU98ZvYUfQIVWgrAty0vp0PDErOAAP7AOE +tz+tQwvg/JVqZlBGCYIkwx5ADJ9YFXMyn/Ztla2jC90dxbjlra+MvuU9nMfjWhjP +PiaOysIDaRIPZqjkjRQcslgsDYgVF4JC+2qRMJ62e5exk0dw4Cn3XeN53pByQ8HT +OnTuszejFNb3/HA5LsPyJl3cZqMBlKOHToUBbF2JBuo+aDq5S+YgzILep/nTQadh +kLfuJThhAwTJsQWVCSOggAwsjV6fP5yi2q9iCmF07kxDgRsByj0nl/7YDoZ69ZoE +LHkZEoZ1JSX0SSOrOUyVcpf8+ofK1aMEoWRvLGYfBD7wDJb4nzi4k1fdJGnoDLms +dr+mL7RB5zoC3xlumSAK2AP8hhIfURtaSC9hpiUB6yIXCmUjx4FIzroa4gBUsrlJ +R6KGp+6b54bf7hwFeCjYENjGq5YJJ24Aur2mR045LCBNP452pFVi5SIfX0PO5ocd +dBvPHQUqtCoUkQMSTtjy6T384BbPeA5s5zazq7WUoNrQD37khR7MojBpww0s3wEh +U+XWlQ5bEjEjac5Q8RIJrB2Bp6/cUQFSlqNDKxK2y1WzvPjM/Fkn2H+hImn+we7n +Cp5fzx6s4roeEc9WvVmb2+V3xV883pkktd1IiWGfleB14ZJ1vcGzdW+lBINgm9h1 +5xvxP5Xtqj8KGGoA3mEo3CbzR1XbkEp7/S4MN1OsXSCy3jZpiP+ctd4fwk5Ltcqz +YEjM5cb2+joNYTd4JW5DTtz7qrMn/sotAOlgw2ozmXLfbbMuOZ9SX76npEr8SKd+ +065bxJ+YvN6MFzwG75nFfXcPWdNVntXaH+zOZfBGBNX84gX4p3ORF1u18brNcd9z +0sv1OiGdO5NFVA/3YixP1P2zZxlGsi972PtHoQ8SHxbEfNMCqkNGrHh+KmaT42k6 +W5lscEhPDtIsiRmhTTrL6L5sFCbLL+8UZktK1/TU27QtCtywi5xfzO9NhJg27R5b +hPvQs43V7KItpdc5LdWrft7hTnmc4jn5F6aE7l9bCaaRgAy1MH6lzyjuaLphFXmP +GdPLD9GhMFiTRJNVCRkYPZwtGKdfG6/z6kRZGIi6XPYzI3FcHOdKTGgvGxlko6Lr +4FG0kOwgi55o1gQnL3wsBVoNZ7PrkHLFSQhu03ggXPrf75oMN0Tsqai+iaf4OvMr +fgk4O5+D/CX94R50V1xUymUrRIAzKG3k+jebFcTzkb7B/e1bPwr8ZRUk31nZrgYp +3qKJT77/Vz+tyL3H+U3YdvzxhG6+onXDkAvO8WAcfsKpEJ3thv8NOqXZeKCY2m1G +wrQ8vfl6MddOvlI5EKbnwesXIznO9Gl+RoCm18I/M8bETTAOMJXb3cp4GiBffXbI +8kbYwVeHGscXizHdkuqjbN1NLg5KPZV10KRchg0g85PWgDr59wY5kMplFNUrkxY2 +1ETYOZsmOa3/Afcq2dgxEw1t1t+ZRR5dh6OdQXKCvsHHugQisnPi5NAb8gkZbRJI +yHNInMegrG2S17n75P0o+GM+XItc74ygnv/KedJFW9uBaOr7sXtB4A== +-----END RSA PRIVATE KEY----- diff --git a/robot/assets/keys/robot_ssh_private_key.ppk b/robot/assets/keys/robot_ssh_private_key.ppk new file mode 100644 index 00000000..0a327c24 --- /dev/null +++ b/robot/assets/keys/robot_ssh_private_key.ppk @@ -0,0 +1,26 @@ +PuTTY-User-Key-File-2: ssh-rsa +Encryption: none +Comment: rsa-key-20161026 +Public-Lines: 6 +AAAAB3NzaC1yc2EAAAABJQAAAQEAqqnA9BAiMLtjOPSYBfhzLu4CiBolWoskDg4K +VwhTJVTTeB6CqrQNcadlGXxOHhCYuNCKkUmIVF4WTOisVOJ75Z1c4OMoZLL85xVP +KSIeH63kgVugwgPYQu55NbbWX+rsbUha3LnElDhNviMM3iTPbD5nnhKixNERAJMT +LKXvZZZGqxW94bREknYPQTT2qrk3YRqwldncopp6Nkgv3AnSJz2gc9tjxnWF0poT +QnQm/3D6hiJICrzKfAV0EaPN0KdtYjPhKrYoy6Qb/tKOVaaqsvwfKBJGrT9LfcA7 +D7M/yj292RT1XN63hI84WC383LsaPJ6eWdDTE6zUP1eGTWCoOw== +Private-Lines: 14 +AAABAGoWftznbzMMs0zrEmSThd7m+qehjNdrP+0PpZAMGAJy//6PgahiFjHkmMqn +N3p5BP1DXQ40oNp/rP9gM8YQPy3eXFRxh8/k4mYiAMaK1HSOsKNwTyx+7jdxpUrn +Rv1arqTMHM5lo7YVKWha+ik5egUEMpKxo3NtNBUdJ5hLeSN4EzbS0xq6dYA0EU33 +kjmkoqtj2qMhwZQmTUCyqvtae6t9I7YTP9DbkG+kyuWSLCrbIFN3SPU7jsLBxI45 +cdUiAKBbd6WjPYauSyhTenZvqjxDV0w/QUPKv3vxpqPvLfdA/gQfvhFLkNMStdb9 +DKB4ni8uiAPtM5AVYlgEpC7Nuw0AAACBANa5Wi9KvsPp5ltbiwrLeoVTPmFwAhJP +w+B+OEoRN4oMqstIBOZiYz1+WV/nA3WR1gOd/TbDL4kzXL9SYl/y8QmFjrc7B4vI +GLhWnDBjl1l/wvYhxMXbfHEN2VqZVICSoEVICphx6SPflFH53kmGrIiBs9GWFv9c +AVGHi1j52rvRAAAAgQDLeCWfKS24gUcSfn/UHlc9EGgyNayeC3eX4K2xV9yMSXub +uQVvxiuBXd6OWW9I/CQyNVoLN3tboAzRl61ds15Ml+V/uLMjxrXJXDWkEiQHsOMX +BhREWZL0T3hlFZsyfVZPPH5BavZzA4PB1/BF+t06N10pnASXB4kcKjQD0JQCSwAA +AIBfQ7PZM1KuL0zpD6imxUgyNNSXdGTfM9XUSY5L8e2xWqjnZT+Cj1bUGVYMxrpC +8bpfGGTyBv/v6N7NxPep1QeyM9E0o0z0ID9ybRpX4ErYSp1sLZBNlBXdAAL9nexo +XbZDpN0zdBE5wnAMjcjHTp9PMSDeWt4/r2aiNde3VFwnWg== +Private-MAC: 50d4bf08bffb34c3aba06d57afb241242ca9e242 diff --git a/robot/assets/keys/robot_ssh_private_key.pvt b/robot/assets/keys/robot_ssh_private_key.pvt new file mode 100644 index 00000000..17c17a3d --- /dev/null +++ b/robot/assets/keys/robot_ssh_private_key.pvt @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEoQIBAAKCAQEAqqnA9BAiMLtjOPSYBfhzLu4CiBolWoskDg4KVwhTJVTTeB6C +qrQNcadlGXxOHhCYuNCKkUmIVF4WTOisVOJ75Z1c4OMoZLL85xVPKSIeH63kgVug +wgPYQu55NbbWX+rsbUha3LnElDhNviMM3iTPbD5nnhKixNERAJMTLKXvZZZGqxW9 +4bREknYPQTT2qrk3YRqwldncopp6Nkgv3AnSJz2gc9tjxnWF0poTQnQm/3D6hiJI +CrzKfAV0EaPN0KdtYjPhKrYoy6Qb/tKOVaaqsvwfKBJGrT9LfcA7D7M/yj292RT1 +XN63hI84WC383LsaPJ6eWdDTE6zUP1eGTWCoOwIBJQKCAQBqFn7c528zDLNM6xJk +k4Xe5vqnoYzXaz/tD6WQDBgCcv/+j4GoYhYx5JjKpzd6eQT9Q10ONKDaf6z/YDPG +ED8t3lxUcYfP5OJmIgDGitR0jrCjcE8sfu43caVK50b9Wq6kzBzOZaO2FSloWvop +OXoFBDKSsaNzbTQVHSeYS3kjeBM20tMaunWANBFN95I5pKKrY9qjIcGUJk1Asqr7 +WnurfSO2Ez/Q25BvpMrlkiwq2yBTd0j1O47CwcSOOXHVIgCgW3eloz2GrksoU3p2 +b6o8Q1dMP0FDyr978aaj7y33QP4EH74RS5DTErXW/QygeJ4vLogD7TOQFWJYBKQu +zbsNAoGBANa5Wi9KvsPp5ltbiwrLeoVTPmFwAhJPw+B+OEoRN4oMqstIBOZiYz1+ +WV/nA3WR1gOd/TbDL4kzXL9SYl/y8QmFjrc7B4vIGLhWnDBjl1l/wvYhxMXbfHEN +2VqZVICSoEVICphx6SPflFH53kmGrIiBs9GWFv9cAVGHi1j52rvRAoGBAMt4JZ8p +LbiBRxJ+f9QeVz0QaDI1rJ4Ld5fgrbFX3IxJe5u5BW/GK4Fd3o5Zb0j8JDI1Wgs3 +e1ugDNGXrV2zXkyX5X+4syPGtclcNaQSJAew4xcGFERZkvRPeGUVmzJ9Vk88fkFq +9nMDg8HX8EX63To3XSmcBJcHiRwqNAPQlAJLAoGAdBEp1F/BD/QN0ISCgmAmjUHA +2rkV4GJ3t54sQ7ZHiORApTuvnyBs/qUpZEWFVE7UjFVmRx1lzZ85DXij4NZYxuBo +0b8K/3MUR/d3BWZD+QbKP9rm532PX7R1fRScYSypqOiryAY41R7oY6molnJPbGHI ++6sTWZmELBHqdUjJQu0CgYEAuvjIoBgAgAgXy84wRmER5RX+4gfPDcVZI8eK2lC8 +0/B/bICBiU5RfcvhRImI20iP9sk9/HgsKq6/q9d8tvfaHN6bih9Ygb2Ec9gxSqji +1qKLfPDUWnvTJbDPf3ujXtQKH0xYV8oS5jqUv/bcyq8sJ6h/H1EY+XyL1LEo4Oku +D/ECgYBfQ7PZM1KuL0zpD6imxUgyNNSXdGTfM9XUSY5L8e2xWqjnZT+Cj1bUGVYM +xrpC8bpfGGTyBv/v6N7NxPep1QeyM9E0o0z0ID9ybRpX4ErYSp1sLZBNlBXdAAL9 +nexoXbZDpN0zdBE5wnAMjcjHTp9PMSDeWt4/r2aiNde3VFwnWg== +-----END RSA PRIVATE KEY----- diff --git a/robot/assets/keys/robot_ssh_public_key.pub b/robot/assets/keys/robot_ssh_public_key.pub new file mode 100644 index 00000000..934c60a8 --- /dev/null +++ b/robot/assets/keys/robot_ssh_public_key.pub @@ -0,0 +1,9 @@ +---- BEGIN SSH2 PUBLIC KEY ---- +Comment: "rsa-key-20161026" +AAAAB3NzaC1yc2EAAAABJQAAAQEAqqnA9BAiMLtjOPSYBfhzLu4CiBolWoskDg4K +VwhTJVTTeB6CqrQNcadlGXxOHhCYuNCKkUmIVF4WTOisVOJ75Z1c4OMoZLL85xVP +KSIeH63kgVugwgPYQu55NbbWX+rsbUha3LnElDhNviMM3iTPbD5nnhKixNERAJMT +LKXvZZZGqxW94bREknYPQTT2qrk3YRqwldncopp6Nkgv3AnSJz2gc9tjxnWF0poT +QnQm/3D6hiJICrzKfAV0EaPN0KdtYjPhKrYoy6Qb/tKOVaaqsvwfKBJGrT9LfcA7 +D7M/yj292RT1XN63hI84WC383LsaPJ6eWdDTE6zUP1eGTWCoOw== +---- END SSH2 PUBLIC KEY ---- diff --git a/robot/assets/keys/robot_ssh_public_key.txt b/robot/assets/keys/robot_ssh_public_key.txt new file mode 100644 index 00000000..43a61cd9 --- /dev/null +++ b/robot/assets/keys/robot_ssh_public_key.txt @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAqqnA9BAiMLtjOPSYBfhzLu4CiBolWoskDg4KVwhTJVTTeB6CqrQNcadlGXxOHhCYuNCKkUmIVF4WTOisVOJ75Z1c4OMoZLL85xVPKSIeH63kgVugwgPYQu55NbbWX+rsbUha3LnElDhNviMM3iTPbD5nnhKixNERAJMTLKXvZZZGqxW94bREknYPQTT2qrk3YRqwldncopp6Nkgv3AnSJz2gc9tjxnWF0poTQnQm/3D6hiJICrzKfAV0EaPN0KdtYjPhKrYoy6Qb/tKOVaaqsvwfKBJGrT9LfcA7D7M/yj292RT1XN63hI84WC383LsaPJ6eWdDTE6zUP1eGTWCoOw== rsa-key-20161026 \ No newline at end of file diff --git a/robot/assets/service_mappings.py b/robot/assets/service_mappings.py new file mode 100644 index 00000000..9e7a2cc0 --- /dev/null +++ b/robot/assets/service_mappings.py @@ -0,0 +1,29 @@ +GLOBAL_SERVICE_FOLDER_MAPPING = {"vFW" : ['base_vfw'], \ + "vLB" : ['base_vlb'], \ + "vVG" : ['base_vvg'], \ + } + +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"}], \ + } + + +## +## The following identifies the stack parameter names for the oam_ecomp network IPS +## In stantiated by the stack. During stack teardown, we need to ensure that +## These ports are deleted due to latency in rackspace to free these ports. +## This is just a workaround to enable respinning a VM as soon as possible +GLOBAL_SERVICE_ECOMP_IP_MAPPING = {"vFW" : ['vpg_private_ip_1', 'vfw_private_ip_2','vsn_private_ip_1'], \ + "vLB" : ['vlb_private_ip_1', 'vdns_private_ip_1'], + "vVG" : [], \ + } + + +## +## 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" : '' + } diff --git a/robot/assets/templates/aai/add_cloud_region_body.template b/robot/assets/templates/aai/add_cloud_region_body.template new file mode 100644 index 00000000..95b2525c --- /dev/null +++ b/robot/assets/templates/aai/add_cloud_region_body.template @@ -0,0 +1,15 @@ +{ + "cloud-owner": "${cloud_owner}", + "cloud-region-id": "${cloud_region_id}", + "cloud-type": "${cloud_type}", + "owner-defined-type": "${owner_defined_type}", + "cloud-region-version": "${cloud_region_version}", + "cloud-zone": "${cloud_zone}", + "tenants": { + "tenant": [{ + "tenant-id": "${tenant_id}", + "tenant-name": "${tenant_name}" + + }] + } +} \ No newline at end of file diff --git a/robot/assets/templates/aai/add_customer.template b/robot/assets/templates/aai/add_customer.template new file mode 100644 index 00000000..d0ae174a --- /dev/null +++ b/robot/assets/templates/aai/add_customer.template @@ -0,0 +1,25 @@ +{ + "global-customer-id": "${global_customer_id}", + "subscriber-name": "${subscriber_name}", + "subscriber-type": "${subscriber_type}", + "service-subscriptions": { + "service-subscription": [{ + "service-type": "${service1}", + "relationship-list": { + "relationship": [{ + "related-to": "tenant", + "relationship-data": [{ + "relationship-key": "cloud-region.cloud-owner", + "relationship-value": "${cloud_owner1}" + }, { + "relationship-key": "cloud-region.cloud-region-id", + "relationship-value": "${cloud_region_id1}" + }, { + "relationship-key": "tenant.tenant-id", + "relationship-value": "${tenant_id1}" + }] + }] + } + }] + } + } \ No newline at end of file diff --git a/robot/assets/templates/aai/add_service_body.template b/robot/assets/templates/aai/add_service_body.template new file mode 100644 index 00000000..ca32fd51 --- /dev/null +++ b/robot/assets/templates/aai/add_service_body.template @@ -0,0 +1,6 @@ +{ + "service-id": "${UUID}", + "service-description": "${service_type}" +} + + diff --git a/robot/assets/templates/aai/add_tenant_body.template b/robot/assets/templates/aai/add_tenant_body.template new file mode 100644 index 00000000..a3cea10a --- /dev/null +++ b/robot/assets/templates/aai/add_tenant_body.template @@ -0,0 +1,17 @@ +{ + "cloud-owner": "${cloud_owner}", + "cloud-region-id": "${cloud_region_id}", + "cloud-type": "${cloud_type}", + "owner-defined-type": "${owner_defined_type}", + "cloud-region-version": "${cloud_region_version}", + "cloud-zone": "${cloud_zone}", + "tenants": { + "tenant": [{ + "tenant-id": "${tenant_id}", + "tenant-name": "${tenant_name}" + + }] + } +} + + diff --git a/robot/assets/templates/aai/named_query.template b/robot/assets/templates/aai/named_query.template new file mode 100644 index 00000000..de3f21f6 --- /dev/null +++ b/robot/assets/templates/aai/named_query.template @@ -0,0 +1,17 @@ +{ + "query-parameters": { + "named-query": { + "named-query-uuid": "f199cb88-5e69-4b1f-93e0-6f257877d066" + } + }, + "instance-filters": { + "instance-filter": [ + { + "vserver": + { + "vserver-name": "${vserver_name}" + } + } + ] + } +} \ No newline at end of file diff --git a/robot/assets/templates/aai/service_subscription.template b/robot/assets/templates/aai/service_subscription.template new file mode 100644 index 00000000..85703581 --- /dev/null +++ b/robot/assets/templates/aai/service_subscription.template @@ -0,0 +1,19 @@ +{ + "service-subscription":[ + { + "service-type":"{$service_type}", + "resource-version":"1473866861", + "service-instances":{ + "service-instance":[ + { + "service-instance-id":"d3f9a631-e280-4a87-846d-9ccd7a265980", + "service-instance-name":"VIV+IST+ezNew+Oct6", + "persona-model-id":"e6f1d393-6432-4820-ab86-7a10ba4b31ac", + "persona-model-version":"1.0", + "resource-version":"1475807447" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/robot/assets/templates/aai/vlb_closed_loop_hack.template b/robot/assets/templates/aai/vlb_closed_loop_hack.template new file mode 100644 index 00000000..27f9c963 --- /dev/null +++ b/robot/assets/templates/aai/vlb_closed_loop_hack.template @@ -0,0 +1,7 @@ +{ + "is-base-vf-module": false, + "persona-model-id": "${persona_model_id}", + "persona-model-version": "1.0", + "vf-module-id": "${vf_module_id}", + "vf-module-name": "${vf_module_id}" +} diff --git a/robot/assets/templates/appc/vnf_mount.template b/robot/assets/templates/appc/vnf_mount.template new file mode 100644 index 00000000..8ad11359 --- /dev/null +++ b/robot/assets/templates/appc/vnf_mount.template @@ -0,0 +1,16 @@ + + ${nodeid} + ${host} + ${port} + ${username} + ${password} + false + + false + 20000 + 0 + 2000 + 1.5 + + 120 + \ No newline at end of file diff --git a/robot/assets/templates/asdc/action.template b/robot/assets/templates/asdc/action.template new file mode 100644 index 00000000..4d417c9f --- /dev/null +++ b/robot/assets/templates/asdc/action.template @@ -0,0 +1,3 @@ +{ + "action": "${action}" +} \ No newline at end of file diff --git a/robot/assets/templates/asdc/catalog_resource.template b/robot/assets/templates/asdc/catalog_resource.template new file mode 100644 index 00000000..fcc17ce2 --- /dev/null +++ b/robot/assets/templates/asdc/catalog_resource.template @@ -0,0 +1,43 @@ +{ + "artifacts": {}, + "toscaArtifacts": {}, + "contactId": "cs0008", + "categories": [ + { + "name": "Generic", + "normalizedName": "generic", + "uniqueId": "resourceNewCategory.generic", + "subcategories": [ + { + "name": "Abstract", + "normalizedName": "abstract", + "uniqueId": "resourceNewCategory.generic.abstract", + "icons": [ + "database" + ] + } + ] + } + ], + "description": "vendor software product", + "icon": "defaulticon", + "componentInstancesProperties": {}, + "componentInstancesAttributes": {}, + "name": "${software_product_name}", + "tags": [ + "${software_product_name}" + ], + "capabilities": {}, + "requirements": {}, + "deploymentArtifacts": {}, + "componentType": "RESOURCE", + "vendorName": "${vendor_name}", + "vendorRelease": "1.0", + "componentInstances": [], + "properties": [], + "attributes": [], + "groups": [], + "resourceType": "VF", + "csarUUID": "${software_product_id}", + "csarVersion": "1.0" +} \ No newline at end of file diff --git a/robot/assets/templates/asdc/catalog_service.template b/robot/assets/templates/asdc/catalog_service.template new file mode 100644 index 00000000..e7ffdea6 --- /dev/null +++ b/robot/assets/templates/asdc/catalog_service.template @@ -0,0 +1,34 @@ +{ + "artifacts": {}, + "toscaArtifacts": {}, + "contactId": "cs0008", + "categories": [ + { + "name": "Network L1-3", + "normalizedName": "network l1-3", + "uniqueId": "serviceNewCategory.network l1-3", + "icons": [ + "network_l_1-3" + ] + } + ], + "description": "catalog service description", + "icon": "network_l_1-3", + "componentInstancesProperties": {}, + "componentInstancesAttributes": {}, + "name": "${service_name}", + "tags": [ + "robot-ete", + "${service_name}" + ], + "capabilities": {}, + "requirements": {}, + "deploymentArtifacts": {}, + "componentType": "SERVICE", + "projectCode": "123456", + "componentInstances": [], + "properties": [], + "attributes": [], + "groups": [], + "serviceApiArtifacts": {} +} \ No newline at end of file diff --git a/robot/assets/templates/asdc/entitlement_pool.template b/robot/assets/templates/asdc/entitlement_pool.template new file mode 100644 index 00000000..bcb04d2f --- /dev/null +++ b/robot/assets/templates/asdc/entitlement_pool.template @@ -0,0 +1,26 @@ +{ + "name": "${entitlement_pool_name}", + "description": "vendor entitlement pool", + "thresholdValue": "99", + "thresholdUnits": "Absolute", + "entitlementMetric": { + "choice": "CPU", + "other": "" + }, + "increments": "robot", + "aggregationFunction": { + "choice": "Peak", + "other": "" + }, + "operationalScope": { + "choices": [ + "Availability_Zone" + ], + "other": "" + }, + "time": { + "choice": "Hour", + "other": "" + }, + "manufacturerReferenceNumber": "robot12345" +} \ No newline at end of file diff --git a/robot/assets/templates/asdc/feature_group.template b/robot/assets/templates/asdc/feature_group.template new file mode 100644 index 00000000..3d87b047 --- /dev/null +++ b/robot/assets/templates/asdc/feature_group.template @@ -0,0 +1,11 @@ +{ + "name": "${feature_group_name}", + "description": "vendor feature group", + "partNumber": "123abc456", + "addedLicenseKeyGroupsIds": [ + "${key_group_id}" + ], + "addedEntitlementPoolsIds": [ + "${entitlement_pool_id}" + ] +} \ No newline at end of file diff --git a/robot/assets/templates/asdc/key_group.template b/robot/assets/templates/asdc/key_group.template new file mode 100644 index 00000000..2081261b --- /dev/null +++ b/robot/assets/templates/asdc/key_group.template @@ -0,0 +1,11 @@ +{ + "name": "${key_group_name}", + "description": "vendor license key group", + "operationalScope": { + "choices": [ + "Tenant" + ], + "other": "" + }, + "type": "Universal" +} \ No newline at end of file diff --git a/robot/assets/templates/asdc/license_agreement.template b/robot/assets/templates/asdc/license_agreement.template new file mode 100644 index 00000000..6324d140 --- /dev/null +++ b/robot/assets/templates/asdc/license_agreement.template @@ -0,0 +1,12 @@ +{ + "name": "${license_agreement_name}", + "description": "vendor license agreement", + "requirementsAndConstrains": "abcdef", + "licenseTerm": { + "choice": "Fixed_Term", + "other": "" + }, + "addedFeatureGroupsIds": [ + "${feature_group_id}" + ] +} \ No newline at end of file diff --git a/robot/assets/templates/asdc/license_model.template b/robot/assets/templates/asdc/license_model.template new file mode 100644 index 00000000..45fc83fc --- /dev/null +++ b/robot/assets/templates/asdc/license_model.template @@ -0,0 +1,5 @@ +{ + "vendorName": "${vendor_name}", + "description": "vendor license model", + "iconRef": "icon" +} \ No newline at end of file diff --git a/robot/assets/templates/asdc/resource_instance.template b/robot/assets/templates/asdc/resource_instance.template new file mode 100644 index 00000000..215f8282 --- /dev/null +++ b/robot/assets/templates/asdc/resource_instance.template @@ -0,0 +1,10 @@ +{ + "uniqueId": "${catalog_resource_id}${milli_timestamp}", + "posX": 406, + "posY": 248, + "name": "${catalog_resource_name}", + "componentVersion": "1.0", + "originType": "VF", + "icon": "defaulticon", + "componentUid": "${catalog_resource_id}" +} \ No newline at end of file diff --git a/robot/assets/templates/asdc/software_product.template b/robot/assets/templates/asdc/software_product.template new file mode 100644 index 00000000..f8a47521 --- /dev/null +++ b/robot/assets/templates/asdc/software_product.template @@ -0,0 +1,16 @@ +{ + "name": "${software_product_name}", + "description": "vendor software product", + "category": "resourceNewCategory.generic", + "subCategory": "resourceNewCategory.generic.abstract", + "licensingVersion": "1.0", + "vendorName": "${vendor_name}", + "vendorId": "${vendor_id}", + "icon": "icon", + "licensingData": { + "licenseAgreement": "${license_agreement_id}", + "featureGroups": [ + "${feature_group_id}" + ] + } +} \ No newline at end of file diff --git a/robot/assets/templates/asdc/user_remarks.template b/robot/assets/templates/asdc/user_remarks.template new file mode 100644 index 00000000..465115e6 --- /dev/null +++ b/robot/assets/templates/asdc/user_remarks.template @@ -0,0 +1 @@ +{"userRemarks":"${user_remarks}"} \ No newline at end of file diff --git a/robot/assets/templates/cinder_add_volume.template b/robot/assets/templates/cinder_add_volume.template new file mode 100644 index 00000000..544f41e3 --- /dev/null +++ b/robot/assets/templates/cinder_add_volume.template @@ -0,0 +1,9 @@ +{ + "volume": { + "display_name": "${name}", + "display_description": "${description}", + "size": ${size}, + "volume_type": "${type}", + "availability_zone": "${availability_zone}" + } +} \ No newline at end of file diff --git a/robot/assets/templates/heat_add_stack.template b/robot/assets/templates/heat_add_stack.template new file mode 100644 index 00000000..c3af3172 --- /dev/null +++ b/robot/assets/templates/heat_add_stack.template @@ -0,0 +1,12 @@ +{ + "files": {}, + "disable_rollback": true, + "stack_name": "${stack_name}", + "parameters": + ${parameters} + , + "template": + ${template} + , + "timeout_mins": 60 +} \ No newline at end of file diff --git a/robot/assets/templates/keystone_get_auth.template b/robot/assets/templates/keystone_get_auth.template new file mode 100644 index 00000000..255f8ffd --- /dev/null +++ b/robot/assets/templates/keystone_get_auth.template @@ -0,0 +1,8 @@ +{ + "auth": { + "passwordCredentials": { + "username": "${username}", + "password": "${password}" + } + } +} \ No newline at end of file diff --git a/robot/assets/templates/neutron_add_network.template b/robot/assets/templates/neutron_add_network.template new file mode 100644 index 00000000..36382d47 --- /dev/null +++ b/robot/assets/templates/neutron_add_network.template @@ -0,0 +1,7 @@ +{ + "network": + { + "name": "${name}", + "admin_state_up": false + } +} \ No newline at end of file diff --git a/robot/assets/templates/neutron_add_subnet.template b/robot/assets/templates/neutron_add_subnet.template new file mode 100644 index 00000000..5a4264f8 --- /dev/null +++ b/robot/assets/templates/neutron_add_subnet.template @@ -0,0 +1,8 @@ +{ + "subnet": { + "network_id": "${network_id}", + "ip_version": 4, + "name":"${subnet_name}", + "cidr": "${cidr}" + } +} \ No newline at end of file diff --git a/robot/assets/templates/nova_add_keypair.template b/robot/assets/templates/nova_add_keypair.template new file mode 100644 index 00000000..52e2b068 --- /dev/null +++ b/robot/assets/templates/nova_add_keypair.template @@ -0,0 +1,6 @@ +{ + "keypair": { + "name": "${name}", + "public_key": "${publickey}" + } +} \ No newline at end of file diff --git a/robot/assets/templates/nova_add_server.template b/robot/assets/templates/nova_add_server.template new file mode 100644 index 00000000..81578393 --- /dev/null +++ b/robot/assets/templates/nova_add_server.template @@ -0,0 +1,17 @@ +{ + "server": { + "name": "${name}", + "imageRef": "${imageRef}", + "flavorRef": "${flavorRef}", + "config_drive": true, + "OS-DCF:diskConfig": "MANUAL", + "metadata": { + "${name}": "Server for attaching VVG" + }, + "networks": [ + { + "uuid": "00000000-0000-0000-0000-000000000000" + } + ] + } +} \ No newline at end of file diff --git a/robot/assets/templates/policy/closedloop_configpolicy.template b/robot/assets/templates/policy/closedloop_configpolicy.template new file mode 100644 index 00000000..e14b615d --- /dev/null +++ b/robot/assets/templates/policy/closedloop_configpolicy.template @@ -0,0 +1,31 @@ +{ + "service": "TcaMetrics", + "location": "SampleServiceLocation", + "uuid": "/services/cdap-tca-hi-lo/instances/demo/configuration/metricsPerFunctionalRole/vFireWall", + "policyName": "${policy_name}", + "description": "vFirewall configuration Policy@CreatedBy:demo@CreatedBy:@ModifiedBy:demo@ModifiedBy:", + "configName": "SampleConfigName", + "templateVersion": "OpenSource.version.1", + "version": "1.0.0.5", + "priority": "1", + "policyScope": "resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=SampleClosedLoop", + "content": { + "thresholds": [{ + "severity": "MAJOR", + "fieldPath": "$$.event.measurementsForVfScalingFields.vNicUsageArray[*].packetsIn", + "thresholdValue": "300", + "closedLoopControlName": "CL-FRWL-LOW-TRAFFIC-SIG-d925ed73-8231-4d02-9545-db4e101f88f8", + "version": "1.0.2", + "direction": "LESS_OR_EQUAL" + }, { + "severity": "CRITICAL", + "fieldPath": "$$.event.measurementsForVfScalingFields.vNicUsageArray[*].packetsIn", + "thresholdValue": "800", + "closedLoopControlName": "CL-FRWL-LOW-TRAFFIC-SIG-d925ed73-8231-4d02-9545-db4e101f88f8", + "version": "1.0.2", + "direction": "GREATER_OR_EQUAL" + }], + "functionalRole": "vFirewall", + "name": "0" + } +} diff --git a/robot/assets/templates/policy/closedloop_createpolicy.template b/robot/assets/templates/policy/closedloop_createpolicy.template new file mode 100644 index 00000000..7c693e84 --- /dev/null +++ b/robot/assets/templates/policy/closedloop_createpolicy.template @@ -0,0 +1,21 @@ +{ + "policyConfigType": "BRMS_PARAM", + "policyName": "${policy_name}", + "policyDescription": "Create BRMS Param policy", + "attributes": { + "RULE": { + "templateName": "ClosedLoopDemo_closedLoopControlName", + "aaiNamedQueryUUID": "2", + "aaiPassword": "2", + "aaiPatternMatch": "2", + "aaiURL": "2", + "actor": "2", + "appcTopic": "2", + "closedLoopControlName": "2", + "msoPassword": "2", + "msoURL": "2", + "msoUsername": "2", + "aaiUsername": "3" + } + } +} diff --git a/robot/assets/templates/policy/closedloop_deletepolicy.template b/robot/assets/templates/policy/closedloop_deletepolicy.template new file mode 100644 index 00000000..55510102 --- /dev/null +++ b/robot/assets/templates/policy/closedloop_deletepolicy.template @@ -0,0 +1,5 @@ +{ + "pdpGroup": "default", + "policyComponent": "PDP", + "policyName": "${policy_name}" +} diff --git a/robot/assets/templates/policy/closedloop_getconfigpolicy.template b/robot/assets/templates/policy/closedloop_getconfigpolicy.template new file mode 100644 index 00000000..34145e5b --- /dev/null +++ b/robot/assets/templates/policy/closedloop_getconfigpolicy.template @@ -0,0 +1,8 @@ +{ + "configAttributes" : { + }, + "configName" : ".*", + "ecompName" : "DCAE", + "policyName" : "${config_policy_name}", + "unique" : true +} \ No newline at end of file diff --git a/robot/assets/templates/policy/closedloop_opspolicy.template b/robot/assets/templates/policy/closedloop_opspolicy.template new file mode 100644 index 00000000..722c9dca --- /dev/null +++ b/robot/assets/templates/policy/closedloop_opspolicy.template @@ -0,0 +1,25 @@ + +{ + "policyConfigType": "BRMS_PARAM", + "policyName": "${policy_name}", + "policyDescription": "Create BRMS Param policy for vFW", + "attributes": { + "RULE": { + "templateName": "ControlLoopDemo__closedLoopControlName", + "closedLoopControlName": "CL-FRWL-LOW-TRAFFIC-SIG-d925ed73-8231-4d02-9545-db4e101f88f8", + "policyVersion": "v1.0", + "aaiNamedQueryUUID": "null", + "aaiPassword": "null", + "aaiURL": "null", + "actor": "APPC", + "appcTopic": "APPC-CL", + "msoPassword": "null", + "msoURL": "null", + "msoUsername": "null", + "aaiUsername": "null", + "notificationTopic": "POLICY-CL-MGT", + "aaiPatternMatch": 1 + } + } +} + diff --git a/robot/assets/templates/policy/closedloop_pushpolicy.template b/robot/assets/templates/policy/closedloop_pushpolicy.template new file mode 100644 index 00000000..ce1d4859 --- /dev/null +++ b/robot/assets/templates/policy/closedloop_pushpolicy.template @@ -0,0 +1,5 @@ +{ + "policyName" : "${policy_name}", + "policyType" : "${policy_type}", + "pdpGroup" : "default" +} \ No newline at end of file diff --git a/robot/assets/templates/sdnc/dnsscaling_preload.template b/robot/assets/templates/sdnc/dnsscaling_preload.template new file mode 100644 index 00000000..cf988d5b --- /dev/null +++ b/robot/assets/templates/sdnc/dnsscaling_preload.template @@ -0,0 +1,96 @@ +{ + "input": { + "vnf-topology-information": { + "vnf-topology-identifier": { + "service-type": "${service_type}", + "vnf-name": "${vf_module_name}", + "vnf-type": "${vf_module_type}", + "generic-vnf-name": "${generic_vnf_name}", + "generic-vnf-type": "${generic_vnf_type}" + }, + "vnf-assignments": { + "availability-zones": [], + "vnf-networks": [], + "vnf-vms": [] + }, + "vnf-parameters": [ + { + "vnf-parameter-name": "repo_url", + "vnf-parameter-value": "${repo_url}" + }, + { + "vnf-parameter-name": "repo_user", + "vnf-parameter-value": "${repo_user}" + }, + { + "vnf-parameter-name": "repo_passwd", + "vnf-parameter-value": "${repo_passwd}" + }, + { + "vnf-parameter-name": "ecomp_private_net_id", + "vnf-parameter-value": "${ecomp_private_net_id}" + }, + { + "vnf-parameter-name": "ecomp_private_subnet_id", + "vnf-parameter-value": "${ecomp_private_subnet_id}" + }, + { + "vnf-parameter-name": "ecomp_private_net_cidr", + "vnf-parameter-value": "${ecomp_private_net_cidr}" + }, + { + "vnf-parameter-name": "vlb_private_net_id", + "vnf-parameter-value": "${vlb_private_net_id}" + }, + { + "vnf-parameter-name": "vlb_private_ip_0", + "vnf-parameter-value": "${vlb_private_ip_0}" + }, + { + "vnf-parameter-name": "vlb_private_ip_1", + "vnf-parameter-value": "${vlb_private_ip_1}" + }, + { + "vnf-parameter-name": "vdns_private_ip_0", + "vnf-parameter-value": "${vdns_private_ip_0}" + }, + { + "vnf-parameter-name": "vdns_private_ip_1", + "vnf-parameter-value": "${vdns_private_ip_1}" + }, + { + "vnf-parameter-name": "vdns_name_0", + "vnf-parameter-value": "${scaling_vdns_name_0}" + }, + { + "vnf-parameter-name": "webserver_ip", + "vnf-parameter-value": "${webserver_ip}" + }, + { + "vnf-parameter-name": "dcae_collector_ip", + "vnf-parameter-value": "${dcae_collector_ip}" + }, + { + "vnf-parameter-name": "key_name", + "vnf-parameter-value": "${key_name}" + }, + { + "vnf-parameter-name": "pub_key", + "vnf-parameter-value": "${pub_key}" + } + ] + }, + "request-information": { + "request-id": "robot12", + "order-version": "1", + "notification-url": "openecomp.org", + "order-number": "1", + "request-action": "PreloadVNFRequest" + }, + "sdnc-request-header": { + "svc-request-id": "robot12", + "svc-notification-url": "http:\/\/openecomp.org:8080\/adapters\/rest\/SDNCNotify", + "svc-action": "reserve" + } + } +} \ No newline at end of file diff --git a/robot/assets/templates/sdnc/vfw_preload.template b/robot/assets/templates/sdnc/vfw_preload.template new file mode 100644 index 00000000..c94c565f --- /dev/null +++ b/robot/assets/templates/sdnc/vfw_preload.template @@ -0,0 +1,132 @@ +{ + "input": { + "vnf-topology-information": { + "vnf-topology-identifier": { + "service-type": "${service_type}", + "vnf-name": "${vf_module_name}", + "vnf-type": "${vf_module_type}", + "generic-vnf-name": "${generic_vnf_name}", + "generic-vnf-type": "${generic_vnf_type}" + }, + "vnf-assignments": { + "availability-zones": [], + "vnf-networks": [], + "vnf-vms": [] + }, + "vnf-parameters": [ + { + "vnf-parameter-name": "repo_url", + "vnf-parameter-value": "${repo_url}" + }, + { + "vnf-parameter-name": "repo_user", + "vnf-parameter-value": "${repo_user}" + }, + { + "vnf-parameter-name": "repo_passwd", + "vnf-parameter-value": "${repo_passwd}" + }, + { + "vnf-parameter-name": "ecomp_private_net_id", + "vnf-parameter-value": "${ecomp_private_net_id}" + }, + { + "vnf-parameter-name": "ecomp_private_subnet_id", + "vnf-parameter-value": "${ecomp_private_subnet_id}" + }, + { + "vnf-parameter-name": "ecomp_private_net_cidr", + "vnf-parameter-value": "${ecomp_private_net_cidr}" + }, + { + "vnf-parameter-name": "unprotected_private_net_id", + "vnf-parameter-value": "${unprotected_private_net_id}" + }, + { + "vnf-parameter-name": "protected_private_net_id", + "vnf-parameter-value": "${protected_private_net_id}" + }, + { + "vnf-parameter-name": "protected_private_net_cidr", + "vnf-parameter-value": "${protected_private_net_cidr}" + }, + { + "vnf-parameter-name": "unprotected_private_net_cidr", + "vnf-parameter-value": "${unprotected_private_net_cidr}" + }, + { + "vnf-parameter-name": "vfw_private_ip_0", + "vnf-parameter-value": "${vfw_private_ip_0}" + }, + { + "vnf-parameter-name": "vfw_private_ip_1", + "vnf-parameter-value": "${vfw_private_ip_1}" + }, + { + "vnf-parameter-name": "vfw_private_ip_2", + "vnf-parameter-value": "${vfw_private_ip_2}" + }, + { + "vnf-parameter-name": "vpg_private_ip_0", + "vnf-parameter-value": "${vpg_private_ip_0}" + }, + { + "vnf-parameter-name": "vpg_private_ip_1", + "vnf-parameter-value": "${vpg_private_ip_1}" + }, + { + "vnf-parameter-name": "vsn_private_ip_0", + "vnf-parameter-value": "${vsn_private_ip_0}" + }, + { + "vnf-parameter-name": "vsn_private_ip_1", + "vnf-parameter-value": "${vsn_private_ip_1}" + }, + { + "vnf-parameter-name": "vfw_name_0", + "vnf-parameter-value": "${vfw_name_0}" + }, + { + "vnf-parameter-name": "vpg_name_0", + "vnf-parameter-value": "${vpg_name_0}" + }, + { + "vnf-parameter-name": "vsn_name_0", + "vnf-parameter-value": "${vsn_name_0}" + }, + { + "vnf-parameter-name": "webserver_ip", + "vnf-parameter-value": "${webserver_ip}" + }, + { + "vnf-parameter-name": "dcae_collector_ip", + "vnf-parameter-value": "${dcae_collector_ip}" + }, + { + "vnf-parameter-name": "dcae_collector_port", + "vnf-parameter-value": "${dcae_collector_port}" + }, + { + "vnf-parameter-name": "key_name", + "vnf-parameter-value": "${key_name}" + }, + { + "vnf-parameter-name": "pub_key", + "vnf-parameter-value": "${pub_key}" + } + ] + }, + "request-information": { + "request-id": "robot12", + "order-version": "1", + "notification-url": "openecomp.org", + "order-number": "1", + "request-action": "PreloadVNFRequest" + }, + "sdnc-request-header": { + "svc-request-id": "robot12", + "svc-notification-url": "http:\/\/openecomp.org:8080\/adapters\/rest\/SDNCNotify", + "svc-action": "reserve" + } + } +} \ No newline at end of file diff --git a/robot/assets/templates/sdnc/vlb_preload.template b/robot/assets/templates/sdnc/vlb_preload.template new file mode 100644 index 00000000..736f790b --- /dev/null +++ b/robot/assets/templates/sdnc/vlb_preload.template @@ -0,0 +1,108 @@ +{ + "input": { + "vnf-topology-information": { + "vnf-topology-identifier": { + "service-type": "${service_type}", + "vnf-name": "${vf_module_name}", + "vnf-type": "${vf_module_type}", + "generic-vnf-name": "${generic_vnf_name}", + "generic-vnf-type": "${generic_vnf_type}" + }, + "vnf-assignments": { + "availability-zones": [], + "vnf-networks": [], + "vnf-vms": [] + }, + "vnf-parameters": [ + { + "vnf-parameter-name": "repo_url", + "vnf-parameter-value": "${repo_url}" + }, + { + "vnf-parameter-name": "repo_user", + "vnf-parameter-value": "${repo_user}" + }, + { + "vnf-parameter-name": "repo_passwd", + "vnf-parameter-value": "${repo_passwd}" + }, + { + "vnf-parameter-name": "ecomp_private_net_id", + "vnf-parameter-value": "${ecomp_private_net_id}" + }, + { + "vnf-parameter-name": "ecomp_private_subnet_id", + "vnf-parameter-value": "${ecomp_private_subnet_id}" + }, + { + "vnf-parameter-name": "ecomp_private_net_cidr", + "vnf-parameter-value": "${ecomp_private_net_cidr}" + }, + { + "vnf-parameter-name": "vlb_private_net_id", + "vnf-parameter-value": "${vlb_private_net_id}" + }, + { + "vnf-parameter-name": "vlb_private_net_cidr", + "vnf-parameter-value": "${vlb_private_net_cidr}" + }, + { + "vnf-parameter-name": "vlb_private_ip_0", + "vnf-parameter-value": "${vlb_private_ip_0}" + }, + { + "vnf-parameter-name": "vlb_private_ip_1", + "vnf-parameter-value": "${vlb_private_ip_1}" + }, + { + "vnf-parameter-name": "vdns_private_ip_0", + "vnf-parameter-value": "${vdns_private_ip_0}" + }, + { + "vnf-parameter-name": "vdns_private_ip_1", + "vnf-parameter-value": "${vdns_private_ip_1}" + }, + { + "vnf-parameter-name": "vlb_name_0", + "vnf-parameter-value": "${vlb_name_0}" + }, + { + "vnf-parameter-name": "vdns_name_0", + "vnf-parameter-value": "${vdns_name_0}" + }, + { + "vnf-parameter-name": "webserver_ip", + "vnf-parameter-value": "${webserver_ip}" + }, + { + "vnf-parameter-name": "dcae_collector_ip", + "vnf-parameter-value": "${dcae_collector_ip}" + }, + { + "vnf-parameter-name": "dcae_collector_port", + "vnf-parameter-value": "${dcae_collector_port}" + }, + { + "vnf-parameter-name": "key_name", + "vnf-parameter-value": "${key_name}" + }, + { + "vnf-parameter-name": "pub_key", + "vnf-parameter-value": "${pub_key}" + } + ] + }, + "request-information": { + "request-id": "robot12", + "order-version": "1", + "notification-url": "openecomp.org", + "order-number": "1", + "request-action": "PreloadVNFRequest" + }, + "sdnc-request-header": { + "svc-request-id": "robot12", + "svc-notification-url": "http:\/\/openecomp.org:8080\/adapters\/rest\/SDNCNotify", + "svc-action": "reserve" + } + } +} \ No newline at end of file diff --git a/robot/assets/templates/sdnc/vvg_preload.template b/robot/assets/templates/sdnc/vvg_preload.template new file mode 100644 index 00000000..83095e9d --- /dev/null +++ b/robot/assets/templates/sdnc/vvg_preload.template @@ -0,0 +1,36 @@ +{ + "input": { + "vnf-topology-information": { + "vnf-topology-identifier": { + "service-type": "${service_type}", + "vnf-name": "${vf_module_name}", + "vnf-type": "${vf_module_type}", + "generic-vnf-name": "${generic_vnf_name}", + "generic-vnf-type": "${generic_vnf_type}" + }, + "vnf-assignments": { + "availability-zones": [], + "vnf-networks": [], + "vnf-vms": [] + }, + "vnf-parameters": [ + { + "vnf-parameter-name": "nova_instance", + "vnf-parameter-value": "${nova_instance}" + } + ] + }, + "request-information": { + "request-id": "robot12", + "order-version": "1", + "notification-url": "openecomp.org", + "order-number": "1", + "request-action": "PreloadVNFRequest" + }, + "sdnc-request-header": { + "svc-request-id": "robot12", + "svc-notification-url": "http:\/\/openecomp.org:8080\/adapters\/rest\/SDNCNotify", + "svc-action": "reserve" + } + } +} \ No newline at end of file diff --git a/robot/assets/templates/template_example.template b/robot/assets/templates/template_example.template new file mode 100644 index 00000000..42583f14 --- /dev/null +++ b/robot/assets/templates/template_example.template @@ -0,0 +1,6 @@ +{ + "requestReferences": { + "instanceId": "${instanceId}", + "requestId": "${requestId}" + } +} \ No newline at end of file diff --git a/robot/assets/templates/vfw_pg_stream_enable.template b/robot/assets/templates/vfw_pg_stream_enable.template new file mode 100644 index 00000000..c5036334 --- /dev/null +++ b/robot/assets/templates/vfw_pg_stream_enable.template @@ -0,0 +1,4 @@ + { + "id" : "${stream}", + "is-enabled" : "true" + } diff --git a/robot/assets/templates/vfw_pg_streams_enable.template b/robot/assets/templates/vfw_pg_streams_enable.template new file mode 100644 index 00000000..8f5fec61 --- /dev/null +++ b/robot/assets/templates/vfw_pg_streams_enable.template @@ -0,0 +1,7 @@ +{ + "pg-streams" : { + "pg-stream" : [ +${pgstreams} + ] + } +} -- cgit 1.2.3-korg