aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource')
-rw-r--r--openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/negative/MANIFEST.json26
-rw-r--r--openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/negative/base_virc.env59
-rw-r--r--openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/negative/base_virc.yaml143
-rw-r--r--openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/negative/nested_virc.yaml207
-rw-r--r--openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/negative/user_data.sh285
-rw-r--r--openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/positive/MANIFEST.json26
-rw-r--r--openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/positive/base_virc.env59
-rw-r--r--openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/positive/base_virc.yaml188
-rw-r--r--openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/positive/nested_virc.yaml207
-rw-r--r--openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/positive/user_data.sh292
10 files changed, 1492 insertions, 0 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/negative/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/negative/MANIFEST.json
new file mode 100644
index 0000000000..31d26cce5a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/negative/MANIFEST.json
@@ -0,0 +1,26 @@
+{
+ "name": "virc",
+ "description": "",
+ "data": [
+ {
+ "file": "base_virc.yaml",
+ "type": "HEAT",
+ "isBase": "true",
+ "data": [
+ {
+ "file": "base_virc.env",
+ "type": "HEAT_ENV"
+ }
+ ]
+ },
+ {
+ "file": "nested_virc.yaml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "user_data.sh",
+ "type": "SHELL"
+ }
+ ]
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/negative/base_virc.env b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/negative/base_virc.env
new file mode 100644
index 0000000000..617084511c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/negative/base_virc.env
@@ -0,0 +1,59 @@
+parameters:
+ virc_environment: 'CI-VIRC'
+ virc_version: '1609.0.0.0.64'
+ virc_version_file: 'version-VIRC_Cloud.json'
+ vnf_id: vnf_id_placeholder
+ vnf_name: 'ircc001v'
+ vf_module_id: vf_module_id_placeholder
+ vf_module_name: vf_module_name_placeholder
+ vm_roles: [
+ 'vm_role_placeholder_0',
+ 'vm_role_placeholder_1',
+ 'vm_role_placeholder_2',
+ 'vm_role_placeholder_3']
+ num_instances: 4
+ virc_names: [
+ 'irpr0001vm001pfe001p1n004v001',
+ 'irpr0001vm002pbe001p1n004v001',
+ 'irpr0001vm003mdb001p1n004v001',
+ 'irpr0001vm004mdb001p1n004v001']
+ virc_image_name: rhel7-with-openecomp-tools
+ virc_flavor_name: m1.large
+ virc_ssh_public_key: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9/ngAeNYJe8p8RvPQC4NSRu1VyWimhMx+6Q0LgD1n/UeTN+Ppn1NA0/CQDR+nX0vOMkfwkw43y3qi1kDfHSNKebxVUix1nyqXUq9n8kjhu+dsKXqiClL2B36XvsrXfkA6SRG8jsWiBgkR+hvcewjqk2pLigdi233F69GHdqKsRJOS4246/VTdXyFZX5V3W0akZ/Oh72aM+UnRb9hp+ZHzIGBHemMipkDHzCAOmWZlNuPGwqBscmMv2KWUj6Rk6b5qFoK4J1x0MjXCS/mKC3H8GsSlGhHZ6odMGEVPT5EkTQEf/ggPPPyUx0+TRv0fPh4793CxZrxo7CvpLAaoUXMH'
+ availability_zone_0: 'ZoneA'
+ virc_default_gateway: 127.0.0.1
+ virc_domain: atttest.com
+ virc_dns1: 127.0.0.1
+ management_net_name: SRE-Mgt
+ virc_management_dhcp: no
+ virc_management_default_route: yes
+ virc_management_ips: [
+ '127.0.0.1',
+ '127.0.0.1',
+ '127.0.0.1',
+ '127.0.0.1']
+ data_net_name: data
+ virc_data_ips: [
+ '192.168.1.50',
+ '192.168.1.51',
+ '192.168.1.52',
+ '192.168.1.53']
+ virc_data_dhcp: no
+ virc_data_default_route: no
+ signaling_net_name: signaling
+ virc_signaling_ips: [
+ '127.0.0.1',
+ '127.0.0.1',
+ '127.0.0.1',
+ '127.0.0.1']
+ virc_signaling_dhcp: no
+ virc_signaling_default_route: no
+ virc_sg_rules: [
+ { "remote_ip_prefix": "0.0.0.0/0", "protocol": "tcp", "port_range_min": "22", "port_range_max": "22", "ethertype": "IPv4" },
+ { "remote_ip_prefix": "0.0.0.0/0", "protocol": "tcp", "port_range_min": "5060", "port_range_max": "5060", "ethertype": "IPv4" },
+ { "remote_ip_prefix": "::/0", "protocol": "tcp", "port_range_min": "5060", "port_range_max": "5060", "ethertype": "IPv6" },
+ { "remote_ip_prefix": "0.0.0.0/0", "protocol": "tcp", "port_range_min": "8080", "port_range_max": "8080", "ethertype": "IPv4" },
+ { "remote_ip_prefix": "::/0", "protocol": "tcp", "port_range_min": "8080", "port_range_max": "8080", "ethertype": "IPv6" },
+ { "remote_ip_prefix": "0.0.0.0/0", "protocol": "tcp", "port_range_min": "7113", "port_range_max": "7113", "ethertype": "IPv4" },
+ { "remote_ip_prefix": "0.0.0.0/0", "protocol": "tcp", "port_range_min": "8113", "port_range_max": "8113", "ethertype": "IPv4" }]
+
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/negative/base_virc.yaml b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/negative/base_virc.yaml
new file mode 100644
index 0000000000..7c1afa8ced
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/negative/base_virc.yaml
@@ -0,0 +1,143 @@
+heat_template_version: 2015-04-30
+
+description: vIRC CC base template
+
+parameters:
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance
+ vnf_name:
+ type: string
+ description: Unique name for this VF instance
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+ vf_module_name:
+ type: string
+ description: Unique name for this VF Module instance
+ vm_roles:
+ type: comma_delimited_list
+ description: Unique roles for first group of instances
+ virc_names:
+ type: comma_delimited_list
+ description: List of names of vIRC CC instances in first availability zone
+ virc_image_name:
+ type: string
+ description: Image used for vIRC CC instances
+ virc_flavor_name:
+ type: string
+ description: Flavor of VM to use for vIRC CC instances
+ virc_ssh_public_key:
+ type: string
+ description: Public key for SSH access to vIRC CC instances
+ availability_zone_0:
+ type: string
+ description: First availability zone ID or name
+ management_net_name:
+ type: string
+ description: vIRC CC management network name
+ virc_management_dhcp:
+ type: string
+ description: For static IPs on management port, no. For DHCP assigned IPs, yes.
+ virc_management_ips:
+ type: comma_delimited_list
+ description: vIRC CC management network fixed ips for first availability zone if static
+ virc_management_netmask:
+ type: string
+ description: vIRC CC management netmask
+ virc_management_gateway:
+ type: string
+ description: vIRC CC management gateway
+ virc_management_default_route:
+ type: string
+ description: If management port is default route on OS, yes. If not, no.
+ data_net_name:
+ type: string
+ description: vIRC CC data network name
+ virc_data_dhcp:
+ type: string
+ description: For static IPs on data port, no. For DHCP assigned IPs, yes.
+ virc_data_ips:
+ type: comma_delimited_list
+ description: vIRC CC data network fixed ips for first availability zone if static
+ virc_data_netmask:
+ type: string
+ description: vIRC CC data netmask
+ virc_data_gateway:
+ type: string
+ description: vIRC CC data gateway
+ virc_data_default_route:
+ type: string
+ description: If data port is default route on OS, yes. If not, no.
+ signaling_net_name:
+ type: string
+ description: vIRC CC signaling network name
+ virc_signaling_dhcp:
+ type: string
+ description: For static IPs on data port, no. For DHCP assigned IPs, yes.
+ virc_signaling_ips:
+ type: comma_delimited_list
+ description: vIRC CC signaling network fixed ips for first availability zone if static
+ virc_signaling_netmask:
+ type: string
+ description: vIRC CC signaling netmask
+ virc_signaling_gateway:
+ type: string
+ description: vIRC CC signaling gateway
+ virc_signaling_default_route:
+ type: string
+ description: If signaling port is default route on OS, yes. If not, no.
+ num_instances:
+ type: number
+ description: Number of instances to deploy in first availability zone
+ constraints:
+ - range: { min: 0, max: 18}
+ virc_sg_rules:
+ type: json
+ description: vIRC CC security group rules
+ virc_domain:
+ type: string
+ description: Domain of the vIRC CC instances
+ virc_dns1:
+ type: string
+ description: First DNS nameserver for vIRC CC instances
+ virc_dns2:
+ type: string
+ description: Second DNS nameserver for vIRC CC instances
+ virc_default_gateway:
+ type: string
+ description: Default gateway for vIRC CC instances
+ virc_version:
+ type: string
+ description: vIRC CC deployment version
+ virc_environment:
+ type: string
+ description: vIRC CC deployment environment
+ virc_version_file:
+ type: string
+ description: vIRC CC version file name
+
+resources:
+ virc_keypair:
+ type: OS::Nova::KeyPair
+ properties:
+ name:
+ str_replace:
+ template: VNF_NAME_virc_keypair
+ params:
+ VNF_NAME: { get_param: vnf_name }
+ public_key: { get_param: virc_ssh_public_key }
+ save_private_key: false
+
+
+ virc_RSG:
+ type: OS::Neutron::SecurityGroup
+ properties:
+ name:
+ str_replace:
+ template: VNF_NAME_virc_sg
+ params:
+ VNF_NAME: { get_param: vnf_name }
+ rules: { get_param: virc_sg_rules }
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/negative/nested_virc.yaml b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/negative/nested_virc.yaml
new file mode 100644
index 0000000000..f4e34188c0
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/negative/nested_virc.yaml
@@ -0,0 +1,207 @@
+heat_template_version: 2015-04-30
+
+description: virc_nested
+
+parameters:
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance
+ vnf_name:
+ type: string
+ description: Unique name for this VF instance
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+ vf_module_name:
+ type: string
+ description: Unique name for this VF Module instance
+ vm_roles:
+ type: comma_delimited_list
+ description: Unique roles for this group of instances
+ virc_names:
+ type: comma_delimited_list
+ description: name of virc instances
+ virc_image_name:
+ type: string
+ description: name of virc image
+ virc_flavor_name:
+ type: string
+ description: flavor of instance to use
+ virc_keypair:
+ type: string
+ description: Key pair containing public SSH key for vIRC instances
+ availability_zone_0:
+ type: string
+ description: Availability zone used for this resource group
+ management_net_name:
+ type: string
+ description: virc management network name
+ virc_management_dhcp:
+ type: string
+ description: yes if port configured by dhcp, otherwise no
+ virc_management_ips:
+ type: comma_delimited_list
+ description: virc management network fixed ips
+ virc_management_netmask:
+ type: string
+ description: virc management netmask
+ virc_management_gateway:
+ type: string
+ description: virc management gateway
+ virc_management_default_route:
+ type: string
+ description: yes if this default route is that of this nic
+ data_net_name:
+ type: string
+ description: virc data network name
+ virc_data_dhcp:
+ type: string
+ description: yes if port configured by dhcp, otherwise no
+ virc_data_ips:
+ type: comma_delimited_list
+ description: virc data network fixed ips
+ virc_data_netmask:
+ type: string
+ description: virc data netmask
+ virc_data_gateway:
+ type: string
+ description: virc data gateway
+ virc_data_default_route:
+ type: string
+ description: yes if this default route is that of this nic
+ signaling_net_name:
+ type: string
+ description: virc signaling network name
+ virc_signaling_dhcp:
+ type: string
+ description: yes if port configured by dhcp, otherwise no
+ virc_signaling_ips:
+ type: comma_delimited_list
+ description: virc signaling network fixed ips
+ virc_signaling_netmask:
+ type: string
+ description: virc signaling netmask
+ virc_signaling_gateway:
+ type: string
+ description: virc signaling gateway
+ virc_signaling_default_route:
+ type: string
+ description: yes if this default route is that of this nic
+ virc_sg:
+ type: string
+ description: virc security group
+ virc_domain:
+ type: string
+ description: domain of the virc instance
+ virc_dns1:
+ type: string
+ description: first dns nameserver for virc instance
+ virc_dns2:
+ type: string
+ description: second dns nameserver for virc instance
+ virc_default_gateway:
+ type: string
+ description: default gateway for VM
+ virc_version:
+ type: string
+ description: virc deployment version
+ virc_environment:
+ type: string
+ description: virc deployment environment
+ virc_version_file:
+ type: string
+ description: vIRC CC version file name
+ index_num:
+ type: number
+ description: Current index value of the resource group
+ constraints:
+ - range: { min: 0, max: 18 }
+
+resources:
+ virc_0:
+ type: OS::Nova::Server
+ properties:
+ name: {get_param: [virc_names, {get_param: index_num}]}
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ vnf_name: { get_param: vnf_name }
+ vf_module_id: { get_param: vf_module_id }
+ vf_module_name: { get_param: vf_module_name }
+ vm_role: { get_param: [vm_roles, {get_param: index_num}]}
+ key_name: {get_param: virc_keypair}
+ image: {get_param: virc_image_name}
+ flavor: {get_param: virc_flavor_name}
+ availability_zone: {get_param: availability_zone_0}
+ networks:
+ - port: { get_resource: virc_management_0_port}
+ - port: { get_resource: virc_data_1_port}
+ - port: { get_resource: virc_signaling_2_port}
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ template: {get_file: user_data.sh}
+ params:
+ __hostname__: {get_param: [virc_names, {get_param: index_num}]}
+ __domain__: {get_param: virc_domain}
+ __dns1__: {get_param: virc_dns1}
+ __dns2__: {get_param: virc_dns2}
+ __default_gateway__: {get_param: virc_default_gateway}
+ __port_mac_0__: {get_attr: [virc_management_0_port, mac_address]}
+ __port_ip_0__: {get_param: [virc_management_ips, {get_param: index_num}]}
+ __port_netmask_0__: {get_param: virc_management_netmask}
+ __port_gateway_0__: {get_param: virc_management_gateway}
+ __port_def_route_0__: {get_param: virc_management_default_route}
+ __port_dhcp_0__: {get_param: virc_management_dhcp}
+ __port_mac_1__: {get_attr: [virc_data_1_port, mac_address]}
+ __port_ip_1__: {get_param: [virc_data_ips, {get_param: index_num}]}
+ __port_netmask_1__: {get_param: virc_data_netmask}
+ __port_gateway_1__: {get_param: virc_data_gateway}
+ __port_def_route_1__: {get_param: virc_data_default_route}
+ __port_dhcp_1__: {get_param: virc_data_dhcp}
+ __port_ip6_1__: {get_param: [virc_data_ips, {get_param: index_num}]}
+ __port_mac_2__: {get_attr: [virc_signaling_2_port, mac_address]}
+ __port_ip_2__: {get_param: [virc_signaling_ips, {get_param: index_num}]}
+ __port_netmask_2__: {get_param: virc_signaling_netmask}
+ __port_gateway_2__: {get_param: virc_signaling_gateway}
+ __port_def_route_2__: {get_param: virc_signaling_default_route}
+ __port_dhcp_2__: {get_param: virc_signaling_dhcp}
+ __virc_environment__: {get_param: virc_environment}
+ __virc_version__: {get_param: virc_version}
+ __virc_version_file__: {get_param: virc_version_file}
+
+ virc_management_0_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: management_net_name }
+ fixed_ips:
+ - ip_address: { get_param: [virc_management_ips, {get_param: index_num}]}
+ security_groups:
+ - { get_param: virc_sg }
+ virc_data_1_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: data_net_name }
+ fixed_ips:
+ - ip_address: { get_param: [virc_data_ips, {get_param: index_num}]}
+ security_groups:
+ - { get_param: virc_sg }
+ virc_signaling_2_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: signaling_net_name }
+ fixed_ips:
+ - ip_address: { get_param: [virc_signaling_ips, {get_param: index_num}]}
+ security_groups:
+ - { get_param: virc_sg }
+ virc_volume:
+ type: OS::Cinder::Volume
+ properties:
+# name: {get_param: [virc_names, {get_param: index_num}]}
+ availability_zone: nova
+# availability_zone: {get_param: availability_zone_0}
+ size: 1
+ virc_volumeattachment:
+ type: OS::Cinder::VolumeAttachment
+ properties:
+ instance_uuid: { get_resource: virc_0 }
+ volume_id: { get_resource: virc_volume }
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/negative/user_data.sh b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/negative/user_data.sh
new file mode 100644
index 0000000000..1c808d4736
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/negative/user_data.sh
@@ -0,0 +1,285 @@
+#!/bin/bash
+
+set -x
+exec >> /root/user_data.out
+exec 2>&1
+
+MOUNT_POINT=${1:-'/opt/app/virc'}
+LABEL=${2:-'VIRC_DATA'}
+DESCRIPTION=${3:-'vIRC data volume'}
+
+TAG=VIRC_PROVISIONING
+
+DISK_ID=$(ls -1 /dev/disk/by-id | tail -n1)
+DISK_NAME=$(readlink -f /dev/disk/by-id/${DISK_ID})
+FSTYPE=$(lsblk -o FSTYPE -n ${DISK_NAME})
+DISK_LABEL=$(lsblk -o LABEL -n ${DISK_NAME})
+
+# Exit with message if not root
+[[ $UID -ne 0 ]] && logger -t $TAG "Not root. Exiting." && exit 2
+
+# Create filesystem if none
+if [[ -z ${FSTYPE} ]] ; then
+ mkfs.xfs ${DISK_NAME}
+ if [[ $? -eq 0 ]] ; then
+ logger -t $TAG "Created xfs filesystem on $DISK_NAME."
+ else
+ logger -t $TAG "ERROR: Could not create xfs on $DISK_NAME. Exiting."
+ exit 90
+ fi
+fi
+sleep 0.5
+DISK_UUID=$(lsblk -no UUID ${DISK_NAME})
+
+# Create label if none
+[[ -z ${DISK_LABEL} ]] && xfs_admin -L ${LABEL} ${DISK_NAME}
+
+# Create mount point if it does not exist
+if [[ ! -d ${MOUNT_POINT} ]] ; then
+ mkdir -p ${MOUNT_POINT}
+ if [[ $? -eq 0 ]] ; then
+ logger -t $TAG "Created mount point at $MOUNT_POINT."
+ else
+ logger -t $TAG "ERROR: Could not create mount point at $MOUNT_POINT. Exiting"
+ exit 80
+ fi
+fi
+
+# Only add to /etc/fstab if not already there
+grep -q ${DISK_UUID} /etc/fstab
+if [[ $? -ne 0 ]] ; then
+ echo "# Following mount for ${DESCRIPTION}" >> /etc/fstab
+ echo "UUID=${DISK_UUID} ${MOUNT_POINT} xfs defaults 0 0" >> /etc/fstab
+ mount -a
+ mount_check_1=$?
+ mount | grep ${DISK_NAME} | grep ${MOUNT_POINT}
+ mount_check_2=$?
+ if [[ ${mount_check_1} -eq 0 ]] && [[ ${mount_check_2} -eq 0 ]]; then
+ logger -t $TAG "Successfully mounted $DISK_NAME at $MOUNT_POINT."
+ else
+ logger -t $TAG "ERROR: Could not mount $DISK_NAME at $MOUNT_POINT. Exiting."
+ exit 70
+ fi
+fi
+
+###
+### Configure network
+###
+
+hostname='__hostname__'
+domain='__domain__'
+dns1='__dns1__'
+dns2='__dns2__'
+default_gateway='__default_gateway__'
+
+# 1 disable, 0 enable
+ipv6_enable=1
+
+port_mac[0]='__port_mac_0__'
+port_ip[0]='__port_ip_0__'
+port_netmask[0]='__port_netmask_0__'
+port_gateway[0]='__port_gateway_0__'
+port_def_route[0]='__port_def_route_0__'
+port_dhcp[0]='__port_dhcp_0__'
+
+port_mac[1]='__port_mac_1__'
+port_ip[1]='__port_ip_1__'
+port_netmask[1]='__port_netmask_1__'
+port_gateway[1]='__port_gateway_1__'
+port_def_route[1]='__port_def_route_1__'
+port_dhcp[1]='__port_dhcp_1__'
+
+port_mac[2]='__port_mac_2__'
+port_ip[2]='__port_ip_2__'
+port_netmask[2]='__port_netmask_2__'
+port_gateway[2]='__port_gateway_2__'
+port_def_route[2]='__port_def_route_2__'
+port_dhcp[2]='__port_dhcp_2__'
+
+# function to add underscore
+add_underscore(){
+ echo "__${1}__"
+}
+
+# filenames
+net_scripts=/etc/sysconfig/network-scripts
+
+# update network scripts with static ips and gateways
+nic_count=($(ls -1d /sys/class/net/eth* | wc -l))
+for i in {0..2} ; do
+ if [[ ${port_mac[i]} != "__port_mac_${i}__" && \
+ ( ${port_ip[i]} != "__port_ip_${i}__" || ${port_dhcp[i]} != "__port_dhcp_${i}__" ) ]] ; then
+ for (( j=0 ; j<${nic_count} ; j++ )) ; do
+ nic_mac=$(cat /sys/class/net/eth${j}/address)
+ if [[ ${port_mac[i]} == ${nic_mac} ]] ; then
+ echo "NAME=eth${j}" > ${net_scripts}/ifcfg-eth${j}
+ echo "DEVICE=eth${j}" >> ${net_scripts}/ifcfg-eth${j}
+ if [[ ${port_dhcp[i]} =~ (yes|Yes|True|true) ]] ; then
+ echo "BOOTPROTO=dhcp" >> ${net_scripts}/ifcfg-eth${j}
+ elif [[ ${port_ip[i]} != "__port_ip_${i}__" ]] && [[ ${port_ip[i]} =~ .*:.* ]] ; then
+ [[ ${ipv6_enable} -eq 1 ]] && ipv6_enable=0
+ echo "BOOTPROTO=none" >> ${net_scripts}/ifcfg-eth${j}
+ echo "IPV6INIT=yes" >> ${net_scripts}/ifcfg-eth${j}
+ echo "IPV6ADDR=${port_ip[i]}" >> ${net_scripts}/ifcfg-eth${j}
+ if [[ ${port_gateway[i]} != "__port_gateway_${i}__" ]] ; then
+ echo "IPV6_DEFAULTGW=${port_gateway[i]}" >> ${net_scripts}/ifcfg-eth${j}
+ elif [[ ${port_gateway[i]} == $(add_underscore 'port_gateway_0') ]] && [[ ${default_gateway} != $(add_underscore 'default_gateway') ]] ; then
+ echo "IPV6_DEFAULTGW=${default_gateway}" >> ${net_scripts}/ifcfg-eth${j}
+ fi
+ elif [[ ${port_ip[i]} != "__port_ip_${i}__" ]] ; then
+ echo "BOOTPROTO=none" >> ${net_scripts}/ifcfg-eth${j}
+ echo "IPADDR=${port_ip[i]}" >> ${net_scripts}/ifcfg-eth${j}
+ # Set gateway if provided. If not set, set eth0 to default
+ if [[ ${port_gateway[i]} != "__port_gateway_${i}__" ]] ; then
+ echo "GATEWAY=${port_gateway[i]}" >> ${net_scripts}/ifcfg-eth${j}
+ elif [[ ${port_gateway[i]} == $(add_underscore 'port_gateway_0') ]] && [[ ${default_gateway} != $(add_underscore 'default_gateway') ]] ; then
+ echo "GATEWAY=${default_gateway}" >> ${net_scripts}/ifcfg-eth${j}
+ fi
+ # Set netmask if provided. Else set netmask to 255.255.255.0
+ if [[ ${port_netmask[i]} != "__port_netmask_${i}__" ]] ; then
+ echo "NETMASK=${port_netmask[i]}" >> ${net_scripts}/ifcfg-eth${j}
+ else
+ echo 'NETMASK=255.255.255.0' >> ${net_scripts}/ifcfg-eth${j}
+ fi
+ fi
+ echo "ONBOOT=yes" >> ${net_scripts}/ifcfg-eth${j}
+ echo "HWADDR=${nic_mac}" >> ${net_scripts}/ifcfg-eth${j}
+ # Set to DEFROUTE to no, unless otherwise stated. If not stated set to yes on eth0
+ if [[ ${port_def_route[i]} =~ (yes|Yes|True|true) ]] ; then
+ echo "DEFROUTE=yes" >> ${net_scripts}/ifcfg-eth${j}
+ elif [[ ${port_def_route[i]} == $(add_underscore 'port_def_route_0') ]] ; then
+ echo "DEFROUTE=yes" >> ${net_scripts}/ifcfg-eth${j}
+ else
+ echo "DEFROUTE=no" >> ${net_scripts}/ifcfg-eth${j}
+ fi
+ fi
+ done
+ fi
+done
+
+# Set DNS
+if [[ ${dns1} != $(add_underscore 'dns1') ]] ; then
+ echo "PEERDNS=yes" >> ${net_scripts}/ifcfg-eth0
+ echo "DNS1=${dns1}" >> ${net_scripts}/ifcfg-eth0
+ [[ ${dns2} != $(add_underscore 'dns2') ]] && echo "DNS2=${dns2}" >> ${net_scripts}/ifcfg-eth0
+fi
+# Set default gateway
+[[ ${default_gateway} != $(add_underscore 'default_gateway') ]] && echo GATEWAY=${default_gateway} >> ${net_scripts}/ifcfg-eth0
+# Set domain
+if [[ ${domain} != $(add_underscore 'domain') ]] ; then
+ echo DOMAIN=${domain} >> ${net_scripts}/ifcfg-eth0
+ echo kernel.domainname=${domain} >> /etc/sysctl.conf
+ sysctl -p
+fi
+# Set hostname
+if [[ ${hostname} != $(add_underscore 'hostname') ]] ; then
+ hostnamectl set-hostname ${hostname}
+ sed -i "s/\(^127\.0\.0\.1 .*\)/\1 ${hostname}/" /etc/hosts
+ sed -i "s/\(^::1 .*\)/\1 ${hostname}/" /etc/hosts
+ sed -i "s/\(^127\.0\.0\.1 .*\)/\1 ${hostname}.${domain}/" /etc/hosts
+ sed -i "s/\(^::1 .*\)/\1 ${hostname}.${domain}/" /etc/hosts
+fi
+
+# Enable ipv6 if there is an ipv6 address supplied in env
+if [[ ${ipv6_enable} -eq 0 ]] ; then
+ echo net.ipv6.conf.all.disable_ipv6 = 0 >> /etc/sysctl.conf
+ echo net.ipv6.conf.default.disable_ipv6 = 0 >> /etc/sysctl.conf
+ echo net.ipv6.conf.lo.disable_ipv6 = 0 >> /etc/sysctl.conf
+ sysctl -p
+fi
+
+service network restart
+
+## Disable Password Login for MechID group
+echo "Match Group mechid" >> /etc/ssh/sshd_config
+echo -e "\tPasswordAuthentication no" >> /etc/ssh/sshd_config
+systemctl restart sshd
+
+###
+# Install SWM
+###
+
+## SWM variables
+virc_cc_environment='__virc_cc_environment__'
+virc_cc_version='__virc_cc_version__'
+virc_cc_version_file='__virc_cc_version_file__'
+
+
+## Add MechID user
+mechid_user_name=$(grep 'SWM_AUTOUSER=' /tmp/input.env | cut -f 2 -d '=')
+useradd -g mechid -p 'pahfhrkSZmUs.' ${mechid_user_name}
+
+### Workaround ### REMOVE WHEN BUG FIXED ###
+#mkdir -p /etc/chef/trusted_certs/
+
+# Get packages to install from input.env, then delete from input.env
+. /tmp/input.env
+swm_install_pkgs=(${SWM_INIT_PACKAGES})
+swm_install_pkg_deps=(${SWM_INIT_PACKAGE_DEPS})
+sed -i '/SWM_INIT_PACKAGES="/,/\"/d' /tmp/input.env
+
+./platform-init-1.5.5.sh /tmp/input.env
+
+## Install SWM packages after SWM installation
+export AFTSWM_USERNAME=${mechid_user_name}
+mechid_user_enc_passwd=$(grep 'SWM_AUTOCRED=' /tmp/input.env | cut -f 2 -d '=')
+export AFTSWM_PASSWORD=${mechid_user_enc_passwd}
+export HOSTNAME=$(hostname)
+#export HOME=/root
+
+#/opt/app/aft/aftswmcli/bin/swmcli component pkginstall -c ${swm_install_pkgs} -n $(hostname).$(domainname) -w -fi -fs
+#sleep 5
+#cd
+echo $SHELL
+whoami
+env
+pwd
+
+# install swm packages one at a time
+for package in ${swm_install_pkg_deps[@]} ; do
+ /opt/app/aft/aftswmcli/bin/swmcli component pkginstall -c ${package} -n $(hostname).$(domainname) -w -fi
+done
+
+for package in ${swm_install_pkgs[@]} ; do
+ /opt/app/aft/aftswmcli/bin/swmcli component pkginstall -c ${package} -n $(hostname).$(domainname) -w -fi
+done
+
+### Run Chef Prep Scripts ###
+USER=${mechid_user_name}
+COOKBOOK_NAME='virc_cc'
+VERSION=${virc_cc_version}
+ENV=${virc_cc_environment}
+VERSION_FILE=${virc_cc_version_file}
+
+COOKBOOK_VERSION=""
+
+for v in $(echo ${VERSION} | tr "." "\n")
+do
+ if [ "$v" -ge 0 -a "$v" -le 9 ]; then
+ COOKBOOK_VERSION=${COOKBOOK_VERSION}0$v
+ else
+ COOKBOOK_VERSION=${COOKBOOK_VERSION}$v
+ fi
+done
+
+COOKBOOK_VERSION="${COOKBOOK_VERSION:0:4}.1${COOKBOOK_VERSION:4:4}.1${COOKBOOK_VERSION:8:4}"
+
+#cd /home/$USER/chef-repo
+mkdir -p /home/$USER/scripts/$ENV
+chown -R ${mechid_user_name}:mechid /home/$USER
+
+chef_config_path="/home/${mechid_user_name}/chef-repo/.chef/knife.rb"
+
+su - -c "/usr/bin/knife client delete $(hostname).$(domainname) -y -c ${chef_config_path}" ${mechid_user_name}
+su - -c "/usr/bin/knife node delete $(hostname).$(domainname) -y -c ${chef_config_path}" ${mechid_user_name}
+
+su - -c "/usr/bin/knife cookbook show $COOKBOOK_NAME $COOKBOOK_VERSION files Pyswm.py -c ${chef_config_path} > /home/${mechid_user_name}/scripts/$ENV/Pyswm.py" ${mechid_user_name}
+#/usr/bin/knife cookbook show $COOKBOOK_NAME $COOKBOOK_VERSION files Pyswm.pyc > /home/$USER/scripts/$ENV/Pyswm.pyc
+su - -c "/usr/bin/knife cookbook show $COOKBOOK_NAME $COOKBOOK_VERSION files install_swm.py -c ${chef_config_path} > /home/$USER/scripts/$ENV/install_swm.py" ${mechid_user_name}
+su - -c "/usr/bin/knife cookbook show $COOKBOOK_NAME $COOKBOOK_VERSION files swm-installer-config.json -c ${chef_config_path} > /home/$USER/scripts/$ENV/swm-installer-config.json" ${mechid_user_name}
+
+#cd /home/$USER/scripts/$ENV
+su - -c "chmod 755 /home/$USER/scripts/$ENV/install_swm.py" ${mechid_user_name}
+su - -c "cd /home/$USER/scripts/$ENV; ./install_swm.py $VERSION $ENV --components-nodes=\"vIRC-cc:$(hostname).$(domainname)\" --version-file=${VERSION_FILE}" ${mechid_user_name}
+#./install_swm.py $VERSION $ENV --components-nodes="<<<ComponentName.FQDN>>>"
+
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/positive/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/positive/MANIFEST.json
new file mode 100644
index 0000000000..31d26cce5a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/positive/MANIFEST.json
@@ -0,0 +1,26 @@
+{
+ "name": "virc",
+ "description": "",
+ "data": [
+ {
+ "file": "base_virc.yaml",
+ "type": "HEAT",
+ "isBase": "true",
+ "data": [
+ {
+ "file": "base_virc.env",
+ "type": "HEAT_ENV"
+ }
+ ]
+ },
+ {
+ "file": "nested_virc.yaml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "user_data.sh",
+ "type": "SHELL"
+ }
+ ]
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/positive/base_virc.env b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/positive/base_virc.env
new file mode 100644
index 0000000000..617084511c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/positive/base_virc.env
@@ -0,0 +1,59 @@
+parameters:
+ virc_environment: 'CI-VIRC'
+ virc_version: '1609.0.0.0.64'
+ virc_version_file: 'version-VIRC_Cloud.json'
+ vnf_id: vnf_id_placeholder
+ vnf_name: 'ircc001v'
+ vf_module_id: vf_module_id_placeholder
+ vf_module_name: vf_module_name_placeholder
+ vm_roles: [
+ 'vm_role_placeholder_0',
+ 'vm_role_placeholder_1',
+ 'vm_role_placeholder_2',
+ 'vm_role_placeholder_3']
+ num_instances: 4
+ virc_names: [
+ 'irpr0001vm001pfe001p1n004v001',
+ 'irpr0001vm002pbe001p1n004v001',
+ 'irpr0001vm003mdb001p1n004v001',
+ 'irpr0001vm004mdb001p1n004v001']
+ virc_image_name: rhel7-with-openecomp-tools
+ virc_flavor_name: m1.large
+ virc_ssh_public_key: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9/ngAeNYJe8p8RvPQC4NSRu1VyWimhMx+6Q0LgD1n/UeTN+Ppn1NA0/CQDR+nX0vOMkfwkw43y3qi1kDfHSNKebxVUix1nyqXUq9n8kjhu+dsKXqiClL2B36XvsrXfkA6SRG8jsWiBgkR+hvcewjqk2pLigdi233F69GHdqKsRJOS4246/VTdXyFZX5V3W0akZ/Oh72aM+UnRb9hp+ZHzIGBHemMipkDHzCAOmWZlNuPGwqBscmMv2KWUj6Rk6b5qFoK4J1x0MjXCS/mKC3H8GsSlGhHZ6odMGEVPT5EkTQEf/ggPPPyUx0+TRv0fPh4793CxZrxo7CvpLAaoUXMH'
+ availability_zone_0: 'ZoneA'
+ virc_default_gateway: 127.0.0.1
+ virc_domain: atttest.com
+ virc_dns1: 127.0.0.1
+ management_net_name: SRE-Mgt
+ virc_management_dhcp: no
+ virc_management_default_route: yes
+ virc_management_ips: [
+ '127.0.0.1',
+ '127.0.0.1',
+ '127.0.0.1',
+ '127.0.0.1']
+ data_net_name: data
+ virc_data_ips: [
+ '192.168.1.50',
+ '192.168.1.51',
+ '192.168.1.52',
+ '192.168.1.53']
+ virc_data_dhcp: no
+ virc_data_default_route: no
+ signaling_net_name: signaling
+ virc_signaling_ips: [
+ '127.0.0.1',
+ '127.0.0.1',
+ '127.0.0.1',
+ '127.0.0.1']
+ virc_signaling_dhcp: no
+ virc_signaling_default_route: no
+ virc_sg_rules: [
+ { "remote_ip_prefix": "0.0.0.0/0", "protocol": "tcp", "port_range_min": "22", "port_range_max": "22", "ethertype": "IPv4" },
+ { "remote_ip_prefix": "0.0.0.0/0", "protocol": "tcp", "port_range_min": "5060", "port_range_max": "5060", "ethertype": "IPv4" },
+ { "remote_ip_prefix": "::/0", "protocol": "tcp", "port_range_min": "5060", "port_range_max": "5060", "ethertype": "IPv6" },
+ { "remote_ip_prefix": "0.0.0.0/0", "protocol": "tcp", "port_range_min": "8080", "port_range_max": "8080", "ethertype": "IPv4" },
+ { "remote_ip_prefix": "::/0", "protocol": "tcp", "port_range_min": "8080", "port_range_max": "8080", "ethertype": "IPv6" },
+ { "remote_ip_prefix": "0.0.0.0/0", "protocol": "tcp", "port_range_min": "7113", "port_range_max": "7113", "ethertype": "IPv4" },
+ { "remote_ip_prefix": "0.0.0.0/0", "protocol": "tcp", "port_range_min": "8113", "port_range_max": "8113", "ethertype": "IPv4" }]
+
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/positive/base_virc.yaml b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/positive/base_virc.yaml
new file mode 100644
index 0000000000..e0e8df50fc
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/positive/base_virc.yaml
@@ -0,0 +1,188 @@
+heat_template_version: 2015-04-30
+
+description: vIRC CC base template
+
+parameters:
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance
+ vnf_name:
+ type: string
+ description: Unique name for this VF instance
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+ vf_module_name:
+ type: string
+ description: Unique name for this VF Module instance
+ vm_roles:
+ type: comma_delimited_list
+ description: Unique roles for first group of instances
+ virc_names:
+ type: comma_delimited_list
+ description: List of names of vIRC CC instances in first availability zone
+ virc_image_name:
+ type: string
+ description: Image used for vIRC CC instances
+ virc_flavor_name:
+ type: string
+ description: Flavor of VM to use for vIRC CC instances
+ virc_ssh_public_key:
+ type: string
+ description: Public key for SSH access to vIRC CC instances
+ availability_zone_0:
+ type: string
+ description: First availability zone ID or name
+ management_net_name:
+ type: string
+ description: vIRC CC management network name
+ virc_management_dhcp:
+ type: string
+ description: For static IPs on management port, no. For DHCP assigned IPs, yes.
+ virc_management_ips:
+ type: comma_delimited_list
+ description: vIRC CC management network fixed ips for first availability zone if static
+ virc_management_netmask:
+ type: string
+ description: vIRC CC management netmask
+ virc_management_gateway:
+ type: string
+ description: vIRC CC management gateway
+ virc_management_default_route:
+ type: string
+ description: If management port is default route on OS, yes. If not, no.
+ data_net_name:
+ type: string
+ description: vIRC CC data network name
+ virc_data_dhcp:
+ type: string
+ description: For static IPs on data port, no. For DHCP assigned IPs, yes.
+ virc_data_ips:
+ type: comma_delimited_list
+ description: vIRC CC data network fixed ips for first availability zone if static
+ virc_data_netmask:
+ type: string
+ description: vIRC CC data netmask
+ virc_data_gateway:
+ type: string
+ description: vIRC CC data gateway
+ virc_data_default_route:
+ type: string
+ description: If data port is default route on OS, yes. If not, no.
+ signaling_net_name:
+ type: string
+ description: vIRC CC signaling network name
+ virc_signaling_dhcp:
+ type: string
+ description: For static IPs on data port, no. For DHCP assigned IPs, yes.
+ virc_signaling_ips:
+ type: comma_delimited_list
+ description: vIRC CC signaling network fixed ips for first availability zone if static
+ virc_signaling_netmask:
+ type: string
+ description: vIRC CC signaling netmask
+ virc_signaling_gateway:
+ type: string
+ description: vIRC CC signaling gateway
+ virc_signaling_default_route:
+ type: string
+ description: If signaling port is default route on OS, yes. If not, no.
+ num_instances:
+ type: number
+ description: Number of instances to deploy in first availability zone
+ constraints:
+ - range: { min: 0, max: 18}
+ virc_sg_rules:
+ type: json
+ description: vIRC CC security group rules
+ virc_domain:
+ type: string
+ description: Domain of the vIRC CC instances
+ virc_dns1:
+ type: string
+ description: First DNS nameserver for vIRC CC instances
+ virc_dns2:
+ type: string
+ description: Second DNS nameserver for vIRC CC instances
+ virc_default_gateway:
+ type: string
+ description: Default gateway for vIRC CC instances
+ virc_version:
+ type: string
+ description: vIRC CC deployment version
+ virc_environment:
+ type: string
+ description: vIRC CC deployment environment
+ virc_version_file:
+ type: string
+ description: vIRC CC version file name
+
+resources:
+ virc_keypair:
+ type: OS::Nova::KeyPair
+ properties:
+ name:
+ str_replace:
+ template: VNF_NAME_virc_keypair
+ params:
+ VNF_NAME: { get_param: vnf_name }
+ public_key: { get_param: virc_ssh_public_key }
+ save_private_key: false
+
+ virc_RSG:
+ type: OS::Neutron::SecurityGroup
+ properties:
+ name:
+ str_replace:
+ template: VNF_NAME_virc_sg
+ params:
+ VNF_NAME: { get_param: vnf_name }
+ rules: { get_param: virc_sg_rules }
+
+ virc_RRG_0:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: { get_param: num_instances }
+ index_var: server_count
+ resource_def:
+ type: nested_virc.yaml
+ properties:
+ vnf_id: { get_param: vnf_id }
+ vnf_name: { get_param: vnf_name }
+ vf_module_id: { get_param: vf_module_id }
+ vf_module_name: { get_param: vf_module_name }
+ vm_roles: { get_param: vm_roles }
+ virc_environment: { get_param: virc_environment }
+ virc_version: { get_param: virc_version }
+ virc_version_file: { get_param: virc_version_file }
+ virc_names: { get_param: virc_names }
+ virc_image_name: { get_param: virc_image_name }
+ virc_flavor_name: { get_param: virc_flavor_name }
+ availability_zone_0: { get_param: availability_zone_0 }
+ virc_keypair: { get_resource: virc_keypair }
+ management_net_name: { get_param: management_net_name }
+ virc_management_dhcp: { get_param: virc_management_dhcp }
+ virc_management_ips: { get_param: virc_management_ips }
+ virc_management_netmask: { get_param: virc_management_netmask }
+ virc_management_gateway: { get_param: virc_management_gateway }
+ virc_management_default_route: { get_param: virc_management_default_route }
+ data_net_name: { get_param: data_net_name }
+ virc_data_dhcp: { get_param: virc_data_dhcp }
+ virc_data_ips: { get_param: virc_data_ips }
+ virc_data_netmask: { get_param: virc_data_netmask }
+ virc_data_gateway: { get_param: virc_data_gateway }
+ virc_data_default_route: { get_param: virc_data_default_route }
+ signaling_net_name: { get_param: signaling_net_name }
+ virc_signaling_ips: { get_param: virc_signaling_ips }
+ virc_signaling_dhcp: { get_param: virc_signaling_dhcp }
+ virc_signaling_netmask: { get_param: virc_signaling_netmask }
+ virc_signaling_gateway: { get_param: virc_signaling_gateway }
+ virc_signaling_default_route: { get_param: virc_signaling_default_route }
+ virc_domain: { get_param: virc_domain }
+ virc_dns1: { get_param: virc_dns1 }
+ virc_dns2: { get_param: virc_dns2 }
+ virc_default_gateway: { get_param: virc_default_gateway }
+ virc_sg: { get_resource: virc_RSG }
+ index_num: server_count
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/positive/nested_virc.yaml b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/positive/nested_virc.yaml
new file mode 100644
index 0000000000..f4e34188c0
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/positive/nested_virc.yaml
@@ -0,0 +1,207 @@
+heat_template_version: 2015-04-30
+
+description: virc_nested
+
+parameters:
+ vnf_id:
+ type: string
+ description: Unique ID for this VF instance
+ vnf_name:
+ type: string
+ description: Unique name for this VF instance
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+ vf_module_name:
+ type: string
+ description: Unique name for this VF Module instance
+ vm_roles:
+ type: comma_delimited_list
+ description: Unique roles for this group of instances
+ virc_names:
+ type: comma_delimited_list
+ description: name of virc instances
+ virc_image_name:
+ type: string
+ description: name of virc image
+ virc_flavor_name:
+ type: string
+ description: flavor of instance to use
+ virc_keypair:
+ type: string
+ description: Key pair containing public SSH key for vIRC instances
+ availability_zone_0:
+ type: string
+ description: Availability zone used for this resource group
+ management_net_name:
+ type: string
+ description: virc management network name
+ virc_management_dhcp:
+ type: string
+ description: yes if port configured by dhcp, otherwise no
+ virc_management_ips:
+ type: comma_delimited_list
+ description: virc management network fixed ips
+ virc_management_netmask:
+ type: string
+ description: virc management netmask
+ virc_management_gateway:
+ type: string
+ description: virc management gateway
+ virc_management_default_route:
+ type: string
+ description: yes if this default route is that of this nic
+ data_net_name:
+ type: string
+ description: virc data network name
+ virc_data_dhcp:
+ type: string
+ description: yes if port configured by dhcp, otherwise no
+ virc_data_ips:
+ type: comma_delimited_list
+ description: virc data network fixed ips
+ virc_data_netmask:
+ type: string
+ description: virc data netmask
+ virc_data_gateway:
+ type: string
+ description: virc data gateway
+ virc_data_default_route:
+ type: string
+ description: yes if this default route is that of this nic
+ signaling_net_name:
+ type: string
+ description: virc signaling network name
+ virc_signaling_dhcp:
+ type: string
+ description: yes if port configured by dhcp, otherwise no
+ virc_signaling_ips:
+ type: comma_delimited_list
+ description: virc signaling network fixed ips
+ virc_signaling_netmask:
+ type: string
+ description: virc signaling netmask
+ virc_signaling_gateway:
+ type: string
+ description: virc signaling gateway
+ virc_signaling_default_route:
+ type: string
+ description: yes if this default route is that of this nic
+ virc_sg:
+ type: string
+ description: virc security group
+ virc_domain:
+ type: string
+ description: domain of the virc instance
+ virc_dns1:
+ type: string
+ description: first dns nameserver for virc instance
+ virc_dns2:
+ type: string
+ description: second dns nameserver for virc instance
+ virc_default_gateway:
+ type: string
+ description: default gateway for VM
+ virc_version:
+ type: string
+ description: virc deployment version
+ virc_environment:
+ type: string
+ description: virc deployment environment
+ virc_version_file:
+ type: string
+ description: vIRC CC version file name
+ index_num:
+ type: number
+ description: Current index value of the resource group
+ constraints:
+ - range: { min: 0, max: 18 }
+
+resources:
+ virc_0:
+ type: OS::Nova::Server
+ properties:
+ name: {get_param: [virc_names, {get_param: index_num}]}
+ metadata:
+ vnf_id: { get_param: vnf_id }
+ vnf_name: { get_param: vnf_name }
+ vf_module_id: { get_param: vf_module_id }
+ vf_module_name: { get_param: vf_module_name }
+ vm_role: { get_param: [vm_roles, {get_param: index_num}]}
+ key_name: {get_param: virc_keypair}
+ image: {get_param: virc_image_name}
+ flavor: {get_param: virc_flavor_name}
+ availability_zone: {get_param: availability_zone_0}
+ networks:
+ - port: { get_resource: virc_management_0_port}
+ - port: { get_resource: virc_data_1_port}
+ - port: { get_resource: virc_signaling_2_port}
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ template: {get_file: user_data.sh}
+ params:
+ __hostname__: {get_param: [virc_names, {get_param: index_num}]}
+ __domain__: {get_param: virc_domain}
+ __dns1__: {get_param: virc_dns1}
+ __dns2__: {get_param: virc_dns2}
+ __default_gateway__: {get_param: virc_default_gateway}
+ __port_mac_0__: {get_attr: [virc_management_0_port, mac_address]}
+ __port_ip_0__: {get_param: [virc_management_ips, {get_param: index_num}]}
+ __port_netmask_0__: {get_param: virc_management_netmask}
+ __port_gateway_0__: {get_param: virc_management_gateway}
+ __port_def_route_0__: {get_param: virc_management_default_route}
+ __port_dhcp_0__: {get_param: virc_management_dhcp}
+ __port_mac_1__: {get_attr: [virc_data_1_port, mac_address]}
+ __port_ip_1__: {get_param: [virc_data_ips, {get_param: index_num}]}
+ __port_netmask_1__: {get_param: virc_data_netmask}
+ __port_gateway_1__: {get_param: virc_data_gateway}
+ __port_def_route_1__: {get_param: virc_data_default_route}
+ __port_dhcp_1__: {get_param: virc_data_dhcp}
+ __port_ip6_1__: {get_param: [virc_data_ips, {get_param: index_num}]}
+ __port_mac_2__: {get_attr: [virc_signaling_2_port, mac_address]}
+ __port_ip_2__: {get_param: [virc_signaling_ips, {get_param: index_num}]}
+ __port_netmask_2__: {get_param: virc_signaling_netmask}
+ __port_gateway_2__: {get_param: virc_signaling_gateway}
+ __port_def_route_2__: {get_param: virc_signaling_default_route}
+ __port_dhcp_2__: {get_param: virc_signaling_dhcp}
+ __virc_environment__: {get_param: virc_environment}
+ __virc_version__: {get_param: virc_version}
+ __virc_version_file__: {get_param: virc_version_file}
+
+ virc_management_0_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: management_net_name }
+ fixed_ips:
+ - ip_address: { get_param: [virc_management_ips, {get_param: index_num}]}
+ security_groups:
+ - { get_param: virc_sg }
+ virc_data_1_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: data_net_name }
+ fixed_ips:
+ - ip_address: { get_param: [virc_data_ips, {get_param: index_num}]}
+ security_groups:
+ - { get_param: virc_sg }
+ virc_signaling_2_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: signaling_net_name }
+ fixed_ips:
+ - ip_address: { get_param: [virc_signaling_ips, {get_param: index_num}]}
+ security_groups:
+ - { get_param: virc_sg }
+ virc_volume:
+ type: OS::Cinder::Volume
+ properties:
+# name: {get_param: [virc_names, {get_param: index_num}]}
+ availability_zone: nova
+# availability_zone: {get_param: availability_zone_0}
+ size: 1
+ virc_volumeattachment:
+ type: OS::Cinder::VolumeAttachment
+ properties:
+ instance_uuid: { get_resource: virc_0 }
+ volume_id: { get_resource: virc_volume }
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/positive/user_data.sh b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/positive/user_data.sh
new file mode 100644
index 0000000000..6510c728e8
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/positive/user_data.sh
@@ -0,0 +1,292 @@
+#!/bin/bash
+
+set -x
+exec >> /root/user_data.out
+exec 2>&1
+
+MOUNT_POINT=${1:-'/opt/app/virc'}
+LABEL=${2:-'VIRC_DATA'}
+DESCRIPTION=${3:-'vIRC data volume'}
+
+TAG=VIRC_PROVISIONING
+
+DISK_ID=$(ls -1 /dev/disk/by-id | tail -n1)
+DISK_NAME=$(readlink -f /dev/disk/by-id/${DISK_ID})
+FSTYPE=$(lsblk -o FSTYPE -n ${DISK_NAME})
+DISK_LABEL=$(lsblk -o LABEL -n ${DISK_NAME})
+
+# Exit with message if not root
+[[ $UID -ne 0 ]] && logger -t $TAG "Not root. Exiting." && exit 2
+
+# Create filesystem if none
+if [[ -z ${FSTYPE} ]] ; then
+ mkfs.xfs ${DISK_NAME}
+ if [[ $? -eq 0 ]] ; then
+ logger -t $TAG "Created xfs filesystem on $DISK_NAME."
+ else
+ logger -t $TAG "ERROR: Could not create xfs on $DISK_NAME. Exiting."
+ exit 90
+ fi
+fi
+sleep 0.5
+DISK_UUID=$(lsblk -no UUID ${DISK_NAME})
+
+# Create label if none
+[[ -z ${DISK_LABEL} ]] && xfs_admin -L ${LABEL} ${DISK_NAME}
+
+# Create mount point if it does not exist
+if [[ ! -d ${MOUNT_POINT} ]] ; then
+ mkdir -p ${MOUNT_POINT}
+ if [[ $? -eq 0 ]] ; then
+ logger -t $TAG "Created mount point at $MOUNT_POINT."
+ else
+ logger -t $TAG "ERROR: Could not create mount point at $MOUNT_POINT. Exiting"
+ exit 80
+ fi
+fi
+
+# Only add to /etc/fstab if not already there
+grep -q ${DISK_UUID} /etc/fstab
+if [[ $? -ne 0 ]] ; then
+ echo "# Following mount for ${DESCRIPTION}" >> /etc/fstab
+ echo "UUID=${DISK_UUID} ${MOUNT_POINT} xfs defaults 0 0" >> /etc/fstab
+ mount -a
+ mount_check_1=$?
+ mount | grep ${DISK_NAME} | grep ${MOUNT_POINT}
+ mount_check_2=$?
+ if [[ ${mount_check_1} -eq 0 ]] && [[ ${mount_check_2} -eq 0 ]]; then
+ logger -t $TAG "Successfully mounted $DISK_NAME at $MOUNT_POINT."
+ else
+ logger -t $TAG "ERROR: Could not mount $DISK_NAME at $MOUNT_POINT. Exiting."
+ exit 70
+ fi
+fi
+
+###
+### Configure network
+###
+
+hostname='__hostname__'
+domain='__domain__'
+dns1='__dns1__'
+dns2='__dns2__'
+default_gateway='__default_gateway__'
+
+# 1 disable, 0 enable
+ipv6_enable=1
+
+port_mac[0]='__port_mac_0__'
+port_ip[0]='__port_ip_0__'
+port_netmask[0]='__port_netmask_0__'
+port_gateway[0]='__port_gateway_0__'
+port_def_route[0]='__port_def_route_0__'
+port_dhcp[0]='__port_dhcp_0__'
+
+port_mac[1]='__port_mac_1__'
+port_ip[1]='__port_ip_1__'
+port_netmask[1]='__port_netmask_1__'
+port_gateway[1]='__port_gateway_1__'
+port_def_route[1]='__port_def_route_1__'
+port_dhcp[1]='__port_dhcp_1__'
+
+port_mac[2]='__port_mac_2__'
+port_ip[2]='__port_ip_2__'
+port_netmask[2]='__port_netmask_2__'
+port_gateway[2]='__port_gateway_2__'
+port_def_route[2]='__port_def_route_2__'
+port_dhcp[2]='__port_dhcp_2__'
+
+# function to add underscore
+add_underscore(){
+ echo "__${1}__"
+}
+
+# filenames
+net_scripts=/etc/sysconfig/network-scripts
+
+# update network scripts with static ips and gateways
+nic_count=($(ls -1d /sys/class/net/eth* | wc -l))
+for i in {0..2} ; do
+ if [[ ${port_mac[i]} != "__port_mac_${i}__" && \
+ ( ${port_ip[i]} != "__port_ip_${i}__" || ${port_dhcp[i]} != "__port_dhcp_${i}__" ) ]] ; then
+ for (( j=0 ; j<${nic_count} ; j++ )) ; do
+ nic_mac=$(cat /sys/class/net/eth${j}/address)
+ if [[ ${port_mac[i]} == ${nic_mac} ]] ; then
+ echo "NAME=eth${j}" > ${net_scripts}/ifcfg-eth${j}
+ echo "DEVICE=eth${j}" >> ${net_scripts}/ifcfg-eth${j}
+ if [[ ${port_dhcp[i]} =~ (yes|Yes|True|true) ]] ; then
+ echo "BOOTPROTO=dhcp" >> ${net_scripts}/ifcfg-eth${j}
+ elif [[ ${port_ip[i]} != "__port_ip_${i}__" ]] && [[ ${port_ip[i]} =~ .*:.* ]] ; then
+ [[ ${ipv6_enable} -eq 1 ]] && ipv6_enable=0
+ echo "BOOTPROTO=none" >> ${net_scripts}/ifcfg-eth${j}
+ echo "IPV6INIT=yes" >> ${net_scripts}/ifcfg-eth${j}
+ echo "IPV6ADDR=${port_ip[i]}" >> ${net_scripts}/ifcfg-eth${j}
+ if [[ ${port_gateway[i]} != "__port_gateway_${i}__" ]] ; then
+ echo "IPV6_DEFAULTGW=${port_gateway[i]}" >> ${net_scripts}/ifcfg-eth${j}
+ elif [[ ${port_gateway[i]} == $(add_underscore 'port_gateway_0') ]] && [[ ${default_gateway} != $(add_underscore 'default_gateway') ]] ; then
+ echo "IPV6_DEFAULTGW=${default_gateway}" >> ${net_scripts}/ifcfg-eth${j}
+ fi
+ elif [[ ${port_ip[i]} != "__port_ip_${i}__" ]] ; then
+ echo "BOOTPROTO=none" >> ${net_scripts}/ifcfg-eth${j}
+ echo "IPADDR=${port_ip[i]}" >> ${net_scripts}/ifcfg-eth${j}
+ # Set gateway if provided. If not set, set eth0 to default
+ if [[ ${port_gateway[i]} != "__port_gateway_${i}__" ]] ; then
+ echo "GATEWAY=${port_gateway[i]}" >> ${net_scripts}/ifcfg-eth${j}
+ elif [[ ${port_gateway[i]} == $(add_underscore 'port_gateway_0') ]] && [[ ${default_gateway} != $(add_underscore 'default_gateway') ]] ; then
+ echo "GATEWAY=${default_gateway}" >> ${net_scripts}/ifcfg-eth${j}
+ fi
+ # Set netmask if provided. Else set netmask to 255.255.255.0
+ if [[ ${port_netmask[i]} != "__port_netmask_${i}__" ]] ; then
+ echo "NETMASK=${port_netmask[i]}" >> ${net_scripts}/ifcfg-eth${j}
+ else
+ echo 'NETMASK=255.255.255.0' >> ${net_scripts}/ifcfg-eth${j}
+ fi
+ fi
+ echo "ONBOOT=yes" >> ${net_scripts}/ifcfg-eth${j}
+ echo "HWADDR=${nic_mac}" >> ${net_scripts}/ifcfg-eth${j}
+ # Set to DEFROUTE to no, unless otherwise stated. If not stated set to yes on eth0
+ if [[ ${port_def_route[i]} =~ (yes|Yes|True|true) ]] ; then
+ echo "DEFROUTE=yes" >> ${net_scripts}/ifcfg-eth${j}
+ elif [[ ${port_def_route[i]} == $(add_underscore 'port_def_route_0') ]] ; then
+ echo "DEFROUTE=yes" >> ${net_scripts}/ifcfg-eth${j}
+ else
+ echo "DEFROUTE=no" >> ${net_scripts}/ifcfg-eth${j}
+ fi
+ fi
+ done
+ fi
+done
+
+# Set DNS
+if [[ ${dns1} != $(add_underscore 'dns1') ]] ; then
+ echo "PEERDNS=yes" >> ${net_scripts}/ifcfg-eth0
+ echo "DNS1=${dns1}" >> ${net_scripts}/ifcfg-eth0
+ [[ ${dns2} != $(add_underscore 'dns2') ]] && echo "DNS2=${dns2}" >> ${net_scripts}/ifcfg-eth0
+fi
+# Set default gateway
+[[ ${default_gateway} != $(add_underscore 'default_gateway') ]] && echo GATEWAY=${default_gateway} >> ${net_scripts}/ifcfg-eth0
+# Set domain
+if [[ ${domain} != $(add_underscore 'domain') ]] ; then
+ echo DOMAIN=${domain} >> ${net_scripts}/ifcfg-eth0
+ echo kernel.domainname=${domain} >> /etc/sysctl.conf
+ sysctl -p
+fi
+# Set hostname
+if [[ ${hostname} != $(add_underscore 'hostname') ]] ; then
+ hostnamectl set-hostname ${hostname}
+ sed -i "s/\(^127\.0\.0\.1 .*\)/\1 ${hostname}/" /etc/hosts
+ sed -i "s/\(^::1 .*\)/\1 ${hostname}/" /etc/hosts
+ sed -i "s/\(^127\.0\.0\.1 .*\)/\1 ${hostname}.${domain}/" /etc/hosts
+ sed -i "s/\(^::1 .*\)/\1 ${hostname}.${domain}/" /etc/hosts
+fi
+
+# Enable ipv6 if there is an ipv6 address supplied in env
+if [[ ${ipv6_enable} -eq 0 ]] ; then
+ echo net.ipv6.conf.all.disable_ipv6 = 0 >> /etc/sysctl.conf
+ echo net.ipv6.conf.default.disable_ipv6 = 0 >> /etc/sysctl.conf
+ echo net.ipv6.conf.lo.disable_ipv6 = 0 >> /etc/sysctl.conf
+ sysctl -p
+fi
+
+service network restart
+
+## Disable Password Login for MechID group
+echo "Match Group mechid" >> /etc/ssh/sshd_config
+echo -e "\tPasswordAuthentication no" >> /etc/ssh/sshd_config
+systemctl restart sshd
+
+###
+# Install SWM
+###
+
+## SWM variables
+virc_cc_environment='__virc_cc_environment__'
+virc_cc_version='__virc_cc_version__'
+virc_cc_version_file='__virc_cc_version_file__'
+
+cd /tmp
+wget 'https://codecloud.web.att.com/projects/ST_VIRC/repos/virc/browse/SWM/Install/input.env?raw' -O input.env
+wget 'https://codecloud.web.att.com/projects/ST_VIRC/repos/virc/browse/SWM/Install/platform-init-1.5.5.sh?raw' -O platform-init-1.5.5.sh
+wget 'https://codecloud.web.att.com/projects/ST_VIRC/repos/virc/browse/SWM/Install/hostname.props?raw' -O $(hostname).props
+sed -i "s/$(add_underscore 'virc_environment')/${virc_environment}/g" $(hostname).props
+sed -i "s/$(add_underscore 'virc_version')/${virc_version}/g" input.env
+chmod +x platform-init-1.5.5.sh
+
+## Add MechID user
+mechid_user_name=$(grep 'SWM_AUTOUSER=' /tmp/input.env | cut -f 2 -d '=')
+useradd -g mechid -p 'pahfhrkSZmUs.' ${mechid_user_name}
+
+### Workaround ### REMOVE WHEN BUG FIXED ###
+#mkdir -p /etc/chef/trusted_certs/
+
+# Get packages to install from input.env, then delete from input.env
+. /tmp/input.env
+swm_install_pkgs=(${SWM_INIT_PACKAGES})
+swm_install_pkg_deps=(${SWM_INIT_PACKAGE_DEPS})
+sed -i '/SWM_INIT_PACKAGES="/,/\"/d' /tmp/input.env
+
+./platform-init-1.5.5.sh /tmp/input.env
+
+## Install SWM packages after SWM installation
+export AFTSWM_USERNAME=${mechid_user_name}
+mechid_user_enc_passwd=$(grep 'SWM_AUTOCRED=' /tmp/input.env | cut -f 2 -d '=')
+export AFTSWM_PASSWORD=${mechid_user_enc_passwd}
+export HOSTNAME=$(hostname)
+#export HOME=/root
+
+#/opt/app/aft/aftswmcli/bin/swmcli component pkginstall -c ${swm_install_pkgs} -n $(hostname).$(domainname) -w -fi -fs
+#sleep 5
+#cd
+echo $SHELL
+whoami
+env
+pwd
+
+# install swm packages one at a time
+for package in ${swm_install_pkg_deps[@]} ; do
+ /opt/app/aft/aftswmcli/bin/swmcli component pkginstall -c ${package} -n $(hostname).$(domainname) -w -fi
+done
+
+for package in ${swm_install_pkgs[@]} ; do
+ /opt/app/aft/aftswmcli/bin/swmcli component pkginstall -c ${package} -n $(hostname).$(domainname) -w -fi
+done
+
+### Run Chef Prep Scripts ###
+USER=${mechid_user_name}
+COOKBOOK_NAME='virc_cc'
+VERSION=${virc_cc_version}
+ENV=${virc_cc_environment}
+VERSION_FILE=${virc_cc_version_file}
+
+COOKBOOK_VERSION=""
+
+for v in $(echo ${VERSION} | tr "." "\n")
+do
+ if [ "$v" -ge 0 -a "$v" -le 9 ]; then
+ COOKBOOK_VERSION=${COOKBOOK_VERSION}0$v
+ else
+ COOKBOOK_VERSION=${COOKBOOK_VERSION}$v
+ fi
+done
+
+COOKBOOK_VERSION="${COOKBOOK_VERSION:0:4}.1${COOKBOOK_VERSION:4:4}.1${COOKBOOK_VERSION:8:4}"
+
+#cd /home/$USER/chef-repo
+mkdir -p /home/$USER/scripts/$ENV
+chown -R ${mechid_user_name}:mechid /home/$USER
+
+chef_config_path="/home/${mechid_user_name}/chef-repo/.chef/knife.rb"
+
+su - -c "/usr/bin/knife client delete $(hostname).$(domainname) -y -c ${chef_config_path}" ${mechid_user_name}
+su - -c "/usr/bin/knife node delete $(hostname).$(domainname) -y -c ${chef_config_path}" ${mechid_user_name}
+
+su - -c "/usr/bin/knife cookbook show $COOKBOOK_NAME $COOKBOOK_VERSION files Pyswm.py -c ${chef_config_path} > /home/${mechid_user_name}/scripts/$ENV/Pyswm.py" ${mechid_user_name}
+#/usr/bin/knife cookbook show $COOKBOOK_NAME $COOKBOOK_VERSION files Pyswm.pyc > /home/$USER/scripts/$ENV/Pyswm.pyc
+su - -c "/usr/bin/knife cookbook show $COOKBOOK_NAME $COOKBOOK_VERSION files install_swm.py -c ${chef_config_path} > /home/$USER/scripts/$ENV/install_swm.py" ${mechid_user_name}
+su - -c "/usr/bin/knife cookbook show $COOKBOOK_NAME $COOKBOOK_VERSION files swm-installer-config.json -c ${chef_config_path} > /home/$USER/scripts/$ENV/swm-installer-config.json" ${mechid_user_name}
+
+#cd /home/$USER/scripts/$ENV
+su - -c "chmod 755 /home/$USER/scripts/$ENV/install_swm.py" ${mechid_user_name}
+su - -c "cd /home/$USER/scripts/$ENV; ./install_swm.py $VERSION $ENV --components-nodes=\"vIRC-cc:$(hostname).$(domainname)\" --version-file=${VERSION_FILE}" ${mechid_user_name}
+#./install_swm.py $VERSION $ENV --components-nodes="<<<ComponentName.FQDN>>>"
+