aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap')
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/expectedoutputfiles/MainServiceTemplate.yaml854
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-ATTGRP.template.yaml352
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-Base.template.yaml382
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-OPENECOMP.template.yaml364
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-PairGroup.template.yaml687
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-Port.template.yaml719
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-Xlate.template.yaml15
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-XlateL2J.template.yaml50
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/MANIFEST.json52
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/base_mso.env127
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/base_mso.yml490
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/hot-mog-0108-bs1271.env5
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/hot-mog-0108-bs1271.yml54
13 files changed, 4151 insertions, 0 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/expectedoutputfiles/MainServiceTemplate.yaml
new file mode 100644
index 0000000000..6e2aebc9c2
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/expectedoutputfiles/MainServiceTemplate.yaml
@@ -0,0 +1,854 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+ template_name: Main
+imports:
+- openecomp_heat_index:
+ file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+ file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+ inputs:
+ access_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ description: CIDR associated with tag "access".
+ default: 37.9.0.32/27
+ constraints: [
+ ]
+ oam_default_gateway:
+ hidden: false
+ immutable: false
+ type: string
+ description: Default gateway IP address associated with tag "oam".
+ default: 127.0.0.1
+ int_vlan_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Optional VLAN associated with the (0th) internal network.
+ default: ''
+ constraints:
+ - pattern: '[0-9]*'
+ v4_ntp_server:
+ hidden: false
+ immutable: false
+ type: string
+ description: |
+ (optional) IPV4 NTP server list.
+ It is passed as a string instead of a CDL because
+ of how it is handled internally.
+ default: 127.0.0.1
+ access_subnet_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: ID of the subnet associated with tag "access".
+ default: 050ad34a-47a3-48a9-9761-12eff354fd4f
+ vnf_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Unique name for this VNF instance.
+ default: MYvnf_name
+ access_default_gateway:
+ hidden: false
+ immutable: false
+ type: string
+ description: Default gateway IP address associated with tag "access".
+ default: 37.9.0.62
+ ims_flavor_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: CDL of IMS flavor values.
+ default: LCP-1-4-15x2-4
+ constraints: [
+ ]
+ oam_cidr:
+ hidden: false
+ immutable: false
+ type: string
+ description: CIDR associated with tag "oam".
+ default: 127.0.0.1/27
+ constraints: [
+ ]
+ vm_counts:
+ hidden: false
+ immutable: false
+ type: json
+ description: |
+ Maps VM type tags to the number of pairs of that type.
+ default:
+ oam: '1'
+ ims: '1'
+ oam_oam_ips:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of IP addresses for this VMtype_NETtype combination.
+ default:
+ - 127.0.0.1
+ - 127.0.0.1
+ - 127.0.0.1
+ - 127.0.0.1
+ entry_schema:
+ type: string
+ v6_dns_server:
+ hidden: false
+ immutable: false
+ type: string
+ description: |
+ (optional) IPV6 DNS server list.
+ It is passed as a string instead of a CDL because
+ of how it is handled internally.
+ default: ''
+ v6_ntp_server:
+ hidden: false
+ immutable: false
+ type: string
+ description: |
+ (optional) IPV6 NTP server list.
+ It is passed as a string instead of a CDL because
+ of how it is handled internally.
+ default: ''
+ vnf_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Unique ID for this VNF instance.
+ default: MYvnf_id
+ lcm_keypair:
+ hidden: false
+ immutable: false
+ type: string
+ description: Keypair used for lifecycle management access.
+ default: ''
+ constraints: [
+ ]
+ oam_management_v6_index:
+ hidden: false
+ immutable: false
+ type: float
+ description: Index to the V6 management IP address.
+ default: 0
+ oam_management_v4_index:
+ hidden: false
+ immutable: false
+ type: float
+ description: Index to the V4 management IP address.
+ default: 1
+ availability_zone_0:
+ hidden: false
+ immutable: false
+ type: string
+ description: Availability zone name.
+ default: zone2
+ availability_zone_1:
+ hidden: false
+ immutable: false
+ type: string
+ description: Availability zone name.
+ default: zone1
+ OS::stack_name:
+ type: string
+ required: false
+ oam_subnet_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: ID of the subnet associated with tag "oam".
+ default: 37d36cb0-54b7-4fbf-bc45-4879da03a0db
+ oam_image_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Image for this VMtype.
+ default: drew34.20
+ net_types:
+ hidden: false
+ immutable: false
+ type: list
+ description: CDL of subnet tags.
+ default:
+ - oam
+ - access
+ entry_schema:
+ type: string
+ ssh_access_key:
+ hidden: false
+ immutable: false
+ type: string
+ description: |
+ Optional SSH public key value for lifecycle management
+ administrative access.
+ default: ''
+ ims_access_ips:
+ hidden: false
+ immutable: false
+ type: list
+ description: List of IP addresses for this VMtype_NETtype combination.
+ default:
+ - 37.9.0.36
+ - 37.9.0.61
+ entry_schema:
+ type: string
+ v4_enum_server:
+ hidden: false
+ immutable: false
+ type: string
+ description: |
+ (optional) IPV4 ENUM server list.
+ It is passed as a string instead of a CDL because
+ of how it is handled internally.
+ default: ''
+ oam_flavor_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: CDL of OAM flavor values.
+ default: LCP-2-4-25x2-4
+ constraints: [
+ ]
+ vnf_module_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: Unique ID for this VNF Module instance.
+ default: MYvnf_module_id
+ access_net_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: ID of the network associated with tag "access".
+ default: 870909b5-d933-4a95-9aff-df38523c37ed
+ constraints: [
+ ]
+ backup_file:
+ hidden: false
+ immutable: false
+ type: string
+ description: |
+ <cURL path>/<backup file>
+ This is only used for restore (aka "disaster recovery").
+ The value only needs to go to the OAM pair.
+ Note that there is a 255 character limit on this value.
+ default: ''
+ v6_enum_server:
+ hidden: false
+ immutable: false
+ type: string
+ description: |
+ (optional) IPV6 ENUM server list.
+ It is passed as a string instead of a CDL because
+ of how it is handled internally.
+ default: ''
+ ims_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: CDL of IMS VM names.
+ default:
+ - ims0
+ - ims1
+ entry_schema:
+ type: string
+ default_action:
+ hidden: false
+ immutable: false
+ type: string
+ description: |
+ Default action for all VMs. This may be overridden for
+ specific VM groups, pairs or VMs via the ENV file.
+ default: install
+ constraints:
+ - valid_values:
+ - install
+ - recreate
+ - scale-in
+ - scale-out
+ - heal
+ - update
+ v4_dns_server:
+ hidden: false
+ immutable: false
+ type: string
+ description: |
+ (optional) IPV4 DNS server list.
+ It is passed as a string instead of a CDL because
+ of how it is handled internally.
+ default: 127.0.0.1/.,127.0.0.1/.
+ oam_management_v6_source:
+ hidden: false
+ immutable: false
+ type: string
+ description: Name of the OAM IP parameter to use.
+ default: ''
+ oam_net_id:
+ hidden: false
+ immutable: false
+ type: string
+ description: ID of the network associated with tag "oam".
+ default: 7410cc1d-c421-41b3-adef-d46cf79cb8d9
+ constraints: [
+ ]
+ oam_management_v4_source:
+ hidden: false
+ immutable: false
+ type: string
+ description: Name of the OAM IP parameter to use.
+ default: oam_oam_ips
+ ims_image_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Image for this VMtype.
+ default: drew34.20
+ install_config:
+ hidden: false
+ immutable: false
+ type: string
+ description: JSON formatted string of install config values.
+ default: ' "application_name": "5450_isc", "license_reference": "test_license",
+ "default_remote_dns_domain": "./default", "default_remote_enum_domain": "e164.arpa/default",
+ "local_dns_domain": "drew2.lucentlab.com", "local_enum_domain": "", "naming_delimiter":
+ "-", "naming_parsing": "flexible", "naming_type": "flexible3", "other_remote_dns_domain":
+ "", "other_remote_enum_domain": "", "remote_query_only": "", "snmp_community":
+ "public", "subnet_info": { "INTERNALnet0": { "interface_label": "int0", "redundancy_mode":
+ "iipm", "vlan_tag": "" }, "INTERNALnet1": { "interface_label": "int1", "redundancy_mode":
+ "iipm", "vlan_tag": "" }, "oam": { "interface_label": "oam2", "redundancy_mode":
+ "eipm_arpndp", "vlan_tag": "", "connectivity_address": "", "detect_multiplier":
+ "3", "desired_minimum_tx_interval": "300", "required_minimum_rx_interval":
+ "300" }, "access": { "interface_label": "acc4", "redundancy_mode": "eipm_arpndp",
+ "vlan_tag": "", "connectivity_address": "", "detect_multiplier": "3", "desired_minimum_tx_interval":
+ "300", "required_minimum_rx_interval": "300" } }, "system_name": "isc01",
+ "system_prefix": "isc01", "time_zone": "UTC", "use_sbpr": "yes" '
+ cloud_name_delimiter:
+ hidden: false
+ immutable: false
+ type: string
+ description: Separator for cloud resource naming.
+ default: '-'
+ oam_names:
+ hidden: false
+ immutable: false
+ type: list
+ description: CDL of OAM VM names.
+ default:
+ - oam0
+ - oam1
+ entry_schema:
+ type: string
+ vnf_module_name:
+ hidden: false
+ immutable: false
+ type: string
+ description: Unique name for this VNF module instance.
+ default: base_module
+ vm_info:
+ hidden: false
+ immutable: false
+ type: json
+ description: Provides keys into type-specific parameters and vnic info.
+ default: {
+ }
+ node_templates:
+ OAM_RRG:
+ type: org.openecomp.resource.abstract.nodes.heat.LCP-PairGroup.template
+ directives:
+ - substitutable
+ properties:
+ stack:
+ get_input: OS::stack_name
+ role: oam
+ ext_net_info:
+ get_attribute:
+ - FORMATXLATE
+ - ext_net_info
+ sec_group:
+ get_attribute:
+ - NOKIA-LCP-Base
+ - OpenSec
+ usage_info:
+ get_attribute:
+ - FORMATXLATE
+ - usage_info
+ group_index: '0'
+ config_info:
+ '0':
+ vnic_info:
+ '0':
+ - binding_type: direct
+ count: '0'
+ subnet_count: '1'
+ allowed_subnets:
+ - INTERNALnet0
+ - subnet: INTERNALnet0
+ label: connectivity_ip;subnet=INTERNALnet0
+ '1':
+ - binding_type: direct
+ count: '0'
+ subnet_count: '1'
+ allowed_subnets:
+ - INTERNALnet1
+ - subnet: INTERNALnet1
+ label: connectivity_ip;subnet=INTERNALnet1
+ '2':
+ - binding_type: normal
+ count: '3'
+ subnet_count: '1'
+ allowed_subnets:
+ - oam
+ - subnet: oam
+ label: servicetype=cnfg-0;float;nitype=default;subnet=oam
+ - subnet: oam
+ label: servicetype=mi-0;float;nitype=default;subnet=oam
+ - subnet: oam
+ label: servicetype=mi-0;fixed;nitype=default;subnet=oam
+ v6_static_routes: '{}'
+ '1':
+ vnic_info:
+ '0':
+ - binding_type: direct
+ count: '0'
+ subnet_count: '1'
+ allowed_subnets:
+ - INTERNALnet0
+ - subnet: INTERNALnet0
+ label: connectivity_ip;subnet=INTERNALnet0
+ '1':
+ - binding_type: direct
+ count: '0'
+ subnet_count: '1'
+ allowed_subnets:
+ - INTERNALnet1
+ - subnet: INTERNALnet1
+ label: connectivity_ip;subnet=INTERNALnet1
+ '2':
+ - binding_type: normal
+ count: '1'
+ subnet_count: '1'
+ allowed_subnets:
+ - oam
+ - subnet: oam
+ label: servicetype=mi-0;fixed;nitype=default;subnet=oam
+ v6_default_gateway: ''
+ vnic_count: 3
+ v4_static_routes: '{}'
+ v4_default_gateway: oam
+ poolinfo: '["mi-0", "cnfg-0", "sns-0"]'
+ ssh_private_key:
+ get_attribute:
+ - NOKIA-LCP-Base
+ - PrivateKey
+ service_template_filter:
+ substitute_service_template: LCP-PairGroup.templateServiceTemplate.yaml
+ default_name_base:
+ str_replace:
+ template: |
+ {"": "oam$delimiter0$delimiter"}
+ params:
+ $delimiter:
+ get_attribute:
+ - FORMATXLATE
+ - usage_info
+ - cloud_name_delimiter
+ int_net_count: 2
+ lcm_keypair:
+ get_attribute:
+ - FORMATXLATE
+ - lcm_keypair
+ current_group_count:
+ get_attribute:
+ - FORMATXLATE
+ - vm_counts
+ - oam
+ net_info_str:
+ get_attribute:
+ - NOKIA-LCP-Base
+ - NetInfoStr
+ total_pair_count:
+ get_attribute:
+ - NOKIA-LCP-Base
+ - TotalPairCount
+ ssh_access_key:
+ get_attribute:
+ - FORMATXLATE
+ - ssh_access_key
+ int_net_info:
+ get_attribute:
+ - NOKIA-LCP-Base
+ - IntNetInfo
+ backup_file:
+ get_attribute:
+ - FORMATXLATE
+ - backup_file
+ default_action:
+ get_attribute:
+ - FORMATXLATE
+ - default_action
+ ssh_public_key:
+ get_attribute:
+ - NOKIA-LCP-Base
+ - PublicKey
+ name_delimiter:
+ get_attribute:
+ - FORMATXLATE
+ - usage_info
+ - cloud_name_delimiter
+ group_id: '0'
+ install_config:
+ get_attribute:
+ - FORMATXLATE
+ - install_config
+ storage_size: 68
+ group_tag: oam
+ requirements:
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: NOKIA-LCP-Base
+ relationship: tosca.relationships.DependsOn
+ FORMATXLATE:
+ type: org.openecomp.resource.abstract.nodes.heat.LCP-OPENECOMP.template
+ directives:
+ - substitutable
+ properties:
+ net_ids:
+ ? ''
+ : null
+ access:
+ get_input: access_net_id
+ oam:
+ get_input: oam_net_id
+ flavors:
+ ? ''
+ : ''
+ oam:
+ get_input: oam_flavor_name
+ ims:
+ get_input: ims_flavor_name
+ v4_ntp_server:
+ get_input: v4_ntp_server
+ vnf_name:
+ get_input: vnf_name
+ vmtype_list:
+ - oam
+ - ims
+ name_lists:
+ ? ''
+ : [
+ ]
+ oam:
+ get_input: oam_names
+ ims:
+ get_input: ims_names
+ service_template_filter:
+ substitute_service_template: LCP-OPENECOMP.templateServiceTemplate.yaml
+ vm_counts:
+ get_input: vm_counts
+ v6_dns_server:
+ get_input: v6_dns_server
+ v6_ntp_server:
+ get_input: v6_ntp_server
+ vnf_id:
+ get_input: vnf_id
+ lcm_keypair:
+ get_input: lcm_keypair
+ subnet_ids:
+ ? ''
+ : null
+ access:
+ get_input: access_subnet_id
+ oam:
+ get_input: oam_subnet_id
+ cidrs:
+ ? ''
+ : null
+ access:
+ get_input: access_cidr
+ oam:
+ get_input: oam_cidr
+ default_gateways:
+ ? ''
+ : null
+ access:
+ get_input: access_default_gateway
+ oam:
+ get_input: oam_default_gateway
+ net_types:
+ get_input: net_types
+ ssh_access_key:
+ get_input: ssh_access_key
+ images:
+ ? ''
+ : ''
+ oam:
+ get_input: oam_image_name
+ ims:
+ get_input: ims_image_name
+ v4_enum_server:
+ get_input: v4_enum_server
+ availability_zones:
+ - get_input: availability_zone_0
+ - get_input: availability_zone_1
+ ip_lists:
+ ? ''
+ : [
+ ]
+ ims_access_ips:
+ get_input: ims_access_ips
+ oam_oam_ips:
+ get_input: oam_oam_ips
+ vnf_module_id:
+ get_input: vnf_module_id
+ backup_file:
+ get_input: backup_file
+ v6_enum_server:
+ get_input: v6_enum_server
+ default_action:
+ get_input: default_action
+ v4_dns_server:
+ get_input: v4_dns_server
+ install_config:
+ get_input: install_config
+ cloud_name_delimiter:
+ get_input: cloud_name_delimiter
+ vnf_module_name:
+ get_input: vnf_module_name
+ vm_info:
+ get_input: vm_info
+ vmtype_count: 2
+ NOKIA-LCP-Base:
+ type: org.openecomp.resource.abstract.nodes.heat.LCP-Base.template
+ directives:
+ - substitutable
+ properties:
+ default_prefix:
+ str_replace:
+ template: |
+ {"": "$stk$delimiter"}
+ params:
+ $stk:
+ get_input: OS::stack_name
+ $delimiter:
+ get_attribute:
+ - FORMATXLATE
+ - usage_info
+ - cloud_name_delimiter
+ total_vm_pairs:
+ get_attribute:
+ - FORMATXLATE
+ - total_vm_pairs
+ service_template_filter:
+ substitute_service_template: LCP-Base.templateServiceTemplate.yaml
+ ext_net_list:
+ - oam
+ - access
+ int_net_count: 2
+ ext_net_info:
+ get_attribute:
+ - FORMATXLATE
+ - ext_net_info
+ requirements:
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: FORMATXLATE
+ relationship: tosca.relationships.DependsOn
+ IMS_RRG:
+ type: org.openecomp.resource.abstract.nodes.heat.LCP-PairGroup.template
+ directives:
+ - substitutable
+ properties:
+ total_pair_count:
+ get_attribute:
+ - NOKIA-LCP-Base
+ - TotalPairCount
+ ssh_access_key:
+ get_attribute:
+ - FORMATXLATE
+ - ssh_access_key
+ stack:
+ get_input: OS::stack_name
+ int_net_info:
+ get_attribute:
+ - NOKIA-LCP-Base
+ - IntNetInfo
+ ext_net_info:
+ get_attribute:
+ - FORMATXLATE
+ - ext_net_info
+ sec_group:
+ get_attribute:
+ - NOKIA-LCP-Base
+ - OpenSec
+ usage_info:
+ get_attribute:
+ - FORMATXLATE
+ - usage_info
+ group_index:
+ get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ config_info:
+ '0':
+ vnic_info:
+ '0':
+ - binding_type: normal
+ count: '0'
+ subnet_count: '1'
+ allowed_subnets:
+ - INTERNALnet0
+ - subnet: INTERNALnet0
+ label: connectivity_ip;subnet=INTERNALnet0
+ '1':
+ - binding_type: normal
+ count: '0'
+ subnet_count: '1'
+ allowed_subnets:
+ - INTERNALnet1
+ - subnet: INTERNALnet1
+ label: connectivity_ip;subnet=INTERNALnet1
+ '2':
+ - binding_type: normal
+ count: '1'
+ subnet_count: '1'
+ allowed_subnets:
+ - access
+ - subnet: access
+ label: servicetype=ims-0;float;nitype=published;subnet=access
+ v6_static_routes: '{}'
+ '1':
+ vnic_info:
+ '0':
+ - binding_type: normal
+ count: '0'
+ subnet_count: '1'
+ allowed_subnets:
+ - INTERNALnet0
+ - subnet: INTERNALnet0
+ label: connectivity_ip;subnet=INTERNALnet0
+ '1':
+ - binding_type: normal
+ count: '0'
+ subnet_count: '1'
+ allowed_subnets:
+ - INTERNALnet1
+ - subnet: INTERNALnet1
+ label: connectivity_ip;subnet=INTERNALnet1
+ '2':
+ - binding_type: normal
+ count: '1'
+ subnet_count: '1'
+ allowed_subnets:
+ - access
+ - subnet: access
+ label: servicetype=ims-1;float;nitype=published;subnet=access
+ v6_default_gateway: ''
+ vnic_count: 3
+ v4_static_routes: '{ "ims-0": {"subnet": "access", "dest_subnet": "2.2.2.0",
+ "mask": "255.255.255.0"}, "ims-1": {"subnet": "access", "dest_subnet":
+ "2.2.2.0", "mask": "255.255.255.0"} }'
+ v4_default_gateway: access
+ poolinfo: '["ims-0", "ims-1", "gos-0"]'
+ ssh_private_key:
+ get_attribute:
+ - NOKIA-LCP-Base
+ - PrivateKey
+ default_action:
+ get_attribute:
+ - FORMATXLATE
+ - default_action
+ ssh_public_key:
+ get_attribute:
+ - NOKIA-LCP-Base
+ - PublicKey
+ name_delimiter:
+ get_attribute:
+ - FORMATXLATE
+ - usage_info
+ - cloud_name_delimiter
+ service_template_filter:
+ substitute_service_template: LCP-PairGroup.templateServiceTemplate.yaml
+ count:
+ get_attribute:
+ - FORMATXLATE
+ - vm_counts
+ - ims
+ mandatory: false
+ default_name_base:
+ str_replace:
+ template:
+ concat:
+ - '{"": "ims$delimiter'
+ - get_property:
+ - SELF
+ - service_template_filter
+ - index_value
+ - |
+ $delimiter"}
+ params:
+ $delimiter:
+ get_attribute:
+ - FORMATXLATE
+ - usage_info
+ - cloud_name_delimiter
+ int_net_count: 2
+ group_id: '1'
+ install_config:
+ get_attribute:
+ - FORMATXLATE
+ - install_config
+ lcm_keypair:
+ get_attribute:
+ - FORMATXLATE
+ - lcm_keypair
+ current_group_count:
+ get_attribute:
+ - FORMATXLATE
+ - vm_counts
+ - ims
+ storage_size: 4
+ group_tag: ims
+ net_info_str:
+ get_attribute:
+ - NOKIA-LCP-Base
+ - NetInfoStr
+ requirements:
+ - dependency:
+ capability: tosca.capabilities.Node
+ node: NOKIA-LCP-Base
+ relationship: tosca.relationships.DependsOn
+ groups:
+ base_mso_group:
+ type: org.openecomp.groups.heat.HeatStack
+ properties:
+ heat_file: ../Artifacts/base_mso.yml
+ description: |
+ Example HOT file illustrating elasticity groups.
+ members:
+ - OAM_RRG
+ - FORMATXLATE
+ - NOKIA-LCP-Base
+ - IMS_RRG
+ outputs:
+ oam_management_v4_address:
+ description: IPV4 of the active MI service.
+ value:
+ get_input:
+ - get_input: oam_management_v4_source
+ - get_input: oam_management_v4_index
+ internal_net_info:
+ description: |
+ Internal network IDs, CIDR etc. for use by modular additions to
+ this stack.
+ value:
+ get_attribute:
+ - NOKIA-LCP-Base
+ - IntNetInfo
+ oam_management_v6_address:
+ description: IPV6 of the active MI service.
+ value:
+ get_input:
+ - get_input: oam_management_v6_source
+ - get_input: oam_management_v6_index \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-ATTGRP.template.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-ATTGRP.template.yaml
new file mode 100644
index 0000000000..33518514a8
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-ATTGRP.template.yaml
@@ -0,0 +1,352 @@
+heat_template_version: 2015-04-30
+
+description: |
+ Generate group_info for a single VM type.
+
+parameters:
+
+ vmtype_index:
+ type: number
+ description: Index of the VM type.
+
+ vmtype_list:
+ type: comma_delimited_list
+ description: List of VM type tags.
+
+ vm_info:
+ type: json
+ description: |
+ Provides keys into type-specific parameters and vnic info.
+ default: {}
+
+ availability_zones:
+ type: comma_delimited_list
+ description: CDL of availability zones.
+
+ flavors:
+ type: json
+ description: Maps VM type tags to the flavor ID for that type.
+ default: {}
+
+ name_lists:
+ type: json
+ description: Maps VM type tags to the list of VM names for that type.
+
+outputs:
+
+ # The approach used here limits the number of pairs per
+ # group that are possible but also limts the number of
+ # openstack resources used just to generate this data
+ # (vs. use of a per-pair resource group).
+
+ vmtype_info:
+ description: Group_info for one VM group.
+ value: {
+ "defaults": {
+ "flavor": {
+ "0": {get_param: [flavors, {get_param: [vmtype_list, {get_param: vmtype_index}]}]},
+ "1": {get_param: [flavors, {get_param: [vmtype_list, {get_param: vmtype_index}]}]},
+ }
+ },
+ "0": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "0", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_000"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "0", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_001"]]}
+ }
+ },
+ "1": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "1", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_010"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "1", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_011"]]}
+ }
+ },
+ "2": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "2", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_020"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "2", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_021"]]}
+ }
+ },
+ "3": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "3", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_030"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "3", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_031"]]}
+ }
+ },
+ "4": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "4", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_040"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "4", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_041"]]}
+ }
+ },
+ "5": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "5", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_050"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "5", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_051"]]}
+ }
+ },
+ "6": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "6", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_060"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "6", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_061"]]}
+ }
+ },
+ "7": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "7", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_070"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "7", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_071"]]}
+ }
+ },
+ "8": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "8", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_080"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "8", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_081"]]}
+ }
+ },
+ "9": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "9", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_090"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {ge: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "9", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_091"]]}
+ }
+ },
+ "10": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "10", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_100"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "10", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_101"]]}
+ }
+ },
+ "11": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "11", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_110"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "11", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_111"]]}
+ }
+ },
+ "12": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "12", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_120"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "12", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_121"]]}
+ }
+ },
+ "13": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "13", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_130"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "13", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_131"]]}
+ }
+ },
+ "14": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "14", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_140"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "14", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_141"]]}
+ }
+ },
+ "15": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "15", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_150"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "15", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_151"]]}
+ }
+ },
+ "16": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "16", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_160"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "16", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_161"]]}
+ }
+ },
+ "17": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "17", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_170"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "17", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_171"]]}
+ }
+ },
+ "18": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "18", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_180"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "18", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_181"]]}
+ }
+ },
+ "19": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "19", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_190"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "19", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_191"]]}
+ }
+ },
+ "20": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "20", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_200"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "20", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_201"]]}
+ }
+ },
+ "21": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "21", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_210"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "21", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_211"]]}
+ }
+ },
+ "22": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "22", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_220"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "22", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_221"]]}
+ }
+ },
+ "23": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "23", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_230"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "23", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_231"]]}
+ }
+ },
+ "24": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "24", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_240"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "24", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_241"]]}
+ }
+ },
+ "25": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "25", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_250"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "25", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_251"]]}
+ }
+ },
+ "26": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "26", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_260"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "26", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_261"]]}
+ }
+ },
+ "27": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "27", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_270"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "27", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_271"]]}
+ }
+ },
+ "28": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "28", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_280"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "28", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_281"]]}
+ }
+ },
+ "29": {
+ "0": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "29", "0", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_290"]]}
+ },
+ "1": {
+ "name": {get_param: [name_lists, {get_param: [vmtype_list, {get_param: vmtype_index}]}, {get_param: [vm_info, {get_param: [vmtype_list, {get_param: vmtype_index}]}, "29", "1", "index"]}]},
+ "storage_name": {list_join: ["", [{get_param: [vmtype_list, {get_param: vmtype_index}]}, "_volume_291"]]}
+ }
+ }
+ }
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-Base.template.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-Base.template.yaml
new file mode 100644
index 0000000000..9e0f294840
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-Base.template.yaml
@@ -0,0 +1,382 @@
+heat_template_version: 2015-04-30
+
+description: |
+ Base resources needed for all LCP based vNFs.
+
+parameters:
+
+ default_prefix:
+ type: json
+ description: |
+ Default prefix for resources. The first key is the override
+ value from the ENV file. If it is empty the result will be
+ the default value. Otherwise the result will be empty.
+
+ ext_net_info:
+ type: json
+ description: |
+ Maps the network strings used in this HOT file
+ to network info for the target cloud.
+
+ ext_net_list:
+ type: comma_delimited_list
+ description: List of applicable subnet tags.
+
+ int_net_count:
+ type: number
+ description: Number of internal networks.
+ constraints:
+ - allowed_values: [1, 2]
+
+ # The value of this parameter should not be overridden.
+ int_net1_label:
+ type: json
+ description: |
+ Map the number of internal networks to an internal net1 label
+ or the empty string.
+ default:
+ {"1": "", "2": "INTERNALnet1"}
+
+ # This parameter should always be defaulted.
+ int_net2key:
+ type: json
+ description: |
+ Maps the empty string to "default" and any other string to "".
+ default: {"": "default"}
+
+ # This parameter should always be defaulted.
+ int_net2count:
+ type: json
+ description: |
+ Used to determine whether to create an internal network resource.
+ Key'd first by the number of internal networks.
+ Then by the internal network in question (0 or 1).
+ Then by int_net2key(the provided resource UUID value).
+ default: {
+ "0": {},
+ "1": {
+ "0": {"": 0, "default": 1},
+ "1": {"": 0, "default": 0}
+ },
+ "2": {
+ "0": {"": 0, "default": 1},
+ "1": {"": 0, "default": 1}
+ }
+ }
+
+ # This parameter should always be defaulted.
+ sec_chk:
+ type: json
+ description: Used to determine how many security groups to create (0 or 1).
+ default: {
+ "step1": {"": "EMPTY"},
+ "step2": {"EMPTY": 1, "": 0}
+ }
+
+ security_group:
+ type: string
+ description: |
+ (optional) security group to use instead of generating one.
+ Because this is optional we can't use a constraint check to
+ verify that it is a security group ID ("" would fail that test).
+ default: ""
+
+ total_vm_pairs:
+ type: string
+ description: |
+ This string will evaluate to the number of PairGroups in the VNF.
+
+resources:
+
+ NOKIA-LCP-OpenSec:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: {get_param: [sec_chk, "step2", {get_param: [sec_chk, "step1", {get_param: security_group}]}]}
+ resource_def:
+ type: OS::Neutron::SecurityGroup
+ properties:
+ description: |
+ Open security settings.
+ This assumes that security is handled internal to the guest.
+ name:
+ str_replace:
+ template: $prefixOpenSecGroup
+ params:
+ $prefix: {get_param: [default_prefix, ""]}
+ rules:
+ - {direction: ingress, ethertype: IPv4}
+ - {direction: egress, ethertype: IPv4}
+ - {direction: ingress, ethertype: IPv6}
+ - {direction: egress, ethertype: IPv6}
+
+ NOKIA-LCP-Keypair:
+ type: OS::Nova::KeyPair
+ properties:
+ name:
+ str_replace:
+ template: $prefixInternalKey
+ params:
+ $prefix: {get_param: [default_prefix, ""]}
+ save_private_key: True
+
+ NOKIA-LCP-InternalNet0:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: {get_param: [int_net2count, {str_replace: {template: "$str", params: {$str: {get_param: int_net_count}}}}, "0", {get_param: [int_net2key, {get_param: [ext_net_info, "INTERNALnet0", "id"]}]}]}
+ resource_def:
+ type: OS::Neutron::Net
+ properties:
+ name:
+ str_replace:
+ template: $prefixIntNet0
+ params:
+ $prefix: {get_param: [default_prefix, ""]}
+ admin_state_up: True
+ shared: False
+
+ NOKIA-LCP-InternalNet1:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: {get_param: [int_net2count, {str_replace: {template: "$str", params: {$str: {get_param: int_net_count}}}}, "0", {get_param: [int_net2key, {get_param: [ext_net_info, "INTERNALnet1", "id"]}]}]}
+ resource_def:
+ type: OS::Neutron::Net
+ properties:
+ name:
+ str_replace:
+ template: $prefixIntNet1
+ params:
+ $prefix: {get_param: [default_prefix, ""]}
+ admin_state_up: True
+ shared: False
+
+ # The CIDR usage is really 169.254.0.0/16 but
+ # we don't want the cloud to choose any IP addresses
+ # that might also be assigned by the algorithms
+ # used by the vNF to determine internal IP addresses.
+ NOKIA-LCP-InternalSubNet0:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: {get_param: [int_net2count, {str_replace: {template: "$str", params: {$str: {get_param: int_net_count}}}}, "0", {get_param: [int_net2key, {get_param: [ext_net_info, "INTERNALnet0", "subnet_id"]}]}]}
+ resource_def:
+ type: OS::Neutron::Subnet
+ properties:
+ network:
+ str_replace:
+ template: $gen$prov
+ params:
+ $gen: {get_attr: [NOKIA-LCP-InternalNet0, refs, 0]}
+ $prov: {get_param: [ext_net_info, "INTERNALnet0", "id"]}
+ cidr: "169.254.5.0/24"
+ enable_dhcp: False
+
+ NOKIA-LCP-InternalSubNet1:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: {get_param: [int_net2count, {str_replace: {template: "$str", params: {$str: {get_param: int_net_count}}}}, "0", {get_param: [int_net2key, {get_param: [ext_net_info, "INTERNALnet1", "subnet_id"]}]}]}
+ resource_def:
+ type: OS::Neutron::Subnet
+ properties:
+ network:
+ str_replace:
+ template: $gen$prov
+ params:
+ $gen: {get_attr: [NOKIA-LCP-InternalNet1, refs, 0]}
+ $prov: {get_param: [ext_net_info, "INTERNALnet1", "id"]}
+ cidr: "169.254.9.0/24"
+ enable_dhcp: False
+
+outputs:
+
+ # Note that the generated and given security groups are mutually exclusive.
+ OpenSec:
+ description: Open security group.
+ value:
+ str_replace:
+ template: $gen$given
+ params:
+ $gen: {get_attr: [NOKIA-LCP-OpenSec, refs, 0]}
+ $given: {get_param: security_group}
+
+ PrivateKey:
+ description: Private SSH key for pre-install intra-VM communication.
+ value: {get_attr: [NOKIA-LCP-Keypair, private_key]}
+
+ PublicKey:
+ description: Public SSH key for pre-install intra-VM communication.
+ value: {get_attr: [NOKIA-LCP-Keypair, public_key]}
+
+ TotalPairCount:
+ description: |
+ This string will evaluate to the number of PairGroups in the VNF.
+ value: {get_param: total_vm_pairs}
+
+ IntNetInfo:
+ description: Internal network attributes.
+ value: {
+ "INTERNALnet0": {
+ "id": {
+ str_replace: {
+ template: "$gen$prov",
+ params: {
+ $gen: {get_attr: [NOKIA-LCP-InternalNet0, refs, 0]},
+ $prov: {get_param: [ext_net_info, "INTERNALnet0", "id"]}
+ }
+ }
+ },
+ "subnet_id": {
+ str_replace: {
+ template: "$gen$prov",
+ params: {
+ $gen: {get_attr: [NOKIA-LCP-InternalSubNet0, refs, 0]},
+ $prov: {get_param: [ext_net_info, "INTERNALnet0", "subnet_id"]}
+ }
+ }
+ },
+ "cidr": "169.254.0.0/16",
+ "default_gateway": ""
+ },
+ "INTERNALnet1": {
+ "id": {
+ str_replace: {
+ template: "$gen$prov",
+ params: {
+ $gen: {get_attr: [NOKIA-LCP-InternalNet1, refs, 0]},
+ $prov: {get_param: [ext_net_info, "INTERNALnet1", "id"]}
+ }
+ }
+ },
+ "subnet_id": {
+ str_replace: {
+ template: "$gen$prov",
+ params: {
+ $gen: {get_attr: [NOKIA-LCP-InternalSubNet1, refs, 0]},
+ $prov: {get_param: [ext_net_info, "INTERNALnet1", "subnet_id"]}
+ }
+ }
+ },
+ "cidr": "169.254.0.0/16",
+ "default_gateway": ""
+ }
+ }
+
+ NetInfoStr:
+ description: Per-subnet information in string format.
+ value:
+ str_replace:
+ template: |
+ {
+ "subnet_list": "INTERNALnet0 $intnet1 $tag00 $tag01 $tag02 $tag03 $tag04 $tag05 $tag06 $tag07 $tag08 $tag09 $tag10 $tag11",
+ "INTERNALnet0": {
+ "id": "$gennet0$provnet0",
+ "subnet_id": "$gensubnet0$provsubnet0",
+ "cidr": "169.254.0.0/16",
+ "default_gateway": ""
+ },
+ "INTERNALnet1": {
+ "id": "$gennet1$provnet1",
+ "subnet_id": "$gensubnet1$provsubnet1",
+ "cidr": "169.254.0.0/16",
+ "default_gateway": ""
+ },
+ "$tag00": {
+ "cidr": "$cidr00",
+ "default_gateway": "$gw00"
+ },
+ "$tag01": {
+ "cidr": "$cidr01",
+ "default_gateway": "$gw01"
+ },
+ "$tag02": {
+ "cidr": "$cidr02",
+ "default_gateway": "$gw02"
+ },
+ "$tag03": {
+ "cidr": "$cidr03",
+ "default_gateway": "$gw03"
+ },
+ "$tag04": {
+ "cidr": "$cidr04",
+ "default_gateway": "$gw04"
+ },
+ "$tag05": {
+ "cidr": "$cidr05",
+ "default_gateway": "$gw05"
+ },
+ "$tag06": {
+ "cidr": "$cidr06",
+ "default_gateway": "$gw06"
+ },
+ "$tag07": {
+ "cidr": "$cidr07",
+ "default_gateway": "$gw07"
+ },
+ "$tag08": {
+ "cidr": "$cidr08",
+ "default_gateway": "$gw08"
+ },
+ "$tag09": {
+ "cidr": "$cidr09",
+ "default_gateway": "$gw09"
+ },
+ "$tag10": {
+ "cidr": "$cidr10",
+ "default_gateway": "$gw10"
+ },
+ "$tag11": {
+ "cidr": "$cidr11",
+ "default_gateway": "$gw11"
+ }
+ }
+ params:
+ $intnet1: {get_param: [int_net1_label, {str_replace: {template: "$val", params: {$val: {get_param: int_net_count}}}}]}
+ $gennet0: {get_attr: [NOKIA-LCP-InternalNet0, refs, 0]}
+ $provnet0: {get_param: [ext_net_info, "INTERNALnet0", "id"]}
+ $gensubnet0: {get_attr: [NOKIA-LCP-InternalSubNet0, refs, 0]}
+ $provsubnet0: {get_param: [ext_net_info, "INTERNALnet0", "subnet_id"]}
+ $gennet1: {get_attr: [NOKIA-LCP-InternalNet1, refs, 0]}
+ $provnet1: {get_param: [ext_net_info, "INTERNALnet1", "id"]}
+ $gensubnet1: {get_attr: [NOKIA-LCP-InternalSubNet1, refs, 0]}
+ $provsubnet1: {get_param: [ext_net_info, "INTERNALnet1", "subnet_id"]}
+ $tag00: {get_param: [ext_net_list, 0]}
+ $cidr00: {get_param: [ext_net_info, {get_param: [ext_net_list, 0]}, cidr]}
+ $gw00: {get_param: [ext_net_info, {get_param: [ext_net_list, 0]}, default_gateway]}
+ $tag01: {get_param: [ext_net_list, 1]}
+ $cidr01: {get_param: [ext_net_info, {get_param: [ext_net_list, 1]}, cidr]}
+ $gw01: {get_param: [ext_net_info, {get_param: [ext_net_list, 1]}, default_gateway]}
+ $tag02: {get_param: [ext_net_list, 2]}
+ $cidr02: {get_param: [ext_net_info, {get_param: [ext_net_list, 2]}, cidr]}
+ $gw02: {get_param: [ext_net_info, {get_param: [ext_net_list, 2]}, default_gateway]}
+ $tag03: {get_param: [ext_net_list, 3]}
+ $cidr03: {get_param: [ext_net_info, {get_param: [ext_net_list, 3]}, cidr]}
+ $gw03: {get_param: [ext_net_info, {get_param: [ext_net_list, 3]}, default_gateway]}
+ $tag04: {get_param: [ext_net_list, 4]}
+ $cidr04: {get_param: [ext_net_info, {get_param: [ext_net_list, 4]}, cidr]}
+ $gw04: {get_param: [ext_net_info, {get_param: [ext_net_list, 4]}, default_gateway]}
+ $tag05: {get_param: [ext_net_list, 5]}
+ $cidr05: {get_param: [ext_net_info, {get_param: [ext_net_list, 5]}, cidr]}
+ $gw05: {get_param: [ext_net_info, {get_param: [ext_net_list, 5]}, default_gateway]}
+ $tag06: {get_param: [ext_net_list, 6]}
+ $cidr06: {get_param: [ext_net_info, {get_param: [ext_net_list, 6]}, cidr]}
+ $gw06: {get_param: [ext_net_info, {get_param: [ext_net_list, 6]}, default_gateway]}
+ $tag07: {get_param: [ext_net_list, 7]}
+ $cidr07: {get_param: [ext_net_info, {get_param: [ext_net_list, 7]}, cidr]}
+ $gw07: {get_param: [ext_net_info, {get_param: [ext_net_list, 7]}, default_gateway]}
+ $tag08: {get_param: [ext_net_list, 8]}
+ $cidr08: {get_param: [ext_net_info, {get_param: [ext_net_list, 8]}, cidr]}
+ $gw08: {get_param: [ext_net_info, {get_param: [ext_net_list, 8]}, default_gateway]}
+ $tag09: {get_param: [ext_net_list, 9]}
+ $cidr09: {get_param: [ext_net_info, {get_param: [ext_net_list, 9]}, cidr]}
+ $gw09: {get_param: [ext_net_info, {get_param: [ext_net_list, 9]}, default_gateway]}
+ $tag10: {get_param: [ext_net_list, 10]}
+ $cidr10: {get_param: [ext_net_info, {get_param: [ext_net_list, 10]}, cidr]}
+ $gw10: {get_param: [ext_net_info, {get_param: [ext_net_list, 10]}, default_gateway]}
+ $tag11: {get_param: [ext_net_list, 11]}
+ $cidr11: {get_param: [ext_net_info, {get_param: [ext_net_list, 11]}, cidr]}
+ $gw11: {get_param: [ext_net_info, {get_param: [ext_net_list, 11]}, default_gateway]}
+
+ Version:
+ description: |
+ Template file version number. This should be updated
+ each time a non-comment change is made to this file.
+ value: K1
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-OPENECOMP.template.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-OPENECOMP.template.yaml
new file mode 100644
index 0000000000..7ac9a58da6
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-OPENECOMP.template.yaml
@@ -0,0 +1,364 @@
+heat_template_version: 2015-04-30
+
+description: |
+ Template to take OPENECOMP input parameters and produce outputs
+ in the desired format for the underlying LCP HOT template files.
+
+parameters:
+
+ backup_file:
+ type: string
+ description: |
+ <cURL path>/<backup file>
+ This is only used for restore (aka "disaster recovery").
+ The value only needs to go to the OAM pair.
+ Note that there is a 255 character limit on this value.
+
+ default_action:
+ type: string
+ description: |
+ Default action for all VMs. This may be overridden for
+ specific VM groups, pairs or VMs via the ENV file.
+
+ cloud_name_delimiter:
+ type: string
+ description: |
+ Separator used between parts of a cloud resource name
+ (e.g. between the stack ID and the rest of the name).
+
+ install_config:
+ type: string
+ description: JSON formatted string of install config values.
+
+ int_vlan_id:
+ type: string
+ description: Optional VLAN ID associated with the internal network.
+ default: ""
+
+ lcm_keypair:
+ type: string
+ description: Keypair used for lifecycle management access.
+ constraints:
+ - custom_constraint: nova.keypair
+
+ ssh_access_key:
+ type: string
+ description: |
+ Optional SSH public key value for lifecycle management
+ administrative access.
+
+ v4_dns_server:
+ type: string
+ description: (optional) IPV4 DNS server.
+ default: ""
+
+ v6_dns_server:
+ type: string
+ description: (optional) IPV6 DNS server.
+ default: ""
+
+ v4_enum_server:
+ type: string
+ description: (optional) IPV4 ENUM server.
+ default: ""
+
+ v6_enum_server:
+ type: string
+ description: (optional) IPV6 ENUM server.
+ default: ""
+
+ v4_ntp_server:
+ type: string
+ description: (optional) IPV4 NTP server.
+ default: ""
+
+ v6_ntp_server:
+ type: string
+ description: (optional) IPV6 NTP server.
+ default: ""
+
+ net_types:
+ type: comma_delimited_list
+ description: CDL of subnet tags.
+ default: []
+
+ vnf_id:
+ type: string
+ description: Unique ID for this VNF instance.
+ default: ""
+
+ vnf_name:
+ type: string
+ description: Unique name for this VNF instance.
+ default: ""
+
+ vnf_module_id:
+ type: string
+ description: Unique ID for this VNF Module instance.
+ default: ""
+
+ vnf_module_name:
+ type: string
+ description: Unique name for this VNF module instance.
+ default: ""
+
+ net_ids:
+ type: json
+ description: Map NET types to the list of NET IDs.
+
+ subnet_ids:
+ type: json
+ description: Map NET types to the list of subnet IDs.
+
+ cidrs:
+ type: json
+ description: Map NET types to the list of CIDR values.
+
+ default_gateways:
+ type: json
+ description: Map NET types to the list of default gateways.
+
+ vmtype_count:
+ type: number
+ description: Number of supported VM types.
+ default: 1
+
+ vmtype_list:
+ type: comma_delimited_list
+ description: List of VM type tags.
+ default: []
+
+ vm_counts:
+ type: json
+ description: |
+ Maps VM type tags to the number of pairs of that type.
+ default: {}
+
+ vm_info:
+ type: json
+ description: Provides keys into type-specific parameters and vnic info.
+ default: {}
+
+ availability_zones:
+ type: comma_delimited_list
+ description: CDL of availability zones.
+
+ images:
+ type: json
+ description: Maps VM type tags to the image ID for that type.
+ default: {}
+
+ flavors:
+ type: json
+ description: Maps VM type tags to the flavor ID for that type.
+ default: {}
+
+ ip_lists:
+ type: json
+ description: Maps IP list parameter names to the list.
+
+ name_lists:
+ type: json
+ description: Maps VM type tags to the list of VM names for that type.
+
+ # This parameter should always be defaulted.
+ count_str_list:
+ type: comma_delimited_list
+ description: List of 2 digit list indexes.
+ default: ["00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24"]
+
+ # This parameter should always be defaulted.
+ null2zero:
+ type: json
+ default: {"": "0"}
+
+resources:
+
+ GROUPINFO:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: {get_param: vmtype_count}
+ resource_def:
+ type: LCP-ATTGRP.template.yaml
+ properties:
+ vmtype_index: '%index%'
+ vmtype_list: {get_param: vmtype_list}
+ vm_info: {get_param: vm_info}
+ availability_zones: {get_param: availability_zones}
+ flavors: {get_param: flavors}
+ name_lists: {get_param: name_lists}
+
+ GROUPXLATE:
+ depends_on:
+ - GROUPINFO
+ type: LCP-XlateL2J.template.yaml
+ properties:
+ info: {get_attr: [GROUPINFO, vmtype_info]}
+
+outputs:
+
+ backup_file:
+ description: |
+ <cURL path>/<backup file>
+ This is only used for restore (aka "disaster recovery").
+ The value only needs to go to the OAM pair.
+ Note that there is a 255 character limit on this value.
+ value: {get_param: backup_file}
+
+ default_action:
+ description: |
+ Default action for all VMs. This may be overridden for
+ specific VM groups, pairs or VMs via the ENV file.
+ value: {get_param: default_action}
+
+ install_config:
+ description: JSON formatted string of install config values.
+ value: {get_param: install_config}
+
+ lcm_keypair:
+ description: Keypair used for lifecycle management access.
+ value: {get_param: lcm_keypair}
+
+ ssh_access_key:
+ description: |
+ Optional SSH public key value for lifecycle management
+ administrative access.
+ value: {get_param: ssh_access_key}
+
+ ext_net_info:
+ description: External network info.
+ value:
+ str_replace:
+ template: {str_replace: { template: "{ $val }", params: {
+ $val: {list_join: [',', {repeat: {template: "\"$tag<%idx%>\": { \"id\": \"$net<%idx%>\", \"subnet_id\": \"$subnet<%idx%>\", \"cidr\": \"$cidr<%idx%>\", \"default_gateway\": \"$defgw<%idx%>\" }", for_each: {<%idx%>: {get_param: count_str_list}}}}]} }}}
+ params:
+ $tag00: {get_param: [net_types, 0]}
+ $net00: {get_param: [net_ids, {get_param: [net_types, 0]}]}
+ $subnet00: {get_param: [subnet_ids, {get_param: [net_types, 0]}]}
+ $cidr00: {get_param: [cidrs, {get_param: [net_types, 0]}]}
+ $defgw00: {get_param: [default_gateways, {get_param: [net_types, 0]}]}
+ $tag01: {get_param: [net_types, 1]}
+ $net01: {get_param: [net_ids, {get_param: [net_types, 1]}]}
+ $subnet01: {get_param: [subnet_ids, {get_param: [net_types, 1]}]}
+ $cidr01: {get_param: [cidrs, {get_param: [net_types, 1]}]}
+ $defgw01: {get_param: [default_gateways, {get_param: [net_types, 1]}]}
+ $tag02: {get_param: [net_types, 2]}
+ $net02: {get_param: [net_ids, {get_param: [net_types, 2]}]}
+ $subnet02: {get_param: [subnet_ids, {get_param: [net_types, 2]}]}
+ $cidr02: {get_param: [cidrs, {get_param: [net_types, 2]}]}
+ $defgw02: {get_param: [default_gateways, {get_param: [net_types, 2]}]}
+ $tag03: {get_param: [net_types, 3]}
+ $net03: {get_param: [net_ids, {get_param: [net_types, 3]}]}
+ $subnet03: {get_param: [subnet_ids, {get_param: [net_types, 3]}]}
+ $cidr03: {get_param: [cidrs, {get_param: [net_types, 3]}]}
+ $defgw03: {get_param: [default_gateways, {get_param: [net_types, 3]}]}
+ $tag04: {get_param: [net_types, 4]}
+ $net04: {get_param: [net_ids, {get_param: [net_types, 4]}]}
+ $subnet04: {get_param: [subnet_ids, {get_param: [net_types, 4]}]}
+ $cidr04: {get_param: [cidrs, {get_param: [net_types, 4]}]}
+ $defgw04: {get_param: [default_gateways, {get_param: [net_types, 4]}]}
+ $tag05: {get_param: [net_types, 5]}
+ $net05: {get_param: [net_ids, {get_param: [net_types, 5]}]}
+ $subnet05: {get_param: [subnet_ids, {get_param: [net_types, 5]}]}
+ $cidr05: {get_param: [cidrs, {get_param: [net_types, 5]}]}
+ $defgw05: {get_param: [default_gateways, {get_param: [net_types, 5]}]}
+
+ total_vm_pairs:
+ description: |
+ String that will evaluate to the total number of VM pairs.
+ value:
+ str_replace:
+ template: {list_join: ['+', {repeat: {template: "$v<%vidx%>$z<%vidx%>",
+for_each: {<%vidx%>: {get_param: count_str_list}}}}]}
+ params:
+ $v00: {get_param: [vm_counts, {get_param: [vmtype_list, 0]}]}
+ $z00: {get_param: [null2zero, {get_param: [vm_counts, {get_param: [vmtype_list, 0]}]}]}
+ $v01: {get_param: [vm_counts, {get_param: [vmtype_list, 1]}]}
+ $z01: {get_param: [null2zero, {get_param: [vm_counts, {get_param: [vmtype_list, 1]}]}]}
+ $v02: {get_param: [vm_counts, {get_param: [vmtype_list, 2]}]}
+ $z02: {get_param: [null2zero, {get_param: [vm_counts, {get_param: [vmtype_list, 2]}]}]}
+ $v03: {get_param: [vm_counts, {get_param: [vmtype_list, 3]}]}
+ $z03: {get_param: [null2zero, {get_param: [vm_counts, {get_param: [vmtype_list, 3]}]}]}
+ $v04: {get_param: [vm_counts, {get_param: [vmtype_list, 4]}]}
+ $z04: {get_param: [null2zero, {get_param: [vm_counts, {get_param: [vmtype_list, 4]}]}]}
+ $v05: {get_param: [vm_counts, {get_param: [vmtype_list, 5]}]}
+ $z05: {get_param: [null2zero, {get_param: [vm_counts, {get_param: [vmtype_list, 5]}]}]}
+ $v06: {get_param: [vm_counts, {get_param: [vmtype_list, 6]}]}
+ $z06: {get_param: [null2zero, {get_param: [vm_counts, {get_param: [vmtype_list, 6]}]}]}
+ $v07: {get_param: [vm_counts, {get_param: [vmtype_list, 7]}]}
+ $z07: {get_param: [null2zero, {get_param: [vm_counts, {get_param: [vmtype_list, 7]}]}]}
+ $v08: {get_param: [vm_counts, {get_param: [vmtype_list, 8]}]}
+ $z08: {get_param: [null2zero, {get_param: [vm_counts, {get_param: [vmtype_list, 8]}]}]}
+ $v09: {get_param: [vm_counts, {get_param: [vmtype_list, 9]}]}
+ $z09: {get_param: [null2zero, {get_param: [vm_counts, {get_param: [vmtype_list, 9]}]}]}
+ $v10: {get_param: [vm_counts, {get_param: [vmtype_list, 10]}]}
+ $z10: {get_param: [null2zero, {get_param: [vm_counts, {get_param: [vmtype_list, 10]}]}]}
+ $v11: {get_param: [vm_counts, {get_param: [vmtype_list, 11]}]}
+ $z11: {get_param: [null2zero, {get_param: [vm_counts, {get_param: [vmtype_list, 11]}]}]}
+ $v12: {get_param: [vm_counts, {get_param: [vmtype_list, 12]}]}
+ $z12: {get_param: [null2zero, {get_param: [vm_counts, {get_param: [vmtype_list, 12]}]}]}
+ $v13: {get_param: [vm_counts, {get_param: [vmtype_list, 13]}]}
+ $z13: {get_param: [null2zero, {get_param: [vm_counts, {get_param: [vmtype_list, 13]}]}]}
+ $v14: {get_param: [vm_counts, {get_param: [vmtype_list, 14]}]}
+ $z14: {get_param: [null2zero, {get_param: [vm_counts, {get_param: [vmtype_list, 14]}]}]}
+ $v15: {get_param: [vm_counts, {get_param: [vmtype_list, 15]}]}
+ $z15: {get_param: [null2zero, {get_param: [vm_counts, {get_param: [vmtype_list, 15]}]}]}
+ $v16: {get_param: [vm_counts, {get_param: [vmtype_list, 16]}]}
+ $z16: {get_param: [null2zero, {get_param: [vm_counts, {get_param: [vmtype_list, 16]}]}]}
+ $v17: {get_param: [vm_counts, {get_param: [vmtype_list, 17]}]}
+ $z17: {get_param: [null2zero, {get_param: [vm_counts, {get_param: [vmtype_list, 17]}]}]}
+ $v18: {get_param: [vm_counts, {get_param: [vmtype_list, 18]}]}
+ $z18: {get_param: [null2zero, {get_param: [vm_counts, {get_param: [vmtype_list, 18]}]}]}
+ $v19: {get_param: [vm_counts, {get_param: [vmtype_list, 19]}]}
+ $z19: {get_param: [null2zero, {get_param: [vm_counts, {get_param: [vmtype_list, 19]}]}]}
+ $v20: {get_param: [vm_counts, {get_param: [vmtype_list, 20]}]}
+ $z20: {get_param: [null2zero, {get_param: [vm_counts, {get_param: [vmtype_list, 20]}]}]}
+ $v21: {get_param: [vm_counts, {get_param: [vmtype_list, 21]}]}
+ $z21: {get_param: [null2zero, {get_param: [vm_counts, {get_param: [vmtype_list, 21]}]}]}
+ $v22: {get_param: [vm_counts, {get_param: [vmtype_list, 22]}]}
+ $z22: {get_param: [null2zero, {get_param: [vm_counts, {get_param: [vmtype_list, 22]}]}]}
+ $v23: {get_param: [vm_counts, {get_param: [vmtype_list, 23]}]}
+ $z23: {get_param: [null2zero, {get_param: [vm_counts, {get_param: [vmtype_list, 23]}]}]}
+ $v24: {get_param: [vm_counts, {get_param: [vmtype_list, 24]}]}
+ $z24: {get_param: [null2zero, {get_param: [vm_counts, {get_param: [vmtype_list, 24]}]}]}
+
+ vm_counts:
+ description: |
+ Maps VM type tags to the number of pairs of that type.
+ value: {get_param: vm_counts}
+
+ usage_info:
+ description: Usage info JSON map.
+ value: {
+ "int_vlan_id": {get_param: int_vlan_id},
+ "cloud_name_delimiter": {get_param: cloud_name_delimiter},
+ "defaults": {
+ "image": {
+ "0": {get_param: [images, {get_param: [vmtype_list, 0]}]},
+ "1": {get_param: [images, {get_param: [vmtype_list, 0]}]}
+ },
+ availability_zone: {
+ "0": {get_param: [availability_zones, 0]},
+ "1": {get_param: [availability_zones, 1]}
+ },
+ storage_zone: {
+ "0": "nova",
+ "1": "nova"
+ },
+ "binding_type": "normal"
+ },
+ "v4_dns_server": {get_param: v4_dns_server},
+ "v6_dns_server": {get_param: v6_dns_server},
+ "v4_enum_server": {get_param: v4_enum_server},
+ "v6_enum_server": {get_param: v6_enum_server},
+ "v4_ntp_server": {get_param: v4_ntp_server},
+ "v6_ntp_server": {get_param: v6_ntp_server},
+ "vnf_id": {get_param: vnf_id},
+ "vnf_name": {get_param: vnf_name},
+ "vnf_module_id": {get_param: vnf_module_id},
+ "vnf_module_name": {get_param: vnf_module_name},
+ "ATT_ip_lists": {get_param: ip_lists},
+ "ATT_vm_info": {get_param: vm_info},
+ "group_info": {get_attr: [GROUPXLATE, jout]}
+ }
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-PairGroup.template.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-PairGroup.template.yaml
new file mode 100644
index 0000000000..224165b9d8
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-PairGroup.template.yaml
@@ -0,0 +1,687 @@
+heat_template_version: 2015-04-30
+
+description: |
+ Template for a member of an elastic collection of VMgroups.
+ That is, this template creates the resources needed for one
+ VMgroup...one unit of elasticity of the specified type.
+
+parameters:
+
+ backup_file:
+ type: string
+ description: |
+ <cURL path>/<backup file>
+ This is only used for restore (aka "disaster recovery") and
+ only referenced on OAM-A.
+ default: ""
+
+ default_action:
+ type: string
+ description: |
+ Default action for all VMs. This can be overridden on a
+ per-VM group, pair or VM basis via the ENV file.
+ constraints:
+ - allowed_values:
+ - "install"
+ - "recreate"
+ - "scale-in"
+ - "scale-out"
+ - "scale-up"
+ - "scale-down"
+ - "heal"
+ - "update"
+ default: "install"
+
+ # This parameter should always be defaulted.
+ chk4override:
+ type: json
+ description: |
+ Used to set a string value to either a default from a json
+ map (keyed by "default") or to a VM member_index keyed override
+ value in the same map.
+ default: {"": "defaults"}
+
+ config_info:
+ type: json
+ description: Service configuration and network layout.
+ default: {}
+
+ # This parameter should always be defaulted.
+ default_names:
+ type: json
+ description: |
+ Default names for resources. The first key is the override
+ value from the ENV file. If it is empty the result will be
+ the default value map. Otherwise the result will be empty.
+ default: {
+ "": {
+ "storage": {
+ "0": "STORAGE_VOL0",
+ "1": "STORAGE_VOL1"
+ },
+ "drdb": {
+ "0": "DRBD_VOL0",
+ "1": "DRBD_VOL1",
+ },
+ "vmname": {
+ "0": "VM0",
+ "1": "VM1"
+ }
+ }
+ }
+
+ default_name_base:
+ type: json
+ description: |
+ Default name base for resources. The first key is the override
+ value from the ENV file. If it is empty the result will be
+ the default value. Otherwise the result will be empty.
+
+ ext_net_info:
+ type: json
+ description: External network info. Keyed by subnet tag.
+
+ group_id:
+ type: string
+ description: ID number of the elastic group this pair is a member of.
+
+ group_index:
+ type: string
+ description: Index of the VM pair within the elastic group.
+
+ group_tag:
+ type: string
+ description: Key into "usage_info" for members of this elastic group.
+
+ install_config:
+ type: string
+ description: JSON formatted string of install config values.
+
+ int_net_count:
+ type: string
+ description: Number of internal networks.
+
+ # This parameter should always be defaulted.
+ int_net_map:
+ type: json
+ description: |
+ Maps the number of internal networks to the resource string
+ used to get the first external vnic IP addresses.
+ default: {
+ "1": "resource.1",
+ "2": "resource.2"
+ }
+
+ int_net_info:
+ type: json
+ description: Internal network info. Keyed by INTERNALnet[0|1].
+
+ lcm_keypair:
+ type: string
+ description: Lifecycle management access key pair.
+ constraints:
+ - custom_constraint: nova.keypair
+ default: ""
+
+ current_group_count:
+ type: string
+ description: |
+ Current VM pair count within the elastic group.
+
+ certificate:
+ type: string
+ description: |
+ Certificate to use when accessing data from from secure URLs.
+ default: ""
+
+ name_delimiter:
+ type: string
+ description: Flexname name prefix/suffix delimiter.
+ default: "-"
+
+ net_info_str:
+ type: string
+ description: |
+ JSON formatted string with all network info.
+ This is redundant with int_net_info and ext_net_info except
+ in Kilo there is no way to convert json to string for
+ output as a personality file.
+
+ role:
+ type: string
+ description: VM role during LCM activities.
+ constraints:
+ - allowed_values: ["oam", "other"]
+ default: "other"
+
+ sec_group:
+ type: string
+ description: All-open security group UUID.
+
+ ssh_public_key:
+ type: string
+ description: Public SSH key for VM to VM communication in this system.
+
+ ssh_private_key:
+ type: string
+ description: Private SSH key for VM to VM communication in this system.
+ hidden: True
+
+ ssh_access_key:
+ type: string
+ description: Public SSH key for external access.
+ default: ""
+
+ stack:
+ type: string
+ description: Stack name.
+ constraints:
+ - allowed_pattern: "^[a-zA-Z0-9][a-zA-Z0-9_-]*$"
+
+ storage_size:
+ type: number
+ description: Size of /storage in GB.
+ default: 4
+
+ total_pair_count:
+ type: string
+ description: |
+ This string will evaluate to the number of PairGroups in the VNF.
+
+ usage_info:
+ type: json
+ description: |
+ Per-VM/vNIC data for members of this elastic group.
+
+ # This parameter should always be defaulted.
+ validation_info:
+ type: json
+ description: |
+ Dummy data to work around Oopenstack template validation issue
+ https://bugs.launchpad.net/heat/+bug/1559807
+ The two layers of "defaults" keys supports use of
+ chk4override at two levels.
+ default: {
+ "defaults": {
+ "defaults": {
+ "image": "dummyImage",
+ }
+ }
+ }
+
+resources:
+
+ NOKIA-LCP-RandomA:
+ type: OS::Heat::RandomString
+ properties:
+ length: 512
+
+ NOKIA-LCP-Block-StorageA:
+ type: OS::Cinder::Volume
+ properties:
+ description: Used for VM /storage partition.
+ name:
+ str_replace:
+ template: $stk$delim$base$override$default
+ params:
+ $base: {get_param: [default_name_base, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "0", "storage_name"]}]}
+ $default: {get_param: [default_names, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "0", "storage_name"]}, "storage", "0"]}
+ $override: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "0", "storage_name"]}
+ $delim: {get_param: name_delimiter}
+ $stk: {get_param: stack}
+ size: {get_param: storage_size}
+ availability_zone:
+ str_replace:
+ template: $override$default
+ params:
+ $default: {get_param: [usage_info, {get_param: [chk4override, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "0", "storage_zone"]}]}, "storage_zone", "0"]}
+ $override: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "0", "storage_zone"]}
+
+ NOKIA-LCP-BlockAttachA:
+ type: OS::Cinder::VolumeAttachment
+ depends_on:
+ - NOKIA-LCP-VMA
+ - NOKIA-LCP-Block-StorageA
+ properties:
+ instance_uuid: {get_resource: NOKIA-LCP-VMA}
+ volume_id: {get_resource: NOKIA-LCP-Block-StorageA}
+
+ NOKIA-LCP-VMportGroupA:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: {get_param: [config_info, vnic_count]}
+ resource_def:
+ type: LCP-Port.template.yaml
+ properties:
+ default_name_base:
+ str_replace:
+ template: |
+ {"": "$base$vm"}
+ params:
+ $base: {get_param: [default_name_base, ""]}
+ $vm: {get_param: [default_names, "", "vmname", "0"]}
+ group_index: {get_param: group_index}
+ vm_index: "0"
+ vnic_index: '%index%'
+ config_info: {get_param: config_info}
+ ext_net_info: {get_param: ext_net_info}
+ int_net_info: {get_param: int_net_info}
+ group_tag: {get_param: group_tag}
+ group_id: {get_param: group_id}
+ name_delimiter: {get_param: name_delimiter}
+ open_sec_group: {get_param: sec_group}
+ stack: {get_param: stack}
+ usage_info: {get_param: usage_info}
+
+ NOKIA-LCP-VMA:
+ type: OS::Nova::Server
+ depends_on:
+ - NOKIA-LCP-Block-StorageA
+ - NOKIA-LCP-RandomA
+ - NOKIA-LCP-VMportGroupA
+ properties:
+ name:
+ str_replace:
+ template: $stk$delim$base$override$default
+ params:
+ $base: {get_param: [default_name_base, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "0", "name"]}]}
+ $default: {get_param: [default_names, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "0", "name"]}, "vmname", "0"]}
+ $override: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "0", "name"]}
+ $delim: {get_param: name_delimiter}
+ $stk: {get_param: stack}
+ availability_zone:
+ str_replace:
+ template: $override$default
+ params:
+ $default: {get_param: [usage_info, {get_param: [chk4override, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "0", "availability_zone"]}]}, "availability_zone", "0"]}
+ $override: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "0", "availability_zone"]}
+ image:
+ str_replace:
+ template: $override$default$validate
+ params:
+ $default: {get_param: [usage_info, {get_param: [chk4override, {get_param: [usage_info, "group_info", {get_param: group_id}, "overrides", "image", "0"]}]}, "image", "0"]}
+ $override: {get_param: [usage_info, "group_info", {get_param: group_id}, "overrides", "image", "0"]}
+ $validate: {get_param: [validation_info, {get_param: [chk4override, {get_param: [usage_info, "group_info", {get_param: group_id}, "overrides", "image", "0"]}]}, {get_param: [chk4override, {get_param: [usage_info, "defaults", "image", "0"]}]}, "image"]}
+ image_update_policy: REBUILD
+ flavor:
+ str_replace:
+ template: $override$default
+ params:
+ $default: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: [chk4override, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "0", "flavor"]}]}, "flavor", "0"]}
+ $override: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "0", "flavor"]}
+ networks: [{get_attr: [NOKIA-LCP-VMportGroupA, PortEntry]}]
+ key_name: {get_param: lcm_keypair}
+ # Note that the flavor default and override values are included
+ # in CLDsetup.json to force a VM rebuild (instead of replace or resize)
+ # if the VM flavor is changed.
+ personality: {
+ /storage/cloud/.ssh/SSHpubkey: {get_param: ssh_public_key},
+ /storage/cloud/.ssh/SSHprivkey: {get_param: ssh_private_key},
+ /storage/cloud/CLDsetup_data.json: {
+ str_replace: {
+ template: "{\n
+ \t\"drbd_uuid\": \"\",\n
+ \t\"flavor_default\": \"$flavor_default\",\n
+ \t\"flavor_override\": \"$flavor_override\",\n
+ \t\"int_vlan_id\": \"$int_vlan_id\",\n
+ \t\"random\": \"$random\",\n
+ \t\"SSHpubkeyFile\": \"/storage/cloud/.ssh/SSHpubkey\",\n
+ \t\"SSHprivkeyFile\": \"/storage/cloud/.ssh/SSHprivkey\",\n
+ \t\"SSHaccessKey\": \"$acckey\",\n
+ \t\"stk\": \"$stk\",\n
+ \t\"uuid_storage\": \"$uuid_storage\"\n
+ }",
+ params: {
+ $acckey: {get_param: ssh_access_key},
+ $flavor_default: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: [chk4override, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "0", "flavor"]}]}, "flavor", "0"]},
+ $flavor_override: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "0", "flavor"]},
+ $int_vlan_id: {get_param: [usage_info, int_vlan_id]},
+ $random: {get_resource: NOKIA-LCP-RandomA},
+ $stk: {get_param: stack},
+ $uuid_storage: {get_resource: NOKIA-LCP-Block-StorageA}
+ }
+ }
+ },
+ /storage/cloud/discover/GlobalConfig.json: {
+ str_replace: {
+ template: "
+ {
+ \"v4_dns_server\": \"$v4dns\",
+ \"v6_dns_server\": \"$v6dns\",
+ \"v4_enum_server\": \"$v4enum\",
+ \"v6_enum_server\": \"$v6enum\",
+ \"v4_ntp_server\": \"$v4ntp\",
+ \"v6_ntp_server\": \"$v6ntp\",
+ $cfg
+ }
+ ",
+ params: {
+ $v4dns: {get_param: [usage_info, v4_dns_server]},
+ $v6dns: {get_param: [usage_info, v6_dns_server]},
+ $v4enum: {get_param: [usage_info, v4_enum_server]},
+ $v6enum: {get_param: [usage_info, v6_enum_serve]},
+ $v4ntp: {get_param: [usage_info, v4_ntp_server]},
+ $v6ntp: {get_param: [usage_info, v6_ntp_server]},
+ $cfg: {get_param: install_config}
+ }
+ }
+ },
+ /storage/cloud/discover/VMinfo.json: {
+ str_replace: {
+ template: "
+ {\n
+ \"vm_suffix\": \"$base$override$default\",\n
+ \"service_config\": $servcfg,\n
+ \"v4_default_gateway\": \"$v4gateway\",\n
+ \"v6_default_gateway\": \"$v6gateway\",\n
+ \"v4_static_routes\": $v4static_routes,\n
+ \"v6_static_routes\": $v6static_routes,\n
+ \"IPinfo\": [\n$ipinfo\n],\n
+ \"Netinfo\": $netinfo\n
+ }\n
+ ",
+ params: {
+ $base: {get_param: [default_name_base, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "0", name]}]},
+ $default: {get_param: [default_names, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "0", name]}, "vmname", "0"]},
+ $override: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "0", name]},
+ $servcfg: {get_param: [config_info, poolinfo]},
+ $v4gateway: {get_param: [config_info, v4_default_gateway]},
+ $v6gateway: {get_param: [config_info, v6_default_gateway]},
+ $v4static_routes: {get_param: [config_info, v4_static_routes]},
+ $v6static_routes: {get_param: [config_info, v6_static_routes]},
+ $ipinfo: {list_join: [',', {get_attr: [NOKIA-LCP-VMportGroupA, PortIpInfo]}]},
+ $netinfo: {get_param: net_info_str}
+ }
+ }
+ },
+ }
+ config_drive: "true"
+ metadata: {
+ action: {
+ str_replace: {
+ template: "$pairside$vm",
+ params: {
+ $pairside: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: [chk4override, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "0", "action"]}]}, "action", "0"]},
+ $vm: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "0", action]}
+ }
+ }
+ },
+ backup_file: {get_param: backup_file},
+ default_action: {get_param: default_action},
+ group_type: "pair",
+ group_index: {get_param: group_index},
+ current_group_count: {get_param: current_group_count},
+ certificate: {get_param: certificate},
+ member_index: "0",
+ side_action: {get_param: [usage_info, defaults, action, "0"]},
+ total_pair_count: {get_param: total_pair_count},
+ vnf_id: {get_param: [usage_info, vnf_id]},
+ vnf_name: {get_param: [usage_info, vnf_name]},
+ vnf_module_id: {get_param: [usage_info, vnf_module_id]},
+ vnf_module_name: {get_param: [usage_info, vnf_module_name]},
+ vnf_role: {get_param: group_tag}
+ }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+
+ tmp=$(/opt/LSS/sbin/CLDbase "pair" "$tag" "$grp_id" "$grp_index" "0" "$role")
+ ret=$?
+
+ if (( ret != 0 )); then
+ echo "CLDbase failed, ret=${ret}: ${tmp}"
+ exit 1
+ fi
+ exit 0
+ params:
+ $grp_id: {get_param: group_id}
+ $grp_index: {get_param: group_index}
+ $role: {get_param: role}
+ $tag: {get_param: group_tag}
+
+ NOKIA-LCP-RandomB:
+ type: OS::Heat::RandomString
+ properties:
+ length: 512
+
+ NOKIA-LCP-Block-StorageB:
+ type: OS::Cinder::Volume
+ properties:
+ description: Used for VM /storage partition.
+ name:
+ str_replace:
+ template: $stk$delim$base$override$default
+ params:
+ $base: {get_param: [default_name_base, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "1", "storage_name"]}]}
+ $default: {get_param: [default_names, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "1", "storage_name"]}, "storage", "1"]}
+ $override: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "1", "storage_name"]}
+ $delim: {get_param: name_delimiter}
+ $stk: {get_param: stack}
+ size: {get_param: storage_size}
+ availability_zone:
+ str_replace:
+ template: $override$default
+ params:
+ $default: {get_param: [usage_info, {get_param: [chk4override, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "1", "storage_zone"]}]}, "storage_zone", "1"]}
+ $override: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "1", "storage_zone"]}
+
+ NOKIA-LCP-BlockAttachB:
+ type: OS::Cinder::VolumeAttachment
+ depends_on:
+ - NOKIA-LCP-VMB
+ - NOKIA-LCP-Block-StorageB
+ properties:
+ instance_uuid: {get_resource: NOKIA-LCP-VMB}
+ volume_id: {get_resource: NOKIA-LCP-Block-StorageB}
+
+ NOKIA-LCP-VMportGroupB:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: {get_param: [config_info, vnic_count]}
+ resource_def:
+ type: LCP-Port.template.yaml
+ properties:
+ default_name_base:
+ str_replace:
+ template: |
+ {"": "$base$vm"}
+ params:
+ $base: {get_param: [default_name_base, ""]}
+ $vm: {get_param: [default_names, "", "vmname", "1"]}
+ group_index: {get_param: group_index}
+ vm_index: "1"
+ vnic_index: '%index%'
+ config_info: {get_param: config_info}
+ ext_net_info: {get_param: ext_net_info}
+ int_net_info: {get_param: int_net_info}
+ group_tag: {get_param: group_tag}
+ group_id: {get_param: group_id}
+ name_delimiter: {get_param: name_delimiter}
+ open_sec_group: {get_param: sec_group}
+ stack: {get_param: stack}
+ usage_info: {get_param: usage_info}
+
+ NOKIA-LCP-VMB:
+ type: OS::Nova::Server
+ depends_on:
+ - NOKIA-LCP-Block-StorageB
+ - NOKIA-LCP-RandomB
+ - NOKIA-LCP-VMportGroupB
+ properties:
+ name:
+ str_replace:
+ template: $stk$delim$base$override$default
+ params:
+ $base: {get_param: [default_name_base, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "1", "name"]}]}
+ $default: {get_param: [default_names, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "1", "name"]}, "vmname", "1"]}
+ $override: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "1", "name"]}
+ $delim: {get_param: name_delimiter}
+ $stk: {get_param: stack}
+ availability_zone:
+ str_replace:
+ template: $override$default
+ params:
+ $default: {get_param: [usage_info, {get_param: [chk4override, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "1", "availability_zone"]}]}, "availability_zone", "1"]}
+ $override: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "1", "availability_zone"]}
+ image:
+ str_replace:
+ template: $override$default$validate
+ params:
+ $default: {get_param: [usage_info, {get_param: [chk4override, {get_param: [usage_info, "group_info", {get_param: group_id}, "overrides", "image", "1"]}]}, "image", "1"]}
+ $override: {get_param: [usage_info, "group_info", {get_param: group_id}, "overrides", "image", "1"]}
+ $validate: {get_param: [validation_info, {get_param: [chk4override, {get_param: [usage_info, "group_info", {get_param: group_id}, "overrides", "image", "1"]}]}, {get_param: [chk4override, {get_param: [usage_info, "defaults", "image", "1"]}]}, "image"]}
+ image_update_policy: REBUILD
+ flavor:
+ str_replace:
+ template: $override$default
+ params:
+ $default: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: [chk4override, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "1", "flavor"]}]}, "flavor", "1"]}
+ $override: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "1", "flavor"]}
+ key_name: {get_param: lcm_keypair}
+ networks: [{get_attr: [NOKIA-LCP-VMportGroupB, PortEntry]}]
+ # Note that the flavor default and override values are included
+ # in CLDsetup.json to force a VM rebuild (instead of replace or resize)
+ # if the VM flavor is changed.
+ personality: {
+ /storage/cloud/.ssh/SSHpubkey: {get_param: ssh_public_key},
+ /storage/cloud/.ssh/SSHprivkey: {get_param: ssh_private_key},
+ /storage/cloud/CLDsetup_data.json: {
+ str_replace: {
+ template: "{\n
+ \t\"drbd_uuid\": \"\",\n
+ \t\"flavor_default\": \"$flavor_default\",\n
+ \t\"flavor_override\": \"$flavor_override\",\n
+ \t\"int_vlan_id\": \"$int_vlan_id\",\n
+ \t\"random\": \"$random\",\n
+ \t\"SSHpubkeyFile\": \"/storage/cloud/.ssh/SSHpubkey\",\n
+ \t\"SSHprivkeyFile\": \"/storage/cloud/.ssh/SSHprivkey\",\n
+ \t\"SSHaccessKey\": \"$acckey\",\n
+ \t\"stk\": \"$stk\",\n
+ \t\"uuid_storage\": \"$uuid_storage\"\n
+ }",
+ params: {
+ $acckey: {get_param: ssh_access_key},
+ $flavor_default: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: [chk4override, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "1", "flavor"]}]}, "flavor", "1"]},
+ $flavor_override: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "1", "flavor"]},
+ $int_vlan_id: {get_param: [usage_info, int_vlan_id]},
+ $random: {get_resource: NOKIA-LCP-RandomB},
+ $stk: {get_param: stack},
+ $uuid_storage: {get_resource: NOKIA-LCP-Block-StorageB}
+ }
+ }
+ },
+ /storage/cloud/discover/GlobalConfig.json: {
+ str_replace: {
+ template: "
+ {
+ \"v4_dns_server\": \"$v4dns\",
+ \"v6_dns_server\": \"$v6dns\",
+ \"v4_enum_server\": \"$v4enum\",
+ \"v6_enum_server\": \"$v6enum\",
+ \"v4_ntp_server\": \"$v4ntp\",
+ \"v6_ntp_server\": \"$v6ntp\",
+ $cfg
+ }
+ ",
+ params: {
+ $v4dns: {get_param: [usage_info, v4_dns_server]},
+ $v6dns: {get_param: [usage_info, v6_dns_server]},
+ $v4enum: {get_param: [usage_info, v4_enum_server]},
+ $v6enum: {get_param: [usage_info, v6_enum_serve]},
+ $v4ntp: {get_param: [usage_info, v4_ntp_server]},
+ $v6ntp: {get_param: [usage_info, v6_ntp_server]},
+ $cfg: {get_param: install_config}
+ }
+ }
+ },
+ /storage/cloud/discover/VMinfo.json: {
+ str_replace: {
+ template: "
+ {\n
+ \"vm_suffix\": \"$base$override$default\",
+ \"service_config\": $servcfg,\n
+ \"v4_default_gateway\": \"$v4gateway\",\n
+ \"v6_default_gateway\": \"$v6gateway\",\n
+ \"v4_static_routes\": $v4static_routes,\n
+ \"v6_static_routes\": $v6static_routes,\n
+ \"IPinfo\": [\n$ipinfo\n],\n
+ \"Netinfo\": $netinfo\n
+ }\n
+ ",
+ params: {
+ $base: {get_param: [default_name_base, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "1", name]}]},
+ $default: {get_param: [default_names, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "1", name]}, "vmname", "1"]},
+ $override: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "1", name]},
+ $servcfg: {get_param: [config_info, poolinfo]},
+ $v4gateway: {get_param: [config_info, v4_default_gateway]},
+ $v6gateway: {get_param: [config_info, v6_default_gateway]},
+ $v4static_routes: {get_param: [config_info, v4_static_routes]},
+ $v6static_routes: {get_param: [config_info, v6_static_routes]},
+ $ipinfo: {list_join: [',', {get_attr: [NOKIA-LCP-VMportGroupB, PortIpInfo]}]},
+ $netinfo: {get_param: net_info_str}
+ }
+ }
+ },
+ }
+ config_drive: "true"
+ metadata: {
+ action: {
+ str_replace: {
+ template: "$pairside$vm",
+ params: {
+ $pairside: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: [chk4override, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "1", "action"]}]}, "action", "1"]},
+ $vm: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, "1", action]}
+ }
+ }
+ },
+ backup_file: {get_param: backup_file},
+ default_action: {get_param: default_action},
+ group_type: "pair",
+ group_index: {get_param: group_index},
+ current_group_count: {get_param: current_group_count},
+ certificate: {get_param: certificate},
+ member_index: "1",
+ side_action: {get_param: [usage_info, defaults, action, "1"]},
+ total_pair_count: {get_param: total_pair_count},
+ vnf_id: {get_param: [usage_info, vnf_id]},
+ vnf_name: {get_param: [usage_info, vnf_name]},
+ vnf_module_id: {get_param: [usage_info, vnf_module_id]},
+ vnf_module_name: {get_param: [usage_info, vnf_module_name]},
+ vnf_role: {get_param: group_tag}
+ }
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+
+ tmp=$(/opt/LSS/sbin/CLDbase "pair" "$tag" "$grp_id" "$grp_index" "1" "$role")
+ ret=$?
+
+ if (( ret != 0 )); then
+ echo "CLDbase failed, ret=${ret}: ${tmp}"
+ exit 1
+ fi
+ exit 0
+ params:
+ $grp_id: {get_param: group_id}
+ $grp_index: {get_param: group_index}
+ $role: {get_param: role}
+ $tag: {get_param: group_tag}
+
+outputs:
+
+ Version:
+ description: |
+ Template file version number. This should be updated
+ each time a non-comment change is made to this file.
+ value: K1
+
+ VMA-EXT_IPS:
+ description: IP addresses assigned to the first external network.
+ value: {get_attr: [NOKIA-LCP-VMportGroupA, {get_param: [int_net_map, {get_param: int_net_count}]}, ASSIGNED_IPS]}
+
+ VMB-EXT_IPS:
+ description: IP addresses assigned to the first external network.
+ value: {get_attr: [NOKIA-LCP-VMportGroupB, {get_param: [int_net_map, {get_param: int_net_count}]}, ASSIGNED_IPS]}
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-Port.template.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-Port.template.yaml
new file mode 100644
index 0000000000..ebaadc444a
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-Port.template.yaml
@@ -0,0 +1,719 @@
+heat_template_version: 2015-04-30
+
+description: |
+ Wrapper used to create an OS::Neutron::Port for a particular
+ vNIC for each VM in a group.
+
+parameters:
+
+ # This parameter should not be overridden.
+ abe2ip:
+ type: json
+ description: |
+ Step 1 maps "anything but empty" (abe) to an empty string
+ and an empty string to "no_comma".
+ Step 2 maps an empty string to: "ip_address": "
+ (i.e. part of ip_address json entry).
+ Step 3 maps an empty string to the closing quote of the json entry.
+ default: {
+ "step1": {"": "no_comma"},
+ "step2": {"": ", \"ip_address\": \""},
+ "step3": {"": "\""}
+ }
+
+
+ # This parameter should not be overridden.
+ getkey:
+ type: json
+ description: |
+ Maps the empty string to "EMPTY" and anything else to "".
+ This is used in generating PortIpInfo where we only want
+ to produce output for lines in the ENV that are actually
+ populated (checking if subnet is set is good enough).
+ default: {"": "EMPTY"}
+
+ # This parameter should not be overridden.
+ checkit:
+ type: json
+ description: |
+ Used to get the str_replace template lines for PortIpInfo.
+ Combined with getkey use of this map will result in only
+ including populated lines in the output.
+ default: {
+ "EMPTY": {},
+ "": {
+ "0": '{"label":"$label00", "subnet":"$snet00", "ip":"$rip00$arip00"},',
+ "1": '{"label":"$label01", "subnet":"$snet01", "ip":"$rip01$arip01"},',
+ "2": '{"label":"$label02", "subnet":"$snet02", "ip":"$rip02$arip02"},',
+ "3": '{"label":"$label03", "subnet":"$snet03", "ip":"$rip03$arip03"},',
+ "4": '{"label":"$label04", "subnet":"$snet04", "ip":"$rip04$arip04"},',
+ "5": '{"label":"$label05", "subnet":"$snet05", "ip":"$rip05$arip05"},',
+ "6": '{"label":"$label06", "subnet":"$snet06", "ip":"$rip06$arip06"},',
+ "7": '{"label":"$label07", "subnet":"$snet07", "ip":"$rip07$arip07"},',
+ "8": '{"label":"$label08", "subnet":"$snet08", "ip":"$rip08$arip08"},',
+ "9": '{"label":"$label09", "subnet":"$snet09", "ip":"$rip09$arip09"},',
+ "10": '{"label":"$label10", "subnet":"$snet10", "ip":"$rip10$arip10"},',
+ "11": '{"label":"$label11", "subnet":"$snet11", "ip":"$rip11$arip11"},',
+ "12": '{"label":"$label12", "subnet":"$snet12", "ip":"$rip12$arip12"},',
+ "13": '{"label":"$label13", "subnet":"$snet13", "ip":"$rip13$arip13"},',
+ "14": '{"label":"$label14", "subnet":"$snet14", "ip":"$rip14$arip14"},',
+ "15": '{"label":"$label15", "subnet":"$snet15", "ip":"$rip15$arip15"},',
+ "16": '{"label":"$label16", "subnet":"$snet16", "ip":"$rip16$arip16"},',
+ "17": '{"label":"$label17", "subnet":"$snet17", "ip":"$rip17$arip17"},',
+ "18": '{"label":"$label18", "subnet":"$snet18", "ip":"$rip18$arip18"},',
+ "19": '{"label":"$label19", "subnet":"$snet19", "ip":"$rip19$arip19"},',
+ "20": '{"label":"$label20", "subnet":"$snet20", "ip":"$rip20$arip20"},',
+ "21": '{"label":"$label21", "subnet":"$snet21", "ip":"$rip21$arip21"},',
+ "22": '{"label":"$label22", "subnet":"$snet22", "ip":"$rip22$arip22"},',
+ "23": '{"label":"$label23", "subnet":"$snet23", "ip":"$rip23$arip23"},',
+ "24": '{"label":"$label24", "subnet":"$snet24", "ip":"$rip24$arip24"},',
+ "25": '{"label":"$label25", "subnet":"$snet25", "ip":"$rip25$arip25"},'
+ }
+ }
+
+ config_info:
+ type: json
+ description: VM configuration info.
+
+ # This parameter should not be overridden.
+ default_name:
+ type: json
+ description: |
+ Default port names. The first key is the override value from
+ the ENV file. The second key is the vnic index.
+ Note that if the override value is empty the default name is
+ found. If the override value is not empty the empty string is found.
+ default: {
+ "": {
+ "0": "eth0", "1": "eth1", "2": "eth2", "3": "eth3", "4": "eth4",
+ "5": "eth5", "6": "eth6", "7": "eth7", "8": "eth8", "9": "eth9",
+ "10": "eth10", "11": "eth11", "12": "eth12", "13": "eth13",
+ "14": "eth14", "15": "eth15"
+ }
+ }
+
+ default_name_base:
+ type: json
+ description: |
+ Default base name for resources. The first key is the override
+ value from the ENV file. If it is empty the result will be
+ the default value. Otherwise the result will be empty.
+
+ group_index:
+ type: string
+ description: Index of the VM pair within the elastic group.
+
+ group_tag:
+ type: string
+ description: Key into "usage_info" for members of this elastic group.
+
+ group_id:
+ type: string
+ description: ID number of the elastic group this pair is a member of.
+
+ ext_net_info:
+ type: json
+ description: Information about all provider subnets.
+
+ int_net_info:
+ type: json
+ description: Information about internal networks.
+
+ name_delimiter:
+ type: string
+ description: Flexname name prefix/suffix delimiter.
+
+ open_sec_group:
+ type: string
+ description: UUID of the open security group.
+
+ override_chk:
+ type: json
+ description: Maps anything but empty to empty and empty to "defaults".
+ default: {"": "defaults"}
+
+ # This parameter should not be overridden.
+ int_net_chk:
+ type: json
+ description: |
+ Index in with the subnet ID from the external network
+ and then with the desired subnet ID. If the internal networks
+ are provider networks then the result will be "". Otherwise
+ it will be the desired subnet ID which can be used to key
+ into int_net_info to get the UUID.
+ default: {
+ "": {"INTERNALnet0": "INTERNALnet0", "INTERNALnet1": "INTERNALnet1"},
+ }
+
+ stack:
+ type: string
+ description: Stack name.
+ constraints:
+ - allowed_pattern: "^[a-zA-Z0-9][a-zA-Z0-9_-]*$"
+
+ usage_info:
+ type: json
+ description: Per-vnic/per-VM network usage info (e.g. IP address values).
+
+ vm_index:
+ type: string
+ description: VM group member index.
+
+ vnic_index:
+ type: string
+ description: VNIC number within the VM.
+
+resources:
+
+ # When looking at access into the config_info per_VM vnic_info attribute,
+ # keep in mind that the 0th entry holds the count of requested IPs so
+ # the "0th" IP is in entry 1 and so on.
+
+ # Get CIDRs of all subnets to generate the allowed_address_pairs list.
+ #
+ # Note that there will only be at most one internal subnet on
+ # any VNIC (and there won't be an external at the same time).
+ NOKIA-LCP-CIDRxlate:
+ type: LCP-Xlate.template.yaml
+ properties:
+ info:
+ str_replace:
+ template: |
+ {
+ "0": {"ip_address": "$int000$ext000"},
+ "1": {"ip_address": "$ext001"},
+ "2": {"ip_address": "$ext002"},
+ "3": {"ip_address": "$ext003"},
+ "4": {"ip_address": "$ext004"},
+ "5": {"ip_address": "$ext005"},
+ "6": {"ip_address": "$ext006"},
+ "7": {"ip_address": "$ext007"},
+ "8": {"ip_address": "$ext008"},
+ "9": {"ip_address": "$ext009"},
+ "10": {"ip_address": "$ext010"},
+ "11": {"ip_address": "$ext011"},
+ "12": {"ip_address": "$ext012"},
+ "13": {"ip_address": "$ext013"},
+ "14": {"ip_address": "$ext014"},
+ "15": {"ip_address": "$ext015"},
+ "16": {"ip_address": "$ext016"},
+ "17": {"ip_address": "$ext017"},
+ "18": {"ip_address": "$ext018"},
+ "19": {"ip_address": "$ext019"},
+ "20": {"ip_address": "$ext020"},
+ "21": {"ip_address": "$ext021"},
+ "22": {"ip_address": "$ext022"},
+ "23": {"ip_address": "$ext023"},
+ "24": {"ip_address": "$ext024"},
+ "25": {"ip_address": "$ext025"}
+ }
+ params:
+ $int000: {get_param: [int_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, allowed_subnets, 0]}, cidr]}
+ $ext000: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, allowed_subnets, 0]}, cidr]}
+ $ext001: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, allowed_subnets, 1]}, cidr]}
+ $ext002: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, allowed_subnets, 2]}, cidr]}
+ $ext003: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, allowed_subnets, 3]}, cidr]}
+ $ext004: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, allowed_subnets, 4]}, cidr]}
+ $ext005: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, allowed_subnets, 5]}, cidr]}
+ $ext006: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, allowed_subnets, 6]}, cidr]}
+ $ext007: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, allowed_subnets, 7]}, cidr]}
+ $ext008: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, allowed_subnets, 8]}, cidr]}
+ $ext009: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, allowed_subnets, 9]}, cidr]}
+ $ext010: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, allowed_subnets, 10]}, cidr]}
+ $ext011: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, allowed_subnets, 11]}, cidr]}
+ $ext012: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, allowed_subnets, 12]}, cidr]}
+ $ext013: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, allowed_subnets, 13]}, cidr]}
+ $ext014: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, allowed_subnets, 14]}, cidr]}
+ $ext015: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, allowed_subnets, 15]}, cidr]}
+ $ext016: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, allowed_subnets, 16]}, cidr]}
+ $ext017: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, allowed_subnets, 17]}, cidr]}
+ $ext018: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, allowed_subnets, 18]}, cidr]}
+ $ext019: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, allowed_subnets, 19]}, cidr]}
+ $ext020: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, allowed_subnets, 20]}, cidr]}
+ $ext021: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, allowed_subnets, 21]}, cidr]}
+ $ext022: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, allowed_subnets, 22]}, cidr]}
+ $ext023: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, allowed_subnets, 23]}, cidr]}
+ $ext024: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, allowed_subnets, 24]}, cidr]}
+ $ext025: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, allowed_subnets, 25]}, cidr]}
+
+ # Generate a JSON list keyed by "0", ..., "7" and then use
+ # the Xlate functionality to grab the VNIC-specific "count"
+ # entries in it to use as the fixed IP list for the port.
+ #
+ # Note that there will only be at most one internal IP on
+ # any VNIC (and there won't be an external at the same time).
+ NOKIA-LCP-IPxlate:
+ type: LCP-Xlate.template.yaml
+ properties:
+ info:
+ str_replace:
+ template: |
+ {
+ "0": {"subnet": "$sni$sn00" $com00$acom00$ip00$aip00$cq00$acq00},
+ "1": {"subnet": "$sn01" $com01$acom01$ip01$aip01$cq01$acq01},
+ "2": {"subnet": "$sn02" $com02$acom02$ip02$aip02$cq02$acq02},
+ "3": {"subnet": "$sn03" $com03$acom03$ip03$aip03$cq03$acq03},
+ "4": {"subnet": "$sn04" $com04$acom04$ip04$aip04$cq04$acq04},
+ "5": {"subnet": "$sn05" $com05$acom05$ip05$aip05$cq05$acq05},
+ "6": {"subnet": "$sn06" $com06$acom06$ip06$aip06$cq06$acq06},
+ "7": {"subnet": "$sn07" $com07$acom07$ip07$aip07$cq07$acq07},
+ "8": {"subnet": "$sn08" $com08$acom08$ip08$aip08$cq08$acq08},
+ "9": {"subnet": "$sn09" $com09$acom09$ip09$aip09$cq09$acq09},
+ "10": {"subnet": "$sn10" $com10$acom10$ip10$aip10$cq10$acq10},
+ "11": {"subnet": "$sn11" $com11$acom11$ip11$aip11$cq11$acq11},
+ "12": {"subnet": "$sn12" $com12$acom12$ip12$aip12$cq12$acq12},
+ "13": {"subnet": "$sn13" $com13$acom13$ip13$aip13$cq13$acq13},
+ "14": {"subnet": "$sn14" $com14$acom14$ip14$aip14$cq14$acq14},
+ "15": {"subnet": "$sn15" $com15$acom15$ip15$aip15$cq15$acq15},
+ "16": {"subnet": "$sn16" $com16$acom16$ip16$aip16$cq16$acq16},
+ "17": {"subnet": "$sn17" $com17$acom17$ip17$aip17$cq17$acq17},
+ "18": {"subnet": "$sn18" $com18$acom18$ip18$aip18$cq18$acq18},
+ "19": {"subnet": "$sn19" $com19$acom19$ip19$aip19$cq19$acq19},
+ "20": {"subnet": "$sn20" $com20$acom20$ip20$aip20$cq20$acq20},
+ "21": {"subnet": "$sn21" $com21$acom21$ip21$aip21$cq21$acq21},
+ "22": {"subnet": "$sn22" $com22$acom22$ip22$aip22$cq22$acq22},
+ "23": {"subnet": "$sn23" $com23$acom23$ip23$aip23$cq23$acq23},
+ "24": {"subnet": "$sn24" $com24$acom24$ip24$aip24$cq24$acq24},
+ "25": {"subnet": "$sn25" $com25$acom25$ip25$aip25$cq25$acq25}
+ }
+ params:
+ $sni: {get_param: [int_net_info, {get_param: [int_net_chk, {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 1, "subnet"]}, subnet_id]}, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 1, "subnet"]}]}, subnet_id]}
+ $sn00: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 1, "subnet"]}, subnet_id]}
+ $com00: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 1, "label"]}]}]}]}
+ $acom00: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 1, "label"]}, "source"]}]}]}
+ $ip00: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 1, "label"]}]}
+ $aip00: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 1, "label"]}, "source"]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 1, "label"]}, "index"]}]}
+ $cq00: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 1, "label"]}]}]}]}
+ $acq00: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 1, "label"]}]}]}]}
+ $sn01: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 2, "subnet"]}, subnet_id]}
+ $com01: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 2, "label"]}]}]}]}
+ $acom01: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 2, "label"]}, "source"]}]}]}
+ $ip01: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 2, "label"]}]}
+ $aip01: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 2, "label"]}, "source"]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 2, "label"]}, "index"]}]}
+ $cq01: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 2, "label"]}]}]}]}
+ $acq01: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 2, "label"]}]}]}]}
+ $sn02: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 3, "subnet"]}, subnet_id]}
+ $com02: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 3, "label"]}]}]}]}
+ $acom02: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 3, "label"]}, "source"]}]}]}
+ $ip02: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 3, "label"]}]}
+ $aip02: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 3, "label"]}, "source"]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 3, "label"]}, "index"]}]}
+ $cq02: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 3, "label"]}]}]}]}
+ $acq02: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 3, "label"]}]}]}]}
+ $sn03: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 4, "subnet"]}, subnet_id]}
+ $com03: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 4, "label"]}]}]}]}
+ $acom03: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 4, "label"]}, "source"]}]}]}
+ $ip03: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 4, "label"]}]}
+ $aip03: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 4, "label"]}, "source"]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 4, "label"]}, "index"]}]}
+ $cq03: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 4, "label"]}]}]}]}
+ $acq03: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 4, "label"]}]}]}]}
+ $sn04: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 5, "subnet"]}, subnet_id]}
+ $com04: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 5, "label"]}]}]}]}
+ $acom04: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 5, "label"]}, "source"]}]}]}
+ $ip04: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 5, "label"]}]}
+ $aip04: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 5, "label"]}, "source"]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 5, "label"]}, "index"]}]}
+ $cq04: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 5, "label"]}]}]}]}
+ $acq04: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 5, "label"]}]}]}]}
+ $sn05: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 6, "subnet"]}, subnet_id]}
+ $com05: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 6, "label"]}]}]}]}
+ $acom05: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 6, "label"]}, "source"]}]}]}
+ $ip05: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 6, "label"]}]}
+ $aip05: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 6, "label"]}, "source"]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 6, "label"]}, "index"]}]}
+ $cq05: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 6, "label"]}]}]}]}
+ $acq05: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 6, "label"]}]}]}]}
+ $sn06: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 7, "subnet"]}, subnet_id]}
+ $com06: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 7, "label"]}]}]}]}
+ $acom06: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 7, "label"]}, "source"]}]}]}
+ $ip06: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 7, "label"]}]}
+ $aip06: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 7, "label"]}, "source"]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 7, "label"]}, "index"]}]}
+ $cq06: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 7, "label"]}]}]}]}
+ $acq06: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 7, "label"]}]}]}]}
+ $sn07: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 8, "subnet"]}, subnet_id]}
+ $com07: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 8, "label"]}]}]}]}
+ $acom07: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 8, "label"]}, "source"]}]}]}
+ $ip07: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 8, "label"]}]}
+ $aip07: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 8, "label"]}, "source"]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 8, "label"]}, "index"]}]}
+ $cq07: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 8, "label"]}]}]}]}
+ $acq07: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 8, "label"]}]}]}]}
+ $sn08: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 9, "subnet"]}, subnet_id]}
+ $com08: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 9, "label"]}]}]}]}
+ $acom08: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 9, "label"]}, "source"]}]}]}
+ $ip08: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 9, "label"]}]}
+ $aip08: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 9, "label"]}, "source"]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 9, "label"]}, "index"]}]}
+ $cq08: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 9, "label"]}]}]}]}
+ $acq08: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 9, "label"]}]}]}]}
+ $sn09: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 10, "subnet"]}, subnet_id]}
+ $com09: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 10, "label"]}]}]}]}
+ $acom09: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 10, "label"]}, "source"]}]}]}
+ $ip09: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 10, "label"]}]}
+ $aip09: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 10, "label"]}, "source"]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 10, "label"]}, "index"]}]}
+ $cq09: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 10, "label"]}]}]}]}
+ $acq09: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 10, "label"]}]}]}]}
+ $sn10: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 11, "subnet"]}, subnet_id]}
+ $com10: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 11, "label"]}]}]}]}
+ $acom10: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 11, "label"]}, "source"]}]}]}
+ $ip10: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 11, "label"]}]}
+ $aip10: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 11, "label"]}, "source"]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 11, "label"]}, "index"]}]}
+ $cq10: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 11, "label"]}]}]}]}
+ $acq10: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 11, "label"]}]}]}]}
+ $sn11: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 12, "subnet"]}, subnet_id]}
+ $com11: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 12, "label"]}]}]}]}
+ $acom11: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 12, "label"]}, "source"]}]}]}
+ $ip11: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 12, "label"]}]}
+ $aip11: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 12, "label"]}, "source"]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 12, "label"]}, "index"]}]}
+ $cq11: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 12, "label"]}]}]}]}
+ $acq11: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 12, "label"]}]}]}]}
+ $sn12: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 13, "subnet"]}, subnet_id]}
+ $com12: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 13, "label"]}]}]}]}
+ $acom12: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 13, "label"]}, "source"]}]}]}
+ $ip12: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 13, "label"]}]}
+ $aip12: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 13, "label"]}, "source"]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 13, "label"]}, "index"]}]}
+ $cq12: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 13, "label"]}]}]}]}
+ $acq12: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 13, "label"]}]}]}]}
+ $sn13: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 14, "subnet"]}, subnet_id]}
+ $com13: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 14, "label"]}]}]}]}
+ $acom13: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 14, "label"]}, "source"]}]}]}
+ $ip13: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 14, "label"]}]}
+ $aip13: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 14, "label"]}, "source"]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 14, "label"]}, "index"]}]}
+ $cq13: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 14, "label"]}]}]}]}
+ $acq13: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 14, "label"]}]}]}]}
+ $sn14: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 15, "subnet"]}, subnet_id]}
+ $com14: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 15, "label"]}]}]}]}
+ $acom14: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 15, "label"]}, "source"]}]}]}
+ $ip14: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 15, "label"]}]}
+ $aip14: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 15, "label"]}, "source"]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 15, "label"]}, "index"]}]}
+ $cq14: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 15, "label"]}]}]}]}
+ $acq14: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 15, "label"]}]}]}]}
+ $sn15: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 16, "subnet"]}, subnet_id]}
+ $com15: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 16, "label"]}]}]}]}
+ $acom15: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 16, "label"]}, "source"]}]}]}
+ $ip15: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 16, "label"]}]}
+ $aip15: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 16, "label"]}, "source"]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 16, "label"]}, "index"]}]}
+ $cq15: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 16, "label"]}]}]}]}
+ $acq15: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 16, "label"]}]}]}]}
+ $sn16: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 17, "subnet"]}, subnet_id]}
+ $com16: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 17, "label"]}]}]}]}
+ $acom16: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 17, "label"]}, "source"]}]}]}
+ $ip16: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 17, "label"]}]}
+ $aip16: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 17, "label"]}, "source"]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 17, "label"]}, "index"]}]}
+ $cq16: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 17, "label"]}]}]}]}
+ $acq16: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 17, "label"]}]}]}]}
+ $sn17: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 18, "subnet"]}, subnet_id]}
+ $com17: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 18, "label"]}]}]}]}
+ $acom17: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 18, "label"]}, "source"]}]}]}
+ $ip17: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 18, "label"]}]}
+ $aip17: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 18, "label"]}, "source"]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 18, "label"]}, "index"]}]}
+ $cq17: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 18, "label"]}]}]}]}
+ $acq17: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 18, "label"]}]}]}]}
+ $sn18: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 19, "subnet"]}, subnet_id]}
+ $com18: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 19, "label"]}]}]}]}
+ $acom18: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 19, "label"]}, "source"]}]}]}
+ $ip18: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 19, "label"]}]}
+ $aip18: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 19, "label"]}, "source"]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 19, "label"]}, "index"]}]}
+ $cq18: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 19, "label"]}]}]}]}
+ $acq18: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 19, "label"]}]}]}]}
+ $sn19: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 20, "subnet"]}, subnet_id]}
+ $com19: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 20, "label"]}]}]}]}
+ $acom19: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 20, "label"]}, "source"]}]}]}
+ $ip19: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 20, "label"]}]}
+ $aip19: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 20, "label"]}, "source"]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 20, "label"]}, "index"]}]}
+ $cq19: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 20, "label"]}]}]}]}
+ $acq19: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 20, "label"]}]}]}]}
+ $sn20: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 21, "subnet"]}, subnet_id]}
+ $com20: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 21, "label"]}]}]}]}
+ $acom20: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 21, "label"]}, "source"]}]}]}
+ $ip20: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 21, "label"]}]}
+ $aip20: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 21, "label"]}, "source"]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 21, "label"]}, "index"]}]}
+ $cq20: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 21, "label"]}]}]}]}
+ $acq20: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 21, "label"]}]}]}]}
+ $sn21: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 22, "subnet"]}, subnet_id]}
+ $com21: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 22, "label"]}]}]}]}
+ $acom21: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 22, "label"]}, "source"]}]}]}
+ $ip21: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 22, "label"]}]}
+ $aip21: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 22, "label"]}, "source"]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 22, "label"]}, "index"]}]}
+ $cq21: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 22, "label"]}]}]}]}
+ $acq21: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 22, "label"]}]}]}]}
+ $sn22: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 23, "subnet"]}, subnet_id]}
+ $com22: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 23, "label"]}]}]}]}
+ $acom22: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 23, "label"]}, "source"]}]}]}
+ $ip22: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 23, "label"]}]}
+ $aip22: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 23, "label"]}, "source"]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 23, "label"]}, "index"]}]}
+ $cq22: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 23, "label"]}]}]}]}
+ $acq22: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 23, "label"]}]}]}]}
+ $sn23: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 24, "subnet"]}, subnet_id]}
+ $com23: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 24, "label"]}]}]}]}
+ $acom23: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 24, "label"]}, "source"]}]}]}
+ $ip23: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 24, "label"]}]}
+ $aip23: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 24, "label"]}, "source"]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 24, "label"]}, "index"]}]}
+ $cq23: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 24, "label"]}]}]}]}
+ $acq23: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 24, "label"]}]}]}]}
+ $sn24: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 25, "subnet"]}, subnet_id]}
+ $com24: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 25, "label"]}]}]}]}
+ $acom24: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 25, "label"]}, "source"]}]}]}
+ $ip24: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 25, "label"]}]}
+ $aip24: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 25, "label"]}, "source"]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 25, "label"]}, "index"]}]}
+ $cq24: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 25, "label"]}]}]}]}
+ $acq24: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 25, "label"]}]}]}]}
+ $sn25: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 26, "subnet"]}, subnet_id]}
+ $com25: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 26, "label"]}]}]}]}
+ $acom25: {get_param: [abe2ip, step2, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 26, "label"]}, "source"]}]}]}
+ $ip25: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 26, "label"]}]}
+ $aip25: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 26, "label"]}, "source"]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 26, "label"]}, "index"]}]}
+ $cq25: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, "set_ips", {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 26, "label"]}]}]}]}
+ $acq25: {get_param: [abe2ip, step3, {get_param: [abe2ip, step1, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 26, "label"]}]}]}]}
+ NOKIA-LCP-Port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $stk$delim$base$default$override
+ params:
+ $base: {get_param: [default_name_base, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, "portname"]}]}
+ $default: {get_param: [default_name, {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, "portname"]}, {get_param: vnic_index}]}
+ $override: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, "portname"]}
+ $delim: {get_param: name_delimiter}
+ $stk: {get_param: stack}
+ # All entries for this port must be on the same network
+ # so it is sufficient to use the network ID from the first one.
+ network:
+ str_replace:
+ template: $int$ext
+ params:
+ $ext: {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 1, "subnet"]}, id]}
+ $int: {get_param: [int_net_info, {get_param: [int_net_chk, {get_param: [ext_net_info, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 1, "subnet"]}, id]}, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 1, "subnet"]}]}, id]}
+ replacement_policy: AUTO
+ binding:vnic_type:
+ str_replace:
+ template: $default$override
+ params:
+ $default: {get_param: [usage_info, {get_param: [override_chk, {get_param: [usage_info, "group_info", {get_param: group_id}, "binding_type", {get_param: vnic_index}]}]}, binding_type]}
+ $override: {get_param: [usage_info, "group_info", {get_param: group_id}, "binding_type", {get_param: vnic_index}]}
+ security_groups: [{get_param: open_sec_group}]
+ allowed_address_pairs: {get_attr: [NOKIA-LCP-CIDRxlate, by_count, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, "subnet_count"]}]}
+ fixed_ips: {get_attr: [NOKIA-LCP-IPxlate, by_count, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, "count"]}]}
+
+outputs:
+
+ PortEntry:
+ description: Entry for VM networks list.
+ value: {
+ port: {get_resource: NOKIA-LCP-Port}
+ }
+
+ PortIpInfo:
+ description: |
+ Data to facilitate mapping IPs assigned on this port to the IP
+ usage labels provided in the input.
+ value:
+ str_replace:
+ template:
+ str_replace:
+ template: |
+ {
+ "count": "$cnt",
+ "binding_type": "$bindtype",
+ "mac_address": "$macaddr",
+ "assigned_ips": ["$ip00", "$ip01", "$ip02", "$ip03", "$ip04", "$ip05", "$ip06", "$ip07", "$ip08", "$ip09", "$ip10", "$ip11", "$ip12", "$ip13", "$ip14", "$ip15", "$ip16", "$ip17", "$ip18", "$ip19", "$ip20", "$ip21", "$ip22", "$ip23", "$ip24", "$ip25"],
+ "label2info": [$line000 $line001 $line002 $line003 $line004 $line005 $line006 $line007 $line008 $line009 $line010 $line011 $line012 $line013 $line014 $line015 $line016 $line017 $line018 $line019 $line020 $line021 $line022 $line023 $line024 $line025 {"label":"connectivity_ip", "snet":"dummy", "ip":""}]
+ }
+ params:
+ $line000: {get_param: [checkit, {get_param: [getkey, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 1, subnet]}]}, "0"]}
+ $line001: {get_param: [checkit, {get_param: [getkey, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 2, subnet]}]}, "1"]}
+ $line002: {get_param: [checkit, {get_param: [getkey, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 3, subnet]}]}, "2"]}
+ $line003: {get_param: [checkit, {get_param: [getkey, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 4, subnet]}]}, "3"]}
+ $line004: {get_param: [checkit, {get_param: [getkey, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 5, subnet]}]}, "4"]}
+ $line005: {get_param: [checkit, {get_param: [getkey, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 6, subnet]}]}, "5"]}
+ $line006: {get_param: [checkit, {get_param: [getkey, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 7, subnet]}]}, "6"]}
+ $line007: {get_param: [checkit, {get_param: [getkey, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 8, subnet]}]}, "7"]}
+ $line008: {get_param: [checkit, {get_param: [getkey, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 9, subnet]}]}, "8"]}
+ $line009: {get_param: [checkit, {get_param: [getkey, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 10, subnet]}]}, "9"]}
+ $line010: {get_param: [checkit, {get_param: [getkey, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 11, subnet]}]}, "10"]}
+ $line011: {get_param: [checkit, {get_param: [getkey, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 12, subnet]}]}, "11"]}
+ $line012: {get_param: [checkit, {get_param: [getkey, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 13, subnet]}]}, "12"]}
+ $line013: {get_param: [checkit, {get_param: [getkey, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 14, subnet]}]}, "13"]}
+ $line014: {get_param: [checkit, {get_param: [getkey, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 15, subnet]}]}, "14"]}
+ $line015: {get_param: [checkit, {get_param: [getkey, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 16, subnet]}]}, "15"]}
+ $line016: {get_param: [checkit, {get_param: [getkey, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 17, subnet]}]}, "16"]}
+ $line017: {get_param: [checkit, {get_param: [getkey, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 18, subnet]}]}, "17"]}
+ $line018: {get_param: [checkit, {get_param: [getkey, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 19, subnet]}]}, "18"]}
+ $line019: {get_param: [checkit, {get_param: [getkey, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 20, subnet]}]}, "19"]}
+ $line020: {get_param: [checkit, {get_param: [getkey, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 21, subnet]}]}, "20"]}
+ $line021: {get_param: [checkit, {get_param: [getkey, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 22, subnet]}]}, "21"]}
+ $line022: {get_param: [checkit, {get_param: [getkey, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 23, subnet]}]}, "22"]}
+ $line023: {get_param: [checkit, {get_param: [getkey, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 24, subnet]}]}, "23"]}
+ $line024: {get_param: [checkit, {get_param: [getkey, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 25, subnet]}]}, "24"]}
+ $line025: {get_param: [checkit, {get_param: [getkey, {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 26, subnet]}]}, "25"]}
+ params:
+ $cnt: {get_param: [config_info, {get_param: vm_index}, vnic_info, {get_param: vnic_index}, 0, "count"]}
+ $bindtype: {str_replace: {template: $default$override, params: {$default: {get_param: [usage_info, {get_param: [override_chk, {get_param: [usage_info, "group_info", {get_param: group_id}, "binding_type", {get_param: vnic_index}]}]}, binding_type]}, $override: {get_param: [usage_info, "group_info", {get_param: group_id}, "binding_type", {get_param: vnic_index}]}}}}
+ $macaddr: {get_attr: [NOKIA-LCP-Port, mac_address]}
+ $ip00: {get_attr: [NOKIA-LCP-Port, fixed_ips, 0, ip_address]}
+ $ip01: {get_attr: [NOKIA-LCP-Port, fixed_ips, 1, ip_address]}
+ $ip02: {get_attr: [NOKIA-LCP-Port, fixed_ips, 2, ip_address]}
+ $ip03: {get_attr: [NOKIA-LCP-Port, fixed_ips, 3, ip_address]}
+ $ip04: {get_attr: [NOKIA-LCP-Port, fixed_ips, 4, ip_address]}
+ $ip05: {get_attr: [NOKIA-LCP-Port, fixed_ips, 5, ip_address]}
+ $ip06: {get_attr: [NOKIA-LCP-Port, fixed_ips, 6, ip_address]}
+ $ip07: {get_attr: [NOKIA-LCP-Port, fixed_ips, 7, ip_address]}
+ $ip08: {get_attr: [NOKIA-LCP-Port, fixed_ips, 8, ip_address]}
+ $ip09: {get_attr: [NOKIA-LCP-Port, fixed_ips, 9, ip_address]}
+ $ip10: {get_attr: [NOKIA-LCP-Port, fixed_ips, 10, ip_address]}
+ $ip11: {get_attr: [NOKIA-LCP-Port, fixed_ips, 11, ip_address]}
+ $ip12: {get_attr: [NOKIA-LCP-Port, fixed_ips, 12, ip_address]}
+ $ip13: {get_attr: [NOKIA-LCP-Port, fixed_ips, 13, ip_address]}
+ $ip14: {get_attr: [NOKIA-LCP-Port, fixed_ips, 14, ip_address]}
+ $ip15: {get_attr: [NOKIA-LCP-Port, fixed_ips, 15, ip_address]}
+ $ip16: {get_attr: [NOKIA-LCP-Port, fixed_ips, 16, ip_address]}
+ $ip17: {get_attr: [NOKIA-LCP-Port, fixed_ips, 17, ip_address]}
+ $ip18: {get_attr: [NOKIA-LCP-Port, fixed_ips, 18, ip_address]}
+ $ip19: {get_attr: [NOKIA-LCP-Port, fixed_ips, 19, ip_address]}
+ $ip20: {get_attr: [NOKIA-LCP-Port, fixed_ips, 20, ip_address]}
+ $ip21: {get_attr: [NOKIA-LCP-Port, fixed_ips, 21, ip_address]}
+ $ip22: {get_attr: [NOKIA-LCP-Port, fixed_ips, 22, ip_address]}
+ $ip23: {get_attr: [NOKIA-LCP-Port, fixed_ips, 23, ip_address]}
+ $ip24: {get_attr: [NOKIA-LCP-Port, fixed_ips, 24, ip_address]}
+ $ip25: {get_attr: [NOKIA-LCP-Port, fixed_ips, 25, ip_address]}
+ $rip00: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, set_ips, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 1, "label"]}]}
+ $arip00: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 1, "label"]}, source]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 1, "label"]}, "index"]}]}
+ $snet00: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 1, "subnet"]}
+ $label00: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 1, "label"]}
+ $rip01: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, set_ips, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 2, "label"]}]}
+ $arip01: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 2, "label"]}, source]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 2, "label"]}, "index"]}]}
+ $snet01: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 2, "subnet"]}
+ $label01: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 2, "label"]}
+ $rip02: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, set_ips, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 3, "label"]}]}
+ $arip02: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 3, "label"]}, source]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 3, "label"]}, "index"]}]}
+ $snet02: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 3, "subnet"]}
+ $label02: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 3, "label"]}
+ $rip03: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, set_ips, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 4, "label"]}]}
+ $arip03: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 4, "label"]}, source]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 4, "label"]}, "index"]}]}
+ $snet03: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 4, "subnet"]}
+ $label03: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 4, "label"]}
+ $rip04: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, set_ips, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 5, "label"]}]}
+ $arip04: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 5, "label"]}, source]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 5, "label"]}, "index"]}]}
+ $snet04: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 5, "subnet"]}
+ $label04: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 5, "label"]}
+ $rip05: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, set_ips, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 6, "label"]}]}
+ $arip05: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 6, "label"]}, source]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 6, "label"]}, "index"]}]}
+ $snet05: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 6, "subnet"]}
+ $label05: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 6, "label"]}
+ $rip06: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, set_ips, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 7, "label"]}]}
+ $arip06: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 7, "label"]}, source]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 7, "label"]}, "index"]}]}
+ $snet06: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 7, "subnet"]}
+ $label06: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 7, "label"]}
+ $rip07: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, set_ips, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 8, "label"]}]}
+ $arip07: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 8, "label"]}, source]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 8, "label"]}, "index"]}]}
+ $snet07: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 8, "subnet"]}
+ $label07: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 8, "label"]}
+ $rip08: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, set_ips, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 9, "label"]}]}
+ $arip08: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 9, "label"]}, source]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 9, "label"]}, "index"]}]}
+ $snet08: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 9, "subnet"]}
+ $label08: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 9, "label"]}
+ $rip09: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, set_ips, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 10, "label"]}]}
+ $arip09: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 10, "label"]}, source]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 10, "label"]}, "index"]}]}
+ $snet09: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 10, "subnet"]}
+ $label09: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 10, "label"]}
+ $rip10: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, set_ips, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 11, "label"]}]}
+ $arip10: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 11, "label"]}, source]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 11, "label"]}, "index"]}]}
+ $snet10: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 11, "subnet"]}
+ $label10: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 11, "label"]}
+ $rip11: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, set_ips, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 12, "label"]}]}
+ $arip11: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 12, "label"]}, source]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 12, "label"]}, "index"]}]}
+ $snet11: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 12, "subnet"]}
+ $label11: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 12, "label"]}
+ $rip12: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, set_ips, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 13, "label"]}]}
+ $arip12: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 13, "label"]}, source]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 13, "label"]}, "index"]}]}
+ $snet12: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 13, "subnet"]}
+ $label12: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 13, "label"]}
+ $rip13: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, set_ips, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 14, "label"]}]}
+ $arip13: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 14, "label"]}, source]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 14, "label"]}, "index"]}]}
+ $snet13: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 14, "subnet"]}
+ $label13: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 14, "label"]}
+ $rip14: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, set_ips, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 15, "label"]}]}
+ $arip14: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 15, "label"]}, source]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 15, "label"]}, "index"]}]}
+ $snet14: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 15, "subnet"]}
+ $label14: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 15, "label"]}
+ $rip15: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, set_ips, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 16, "label"]}]}
+ $arip15: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 16, "label"]}, source]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 16, "label"]}, "index"]}]}
+ $snet15: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 16, "subnet"]}
+ $label15: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 16, "label"]}
+ $rip16: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, set_ips, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 17, "label"]}]}
+ $arip16: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 17, "label"]}, source]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 17, "label"]}, "index"]}]}
+ $snet16: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 17, "subnet"]}
+ $label16: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 17, "label"]}
+ $rip17: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, set_ips, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 18, "label"]}]}
+ $arip17: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 18, "label"]}, source]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 18, "label"]}, "index"]}]}
+ $snet17: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 18, "subnet"]}
+ $label17: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 18, "label"]}
+ $rip18: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, set_ips, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 19, "label"]}]}
+ $arip18: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 19, "label"]}, source]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 19, "label"]}, "index"]}]}
+ $snet18: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 19, "subnet"]}
+ $label18: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 19, "label"]}
+ $rip19: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, set_ips, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 20, "label"]}]}
+ $arip19: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 20, "label"]}, source]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 20, "label"]}, "index"]}]}
+ $snet19: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 20, "subnet"]}
+ $label19: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 20, "label"]}
+ $rip20: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, set_ips, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 21, "label"]}]}
+ $arip20: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 21, "label"]}, source]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 21, "label"]}, "index"]}]}
+ $snet20: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 21, "subnet"]}
+ $label20: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 21, "label"]}
+ $rip21: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, set_ips, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 22, "label"]}]}
+ $arip21: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 22, "label"]}, source]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 22, "label"]}, "index"]}]}
+ $snet21: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 22, "subnet"]}
+ $label21: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 22, "label"]}
+ $rip22: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, set_ips, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 23, "label"]}]}
+ $arip22: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 23, "label"]}, source]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 23, "label"]}, "index"]}]}
+ $snet22: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 23, "subnet"]}
+ $label22: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 23, "label"]}
+ $rip23: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, set_ips, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 24, "label"]}]}
+ $arip23: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 24, "label"]}, source]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 24, "label"]}, "index"]}]}
+ $snet23: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 24, "subnet"]}
+ $label23: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 24, "label"]}
+ $rip24: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, set_ips, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 25, "label"]}]}
+ $arip24: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 25, "label"]}, source]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 25, "label"]}, "index"]}]}
+ $snet24: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 25, "subnet"]}
+ $label24: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 25, "label"]}
+ $rip25: {get_param: [usage_info, "group_info", {get_param: group_id}, {get_param: group_index}, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, set_ips, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 26, "label"]}]}
+ $arip25: {get_param: [usage_info, "ATT_ip_lists", {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 26, "label"]}, source]}, {get_param: [usage_info, "ATT_vm_info", {get_param: group_tag}, {get_param: group_index}, {get_param: vm_index}, "label2ip", {get_param: vnic_index}, {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 26, "label"]}, "index"]}]}
+ $snet25: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 26, "subnet"]}
+ $label25: {get_param: [config_info, {get_param: vm_index}, "vnic_info", {get_param: vnic_index}, 26, "label"]}
+
+ Version:
+ description: |
+ Template file version number. This should be updated
+ each time a non-comment change is made to this file.
+ value: K1
+
+ ASSIGNED_IPS:
+ description: IP addresses assigned to this port.
+ value:
+ str_replace:
+ template: |
+ $ip00, $ip01, $ip02, $ip03, $ip04, $ip05, $ip06, $ip07, $ip08, $ip09, $ip10, $ip11, $ip12, $ip13, $ip14, $ip15, $ip16, $ip17, $ip18, $ip19, $ip20, $ip21, $ip22, $ip23, $ip24, $ip25
+ params:
+ $ip00: {get_attr: [NOKIA-LCP-Port, fixed_ips, 0, ip_address]}
+ $ip01: {get_attr: [NOKIA-LCP-Port, fixed_ips, 1, ip_address]}
+ $ip02: {get_attr: [NOKIA-LCP-Port, fixed_ips, 2, ip_address]}
+ $ip03: {get_attr: [NOKIA-LCP-Port, fixed_ips, 3, ip_address]}
+ $ip04: {get_attr: [NOKIA-LCP-Port, fixed_ips, 4, ip_address]}
+ $ip05: {get_attr: [NOKIA-LCP-Port, fixed_ips, 5, ip_address]}
+ $ip06: {get_attr: [NOKIA-LCP-Port, fixed_ips, 6, ip_address]}
+ $ip07: {get_attr: [NOKIA-LCP-Port, fixed_ips, 7, ip_address]}
+ $ip08: {get_attr: [NOKIA-LCP-Port, fixed_ips, 8, ip_address]}
+ $ip09: {get_attr: [NOKIA-LCP-Port, fixed_ips, 9, ip_address]}
+ $ip10: {get_attr: [NOKIA-LCP-Port, fixed_ips, 10, ip_address]}
+ $ip11: {get_attr: [NOKIA-LCP-Port, fixed_ips, 11, ip_address]}
+ $ip12: {get_attr: [NOKIA-LCP-Port, fixed_ips, 12, ip_address]}
+ $ip13: {get_attr: [NOKIA-LCP-Port, fixed_ips, 13, ip_address]}
+ $ip14: {get_attr: [NOKIA-LCP-Port, fixed_ips, 14, ip_address]}
+ $ip15: {get_attr: [NOKIA-LCP-Port, fixed_ips, 15, ip_address]}
+ $ip16: {get_attr: [NOKIA-LCP-Port, fixed_ips, 16, ip_address]}
+ $ip17: {get_attr: [NOKIA-LCP-Port, fixed_ips, 17, ip_address]}
+ $ip18: {get_attr: [NOKIA-LCP-Port, fixed_ips, 18, ip_address]}
+ $ip19: {get_attr: [NOKIA-LCP-Port, fixed_ips, 19, ip_address]}
+ $ip20: {get_attr: [NOKIA-LCP-Port, fixed_ips, 20, ip_address]}
+ $ip21: {get_attr: [NOKIA-LCP-Port, fixed_ips, 21, ip_address]}
+ $ip22: {get_attr: [NOKIA-LCP-Port, fixed_ips, 22, ip_address]}
+ $ip23: {get_attr: [NOKIA-LCP-Port, fixed_ips, 23, ip_address]}
+ $ip24: {get_attr: [NOKIA-LCP-Port, fixed_ips, 24, ip_address]}
+ $ip25: {get_attr: [NOKIA-LCP-Port, fixed_ips, 25, ip_address]}
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-Xlate.template.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-Xlate.template.yaml
new file mode 100644
index 0000000000..45974257a0
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-Xlate.template.yaml
@@ -0,0 +1,15 @@
+heat_template_version: 2015-04-30
+
+description: |
+ Translate a string in JSON format keyed by a resource group
+ member index into a map of lists such that the Nth entry
+ has a list of the first N entries from the input.
+
+ In effect this lets the user get a list of variable length
+ based on the number of provided entries.
+
+parameters:
+
+ info:
+ type: json
+ description: Information map.
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-XlateL2J.template.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-XlateL2J.template.yaml
new file mode 100644
index 0000000000..e4118a3ad4
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/LCP-XlateL2J.template.yaml
@@ -0,0 +1,50 @@
+heat_template_version: 2015-04-30
+
+description: |
+ Translate a list of JSON entries to a JSON mapped keyed
+ by the string verison of the list index (i.e. 0-->"0").
+
+parameters:
+
+ info:
+ type: json
+ description: Information map.
+
+outputs:
+
+ jout:
+ description: |
+ JSON map of list entries.
+ value: {
+ "0": {get_param: [info, 0]},
+ "1": {get_param: [info, 1]},
+ "2": {get_param: [info, 2]},
+ "3": {get_param: [info, 3]},
+ "4": {get_param: [info, 4]},
+ "5": {get_param: [info, 5]},
+ "6": {get_param: [info, 6]},
+ "7": {get_param: [info, 7]},
+ "8": {get_param: [info, 8]},
+ "9": {get_param: [info, 9]},
+ "10": {get_param: [info, 10]},
+ "11": {get_param: [info, 11]},
+ "12": {get_param: [info, 12]},
+ "13": {get_param: [info, 13]},
+ "14": {get_param: [info, 14]},
+ "15": {get_param: [info, 15]},
+ "16": {get_param: [info, 16]},
+ "17": {get_param: [info, 17]},
+ "18": {get_param: [info, 18]},
+ "19": {get_param: [info, 19]},
+ "20": {get_param: [info, 20]},
+ "21": {get_param: [info, 21]},
+ "22": {get_param: [info, 22]},
+ "23": {get_param: [info, 23]},
+ "24": {get_param: [info, 24]},
+ "25": {get_param: [info, 25]},
+ "26": {get_param: [info, 26]},
+ "27": {get_param: [info, 27]},
+ "28": {get_param: [info, 28]},
+ "29": {get_param: [info, 29]}
+ }
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/MANIFEST.json
new file mode 100644
index 0000000000..54114ad2f1
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/MANIFEST.json
@@ -0,0 +1,52 @@
+{
+ "name": "",
+ "description": "",
+ "data": [
+ {
+ "file": "LCP-Xlate.template.yaml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "LCP-XlateL2J.template.yaml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "base_mso.yml",
+ "type": "HEAT",
+ "isBase": "true",
+ "data": [
+ {
+ "file": "base_mso.env",
+ "type": "HEAT_ENV"
+ }
+ ]
+ },
+ {
+ "file": "LCP-OPENECOMP.template.yaml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "LCP-Base.template.yaml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "LCP-PairGroup.template.yaml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "LCP-Port.template.yaml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "LCP-ATTGRP.template.yaml",
+ "type": "HEAT",
+ "isBase": "false"
+ }
+ ]
+} \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/base_mso.env b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/base_mso.env
new file mode 100644
index 0000000000..1c28b72606
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/base_mso.env
@@ -0,0 +1,127 @@
+
+parameters:
+
+ # Pseudo-constant values.
+
+ backup_file: ""
+ cloud_name_delimiter: "-"
+ default_action: "install"
+ ssh_access_key: ""
+ int_vlan_id: ""
+ lcm_keypair: ""
+
+ install_config: '
+ "application_name": "5450_isc",
+ "license_reference": "test_license",
+ "default_remote_dns_domain": "./default",
+ "default_remote_enum_domain": "e164.arpa/default",
+ "local_dns_domain": "drew2.lucentlab.com",
+ "local_enum_domain": "",
+ "naming_delimiter": "-",
+ "naming_parsing": "flexible",
+ "naming_type": "flexible3",
+ "other_remote_dns_domain": "",
+ "other_remote_enum_domain": "",
+ "remote_query_only": "",
+ "snmp_community": "public",
+ "subnet_info": {
+ "INTERNALnet0": {
+ "interface_label": "int0",
+ "redundancy_mode": "iipm",
+ "vlan_tag": ""
+ },
+ "INTERNALnet1": {
+ "interface_label": "int1",
+ "redundancy_mode": "iipm",
+ "vlan_tag": ""
+ },
+ "oam": {
+ "interface_label": "oam2",
+ "redundancy_mode": "eipm_arpndp",
+ "vlan_tag": "",
+ "connectivity_address": "",
+ "detect_multiplier": "3",
+ "desired_minimum_tx_interval": "300",
+ "required_minimum_rx_interval": "300"
+ },
+ "access": {
+ "interface_label": "acc4",
+ "redundancy_mode": "eipm_arpndp",
+ "vlan_tag": "",
+ "connectivity_address": "",
+ "detect_multiplier": "3",
+ "desired_minimum_tx_interval": "300",
+ "required_minimum_rx_interval": "300"
+ }
+ },
+ "system_name": "isc01",
+ "system_prefix": "isc01",
+ "time_zone": "UTC",
+ "use_sbpr": "yes"
+ '
+
+ # Site-specific values (supplied via the pre-load sheet).
+
+ v4_dns_server: "127.0.0.1/.,127.0.0.1/."
+ v6_dns_server: ""
+ v4_enum_server: ""
+ v6_enum_server: ""
+ v4_ntp_server: "127.0.0.1"
+ v6_ntp_server: ""
+
+ vnf_id: "MYvnf_id"
+ vnf_name: "MYvnf_name"
+ vnf_module_id: "MYvnf_module_id"
+ vnf_module_name: "base_module"
+
+ vm_counts: {
+ "oam": "1",
+ "ims": "1"
+ }
+
+ net_types:
+ - "oam"
+ - "access"
+
+ oam_management_v4_source: "oam_oam_ips"
+ oam_management_v4_index: 1
+ oam_management_v6_source: ""
+ oam_management_v6_index: 0
+
+ oam_net_id: 7410cc1d-c421-41b3-adef-d46cf79cb8d9
+ oam_subnet_id: 37d36cb0-54b7-4fbf-bc45-4879da03a0db
+ oam_cidr: "127.0.0.1/27"
+ oam_default_gateway: "127.0.0.1"
+
+ access_net_id: 870909b5-d933-4a95-9aff-df38523c37ed
+ access_subnet_id: 050ad34a-47a3-48a9-9761-12eff354fd4f
+ access_cidr: "37.9.0.32/27"
+ access_default_gateway: "37.9.0.62"
+
+ availability_zone_0: zone2
+ availability_zone_1: zone1
+
+ oam_names:
+ - "oam0"
+ - "oam1"
+
+ ims_names:
+ - "ims0"
+ - "ims1"
+
+ oam_image_name: "drew34.20"
+ ims_image_name: "drew34.20"
+
+ oam_flavor_name: "LCP-2-4-25x2-4"
+ ims_flavor_name: "LCP-1-4-15x2-4"
+
+ oam_oam_ips:
+ - "127.0.0.1"
+ - "127.0.0.1"
+ - "127.0.0.1"
+ - "127.0.0.1"
+
+ ims_access_ips:
+ - "37.9.0.36"
+ - "37.9.0.61"
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/base_mso.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/base_mso.yml
new file mode 100644
index 0000000000..520eb29349
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/base_mso.yml
@@ -0,0 +1,490 @@
+heat_template_version: 2015-04-30
+
+description: |
+ Example HOT file illustrating elasticity groups.
+
+parameters:
+
+ backup_file:
+ type: string
+ description: |
+ <cURL path>/<backup file>
+ This is only used for restore (aka "disaster recovery").
+ The value only needs to go to the OAM pair.
+ Note that there is a 255 character limit on this value.
+
+ cloud_name_delimiter:
+ type: string
+ description: Separator for cloud resource naming.
+
+ install_config:
+ type: string
+ description: JSON formatted string of install config values.
+
+ lcm_keypair:
+ type: string
+ description: Keypair used for lifecycle management access.
+ constraints:
+ - custom_constraint: nova.keypair
+
+ default_action:
+ type: string
+ description: |
+ Default action for all VMs. This may be overridden for
+ specific VM groups, pairs or VMs via the ENV file.
+ constraints:
+ - allowed_values:
+ - "install"
+ - "recreate"
+ - "scale-in"
+ - "scale-out"
+ - "heal"
+ - "update"
+
+ int_vlan_id:
+ type: string
+ description: Optional VLAN associated with the (0th) internal network.
+ constraints:
+ - allowed_pattern: "[0-9]*"
+ description: VLAN Ids are expressed in base 10 digits.
+
+ ssh_access_key:
+ type: string
+ description: |
+ Optional SSH public key value for lifecycle management
+ administrative access.
+
+ v4_dns_server:
+ type: string
+ description: |
+ (optional) IPV4 DNS server list.
+ It is passed as a string instead of a CDL because
+ of how it is handled internally.
+
+ v6_dns_server:
+ type: string
+ description: |
+ (optional) IPV6 DNS server list.
+ It is passed as a string instead of a CDL because
+ of how it is handled internally.
+
+ v4_enum_server:
+ type: string
+ description: |
+ (optional) IPV4 ENUM server list.
+ It is passed as a string instead of a CDL because
+ of how it is handled internally.
+
+ v6_enum_server:
+ type: string
+ description: |
+ (optional) IPV6 ENUM server list.
+ It is passed as a string instead of a CDL because
+ of how it is handled internally.
+
+ v4_ntp_server:
+ type: string
+ description: |
+ (optional) IPV4 NTP server list.
+ It is passed as a string instead of a CDL because
+ of how it is handled internally.
+
+ v6_ntp_server:
+ type: string
+ description: |
+ (optional) IPV6 NTP server list.
+ It is passed as a string instead of a CDL because
+ of how it is handled internally.
+
+ vnf_id:
+ type: string
+ description: Unique ID for this VNF instance.
+ default: ""
+
+ vnf_name:
+ type: string
+ description: Unique name for this VNF instance.
+ default: ""
+
+ vnf_module_id:
+ type: string
+ description: Unique ID for this VNF Module instance.
+ default: ""
+
+ vnf_module_name:
+ type: string
+ description: Unique name for this VNF module instance.
+ default: ""
+
+ net_types:
+ type: comma_delimited_list
+ description: CDL of subnet tags.
+
+ oam_management_v4_source:
+ type: string
+ description: Name of the OAM IP parameter to use.
+
+ oam_management_v4_index:
+ type: number
+ description: Index to the V4 management IP address.
+
+ oam_management_v6_source:
+ type: string
+ description: Name of the OAM IP parameter to use.
+
+ oam_management_v6_index:
+ type: number
+ description: Index to the V6 management IP address.
+
+ oam_net_id:
+ type: string
+ description: ID of the network associated with tag "oam".
+ constraints:
+ - custom_constraint: neutron.network
+
+ oam_subnet_id:
+ type: string
+ description: ID of the subnet associated with tag "oam".
+
+ oam_cidr:
+ type: string
+ description: CIDR associated with tag "oam".
+ constraints:
+ - custom_constraint: net_cidr
+
+ oam_default_gateway:
+ type: string
+ description: Default gateway IP address associated with tag "oam".
+
+ access_net_id:
+ type: string
+ description: ID of the network associated with tag "access".
+ constraints:
+ - custom_constraint: neutron.network
+
+ access_subnet_id:
+ type: string
+ description: ID of the subnet associated with tag "access".
+
+ access_cidr:
+ type: string
+ description: CIDR associated with tag "access".
+ constraints:
+ - custom_constraint: net_cidr
+
+ access_default_gateway:
+ type: string
+ description: Default gateway IP address associated with tag "access".
+
+ vm_counts:
+ type: json
+ description: |
+ Maps VM type tags to the number of pairs of that type.
+
+ vm_info:
+ type: json
+ description: Provides keys into type-specific parameters and vnic info.
+ default: {}
+
+ availability_zone_0:
+ type: string
+ description: Availability zone name.
+
+ availability_zone_1:
+ type: string
+ description: Availability zone name.
+
+ oam_names:
+ description: CDL of OAM VM names.
+ type: comma_delimited_list
+
+ ims_names:
+ description: CDL of IMS VM names.
+ type: comma_delimited_list
+
+ oam_image_name:
+ description: Image for this VMtype.
+ type: string
+
+ ims_image_name:
+ description: Image for this VMtype.
+ type: string
+
+ oam_flavor_name:
+ description: CDL of OAM flavor values.
+ type: string
+ constraints:
+ - custom_constraint: nova.flavor
+
+ ims_flavor_name:
+ description: CDL of IMS flavor values.
+ type: string
+ constraints:
+ - custom_constraint: nova.flavor
+
+ oam_oam_ips:
+ type: comma_delimited_list
+ description: List of IP addresses for this VMtype_NETtype combination.
+
+ ims_access_ips:
+ type: comma_delimited_list
+ description: List of IP addresses for this VMtype_NETtype combination.
+
+resources:
+
+ FORMATXLATE:
+ type: LCP-OPENECOMP.template.yaml
+ properties:
+ backup_file: {get_param: backup_file}
+ cloud_name_delimiter: {get_param: cloud_name_delimiter}
+ default_action: {get_param: default_action}
+ install_config: {get_param: install_config}
+ lcm_keypair: {get_param: lcm_keypair}
+ ssh_access_key: {get_param: ssh_access_key}
+ v4_dns_server: {get_param: v4_dns_server}
+ v6_dns_server: {get_param: v6_dns_server}
+ v4_enum_server: {get_param: v4_enum_server}
+ v6_enum_server: {get_param: v6_enum_server}
+ v4_ntp_server: {get_param: v4_ntp_server}
+ v6_ntp_server: {get_param: v6_ntp_server}
+ vnf_id: {get_param: vnf_id}
+ vnf_name: {get_param: vnf_name}
+ vnf_module_id: {get_param: vnf_module_id}
+ vnf_module_name: {get_param: vnf_module_name}
+ net_types: {get_param: net_types}
+ net_ids: {
+ "oam": {get_param: oam_net_id},
+ "access": {get_param: access_net_id},
+ ""
+ }
+ subnet_ids: {
+ "oam": {get_param: oam_subnet_id},
+ "access": {get_param: access_subnet_id},
+ ""
+ }
+ cidrs: {
+ "oam": {get_param: oam_cidr},
+ "access": {get_param: access_cidr},
+ ""
+ }
+ default_gateways: {
+ "oam": {get_param: oam_default_gateway},
+ "access": {get_param: access_default_gateway},
+ ""
+ }
+ # This list must be ordered by group ID.
+ vmtype_list: ["oam", "ims"]
+ vmtype_count: 2
+ vm_counts: {get_param: vm_counts}
+ vm_info: {get_param: vm_info}
+ availability_zones:
+ - {get_param: availability_zone_0}
+ - {get_param: availability_zone_1}
+ images: {
+ "oam": {get_param: oam_image_name},
+ "ims": {get_param: ims_image_name},
+ "": ""
+ }
+ flavors: {
+ "oam": {get_param: oam_flavor_name},
+ "ims": {get_param: ims_flavor_name},
+ "": ""
+ }
+ ip_lists: {
+ "oam_oam_ips": {get_param: oam_oam_ips},
+ "ims_access_ips": {get_param: ims_access_ips},
+ "": []
+ }
+ name_lists: {
+ "oam": {get_param: oam_names},
+ "ims": {get_param: ims_names},
+ "": []
+ }
+
+ NOKIA-LCP-Base:
+ depends_on:
+ - FORMATXLATE
+ type: LCP-Base.template.yaml
+ properties:
+ default_prefix:
+ str_replace:
+ template: |
+ {"": "$stk$delimiter"}
+ params:
+ $stk: {get_param: "OS::stack_name"}
+ $delimiter: {get_attr: [FORMATXLATE, usage_info, cloud_name_delimiter]}
+ int_net_count: 2
+ ext_net_list: ["oam", "access"]
+ ext_net_info: {get_attr: [FORMATXLATE, ext_net_info]}
+ total_vm_pairs: {get_attr: [FORMATXLATE, total_vm_pairs]}
+
+ OAM_RRG:
+ depends_on:
+ - NOKIA-LCP-Base
+ type: LCP-PairGroup.template.yaml
+ properties:
+ default_action: {get_attr: [FORMATXLATE, default_action]}
+ default_name_base:
+ str_replace:
+ template: |
+ {"": "oam$delimiter0$delimiter"}
+ params:
+ $delimiter: {get_attr: [FORMATXLATE, usage_info, cloud_name_delimiter]}
+ group_id: "0"
+ group_tag: "oam"
+ group_index: '0'
+ current_group_count: {get_attr: [FORMATXLATE, vm_counts, "oam"]}
+ role: "oam"
+ lcm_keypair: {get_attr: [FORMATXLATE, lcm_keypair]}
+ total_pair_count: {get_attr: [NOKIA-LCP-Base, TotalPairCount]}
+ backup_file: {get_attr: [FORMATXLATE, backup_file]}
+ name_delimiter: {get_attr: [FORMATXLATE, usage_info, cloud_name_delimiter]}
+ int_net_count: 2
+ install_config: {get_attr: [FORMATXLATE, install_config]}
+ net_info_str: {get_attr: [NOKIA-LCP-Base, NetInfoStr]}
+ sec_group: {get_attr: [NOKIA-LCP-Base, OpenSec]}
+ ssh_access_key: {get_attr: [FORMATXLATE, ssh_access_key]}
+ ssh_public_key: {get_attr: [NOKIA-LCP-Base, PublicKey]}
+ ssh_private_key: {get_attr: [NOKIA-LCP-Base, PrivateKey]}
+ stack: {get_param: "OS::stack_name"}
+ storage_size: 68
+ int_net_info: {get_attr: [NOKIA-LCP-Base, IntNetInfo]}
+ ext_net_info: {get_attr: [FORMATXLATE, ext_net_info]}
+ usage_info: {get_attr: [FORMATXLATE, usage_info]}
+ config_info: {
+ poolinfo: '["mi-0", "cnfg-0", "sns-0"]',
+ v4_static_routes: '{}',
+ v6_static_routes: '{}',
+ v4_default_gateway: "oam",
+ v6_default_gateway: "",
+ vnic_count: 3,
+ "0": { # VM member index.
+ vnic_info: {
+ "0": [
+ {"count": "0", "binding_type": "direct", "subnet_count": "1", "allowed_subnets": ["INTERNALnet0"]},
+ {"label": "connectivity_ip;subnet=INTERNALnet0", "subnet": "INTERNALnet0"},
+ ],
+ "1": [
+ {"count": "0", "binding_type": "direct", "subnet_count": "1", "allowed_subnets": ["INTERNALnet1"]},
+ {"label": "connectivity_ip;subnet=INTERNALnet1", "subnet": "INTERNALnet1"},
+ ],
+ "2": [
+ {"count": "3", "binding_type": "normal", "subnet_count": "1", "allowed_subnets": ["oam"]},
+ {"label": "servicetype=cnfg-0;float;nitype=default;subnet=oam", "subnet": "oam"},
+ {"label": "servicetype=mi-0;float;nitype=default;subnet=oam", "subnet": "oam"},
+ {"label": "servicetype=mi-0;fixed;nitype=default;subnet=oam", "subnet": "oam"},
+ ],
+ }
+ },
+ "1": {
+ vnic_info: {
+ "0": [
+ {"count": "0", "binding_type": "direct", "subnet_count": "1", "allowed_subnets": ["INTERNALnet0"]},
+ {"label": "connectivity_ip;subnet=INTERNALnet0", "subnet": "INTERNALnet0"},
+ ],
+ "1": [
+ {"count": "0", "binding_type": "direct", "subnet_count": "1", "allowed_subnets": ["INTERNALnet1"]},
+ {"label": "connectivity_ip;subnet=INTERNALnet1", "subnet": "INTERNALnet1"},
+ ],
+ "2": [
+ {"count": "1", "binding_type": "normal", "subnet_count": "1", "allowed_subnets": ["oam"]},
+ {"label": "servicetype=mi-0;fixed;nitype=default;subnet=oam", "subnet": "oam"},
+ ],
+ }
+ }
+ }
+
+ IMS_RRG:
+ type: OS::Heat::ResourceGroup
+ depends_on:
+ - NOKIA-LCP-Base
+ properties:
+ count: {get_attr: [FORMATXLATE, vm_counts, "ims"]}
+ resource_def:
+ type: LCP-PairGroup.template.yaml
+ properties:
+ default_action: {get_attr: [FORMATXLATE, default_action]}
+ default_name_base:
+ str_replace:
+ template: |
+ {"": "ims$delimiter%index%$delimiter"}
+ params:
+ $delimiter: {get_attr: [FORMATXLATE, usage_info, cloud_name_delimiter]}
+ group_id: "1"
+ lcm_keypair: {get_attr: [FORMATXLATE, lcm_keypair]}
+ group_tag: "ims"
+ group_index: '%index%'
+ current_group_count: {get_attr: [FORMATXLATE, vm_counts, "ims"]}
+ total_pair_count: {get_attr: [NOKIA-LCP-Base, TotalPairCount]}
+ name_delimiter: {get_attr: [FORMATXLATE, usage_info, cloud_name_delimiter]}
+ net_info_str: {get_attr: [NOKIA-LCP-Base, NetInfoStr]}
+ sec_group: {get_attr: [NOKIA-LCP-Base, OpenSec]}
+ ssh_access_key: {get_attr: [FORMATXLATE, ssh_access_key]}
+ ssh_public_key: {get_attr: [NOKIA-LCP-Base, PublicKey]}
+ ssh_private_key: {get_attr: [NOKIA-LCP-Base, PrivateKey]}
+ stack: {get_param: "OS::stack_name"}
+ storage_size: 4
+ install_config: {get_attr: [FORMATXLATE, install_config]}
+ int_net_count: 2
+ int_net_info: {get_attr: [NOKIA-LCP-Base, IntNetInfo]}
+ ext_net_info: {get_attr: [FORMATXLATE, ext_net_info]}
+ usage_info: {get_attr: [FORMATXLATE, usage_info]}
+ config_info: {
+ poolinfo: '["ims-0", "ims-1", "gos-0"]',
+ v4_static_routes: '{
+ "ims-0": {"subnet": "access", "dest_subnet": "2.2.2.0", "mask": "255.255.255.0"},
+ "ims-1": {"subnet": "access", "dest_subnet": "2.2.2.0", "mask": "255.255.255.0"}
+ }',
+ v6_static_routes: '{}',
+ v4_default_gateway: "access",
+ v6_default_gateway: "",
+ vnic_count: 3,
+ "0": { # VM member index.
+ vnic_info: {
+ "0": [
+ {"count": "0", "binding_type": "normal", "subnet_count": "1", "allowed_subnets": ["INTERNALnet0"]},
+ {"label": "connectivity_ip;subnet=INTERNALnet0", "subnet": "INTERNALnet0"},
+ ],
+ "1": [
+ {"count": "0", "binding_type": "normal", "subnet_count": "1", "allowed_subnets": ["INTERNALnet1"]},
+ {"label": "connectivity_ip;subnet=INTERNALnet1", "subnet": "INTERNALnet1"},
+ ],
+ "2": [
+ {"count": "1", "binding_type": "normal", "subnet_count": "1", "allowed_subnets": ["access"]},
+ {"label": "servicetype=ims-0;float;nitype=published;subnet=access", "subnet": "access"},
+ ],
+ }
+ },
+ "1": {
+ vnic_info: {
+ "0": [
+ {"count": "0", "binding_type": "normal", "subnet_count": "1", "allowed_subnets": ["INTERNALnet0"]},
+ {"label": "connectivity_ip;subnet=INTERNALnet0", "subnet": "INTERNALnet0"},
+ ],
+ "1": [
+ {"count": "0", "binding_type": "normal", "subnet_count": "1", "allowed_subnets": ["INTERNALnet1"]},
+ {"label": "connectivity_ip;subnet=INTERNALnet1", "subnet": "INTERNALnet1"},
+ ],
+ "2": [
+ {"count": "1", "binding_type": "normal", "subnet_count": "1", "allowed_subnets": ["access"]},
+ {"label": "servicetype=ims-1;float;nitype=published;subnet=access", "subnet": "access"},
+ ],
+ }
+ }
+ }
+
+outputs:
+
+ oam_management_v4_address:
+ description: IPV4 of the active MI service.
+ value: {get_param: [{get_param: oam_management_v4_source}, {get_param: oam_management_v4_index}]}
+
+ oam_management_v6_address:
+ description: IPV6 of the active MI service.
+ value: {get_param: [{get_param: oam_management_v6_source}, {get_param: oam_management_v6_index}]}
+
+ internal_net_info:
+ description: |
+ Internal network IDs, CIDR etc. for use by modular additions to
+ this stack.
+ value: {get_attr: [NOKIA-LCP-Base, IntNetInfo]}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/hot-mog-0108-bs1271.env b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/hot-mog-0108-bs1271.env
new file mode 100644
index 0000000000..ceffa1ddae
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/hot-mog-0108-bs1271.env
@@ -0,0 +1,5 @@
+parameters:
+ pd_server_names: ZRDM1MOGX01MPD001,ZRDM1MOGX01MPD002
+ pd_image_name: MOG_BASE_8.0
+ pd_flavor_name: m3.xlarge
+ availabilityzone_name: nova \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/hot-mog-0108-bs1271.yml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/hot-mog-0108-bs1271.yml
new file mode 100644
index 0000000000..5e25e96923
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/getAttrDynamicParamEmptyMap/inputs/hot-mog-0108-bs1271.yml
@@ -0,0 +1,54 @@
+heat_template_version: 2013-05-23
+
+description: heat template that creates MOG stack
+
+parameters:
+ pd_server_names:
+ type: comma_delimited_list
+ label: PD server names
+ description: name of the PD instance
+ pd_image_name:
+ type: string
+ label: image name
+ description: PD image name
+ pd_flavor_name:
+ type: string
+ label: PD flavor name
+ description: flavor name of PD instance
+ availabilityzone_name:
+ type: string
+ label: availabilityzone name
+ description: availabilityzone name
+
+
+resources:
+ server_pd_01:
+ type: OS::Nova::Server
+ properties:
+ name: {get_param: [pd_server_names, 0]}
+ image: {get_param: pd_image_name}
+ flavor: {get_param: pd_flavor_name}
+ availability_zone: {get_param: availabilityzone_name}
+ networks:
+ - port: {get_resource: pd01_port_0}
+ user_data_format: RAW_SERVER_PD_1
+ server_pd_02:
+ type: OS::Nova::Server
+ properties:
+ name: {get_param: [pd_server_names, 1]}
+ image: {get_param: pd_image_name}
+ flavor: {get_param: pd_flavor_name}
+ availability_zone: {get_param: availabilityzone_name}
+ networks:
+ - port: {get_resource: pd01_port_1}
+ user_data_format: RAW_SERVER_PD_2
+ pd01_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: Network-0
+ replacement_policy: AUTO_PORT_0
+ pd01_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network: Network-1
+ replacement_policy: AUTO_PORT_1 \ No newline at end of file