aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles
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/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles')
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/MANIFEST.json94
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/base_perimeta_deployment_create.yaml442
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_1_perimeta_ssc_a_healing.yaml384
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_1_perimeta_ssc_b_healing.yaml384
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_1_perimeta_ssc_rebuild.yaml384
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_2_perimeta_rtp_msc_a_healing.yaml381
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_2_perimeta_rtp_msc_b_healing.yaml381
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_2_perimeta_rtp_msc_rebuild_scaling.yaml381
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/msc_a_template.json33
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_sw.yaml480
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_sw_a.yaml332
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_sw_b.yaml327
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_swmu.yaml561
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_swmu_a.yaml381
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_swmu_b.yaml376
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/ssc_a_template.json34
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/vlan_subinterface_dual.yaml98
17 files changed, 5453 insertions, 0 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/MANIFEST.json
new file mode 100644
index 0000000000..f98a0c35f5
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/MANIFEST.json
@@ -0,0 +1,94 @@
+{
+ "name": "vTSBC",
+ "description": "",
+ "data": [
+ {
+ "file": "module_2_perimeta_rtp_msc_b_healing.yaml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "module_1_perimeta_ssc_a_healing.yaml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "module_1_perimeta_ssc_rebuild.yaml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "perimeta_ha_swmu.yaml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "perimeta_ha_sw_b.yaml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "module_2_perimeta_rtp_msc_a_healing.yaml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "perimeta_ha_sw.yaml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "vlan_subinterface_dual.yaml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "module_2_perimeta_rtp_msc_rebuild_scaling.yaml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "perimeta_ha_swmu_b.yaml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "module_1_perimeta_ssc_b_healing.yaml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "perimeta_ha_swmu_a.yaml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "base_perimeta_deployment_create.yaml",
+ "type": "HEAT",
+ "isBase": "true",
+ "data": [
+ {
+ "file": "base_perimeta_deployment_create.env",
+ "type": "HEAT_ENV"
+ }
+ ]
+ },
+ {
+ "file": "perimeta_ha_sw_a.yaml",
+ "type": "HEAT",
+ "isBase": "false"
+ },
+ {
+ "file": "ssc_a_template.json",
+ "type": "OTHER"
+ },
+ {
+ "file": "msc_a_template.json",
+ "type": "OTHER"
+ },
+ {
+ "file": "custom.ini",
+ "type": "OTHER"
+ }
+ ]
+} \ 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/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/base_perimeta_deployment_create.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/base_perimeta_deployment_create.yaml
new file mode 100644
index 0000000000..ce3b53340f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/base_perimeta_deployment_create.yaml
@@ -0,0 +1,442 @@
+# Heat template which intstantiates a Perimeta SSC and up to 10 Perimeta
+# RTP MSCs and up to 10 Perimeta MSRP MSCs. Currently all instances are
+# HA although standalone MSCs may be supported in future.
+#
+# This Heat template commissions, partners and configures the Perimeta SSC and
+# MSCs with basic configuration defined by ssc_a_template.json,
+# msc_a_template.json and mmc_a_template.json. These can be modified
+# as required to obtain the required Perimeta configuration.
+#
+# This template puts the Perimeta configuration in place using userdata
+# injected via OpenStack's ConfigDrive mechanism.
+#
+# This template sets up anti-affinity using server group anti-affinity and
+# optionally availability zone anti-affinity.
+#
+# This template will work with any version of Perimeta software from 3.9.20.
+#
+# Pre-requisites are:
+# - existing networks as follows
+# - network for management traffic
+# - network for HA traffic
+# - network for core/trusted service traffic
+# - network for access/untrusted service traffic
+# - pre-loaded Perimeta image
+# - suitable flavor to use for Perimeta SSC
+# - suitable flavor to use for Perimeta RTP MSCs
+# - suitable flavor to use for Perimeta MSRP MSCs
+# - suitable keypair to use for Perimeta
+#
+# Virtual IP address and fixed IP addresses to use for the Perimeta instances
+# must be provided as parameters.
+#
+# Template requires Juno or above and has been tested on Kilo. Note that in
+# some deployments, Heat template validation will fail but actually creating
+# a stack using the template will succeed. This is due to problems with
+# Heat validating nested templates.
+#
+heat_template_version: 2014-10-16
+
+description: >
+ HOT template to instantiate a Perimeta SSC plus MxRTP MSCs plus NxMSRP MSCs
+
+parameters:
+ # General VNF parameters
+ vnf_id:
+ type: string
+ description: ID of VNF
+
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+
+ availability_zone_0:
+ type: string
+ description: Availability zone for A instances.
+ availability_zone_1:
+ type: string
+ description: Availability zone for B instances.
+ perimeta_keypair:
+ type: string
+ description: Keypair to use for accessing these Perimeta instances
+ constraints:
+ - custom_constraint: nova.keypair
+ ntp_server_ip_addrs:
+ type: string
+ description: NTP server IPv4 addresses, separated by commas. These must be accessible from the management network
+ constraints:
+ - allowed_pattern: "((?:\\d{1,3}\\.){3}\\d{1,3},)*((?:\\d{1,3}\\.){3}\\d{1,3})"
+ description: ntp_server_ip_addrs must be a comma separated list of IPv4 addresses (with no spaces)
+ perimeta_param_server_group:
+ type: string
+ description: UUID of server group to set anti-affinity policy for Perimeta instance. Only used when doing healing.
+
+ # Management network parameters
+ mgmt_net_id:
+ type: string
+ description: Management network ID
+ constraints:
+ - custom_constraint: neutron.network
+ mgmt_net_plen:
+ type: number
+ description: Management network prefix length
+ constraints:
+ - range: { min: 0, max: 32 }
+ description: mgmt_net_plen must be between 0 and 32
+ mgmt_net_default_gateway:
+ type: string
+ description: Default gateway for management network
+ mgmt_net_sec_groups:
+ type: comma_delimited_list
+ description: Management network security groups
+
+ # Internal high availability network parameters
+ int_ha_net_id:
+ type: string
+ description: Internal HA network ID
+ constraints:
+ - custom_constraint: neutron.network
+ int_ha_net_plen:
+ type: number
+ description: Intermal HA network prefix length.
+ constraints:
+ - range: { min: 0, max: 32 }
+ description: int_ha_net_plen must be between 0 and 32
+ int_ha_net_sec_groups:
+ type: comma_delimited_list
+ description: Security groups associated with internal HA network
+
+ # Trusted/core network parameters
+ trusted_net_id:
+ type: string
+ description: Network ID of trusted/core network.
+ constraints:
+ - custom_constraint: neutron.network
+ trusted_net_sec_groups:
+ type: comma_delimited_list
+ description: Security groups associated with trusted/core network
+
+ # Untrusted/access network parameters
+ untrusted_net_id:
+ type: string
+ description: Network ID of untrusted/access network.
+ constraints:
+ - custom_constraint: neutron.network
+ untrusted_net_sec_groups:
+ type: comma_delimited_list
+ description: Security groups associated with untrusted/access network
+ untrusted_num_vlans:
+ type: number
+ description: Number of VLANs to connect to on the untrusted/access network
+ untrusted_vlan_ids:
+ type: comma_delimited_list
+ description: List of VLAN IDs to use on the untrusted/access network
+ untrusted_vlan_networks:
+ type: comma_delimited_list
+ description: List of Contrail VLAN networks to use on the untrusted/access network. The order and number of these must match the VLAN ID list
+
+ # Unused network parameters
+ #
+ # This is used for connecting the unused 4th SSC service interface.
+ unused_port_net_id:
+ type: string
+ description: Unused network ID
+ constraints:
+ - custom_constraint: neutron.network
+
+ # SSC parameters
+ ssc_flavor_name:
+ type: string
+ description: Flavor to use for creating SSC VM instance
+ constraints:
+ - custom_constraint: nova.flavor
+ ssc_image_name:
+ type: string
+ description: Glance image to use for launching SSC Perimeta instances.
+ constraints:
+ - custom_constraint: glance.image
+ ssc_a_name_0:
+ type: string
+ description: Name of VM A of SSC
+ constraints:
+ - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'
+ description: VM A name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed.
+ ssc_b_name_0:
+ type: string
+ description: Name of VM B of SSC
+ constraints:
+ - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'
+ description: VM B name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed.
+ ssc_system_name_0:
+ type: string
+ description: System name of SSC
+ constraints:
+ - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'
+ description: System name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed.
+
+ # SSC IP addresses on management network
+ ssc_mgmt_vip_0:
+ type: string
+ description: Management virtual IP address to use for SSC. Only required when predefining VIPs.
+ ssc_a_mgmt_ip_0:
+ type: string
+ description: Management fixed IP address to use for SSC A. Only required when predefining fixed IPs.
+ ssc_b_mgmt_ip_0:
+ type: string
+ description: Management fixed IP address to use for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on internal HA network
+ ssc_a_int_ha_ip_0:
+ type: string
+ description: HA fixed IP address to use for SSC A. Only required when predefining fixed IPs.
+ ssc_b_int_ha_ip_0:
+ type: string
+ description: HA fixed IP address to use for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on trusted/core network
+ ssc_trusted_vip_0:
+ type: string
+ description: Virtual IPv4 address on trusted/core network for SSC.
+ ssc_a_trusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on trusted/core network for SSC A. Only required when predefining fixed IPs.
+ ssc_b_trusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on trusted/core network for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on untrusted/access network
+ ssc_untrusted_vip_0:
+ type: string
+ description: Virtual IPv4 address on untrusted/access network for SSC. Only required when predefining virtual IPs.
+ ssc_untrusted_v6_vip_0:
+ type: string
+ description: Virtual IPv6 address on untrusted/access network for SSC. Only required when predefining virtual IPs.
+ ssc_a_untrusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on untrusted/access network for SSC A. Only required when predefining fixed IPs.
+ ssc_a_untrusted_v6_ip_0:
+ type: string
+ description: Fixed IPv6 address on untrusted/access network for SSC A. Only required when predefining fixed IPs.
+ ssc_b_untrusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on untrusted/access network for SSC B. Only required when predefining fixed IPs.
+ ssc_b_untrusted_v6_ip_0:
+ type: string
+ description: Fixed IPv6 address on untrusted/access network for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on management/Rf network
+ ssc_rf_vip_0:
+ type: string
+ description: Virtual IPv4 address on management/Rf network for SSC. Only required when predefining virtual IPs.
+ ssc_a_rf_ip_0:
+ type: string
+ description: Fixed IPv4 address on management/Rf network for SSC A. Only required when predefining fixed IPs.
+ ssc_b_rf_ip_0:
+ type: string
+ description: Fixed IPv4 address on management/Rf network for SSC B. Only required when predefining fixed IPs.
+
+ # RTP MSC parameters
+ rtp_msc_count:
+ type: number
+ description: Count of required RTP MSCs
+ rtp_msc_flavor_name:
+ type: string
+ description: Flavor to use for creating RTP MSC VM instances
+ constraints:
+ - custom_constraint: nova.flavor
+ rtp_msc_image_name:
+ type: string
+ description: Glance image to use for launching RTP MSC Perimeta instances.
+ constraints:
+ - custom_constraint: glance.image
+ rtp_msc_a_names:
+ type: comma_delimited_list
+ description: List of names of RTP MSC VM A instances
+ rtp_msc_b_names:
+ type: comma_delimited_list
+ description: List of names of RTP MSC VM B instances
+ rtp_msc_system_names:
+ type: comma_delimited_list
+ description: List of system names of RTP MSC instances
+
+ # RTP MSC IP addresses on management network
+ rtp_msc_mgmt_vips:
+ type: comma_delimited_list
+ description: Management virtual IP addresses to use for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_mgmt_ips:
+ type: comma_delimited_list
+ description: Management fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_mgmt_ips:
+ type: comma_delimited_list
+ description: Management fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+ # RTP MSC IP addresses on internal HA network
+ rtp_msc_a_int_ha_ips:
+ type: comma_delimited_list
+ description: HA fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_int_ha_ips:
+ type: comma_delimited_list
+ description: HA fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+ # RTP MSC IP addresses on trusted/core network
+ rtp_msc_trusted_vips:
+ type: comma_delimited_list
+ description: Virtual IPv4 addresses on trusted/core network for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_trusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 addresses on trusted/core network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_trusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 address on trusted/core network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+ # RTP MSC IP addresses on untrusted/access network
+ rtp_msc_untrusted_vips:
+ type: comma_delimited_list
+ description: Virtual IPv4 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_untrusted_v6_vips:
+ type: comma_delimited_list
+ description: Virtual IPv6 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_untrusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_untrusted_v6_ips:
+ type: comma_delimited_list
+ description: Fixed IPv6 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_untrusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_untrusted_v6_ips:
+ type: comma_delimited_list
+ description: Fixed IPv6 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+resources:
+
+ # Perimeta SSC
+ perimeta_ssc:
+ type: perimeta_ha_swmu.yaml
+ properties:
+ vnf_id: { get_param: vnf_id }
+ vm_role: 'ssc'
+ vf_module_id: { get_param: vf_module_id }
+ system_names: [{ get_param: ssc_system_name_0 }]
+ vm_a_names: [{ get_param: ssc_a_name_0 }]
+ vm_b_names: [{ get_param: ssc_b_name_0 }]
+ perimeta_instance_index: 0
+ perimeta_image_name: { get_param: ssc_image_name }
+ perimeta_flavor_name: { get_param: ssc_flavor_name }
+ perimeta_keypair: { get_param: perimeta_keypair }
+ availability_zone_0: { get_param: availability_zone_0 }
+ availability_zone_1: { get_param: availability_zone_1 }
+ mgmt_net_id: { get_param: mgmt_net_id }
+ mgmt_net_plen: { get_param: mgmt_net_plen }
+ mgmt_net_default_gateway: { get_param: mgmt_net_default_gateway }
+ mgmt_vips: [{ get_param: ssc_mgmt_vip_0 }]
+ mgmt_a_ips: [{ get_param: ssc_a_mgmt_ip_0 }]
+ mgmt_b_ips: [{ get_param: ssc_b_mgmt_ip_0 }]
+ mgmt_sec_groups: { get_param: mgmt_net_sec_groups }
+ ha_net_id: { get_param: int_ha_net_id }
+ ha_network_plen: { get_param: int_ha_net_plen }
+ ha_a_ips: [{ get_param: ssc_a_int_ha_ip_0 }]
+ ha_b_ips: [{ get_param: ssc_b_int_ha_ip_0 }]
+ ha_sec_groups: { get_param: int_ha_net_sec_groups }
+ trusted_net_id: { get_param: trusted_net_id }
+ trusted_vips: [{ get_param: ssc_trusted_vip_0 }]
+ trusted_a_ips: [{ get_param: ssc_a_trusted_ip_0 }]
+ trusted_b_ips: [{ get_param: ssc_b_trusted_ip_0 }]
+ trusted_sec_groups: { get_param: trusted_net_sec_groups }
+ untrusted_net_id: { get_param: untrusted_net_id }
+ untrusted_vips: [{ get_param: ssc_untrusted_vip_0 }]
+ untrusted_v6_vips: [{ get_param: ssc_untrusted_v6_vip_0 }]
+ untrusted_a_ips: [{ get_param: ssc_a_untrusted_ip_0 }]
+ untrusted_a_v6_ips: [{ get_param: ssc_a_untrusted_v6_ip_0 }]
+ untrusted_b_ips: [{ get_param: ssc_b_untrusted_ip_0 }]
+ untrusted_b_v6_ips: [{ get_param: ssc_b_untrusted_v6_ip_0 }]
+ untrusted_sec_groups: { get_param: untrusted_net_sec_groups }
+ untrusted_num_vlans: { get_param: untrusted_num_vlans }
+ untrusted_vlan_ids: { get_param: untrusted_vlan_ids }
+ untrusted_vlan_networks: { get_param: untrusted_vlan_networks }
+ serv3_net_id: { get_param: mgmt_net_id }
+ serv3_vips: [{ get_param: ssc_rf_vip_0 }]
+ serv3_a_ips: [{ get_param: ssc_a_rf_ip_0 }]
+ serv3_b_ips: [{ get_param: ssc_b_rf_ip_0 }]
+ serv3_sec_groups: { get_param: mgmt_net_sec_groups }
+ unused_net_id: { get_param: unused_port_net_id }
+ perimeta_param_server_group: { get_param: perimeta_param_server_group }
+ perimeta_config:
+ str_replace:
+ template: {get_file: ssc_a_template.json}
+ params:
+ $NTP_SERVER_IP_ADDRS: { get_param: ntp_server_ip_addrs }
+ $COMPLETION_PARAMS: ''
+
+ # Perimeta RTP MSCs.
+ perimeta_rtp_mscs:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: { get_param: rtp_msc_count }
+ resource_def:
+ type: perimeta_ha_sw.yaml
+ properties:
+ vnf_id: { get_param: vnf_id }
+ vm_role: 'rtp_msc'
+ vf_module_id: { get_param: vf_module_id }
+ system_names: { get_param: rtp_msc_system_names }
+ vm_a_names: { get_param: rtp_msc_a_names }
+ vm_b_names: { get_param: rtp_msc_b_names }
+ perimeta_instance_index: "%index%"
+ perimeta_image_name: { get_param: rtp_msc_image_name }
+ perimeta_flavor_name: { get_param: rtp_msc_flavor_name }
+ perimeta_keypair: { get_param: perimeta_keypair }
+ availability_zone_0: { get_param: availability_zone_0 }
+ availability_zone_1: { get_param: availability_zone_1 }
+ mgmt_net_id: { get_param: mgmt_net_id }
+ mgmt_net_plen: { get_param: mgmt_net_plen }
+ mgmt_net_default_gateway: { get_param: mgmt_net_default_gateway }
+ mgmt_vips: { get_param: rtp_msc_mgmt_vips }
+ mgmt_a_ips: { get_param: rtp_msc_a_mgmt_ips }
+ mgmt_b_ips: { get_param: rtp_msc_b_mgmt_ips }
+ mgmt_sec_groups: { get_param: mgmt_net_sec_groups }
+ ha_net_id: { get_param: int_ha_net_id }
+ ha_network_plen: { get_param: int_ha_net_plen }
+ ha_a_ips: { get_param: rtp_msc_a_int_ha_ips }
+ ha_b_ips: { get_param: rtp_msc_b_int_ha_ips }
+ ha_sec_groups: { get_param: int_ha_net_sec_groups }
+ trusted_net_id: { get_param: trusted_net_id }
+ trusted_vips: { get_param: rtp_msc_trusted_vips }
+ trusted_a_ips: { get_param: rtp_msc_a_trusted_ips }
+ trusted_b_ips: { get_param: rtp_msc_b_trusted_ips }
+ trusted_sec_groups: { get_param: trusted_net_sec_groups }
+ untrusted_net_id: { get_param: untrusted_net_id }
+ untrusted_vips: { get_param: rtp_msc_untrusted_vips }
+ untrusted_v6_vips: { get_param: rtp_msc_untrusted_v6_vips }
+ untrusted_a_ips: { get_param: rtp_msc_a_untrusted_ips }
+ untrusted_a_v6_ips: { get_param: rtp_msc_a_untrusted_v6_ips }
+ untrusted_b_ips: { get_param: rtp_msc_b_untrusted_ips }
+ untrusted_b_v6_ips: { get_param: rtp_msc_b_untrusted_v6_ips }
+ untrusted_sec_groups: { get_param: untrusted_net_sec_groups }
+ untrusted_num_vlans: { get_param: untrusted_num_vlans }
+ untrusted_vlan_ids: { get_param: untrusted_vlan_ids }
+ untrusted_vlan_networks: { get_param: untrusted_vlan_networks }
+ perimeta_param_server_group: { get_param: perimeta_param_server_group }
+ perimeta_config:
+ str_replace:
+ template: {get_file: msc_a_template.json}
+ params:
+ $NTP_SERVER_IP_ADDRS: { get_param: ntp_server_ip_addrs }
+ $COMPLETION_PARAMS: ''
+
+
+outputs:
+
+ ssc_server_group:
+ description: Server group for SSC pair
+ value: { get_attr: [ perimeta_ssc, server_group_used ] }
+
+ rtp_msc_server_groups:
+ description: Server groups for RTP MSC pairs
+ value: { get_attr: [ perimeta_rtp_mscs, server_group_used ] }
+
+
+ msw_template_version:
+ description: Version of the heat templates used to instantiate the VMs
+ value: "4.0.1 - 2016-10-28"
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_1_perimeta_ssc_a_healing.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_1_perimeta_ssc_a_healing.yaml
new file mode 100644
index 0000000000..d00c51a73f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_1_perimeta_ssc_a_healing.yaml
@@ -0,0 +1,384 @@
+# Heat template which intstantiates a Perimeta SSC and up to 10 Perimeta
+# RTP MSCs and up to 10 Perimeta MSRP MSCs. Currently all instances are
+# HA although standalone MSCs may be supported in future.
+#
+# This Heat template commissions, partners and configures the Perimeta SSC and
+# MSCs with basic configuration defined by ssc_a_template.json,
+# msc_a_template.json and mmc_a_template.json. These can be modified
+# as required to obtain the required Perimeta configuration.
+#
+# This template puts the Perimeta configuration in place using userdata
+# injected via OpenStack's ConfigDrive mechanism.
+#
+# This template sets up anti-affinity using server group anti-affinity and
+# optionally availability zone anti-affinity.
+#
+# This template will work with any version of Perimeta software from 3.9.20.
+#
+# Pre-requisites are:
+# - existing networks as follows
+# - network for management traffic
+# - network for HA traffic
+# - network for core/trusted service traffic
+# - network for access/untrusted service traffic
+# - pre-loaded Perimeta image
+# - suitable flavor to use for Perimeta SSC
+# - suitable flavor to use for Perimeta RTP MSCs
+# - suitable flavor to use for Perimeta MSRP MSCs
+# - suitable keypair to use for Perimeta
+#
+# Virtual IP address and fixed IP addresses to use for the Perimeta instances
+# must be provided as parameters.
+#
+# Template requires Juno or above and has been tested on Kilo. Note that in
+# some deployments, Heat template validation will fail but actually creating
+# a stack using the template will succeed. This is due to problems with
+# Heat validating nested templates.
+#
+heat_template_version: 2014-10-16
+
+description: >
+ HOT template to instantiate a Perimeta SSC plus MxRTP MSCs plus NxMSRP MSCs
+
+parameters:
+ # General VNF parameters
+ vnf_id:
+ type: string
+ description: ID of VNF
+
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+
+ availability_zone_0:
+ type: string
+ description: Availability zone for A instances.
+ availability_zone_1:
+ type: string
+ description: Availability zone for B instances.
+ perimeta_keypair:
+ type: string
+ description: Keypair to use for accessing these Perimeta instances
+ constraints:
+ - custom_constraint: nova.keypair
+ ntp_server_ip_addrs:
+ type: string
+ description: NTP server IPv4 addresses, separated by commas. These must be accessible from the management network
+ constraints:
+ - allowed_pattern: "((?:\\d{1,3}\\.){3}\\d{1,3},)*((?:\\d{1,3}\\.){3}\\d{1,3})"
+ description: ntp_server_ip_addrs must be a comma separated list of IPv4 addresses (with no spaces)
+ perimeta_param_server_group:
+ type: string
+ description: UUID of server group to set anti-affinity policy for Perimeta instance. Only used when doing healing.
+
+ # Management network parameters
+ mgmt_net_id:
+ type: string
+ description: Management network ID
+ constraints:
+ - custom_constraint: neutron.network
+ mgmt_net_plen:
+ type: number
+ description: Management network prefix length
+ constraints:
+ - range: { min: 0, max: 32 }
+ description: mgmt_net_plen must be between 0 and 32
+ mgmt_net_default_gateway:
+ type: string
+ description: Default gateway for management network
+ mgmt_net_sec_groups:
+ type: comma_delimited_list
+ description: Management network security groups
+
+ # Internal high availability network parameters
+ int_ha_net_id:
+ type: string
+ description: Internal HA network ID
+ constraints:
+ - custom_constraint: neutron.network
+ int_ha_net_plen:
+ type: number
+ description: Intermal HA network prefix length.
+ constraints:
+ - range: { min: 0, max: 32 }
+ description: int_ha_net_plen must be between 0 and 32
+ int_ha_net_sec_groups:
+ type: comma_delimited_list
+ description: Security groups associated with internal HA network
+
+ # Trusted/core network parameters
+ trusted_net_id:
+ type: string
+ description: Network ID of trusted/core network.
+ constraints:
+ - custom_constraint: neutron.network
+ trusted_net_sec_groups:
+ type: comma_delimited_list
+ description: Security groups associated with trusted/core network
+
+ # Untrusted/access network parameters
+ untrusted_net_id:
+ type: string
+ description: Network ID of untrusted/access network.
+ constraints:
+ - custom_constraint: neutron.network
+ untrusted_net_sec_groups:
+ type: comma_delimited_list
+ description: Security groups associated with untrusted/access network
+ untrusted_num_vlans:
+ type: number
+ description: Number of VLANs to connect to on the untrusted/access network
+ untrusted_vlan_ids:
+ type: comma_delimited_list
+ description: List of VLAN IDs to use on the untrusted/access network
+ untrusted_vlan_networks:
+ type: comma_delimited_list
+ description: List of Contrail VLAN networks to use on the untrusted/access network. The order and number of these must match the VLAN ID list
+
+ # Unused network parameters
+ #
+ # This is used for connecting the unused 4th SSC service interface.
+ unused_port_net_id:
+ type: string
+ description: Unused network ID
+ constraints:
+ - custom_constraint: neutron.network
+
+ # SSC parameters
+ ssc_flavor_name:
+ type: string
+ description: Flavor to use for creating SSC VM instance
+ constraints:
+ - custom_constraint: nova.flavor
+ ssc_image_name:
+ type: string
+ description: Glance image to use for launching SSC Perimeta instances.
+ constraints:
+ - custom_constraint: glance.image
+ ssc_a_name_0:
+ type: string
+ description: Name of VM A of SSC
+ constraints:
+ - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'
+ description: VM A name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed.
+ ssc_b_name_0:
+ type: string
+ description: Name of VM B of SSC
+ constraints:
+ - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'
+ description: VM B name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed.
+ ssc_system_name_0:
+ type: string
+ description: System name of SSC
+ constraints:
+ - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'
+ description: System name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed.
+
+ # SSC IP addresses on management network
+ ssc_mgmt_vip_0:
+ type: string
+ description: Management virtual IP address to use for SSC. Only required when predefining VIPs.
+ ssc_a_mgmt_ip_0:
+ type: string
+ description: Management fixed IP address to use for SSC A. Only required when predefining fixed IPs.
+ ssc_b_mgmt_ip_0:
+ type: string
+ description: Management fixed IP address to use for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on internal HA network
+ ssc_a_int_ha_ip_0:
+ type: string
+ description: HA fixed IP address to use for SSC A. Only required when predefining fixed IPs.
+ ssc_b_int_ha_ip_0:
+ type: string
+ description: HA fixed IP address to use for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on trusted/core network
+ ssc_trusted_vip_0:
+ type: string
+ description: Virtual IPv4 address on trusted/core network for SSC.
+ ssc_a_trusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on trusted/core network for SSC A. Only required when predefining fixed IPs.
+ ssc_b_trusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on trusted/core network for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on untrusted/access network
+ ssc_untrusted_vip_0:
+ type: string
+ description: Virtual IPv4 address on untrusted/access network for SSC. Only required when predefining virtual IPs.
+ ssc_untrusted_v6_vip_0:
+ type: string
+ description: Virtual IPv6 address on untrusted/access network for SSC. Only required when predefining virtual IPs.
+ ssc_a_untrusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on untrusted/access network for SSC A. Only required when predefining fixed IPs.
+ ssc_a_untrusted_v6_ip_0:
+ type: string
+ description: Fixed IPv6 address on untrusted/access network for SSC A. Only required when predefining fixed IPs.
+ ssc_b_untrusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on untrusted/access network for SSC B. Only required when predefining fixed IPs.
+ ssc_b_untrusted_v6_ip_0:
+ type: string
+ description: Fixed IPv6 address on untrusted/access network for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on management/Rf network
+ ssc_rf_vip_0:
+ type: string
+ description: Virtual IPv4 address on management/Rf network for SSC. Only required when predefining virtual IPs.
+ ssc_a_rf_ip_0:
+ type: string
+ description: Fixed IPv4 address on management/Rf network for SSC A. Only required when predefining fixed IPs.
+ ssc_b_rf_ip_0:
+ type: string
+ description: Fixed IPv4 address on management/Rf network for SSC B. Only required when predefining fixed IPs.
+
+ # RTP MSC parameters
+ rtp_msc_count:
+ type: number
+ description: Count of required RTP MSCs
+ rtp_msc_flavor_name:
+ type: string
+ description: Flavor to use for creating RTP MSC VM instances
+ constraints:
+ - custom_constraint: nova.flavor
+ rtp_msc_image_name:
+ type: string
+ description: Glance image to use for launching RTP MSC Perimeta instances.
+ constraints:
+ - custom_constraint: glance.image
+ rtp_msc_a_names:
+ type: comma_delimited_list
+ description: List of names of RTP MSC VM A instances
+ rtp_msc_b_names:
+ type: comma_delimited_list
+ description: List of names of RTP MSC VM B instances
+ rtp_msc_system_names:
+ type: comma_delimited_list
+ description: List of system names of RTP MSC instances
+
+ # RTP MSC IP addresses on management network
+ rtp_msc_mgmt_vips:
+ type: comma_delimited_list
+ description: Management virtual IP addresses to use for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_mgmt_ips:
+ type: comma_delimited_list
+ description: Management fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_mgmt_ips:
+ type: comma_delimited_list
+ description: Management fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+ # RTP MSC IP addresses on internal HA network
+ rtp_msc_a_int_ha_ips:
+ type: comma_delimited_list
+ description: HA fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_int_ha_ips:
+ type: comma_delimited_list
+ description: HA fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+ # RTP MSC IP addresses on trusted/core network
+ rtp_msc_trusted_vips:
+ type: comma_delimited_list
+ description: Virtual IPv4 addresses on trusted/core network for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_trusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 addresses on trusted/core network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_trusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 address on trusted/core network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+ # RTP MSC IP addresses on untrusted/access network
+ rtp_msc_untrusted_vips:
+ type: comma_delimited_list
+ description: Virtual IPv4 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_untrusted_v6_vips:
+ type: comma_delimited_list
+ description: Virtual IPv6 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_untrusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_untrusted_v6_ips:
+ type: comma_delimited_list
+ description: Fixed IPv6 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_untrusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_untrusted_v6_ips:
+ type: comma_delimited_list
+ description: Fixed IPv6 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+resources:
+
+ # Perimeta SSC
+ perimeta_ssc:
+ type: perimeta_ha_swmu_a.yaml
+ properties:
+ vnf_id: { get_param: vnf_id }
+ vm_role: 'ssc'
+ vf_module_id: { get_param: vf_module_id }
+ system_names: [{ get_param: ssc_system_name_0 }]
+ vm_a_names: [{ get_param: ssc_a_name_0 }]
+ vm_b_names: [{ get_param: ssc_b_name_0 }]
+ perimeta_instance_index: 0
+ perimeta_image_name: { get_param: ssc_image_name }
+ perimeta_flavor_name: { get_param: ssc_flavor_name }
+ perimeta_keypair: { get_param: perimeta_keypair }
+ availability_zone_0: { get_param: availability_zone_0 }
+ availability_zone_1: { get_param: availability_zone_1 }
+ mgmt_net_id: { get_param: mgmt_net_id }
+ mgmt_net_plen: { get_param: mgmt_net_plen }
+ mgmt_net_default_gateway: { get_param: mgmt_net_default_gateway }
+ mgmt_vips: [{ get_param: ssc_mgmt_vip_0 }]
+ mgmt_a_ips: [{ get_param: ssc_a_mgmt_ip_0 }]
+ mgmt_b_ips: [{ get_param: ssc_b_mgmt_ip_0 }]
+ mgmt_sec_groups: { get_param: mgmt_net_sec_groups }
+ ha_net_id: { get_param: int_ha_net_id }
+ ha_network_plen: { get_param: int_ha_net_plen }
+ ha_a_ips: [{ get_param: ssc_a_int_ha_ip_0 }]
+ ha_b_ips: [{ get_param: ssc_b_int_ha_ip_0 }]
+ ha_sec_groups: { get_param: int_ha_net_sec_groups }
+ trusted_net_id: { get_param: trusted_net_id }
+ trusted_vips: [{ get_param: ssc_trusted_vip_0 }]
+ trusted_a_ips: [{ get_param: ssc_a_trusted_ip_0 }]
+ trusted_b_ips: [{ get_param: ssc_b_trusted_ip_0 }]
+ trusted_sec_groups: { get_param: trusted_net_sec_groups }
+ untrusted_net_id: { get_param: untrusted_net_id }
+ untrusted_vips: [{ get_param: ssc_untrusted_vip_0 }]
+ untrusted_v6_vips: [{ get_param: ssc_untrusted_v6_vip_0 }]
+ untrusted_a_ips: [{ get_param: ssc_a_untrusted_ip_0 }]
+ untrusted_a_v6_ips: [{ get_param: ssc_a_untrusted_v6_ip_0 }]
+ untrusted_b_ips: [{ get_param: ssc_b_untrusted_ip_0 }]
+ untrusted_b_v6_ips: [{ get_param: ssc_b_untrusted_v6_ip_0 }]
+ untrusted_sec_groups: { get_param: untrusted_net_sec_groups }
+ untrusted_num_vlans: { get_param: untrusted_num_vlans }
+ untrusted_vlan_ids: { get_param: untrusted_vlan_ids }
+ untrusted_vlan_networks: { get_param: untrusted_vlan_networks }
+ serv3_net_id: { get_param: mgmt_net_id }
+ serv3_vips: [{ get_param: ssc_rf_vip_0 }]
+ serv3_a_ips: [{ get_param: ssc_a_rf_ip_0 }]
+ serv3_b_ips: [{ get_param: ssc_b_rf_ip_0 }]
+ serv3_sec_groups: { get_param: mgmt_net_sec_groups }
+ unused_net_id: { get_param: unused_port_net_id }
+ perimeta_param_server_group: { get_param: perimeta_param_server_group }
+ perimeta_config:
+ str_replace:
+ template: {get_file: ssc_a_template.json}
+ params:
+ $NTP_SERVER_IP_ADDRS: { get_param: ntp_server_ip_addrs }
+ $COMPLETION_PARAMS: ''
+
+
+
+outputs:
+
+ ssc_server_group:
+ description: Server group for SSC pair
+ value: { get_attr: [ perimeta_ssc, server_group_used ] }
+
+
+
+ msw_template_version:
+ description: Version of the heat templates used to instantiate the VMs
+ value: "4.0.1 - 2016-10-28"
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_1_perimeta_ssc_b_healing.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_1_perimeta_ssc_b_healing.yaml
new file mode 100644
index 0000000000..8af8a1a7ea
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_1_perimeta_ssc_b_healing.yaml
@@ -0,0 +1,384 @@
+# Heat template which intstantiates a Perimeta SSC and up to 10 Perimeta
+# RTP MSCs and up to 10 Perimeta MSRP MSCs. Currently all instances are
+# HA although standalone MSCs may be supported in future.
+#
+# This Heat template commissions, partners and configures the Perimeta SSC and
+# MSCs with basic configuration defined by ssc_a_template.json,
+# msc_a_template.json and mmc_a_template.json. These can be modified
+# as required to obtain the required Perimeta configuration.
+#
+# This template puts the Perimeta configuration in place using userdata
+# injected via OpenStack's ConfigDrive mechanism.
+#
+# This template sets up anti-affinity using server group anti-affinity and
+# optionally availability zone anti-affinity.
+#
+# This template will work with any version of Perimeta software from 3.9.20.
+#
+# Pre-requisites are:
+# - existing networks as follows
+# - network for management traffic
+# - network for HA traffic
+# - network for core/trusted service traffic
+# - network for access/untrusted service traffic
+# - pre-loaded Perimeta image
+# - suitable flavor to use for Perimeta SSC
+# - suitable flavor to use for Perimeta RTP MSCs
+# - suitable flavor to use for Perimeta MSRP MSCs
+# - suitable keypair to use for Perimeta
+#
+# Virtual IP address and fixed IP addresses to use for the Perimeta instances
+# must be provided as parameters.
+#
+# Template requires Juno or above and has been tested on Kilo. Note that in
+# some deployments, Heat template validation will fail but actually creating
+# a stack using the template will succeed. This is due to problems with
+# Heat validating nested templates.
+#
+heat_template_version: 2014-10-16
+
+description: >
+ HOT template to instantiate a Perimeta SSC plus MxRTP MSCs plus NxMSRP MSCs
+
+parameters:
+ # General VNF parameters
+ vnf_id:
+ type: string
+ description: ID of VNF
+
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+
+ availability_zone_0:
+ type: string
+ description: Availability zone for A instances.
+ availability_zone_1:
+ type: string
+ description: Availability zone for B instances.
+ perimeta_keypair:
+ type: string
+ description: Keypair to use for accessing these Perimeta instances
+ constraints:
+ - custom_constraint: nova.keypair
+ ntp_server_ip_addrs:
+ type: string
+ description: NTP server IPv4 addresses, separated by commas. These must be accessible from the management network
+ constraints:
+ - allowed_pattern: "((?:\\d{1,3}\\.){3}\\d{1,3},)*((?:\\d{1,3}\\.){3}\\d{1,3})"
+ description: ntp_server_ip_addrs must be a comma separated list of IPv4 addresses (with no spaces)
+ perimeta_param_server_group:
+ type: string
+ description: UUID of server group to set anti-affinity policy for Perimeta instance. Only used when doing healing.
+
+ # Management network parameters
+ mgmt_net_id:
+ type: string
+ description: Management network ID
+ constraints:
+ - custom_constraint: neutron.network
+ mgmt_net_plen:
+ type: number
+ description: Management network prefix length
+ constraints:
+ - range: { min: 0, max: 32 }
+ description: mgmt_net_plen must be between 0 and 32
+ mgmt_net_default_gateway:
+ type: string
+ description: Default gateway for management network
+ mgmt_net_sec_groups:
+ type: comma_delimited_list
+ description: Management network security groups
+
+ # Internal high availability network parameters
+ int_ha_net_id:
+ type: string
+ description: Internal HA network ID
+ constraints:
+ - custom_constraint: neutron.network
+ int_ha_net_plen:
+ type: number
+ description: Intermal HA network prefix length.
+ constraints:
+ - range: { min: 0, max: 32 }
+ description: int_ha_net_plen must be between 0 and 32
+ int_ha_net_sec_groups:
+ type: comma_delimited_list
+ description: Security groups associated with internal HA network
+
+ # Trusted/core network parameters
+ trusted_net_id:
+ type: string
+ description: Network ID of trusted/core network.
+ constraints:
+ - custom_constraint: neutron.network
+ trusted_net_sec_groups:
+ type: comma_delimited_list
+ description: Security groups associated with trusted/core network
+
+ # Untrusted/access network parameters
+ untrusted_net_id:
+ type: string
+ description: Network ID of untrusted/access network.
+ constraints:
+ - custom_constraint: neutron.network
+ untrusted_net_sec_groups:
+ type: comma_delimited_list
+ description: Security groups associated with untrusted/access network
+ untrusted_num_vlans:
+ type: number
+ description: Number of VLANs to connect to on the untrusted/access network
+ untrusted_vlan_ids:
+ type: comma_delimited_list
+ description: List of VLAN IDs to use on the untrusted/access network
+ untrusted_vlan_networks:
+ type: comma_delimited_list
+ description: List of Contrail VLAN networks to use on the untrusted/access network. The order and number of these must match the VLAN ID list
+
+ # Unused network parameters
+ #
+ # This is used for connecting the unused 4th SSC service interface.
+ unused_port_net_id:
+ type: string
+ description: Unused network ID
+ constraints:
+ - custom_constraint: neutron.network
+
+ # SSC parameters
+ ssc_flavor_name:
+ type: string
+ description: Flavor to use for creating SSC VM instance
+ constraints:
+ - custom_constraint: nova.flavor
+ ssc_image_name:
+ type: string
+ description: Glance image to use for launching SSC Perimeta instances.
+ constraints:
+ - custom_constraint: glance.image
+ ssc_a_name_0:
+ type: string
+ description: Name of VM A of SSC
+ constraints:
+ - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'
+ description: VM A name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed.
+ ssc_b_name_0:
+ type: string
+ description: Name of VM B of SSC
+ constraints:
+ - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'
+ description: VM B name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed.
+ ssc_system_name_0:
+ type: string
+ description: System name of SSC
+ constraints:
+ - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'
+ description: System name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed.
+
+ # SSC IP addresses on management network
+ ssc_mgmt_vip_0:
+ type: string
+ description: Management virtual IP address to use for SSC. Only required when predefining VIPs.
+ ssc_a_mgmt_ip_0:
+ type: string
+ description: Management fixed IP address to use for SSC A. Only required when predefining fixed IPs.
+ ssc_b_mgmt_ip_0:
+ type: string
+ description: Management fixed IP address to use for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on internal HA network
+ ssc_a_int_ha_ip_0:
+ type: string
+ description: HA fixed IP address to use for SSC A. Only required when predefining fixed IPs.
+ ssc_b_int_ha_ip_0:
+ type: string
+ description: HA fixed IP address to use for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on trusted/core network
+ ssc_trusted_vip_0:
+ type: string
+ description: Virtual IPv4 address on trusted/core network for SSC.
+ ssc_a_trusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on trusted/core network for SSC A. Only required when predefining fixed IPs.
+ ssc_b_trusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on trusted/core network for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on untrusted/access network
+ ssc_untrusted_vip_0:
+ type: string
+ description: Virtual IPv4 address on untrusted/access network for SSC. Only required when predefining virtual IPs.
+ ssc_untrusted_v6_vip_0:
+ type: string
+ description: Virtual IPv6 address on untrusted/access network for SSC. Only required when predefining virtual IPs.
+ ssc_a_untrusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on untrusted/access network for SSC A. Only required when predefining fixed IPs.
+ ssc_a_untrusted_v6_ip_0:
+ type: string
+ description: Fixed IPv6 address on untrusted/access network for SSC A. Only required when predefining fixed IPs.
+ ssc_b_untrusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on untrusted/access network for SSC B. Only required when predefining fixed IPs.
+ ssc_b_untrusted_v6_ip_0:
+ type: string
+ description: Fixed IPv6 address on untrusted/access network for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on management/Rf network
+ ssc_rf_vip_0:
+ type: string
+ description: Virtual IPv4 address on management/Rf network for SSC. Only required when predefining virtual IPs.
+ ssc_a_rf_ip_0:
+ type: string
+ description: Fixed IPv4 address on management/Rf network for SSC A. Only required when predefining fixed IPs.
+ ssc_b_rf_ip_0:
+ type: string
+ description: Fixed IPv4 address on management/Rf network for SSC B. Only required when predefining fixed IPs.
+
+ # RTP MSC parameters
+ rtp_msc_count:
+ type: number
+ description: Count of required RTP MSCs
+ rtp_msc_flavor_name:
+ type: string
+ description: Flavor to use for creating RTP MSC VM instances
+ constraints:
+ - custom_constraint: nova.flavor
+ rtp_msc_image_name:
+ type: string
+ description: Glance image to use for launching RTP MSC Perimeta instances.
+ constraints:
+ - custom_constraint: glance.image
+ rtp_msc_a_names:
+ type: comma_delimited_list
+ description: List of names of RTP MSC VM A instances
+ rtp_msc_b_names:
+ type: comma_delimited_list
+ description: List of names of RTP MSC VM B instances
+ rtp_msc_system_names:
+ type: comma_delimited_list
+ description: List of system names of RTP MSC instances
+
+ # RTP MSC IP addresses on management network
+ rtp_msc_mgmt_vips:
+ type: comma_delimited_list
+ description: Management virtual IP addresses to use for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_mgmt_ips:
+ type: comma_delimited_list
+ description: Management fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_mgmt_ips:
+ type: comma_delimited_list
+ description: Management fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+ # RTP MSC IP addresses on internal HA network
+ rtp_msc_a_int_ha_ips:
+ type: comma_delimited_list
+ description: HA fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_int_ha_ips:
+ type: comma_delimited_list
+ description: HA fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+ # RTP MSC IP addresses on trusted/core network
+ rtp_msc_trusted_vips:
+ type: comma_delimited_list
+ description: Virtual IPv4 addresses on trusted/core network for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_trusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 addresses on trusted/core network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_trusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 address on trusted/core network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+ # RTP MSC IP addresses on untrusted/access network
+ rtp_msc_untrusted_vips:
+ type: comma_delimited_list
+ description: Virtual IPv4 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_untrusted_v6_vips:
+ type: comma_delimited_list
+ description: Virtual IPv6 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_untrusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_untrusted_v6_ips:
+ type: comma_delimited_list
+ description: Fixed IPv6 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_untrusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_untrusted_v6_ips:
+ type: comma_delimited_list
+ description: Fixed IPv6 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+resources:
+
+ # Perimeta SSC
+ perimeta_ssc:
+ type: perimeta_ha_swmu_b.yaml
+ properties:
+ vnf_id: { get_param: vnf_id }
+ vm_role: 'ssc'
+ vf_module_id: { get_param: vf_module_id }
+ system_names: [{ get_param: ssc_system_name_0 }]
+ vm_a_names: [{ get_param: ssc_a_name_0 }]
+ vm_b_names: [{ get_param: ssc_b_name_0 }]
+ perimeta_instance_index: 0
+ perimeta_image_name: { get_param: ssc_image_name }
+ perimeta_flavor_name: { get_param: ssc_flavor_name }
+ perimeta_keypair: { get_param: perimeta_keypair }
+ availability_zone_0: { get_param: availability_zone_0 }
+ availability_zone_1: { get_param: availability_zone_1 }
+ mgmt_net_id: { get_param: mgmt_net_id }
+ mgmt_net_plen: { get_param: mgmt_net_plen }
+ mgmt_net_default_gateway: { get_param: mgmt_net_default_gateway }
+ mgmt_vips: [{ get_param: ssc_mgmt_vip_0 }]
+ mgmt_a_ips: [{ get_param: ssc_a_mgmt_ip_0 }]
+ mgmt_b_ips: [{ get_param: ssc_b_mgmt_ip_0 }]
+ mgmt_sec_groups: { get_param: mgmt_net_sec_groups }
+ ha_net_id: { get_param: int_ha_net_id }
+ ha_network_plen: { get_param: int_ha_net_plen }
+ ha_a_ips: [{ get_param: ssc_a_int_ha_ip_0 }]
+ ha_b_ips: [{ get_param: ssc_b_int_ha_ip_0 }]
+ ha_sec_groups: { get_param: int_ha_net_sec_groups }
+ trusted_net_id: { get_param: trusted_net_id }
+ trusted_vips: [{ get_param: ssc_trusted_vip_0 }]
+ trusted_a_ips: [{ get_param: ssc_a_trusted_ip_0 }]
+ trusted_b_ips: [{ get_param: ssc_b_trusted_ip_0 }]
+ trusted_sec_groups: { get_param: trusted_net_sec_groups }
+ untrusted_net_id: { get_param: untrusted_net_id }
+ untrusted_vips: [{ get_param: ssc_untrusted_vip_0 }]
+ untrusted_v6_vips: [{ get_param: ssc_untrusted_v6_vip_0 }]
+ untrusted_a_ips: [{ get_param: ssc_a_untrusted_ip_0 }]
+ untrusted_a_v6_ips: [{ get_param: ssc_a_untrusted_v6_ip_0 }]
+ untrusted_b_ips: [{ get_param: ssc_b_untrusted_ip_0 }]
+ untrusted_b_v6_ips: [{ get_param: ssc_b_untrusted_v6_ip_0 }]
+ untrusted_sec_groups: { get_param: untrusted_net_sec_groups }
+ untrusted_num_vlans: { get_param: untrusted_num_vlans }
+ untrusted_vlan_ids: { get_param: untrusted_vlan_ids }
+ untrusted_vlan_networks: { get_param: untrusted_vlan_networks }
+ serv3_net_id: { get_param: mgmt_net_id }
+ serv3_vips: [{ get_param: ssc_rf_vip_0 }]
+ serv3_a_ips: [{ get_param: ssc_a_rf_ip_0 }]
+ serv3_b_ips: [{ get_param: ssc_b_rf_ip_0 }]
+ serv3_sec_groups: { get_param: mgmt_net_sec_groups }
+ unused_net_id: { get_param: unused_port_net_id }
+ perimeta_param_server_group: { get_param: perimeta_param_server_group }
+ perimeta_config:
+ str_replace:
+ template: {get_file: ssc_a_template.json}
+ params:
+ $NTP_SERVER_IP_ADDRS: { get_param: ntp_server_ip_addrs }
+ $COMPLETION_PARAMS: ''
+
+
+
+outputs:
+
+ ssc_server_group:
+ description: Server group for SSC pair
+ value: { get_attr: [ perimeta_ssc, server_group_used ] }
+
+
+
+ msw_template_version:
+ description: Version of the heat templates used to instantiate the VMs
+ value: "4.0.1 - 2016-10-28"
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_1_perimeta_ssc_rebuild.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_1_perimeta_ssc_rebuild.yaml
new file mode 100644
index 0000000000..0a8fc31207
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_1_perimeta_ssc_rebuild.yaml
@@ -0,0 +1,384 @@
+# Heat template which intstantiates a Perimeta SSC and up to 10 Perimeta
+# RTP MSCs and up to 10 Perimeta MSRP MSCs. Currently all instances are
+# HA although standalone MSCs may be supported in future.
+#
+# This Heat template commissions, partners and configures the Perimeta SSC and
+# MSCs with basic configuration defined by ssc_a_template.json,
+# msc_a_template.json and mmc_a_template.json. These can be modified
+# as required to obtain the required Perimeta configuration.
+#
+# This template puts the Perimeta configuration in place using userdata
+# injected via OpenStack's ConfigDrive mechanism.
+#
+# This template sets up anti-affinity using server group anti-affinity and
+# optionally availability zone anti-affinity.
+#
+# This template will work with any version of Perimeta software from 3.9.20.
+#
+# Pre-requisites are:
+# - existing networks as follows
+# - network for management traffic
+# - network for HA traffic
+# - network for core/trusted service traffic
+# - network for access/untrusted service traffic
+# - pre-loaded Perimeta image
+# - suitable flavor to use for Perimeta SSC
+# - suitable flavor to use for Perimeta RTP MSCs
+# - suitable flavor to use for Perimeta MSRP MSCs
+# - suitable keypair to use for Perimeta
+#
+# Virtual IP address and fixed IP addresses to use for the Perimeta instances
+# must be provided as parameters.
+#
+# Template requires Juno or above and has been tested on Kilo. Note that in
+# some deployments, Heat template validation will fail but actually creating
+# a stack using the template will succeed. This is due to problems with
+# Heat validating nested templates.
+#
+heat_template_version: 2014-10-16
+
+description: >
+ HOT template to instantiate a Perimeta SSC plus MxRTP MSCs plus NxMSRP MSCs
+
+parameters:
+ # General VNF parameters
+ vnf_id:
+ type: string
+ description: ID of VNF
+
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+
+ availability_zone_0:
+ type: string
+ description: Availability zone for A instances.
+ availability_zone_1:
+ type: string
+ description: Availability zone for B instances.
+ perimeta_keypair:
+ type: string
+ description: Keypair to use for accessing these Perimeta instances
+ constraints:
+ - custom_constraint: nova.keypair
+ ntp_server_ip_addrs:
+ type: string
+ description: NTP server IPv4 addresses, separated by commas. These must be accessible from the management network
+ constraints:
+ - allowed_pattern: "((?:\\d{1,3}\\.){3}\\d{1,3},)*((?:\\d{1,3}\\.){3}\\d{1,3})"
+ description: ntp_server_ip_addrs must be a comma separated list of IPv4 addresses (with no spaces)
+ perimeta_param_server_group:
+ type: string
+ description: UUID of server group to set anti-affinity policy for Perimeta instance. Only used when doing healing.
+
+ # Management network parameters
+ mgmt_net_id:
+ type: string
+ description: Management network ID
+ constraints:
+ - custom_constraint: neutron.network
+ mgmt_net_plen:
+ type: number
+ description: Management network prefix length
+ constraints:
+ - range: { min: 0, max: 32 }
+ description: mgmt_net_plen must be between 0 and 32
+ mgmt_net_default_gateway:
+ type: string
+ description: Default gateway for management network
+ mgmt_net_sec_groups:
+ type: comma_delimited_list
+ description: Management network security groups
+
+ # Internal high availability network parameters
+ int_ha_net_id:
+ type: string
+ description: Internal HA network ID
+ constraints:
+ - custom_constraint: neutron.network
+ int_ha_net_plen:
+ type: number
+ description: Intermal HA network prefix length.
+ constraints:
+ - range: { min: 0, max: 32 }
+ description: int_ha_net_plen must be between 0 and 32
+ int_ha_net_sec_groups:
+ type: comma_delimited_list
+ description: Security groups associated with internal HA network
+
+ # Trusted/core network parameters
+ trusted_net_id:
+ type: string
+ description: Network ID of trusted/core network.
+ constraints:
+ - custom_constraint: neutron.network
+ trusted_net_sec_groups:
+ type: comma_delimited_list
+ description: Security groups associated with trusted/core network
+
+ # Untrusted/access network parameters
+ untrusted_net_id:
+ type: string
+ description: Network ID of untrusted/access network.
+ constraints:
+ - custom_constraint: neutron.network
+ untrusted_net_sec_groups:
+ type: comma_delimited_list
+ description: Security groups associated with untrusted/access network
+ untrusted_num_vlans:
+ type: number
+ description: Number of VLANs to connect to on the untrusted/access network
+ untrusted_vlan_ids:
+ type: comma_delimited_list
+ description: List of VLAN IDs to use on the untrusted/access network
+ untrusted_vlan_networks:
+ type: comma_delimited_list
+ description: List of Contrail VLAN networks to use on the untrusted/access network. The order and number of these must match the VLAN ID list
+
+ # Unused network parameters
+ #
+ # This is used for connecting the unused 4th SSC service interface.
+ unused_port_net_id:
+ type: string
+ description: Unused network ID
+ constraints:
+ - custom_constraint: neutron.network
+
+ # SSC parameters
+ ssc_flavor_name:
+ type: string
+ description: Flavor to use for creating SSC VM instance
+ constraints:
+ - custom_constraint: nova.flavor
+ ssc_image_name:
+ type: string
+ description: Glance image to use for launching SSC Perimeta instances.
+ constraints:
+ - custom_constraint: glance.image
+ ssc_a_name_0:
+ type: string
+ description: Name of VM A of SSC
+ constraints:
+ - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'
+ description: VM A name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed.
+ ssc_b_name_0:
+ type: string
+ description: Name of VM B of SSC
+ constraints:
+ - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'
+ description: VM B name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed.
+ ssc_system_name_0:
+ type: string
+ description: System name of SSC
+ constraints:
+ - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'
+ description: System name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed.
+
+ # SSC IP addresses on management network
+ ssc_mgmt_vip_0:
+ type: string
+ description: Management virtual IP address to use for SSC. Only required when predefining VIPs.
+ ssc_a_mgmt_ip_0:
+ type: string
+ description: Management fixed IP address to use for SSC A. Only required when predefining fixed IPs.
+ ssc_b_mgmt_ip_0:
+ type: string
+ description: Management fixed IP address to use for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on internal HA network
+ ssc_a_int_ha_ip_0:
+ type: string
+ description: HA fixed IP address to use for SSC A. Only required when predefining fixed IPs.
+ ssc_b_int_ha_ip_0:
+ type: string
+ description: HA fixed IP address to use for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on trusted/core network
+ ssc_trusted_vip_0:
+ type: string
+ description: Virtual IPv4 address on trusted/core network for SSC.
+ ssc_a_trusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on trusted/core network for SSC A. Only required when predefining fixed IPs.
+ ssc_b_trusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on trusted/core network for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on untrusted/access network
+ ssc_untrusted_vip_0:
+ type: string
+ description: Virtual IPv4 address on untrusted/access network for SSC. Only required when predefining virtual IPs.
+ ssc_untrusted_v6_vip_0:
+ type: string
+ description: Virtual IPv6 address on untrusted/access network for SSC. Only required when predefining virtual IPs.
+ ssc_a_untrusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on untrusted/access network for SSC A. Only required when predefining fixed IPs.
+ ssc_a_untrusted_v6_ip_0:
+ type: string
+ description: Fixed IPv6 address on untrusted/access network for SSC A. Only required when predefining fixed IPs.
+ ssc_b_untrusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on untrusted/access network for SSC B. Only required when predefining fixed IPs.
+ ssc_b_untrusted_v6_ip_0:
+ type: string
+ description: Fixed IPv6 address on untrusted/access network for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on management/Rf network
+ ssc_rf_vip_0:
+ type: string
+ description: Virtual IPv4 address on management/Rf network for SSC. Only required when predefining virtual IPs.
+ ssc_a_rf_ip_0:
+ type: string
+ description: Fixed IPv4 address on management/Rf network for SSC A. Only required when predefining fixed IPs.
+ ssc_b_rf_ip_0:
+ type: string
+ description: Fixed IPv4 address on management/Rf network for SSC B. Only required when predefining fixed IPs.
+
+ # RTP MSC parameters
+ rtp_msc_count:
+ type: number
+ description: Count of required RTP MSCs
+ rtp_msc_flavor_name:
+ type: string
+ description: Flavor to use for creating RTP MSC VM instances
+ constraints:
+ - custom_constraint: nova.flavor
+ rtp_msc_image_name:
+ type: string
+ description: Glance image to use for launching RTP MSC Perimeta instances.
+ constraints:
+ - custom_constraint: glance.image
+ rtp_msc_a_names:
+ type: comma_delimited_list
+ description: List of names of RTP MSC VM A instances
+ rtp_msc_b_names:
+ type: comma_delimited_list
+ description: List of names of RTP MSC VM B instances
+ rtp_msc_system_names:
+ type: comma_delimited_list
+ description: List of system names of RTP MSC instances
+
+ # RTP MSC IP addresses on management network
+ rtp_msc_mgmt_vips:
+ type: comma_delimited_list
+ description: Management virtual IP addresses to use for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_mgmt_ips:
+ type: comma_delimited_list
+ description: Management fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_mgmt_ips:
+ type: comma_delimited_list
+ description: Management fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+ # RTP MSC IP addresses on internal HA network
+ rtp_msc_a_int_ha_ips:
+ type: comma_delimited_list
+ description: HA fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_int_ha_ips:
+ type: comma_delimited_list
+ description: HA fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+ # RTP MSC IP addresses on trusted/core network
+ rtp_msc_trusted_vips:
+ type: comma_delimited_list
+ description: Virtual IPv4 addresses on trusted/core network for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_trusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 addresses on trusted/core network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_trusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 address on trusted/core network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+ # RTP MSC IP addresses on untrusted/access network
+ rtp_msc_untrusted_vips:
+ type: comma_delimited_list
+ description: Virtual IPv4 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_untrusted_v6_vips:
+ type: comma_delimited_list
+ description: Virtual IPv6 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_untrusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_untrusted_v6_ips:
+ type: comma_delimited_list
+ description: Fixed IPv6 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_untrusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_untrusted_v6_ips:
+ type: comma_delimited_list
+ description: Fixed IPv6 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+resources:
+
+ # Perimeta SSC
+ perimeta_ssc:
+ type: perimeta_ha_swmu.yaml
+ properties:
+ vnf_id: { get_param: vnf_id }
+ vm_role: 'ssc'
+ vf_module_id: { get_param: vf_module_id }
+ system_names: [{ get_param: ssc_system_name_0 }]
+ vm_a_names: [{ get_param: ssc_a_name_0 }]
+ vm_b_names: [{ get_param: ssc_b_name_0 }]
+ perimeta_instance_index: 0
+ perimeta_image_name: { get_param: ssc_image_name }
+ perimeta_flavor_name: { get_param: ssc_flavor_name }
+ perimeta_keypair: { get_param: perimeta_keypair }
+ availability_zone_0: { get_param: availability_zone_0 }
+ availability_zone_1: { get_param: availability_zone_1 }
+ mgmt_net_id: { get_param: mgmt_net_id }
+ mgmt_net_plen: { get_param: mgmt_net_plen }
+ mgmt_net_default_gateway: { get_param: mgmt_net_default_gateway }
+ mgmt_vips: [{ get_param: ssc_mgmt_vip_0 }]
+ mgmt_a_ips: [{ get_param: ssc_a_mgmt_ip_0 }]
+ mgmt_b_ips: [{ get_param: ssc_b_mgmt_ip_0 }]
+ mgmt_sec_groups: { get_param: mgmt_net_sec_groups }
+ ha_net_id: { get_param: int_ha_net_id }
+ ha_network_plen: { get_param: int_ha_net_plen }
+ ha_a_ips: [{ get_param: ssc_a_int_ha_ip_0 }]
+ ha_b_ips: [{ get_param: ssc_b_int_ha_ip_0 }]
+ ha_sec_groups: { get_param: int_ha_net_sec_groups }
+ trusted_net_id: { get_param: trusted_net_id }
+ trusted_vips: [{ get_param: ssc_trusted_vip_0 }]
+ trusted_a_ips: [{ get_param: ssc_a_trusted_ip_0 }]
+ trusted_b_ips: [{ get_param: ssc_b_trusted_ip_0 }]
+ trusted_sec_groups: { get_param: trusted_net_sec_groups }
+ untrusted_net_id: { get_param: untrusted_net_id }
+ untrusted_vips: [{ get_param: ssc_untrusted_vip_0 }]
+ untrusted_v6_vips: [{ get_param: ssc_untrusted_v6_vip_0 }]
+ untrusted_a_ips: [{ get_param: ssc_a_untrusted_ip_0 }]
+ untrusted_a_v6_ips: [{ get_param: ssc_a_untrusted_v6_ip_0 }]
+ untrusted_b_ips: [{ get_param: ssc_b_untrusted_ip_0 }]
+ untrusted_b_v6_ips: [{ get_param: ssc_b_untrusted_v6_ip_0 }]
+ untrusted_sec_groups: { get_param: untrusted_net_sec_groups }
+ untrusted_num_vlans: { get_param: untrusted_num_vlans }
+ untrusted_vlan_ids: { get_param: untrusted_vlan_ids }
+ untrusted_vlan_networks: { get_param: untrusted_vlan_networks }
+ serv3_net_id: { get_param: mgmt_net_id }
+ serv3_vips: [{ get_param: ssc_rf_vip_0 }]
+ serv3_a_ips: [{ get_param: ssc_a_rf_ip_0 }]
+ serv3_b_ips: [{ get_param: ssc_b_rf_ip_0 }]
+ serv3_sec_groups: { get_param: mgmt_net_sec_groups }
+ unused_net_id: { get_param: unused_port_net_id }
+ perimeta_param_server_group: { get_param: perimeta_param_server_group }
+ perimeta_config:
+ str_replace:
+ template: {get_file: ssc_a_template.json}
+ params:
+ $NTP_SERVER_IP_ADDRS: { get_param: ntp_server_ip_addrs }
+ $COMPLETION_PARAMS: ''
+
+
+
+outputs:
+
+ ssc_server_group:
+ description: Server group for SSC pair
+ value: { get_attr: [ perimeta_ssc, server_group_used ] }
+
+
+
+ msw_template_version:
+ description: Version of the heat templates used to instantiate the VMs
+ value: "4.0.1 - 2016-10-28"
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_2_perimeta_rtp_msc_a_healing.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_2_perimeta_rtp_msc_a_healing.yaml
new file mode 100644
index 0000000000..e5a1e75a94
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_2_perimeta_rtp_msc_a_healing.yaml
@@ -0,0 +1,381 @@
+# Heat template which intstantiates a Perimeta SSC and up to 10 Perimeta
+# RTP MSCs and up to 10 Perimeta MSRP MSCs. Currently all instances are
+# HA although standalone MSCs may be supported in future.
+#
+# This Heat template commissions, partners and configures the Perimeta SSC and
+# MSCs with basic configuration defined by ssc_a_template.json,
+# msc_a_template.json and mmc_a_template.json. These can be modified
+# as required to obtain the required Perimeta configuration.
+#
+# This template puts the Perimeta configuration in place using userdata
+# injected via OpenStack's ConfigDrive mechanism.
+#
+# This template sets up anti-affinity using server group anti-affinity and
+# optionally availability zone anti-affinity.
+#
+# This template will work with any version of Perimeta software from 3.9.20.
+#
+# Pre-requisites are:
+# - existing networks as follows
+# - network for management traffic
+# - network for HA traffic
+# - network for core/trusted service traffic
+# - network for access/untrusted service traffic
+# - pre-loaded Perimeta image
+# - suitable flavor to use for Perimeta SSC
+# - suitable flavor to use for Perimeta RTP MSCs
+# - suitable flavor to use for Perimeta MSRP MSCs
+# - suitable keypair to use for Perimeta
+#
+# Virtual IP address and fixed IP addresses to use for the Perimeta instances
+# must be provided as parameters.
+#
+# Template requires Juno or above and has been tested on Kilo. Note that in
+# some deployments, Heat template validation will fail but actually creating
+# a stack using the template will succeed. This is due to problems with
+# Heat validating nested templates.
+#
+heat_template_version: 2014-10-16
+
+description: >
+ HOT template to instantiate a Perimeta SSC plus MxRTP MSCs plus NxMSRP MSCs
+
+parameters:
+ # General VNF parameters
+ vnf_id:
+ type: string
+ description: ID of VNF
+
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+
+ availability_zone_0:
+ type: string
+ description: Availability zone for A instances.
+ availability_zone_1:
+ type: string
+ description: Availability zone for B instances.
+ perimeta_keypair:
+ type: string
+ description: Keypair to use for accessing these Perimeta instances
+ constraints:
+ - custom_constraint: nova.keypair
+ ntp_server_ip_addrs:
+ type: string
+ description: NTP server IPv4 addresses, separated by commas. These must be accessible from the management network
+ constraints:
+ - allowed_pattern: "((?:\\d{1,3}\\.){3}\\d{1,3},)*((?:\\d{1,3}\\.){3}\\d{1,3})"
+ description: ntp_server_ip_addrs must be a comma separated list of IPv4 addresses (with no spaces)
+ perimeta_param_server_group:
+ type: string
+ description: UUID of server group to set anti-affinity policy for Perimeta instance. Only used when doing healing.
+
+ # Management network parameters
+ mgmt_net_id:
+ type: string
+ description: Management network ID
+ constraints:
+ - custom_constraint: neutron.network
+ mgmt_net_plen:
+ type: number
+ description: Management network prefix length
+ constraints:
+ - range: { min: 0, max: 32 }
+ description: mgmt_net_plen must be between 0 and 32
+ mgmt_net_default_gateway:
+ type: string
+ description: Default gateway for management network
+ mgmt_net_sec_groups:
+ type: comma_delimited_list
+ description: Management network security groups
+
+ # Internal high availability network parameters
+ int_ha_net_id:
+ type: string
+ description: Internal HA network ID
+ constraints:
+ - custom_constraint: neutron.network
+ int_ha_net_plen:
+ type: number
+ description: Intermal HA network prefix length.
+ constraints:
+ - range: { min: 0, max: 32 }
+ description: int_ha_net_plen must be between 0 and 32
+ int_ha_net_sec_groups:
+ type: comma_delimited_list
+ description: Security groups associated with internal HA network
+
+ # Trusted/core network parameters
+ trusted_net_id:
+ type: string
+ description: Network ID of trusted/core network.
+ constraints:
+ - custom_constraint: neutron.network
+ trusted_net_sec_groups:
+ type: comma_delimited_list
+ description: Security groups associated with trusted/core network
+
+ # Untrusted/access network parameters
+ untrusted_net_id:
+ type: string
+ description: Network ID of untrusted/access network.
+ constraints:
+ - custom_constraint: neutron.network
+ untrusted_net_sec_groups:
+ type: comma_delimited_list
+ description: Security groups associated with untrusted/access network
+ untrusted_num_vlans:
+ type: number
+ description: Number of VLANs to connect to on the untrusted/access network
+ untrusted_vlan_ids:
+ type: comma_delimited_list
+ description: List of VLAN IDs to use on the untrusted/access network
+ untrusted_vlan_networks:
+ type: comma_delimited_list
+ description: List of Contrail VLAN networks to use on the untrusted/access network. The order and number of these must match the VLAN ID list
+
+ # Unused network parameters
+ #
+ # This is used for connecting the unused 4th SSC service interface.
+ unused_port_net_id:
+ type: string
+ description: Unused network ID
+ constraints:
+ - custom_constraint: neutron.network
+
+ # SSC parameters
+ ssc_flavor_name:
+ type: string
+ description: Flavor to use for creating SSC VM instance
+ constraints:
+ - custom_constraint: nova.flavor
+ ssc_image_name:
+ type: string
+ description: Glance image to use for launching SSC Perimeta instances.
+ constraints:
+ - custom_constraint: glance.image
+ ssc_a_name_0:
+ type: string
+ description: Name of VM A of SSC
+ constraints:
+ - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'
+ description: VM A name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed.
+ ssc_b_name_0:
+ type: string
+ description: Name of VM B of SSC
+ constraints:
+ - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'
+ description: VM B name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed.
+ ssc_system_name_0:
+ type: string
+ description: System name of SSC
+ constraints:
+ - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'
+ description: System name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed.
+
+ # SSC IP addresses on management network
+ ssc_mgmt_vip_0:
+ type: string
+ description: Management virtual IP address to use for SSC. Only required when predefining VIPs.
+ ssc_a_mgmt_ip_0:
+ type: string
+ description: Management fixed IP address to use for SSC A. Only required when predefining fixed IPs.
+ ssc_b_mgmt_ip_0:
+ type: string
+ description: Management fixed IP address to use for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on internal HA network
+ ssc_a_int_ha_ip_0:
+ type: string
+ description: HA fixed IP address to use for SSC A. Only required when predefining fixed IPs.
+ ssc_b_int_ha_ip_0:
+ type: string
+ description: HA fixed IP address to use for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on trusted/core network
+ ssc_trusted_vip_0:
+ type: string
+ description: Virtual IPv4 address on trusted/core network for SSC.
+ ssc_a_trusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on trusted/core network for SSC A. Only required when predefining fixed IPs.
+ ssc_b_trusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on trusted/core network for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on untrusted/access network
+ ssc_untrusted_vip_0:
+ type: string
+ description: Virtual IPv4 address on untrusted/access network for SSC. Only required when predefining virtual IPs.
+ ssc_untrusted_v6_vip_0:
+ type: string
+ description: Virtual IPv6 address on untrusted/access network for SSC. Only required when predefining virtual IPs.
+ ssc_a_untrusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on untrusted/access network for SSC A. Only required when predefining fixed IPs.
+ ssc_a_untrusted_v6_ip_0:
+ type: string
+ description: Fixed IPv6 address on untrusted/access network for SSC A. Only required when predefining fixed IPs.
+ ssc_b_untrusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on untrusted/access network for SSC B. Only required when predefining fixed IPs.
+ ssc_b_untrusted_v6_ip_0:
+ type: string
+ description: Fixed IPv6 address on untrusted/access network for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on management/Rf network
+ ssc_rf_vip_0:
+ type: string
+ description: Virtual IPv4 address on management/Rf network for SSC. Only required when predefining virtual IPs.
+ ssc_a_rf_ip_0:
+ type: string
+ description: Fixed IPv4 address on management/Rf network for SSC A. Only required when predefining fixed IPs.
+ ssc_b_rf_ip_0:
+ type: string
+ description: Fixed IPv4 address on management/Rf network for SSC B. Only required when predefining fixed IPs.
+
+ # RTP MSC parameters
+ rtp_msc_count:
+ type: number
+ description: Count of required RTP MSCs
+ rtp_msc_index:
+ type: number
+ description: Index of RTP MSC to create/heal.
+ rtp_msc_flavor_name:
+ type: string
+ description: Flavor to use for creating RTP MSC VM instances
+ constraints:
+ - custom_constraint: nova.flavor
+ rtp_msc_image_name:
+ type: string
+ description: Glance image to use for launching RTP MSC Perimeta instances.
+ constraints:
+ - custom_constraint: glance.image
+ rtp_msc_a_names:
+ type: comma_delimited_list
+ description: List of names of RTP MSC VM A instances
+ rtp_msc_b_names:
+ type: comma_delimited_list
+ description: List of names of RTP MSC VM B instances
+ rtp_msc_system_names:
+ type: comma_delimited_list
+ description: List of system names of RTP MSC instances
+
+ # RTP MSC IP addresses on management network
+ rtp_msc_mgmt_vips:
+ type: comma_delimited_list
+ description: Management virtual IP addresses to use for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_mgmt_ips:
+ type: comma_delimited_list
+ description: Management fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_mgmt_ips:
+ type: comma_delimited_list
+ description: Management fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+ # RTP MSC IP addresses on internal HA network
+ rtp_msc_a_int_ha_ips:
+ type: comma_delimited_list
+ description: HA fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_int_ha_ips:
+ type: comma_delimited_list
+ description: HA fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+ # RTP MSC IP addresses on trusted/core network
+ rtp_msc_trusted_vips:
+ type: comma_delimited_list
+ description: Virtual IPv4 addresses on trusted/core network for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_trusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 addresses on trusted/core network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_trusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 address on trusted/core network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+ # RTP MSC IP addresses on untrusted/access network
+ rtp_msc_untrusted_vips:
+ type: comma_delimited_list
+ description: Virtual IPv4 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_untrusted_v6_vips:
+ type: comma_delimited_list
+ description: Virtual IPv6 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_untrusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_untrusted_v6_ips:
+ type: comma_delimited_list
+ description: Fixed IPv6 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_untrusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_untrusted_v6_ips:
+ type: comma_delimited_list
+ description: Fixed IPv6 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+resources:
+
+
+ # Perimeta RTP MSCs.
+ perimeta_rtp_mscs:
+ type: perimeta_ha_sw_a.yaml
+ properties:
+ vnf_id: { get_param: vnf_id }
+ vm_role: 'rtp_msc'
+ vf_module_id: { get_param: vf_module_id }
+ system_names: { get_param: rtp_msc_system_names }
+ vm_a_names: { get_param: rtp_msc_a_names }
+ vm_b_names: { get_param: rtp_msc_b_names }
+ perimeta_instance_index: { get_param: rtp_msc_index }
+ perimeta_image_name: { get_param: rtp_msc_image_name }
+ perimeta_flavor_name: { get_param: rtp_msc_flavor_name }
+ perimeta_keypair: { get_param: perimeta_keypair }
+ availability_zone_0: { get_param: availability_zone_0 }
+ availability_zone_1: { get_param: availability_zone_1 }
+ mgmt_net_id: { get_param: mgmt_net_id }
+ mgmt_net_plen: { get_param: mgmt_net_plen }
+ mgmt_net_default_gateway: { get_param: mgmt_net_default_gateway }
+ mgmt_vips: { get_param: rtp_msc_mgmt_vips }
+ mgmt_a_ips: { get_param: rtp_msc_a_mgmt_ips }
+ mgmt_b_ips: { get_param: rtp_msc_b_mgmt_ips }
+ mgmt_sec_groups: { get_param: mgmt_net_sec_groups }
+ ha_net_id: { get_param: int_ha_net_id }
+ ha_network_plen: { get_param: int_ha_net_plen }
+ ha_a_ips: { get_param: rtp_msc_a_int_ha_ips }
+ ha_b_ips: { get_param: rtp_msc_b_int_ha_ips }
+ ha_sec_groups: { get_param: int_ha_net_sec_groups }
+ trusted_net_id: { get_param: trusted_net_id }
+ trusted_vips: { get_param: rtp_msc_trusted_vips }
+ trusted_a_ips: { get_param: rtp_msc_a_trusted_ips }
+ trusted_b_ips: { get_param: rtp_msc_b_trusted_ips }
+ trusted_sec_groups: { get_param: trusted_net_sec_groups }
+ untrusted_net_id: { get_param: untrusted_net_id }
+ untrusted_vips: { get_param: rtp_msc_untrusted_vips }
+ untrusted_v6_vips: { get_param: rtp_msc_untrusted_v6_vips }
+ untrusted_a_ips: { get_param: rtp_msc_a_untrusted_ips }
+ untrusted_a_v6_ips: { get_param: rtp_msc_a_untrusted_v6_ips }
+ untrusted_b_ips: { get_param: rtp_msc_b_untrusted_ips }
+ untrusted_b_v6_ips: { get_param: rtp_msc_b_untrusted_v6_ips }
+ untrusted_sec_groups: { get_param: untrusted_net_sec_groups }
+ untrusted_num_vlans: { get_param: untrusted_num_vlans }
+ untrusted_vlan_ids: { get_param: untrusted_vlan_ids }
+ untrusted_vlan_networks: { get_param: untrusted_vlan_networks }
+ perimeta_param_server_group: { get_param: perimeta_param_server_group }
+ perimeta_config:
+ str_replace:
+ template: {get_file: msc_a_template.json}
+ params:
+ $NTP_SERVER_IP_ADDRS: { get_param: ntp_server_ip_addrs }
+ $COMPLETION_PARAMS: ''
+
+
+outputs:
+
+
+ rtp_msc_server_groups:
+ description: Server groups for RTP MSC pairs
+ value: { get_attr: [ perimeta_rtp_mscs, server_group_used ] }
+
+
+ msw_template_version:
+ description: Version of the heat templates used to instantiate the VMs
+ value: "4.0.1 - 2016-10-28"
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_2_perimeta_rtp_msc_b_healing.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_2_perimeta_rtp_msc_b_healing.yaml
new file mode 100644
index 0000000000..b071897d70
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_2_perimeta_rtp_msc_b_healing.yaml
@@ -0,0 +1,381 @@
+# Heat template which intstantiates a Perimeta SSC and up to 10 Perimeta
+# RTP MSCs and up to 10 Perimeta MSRP MSCs. Currently all instances are
+# HA although standalone MSCs may be supported in future.
+#
+# This Heat template commissions, partners and configures the Perimeta SSC and
+# MSCs with basic configuration defined by ssc_a_template.json,
+# msc_a_template.json and mmc_a_template.json. These can be modified
+# as required to obtain the required Perimeta configuration.
+#
+# This template puts the Perimeta configuration in place using userdata
+# injected via OpenStack's ConfigDrive mechanism.
+#
+# This template sets up anti-affinity using server group anti-affinity and
+# optionally availability zone anti-affinity.
+#
+# This template will work with any version of Perimeta software from 3.9.20.
+#
+# Pre-requisites are:
+# - existing networks as follows
+# - network for management traffic
+# - network for HA traffic
+# - network for core/trusted service traffic
+# - network for access/untrusted service traffic
+# - pre-loaded Perimeta image
+# - suitable flavor to use for Perimeta SSC
+# - suitable flavor to use for Perimeta RTP MSCs
+# - suitable flavor to use for Perimeta MSRP MSCs
+# - suitable keypair to use for Perimeta
+#
+# Virtual IP address and fixed IP addresses to use for the Perimeta instances
+# must be provided as parameters.
+#
+# Template requires Juno or above and has been tested on Kilo. Note that in
+# some deployments, Heat template validation will fail but actually creating
+# a stack using the template will succeed. This is due to problems with
+# Heat validating nested templates.
+#
+heat_template_version: 2014-10-16
+
+description: >
+ HOT template to instantiate a Perimeta SSC plus MxRTP MSCs plus NxMSRP MSCs
+
+parameters:
+ # General VNF parameters
+ vnf_id:
+ type: string
+ description: ID of VNF
+
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+
+ availability_zone_0:
+ type: string
+ description: Availability zone for A instances.
+ availability_zone_1:
+ type: string
+ description: Availability zone for B instances.
+ perimeta_keypair:
+ type: string
+ description: Keypair to use for accessing these Perimeta instances
+ constraints:
+ - custom_constraint: nova.keypair
+ ntp_server_ip_addrs:
+ type: string
+ description: NTP server IPv4 addresses, separated by commas. These must be accessible from the management network
+ constraints:
+ - allowed_pattern: "((?:\\d{1,3}\\.){3}\\d{1,3},)*((?:\\d{1,3}\\.){3}\\d{1,3})"
+ description: ntp_server_ip_addrs must be a comma separated list of IPv4 addresses (with no spaces)
+ perimeta_param_server_group:
+ type: string
+ description: UUID of server group to set anti-affinity policy for Perimeta instance. Only used when doing healing.
+
+ # Management network parameters
+ mgmt_net_id:
+ type: string
+ description: Management network ID
+ constraints:
+ - custom_constraint: neutron.network
+ mgmt_net_plen:
+ type: number
+ description: Management network prefix length
+ constraints:
+ - range: { min: 0, max: 32 }
+ description: mgmt_net_plen must be between 0 and 32
+ mgmt_net_default_gateway:
+ type: string
+ description: Default gateway for management network
+ mgmt_net_sec_groups:
+ type: comma_delimited_list
+ description: Management network security groups
+
+ # Internal high availability network parameters
+ int_ha_net_id:
+ type: string
+ description: Internal HA network ID
+ constraints:
+ - custom_constraint: neutron.network
+ int_ha_net_plen:
+ type: number
+ description: Intermal HA network prefix length.
+ constraints:
+ - range: { min: 0, max: 32 }
+ description: int_ha_net_plen must be between 0 and 32
+ int_ha_net_sec_groups:
+ type: comma_delimited_list
+ description: Security groups associated with internal HA network
+
+ # Trusted/core network parameters
+ trusted_net_id:
+ type: string
+ description: Network ID of trusted/core network.
+ constraints:
+ - custom_constraint: neutron.network
+ trusted_net_sec_groups:
+ type: comma_delimited_list
+ description: Security groups associated with trusted/core network
+
+ # Untrusted/access network parameters
+ untrusted_net_id:
+ type: string
+ description: Network ID of untrusted/access network.
+ constraints:
+ - custom_constraint: neutron.network
+ untrusted_net_sec_groups:
+ type: comma_delimited_list
+ description: Security groups associated with untrusted/access network
+ untrusted_num_vlans:
+ type: number
+ description: Number of VLANs to connect to on the untrusted/access network
+ untrusted_vlan_ids:
+ type: comma_delimited_list
+ description: List of VLAN IDs to use on the untrusted/access network
+ untrusted_vlan_networks:
+ type: comma_delimited_list
+ description: List of Contrail VLAN networks to use on the untrusted/access network. The order and number of these must match the VLAN ID list
+
+ # Unused network parameters
+ #
+ # This is used for connecting the unused 4th SSC service interface.
+ unused_port_net_id:
+ type: string
+ description: Unused network ID
+ constraints:
+ - custom_constraint: neutron.network
+
+ # SSC parameters
+ ssc_flavor_name:
+ type: string
+ description: Flavor to use for creating SSC VM instance
+ constraints:
+ - custom_constraint: nova.flavor
+ ssc_image_name:
+ type: string
+ description: Glance image to use for launching SSC Perimeta instances.
+ constraints:
+ - custom_constraint: glance.image
+ ssc_a_name_0:
+ type: string
+ description: Name of VM A of SSC
+ constraints:
+ - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'
+ description: VM A name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed.
+ ssc_b_name_0:
+ type: string
+ description: Name of VM B of SSC
+ constraints:
+ - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'
+ description: VM B name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed.
+ ssc_system_name_0:
+ type: string
+ description: System name of SSC
+ constraints:
+ - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'
+ description: System name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed.
+
+ # SSC IP addresses on management network
+ ssc_mgmt_vip_0:
+ type: string
+ description: Management virtual IP address to use for SSC. Only required when predefining VIPs.
+ ssc_a_mgmt_ip_0:
+ type: string
+ description: Management fixed IP address to use for SSC A. Only required when predefining fixed IPs.
+ ssc_b_mgmt_ip_0:
+ type: string
+ description: Management fixed IP address to use for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on internal HA network
+ ssc_a_int_ha_ip_0:
+ type: string
+ description: HA fixed IP address to use for SSC A. Only required when predefining fixed IPs.
+ ssc_b_int_ha_ip_0:
+ type: string
+ description: HA fixed IP address to use for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on trusted/core network
+ ssc_trusted_vip_0:
+ type: string
+ description: Virtual IPv4 address on trusted/core network for SSC.
+ ssc_a_trusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on trusted/core network for SSC A. Only required when predefining fixed IPs.
+ ssc_b_trusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on trusted/core network for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on untrusted/access network
+ ssc_untrusted_vip_0:
+ type: string
+ description: Virtual IPv4 address on untrusted/access network for SSC. Only required when predefining virtual IPs.
+ ssc_untrusted_v6_vip_0:
+ type: string
+ description: Virtual IPv6 address on untrusted/access network for SSC. Only required when predefining virtual IPs.
+ ssc_a_untrusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on untrusted/access network for SSC A. Only required when predefining fixed IPs.
+ ssc_a_untrusted_v6_ip_0:
+ type: string
+ description: Fixed IPv6 address on untrusted/access network for SSC A. Only required when predefining fixed IPs.
+ ssc_b_untrusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on untrusted/access network for SSC B. Only required when predefining fixed IPs.
+ ssc_b_untrusted_v6_ip_0:
+ type: string
+ description: Fixed IPv6 address on untrusted/access network for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on management/Rf network
+ ssc_rf_vip_0:
+ type: string
+ description: Virtual IPv4 address on management/Rf network for SSC. Only required when predefining virtual IPs.
+ ssc_a_rf_ip_0:
+ type: string
+ description: Fixed IPv4 address on management/Rf network for SSC A. Only required when predefining fixed IPs.
+ ssc_b_rf_ip_0:
+ type: string
+ description: Fixed IPv4 address on management/Rf network for SSC B. Only required when predefining fixed IPs.
+
+ # RTP MSC parameters
+ rtp_msc_count:
+ type: number
+ description: Count of required RTP MSCs
+ rtp_msc_index:
+ type: number
+ description: Index of RTP MSC to create/heal.
+ rtp_msc_flavor_name:
+ type: string
+ description: Flavor to use for creating RTP MSC VM instances
+ constraints:
+ - custom_constraint: nova.flavor
+ rtp_msc_image_name:
+ type: string
+ description: Glance image to use for launching RTP MSC Perimeta instances.
+ constraints:
+ - custom_constraint: glance.image
+ rtp_msc_a_names:
+ type: comma_delimited_list
+ description: List of names of RTP MSC VM A instances
+ rtp_msc_b_names:
+ type: comma_delimited_list
+ description: List of names of RTP MSC VM B instances
+ rtp_msc_system_names:
+ type: comma_delimited_list
+ description: List of system names of RTP MSC instances
+
+ # RTP MSC IP addresses on management network
+ rtp_msc_mgmt_vips:
+ type: comma_delimited_list
+ description: Management virtual IP addresses to use for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_mgmt_ips:
+ type: comma_delimited_list
+ description: Management fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_mgmt_ips:
+ type: comma_delimited_list
+ description: Management fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+ # RTP MSC IP addresses on internal HA network
+ rtp_msc_a_int_ha_ips:
+ type: comma_delimited_list
+ description: HA fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_int_ha_ips:
+ type: comma_delimited_list
+ description: HA fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+ # RTP MSC IP addresses on trusted/core network
+ rtp_msc_trusted_vips:
+ type: comma_delimited_list
+ description: Virtual IPv4 addresses on trusted/core network for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_trusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 addresses on trusted/core network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_trusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 address on trusted/core network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+ # RTP MSC IP addresses on untrusted/access network
+ rtp_msc_untrusted_vips:
+ type: comma_delimited_list
+ description: Virtual IPv4 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_untrusted_v6_vips:
+ type: comma_delimited_list
+ description: Virtual IPv6 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_untrusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_untrusted_v6_ips:
+ type: comma_delimited_list
+ description: Fixed IPv6 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_untrusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_untrusted_v6_ips:
+ type: comma_delimited_list
+ description: Fixed IPv6 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+resources:
+
+
+ # Perimeta RTP MSCs.
+ perimeta_rtp_mscs:
+ type: perimeta_ha_sw_b.yaml
+ properties:
+ vnf_id: { get_param: vnf_id }
+ vm_role: 'rtp_msc'
+ vf_module_id: { get_param: vf_module_id }
+ system_names: { get_param: rtp_msc_system_names }
+ vm_a_names: { get_param: rtp_msc_a_names }
+ vm_b_names: { get_param: rtp_msc_b_names }
+ perimeta_instance_index: { get_param: rtp_msc_index }
+ perimeta_image_name: { get_param: rtp_msc_image_name }
+ perimeta_flavor_name: { get_param: rtp_msc_flavor_name }
+ perimeta_keypair: { get_param: perimeta_keypair }
+ availability_zone_0: { get_param: availability_zone_0 }
+ availability_zone_1: { get_param: availability_zone_1 }
+ mgmt_net_id: { get_param: mgmt_net_id }
+ mgmt_net_plen: { get_param: mgmt_net_plen }
+ mgmt_net_default_gateway: { get_param: mgmt_net_default_gateway }
+ mgmt_vips: { get_param: rtp_msc_mgmt_vips }
+ mgmt_a_ips: { get_param: rtp_msc_a_mgmt_ips }
+ mgmt_b_ips: { get_param: rtp_msc_b_mgmt_ips }
+ mgmt_sec_groups: { get_param: mgmt_net_sec_groups }
+ ha_net_id: { get_param: int_ha_net_id }
+ ha_network_plen: { get_param: int_ha_net_plen }
+ ha_a_ips: { get_param: rtp_msc_a_int_ha_ips }
+ ha_b_ips: { get_param: rtp_msc_b_int_ha_ips }
+ ha_sec_groups: { get_param: int_ha_net_sec_groups }
+ trusted_net_id: { get_param: trusted_net_id }
+ trusted_vips: { get_param: rtp_msc_trusted_vips }
+ trusted_a_ips: { get_param: rtp_msc_a_trusted_ips }
+ trusted_b_ips: { get_param: rtp_msc_b_trusted_ips }
+ trusted_sec_groups: { get_param: trusted_net_sec_groups }
+ untrusted_net_id: { get_param: untrusted_net_id }
+ untrusted_vips: { get_param: rtp_msc_untrusted_vips }
+ untrusted_v6_vips: { get_param: rtp_msc_untrusted_v6_vips }
+ untrusted_a_ips: { get_param: rtp_msc_a_untrusted_ips }
+ untrusted_a_v6_ips: { get_param: rtp_msc_a_untrusted_v6_ips }
+ untrusted_b_ips: { get_param: rtp_msc_b_untrusted_ips }
+ untrusted_b_v6_ips: { get_param: rtp_msc_b_untrusted_v6_ips }
+ untrusted_sec_groups: { get_param: untrusted_net_sec_groups }
+ untrusted_num_vlans: { get_param: untrusted_num_vlans }
+ untrusted_vlan_ids: { get_param: untrusted_vlan_ids }
+ untrusted_vlan_networks: { get_param: untrusted_vlan_networks }
+ perimeta_param_server_group: { get_param: perimeta_param_server_group }
+ perimeta_config:
+ str_replace:
+ template: {get_file: msc_a_template.json}
+ params:
+ $NTP_SERVER_IP_ADDRS: { get_param: ntp_server_ip_addrs }
+ $COMPLETION_PARAMS: ''
+
+
+outputs:
+
+
+ rtp_msc_server_groups:
+ description: Server groups for RTP MSC pairs
+ value: { get_attr: [ perimeta_rtp_mscs, server_group_used ] }
+
+
+ msw_template_version:
+ description: Version of the heat templates used to instantiate the VMs
+ value: "4.0.1 - 2016-10-28"
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_2_perimeta_rtp_msc_rebuild_scaling.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_2_perimeta_rtp_msc_rebuild_scaling.yaml
new file mode 100644
index 0000000000..c85009179e
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/module_2_perimeta_rtp_msc_rebuild_scaling.yaml
@@ -0,0 +1,381 @@
+# Heat template which intstantiates a Perimeta SSC and up to 10 Perimeta
+# RTP MSCs and up to 10 Perimeta MSRP MSCs. Currently all instances are
+# HA although standalone MSCs may be supported in future.
+#
+# This Heat template commissions, partners and configures the Perimeta SSC and
+# MSCs with basic configuration defined by ssc_a_template.json,
+# msc_a_template.json and mmc_a_template.json. These can be modified
+# as required to obtain the required Perimeta configuration.
+#
+# This template puts the Perimeta configuration in place using userdata
+# injected via OpenStack's ConfigDrive mechanism.
+#
+# This template sets up anti-affinity using server group anti-affinity and
+# optionally availability zone anti-affinity.
+#
+# This template will work with any version of Perimeta software from 3.9.20.
+#
+# Pre-requisites are:
+# - existing networks as follows
+# - network for management traffic
+# - network for HA traffic
+# - network for core/trusted service traffic
+# - network for access/untrusted service traffic
+# - pre-loaded Perimeta image
+# - suitable flavor to use for Perimeta SSC
+# - suitable flavor to use for Perimeta RTP MSCs
+# - suitable flavor to use for Perimeta MSRP MSCs
+# - suitable keypair to use for Perimeta
+#
+# Virtual IP address and fixed IP addresses to use for the Perimeta instances
+# must be provided as parameters.
+#
+# Template requires Juno or above and has been tested on Kilo. Note that in
+# some deployments, Heat template validation will fail but actually creating
+# a stack using the template will succeed. This is due to problems with
+# Heat validating nested templates.
+#
+heat_template_version: 2014-10-16
+
+description: >
+ HOT template to instantiate a Perimeta SSC plus MxRTP MSCs plus NxMSRP MSCs
+
+parameters:
+ # General VNF parameters
+ vnf_id:
+ type: string
+ description: ID of VNF
+
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+
+ availability_zone_0:
+ type: string
+ description: Availability zone for A instances.
+ availability_zone_1:
+ type: string
+ description: Availability zone for B instances.
+ perimeta_keypair:
+ type: string
+ description: Keypair to use for accessing these Perimeta instances
+ constraints:
+ - custom_constraint: nova.keypair
+ ntp_server_ip_addrs:
+ type: string
+ description: NTP server IPv4 addresses, separated by commas. These must be accessible from the management network
+ constraints:
+ - allowed_pattern: "((?:\\d{1,3}\\.){3}\\d{1,3},)*((?:\\d{1,3}\\.){3}\\d{1,3})"
+ description: ntp_server_ip_addrs must be a comma separated list of IPv4 addresses (with no spaces)
+ perimeta_param_server_group:
+ type: string
+ description: UUID of server group to set anti-affinity policy for Perimeta instance. Only used when doing healing.
+
+ # Management network parameters
+ mgmt_net_id:
+ type: string
+ description: Management network ID
+ constraints:
+ - custom_constraint: neutron.network
+ mgmt_net_plen:
+ type: number
+ description: Management network prefix length
+ constraints:
+ - range: { min: 0, max: 32 }
+ description: mgmt_net_plen must be between 0 and 32
+ mgmt_net_default_gateway:
+ type: string
+ description: Default gateway for management network
+ mgmt_net_sec_groups:
+ type: comma_delimited_list
+ description: Management network security groups
+
+ # Internal high availability network parameters
+ int_ha_net_id:
+ type: string
+ description: Internal HA network ID
+ constraints:
+ - custom_constraint: neutron.network
+ int_ha_net_plen:
+ type: number
+ description: Intermal HA network prefix length.
+ constraints:
+ - range: { min: 0, max: 32 }
+ description: int_ha_net_plen must be between 0 and 32
+ int_ha_net_sec_groups:
+ type: comma_delimited_list
+ description: Security groups associated with internal HA network
+
+ # Trusted/core network parameters
+ trusted_net_id:
+ type: string
+ description: Network ID of trusted/core network.
+ constraints:
+ - custom_constraint: neutron.network
+ trusted_net_sec_groups:
+ type: comma_delimited_list
+ description: Security groups associated with trusted/core network
+
+ # Untrusted/access network parameters
+ untrusted_net_id:
+ type: string
+ description: Network ID of untrusted/access network.
+ constraints:
+ - custom_constraint: neutron.network
+ untrusted_net_sec_groups:
+ type: comma_delimited_list
+ description: Security groups associated with untrusted/access network
+ untrusted_num_vlans:
+ type: number
+ description: Number of VLANs to connect to on the untrusted/access network
+ untrusted_vlan_ids:
+ type: comma_delimited_list
+ description: List of VLAN IDs to use on the untrusted/access network
+ untrusted_vlan_networks:
+ type: comma_delimited_list
+ description: List of Contrail VLAN networks to use on the untrusted/access network. The order and number of these must match the VLAN ID list
+
+ # Unused network parameters
+ #
+ # This is used for connecting the unused 4th SSC service interface.
+ unused_port_net_id:
+ type: string
+ description: Unused network ID
+ constraints:
+ - custom_constraint: neutron.network
+
+ # SSC parameters
+ ssc_flavor_name:
+ type: string
+ description: Flavor to use for creating SSC VM instance
+ constraints:
+ - custom_constraint: nova.flavor
+ ssc_image_name:
+ type: string
+ description: Glance image to use for launching SSC Perimeta instances.
+ constraints:
+ - custom_constraint: glance.image
+ ssc_a_name_0:
+ type: string
+ description: Name of VM A of SSC
+ constraints:
+ - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'
+ description: VM A name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed.
+ ssc_b_name_0:
+ type: string
+ description: Name of VM B of SSC
+ constraints:
+ - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'
+ description: VM B name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed.
+ ssc_system_name_0:
+ type: string
+ description: System name of SSC
+ constraints:
+ - allowed_pattern: '[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$'
+ description: System name must be 32 characters or less and a valid hostname. Only alphanumeric characters plus hyphen are allowed.
+
+ # SSC IP addresses on management network
+ ssc_mgmt_vip_0:
+ type: string
+ description: Management virtual IP address to use for SSC. Only required when predefining VIPs.
+ ssc_a_mgmt_ip_0:
+ type: string
+ description: Management fixed IP address to use for SSC A. Only required when predefining fixed IPs.
+ ssc_b_mgmt_ip_0:
+ type: string
+ description: Management fixed IP address to use for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on internal HA network
+ ssc_a_int_ha_ip_0:
+ type: string
+ description: HA fixed IP address to use for SSC A. Only required when predefining fixed IPs.
+ ssc_b_int_ha_ip_0:
+ type: string
+ description: HA fixed IP address to use for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on trusted/core network
+ ssc_trusted_vip_0:
+ type: string
+ description: Virtual IPv4 address on trusted/core network for SSC.
+ ssc_a_trusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on trusted/core network for SSC A. Only required when predefining fixed IPs.
+ ssc_b_trusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on trusted/core network for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on untrusted/access network
+ ssc_untrusted_vip_0:
+ type: string
+ description: Virtual IPv4 address on untrusted/access network for SSC. Only required when predefining virtual IPs.
+ ssc_untrusted_v6_vip_0:
+ type: string
+ description: Virtual IPv6 address on untrusted/access network for SSC. Only required when predefining virtual IPs.
+ ssc_a_untrusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on untrusted/access network for SSC A. Only required when predefining fixed IPs.
+ ssc_a_untrusted_v6_ip_0:
+ type: string
+ description: Fixed IPv6 address on untrusted/access network for SSC A. Only required when predefining fixed IPs.
+ ssc_b_untrusted_ip_0:
+ type: string
+ description: Fixed IPv4 address on untrusted/access network for SSC B. Only required when predefining fixed IPs.
+ ssc_b_untrusted_v6_ip_0:
+ type: string
+ description: Fixed IPv6 address on untrusted/access network for SSC B. Only required when predefining fixed IPs.
+
+ # SSC IP addresses on management/Rf network
+ ssc_rf_vip_0:
+ type: string
+ description: Virtual IPv4 address on management/Rf network for SSC. Only required when predefining virtual IPs.
+ ssc_a_rf_ip_0:
+ type: string
+ description: Fixed IPv4 address on management/Rf network for SSC A. Only required when predefining fixed IPs.
+ ssc_b_rf_ip_0:
+ type: string
+ description: Fixed IPv4 address on management/Rf network for SSC B. Only required when predefining fixed IPs.
+
+ # RTP MSC parameters
+ rtp_msc_count:
+ type: number
+ description: Count of required RTP MSCs
+ rtp_msc_index:
+ type: number
+ description: Index of RTP MSC to create/heal.
+ rtp_msc_flavor_name:
+ type: string
+ description: Flavor to use for creating RTP MSC VM instances
+ constraints:
+ - custom_constraint: nova.flavor
+ rtp_msc_image_name:
+ type: string
+ description: Glance image to use for launching RTP MSC Perimeta instances.
+ constraints:
+ - custom_constraint: glance.image
+ rtp_msc_a_names:
+ type: comma_delimited_list
+ description: List of names of RTP MSC VM A instances
+ rtp_msc_b_names:
+ type: comma_delimited_list
+ description: List of names of RTP MSC VM B instances
+ rtp_msc_system_names:
+ type: comma_delimited_list
+ description: List of system names of RTP MSC instances
+
+ # RTP MSC IP addresses on management network
+ rtp_msc_mgmt_vips:
+ type: comma_delimited_list
+ description: Management virtual IP addresses to use for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_mgmt_ips:
+ type: comma_delimited_list
+ description: Management fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_mgmt_ips:
+ type: comma_delimited_list
+ description: Management fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+ # RTP MSC IP addresses on internal HA network
+ rtp_msc_a_int_ha_ips:
+ type: comma_delimited_list
+ description: HA fixed IP addresses to use for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_int_ha_ips:
+ type: comma_delimited_list
+ description: HA fixed IP addresses to use for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+ # RTP MSC IP addresses on trusted/core network
+ rtp_msc_trusted_vips:
+ type: comma_delimited_list
+ description: Virtual IPv4 addresses on trusted/core network for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_trusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 addresses on trusted/core network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_trusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 address on trusted/core network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+ # RTP MSC IP addresses on untrusted/access network
+ rtp_msc_untrusted_vips:
+ type: comma_delimited_list
+ description: Virtual IPv4 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_untrusted_v6_vips:
+ type: comma_delimited_list
+ description: Virtual IPv6 address on untrusted/access network for RTP MSC instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_untrusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_a_untrusted_v6_ips:
+ type: comma_delimited_list
+ description: Fixed IPv6 address on untrusted/access network for RTP MSC A instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_untrusted_ips:
+ type: comma_delimited_list
+ description: Fixed IPv4 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+ rtp_msc_b_untrusted_v6_ips:
+ type: comma_delimited_list
+ description: Fixed IPv6 address on untrusted/access network for RTP MSC B instances. There must be at least as many as the number of RTP MSCs.
+
+resources:
+
+
+ # Perimeta RTP MSCs.
+ perimeta_rtp_mscs:
+ type: perimeta_ha_sw.yaml
+ properties:
+ vnf_id: { get_param: vnf_id }
+ vm_role: 'rtp_msc'
+ vf_module_id: { get_param: vf_module_id }
+ system_names: { get_param: rtp_msc_system_names }
+ vm_a_names: { get_param: rtp_msc_a_names }
+ vm_b_names: { get_param: rtp_msc_b_names }
+ perimeta_instance_index: { get_param: rtp_msc_index }
+ perimeta_image_name: { get_param: rtp_msc_image_name }
+ perimeta_flavor_name: { get_param: rtp_msc_flavor_name }
+ perimeta_keypair: { get_param: perimeta_keypair }
+ availability_zone_0: { get_param: availability_zone_0 }
+ availability_zone_1: { get_param: availability_zone_1 }
+ mgmt_net_id: { get_param: mgmt_net_id }
+ mgmt_net_plen: { get_param: mgmt_net_plen }
+ mgmt_net_default_gateway: { get_param: mgmt_net_default_gateway }
+ mgmt_vips: { get_param: rtp_msc_mgmt_vips }
+ mgmt_a_ips: { get_param: rtp_msc_a_mgmt_ips }
+ mgmt_b_ips: { get_param: rtp_msc_b_mgmt_ips }
+ mgmt_sec_groups: { get_param: mgmt_net_sec_groups }
+ ha_net_id: { get_param: int_ha_net_id }
+ ha_network_plen: { get_param: int_ha_net_plen }
+ ha_a_ips: { get_param: rtp_msc_a_int_ha_ips }
+ ha_b_ips: { get_param: rtp_msc_b_int_ha_ips }
+ ha_sec_groups: { get_param: int_ha_net_sec_groups }
+ trusted_net_id: { get_param: trusted_net_id }
+ trusted_vips: { get_param: rtp_msc_trusted_vips }
+ trusted_a_ips: { get_param: rtp_msc_a_trusted_ips }
+ trusted_b_ips: { get_param: rtp_msc_b_trusted_ips }
+ trusted_sec_groups: { get_param: trusted_net_sec_groups }
+ untrusted_net_id: { get_param: untrusted_net_id }
+ untrusted_vips: { get_param: rtp_msc_untrusted_vips }
+ untrusted_v6_vips: { get_param: rtp_msc_untrusted_v6_vips }
+ untrusted_a_ips: { get_param: rtp_msc_a_untrusted_ips }
+ untrusted_a_v6_ips: { get_param: rtp_msc_a_untrusted_v6_ips }
+ untrusted_b_ips: { get_param: rtp_msc_b_untrusted_ips }
+ untrusted_b_v6_ips: { get_param: rtp_msc_b_untrusted_v6_ips }
+ untrusted_sec_groups: { get_param: untrusted_net_sec_groups }
+ untrusted_num_vlans: { get_param: untrusted_num_vlans }
+ untrusted_vlan_ids: { get_param: untrusted_vlan_ids }
+ untrusted_vlan_networks: { get_param: untrusted_vlan_networks }
+ perimeta_param_server_group: { get_param: perimeta_param_server_group }
+ perimeta_config:
+ str_replace:
+ template: {get_file: msc_a_template.json}
+ params:
+ $NTP_SERVER_IP_ADDRS: { get_param: ntp_server_ip_addrs }
+ $COMPLETION_PARAMS: ''
+
+
+outputs:
+
+
+ rtp_msc_server_groups:
+ description: Server groups for RTP MSC pairs
+ value: { get_attr: [ perimeta_rtp_mscs, server_group_used ] }
+
+
+ msw_template_version:
+ description: Version of the heat templates used to instantiate the VMs
+ value: "4.0.1 - 2016-10-28"
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/msc_a_template.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/msc_a_template.json
new file mode 100644
index 0000000000..4b474f07da
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/msc_a_template.json
@@ -0,0 +1,33 @@
+{
+ // The vnic_assignment parameter is ignored by Perimeta releases prior to
+ // V4.0.00.
+ "vnic_assignment": {
+ "IBG1mgmt": {"mac": "$MGMT_MACADDR"},
+ "IPG1": {"mac": "$HA_MACADDR"},
+ "RPG1": {"mac": "$TRUSTED_MACADDR"},
+ "RPG2": {"mac": "$UNTRUSTED_MACADDR"}
+ },
+ "autocommission":"MSC",
+ "autostart":"true",
+ "autopartner":"",
+ "ip_mgmt_global": "$VIRT_MGMT_IP_ADDR",
+ "ip_mgmt_local": "$LOCAL_MGMT_IP_ADDR",
+ "ip_mgmt_remote": "$REMOTE_MGMT_IP_ADDR",
+ "ip_mgmt_plen": "$MGMT_NETWORK_PLEN",
+ "ip_mgmt_gway": "$MGMT_NETWORK_DEFAULT_GATEWAY",
+ "ip_ha_local": "$LOCAL_HA_IP_ADDR",
+ "ip_ha_remote": "$REMOTE_HA_IP_ADDR",
+ "ip_ha_plen": "$HA_NETWORK_PLEN",
+ "system_name": "$SYSTEM_NAME",
+ "node_local": "$VM_NAME_A",
+ "node_remote": "$VM_NAME_B",
+ "ntp_servers": "$NTP_SERVER_IP_ADDRS",
+ "advanced_media_cpus": "2",
+ "perimeta": {
+ "dpdk_opt_enable":true,
+ "vlans_opt_enable":true
+ }
+
+ //$COMPLETION_PARAMS
+}
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_sw.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_sw.yaml
new file mode 100644
index 0000000000..5ba3e968ad
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_sw.yaml
@@ -0,0 +1,480 @@
+# Heat template which intstantiates a 1+1 HA Perimeta instance with 4 or 5
+# vNICs.
+#
+# This is designed to be included in a higher level template.
+#
+# This template puts the Perimeta configuration in place using userdata
+# injected via OpenStack's ConfigDrive mechanism.
+#
+# Host anti-affinity is achieved using different availability zones for
+# the Perimeta instance or server group anti-affinity if they are in the
+# same availability zone.
+#
+# Template requires Juno or above and has been tested on Kilo.
+#
+heat_template_version: 2014-10-16
+
+description: >
+ HOT template to instantiate a Perimeta 1+1 HA instance with 4vNICs as part of a nested template
+
+parameters:
+ vnf_id:
+ type: string
+ description: VNF ID of this deployment
+ vm_role:
+ type: string
+ description: Role of these VMs
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+ system_names:
+ type: comma_delimited_list
+ description: List of system names of Perimeta instances. Name of a specific instance is indexed by perimeta_instance_index
+ vm_a_names:
+ type: comma_delimited_list
+ description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index
+ vm_b_names:
+ type: comma_delimited_list
+ description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index
+ perimeta_instance_index:
+ type: number
+ description: Index of instance among multiple instances. Use to retrieve correct parameter for this instance when passed all parameters for all instances.
+ perimeta_image_name:
+ type: string
+ description: Glance image for Perimeta instance
+ constraints:
+ - custom_constraint: glance.image
+ perimeta_flavor_name:
+ type: string
+ description: Flavor to use for creating VM instances
+ constraints:
+ - custom_constraint: nova.flavor
+ perimeta_keypair:
+ type: string
+ description: Keypair to use for accessing this Perimeta instance
+ constraints:
+ - custom_constraint: nova.keypair
+ availability_zone_0:
+ # Can be commented out along with references if always using a single availability zone
+ type: string
+ description: Availability zone for A instances.
+ availability_zone_1:
+ # Can be commented out along with references if always using a single availability zone
+ type: string
+ description: Availability zone for B instances. May be the same as A instance.
+ mgmt_net_id:
+ type: string
+ description: Management network id
+ constraints:
+ - custom_constraint: neutron.network
+ mgmt_net_plen:
+ type: string
+ description: Prefix length of management network
+ mgmt_net_default_gateway:
+ type: string
+ description: IP address of management default gateway
+ mgmt_vips:
+ type: comma_delimited_list
+ description: List of management virtual IP addresses for all instances.
+ mgmt_a_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as management IPs of A instances.
+ mgmt_b_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as management IPs of B instances.
+ mgmt_sec_groups:
+ type: comma_delimited_list
+ description: List of security groups to add on management interfaces.
+ ha_net_id:
+ type: string
+ description: HA network id
+ constraints:
+ - custom_constraint: neutron.network
+ ha_network_plen:
+ type: number
+ constraints:
+ - range: { min: 0, max: 32 }
+ description: ha_network_plen must be between 0 and 32
+ ha_a_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as HA IPs of A instances.
+ ha_b_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as HA IPs of B instances.
+ ha_sec_groups:
+ type: comma_delimited_list
+ description: List of security groups to add on HA interfaces.
+ trusted_net_id:
+ type: string
+ description: Service network 1 network UUID
+ constraints:
+ - custom_constraint: neutron.network
+ trusted_vips:
+ type: comma_delimited_list
+ description: List of service network 1 virtual IP addresses for all instances.
+ trusted_a_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as trusted fixed IPs of A instances.
+ trusted_b_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as trusted fixed IPs of B instances.
+ trusted_sec_groups:
+ type: comma_delimited_list
+ description: List of security groups to add on trusted interfaces.
+ untrusted_net_id:
+ type: string
+ description: Service network 2 network UUID
+ constraints:
+ - custom_constraint: neutron.network
+ untrusted_vips:
+ type: comma_delimited_list
+ description: List of service network 2 virtual IP addresses for all instances.
+ untrusted_v6_vips:
+ type: comma_delimited_list
+ description: List of service network 2 alternate virtual IP addresses for all instances.
+ untrusted_a_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as untrusted fixed IPs of A instances.
+ untrusted_a_v6_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as untrusted alternate fixed IPs of A instances.
+ untrusted_b_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as untrusted fixed IPs of B instances.
+ untrusted_b_v6_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as untrusted alternate fixed IPs of B instances.
+ untrusted_sec_groups:
+ type: comma_delimited_list
+ description: List of security groups to add on untrusted interfaces.
+ untrusted_num_vlans:
+ type: number
+ description: Number of VLANs to connect to on the untrusted/access network
+ untrusted_vlan_ids:
+ type: comma_delimited_list
+ description: List of VLAN IDs to use on the untrusted/access network
+ untrusted_vlan_networks:
+ type: comma_delimited_list
+ description: List of Contrail VLAN networks to use on the untrusted/access network. The order and number of these must match the VLAN ID list.
+ perimeta_param_server_group:
+ type: string
+ description: Server group to use for these VMs - ignored
+ perimeta_config:
+ type: string
+ description: Orchestration template configuration for instance.
+
+resources:
+
+ # Perimeta management ports
+ perimeta_a_mgmt_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_mgmt_port
+ params:
+ $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: mgmt_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ mgmt_a_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: mgmt_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ mgmt_vips, { get_param: perimeta_instance_index } ] }
+
+ perimeta_b_mgmt_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_mgmt_port
+ params:
+ $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: mgmt_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ mgmt_b_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: mgmt_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ mgmt_vips, { get_param: perimeta_instance_index } ] }
+
+ # Perimeta HA ports
+ perimeta_a_ha_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_ha_port
+ params:
+ $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: ha_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ ha_a_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: ha_sec_groups }
+
+ perimeta_b_ha_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_ha_port
+ params:
+ $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: ha_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ ha_b_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: ha_sec_groups }
+
+ # Perimeta core/trusted service network ports
+ #
+ # Dual stack core network - if only IPv4 required, comment out second entry
+ # in fixed_ips and allowed_addrsess_pairs parameters.
+ perimeta_a_trusted_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_trusted_port
+ params:
+ $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: trusted_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ trusted_a_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: trusted_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ trusted_vips, { get_param: perimeta_instance_index } ] }
+
+ perimeta_b_trusted_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_trusted_port
+ params:
+ $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: trusted_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ trusted_b_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: trusted_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ trusted_vips, { get_param: perimeta_instance_index } ] }
+
+ # Perimeta access/untrusted service network ports
+ #
+ # Dual stack access network - if only IPv4 required, comment out second entry
+ # in fixed_ips and allowed_addrsess_pairs parameters.
+ perimeta_a_untrusted_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_untrusted_port
+ params:
+ $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: untrusted_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ untrusted_a_ips, { get_param: perimeta_instance_index } ] }
+ - ip_address: { get_param: [ untrusted_a_v6_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: untrusted_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] }
+ - ip_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] }
+
+ # Contrail VLAN subinterfaces
+ perimeta_a_untrusted_0_vlan_ports:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: { get_param: untrusted_num_vlans }
+ resource_def:
+ type: vlan_subinterface_dual.yaml
+ properties:
+ subinterface_instance_index: "%index%"
+ subinterface_name_prefix:
+ str_replace:
+ template: $VM_untrusted_port_vlan_
+ params:
+ $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ parent_interface: { get_resource: perimeta_a_untrusted_0_port }
+ mac_address: { get_attr: [ perimeta_a_untrusted_0_port, mac_address ] }
+ ip_address: { get_param: [ untrusted_a_ips, { get_param: perimeta_instance_index } ] }
+ ipv6_address: { get_param: [ untrusted_a_v6_ips, { get_param: perimeta_instance_index } ] }
+ virtual_ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] }
+ virtual_ipv6_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] }
+ vlan_ids: { get_param: untrusted_vlan_ids }
+ vlan_networks: { get_param: untrusted_vlan_networks }
+
+ perimeta_b_untrusted_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_untrusted_port
+ params:
+ $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: untrusted_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ untrusted_b_ips, { get_param: perimeta_instance_index } ] }
+ - ip_address: { get_param: [ untrusted_b_v6_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: untrusted_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] }
+ - ip_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] }
+
+ # Contrail VLAN subinterfaces
+ perimeta_b_untrusted_0_vlan_ports:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: { get_param: untrusted_num_vlans }
+ resource_def:
+ type: vlan_subinterface_dual.yaml
+ properties:
+ subinterface_instance_index: "%index%"
+ subinterface_name_prefix:
+ str_replace:
+ template: $VM_untrusted_port_vlan_
+ params:
+ $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ parent_interface: { get_resource: perimeta_b_untrusted_0_port }
+ mac_address: { get_attr: [ perimeta_b_untrusted_0_port, mac_address ] }
+ ip_address: { get_param: [ untrusted_b_ips, { get_param: perimeta_instance_index } ] }
+ ipv6_address: { get_param: [ untrusted_b_v6_ips, { get_param: perimeta_instance_index } ] }
+ virtual_ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] }
+ virtual_ipv6_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] }
+ vlan_ids: { get_param: untrusted_vlan_ids }
+ vlan_networks: { get_param: untrusted_vlan_networks }
+
+ # Perimeta Rf service network ports (SSC only)
+ #
+ # Dual stack access network - if only IPv4 required, comment out second entry
+ # in fixed_ips and allowed_addrsess_pairs parameters.
+ # Add any additional service ports here.
+
+ # Only supported in Juno and beyond - used to enforce host anti-affinity
+ # Can be commented out along with references to it if always using
+ # different availability zones.
+ perimeta_server_group:
+ type: OS::Nova::ServerGroup
+ properties:
+ name:
+ str_replace:
+ template: $SYSTEM_server_group
+ params:
+ $SYSTEM: { get_param: [ system_names, { get_param: perimeta_instance_index } ] }
+ policies: ['anti-affinity']
+
+ perimeta_a_server_0:
+ type: OS::Nova::Server
+ depends_on: perimeta_b_server_0
+ properties:
+ name: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ image: { get_param: perimeta_image_name }
+ flavor: { get_param: perimeta_flavor_name }
+ key_name: { get_param: perimeta_keypair }
+ scheduler_hints: { group: { get_resource: perimeta_server_group } }
+ metadata:
+ 'vnf_id': { get_param: vnf_id }
+ 'vm_role':
+ str_replace:
+ template: $ROLE_a
+ params:
+ $ROLE: { get_param: vm_role }
+ 'vf_module_id': { get_param: vf_module_id }
+ personality:
+ '/opt/MetaSwitch/init/custom.ini': { get_file: custom.ini }
+
+ networks:
+ - port: { get_resource: perimeta_a_mgmt_0_port }
+ - port: { get_resource: perimeta_a_ha_0_port }
+ - port: { get_resource: perimeta_a_trusted_0_port }
+ - port: { get_resource: perimeta_a_untrusted_0_port }
+ availability_zone: { get_param: availability_zone_0 }
+ config_drive: True
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ template: { get_param: perimeta_config }
+ params:
+ $MGMT_MACADDR: { get_attr: [perimeta_a_mgmt_0_port, mac_address] }
+ $HA_MACADDR: { get_attr: [perimeta_a_ha_0_port, mac_address] }
+ $TRUSTED_MACADDR: { get_attr: [perimeta_a_trusted_0_port, mac_address] }
+ $UNTRUSTED_MACADDR: { get_attr: [perimeta_a_untrusted_0_port, mac_address] }
+ $LOCAL_HA_IP_ADDR: { get_param: [ ha_a_ips, { get_param: perimeta_instance_index } ] }
+ $REMOTE_HA_IP_ADDR: { get_param: [ ha_b_ips, { get_param: perimeta_instance_index } ] }
+ $HA_NETWORK_PLEN: { get_param: ha_network_plen }
+ $LOCAL_MGMT_IP_ADDR: { get_param: [ mgmt_a_ips, { get_param: perimeta_instance_index } ] }
+ $REMOTE_MGMT_IP_ADDR: { get_param: [ mgmt_b_ips, { get_param: perimeta_instance_index } ] }
+ $MGMT_NETWORK_PLEN: { get_param: mgmt_net_plen }
+ $MGMT_NETWORK_DEFAULT_GATEWAY: { get_param: mgmt_net_default_gateway }
+ $VIRT_MGMT_IP_ADDR: { get_param: [ mgmt_vips, { get_param: perimeta_instance_index } ] }
+ $VIRT_TRUSTED_IP_ADDR: { get_param: [ trusted_vips, { get_param: perimeta_instance_index } ] }
+ $LOCAL_TRUSTED_IP_ADDR: { get_param: [ trusted_a_ips, { get_param: perimeta_instance_index } ] }
+ $REMOTE_TRUSTED_IP_ADDR: { get_param: [ trusted_b_ips, { get_param: perimeta_instance_index } ] }
+ $VIRT_UNTRUSTED_IP_ADDR: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] }
+ $VIRT_UNTRUSTED_ALT_IP_ADDR: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] }
+ $LOCAL_UNTRUSTED_IP_ADDR: { get_param: [ untrusted_a_ips, { get_param: perimeta_instance_index } ] }
+ $LOCAL_UNTRUSTED_ALT_IP_ADDR: { get_param: [ untrusted_a_v6_ips, { get_param: perimeta_instance_index } ] }
+ $REMOTE_UNTRUSTED_IP_ADDR: { get_param: [ untrusted_b_ips, { get_param: perimeta_instance_index } ] }
+ $REMOTE_UNTRUSTED_ALT_IP_ADDR: { get_param: [ untrusted_b_v6_ips, { get_param: perimeta_instance_index } ] }
+ $VM_NAME_A: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ $VM_NAME_B: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ $SYSTEM_NAME: { get_param: [ system_names, { get_param: perimeta_instance_index } ] }
+
+ perimeta_b_server_0:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ image: { get_param: perimeta_image_name }
+ flavor: { get_param: perimeta_flavor_name }
+ key_name: { get_param: perimeta_keypair }
+ scheduler_hints: { group: { get_resource: perimeta_server_group } }
+ metadata:
+ 'vnf_id': { get_param: vnf_id }
+ 'vm_role':
+ str_replace:
+ template: $ROLE_b
+ params:
+ $ROLE: { get_param: vm_role }
+ 'vf_module_id': { get_param: vf_module_id }
+ networks:
+ - port: { get_resource: perimeta_b_mgmt_0_port }
+ - port: { get_resource: perimeta_b_ha_0_port }
+ - port: { get_resource: perimeta_b_trusted_0_port }
+ - port: { get_resource: perimeta_b_untrusted_0_port }
+ availability_zone: { get_param: availability_zone_1 }
+ config_drive: True
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ template: |
+ {
+ "vnic_assignment": {
+ "IBG1mgmt": {"mac": "$MGMT_MACADDR"},
+ "IPG1": {"mac": "$HA_MACADDR"},
+ "RPG1": {"mac": "$TRUSTED_MACADDR"},
+ "RPG2": {"mac": "$UNTRUSTED_MACADDR"}
+ },
+ "ip_ha_local": "$LOCAL_HA_IP_ADDR",
+ "ip_ha_remote": "$REMOTE_HA_IP_ADDR",
+ "ip_ha_plen": "$HA_NETWORK_PLEN"
+ //"ip_mgmt_local": "$LOCAL_MGMT_IP_ADDR",
+ //"ip_mgmt_remote": "$REMOTE_MGMT_IP_ADDR",
+ //"ip_mgmt_plen": "$MGMT_NETWORK_PLEN",
+ //"ip_mgmt_gway": "$MGMT_NETWORK_DEFAULT_GATEWAY"
+ }
+
+ params:
+ $MGMT_MACADDR: { get_attr: [perimeta_b_mgmt_0_port, mac_address] }
+ $HA_MACADDR: { get_attr: [perimeta_b_ha_0_port, mac_address] }
+ $TRUSTED_MACADDR: { get_attr: [perimeta_b_trusted_0_port, mac_address] }
+ $UNTRUSTED_MACADDR: { get_attr: [perimeta_b_untrusted_0_port, mac_address] }
+ $LOCAL_HA_IP_ADDR: { get_param: [ ha_b_ips, { get_param: perimeta_instance_index } ] }
+ $REMOTE_HA_IP_ADDR: { get_param: [ ha_a_ips, { get_param: perimeta_instance_index } ] }
+ $HA_NETWORK_PLEN: { get_param: ha_network_plen }
+ $LOCAL_MGMT_IP_ADDR: { get_param: [ mgmt_b_ips, { get_param: perimeta_instance_index } ] }
+ $REMOTE_MGMT_IP_ADDR: { get_param: [ mgmt_a_ips, { get_param: perimeta_instance_index } ] }
+ $MGMT_NETWORK_PLEN: { get_param: mgmt_net_plen }
+ $MGMT_NETWORK_DEFAULT_GATEWAY: { get_param: mgmt_net_default_gateway }
+
+outputs:
+
+ server_group_used:
+ description: Server group used for these VMs
+ value: { get_resource: perimeta_server_group }
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_sw_a.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_sw_a.yaml
new file mode 100644
index 0000000000..4f489e4ffc
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_sw_a.yaml
@@ -0,0 +1,332 @@
+# Heat template which intstantiates a 1+1 HA Perimeta instance with 4 or 5
+# vNICs.
+#
+# This is designed to be included in a higher level template.
+#
+# This template puts the Perimeta configuration in place using userdata
+# injected via OpenStack's ConfigDrive mechanism.
+#
+# Host anti-affinity is achieved using different availability zones for
+# the Perimeta instance or server group anti-affinity if they are in the
+# same availability zone.
+#
+# Template requires Juno or above and has been tested on Kilo.
+#
+heat_template_version: 2014-10-16
+
+description: >
+ HOT template to instantiate a Perimeta 1+1 HA instance with 4vNICs as part of a nested template
+
+parameters:
+ vnf_id:
+ type: string
+ description: VNF ID of this deployment
+ vm_role:
+ type: string
+ description: Role of these VMs
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+ system_names:
+ type: comma_delimited_list
+ description: List of system names of Perimeta instances. Name of a specific instance is indexed by perimeta_instance_index
+ vm_a_names:
+ type: comma_delimited_list
+ description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index
+ vm_b_names:
+ type: comma_delimited_list
+ description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index
+ perimeta_instance_index:
+ type: number
+ description: Index of instance among multiple instances. Use to retrieve correct parameter for this instance when passed all parameters for all instances.
+ perimeta_image_name:
+ type: string
+ description: Glance image for Perimeta instance
+ constraints:
+ - custom_constraint: glance.image
+ perimeta_flavor_name:
+ type: string
+ description: Flavor to use for creating VM instances
+ constraints:
+ - custom_constraint: nova.flavor
+ perimeta_keypair:
+ type: string
+ description: Keypair to use for accessing this Perimeta instance
+ constraints:
+ - custom_constraint: nova.keypair
+ availability_zone_0:
+ # Can be commented out along with references if always using a single availability zone
+ type: string
+ description: Availability zone for A instances.
+ availability_zone_1:
+ # Can be commented out along with references if always using a single availability zone
+ type: string
+ description: Availability zone for B instances. May be the same as A instance.
+ mgmt_net_id:
+ type: string
+ description: Management network id
+ constraints:
+ - custom_constraint: neutron.network
+ mgmt_net_plen:
+ type: string
+ description: Prefix length of management network
+ mgmt_net_default_gateway:
+ type: string
+ description: IP address of management default gateway
+ mgmt_vips:
+ type: comma_delimited_list
+ description: List of management virtual IP addresses for all instances.
+ mgmt_a_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as management IPs of A instances.
+ mgmt_b_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as management IPs of B instances.
+ mgmt_sec_groups:
+ type: comma_delimited_list
+ description: List of security groups to add on management interfaces.
+ ha_net_id:
+ type: string
+ description: HA network id
+ constraints:
+ - custom_constraint: neutron.network
+ ha_network_plen:
+ type: number
+ constraints:
+ - range: { min: 0, max: 32 }
+ description: ha_network_plen must be between 0 and 32
+ ha_a_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as HA IPs of A instances.
+ ha_b_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as HA IPs of B instances.
+ ha_sec_groups:
+ type: comma_delimited_list
+ description: List of security groups to add on HA interfaces.
+ trusted_net_id:
+ type: string
+ description: Service network 1 network UUID
+ constraints:
+ - custom_constraint: neutron.network
+ trusted_vips:
+ type: comma_delimited_list
+ description: List of service network 1 virtual IP addresses for all instances.
+ trusted_a_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as trusted fixed IPs of A instances.
+ trusted_b_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as trusted fixed IPs of B instances.
+ trusted_sec_groups:
+ type: comma_delimited_list
+ description: List of security groups to add on trusted interfaces.
+ untrusted_net_id:
+ type: string
+ description: Service network 2 network UUID
+ constraints:
+ - custom_constraint: neutron.network
+ untrusted_vips:
+ type: comma_delimited_list
+ description: List of service network 2 virtual IP addresses for all instances.
+ untrusted_v6_vips:
+ type: comma_delimited_list
+ description: List of service network 2 alternate virtual IP addresses for all instances.
+ untrusted_a_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as untrusted fixed IPs of A instances.
+ untrusted_a_v6_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as untrusted alternate fixed IPs of A instances.
+ untrusted_b_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as untrusted fixed IPs of B instances.
+ untrusted_b_v6_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as untrusted alternate fixed IPs of B instances.
+ untrusted_sec_groups:
+ type: comma_delimited_list
+ description: List of security groups to add on untrusted interfaces.
+ untrusted_num_vlans:
+ type: number
+ description: Number of VLANs to connect to on the untrusted/access network
+ untrusted_vlan_ids:
+ type: comma_delimited_list
+ description: List of VLAN IDs to use on the untrusted/access network
+ untrusted_vlan_networks:
+ type: comma_delimited_list
+ description: List of Contrail VLAN networks to use on the untrusted/access network. The order and number of these must match the VLAN ID list.
+ perimeta_param_server_group:
+ type: string
+ description: Server group to use for these VMs - ignored
+ perimeta_config:
+ type: string
+ description: Orchestration template configuration for instance.
+
+resources:
+
+ # Perimeta management ports
+ perimeta_a_mgmt_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_mgmt_port
+ params:
+ $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: mgmt_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ mgmt_a_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: mgmt_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ mgmt_vips, { get_param: perimeta_instance_index } ] }
+
+ # Perimeta HA ports
+ perimeta_a_ha_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_ha_port
+ params:
+ $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: ha_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ ha_a_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: ha_sec_groups }
+
+ # Perimeta core/trusted service network ports
+ #
+ # Dual stack core network - if only IPv4 required, comment out second entry
+ # in fixed_ips and allowed_addrsess_pairs parameters.
+ perimeta_a_trusted_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_trusted_port
+ params:
+ $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: trusted_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ trusted_a_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: trusted_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ trusted_vips, { get_param: perimeta_instance_index } ] }
+
+ # Perimeta access/untrusted service network ports
+ #
+ # Dual stack access network - if only IPv4 required, comment out second entry
+ # in fixed_ips and allowed_addrsess_pairs parameters.
+ perimeta_a_untrusted_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_untrusted_port
+ params:
+ $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: untrusted_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ untrusted_a_ips, { get_param: perimeta_instance_index } ] }
+ - ip_address: { get_param: [ untrusted_a_v6_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: untrusted_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] }
+ - ip_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] }
+
+ # Contrail VLAN subinterfaces
+ perimeta_a_untrusted_0_vlan_ports:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: { get_param: untrusted_num_vlans }
+ resource_def:
+ type: vlan_subinterface_dual.yaml
+ properties:
+ subinterface_instance_index: "%index%"
+ subinterface_name_prefix:
+ str_replace:
+ template: $VM_untrusted_port_vlan_
+ params:
+ $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ parent_interface: { get_resource: perimeta_a_untrusted_0_port }
+ mac_address: { get_attr: [ perimeta_a_untrusted_0_port, mac_address ] }
+ ip_address: { get_param: [ untrusted_a_ips, { get_param: perimeta_instance_index } ] }
+ ipv6_address: { get_param: [ untrusted_a_v6_ips, { get_param: perimeta_instance_index } ] }
+ virtual_ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] }
+ virtual_ipv6_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] }
+ vlan_ids: { get_param: untrusted_vlan_ids }
+ vlan_networks: { get_param: untrusted_vlan_networks }
+
+ # Perimeta Rf service network ports (SSC only)
+ #
+ # Dual stack access network - if only IPv4 required, comment out second entry
+ # in fixed_ips and allowed_addrsess_pairs parameters.
+ # Add any additional service ports here.
+
+ perimeta_a_server_0:
+ type: OS::Nova::Server
+# depends_on: perimeta_b_server_0
+ properties:
+ name: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ image: { get_param: perimeta_image_name }
+ flavor: { get_param: perimeta_flavor_name }
+ key_name: { get_param: perimeta_keypair }
+ scheduler_hints: { group: { get_param: perimeta_param_server_group } }
+ metadata:
+ 'vnf_id': { get_param: vnf_id }
+ 'vm_role':
+ str_replace:
+ template: $ROLE_a
+ params:
+ $ROLE: { get_param: vm_role }
+ 'vf_module_id': { get_param: vf_module_id }
+ personality:
+ '/opt/MetaSwitch/init/custom.ini': { get_file: custom.ini }
+
+ networks:
+ - port: { get_resource: perimeta_a_mgmt_0_port }
+ - port: { get_resource: perimeta_a_ha_0_port }
+ - port: { get_resource: perimeta_a_trusted_0_port }
+ - port: { get_resource: perimeta_a_untrusted_0_port }
+ availability_zone: { get_param: availability_zone_0 }
+ config_drive: True
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ template: |
+ {
+ "vnic_assignment": {
+ "IBG1mgmt": {"mac": "$MGMT_MACADDR"},
+ "IPG1": {"mac": "$HA_MACADDR"},
+ "RPG1": {"mac": "$TRUSTED_MACADDR"},
+ "RPG2": {"mac": "$UNTRUSTED_MACADDR"}
+ },
+ "ip_ha_local": "$LOCAL_HA_IP_ADDR",
+ "ip_ha_remote": "$REMOTE_HA_IP_ADDR",
+ "ip_ha_plen": "$HA_NETWORK_PLEN"
+ // "ip_mgmt_local": "$LOCAL_MGMT_IP_ADDR",
+ // "ip_mgmt_remote": "$REMOTE_MGMT_IP_ADDR",
+ // "ip_mgmt_plen": "$MGMT_NETWORK_PLEN",
+ // "ip_mgmt_gway": "$MGMT_NETWORK_DEFAULT_GATEWAY"
+ }
+
+ params:
+ $MGMT_MACADDR: { get_attr: [perimeta_a_mgmt_0_port, mac_address] }
+ $HA_MACADDR: { get_attr: [perimeta_a_ha_0_port, mac_address] }
+ $TRUSTED_MACADDR: { get_attr: [perimeta_a_trusted_0_port, mac_address] }
+ $UNTRUSTED_MACADDR: { get_attr: [perimeta_a_untrusted_0_port, mac_address] }
+ $LOCAL_HA_IP_ADDR: { get_param: [ ha_a_ips, { get_param: perimeta_instance_index } ] }
+ $REMOTE_HA_IP_ADDR: { get_param: [ ha_b_ips, { get_param: perimeta_instance_index } ] }
+ $HA_NETWORK_PLEN: { get_param: ha_network_plen }
+ $LOCAL_MGMT_IP_ADDR: { get_param: [ mgmt_a_ips, { get_param: perimeta_instance_index } ] }
+ $REMOTE_MGMT_IP_ADDR: { get_param: [ mgmt_b_ips, { get_param: perimeta_instance_index } ] }
+ $MGMT_NETWORK_PLEN: { get_param: mgmt_net_plen }
+ $MGMT_NETWORK_DEFAULT_GATEWAY: { get_param: mgmt_net_default_gateway }
+
+
+outputs:
+
+ server_group_used:
+ description: Server group used for these VMs
+ value: { get_param: perimeta_param_server_group }
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_sw_b.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_sw_b.yaml
new file mode 100644
index 0000000000..4b68c3adf2
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_sw_b.yaml
@@ -0,0 +1,327 @@
+# Heat template which intstantiates a 1+1 HA Perimeta instance with 4 or 5
+# vNICs.
+#
+# This is designed to be included in a higher level template.
+#
+# This template puts the Perimeta configuration in place using userdata
+# injected via OpenStack's ConfigDrive mechanism.
+#
+# Host anti-affinity is achieved using different availability zones for
+# the Perimeta instance or server group anti-affinity if they are in the
+# same availability zone.
+#
+# Template requires Juno or above and has been tested on Kilo.
+#
+heat_template_version: 2014-10-16
+
+description: >
+ HOT template to instantiate a Perimeta 1+1 HA instance with 4vNICs as part of a nested template
+
+parameters:
+ vnf_id:
+ type: string
+ description: VNF ID of this deployment
+ vm_role:
+ type: string
+ description: Role of these VMs
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+ system_names:
+ type: comma_delimited_list
+ description: List of system names of Perimeta instances. Name of a specific instance is indexed by perimeta_instance_index
+ vm_a_names:
+ type: comma_delimited_list
+ description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index
+ vm_b_names:
+ type: comma_delimited_list
+ description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index
+ perimeta_instance_index:
+ type: number
+ description: Index of instance among multiple instances. Use to retrieve correct parameter for this instance when passed all parameters for all instances.
+ perimeta_image_name:
+ type: string
+ description: Glance image for Perimeta instance
+ constraints:
+ - custom_constraint: glance.image
+ perimeta_flavor_name:
+ type: string
+ description: Flavor to use for creating VM instances
+ constraints:
+ - custom_constraint: nova.flavor
+ perimeta_keypair:
+ type: string
+ description: Keypair to use for accessing this Perimeta instance
+ constraints:
+ - custom_constraint: nova.keypair
+ availability_zone_0:
+ # Can be commented out along with references if always using a single availability zone
+ type: string
+ description: Availability zone for A instances.
+ availability_zone_1:
+ # Can be commented out along with references if always using a single availability zone
+ type: string
+ description: Availability zone for B instances. May be the same as A instance.
+ mgmt_net_id:
+ type: string
+ description: Management network id
+ constraints:
+ - custom_constraint: neutron.network
+ mgmt_net_plen:
+ type: string
+ description: Prefix length of management network
+ mgmt_net_default_gateway:
+ type: string
+ description: IP address of management default gateway
+ mgmt_vips:
+ type: comma_delimited_list
+ description: List of management virtual IP addresses for all instances.
+ mgmt_a_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as management IPs of A instances.
+ mgmt_b_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as management IPs of B instances.
+ mgmt_sec_groups:
+ type: comma_delimited_list
+ description: List of security groups to add on management interfaces.
+ ha_net_id:
+ type: string
+ description: HA network id
+ constraints:
+ - custom_constraint: neutron.network
+ ha_network_plen:
+ type: number
+ constraints:
+ - range: { min: 0, max: 32 }
+ description: ha_network_plen must be between 0 and 32
+ ha_a_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as HA IPs of A instances.
+ ha_b_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as HA IPs of B instances.
+ ha_sec_groups:
+ type: comma_delimited_list
+ description: List of security groups to add on HA interfaces.
+ trusted_net_id:
+ type: string
+ description: Service network 1 network UUID
+ constraints:
+ - custom_constraint: neutron.network
+ trusted_vips:
+ type: comma_delimited_list
+ description: List of service network 1 virtual IP addresses for all instances.
+ trusted_a_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as trusted fixed IPs of A instances.
+ trusted_b_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as trusted fixed IPs of B instances.
+ trusted_sec_groups:
+ type: comma_delimited_list
+ description: List of security groups to add on trusted interfaces.
+ untrusted_net_id:
+ type: string
+ description: Service network 2 network UUID
+ constraints:
+ - custom_constraint: neutron.network
+ untrusted_vips:
+ type: comma_delimited_list
+ description: List of service network 2 virtual IP addresses for all instances.
+ untrusted_v6_vips:
+ type: comma_delimited_list
+ description: List of service network 2 alternate virtual IP addresses for all instances.
+ untrusted_a_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as untrusted fixed IPs of A instances.
+ untrusted_a_v6_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as untrusted alternate fixed IPs of A instances.
+ untrusted_b_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as untrusted fixed IPs of B instances.
+ untrusted_b_v6_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as untrusted alternate fixed IPs of B instances.
+ untrusted_sec_groups:
+ type: comma_delimited_list
+ description: List of security groups to add on untrusted interfaces.
+ untrusted_num_vlans:
+ type: number
+ description: Number of VLANs to connect to on the untrusted/access network
+ untrusted_vlan_ids:
+ type: comma_delimited_list
+ description: List of VLAN IDs to use on the untrusted/access network
+ untrusted_vlan_networks:
+ type: comma_delimited_list
+ description: List of Contrail VLAN networks to use on the untrusted/access network. The order and number of these must match the VLAN ID list.
+ perimeta_param_server_group:
+ type: string
+ description: Server group to use for these VMs - ignored
+ perimeta_config:
+ type: string
+ description: Orchestration template configuration for instance.
+
+resources:
+
+ # Perimeta management ports
+ perimeta_b_mgmt_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_mgmt_port
+ params:
+ $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: mgmt_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ mgmt_b_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: mgmt_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ mgmt_vips, { get_param: perimeta_instance_index } ] }
+
+ # Perimeta HA ports
+ perimeta_b_ha_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_ha_port
+ params:
+ $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: ha_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ ha_b_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: ha_sec_groups }
+
+ # Perimeta core/trusted service network ports
+ #
+ # Dual stack core network - if only IPv4 required, comment out second entry
+ # in fixed_ips and allowed_addrsess_pairs parameters.
+ perimeta_b_trusted_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_trusted_port
+ params:
+ $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: trusted_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ trusted_b_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: trusted_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ trusted_vips, { get_param: perimeta_instance_index } ] }
+
+ # Perimeta access/untrusted service network ports
+ #
+ # Dual stack access network - if only IPv4 required, comment out second entry
+ # in fixed_ips and allowed_addrsess_pairs parameters.
+ perimeta_b_untrusted_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_untrusted_port
+ params:
+ $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: untrusted_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ untrusted_b_ips, { get_param: perimeta_instance_index } ] }
+ - ip_address: { get_param: [ untrusted_b_v6_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: untrusted_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] }
+ - ip_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] }
+
+ # Contrail VLAN subinterfaces
+ perimeta_b_untrusted_0_vlan_ports:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: { get_param: untrusted_num_vlans }
+ resource_def:
+ type: vlan_subinterface_dual.yaml
+ properties:
+ subinterface_instance_index: "%index%"
+ subinterface_name_prefix:
+ str_replace:
+ template: $VM_untrusted_port_vlan_
+ params:
+ $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ parent_interface: { get_resource: perimeta_b_untrusted_0_port }
+ mac_address: { get_attr: [ perimeta_b_untrusted_0_port, mac_address ] }
+ ip_address: { get_param: [ untrusted_b_ips, { get_param: perimeta_instance_index } ] }
+ ipv6_address: { get_param: [ untrusted_b_v6_ips, { get_param: perimeta_instance_index } ] }
+ virtual_ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] }
+ virtual_ipv6_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] }
+ vlan_ids: { get_param: untrusted_vlan_ids }
+ vlan_networks: { get_param: untrusted_vlan_networks }
+
+ # Perimeta Rf service network ports (SSC only)
+ #
+ # Dual stack access network - if only IPv4 required, comment out second entry
+ # in fixed_ips and allowed_addrsess_pairs parameters.
+ # Add any additional service ports here.
+
+ perimeta_b_server_0:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ image: { get_param: perimeta_image_name }
+ flavor: { get_param: perimeta_flavor_name }
+ key_name: { get_param: perimeta_keypair }
+ scheduler_hints: { group: { get_param: perimeta_param_server_group } }
+ metadata:
+ 'vnf_id': { get_param: vnf_id }
+ 'vm_role':
+ str_replace:
+ template: $ROLE_b
+ params:
+ $ROLE: { get_param: vm_role }
+ 'vf_module_id': { get_param: vf_module_id }
+ networks:
+ - port: { get_resource: perimeta_b_mgmt_0_port }
+ - port: { get_resource: perimeta_b_ha_0_port }
+ - port: { get_resource: perimeta_b_trusted_0_port }
+ - port: { get_resource: perimeta_b_untrusted_0_port }
+ availability_zone: { get_param: availability_zone_1 }
+ config_drive: True
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ template: |
+ {
+ "vnic_assignment": {
+ "IBG1mgmt": {"mac": "$MGMT_MACADDR"},
+ "IPG1": {"mac": "$HA_MACADDR"},
+ "RPG1": {"mac": "$TRUSTED_MACADDR"},
+ "RPG2": {"mac": "$UNTRUSTED_MACADDR"}
+ },
+ "ip_ha_local": "$LOCAL_HA_IP_ADDR",
+ "ip_ha_remote": "$REMOTE_HA_IP_ADDR",
+ "ip_ha_plen": "$HA_NETWORK_PLEN"
+ //"ip_mgmt_local": "$LOCAL_MGMT_IP_ADDR",
+ //"ip_mgmt_remote": "$REMOTE_MGMT_IP_ADDR",
+ //"ip_mgmt_plen": "$MGMT_NETWORK_PLEN",
+ //"ip_mgmt_gway": "$MGMT_NETWORK_DEFAULT_GATEWAY"
+ }
+
+ params:
+ $MGMT_MACADDR: { get_attr: [perimeta_b_mgmt_0_port, mac_address] }
+ $HA_MACADDR: { get_attr: [perimeta_b_ha_0_port, mac_address] }
+ $TRUSTED_MACADDR: { get_attr: [perimeta_b_trusted_0_port, mac_address] }
+ $UNTRUSTED_MACADDR: { get_attr: [perimeta_b_untrusted_0_port, mac_address] }
+ $LOCAL_HA_IP_ADDR: { get_param: [ ha_b_ips, { get_param: perimeta_instance_index } ] }
+ $REMOTE_HA_IP_ADDR: { get_param: [ ha_a_ips, { get_param: perimeta_instance_index } ] }
+ $HA_NETWORK_PLEN: { get_param: ha_network_plen }
+ $LOCAL_MGMT_IP_ADDR: { get_param: [ mgmt_b_ips, { get_param: perimeta_instance_index } ] }
+ $REMOTE_MGMT_IP_ADDR: { get_param: [ mgmt_a_ips, { get_param: perimeta_instance_index } ] }
+ $MGMT_NETWORK_PLEN: { get_param: mgmt_net_plen }
+ $MGMT_NETWORK_DEFAULT_GATEWAY: { get_param: mgmt_net_default_gateway }
+
+outputs:
+
+ server_group_used:
+ description: Server group used for these VMs
+ value: { get_param: perimeta_param_server_group }
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_swmu.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_swmu.yaml
new file mode 100644
index 0000000000..7e4307b75f
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_swmu.yaml
@@ -0,0 +1,561 @@
+# Heat template which intstantiates a 1+1 HA Perimeta instance with 4 or 5
+# vNICs.
+#
+# This is designed to be included in a higher level template.
+#
+# This template puts the Perimeta configuration in place using userdata
+# injected via OpenStack's ConfigDrive mechanism.
+#
+# Host anti-affinity is achieved using different availability zones for
+# the Perimeta instance or server group anti-affinity if they are in the
+# same availability zone.
+#
+# Template requires Juno or above and has been tested on Kilo.
+#
+heat_template_version: 2014-10-16
+
+description: >
+ HOT template to instantiate a Perimeta 1+1 HA instance with 4vNICs as part of a nested template
+
+parameters:
+ vnf_id:
+ type: string
+ description: VNF ID of this deployment
+ vm_role:
+ type: string
+ description: Role of these VMs
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+ system_names:
+ type: comma_delimited_list
+ description: List of system names of Perimeta instances. Name of a specific instance is indexed by perimeta_instance_index
+ vm_a_names:
+ type: comma_delimited_list
+ description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index
+ vm_b_names:
+ type: comma_delimited_list
+ description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index
+ perimeta_instance_index:
+ type: number
+ description: Index of instance among multiple instances. Use to retrieve correct parameter for this instance when passed all parameters for all instances.
+ perimeta_image_name:
+ type: string
+ description: Glance image for Perimeta instance
+ constraints:
+ - custom_constraint: glance.image
+ perimeta_flavor_name:
+ type: string
+ description: Flavor to use for creating VM instances
+ constraints:
+ - custom_constraint: nova.flavor
+ perimeta_keypair:
+ type: string
+ description: Keypair to use for accessing this Perimeta instance
+ constraints:
+ - custom_constraint: nova.keypair
+ availability_zone_0:
+ # Can be commented out along with references if always using a single availability zone
+ type: string
+ description: Availability zone for A instances.
+ availability_zone_1:
+ # Can be commented out along with references if always using a single availability zone
+ type: string
+ description: Availability zone for B instances. May be the same as A instance.
+ mgmt_net_id:
+ type: string
+ description: Management network id
+ constraints:
+ - custom_constraint: neutron.network
+ mgmt_net_plen:
+ type: string
+ description: Prefix length of management network
+ mgmt_net_default_gateway:
+ type: string
+ description: IP address of management default gateway
+ mgmt_vips:
+ type: comma_delimited_list
+ description: List of management virtual IP addresses for all instances.
+ mgmt_a_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as management IPs of A instances.
+ mgmt_b_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as management IPs of B instances.
+ mgmt_sec_groups:
+ type: comma_delimited_list
+ description: List of security groups to add on management interfaces.
+ ha_net_id:
+ type: string
+ description: HA network id
+ constraints:
+ - custom_constraint: neutron.network
+ ha_network_plen:
+ type: number
+ constraints:
+ - range: { min: 0, max: 32 }
+ description: ha_network_plen must be between 0 and 32
+ ha_a_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as HA IPs of A instances.
+ ha_b_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as HA IPs of B instances.
+ ha_sec_groups:
+ type: comma_delimited_list
+ description: List of security groups to add on HA interfaces.
+ trusted_net_id:
+ type: string
+ description: Service network 1 network UUID
+ constraints:
+ - custom_constraint: neutron.network
+ trusted_vips:
+ type: comma_delimited_list
+ description: List of service network 1 virtual IP addresses for all instances.
+ trusted_a_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as trusted fixed IPs of A instances.
+ trusted_b_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as trusted fixed IPs of B instances.
+ trusted_sec_groups:
+ type: comma_delimited_list
+ description: List of security groups to add on trusted interfaces.
+ untrusted_net_id:
+ type: string
+ description: Service network 2 network UUID
+ constraints:
+ - custom_constraint: neutron.network
+ untrusted_vips:
+ type: comma_delimited_list
+ description: List of service network 2 virtual IP addresses for all instances.
+ untrusted_v6_vips:
+ type: comma_delimited_list
+ description: List of service network 2 alternate virtual IP addresses for all instances.
+ untrusted_a_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as untrusted fixed IPs of A instances.
+ untrusted_a_v6_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as untrusted alternate fixed IPs of A instances.
+ untrusted_b_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as untrusted fixed IPs of B instances.
+ untrusted_b_v6_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as untrusted alternate fixed IPs of B instances.
+ untrusted_sec_groups:
+ type: comma_delimited_list
+ description: List of security groups to add on untrusted interfaces.
+ untrusted_num_vlans:
+ type: number
+ description: Number of VLANs to connect to on the untrusted/access network
+ untrusted_vlan_ids:
+ type: comma_delimited_list
+ description: List of VLAN IDs to use on the untrusted/access network
+ untrusted_vlan_networks:
+ type: comma_delimited_list
+ description: List of Contrail VLAN networks to use on the untrusted/access network. The order and number of these must match the VLAN ID list.
+ serv3_net_id:
+ type: string
+ description: Service network 3 network UUID
+ serv3_vips:
+ type: comma_delimited_list
+ description: List of service network 3 virtual IP addresses for all instances.
+ serv3_a_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as serv3 fixed IPs of A instances.
+ serv3_b_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as serv3 fixed IPs of B instances.
+ serv3_sec_groups:
+ type: comma_delimited_list
+ description: List of security groups to add on serv3 interfaces.
+ unused_net_id:
+ type: string
+ description: Service network unused port network UUID
+ perimeta_param_server_group:
+ type: string
+ description: Server group to use for these VMs - ignored
+ perimeta_config:
+ type: string
+ description: Orchestration template configuration for instance.
+
+resources:
+
+ # Perimeta management ports
+ perimeta_a_mgmt_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_mgmt_port
+ params:
+ $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: mgmt_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ mgmt_a_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: mgmt_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ mgmt_vips, { get_param: perimeta_instance_index } ] }
+
+ perimeta_b_mgmt_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_mgmt_port
+ params:
+ $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: mgmt_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ mgmt_b_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: mgmt_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ mgmt_vips, { get_param: perimeta_instance_index } ] }
+
+ # Perimeta HA ports
+ perimeta_a_ha_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_ha_port
+ params:
+ $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: ha_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ ha_a_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: ha_sec_groups }
+
+ perimeta_b_ha_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_ha_port
+ params:
+ $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: ha_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ ha_b_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: ha_sec_groups }
+
+ # Perimeta core/trusted service network ports
+ #
+ # Dual stack core network - if only IPv4 required, comment out second entry
+ # in fixed_ips and allowed_addrsess_pairs parameters.
+ perimeta_a_trusted_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_trusted_port
+ params:
+ $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: trusted_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ trusted_a_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: trusted_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ trusted_vips, { get_param: perimeta_instance_index } ] }
+
+ perimeta_b_trusted_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_trusted_port
+ params:
+ $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: trusted_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ trusted_b_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: trusted_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ trusted_vips, { get_param: perimeta_instance_index } ] }
+
+ # Perimeta access/untrusted service network ports
+ #
+ # Dual stack access network - if only IPv4 required, comment out second entry
+ # in fixed_ips and allowed_addrsess_pairs parameters.
+ perimeta_a_untrusted_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_untrusted_port
+ params:
+ $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: untrusted_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ untrusted_a_ips, { get_param: perimeta_instance_index } ] }
+ - ip_address: { get_param: [ untrusted_a_v6_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: untrusted_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] }
+ - ip_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] }
+
+ # Contrail VLAN subinterfaces
+ perimeta_a_untrusted_0_vlan_ports:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: { get_param: untrusted_num_vlans }
+ resource_def:
+ type: vlan_subinterface_dual.yaml
+ properties:
+ subinterface_instance_index: "%index%"
+ subinterface_name_prefix:
+ str_replace:
+ template: $VM_untrusted_port_vlan_
+ params:
+ $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ parent_interface: { get_resource: perimeta_a_untrusted_0_port }
+ mac_address: { get_attr: [ perimeta_a_untrusted_0_port, mac_address ] }
+ ip_address: { get_param: [ untrusted_a_ips, { get_param: perimeta_instance_index } ] }
+ ipv6_address: { get_param: [ untrusted_a_v6_ips, { get_param: perimeta_instance_index } ] }
+ virtual_ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] }
+ virtual_ipv6_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] }
+ vlan_ids: { get_param: untrusted_vlan_ids }
+ vlan_networks: { get_param: untrusted_vlan_networks }
+
+ perimeta_b_untrusted_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_untrusted_port
+ params:
+ $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: untrusted_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ untrusted_b_ips, { get_param: perimeta_instance_index } ] }
+ - ip_address: { get_param: [ untrusted_b_v6_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: untrusted_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] }
+ - ip_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] }
+
+ # Contrail VLAN subinterfaces
+ perimeta_b_untrusted_0_vlan_ports:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: { get_param: untrusted_num_vlans }
+ resource_def:
+ type: vlan_subinterface_dual.yaml
+ properties:
+ subinterface_instance_index: "%index%"
+ subinterface_name_prefix:
+ str_replace:
+ template: $VM_untrusted_port_vlan_
+ params:
+ $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ parent_interface: { get_resource: perimeta_b_untrusted_0_port }
+ mac_address: { get_attr: [ perimeta_b_untrusted_0_port, mac_address ] }
+ ip_address: { get_param: [ untrusted_b_ips, { get_param: perimeta_instance_index } ] }
+ ipv6_address: { get_param: [ untrusted_b_v6_ips, { get_param: perimeta_instance_index } ] }
+ virtual_ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] }
+ virtual_ipv6_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] }
+ vlan_ids: { get_param: untrusted_vlan_ids }
+ vlan_networks: { get_param: untrusted_vlan_networks }
+
+ # Perimeta Rf service network ports (SSC only)
+ #
+ # Dual stack access network - if only IPv4 required, comment out second entry
+ # in fixed_ips and allowed_addrsess_pairs parameters.
+ perimeta_a_serv3_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_serv3_port
+ params:
+ $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: serv3_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ serv3_a_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: serv3_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ serv3_vips, { get_param: perimeta_instance_index } ] }
+
+ perimeta_b_serv3_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_serv3_port
+ params:
+ $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: serv3_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ serv3_b_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: serv3_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ serv3_vips, { get_param: perimeta_instance_index } ] }
+
+ perimeta_a_unused_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_unused_port
+ params:
+ $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ network: { get_param: unused_net_id }
+
+ perimeta_b_unused_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_unused_port
+ params:
+ $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ network: { get_param: unused_net_id }
+
+ # Add any additional service ports here.
+
+ # Only supported in Juno and beyond - used to enforce host anti-affinity
+ # Can be commented out along with references to it if always using
+ # different availability zones.
+ perimeta_server_group:
+ type: OS::Nova::ServerGroup
+ properties:
+ name:
+ str_replace:
+ template: $SYSTEM_server_group
+ params:
+ $SYSTEM: { get_param: [ system_names, { get_param: perimeta_instance_index } ] }
+ policies: ['anti-affinity']
+
+ perimeta_a_server_0:
+ type: OS::Nova::Server
+ depends_on: perimeta_b_server_0
+ properties:
+ name: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ image: { get_param: perimeta_image_name }
+ flavor: { get_param: perimeta_flavor_name }
+ key_name: { get_param: perimeta_keypair }
+ scheduler_hints: { group: { get_resource: perimeta_server_group } }
+ metadata:
+ 'vnf_id': { get_param: vnf_id }
+ 'vm_role':
+ str_replace:
+ template: $ROLE_a
+ params:
+ $ROLE: { get_param: vm_role }
+ 'vf_module_id': { get_param: vf_module_id }
+ personality:
+ '/opt/MetaSwitch/init/custom.ini': { get_file: custom.ini }
+
+ networks:
+ - port: { get_resource: perimeta_a_mgmt_0_port }
+ - port: { get_resource: perimeta_a_ha_0_port }
+ - port: { get_resource: perimeta_a_trusted_0_port }
+ - port: { get_resource: perimeta_a_untrusted_0_port }
+ - port: { get_resource: perimeta_a_serv3_0_port }
+ - port: { get_resource: perimeta_a_unused_0_port }
+ availability_zone: { get_param: availability_zone_0 }
+ config_drive: True
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ template: { get_param: perimeta_config }
+ params:
+ $MGMT_MACADDR: { get_attr: [perimeta_a_mgmt_0_port, mac_address] }
+ $HA_MACADDR: { get_attr: [perimeta_a_ha_0_port, mac_address] }
+ $TRUSTED_MACADDR: { get_attr: [perimeta_a_trusted_0_port, mac_address] }
+ $UNTRUSTED_MACADDR: { get_attr: [perimeta_a_untrusted_0_port, mac_address] }
+ $SERV3_MACADDR: { get_attr: [perimeta_a_serv3_0_port, mac_address] }
+ $SERV4_MACADDR: { get_attr: [perimeta_a_unused_0_port, mac_address] }
+ $LOCAL_HA_IP_ADDR: { get_param: [ ha_a_ips, { get_param: perimeta_instance_index } ] }
+ $REMOTE_HA_IP_ADDR: { get_param: [ ha_b_ips, { get_param: perimeta_instance_index } ] }
+ $HA_NETWORK_PLEN: { get_param: ha_network_plen }
+ $LOCAL_MGMT_IP_ADDR: { get_param: [ mgmt_a_ips, { get_param: perimeta_instance_index } ] }
+ $REMOTE_MGMT_IP_ADDR: { get_param: [ mgmt_b_ips, { get_param: perimeta_instance_index } ] }
+ $MGMT_NETWORK_PLEN: { get_param: mgmt_net_plen }
+ $MGMT_NETWORK_DEFAULT_GATEWAY: { get_param: mgmt_net_default_gateway }
+ $VIRT_MGMT_IP_ADDR: { get_param: [ mgmt_vips, { get_param: perimeta_instance_index } ] }
+ $VIRT_TRUSTED_IP_ADDR: { get_param: [ trusted_vips, { get_param: perimeta_instance_index } ] }
+ $LOCAL_TRUSTED_IP_ADDR: { get_param: [ trusted_a_ips, { get_param: perimeta_instance_index } ] }
+ $REMOTE_TRUSTED_IP_ADDR: { get_param: [ trusted_b_ips, { get_param: perimeta_instance_index } ] }
+ $VIRT_UNTRUSTED_IP_ADDR: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] }
+ $VIRT_UNTRUSTED_ALT_IP_ADDR: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] }
+ $LOCAL_UNTRUSTED_IP_ADDR: { get_param: [ untrusted_a_ips, { get_param: perimeta_instance_index } ] }
+ $LOCAL_UNTRUSTED_ALT_IP_ADDR: { get_param: [ untrusted_a_v6_ips, { get_param: perimeta_instance_index } ] }
+ $REMOTE_UNTRUSTED_IP_ADDR: { get_param: [ untrusted_b_ips, { get_param: perimeta_instance_index } ] }
+ $REMOTE_UNTRUSTED_ALT_IP_ADDR: { get_param: [ untrusted_b_v6_ips, { get_param: perimeta_instance_index } ] }
+ $VIRT_SERV3_IP_ADDR: { get_param: [ serv3_vips, { get_param: perimeta_instance_index } ] }
+ $LOCAL_SERV3_IP_ADDR: { get_param: [ serv3_a_ips, { get_param: perimeta_instance_index } ] }
+ $REMOTE_SERV3_IP_ADDR: { get_param: [ serv3_b_ips, { get_param: perimeta_instance_index } ] }
+ $VM_NAME_A: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ $VM_NAME_B: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ $SYSTEM_NAME: { get_param: [ system_names, { get_param: perimeta_instance_index } ] }
+
+ perimeta_b_server_0:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ image: { get_param: perimeta_image_name }
+ flavor: { get_param: perimeta_flavor_name }
+ key_name: { get_param: perimeta_keypair }
+ scheduler_hints: { group: { get_resource: perimeta_server_group } }
+ metadata:
+ 'vnf_id': { get_param: vnf_id }
+ 'vm_role':
+ str_replace:
+ template: $ROLE_b
+ params:
+ $ROLE: { get_param: vm_role }
+ 'vf_module_id': { get_param: vf_module_id }
+ networks:
+ - port: { get_resource: perimeta_b_mgmt_0_port }
+ - port: { get_resource: perimeta_b_ha_0_port }
+ - port: { get_resource: perimeta_b_trusted_0_port }
+ - port: { get_resource: perimeta_b_untrusted_0_port }
+ - port: { get_resource: perimeta_b_serv3_0_port }
+ - port: { get_resource: perimeta_b_unused_0_port }
+ availability_zone: { get_param: availability_zone_1 }
+ config_drive: True
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ template: |
+ {
+ "vnic_assignment": {
+ "IBG1mgmt": {"mac": "$MGMT_MACADDR"},
+ "IPG1": {"mac": "$HA_MACADDR"},
+ "RPG1": {"mac": "$TRUSTED_MACADDR"},
+ "RPG2": {"mac": "$UNTRUSTED_MACADDR"},
+ "RPG3": {"mac": "$SERV3_MACADDR"},
+ "RPG4": {"mac": "$SERV4_MACADDR"}
+ },
+ "ip_ha_local": "$LOCAL_HA_IP_ADDR",
+ "ip_ha_remote": "$REMOTE_HA_IP_ADDR",
+ "ip_ha_plen": "$HA_NETWORK_PLEN"
+ //"ip_mgmt_local": "$LOCAL_MGMT_IP_ADDR",
+ //"ip_mgmt_remote": "$REMOTE_MGMT_IP_ADDR",
+ //"ip_mgmt_plen": "$MGMT_NETWORK_PLEN",
+ //"ip_mgmt_gway": "$MGMT_NETWORK_DEFAULT_GATEWAY"
+ }
+
+ params:
+ $MGMT_MACADDR: { get_attr: [perimeta_b_mgmt_0_port, mac_address] }
+ $HA_MACADDR: { get_attr: [perimeta_b_ha_0_port, mac_address] }
+ $TRUSTED_MACADDR: { get_attr: [perimeta_b_trusted_0_port, mac_address] }
+ $UNTRUSTED_MACADDR: { get_attr: [perimeta_b_untrusted_0_port, mac_address] }
+ $SERV3_MACADDR: { get_attr: [perimeta_b_serv3_0_port, mac_address] }
+ $SERV4_MACADDR: { get_attr: [perimeta_b_unused_0_port, mac_address] }
+ $LOCAL_HA_IP_ADDR: { get_param: [ ha_b_ips, { get_param: perimeta_instance_index } ] }
+ $REMOTE_HA_IP_ADDR: { get_param: [ ha_a_ips, { get_param: perimeta_instance_index } ] }
+ $HA_NETWORK_PLEN: { get_param: ha_network_plen }
+ $LOCAL_MGMT_IP_ADDR: { get_param: [ mgmt_b_ips, { get_param: perimeta_instance_index } ] }
+ $REMOTE_MGMT_IP_ADDR: { get_param: [ mgmt_a_ips, { get_param: perimeta_instance_index } ] }
+ $MGMT_NETWORK_PLEN: { get_param: mgmt_net_plen }
+ $MGMT_NETWORK_DEFAULT_GATEWAY: { get_param: mgmt_net_default_gateway }
+
+outputs:
+
+ server_group_used:
+ description: Server group used for these VMs
+ value: { get_resource: perimeta_server_group }
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_swmu_a.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_swmu_a.yaml
new file mode 100644
index 0000000000..2c4fb50842
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_swmu_a.yaml
@@ -0,0 +1,381 @@
+# Heat template which intstantiates a 1+1 HA Perimeta instance with 4 or 5
+# vNICs.
+#
+# This is designed to be included in a higher level template.
+#
+# This template puts the Perimeta configuration in place using userdata
+# injected via OpenStack's ConfigDrive mechanism.
+#
+# Host anti-affinity is achieved using different availability zones for
+# the Perimeta instance or server group anti-affinity if they are in the
+# same availability zone.
+#
+# Template requires Juno or above and has been tested on Kilo.
+#
+heat_template_version: 2014-10-16
+
+description: >
+ HOT template to instantiate a Perimeta 1+1 HA instance with 4vNICs as part of a nested template
+
+parameters:
+ vnf_id:
+ type: string
+ description: VNF ID of this deployment
+ vm_role:
+ type: string
+ description: Role of these VMs
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+ system_names:
+ type: comma_delimited_list
+ description: List of system names of Perimeta instances. Name of a specific instance is indexed by perimeta_instance_index
+ vm_a_names:
+ type: comma_delimited_list
+ description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index
+ vm_b_names:
+ type: comma_delimited_list
+ description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index
+ perimeta_instance_index:
+ type: number
+ description: Index of instance among multiple instances. Use to retrieve correct parameter for this instance when passed all parameters for all instances.
+ perimeta_image_name:
+ type: string
+ description: Glance image for Perimeta instance
+ constraints:
+ - custom_constraint: glance.image
+ perimeta_flavor_name:
+ type: string
+ description: Flavor to use for creating VM instances
+ constraints:
+ - custom_constraint: nova.flavor
+ perimeta_keypair:
+ type: string
+ description: Keypair to use for accessing this Perimeta instance
+ constraints:
+ - custom_constraint: nova.keypair
+ availability_zone_0:
+ # Can be commented out along with references if always using a single availability zone
+ type: string
+ description: Availability zone for A instances.
+ availability_zone_1:
+ # Can be commented out along with references if always using a single availability zone
+ type: string
+ description: Availability zone for B instances. May be the same as A instance.
+ mgmt_net_id:
+ type: string
+ description: Management network id
+ constraints:
+ - custom_constraint: neutron.network
+ mgmt_net_plen:
+ type: string
+ description: Prefix length of management network
+ mgmt_net_default_gateway:
+ type: string
+ description: IP address of management default gateway
+ mgmt_vips:
+ type: comma_delimited_list
+ description: List of management virtual IP addresses for all instances.
+ mgmt_a_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as management IPs of A instances.
+ mgmt_b_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as management IPs of B instances.
+ mgmt_sec_groups:
+ type: comma_delimited_list
+ description: List of security groups to add on management interfaces.
+ ha_net_id:
+ type: string
+ description: HA network id
+ constraints:
+ - custom_constraint: neutron.network
+ ha_network_plen:
+ type: number
+ constraints:
+ - range: { min: 0, max: 32 }
+ description: ha_network_plen must be between 0 and 32
+ ha_a_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as HA IPs of A instances.
+ ha_b_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as HA IPs of B instances.
+ ha_sec_groups:
+ type: comma_delimited_list
+ description: List of security groups to add on HA interfaces.
+ trusted_net_id:
+ type: string
+ description: Service network 1 network UUID
+ constraints:
+ - custom_constraint: neutron.network
+ trusted_vips:
+ type: comma_delimited_list
+ description: List of service network 1 virtual IP addresses for all instances.
+ trusted_a_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as trusted fixed IPs of A instances.
+ trusted_b_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as trusted fixed IPs of B instances.
+ trusted_sec_groups:
+ type: comma_delimited_list
+ description: List of security groups to add on trusted interfaces.
+ untrusted_net_id:
+ type: string
+ description: Service network 2 network UUID
+ constraints:
+ - custom_constraint: neutron.network
+ untrusted_vips:
+ type: comma_delimited_list
+ description: List of service network 2 virtual IP addresses for all instances.
+ untrusted_v6_vips:
+ type: comma_delimited_list
+ description: List of service network 2 alternate virtual IP addresses for all instances.
+ untrusted_a_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as untrusted fixed IPs of A instances.
+ untrusted_a_v6_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as untrusted alternate fixed IPs of A instances.
+ untrusted_b_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as untrusted fixed IPs of B instances.
+ untrusted_b_v6_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as untrusted alternate fixed IPs of B instances.
+ untrusted_sec_groups:
+ type: comma_delimited_list
+ description: List of security groups to add on untrusted interfaces.
+ untrusted_num_vlans:
+ type: number
+ description: Number of VLANs to connect to on the untrusted/access network
+ untrusted_vlan_ids:
+ type: comma_delimited_list
+ description: List of VLAN IDs to use on the untrusted/access network
+ untrusted_vlan_networks:
+ type: comma_delimited_list
+ description: List of Contrail VLAN networks to use on the untrusted/access network. The order and number of these must match the VLAN ID list.
+ serv3_net_id:
+ type: string
+ description: Service network 3 network UUID
+ serv3_vips:
+ type: comma_delimited_list
+ description: List of service network 3 virtual IP addresses for all instances.
+ serv3_a_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as serv3 fixed IPs of A instances.
+ serv3_b_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as serv3 fixed IPs of B instances.
+ serv3_sec_groups:
+ type: comma_delimited_list
+ description: List of security groups to add on serv3 interfaces.
+ unused_net_id:
+ type: string
+ description: Service network unused port network UUID
+ perimeta_param_server_group:
+ type: string
+ description: Server group to use for these VMs - ignored
+ perimeta_config:
+ type: string
+ description: Orchestration template configuration for instance.
+
+resources:
+
+ # Perimeta management ports
+ perimeta_a_mgmt_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_mgmt_port
+ params:
+ $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: mgmt_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ mgmt_a_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: mgmt_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ mgmt_vips, { get_param: perimeta_instance_index } ] }
+
+ # Perimeta HA ports
+ perimeta_a_ha_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_ha_port
+ params:
+ $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: ha_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ ha_a_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: ha_sec_groups }
+
+ # Perimeta core/trusted service network ports
+ #
+ # Dual stack core network - if only IPv4 required, comment out second entry
+ # in fixed_ips and allowed_addrsess_pairs parameters.
+ perimeta_a_trusted_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_trusted_port
+ params:
+ $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: trusted_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ trusted_a_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: trusted_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ trusted_vips, { get_param: perimeta_instance_index } ] }
+
+ # Perimeta access/untrusted service network ports
+ #
+ # Dual stack access network - if only IPv4 required, comment out second entry
+ # in fixed_ips and allowed_addrsess_pairs parameters.
+ perimeta_a_untrusted_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_untrusted_port
+ params:
+ $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: untrusted_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ untrusted_a_ips, { get_param: perimeta_instance_index } ] }
+ - ip_address: { get_param: [ untrusted_a_v6_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: untrusted_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] }
+ - ip_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] }
+
+ # Contrail VLAN subinterfaces
+ perimeta_a_untrusted_0_vlan_ports:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: { get_param: untrusted_num_vlans }
+ resource_def:
+ type: vlan_subinterface_dual.yaml
+ properties:
+ subinterface_instance_index: "%index%"
+ subinterface_name_prefix:
+ str_replace:
+ template: $VM_untrusted_port_vlan_
+ params:
+ $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ parent_interface: { get_resource: perimeta_a_untrusted_0_port }
+ mac_address: { get_attr: [ perimeta_a_untrusted_0_port, mac_address ] }
+ ip_address: { get_param: [ untrusted_a_ips, { get_param: perimeta_instance_index } ] }
+ ipv6_address: { get_param: [ untrusted_a_v6_ips, { get_param: perimeta_instance_index } ] }
+ virtual_ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] }
+ virtual_ipv6_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] }
+ vlan_ids: { get_param: untrusted_vlan_ids }
+ vlan_networks: { get_param: untrusted_vlan_networks }
+
+ # Perimeta Rf service network ports (SSC only)
+ #
+ # Dual stack access network - if only IPv4 required, comment out second entry
+ # in fixed_ips and allowed_addrsess_pairs parameters.
+ perimeta_a_serv3_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_serv3_port
+ params:
+ $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: serv3_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ serv3_a_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: serv3_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ serv3_vips, { get_param: perimeta_instance_index } ] }
+
+ perimeta_a_unused_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_unused_port
+ params:
+ $VM: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ network: { get_param: unused_net_id }
+
+ # Add any additional service ports here.
+
+ perimeta_a_server_0:
+ type: OS::Nova::Server
+ #depends_on: perimeta_b_server_0
+ properties:
+ name: { get_param: [ vm_a_names, { get_param: perimeta_instance_index } ] }
+ image: { get_param: perimeta_image_name }
+ flavor: { get_param: perimeta_flavor_name }
+ key_name: { get_param: perimeta_keypair }
+ scheduler_hints: { group: { get_param: perimeta_param_server_group } }
+ metadata:
+ 'vnf_id': { get_param: vnf_id }
+ 'vm_role':
+ str_replace:
+ template: $ROLE_a
+ params:
+ $ROLE: { get_param: vm_role }
+ 'vf_module_id': { get_param: vf_module_id }
+ personality:
+ '/opt/MetaSwitch/init/custom.ini': { get_file: custom.ini }
+
+ networks:
+ - port: { get_resource: perimeta_a_mgmt_0_port }
+ - port: { get_resource: perimeta_a_ha_0_port }
+ - port: { get_resource: perimeta_a_trusted_0_port }
+ - port: { get_resource: perimeta_a_untrusted_0_port }
+ - port: { get_resource: perimeta_a_serv3_0_port }
+ - port: { get_resource: perimeta_a_unused_0_port }
+ availability_zone: { get_param: availability_zone_0 }
+ config_drive: True
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ template: |
+ {
+ "vnic_assignment": {
+ "IBG1mgmt": {"mac": "$MGMT_MACADDR"},
+ "IPG1": {"mac": "$HA_MACADDR"},
+ "RPG1": {"mac": "$TRUSTED_MACADDR"},
+ "RPG2": {"mac": "$UNTRUSTED_MACADDR"},
+ "RPG3": {"mac": "$SERV3_MACADDR"},
+ "RPG4": {"mac": "$SERV4_MACADDR"}
+ },
+ "ip_ha_local": "$LOCAL_HA_IP_ADDR",
+ "ip_ha_remote": "$REMOTE_HA_IP_ADDR",
+ "ip_ha_plen": "$HA_NETWORK_PLEN"
+ // "ip_mgmt_local": "$LOCAL_MGMT_IP_ADDR",
+ // "ip_mgmt_remote": "$REMOTE_MGMT_IP_ADDR",
+ // "ip_mgmt_plen": "$MGMT_NETWORK_PLEN",
+ // "ip_mgmt_gway": "$MGMT_NETWORK_DEFAULT_GATEWAY"
+ }
+
+ params:
+ $MGMT_MACADDR: { get_attr: [perimeta_a_mgmt_0_port, mac_address] }
+ $HA_MACADDR: { get_attr: [perimeta_a_ha_0_port, mac_address] }
+ $TRUSTED_MACADDR: { get_attr: [perimeta_a_trusted_0_port, mac_address] }
+ $UNTRUSTED_MACADDR: { get_attr: [perimeta_a_untrusted_0_port, mac_address] }
+ $SERV3_MACADDR: { get_attr: [perimeta_a_serv3_0_port, mac_address] }
+ $SERV4_MACADDR: { get_attr: [perimeta_a_unused_0_port, mac_address] }
+ $LOCAL_HA_IP_ADDR: { get_param: [ ha_a_ips, { get_param: perimeta_instance_index } ] }
+ $REMOTE_HA_IP_ADDR: { get_param: [ ha_b_ips, { get_param: perimeta_instance_index } ] }
+ $HA_NETWORK_PLEN: { get_param: ha_network_plen }
+ $LOCAL_MGMT_IP_ADDR: { get_param: [ mgmt_a_ips, { get_param: perimeta_instance_index } ] }
+ $REMOTE_MGMT_IP_ADDR: { get_param: [ mgmt_b_ips, { get_param: perimeta_instance_index } ] }
+ $MGMT_NETWORK_PLEN: { get_param: mgmt_net_plen }
+ $MGMT_NETWORK_DEFAULT_GATEWAY: { get_param: mgmt_net_default_gateway }
+
+
+outputs:
+
+ server_group_used:
+ description: Server group used for these VMs
+ value: { get_param: perimeta_param_server_group }
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_swmu_b.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_swmu_b.yaml
new file mode 100644
index 0000000000..77fb15a9a0
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/perimeta_ha_swmu_b.yaml
@@ -0,0 +1,376 @@
+# Heat template which intstantiates a 1+1 HA Perimeta instance with 4 or 5
+# vNICs.
+#
+# This is designed to be included in a higher level template.
+#
+# This template puts the Perimeta configuration in place using userdata
+# injected via OpenStack's ConfigDrive mechanism.
+#
+# Host anti-affinity is achieved using different availability zones for
+# the Perimeta instance or server group anti-affinity if they are in the
+# same availability zone.
+#
+# Template requires Juno or above and has been tested on Kilo.
+#
+heat_template_version: 2014-10-16
+
+description: >
+ HOT template to instantiate a Perimeta 1+1 HA instance with 4vNICs as part of a nested template
+
+parameters:
+ vnf_id:
+ type: string
+ description: VNF ID of this deployment
+ vm_role:
+ type: string
+ description: Role of these VMs
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+ system_names:
+ type: comma_delimited_list
+ description: List of system names of Perimeta instances. Name of a specific instance is indexed by perimeta_instance_index
+ vm_a_names:
+ type: comma_delimited_list
+ description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index
+ vm_b_names:
+ type: comma_delimited_list
+ description: List of names of Perimeta VM A instances, indexed by perimeta_instance_index
+ perimeta_instance_index:
+ type: number
+ description: Index of instance among multiple instances. Use to retrieve correct parameter for this instance when passed all parameters for all instances.
+ perimeta_image_name:
+ type: string
+ description: Glance image for Perimeta instance
+ constraints:
+ - custom_constraint: glance.image
+ perimeta_flavor_name:
+ type: string
+ description: Flavor to use for creating VM instances
+ constraints:
+ - custom_constraint: nova.flavor
+ perimeta_keypair:
+ type: string
+ description: Keypair to use for accessing this Perimeta instance
+ constraints:
+ - custom_constraint: nova.keypair
+ availability_zone_0:
+ # Can be commented out along with references if always using a single availability zone
+ type: string
+ description: Availability zone for A instances.
+ availability_zone_1:
+ # Can be commented out along with references if always using a single availability zone
+ type: string
+ description: Availability zone for B instances. May be the same as A instance.
+ mgmt_net_id:
+ type: string
+ description: Management network id
+ constraints:
+ - custom_constraint: neutron.network
+ mgmt_net_plen:
+ type: string
+ description: Prefix length of management network
+ mgmt_net_default_gateway:
+ type: string
+ description: IP address of management default gateway
+ mgmt_vips:
+ type: comma_delimited_list
+ description: List of management virtual IP addresses for all instances.
+ mgmt_a_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as management IPs of A instances.
+ mgmt_b_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as management IPs of B instances.
+ mgmt_sec_groups:
+ type: comma_delimited_list
+ description: List of security groups to add on management interfaces.
+ ha_net_id:
+ type: string
+ description: HA network id
+ constraints:
+ - custom_constraint: neutron.network
+ ha_network_plen:
+ type: number
+ constraints:
+ - range: { min: 0, max: 32 }
+ description: ha_network_plen must be between 0 and 32
+ ha_a_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as HA IPs of A instances.
+ ha_b_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as HA IPs of B instances.
+ ha_sec_groups:
+ type: comma_delimited_list
+ description: List of security groups to add on HA interfaces.
+ trusted_net_id:
+ type: string
+ description: Service network 1 network UUID
+ constraints:
+ - custom_constraint: neutron.network
+ trusted_vips:
+ type: comma_delimited_list
+ description: List of service network 1 virtual IP addresses for all instances.
+ trusted_a_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as trusted fixed IPs of A instances.
+ trusted_b_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as trusted fixed IPs of B instances.
+ trusted_sec_groups:
+ type: comma_delimited_list
+ description: List of security groups to add on trusted interfaces.
+ untrusted_net_id:
+ type: string
+ description: Service network 2 network UUID
+ constraints:
+ - custom_constraint: neutron.network
+ untrusted_vips:
+ type: comma_delimited_list
+ description: List of service network 2 virtual IP addresses for all instances.
+ untrusted_v6_vips:
+ type: comma_delimited_list
+ description: List of service network 2 alternate virtual IP addresses for all instances.
+ untrusted_a_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as untrusted fixed IPs of A instances.
+ untrusted_a_v6_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as untrusted alternate fixed IPs of A instances.
+ untrusted_b_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as untrusted fixed IPs of B instances.
+ untrusted_b_v6_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as untrusted alternate fixed IPs of B instances.
+ untrusted_sec_groups:
+ type: comma_delimited_list
+ description: List of security groups to add on untrusted interfaces.
+ untrusted_num_vlans:
+ type: number
+ description: Number of VLANs to connect to on the untrusted/access network
+ untrusted_vlan_ids:
+ type: comma_delimited_list
+ description: List of VLAN IDs to use on the untrusted/access network
+ untrusted_vlan_networks:
+ type: comma_delimited_list
+ description: List of Contrail VLAN networks to use on the untrusted/access network. The order and number of these must match the VLAN ID list.
+ serv3_net_id:
+ type: string
+ description: Service network 3 network UUID
+ serv3_vips:
+ type: comma_delimited_list
+ description: List of service network 3 virtual IP addresses for all instances.
+ serv3_a_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as serv3 fixed IPs of A instances.
+ serv3_b_ips:
+ type: comma_delimited_list
+ description: List of fixed IP addresses to use as serv3 fixed IPs of B instances.
+ serv3_sec_groups:
+ type: comma_delimited_list
+ description: List of security groups to add on serv3 interfaces.
+ unused_net_id:
+ type: string
+ description: Service network unused port network UUID
+ perimeta_param_server_group:
+ type: string
+ description: Server group to use for these VMs - ignored
+ perimeta_config:
+ type: string
+ description: Orchestration template configuration for instance.
+
+resources:
+
+ # Perimeta management ports
+ perimeta_b_mgmt_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_mgmt_port
+ params:
+ $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: mgmt_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ mgmt_b_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: mgmt_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ mgmt_vips, { get_param: perimeta_instance_index } ] }
+
+ # Perimeta HA ports
+ perimeta_b_ha_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_ha_port
+ params:
+ $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: ha_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ ha_b_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: ha_sec_groups }
+
+ # Perimeta core/trusted service network ports
+ #
+ # Dual stack core network - if only IPv4 required, comment out second entry
+ # in fixed_ips and allowed_addrsess_pairs parameters.
+ perimeta_b_trusted_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_trusted_port
+ params:
+ $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: trusted_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ trusted_b_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: trusted_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ trusted_vips, { get_param: perimeta_instance_index } ] }
+
+ # Perimeta access/untrusted service network ports
+ #
+ # Dual stack access network - if only IPv4 required, comment out second entry
+ # in fixed_ips and allowed_addrsess_pairs parameters.
+ perimeta_b_untrusted_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_untrusted_port
+ params:
+ $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: untrusted_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ untrusted_b_ips, { get_param: perimeta_instance_index } ] }
+ - ip_address: { get_param: [ untrusted_b_v6_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: untrusted_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] }
+ - ip_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] }
+
+ # Contrail VLAN subinterfaces
+ perimeta_b_untrusted_0_vlan_ports:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: { get_param: untrusted_num_vlans }
+ resource_def:
+ type: vlan_subinterface_dual.yaml
+ properties:
+ subinterface_instance_index: "%index%"
+ subinterface_name_prefix:
+ str_replace:
+ template: $VM_untrusted_port_vlan_
+ params:
+ $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ parent_interface: { get_resource: perimeta_b_untrusted_0_port }
+ mac_address: { get_attr: [ perimeta_b_untrusted_0_port, mac_address ] }
+ ip_address: { get_param: [ untrusted_b_ips, { get_param: perimeta_instance_index } ] }
+ ipv6_address: { get_param: [ untrusted_b_v6_ips, { get_param: perimeta_instance_index } ] }
+ virtual_ip_address: { get_param: [ untrusted_vips, { get_param: perimeta_instance_index } ] }
+ virtual_ipv6_address: { get_param: [ untrusted_v6_vips, { get_param: perimeta_instance_index } ] }
+ vlan_ids: { get_param: untrusted_vlan_ids }
+ vlan_networks: { get_param: untrusted_vlan_networks }
+
+ # Perimeta Rf service network ports (SSC only)
+ #
+ # Dual stack access network - if only IPv4 required, comment out second entry
+ # in fixed_ips and allowed_addrsess_pairs parameters.
+ perimeta_b_serv3_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_serv3_port
+ params:
+ $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ network_id: { get_param: serv3_net_id }
+ fixed_ips:
+ - ip_address: { get_param: [ serv3_b_ips, { get_param: perimeta_instance_index } ] }
+ security_groups: { get_param: serv3_sec_groups }
+ allowed_address_pairs:
+ - ip_address: { get_param: [ serv3_vips, { get_param: perimeta_instance_index } ] }
+
+ perimeta_b_unused_0_port:
+ type: OS::Neutron::Port
+ properties:
+ name:
+ str_replace:
+ template: $VM_unused_port
+ params:
+ $VM: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ network: { get_param: unused_net_id }
+
+ # Add any additional service ports here.
+
+ perimeta_b_server_0:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: [ vm_b_names, { get_param: perimeta_instance_index } ] }
+ image: { get_param: perimeta_image_name }
+ flavor: { get_param: perimeta_flavor_name }
+ key_name: { get_param: perimeta_keypair }
+ scheduler_hints: { group: { get_param: perimeta_param_server_group } }
+ metadata:
+ 'vnf_id': { get_param: vnf_id }
+ 'vm_role':
+ str_replace:
+ template: $ROLE_b
+ params:
+ $ROLE: { get_param: vm_role }
+ 'vf_module_id': { get_param: vf_module_id }
+ networks:
+ - port: { get_resource: perimeta_b_mgmt_0_port }
+ - port: { get_resource: perimeta_b_ha_0_port }
+ - port: { get_resource: perimeta_b_trusted_0_port }
+ - port: { get_resource: perimeta_b_untrusted_0_port }
+ - port: { get_resource: perimeta_b_serv3_0_port }
+ - port: { get_resource: perimeta_b_unused_0_port }
+ availability_zone: { get_param: availability_zone_1 }
+ config_drive: True
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ template: |
+ {
+ "vnic_assignment": {
+ "IBG1mgmt": {"mac": "$MGMT_MACADDR"},
+ "IPG1": {"mac": "$HA_MACADDR"},
+ "RPG1": {"mac": "$TRUSTED_MACADDR"},
+ "RPG2": {"mac": "$UNTRUSTED_MACADDR"},
+ "RPG3": {"mac": "$SERV3_MACADDR"},
+ "RPG4": {"mac": "$SERV4_MACADDR"}
+ },
+ "ip_ha_local": "$LOCAL_HA_IP_ADDR",
+ "ip_ha_remote": "$REMOTE_HA_IP_ADDR",
+ "ip_ha_plen": "$HA_NETWORK_PLEN"
+ //"ip_mgmt_local": "$LOCAL_MGMT_IP_ADDR",
+ //"ip_mgmt_remote": "$REMOTE_MGMT_IP_ADDR",
+ //"ip_mgmt_plen": "$MGMT_NETWORK_PLEN",
+ //"ip_mgmt_gway": "$MGMT_NETWORK_DEFAULT_GATEWAY"
+ }
+
+ params:
+ $MGMT_MACADDR: { get_attr: [perimeta_b_mgmt_0_port, mac_address] }
+ $HA_MACADDR: { get_attr: [perimeta_b_ha_0_port, mac_address] }
+ $TRUSTED_MACADDR: { get_attr: [perimeta_b_trusted_0_port, mac_address] }
+ $UNTRUSTED_MACADDR: { get_attr: [perimeta_b_untrusted_0_port, mac_address] }
+ $SERV3_MACADDR: { get_attr: [perimeta_b_serv3_0_port, mac_address] }
+ $SERV4_MACADDR: { get_attr: [perimeta_b_unused_0_port, mac_address] }
+ $LOCAL_HA_IP_ADDR: { get_param: [ ha_b_ips, { get_param: perimeta_instance_index } ] }
+ $REMOTE_HA_IP_ADDR: { get_param: [ ha_a_ips, { get_param: perimeta_instance_index } ] }
+ $HA_NETWORK_PLEN: { get_param: ha_network_plen }
+ $LOCAL_MGMT_IP_ADDR: { get_param: [ mgmt_b_ips, { get_param: perimeta_instance_index } ] }
+ $REMOTE_MGMT_IP_ADDR: { get_param: [ mgmt_a_ips, { get_param: perimeta_instance_index } ] }
+ $MGMT_NETWORK_PLEN: { get_param: mgmt_net_plen }
+ $MGMT_NETWORK_DEFAULT_GATEWAY: { get_param: mgmt_net_default_gateway }
+
+outputs:
+
+ server_group_used:
+ description: Server group used for these VMs
+ value: { get_param: perimeta_param_server_group }
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/ssc_a_template.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/ssc_a_template.json
new file mode 100644
index 0000000000..7e82527836
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/ssc_a_template.json
@@ -0,0 +1,34 @@
+{
+ // The vnic_assignment parameter is ignored by Perimeta releases prior to
+ // V4.0.00.
+ "vnic_assignment": {
+ "IBG1mgmt": {"mac": "$MGMT_MACADDR"},
+ "IPG1": {"mac": "$HA_MACADDR"},
+ "RPG1": {"mac": "$TRUSTED_MACADDR"},
+ "RPG2": {"mac": "$UNTRUSTED_MACADDR"},
+ "RPG3": {"mac": "$SERV3_MACADDR"},
+ "RPG4": {"mac": "$SERV4_MACADDR"}
+ },
+ "autocommission":"SSC",
+ "autostart":"true",
+ "autopartner":"",
+ "ip_mgmt_global": "$VIRT_MGMT_IP_ADDR",
+ "ip_mgmt_local": "$LOCAL_MGMT_IP_ADDR",
+ "ip_mgmt_remote": "$REMOTE_MGMT_IP_ADDR",
+ "ip_mgmt_plen": "$MGMT_NETWORK_PLEN",
+ "ip_mgmt_gway": "$MGMT_NETWORK_DEFAULT_GATEWAY",
+ "ip_ha_local": "$LOCAL_HA_IP_ADDR",
+ "ip_ha_remote": "$REMOTE_HA_IP_ADDR",
+ "ip_ha_plen": "$HA_NETWORK_PLEN",
+ "system_name": "$SYSTEM_NAME",
+ "node_local": "$VM_NAME_A",
+ "node_remote": "$VM_NAME_B",
+ "ntp_servers": "$NTP_SERVER_IP_ADDRS",
+ "perimeta": {
+ "dpdk_opt_enable":true,
+ "vlans_opt_enable":true
+ }
+
+ // $COMPLETION_PARAMS
+}
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/vlan_subinterface_dual.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/vlan_subinterface_dual.yaml
new file mode 100644
index 0000000000..5d0a72920c
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/subInterfaceToInterfaceConnection/vTSBC_AIC/inputfiles/vlan_subinterface_dual.yaml
@@ -0,0 +1,98 @@
+heat_template_version: 2014-10-16
+
+description: >
+ HOT template to instantiate a single Contrail VLAN sub-interface with associated instance IP addresses and allowed address pairs
+
+parameters:
+ subinterface_instance_index:
+ type: number
+ description: Index of instance among multiple instances. Use to retrieve correct parameter for this instance when passed all parameters for all instances.
+ subinterface_name_prefix:
+ type: string
+ description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource
+ parent_interface:
+ type: string
+ description: Parent Contrail interface
+ mac_address:
+ type: string
+ description: MAC address to use for subinterface
+ ip_address:
+ type: string
+ description: IPv4 address associated with subinterfaces
+ ipv6_address:
+ type: string
+ description: IPv6 address associated with subinterfaces
+ virtual_ip_address:
+ type: string
+ description: virtual IPv4 address associated with subinterfaces
+ virtual_ipv6_address:
+ type: string
+ description: virtual IPv6 address associated with subinterfaces
+ vlan_ids:
+ type: comma_delimited_list
+ description: List of VLAN IDs to use for subinterfaces
+ vlan_networks:
+ type: comma_delimited_list
+ description: List of Contrail VLAN networks to use for the subinterfaces. The order and number of these must match the VLAN ID list
+
+resources:
+ contrail_vmi_subinterface:
+ type: OS::ContrailV2::VirtualMachineInterface
+ properties:
+ name:
+ str_replace:
+ template: $NAME$VLAN
+ params:
+ $NAME: { get_param: subinterface_name_prefix }
+ $VLAN: { get_param: [ vlan_ids, { get_param: subinterface_instance_index } ] }
+ virtual_machine_interface_properties:
+ {
+ virtual_machine_interface_properties_sub_interface_vlan_tag: { get_param: [ vlan_ids, { get_param: subinterface_instance_index } ] }
+ }
+ virtual_machine_interface_mac_addresses:
+ {
+ virtual_machine_interface_mac_addresses_mac_address: [{ get_param: mac_address }],
+ }
+ virtual_machine_interface_allowed_address_pairs:
+ {
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair: [
+ {
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+ {
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ip_address },
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 32
+ }
+ },
+ {
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+ {
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ipv6_address },
+ virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 128
+ }
+ }
+ ]
+ }
+ virtual_network_refs: [{ get_param: [ vlan_networks, { get_param: subinterface_instance_index } ] }]
+ virtual_machine_interface_refs: [{ get_param: parent_interface }]
+
+ contrail_vmi_ip:
+ type: OS::ContrailV2::InstanceIp
+ depends_on: [ contrail_vmi_subinterface ]
+ properties:
+ virtual_machine_interface_refs: [{ get_resource: contrail_vmi_subinterface }]
+ virtual_network_refs: [{ get_param: [ vlan_networks, { get_param: subinterface_instance_index } ] }]
+ instance_ip_address: { get_param: ip_address }
+ instance_ip_family: v4
+
+ contrail_vmi_ipv6:
+ type: OS::ContrailV2::InstanceIp
+ depends_on: [ contrail_vmi_subinterface ]
+ properties:
+ virtual_machine_interface_refs: [{ get_resource: contrail_vmi_subinterface }]
+ virtual_network_refs: [{ get_param: [ vlan_networks, { get_param: subinterface_instance_index } ] }]
+ instance_ip_address: { get_param: ipv6_address }
+ instance_ip_family: v6