From f5f13c4f6b6fe3b4d98e349dfd7db59339803436 Mon Sep 17 00:00:00 2001 From: Michael Lando Date: Sun, 19 Feb 2017 12:35:04 +0200 Subject: push addional code Change-Id: Ia427bb3460cda3a896f8faced2de69eaf3807b74 Signed-off-by: Michael Lando --- .../GlobalSubstitutionTypesServiceTemplate.yaml | 161 +++++++++++++ .../expectedoutputfiles/MainServiceTemplate.yaml | 223 ++++++++++++++++++ .../mvs.nested.heatServiceTemplate.yaml | 254 +++++++++++++++++++++ .../nested/resource_group/inputs/MANIFEST.json | 19 ++ .../resource_group/inputs/mvs.nested.heat.yaml | 129 +++++++++++ .../resource_group/inputs/mvs.vfmodule.heat.yaml | 163 +++++++++++++ 6 files changed, 949 insertions(+) create mode 100644 openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml create mode 100644 openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/expectedoutputfiles/MainServiceTemplate.yaml create mode 100644 openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/expectedoutputfiles/mvs.nested.heatServiceTemplate.yaml create mode 100644 openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/inputs/MANIFEST.json create mode 100644 openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/inputs/mvs.nested.heat.yaml create mode 100644 openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/inputs/mvs.vfmodule.heat.yaml (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group') diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml new file mode 100644 index 0000000000..15b5e3b3a8 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/expectedoutputfiles/GlobalSubstitutionTypesServiceTemplate.yaml @@ -0,0 +1,161 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +metadata: + template_name: GlobalSubstitutionTypes +imports: + ContrailComputeGlobalTypes: + file: ContrailComputeGlobalTypesServiceTemplate.yaml + CinderVolumeGlobalTypes: + file: CinderVolumeGlobalTypesServiceTemplate.yaml + ContrailVirtualNetworkGlobalType: + file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml + AbstractSubstituteGlobalTypes: + file: AbstractSubstituteGlobalTypesServiceTemplate.yaml + ContrailPortGlobalTypes: + file: ContrailPortGlobalTypesServiceTemplate.yaml + NeutronPortGlobalTypes: + file: NeutronPortGlobalTypesServiceTemplate.yaml + NeutronNetGlobalTypes: + file: NeutronNetGlobalTypesServiceTemplate.yaml + CommonGlobalTypes: + file: CommonGlobalTypesServiceTemplate.yaml + ContrailAbstractSubstituteGlobalTypes: + file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml + ContrailNetworkRuleGlobalType: + file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml + NeutronSecurityRulesGlobalTypes: + file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml + NovaServerGlobalTypes: + file: NovaServerGlobalTypesServiceTemplate.yaml + ContrailV2VirtualMachineInterfaceGlobalType: + file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml +node_types: + org.openecomp.resource.abstract.nodes.heat.mvs.nested.heat: + derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute + properties: + vf_module_id: + type: string + description: Unique ID for this VF_MODULE instance + vf_name: + type: string + description: The VF Name; defaults to VMVM for the virtual MVM VNF. + constraints: + - pattern: '[a-zA-Z0-9]+' + - max_length: 4 + - min_length: 4 + cloud_zone_id: + type: string + description: The cloud zone for this VF instance + vf_instance_num: + type: string + description: The number for this VF instance + constraints: + - pattern: '[0-9]+' + - max_length: 2 + - min_length: 2 + virtual_mgmt_ip_0: + type: string + description: Virtual management network ip address + indx: + type: float + description: Index of the current instance + mvs_mgmt_ip_0: + type: list + description: List of Management network IP addresses for IPv4 + entry_schema: + type: string + flavor: + type: string + description: Server flavor + constraints: [ + ] + key_name: + type: string + description: SSH key name + constraints: [ + ] + vnf_id: + type: string + description: Unique ID for this VF instance + availability_zone_0: + type: list + description: List of Availability Zone IDs or Names + entry_schema: + type: string + mgmt_net_id: + type: string + description: Neutron UUID for the Management network + constraints: [ + ] + vm_instance_num: + type: list + description: VM instance number list must be a list of three-digit numeric value + entry_schema: + type: string + bootimage: + type: string + description: Master bootimage volume id + sec_groups: + type: list + description: Security groups + entry_schema: + type: string + vf_component: + type: string + description: The component that this VF instance is running + constraints: + - pattern: '[a-zA-Z0-9]+' + - max_length: 3 + - min_length: 3 + attributes: + vnfci_id_2: + type: string + vnfci_id_1: + type: string + requirements: + - local_storage_vnfci: + capability: tosca.capabilities.Attachment + node: tosca.nodes.BlockStorage + relationship: tosca.relationships.AttachesTo + occurrences: + - 0 + - UNBOUNDED + - link_mgmt_port: + capability: tosca.capabilities.network.Linkable + node: tosca.nodes.Root + relationship: tosca.relationships.network.LinksTo + occurrences: + - 1 + - 1 + capabilities: + os_vnfci: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + attachment_mgmt_port: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + endpoint_vnfci: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + host_vnfci: + type: tosca.capabilities.Container + valid_source_types: + - tosca.nodes.SoftwareComponent + occurrences: + - 1 + - UNBOUNDED + binding_vnfci: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + scalable_vnfci: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED \ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/expectedoutputfiles/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/expectedoutputfiles/MainServiceTemplate.yaml new file mode 100644 index 0000000000..632afc51b3 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/expectedoutputfiles/MainServiceTemplate.yaml @@ -0,0 +1,223 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +metadata: + template_name: Main +imports: + ContrailComputeGlobalTypes: + file: ContrailComputeGlobalTypesServiceTemplate.yaml + CinderVolumeGlobalTypes: + file: CinderVolumeGlobalTypesServiceTemplate.yaml + ContrailVirtualNetworkGlobalType: + file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml + AbstractSubstituteGlobalTypes: + file: AbstractSubstituteGlobalTypesServiceTemplate.yaml + ContrailPortGlobalTypes: + file: ContrailPortGlobalTypesServiceTemplate.yaml + GlobalSubstitutionTypes: + file: GlobalSubstitutionTypesServiceTemplate.yaml + NeutronPortGlobalTypes: + file: NeutronPortGlobalTypesServiceTemplate.yaml + NeutronNetGlobalTypes: + file: NeutronNetGlobalTypesServiceTemplate.yaml + CommonGlobalTypes: + file: CommonGlobalTypesServiceTemplate.yaml + ContrailAbstractSubstituteGlobalTypes: + file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml + ContrailNetworkRuleGlobalType: + file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml + NeutronSecurityRulesGlobalTypes: + file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml + NovaServerGlobalTypes: + file: NovaServerGlobalTypesServiceTemplate.yaml + ContrailV2VirtualMachineInterfaceGlobalType: + file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml +node_types: + org.openecomp.resource.vfc.nodes.heat.compute: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server +topology_template: + inputs: + vf_module_id: + hidden: false + immutable: false + type: string + description: Unique ID for this VF_MODULE instance + vf_name: + hidden: false + immutable: false + type: string + description: The VF Name; defaults to VMVM for the virtual MVM VNF. + constraints: + - pattern: '[a-zA-Z0-9]+' + - max_length: 4 + - min_length: 4 + type_name: + hidden: false + immutable: false + type: string + cloud_zone_id: + hidden: false + immutable: false + type: string + description: The cloud zone for this VF instance + vf_instance_num: + hidden: false + immutable: false + type: string + description: The number for this VF instance + constraints: + - pattern: '[0-9]+' + - max_length: 2 + - min_length: 2 + virtual_mgmt_ip_0: + hidden: false + immutable: false + type: string + description: Virtual management network ip address + mvs_mgmt_ip_0: + hidden: false + immutable: false + type: list + description: List of Management network IP addresses for IPv4 + entry_schema: + type: string + compute_image_name: + hidden: false + immutable: false + type: string + flavor: + hidden: false + immutable: false + type: string + description: Server flavor + constraints: [ + ] + key_name: + hidden: false + immutable: false + type: string + description: SSH key name + constraints: [ + ] + vnf_id: + hidden: false + immutable: false + type: string + description: Unique ID for this VF instance + availability_zone_0: + hidden: false + immutable: false + type: list + description: List of Availability Zone IDs or Names + entry_schema: + type: string + mgmt_net_id: + hidden: false + immutable: false + type: string + description: Neutron UUID for the Management network + constraints: [ + ] + vm_instance_num: + hidden: false + immutable: false + type: list + description: VM instance number list must be a list of three-digit numeric value + entry_schema: + type: string + bootimage: + hidden: false + immutable: false + type: string + description: Master bootimage volume id + sec_groups: + hidden: false + immutable: false + type: list + description: Security groups + entry_schema: + type: string + vf_component: + hidden: false + immutable: false + type: string + description: The component that this VF instance is running + constraints: + - pattern: '[a-zA-Z0-9]+' + - max_length: 3 + - min_length: 3 + num_instances: + hidden: false + immutable: false + type: float + description: number of instance of the VF_module + node_templates: + mvs_modules: + type: org.openecomp.resource.abstract.nodes.heat.mvs.nested.heat + directives: + - substitutable + properties: + vf_module_id: + get_input: vf_module_id + vf_name: + get_input: vf_name + cloud_zone_id: + get_input: cloud_zone_id + vf_instance_num: + get_input: vf_instance_num + virtual_mgmt_ip_0: + get_input: virtual_mgmt_ip_0 + indx: + get_property: + - SELF + - service_template_filter + - index_value + mvs_mgmt_ip_0: + get_input: mvs_mgmt_ip_0 + flavor: + get_input: flavor + key_name: + get_input: key_name + service_template_filter: + substitute_service_template: mvs.nested.heatServiceTemplate.yaml + count: 3 + mandatory: true + vnf_id: + get_input: vnf_id + availability_zone_0: + get_input: availability_zone_0 + mgmt_net_id: + get_input: mgmt_net_id + vm_instance_num: + get_input: vm_instance_num + bootimage: + get_input: bootimage + sec_groups: + get_input: sec_groups + vf_component: + get_input: vf_component + server_compute_get_attr_test: + type: org.openecomp.resource.vfc.nodes.heat.compute + properties: + flavor: compute_flavor_name + image: + get_input: compute_image_name + config_drive: + get_attribute: + - mvs_modules + - vnfci_id_1 + - vnfci_id_2 + user_data_format: + get_attribute: + - mvs_modules + - vnfci_id_1 + - 1 + name: compute_name + groups: + mvs.vfmodule.heat: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/mvs.vfmodule.heat.yaml + description: | + Metaswitch MVS (Metaview Server) + members: + - mvs_modules + - server_compute_get_attr_test \ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/expectedoutputfiles/mvs.nested.heatServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/expectedoutputfiles/mvs.nested.heatServiceTemplate.yaml new file mode 100644 index 0000000000..11369f9b68 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/expectedoutputfiles/mvs.nested.heatServiceTemplate.yaml @@ -0,0 +1,254 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +metadata: + template_name: mvs.nested.heat +imports: + ContrailComputeGlobalTypes: + file: ContrailComputeGlobalTypesServiceTemplate.yaml + CinderVolumeGlobalTypes: + file: CinderVolumeGlobalTypesServiceTemplate.yaml + ContrailVirtualNetworkGlobalType: + file: ContrailVirtualNetworkGlobalTypeServiceTemplate.yaml + AbstractSubstituteGlobalTypes: + file: AbstractSubstituteGlobalTypesServiceTemplate.yaml + ContrailPortGlobalTypes: + file: ContrailPortGlobalTypesServiceTemplate.yaml + GlobalSubstitutionTypes: + file: GlobalSubstitutionTypesServiceTemplate.yaml + NeutronPortGlobalTypes: + file: NeutronPortGlobalTypesServiceTemplate.yaml + NeutronNetGlobalTypes: + file: NeutronNetGlobalTypesServiceTemplate.yaml + CommonGlobalTypes: + file: CommonGlobalTypesServiceTemplate.yaml + ContrailAbstractSubstituteGlobalTypes: + file: ContrailAbstractSubstituteGlobalTypesServiceTemplate.yaml + ContrailNetworkRuleGlobalType: + file: ContrailNetworkRuleGlobalTypeServiceTemplate.yaml + NeutronSecurityRulesGlobalTypes: + file: NeutronSecurityRulesGlobalTypesServiceTemplate.yaml + NovaServerGlobalTypes: + file: NovaServerGlobalTypesServiceTemplate.yaml + ContrailV2VirtualMachineInterfaceGlobalType: + file: ContrailV2VirtualMachineInterfaceGlobalTypeServiceTemplate.yaml +node_types: + org.openecomp.resource.vfc.nodes.heat.vnfci: + derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server +topology_template: + inputs: + vf_module_id: + hidden: false + immutable: false + type: string + description: Unique ID for this VF_MODULE instance + vf_name: + hidden: false + immutable: false + type: string + description: The VF Name; defaults to VMVM for the virtual MVM VNF. + constraints: + - pattern: '[a-zA-Z0-9]+' + - max_length: 4 + - min_length: 4 + cloud_zone_id: + hidden: false + immutable: false + type: string + description: The cloud zone for this VF instance + vf_instance_num: + hidden: false + immutable: false + type: string + description: The number for this VF instance + constraints: + - pattern: '[0-9]+' + - max_length: 2 + - min_length: 2 + virtual_mgmt_ip_0: + hidden: false + immutable: false + type: string + description: Virtual management network ip address + indx: + hidden: false + immutable: false + type: float + description: Index of the current instance + mvs_mgmt_ip_0: + hidden: false + immutable: false + type: list + description: List of Management network IP addresses for IPv4 + entry_schema: + type: string + flavor: + hidden: false + immutable: false + type: string + description: Server flavor + constraints: [ + ] + key_name: + hidden: false + immutable: false + type: string + description: SSH key name + constraints: [ + ] + vnf_id: + hidden: false + immutable: false + type: string + description: Unique ID for this VF instance + availability_zone_0: + hidden: false + immutable: false + type: list + description: List of Availability Zone IDs or Names + entry_schema: + type: string + mgmt_net_id: + hidden: false + immutable: false + type: string + description: Neutron UUID for the Management network + constraints: [ + ] + vm_instance_num: + hidden: false + immutable: false + type: list + description: VM instance number list must be a list of three-digit numeric value + entry_schema: + type: string + bootimage: + hidden: false + immutable: false + type: string + description: Master bootimage volume id + sec_groups: + hidden: false + immutable: false + type: list + description: Security groups + entry_schema: + type: string + vf_component: + hidden: false + immutable: false + type: string + description: The component that this VF instance is running + constraints: + - pattern: '[a-zA-Z0-9]+' + - max_length: 3 + - min_length: 3 + node_templates: + vnfci: + type: org.openecomp.resource.vfc.nodes.heat.vnfci + properties: + flavor: + get_input: flavor + key_name: + get_input: key_name + availability_zone: + Fn::Select: + - get_input: indx + - get_input: + - availability_zone_0 + name: + str_replace: + template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM + params: + $VF_NAME: + get_input: vf_name + $CLOUD_ZONE_ID: + get_input: cloud_zone_id + $VM_INSTANCE_NUM: + Fn::Select: + - get_input: indx + - get_input: + - vm_instance_num + $VF_COMPONENT: + get_input: vf_component + $VF_INSTANCE_NUM: + get_input: vf_instance_num + mgmt_port: + type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + properties: + security_groups: + - get_input: sec_groups + fixed_ips: + - ip_address: + Fn::Select: + - get_input: indx + - get_input: + - get_input: mvs_mgmt_ip_0 + allowed_address_pairs: + - ip_address: + get_input: virtual_mgmt_ip_0 + name: + str_replace: + template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM-mgmt-port + params: + $VF_NAME: + get_input: vf_name + $CLOUD_ZONE_ID: + get_input: cloud_zone_id + $VM_INSTANCE_NUM: + Fn::Select: + - get_input: indx + - get_input: + - vm_instance_num + $VF_COMPONENT: + get_input: vf_component + $VF_INSTANCE_NUM: + get_input: vf_instance_num + network: + get_input: mgmt_net_id + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: vnfci + relationship: tosca.relationships.network.BindsTo + groups: + mvs.nested.heat: + type: org.openecomp.groups.heat.HeatStack + properties: + heat_file: ../Artifacts/mvs.nested.heat.yaml + description: | + Metaswitch MVS (Metaview Server) + members: + - vnfci + - mgmt_port + outputs: + vnfci_id_2: + value: vnfci + vnfci_id_1: + value: vnfci + substitution_mappings: + node_type: org.openecomp.resource.abstract.nodes.heat.mvs.nested.heat + capabilities: + os_vnfci: + - vnfci + - os + attachment_mgmt_port: + - mgmt_port + - attachment + endpoint_vnfci: + - vnfci + - endpoint + host_vnfci: + - vnfci + - host + binding_vnfci: + - vnfci + - binding + scalable_vnfci: + - vnfci + - scalable + requirements: + local_storage_vnfci: + - vnfci + - local_storage + link_mgmt_port: + - mgmt_port + - link \ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/inputs/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/inputs/MANIFEST.json new file mode 100644 index 0000000000..c7729c8653 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/inputs/MANIFEST.json @@ -0,0 +1,19 @@ +{ + "name": "mvs.vfmodule.heat.yaml", + "description": "Metaswitch MVS (Metaview Server)", + "version": "2013-05-23", + "data": [ + { + "file": "mvs.vfmodule.heat.yaml", + "type": "HEAT", + "data": [ + ] + }, + { + "file": "mvs.nested.heat.yaml", + "type": "HEAT", + "data": [ + ] + } + ] +} \ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/inputs/mvs.nested.heat.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/inputs/mvs.nested.heat.yaml new file mode 100644 index 0000000000..01adb51d71 --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/inputs/mvs.nested.heat.yaml @@ -0,0 +1,129 @@ +heat_template_version: 2013-05-23 + +description: > + Metaswitch MVS (Metaview Server) + +parameters: + cloud_zone_id: + type: string + description: The cloud zone for this VF instance + vf_name: + type: string + description: The VF Name; defaults to VMVM for the virtual MVM VNF. + constraints: + - allowed_pattern: "[a-zA-Z0-9]+" + - length: { min: 4, max: 4 } + description: Each VF will have a 4-character alphanumeric identifier + vf_instance_num: + type: string + description: The number for this VF instance + constraints: + - allowed_pattern: "[0-9]+" + - length: { min: 2, max: 2 } + description: VF instance number must be a two-digit numeric value + vf_component: + type: string + description: The component that this VF instance is running + constraints: + - allowed_pattern: "[a-zA-Z0-9]+" + - length: { min: 3, max: 3 } + description: Each VF component will have a 3-character alphanumeric identifier + vm_instance_num: + type: comma_delimited_list + description: VM instance number list must be a list of three-digit numeric value + vnf_id: + type: string + description: Unique ID for this VF instance + vf_module_id: + type: string + description: Unique ID for this VF_MODULE instance + bootimage: + type: string + description: Master bootimage volume id + flavor: + type: string + description: Server flavor + constraints: + - custom_constraint: nova.flavor + key_name: + type: string + description: SSH key name + constraints: + - custom_constraint: nova.keypair + + availability_zone_0: + type: comma_delimited_list + description: List of Availability Zone IDs or Names + + sec_groups: + type: comma_delimited_list + description: Security groups + mgmt_net_id: + type: string + description: Neutron UUID for the Management network + constraints: + - custom_constraint: neutron.network + virtual_mgmt_ip_0: + type: string + description: Virtual management network ip address + + mvs_mgmt_ip_0: + type: comma_delimited_list + description: List of Management network IP addresses for IPv4 + + indx: + type: number + description: Index of the current instance + +resources: + mgmt_port: + type: OS::Neutron::Port + properties: + name: + str_replace: + template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM-mgmt-port + params: + $CLOUD_ZONE_ID: { get_param: cloud_zone_id } + $VF_NAME: { get_param: vf_name } + $VF_INSTANCE_NUM: { get_param: vf_instance_num } + $VF_COMPONENT: { get_param: vf_component } + $VM_INSTANCE_NUM: { "Fn::Select" : [ { get_param: indx }, { get_param: [vm_instance_num] } ] } + network_id: { get_param: mgmt_net_id } + security_groups: [{ get_param: sec_groups }] + + fixed_ips: + - ip_address: { "Fn::Select" : [ { get_param: indx }, { get_param: [{ get_param: mvs_mgmt_ip_0 }] } ] } + + allowed_address_pairs: + - ip_address: { get_param: virtual_mgmt_ip_0 } + + + + vnfci: + type: OS::Nova::Server + properties: + name: + str_replace: + template: Z$CLOUD_ZONE_ID$VF_NAME$VF_INSTANCE_NUM$VF_COMPONENT$VM_INSTANCE_NUM + params: + $CLOUD_ZONE_ID: { get_param: cloud_zone_id } + $VF_NAME: { get_param: vf_name } + $VF_INSTANCE_NUM: { get_param: vf_instance_num } + $VF_COMPONENT: { get_param: vf_component } + $VM_INSTANCE_NUM: { "Fn::Select" : [ { get_param: indx }, { get_param: [vm_instance_num] } ] } + flavor: { get_param: flavor } + key_name: { get_param: key_name } + networks: + - port: { get_resource: mgmt_port } + + availability_zone: { "Fn::Select" : [ { get_param: indx }, { get_param: [availability_zone_0] } ] } + + metadata: + vnf_id: { get_param: vnf_id } + vf_module_id: { get_param: vf_module_id } + +outputs: + vnfci_id_1: + value: { get_resource: vnfci } + vnfci_id_2: + value: { get_resource: vnfci } \ No newline at end of file diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/inputs/mvs.vfmodule.heat.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/inputs/mvs.vfmodule.heat.yaml new file mode 100644 index 0000000000..380ceae2ff --- /dev/null +++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/heat/nested/resource_group/inputs/mvs.vfmodule.heat.yaml @@ -0,0 +1,163 @@ +heat_template_version: 2013-05-23 + +description: > + Metaswitch MVS (Metaview Server) + +parameters: + cloud_zone_id: + type: string + description: The cloud zone for this VF instance + vf_name: + type: string + description: The VF Name; defaults to VMVM for the virtual MVM VNF. + constraints: + - allowed_pattern: "[a-zA-Z0-9]+" + - length: { min: 4, max: 4 } + description: Each VF will have a 4-character alphanumeric identifier + vf_instance_num: + type: string + description: The number for this VF instance + constraints: + - allowed_pattern: "[0-9]+" + - length: { min: 2, max: 2 } + description: VF instance number must be a two-digit numeric value + vf_component: + type: string + description: The component that this VF instance is running + constraints: + - allowed_pattern: "[a-zA-Z0-9]+" + - length: { min: 3, max: 3 } + description: Each VF component will have a 3-character alphanumeric identifier + vm_instance_num: + type: comma_delimited_list + description: VM instance number list must be a list of three-digit numeric value + vnf_id: + type: string + description: Unique ID for this VF instance + vf_module_id: + type: string + description: Unique ID for this VF_MODULE instance + bootimage: + type: string + description: Master bootimage volume id + flavor: + type: string + description: Server flavor + constraints: + - custom_constraint: nova.flavor + key_name: + type: string + description: SSH key name + constraints: + - custom_constraint: nova.keypair + type_name: + type: string + availability_zone_0: + type: comma_delimited_list + description: List of Availability Zone IDs or Names + + sec_groups: + type: comma_delimited_list + description: Security groups + mgmt_net_id: + type: string + description: Neutron UUID for the Management network + constraints: + - custom_constraint: neutron.network + virtual_mgmt_ip_0: + type: string + description: Virtual management network ip address + + mvs_mgmt_ip_0: + type: comma_delimited_list + description: List of Management network IP addresses for IPv4 + + num_instances: + type: number + description: number of instance of the VF_module + + compute_image_name: + type: string + +resources: + mvs_modules: + type: OS::Heat::ResourceGroup + properties: + count: 3 + resource_def: + type: mvs.nested.heat.yaml + properties: + cloud_zone_id: { get_param: cloud_zone_id } + vf_name: { get_param: vf_name } + vf_instance_num: { get_param: vf_instance_num } + vf_component: { get_param: vf_component } + vm_instance_num: { get_param: vm_instance_num } + vnf_id: { get_param: vnf_id } + vf_module_id: { get_param: vf_module_id } + bootimage: { get_param: bootimage } + flavor: { get_param: flavor } + key_name: { get_param: key_name } + availability_zone_0: { get_param: availability_zone_0 } + sec_groups: { get_param: sec_groups } + mgmt_net_id: { get_param: mgmt_net_id } + virtual_mgmt_ip_0: { get_param: virtual_mgmt_ip_0 } + mvs_mgmt_ip_0: { get_param: mvs_mgmt_ip_0 } + indx: "%index%" + + not_supported_resourceGroup1: + type: OS::Heat::ResourceGroup + properties: + count: 3 + resource_def: + type: OS::Heat::ResourceGroup + properties: + cloud_zone_id: { get_param: cloud_zone_id } + vf_name: { get_param: vf_name } + vf_instance_num: { get_param: vf_instance_num } + vf_component: { get_param: vf_component } + vm_instance_num: { get_param: vm_instance_num } + vnf_id: { get_param: vnf_id } + vf_module_id: { get_param: vf_module_id } + bootimage: { get_param: bootimage } + flavor: { get_param: flavor } + key_name: { get_param: key_name } + availability_zone_0: { get_param: availability_zone_0 } + sec_groups: { get_param: sec_groups } + mgmt_net_id: { get_param: mgmt_net_id } + virtual_mgmt_ip_0: { get_param: virtual_mgmt_ip_0 } + mvs_mgmt_ip_0: { get_param: mvs_mgmt_ip_0 } + indx: "%index%" + + not_supported_resourceGroup2: + type: OS::Heat::ResourceGroup + properties: + count: 3 + resource_def: + type: { get_param: type_name } + properties: + cloud_zone_id: { get_param: cloud_zone_id } + vf_name: { get_param: vf_name } + vf_instance_num: { get_param: vf_instance_num } + vf_component: { get_param: vf_component } + vm_instance_num: { get_param: vm_instance_num } + vnf_id: { get_param: vnf_id } + vf_module_id: { get_param: vf_module_id } + bootimage: { get_param: bootimage } + flavor: { get_param: flavor } + key_name: { get_param: key_name } + availability_zone_0: { get_param: availability_zone_0 } + sec_groups: { get_param: sec_groups } + mgmt_net_id: { get_param: mgmt_net_id } + virtual_mgmt_ip_0: { get_param: virtual_mgmt_ip_0 } + mvs_mgmt_ip_0: { get_param: mvs_mgmt_ip_0 } + indx: "%index%" + + server_compute_get_attr_test: + type: OS::Nova::Server + properties: + config_drive: {get_attr: [mvs_modules]} + name: compute_name + image: { get_param: compute_image_name } + flavor: compute_flavor_name + user_data_format: { get_attr: [mvs_modules , resource.1.vnfci_id_1] } + user_data: { get_attr: [mvs_modules, resource.vnfci_id_2]} -- cgit 1.2.3-korg