Add tests 21/27021/3
authortalio <tali.orenbach@amdocs.com>
Wed, 27 Dec 2017 10:59:05 +0000 (12:59 +0200)
committerAvi Gaffa <avi.gaffa@amdocs.com>
Wed, 27 Dec 2017 14:42:02 +0000 (14:42 +0000)
Add unit tests for ToscaTreeManager

Change-Id: I772b63799cd34b687e6c81cb235c1c9a36ad34a2
Issue-ID: SDC-802
Signed-off-by: talio <tali.orenbach@amdocs.com>
17 files changed:
openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/services/tree/ToscaTreeManagerTest.java [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/diffFileNames/in/Definitions/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/diffFileNames/in/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/diffFileNames/in/TOSCA-Metadata/TOSCA.meta [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/diffFileNames/out/expectedTree.json [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/similarDirectoryName/in/Artifacts/Deployment/OTHER/clearWaterIMSOTHERDEPLOYMENT.zip [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/similarDirectoryName/in/Artifacts/OTHER/clearWaterIMSOTHER.zip [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/similarDirectoryName/in/Definitions/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/similarDirectoryName/in/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/similarDirectoryName/in/TOSCA-Metadata/TOSCA.meta [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/similarDirectoryName/out/expectedTree.json [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/twoFilesUnderSameDirectory/in/Artifacts/OTHER/clearWaterIMSOTHER.zip [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/twoFilesUnderSameDirectory/in/Artifacts/OTHER/clearWaterIMSOTHERDEPLOYMENT.zip [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/twoFilesUnderSameDirectory/in/Definitions/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/twoFilesUnderSameDirectory/in/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/twoFilesUnderSameDirectory/in/TOSCA-Metadata/TOSCA.meta [new file with mode: 0644]
openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/twoFilesUnderSameDirectory/out/expectedTree.json [new file with mode: 0644]

diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/services/tree/ToscaTreeManagerTest.java b/openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/services/tree/ToscaTreeManagerTest.java
new file mode 100644 (file)
index 0000000..0cfac52
--- /dev/null
@@ -0,0 +1,86 @@
+package org.openecomp.sdc.heat.services.tree;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.openecomp.core.utilities.file.FileUtils;
+import org.openecomp.core.utilities.json.JsonUtil;
+import org.openecomp.sdc.heat.datatypes.structure.HeatStructureTree;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.regex.Pattern;
+
+public class ToscaTreeManagerTest {
+  private static final String BASE_DIR = "/mock/toscaTree/";
+  private static final String IN = "in";
+  private static final String OUT = "out";
+  private static final String EXPECTED_TREE_FILE = "/expectedTree.json";
+  private ToscaTreeManager toscaTreeManager = new ToscaTreeManager();
+
+  @Test
+  public void testTreeWithDiffFileNames() throws IOException {
+    String inputDirectory = BASE_DIR + "diffFileNames/" + IN;
+    String outputFileName = BASE_DIR + "diffFileNames/" + OUT + EXPECTED_TREE_FILE;
+
+    testTreeManager(inputDirectory, outputFileName);
+  }
+
+  @Test
+  public void testDirectoriesWithSimilarNameUnderDifferentRoots() throws IOException {
+    String inputDirectory = BASE_DIR + "similarDirectoryName/" + IN;
+    String outputFileName = BASE_DIR + "similarDirectoryName/" + OUT + EXPECTED_TREE_FILE;
+
+    testTreeManager(inputDirectory, outputFileName);
+  }
+
+  @Test
+  public void testTwoFilesUnderSameDirectory() throws IOException {
+    String inputDirectory = BASE_DIR + "twoFilesUnderSameDirectory/" + IN;
+    String outputFileName = BASE_DIR + "twoFilesUnderSameDirectory/" + OUT + EXPECTED_TREE_FILE;
+
+    testTreeManager(inputDirectory, outputFileName);
+  }
+
+  private void testTreeManager(String inputDirectory, String outputFileName) throws IOException {
+    initTreeManager(inputDirectory);
+    toscaTreeManager.createTree();
+    HeatStructureTree tree = toscaTreeManager.getTree();
+
+    validateToscaTree(outputFileName, tree);
+  }
+
+  private void validateToscaTree(String outputFileName, HeatStructureTree tree) throws IOException {
+    String actualTree = JsonUtil.object2Json(tree);
+    File expectedTreeFile = new File(this.getClass().getResource(outputFileName).getFile());
+
+    String expectedTree;
+    try(FileInputStream fis = new FileInputStream(expectedTreeFile)) {
+      expectedTree = new String(FileUtils.toByteArray(fis));
+    }
+    Assert.assertNotNull(expectedTree);
+    expectedTree = expectedTree.trim().replace("\r", "");
+    Assert.assertEquals(expectedTree, actualTree);
+  }
+
+  private void initTreeManager(String inputDir) throws IOException {
+    String fileName = inputDir.replace("/", File.separator);
+    File directory = new File(this.getClass().getResource(inputDir).getFile());
+
+    addFilesToTreeManager(fileName, directory.listFiles());
+  }
+
+  private void addFilesToTreeManager(String baseDir, File[] listFiles) throws IOException {
+    for (File file : listFiles) {
+      if (file.isDirectory()) {
+        addFilesToTreeManager(baseDir, file.listFiles());
+      } else {
+        toscaTreeManager.addFile(getFileNameWithoutTestDirectory(baseDir, file.getPath()), new byte[2]);
+      }
+    }
+  }
+
+  private String getFileNameWithoutTestDirectory(String baseDir, String fileName) {
+    return fileName.split(Pattern.quote(baseDir) + Pattern.quote(File.separator))[1];
+  }
+}
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/diffFileNames/in/Definitions/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/diffFileNames/in/Definitions/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..0923257
--- /dev/null
@@ -0,0 +1,430 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+
+node_types:
+  tosca.nodes.nfv.ext.ImageFile: 
+    capabilities: 
+      guest_os: 
+        type: tosca.capabilities.nfv.ext.GuestOs
+      image_fle: 
+        type: tosca.capabilities.nfv.ext.ImageFile
+    derived_from: tosca.nodes.Root
+    properties: 
+      file_url: 
+        required: false
+        type: string
+      container_type: 
+        required: false
+        type: string
+      name: 
+        required: false
+        type: string
+      disk_format: 
+        required: false
+        type: string
+      version: 
+        required: false
+        type: string
+
+  tosca.nodes.nfv.ext.LocalStorage: 
+    capabilities: 
+      local_attachment: 
+        type: tosca.capabilities.nfv.ext.LocalAttachment
+    derived_from: tosca.nodes.Root
+    properties: 
+      size: 
+        required: false
+        type: string
+      disk_type: 
+        required: false
+        type: string
+
+  tosca.nodes.nfv.ext.zte.VNF: 
+    capabilities: 
+      forwarder: 
+        type: tosca.capabilities.nfv.Forwarder
+    derived_from: tosca.nodes.Root
+    properties: 
+      request_reclassification: 
+        required: false
+        type: boolean
+      domain_type: 
+        required: false
+        type: string
+      nsh_aware: 
+        required: false
+        type: boolean
+      plugin_info: 
+        required: false
+        type: string
+      adjust_vnf_capacity: 
+        required: false
+        type: boolean
+      vnfd_version: 
+        required: false
+        type: string
+      vmnumber_overquota_alarm: 
+        required: false
+        type: boolean
+      custom_properties: 
+        entry_schema: 
+          type: string
+        required: false
+        type: map
+      version: 
+        required: false
+        type: string
+      cross_dc: 
+        required: false
+        type: boolean
+      script_info: 
+        required: false
+        type: string
+      vendor: 
+        required: false
+        type: string
+      is_shared: 
+        required: false
+        type: boolean
+      name: 
+        required: false
+        type: string
+      vnf_extend_type: 
+        required: false
+        type: string
+      id: 
+        required: false
+        type: string
+      vnf_type: 
+        required: false
+        type: string
+      is_sfc_proxy: 
+        required: false
+        type: boolean
+    requirements: 
+    - forwarder: 
+        capability: tosca.capabilities.nfv.Forwarder
+        occurrences: 
+        - 0
+        - UNBOUNDED
+    - virtualLink: 
+        capability: tosca.capabilities.nfv.VirtualLinkable
+        occurrences: 
+        - 0
+        - UNBOUNDED
+
+  tosca.nodes.nfv.ext.zte.CP: 
+    capabilities: 
+      forwarder: 
+        type: tosca.capabilities.nfv.Forwarder
+    derived_from: tosca.nodes.Root
+    properties: 
+      guest_os_mtu: 
+        required: false
+        type: integer
+      bandwidth: 
+        required: false
+        type: integer
+      interface_name: 
+        required: false
+        type: string
+      allowed_address_pairs: 
+        entry_schema: 
+          type: tosca.datatypes.nfv.ext.AddressPairs
+        required: false
+        type: list
+      ip_address: 
+        required: false
+        type: string
+      bond: 
+        required: false
+        type: string
+      proxiedVNFs: 
+        entry_schema: 
+          type: string
+        required: false
+        type: list
+      sfc_encapsulation: 
+        required: false
+        type: string
+      floating_ip_address: 
+        required: false
+        type: tosca.datatypes.nfv.ext.FloatingIP
+      service_ip_address: 
+        required: false
+        type: string
+      mac_address: 
+        required: false
+        type: string
+      proxiedVNFtype: 
+        required: false
+        type: string
+      macbond: 
+        required: false
+        type: string
+      vnic_type: 
+        required: false
+        type: string
+      direction: 
+        required: false
+        type: string
+      order: 
+        required: false
+        type: integer
+    requirements: 
+    - forwarder: 
+        capability: tosca.capabilities.nfv.Forwarder
+        occurrences: 
+        - 0
+        - UNBOUNDED
+    - virtualbinding: 
+        capability: tosca.capabilities.nfv.VirtualBindable
+        occurrences: 
+        - 0
+        - UNBOUNDED
+    - virtualLink: 
+        capability: tosca.capabilities.nfv.VirtualBindable
+        occurrences: 
+        - 0
+        - UNBOUNDED
+
+  tosca.nodes.nfv.ext.zte.VDU: 
+    capabilities: 
+      scalable: 
+        type: tosca.capabilities.Scalable
+      monitoring_parameter: 
+        type: tosca.capabilities.nfv.Metric
+      nfv_compute: 
+        type: tosca.capabilities.nfv.ext.Compute.Container.Architecture
+      virtualbinding: 
+        type: tosca.capabilities.nfv.VirtualBindable
+    derived_from: tosca.nodes.Root
+    properties: 
+      manual_scale_select_vim: 
+        required: false
+        type: boolean
+      vdu_type: 
+        required: false
+        type: string
+      watchdog: 
+        required: false
+        type: tosca.datatypes.nfv.ext.zte.WatchDog
+      name: 
+        required: false
+        type: string
+      local_affinity_antiaffinity_rule: 
+        required: false
+        type: tosca.datatypes.nfv.ext.LocalAffinityOrAntiAffinityRule
+      support_scaling: 
+        required: false
+        type: boolean
+      storage_policy: 
+        required: false
+        type: string
+      key_vdu: 
+        required: false
+        type: boolean
+      location_info: 
+        required: false
+        type: tosca.datatypes.nfv.ext.LocationInfo
+      inject_data_list: 
+        entry_schema: 
+          type: tosca.datatypes.nfv.ext.InjectData
+        required: false
+        type: list
+    requirements: 
+    - guest_os: 
+        capability: tosca.capabilities.nfv.ext.GuestOs
+        occurrences: 
+        - 0
+        - UNBOUNDED
+    - local_storage: 
+        capability: tosca.capabilities.nfv.ext.LocalAttachment
+        occurrences: 
+        - 0
+        - UNBOUNDED
+    - volume_storage: 
+        capability: tosca.capabilities.Attachment
+        occurrences: 
+        - 0
+        - UNBOUNDED
+    - dependency: 
+        capability: tosca.capabilities.Node
+        occurrences: 
+        - 0
+        - UNBOUNDED
+
+  tosca.nodes.nfv.ext.zte.VL: 
+    capabilities: 
+      virtual_linkable: 
+        type: tosca.capabilities.nfv.VirtualLinkable
+    derived_from: tosca.nodes.Root
+    properties: 
+      segmentation_id: 
+        required: false
+        type: string
+      network_name: 
+        required: false
+        type: string
+      is_predefined: 
+        required: false
+        type: boolean
+      mtu: 
+        required: false
+        type: integer
+      dns_nameservers: 
+        entry_schema: 
+          type: string
+        required: false
+        type: list
+      physical_network: 
+        required: false
+        type: string
+      dhcp_enabled: 
+        required: false
+        type: boolean
+      network_id: 
+        required: false
+        type: string
+      host_routes: 
+        entry_schema: 
+          type: tosca.datatypes.nfv.ext.HostRouteInfo
+        required: false
+        type: list
+      ip_version: 
+        required: false
+        type: integer
+      vendor: 
+        required: false
+        type: string
+      name: 
+        required: false
+        type: string
+      start_ip: 
+        required: false
+        type: string
+      vlan_transparent: 
+        required: false
+        type: boolean
+      cidr: 
+        required: false
+        type: string
+      gateway_ip: 
+        required: false
+        type: string
+      network_type: 
+        required: false
+        type: string
+      end_ip: 
+        required: false
+        type: string
+      location_info: 
+        required: false
+        type: tosca.datatypes.nfv.ext.LocationInfo
+
+  tosca.nodes.nfv.ext.zte.VNF.vCSCF: 
+    capabilities: 
+      forwarder: 
+        type: tosca.capabilities.nfv.Forwarder
+    derived_from: tosca.nodes.nfv.ext.zte.VNF
+    properties: 
+      request_reclassification: 
+        required: false
+        type: boolean
+      domain_type: 
+        default: CT
+        required: false
+        type: string
+      nsh_aware: 
+        required: false
+        type: boolean
+      plugin_info: 
+        required: false
+        type: string
+      vnfm_type: 
+        default: ztevmanagerdriver
+        required: false
+        type: string
+      adjust_vnf_capacity: 
+        required: false
+        type: boolean
+      vnfd_version: 
+        default: v1.0
+        required: false
+        type: string
+      vmnumber_overquota_alarm: 
+        required: false
+        type: boolean
+      csarVersion: 
+        default: v1.0
+        required: false
+        type: string
+      csarProvider: 
+        default: ZTE
+        required: false
+        type: string
+      custom_properties: 
+        entry_schema: 
+          type: string
+        required: false
+        type: map
+      version: 
+        default: v1.0
+        required: false
+        type: string
+      csarType: 
+        default: NFAR
+        required: false
+        type: string
+      cross_dc: 
+        required: false
+        type: boolean
+      script_info: 
+        required: false
+        type: string
+      vendor: 
+        default: ZTE
+        required: false
+        type: string
+      is_shared: 
+        required: false
+        type: boolean
+      name: 
+        default: vCSCF
+        required: false
+        type: string
+      vnf_extend_type: 
+        default: none
+        required: false
+        type: string
+      id: 
+        default: CSCF_NF_ZTE_v1.0
+        required: false
+        type: string
+      vnf_type: 
+        default: ztevmanagerdriver
+        required: false
+        type: string
+      is_sfc_proxy: 
+        required: false
+        type: boolean
+    requirements: 
+    - virtualLink: 
+        capability: tosca.capabilities.nfv.VirtualLinkable
+        occurrences: 
+        - 0
+        - UNBOUNDED
+    - forwarder: 
+        capability: tosca.capabilities.nfv.Forwarder
+        occurrences: 
+        - 0
+        - UNBOUNDED
+    - toVNFM: 
+        capability: tosca.capabilities.nfv.VirtualBindable
+        occurrences: 
+        - 0
+        - UNBOUNDED
+    - toMgmt: 
+        capability: tosca.capabilities.nfv.VirtualBindable
+        occurrences: 
+        - 0
+        - UNBOUNDED                        
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/diffFileNames/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/diffFileNames/in/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..eaf7fec
--- /dev/null
@@ -0,0 +1,95 @@
+tosca_definitions_version: tosca_simple_yaml_1_1
+imports:
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+#Next section moved from GlobalSubstitutionTypesServiceTemplate
+node_types: 
+  org.openecomp.resource.vfc.VNF.vMME:
+    derived_from: tosca.nodes.Root
+    description: MME_VFC
+    properties:
+      vendor:
+        type: string
+        default: ERICSSON
+      csarVersion:
+        type: string
+        default: v1.0
+      csarProvider:
+        type: string
+        default: ERICSSON
+      id:
+        type: string
+        default: vMME
+      version:
+        type: string
+        default: v1.0
+      csarType:
+        type: string
+        default: NFAR
+    requirements:
+    - virtualLink:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.network.Linkable
+metadata:
+  invariantUUID: b638d948-297a-434c-84c1-7cbc08456c4e
+  UUID: cd6b68ae-c2af-4af4-ada0-d066b02519a0
+  name: ZTE-EPC-MME-VF
+  description: mme vf
+  type: VF
+  category: Generic
+  subcategory: Network Elements
+  resourceVendor: zte
+  resourceVendorRelease: '1.0'
+  resourceVendorModelNumber: ''
+topology_template:
+  inputs:
+    nf_naming:
+      type: org.openecomp.datatypes.Naming
+      default:
+        ecomp_generated_naming: true
+    nf_naming_code:
+      type: string
+      default: xxxxxx
+    nf_function:
+      type: string
+      default: xxxxxx
+    availability_zone_max_count:
+      type: integer
+      default: 1
+    nf_role:
+      type: string
+      default: xxxxxx
+    max_instances:
+      type: integer
+      default: 0
+    min_instances:
+      type: integer
+      default: 0
+    nf_type:
+      type: string
+      default: xxxxxx
+  node_templates:
+    MME-EPC-ZTE:
+      type: org.openecomp.resource.vfc.VNF.vMME
+      metadata:
+        invariantUUID: 2e7e44d1-c6fd-4a9b-8026-130c91b49fe2
+        UUID: fa6c6a48-9916-4089-ade0-68ae2b1c2b6d
+        customizationUUID: 0862b18b-a728-4455-975d-e4debd2719a0
+        version: '0.1'
+        name: ZTE-EPC-MME
+        description: MME VFC
+        type: VFC
+        category: Generic
+        subcategory: Abstract
+        resourceVendor: zte
+        resourceVendorRelease: '1.0'
+        resourceVendorModelNumber: ''
+      properties:
+        vendor: ERICSSON
+        csarVersion: v1.0
+        csarProvider: ERICSSON
+        id: vMME
+        version: v1.0
+        csarType: NFAR
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/diffFileNames/in/TOSCA-Metadata/TOSCA.meta b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/diffFileNames/in/TOSCA-Metadata/TOSCA.meta
new file mode 100644 (file)
index 0000000..f7bb7b4
--- /dev/null
@@ -0,0 +1,4 @@
+TOSCA-Meta-File-Version: 1.0
+CSAR-Version: 1.1
+Created-By: Feng yuanxing
+Entry-Definitions: Definitions/MainServiceTemplate.yml
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/diffFileNames/out/expectedTree.json b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/diffFileNames/out/expectedTree.json
new file mode 100644 (file)
index 0000000..4be1e1d
--- /dev/null
@@ -0,0 +1,23 @@
+{
+  "nested": [
+    {
+      "fileName": "TOSCA-Metadata",
+      "nested": [
+        {
+          "fileName": "TOSCA.meta"
+        }
+      ]
+    },
+    {
+      "fileName": "MainServiceTemplate.yaml"
+    },
+    {
+      "fileName": "Definitions",
+      "nested": [
+        {
+          "fileName": "GlobalSubstitutionTypesServiceTemplate.yaml"
+        }
+      ]
+    }
+  ]
+}
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/similarDirectoryName/in/Artifacts/Deployment/OTHER/clearWaterIMSOTHERDEPLOYMENT.zip b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/similarDirectoryName/in/Artifacts/Deployment/OTHER/clearWaterIMSOTHERDEPLOYMENT.zip
new file mode 100644 (file)
index 0000000..df1ac6b
Binary files /dev/null and b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/similarDirectoryName/in/Artifacts/Deployment/OTHER/clearWaterIMSOTHERDEPLOYMENT.zip differ
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/similarDirectoryName/in/Artifacts/OTHER/clearWaterIMSOTHER.zip b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/similarDirectoryName/in/Artifacts/OTHER/clearWaterIMSOTHER.zip
new file mode 100644 (file)
index 0000000..df1ac6b
Binary files /dev/null and b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/similarDirectoryName/in/Artifacts/OTHER/clearWaterIMSOTHER.zip differ
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/similarDirectoryName/in/Definitions/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/similarDirectoryName/in/Definitions/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..0923257
--- /dev/null
@@ -0,0 +1,430 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+
+node_types:
+  tosca.nodes.nfv.ext.ImageFile: 
+    capabilities: 
+      guest_os: 
+        type: tosca.capabilities.nfv.ext.GuestOs
+      image_fle: 
+        type: tosca.capabilities.nfv.ext.ImageFile
+    derived_from: tosca.nodes.Root
+    properties: 
+      file_url: 
+        required: false
+        type: string
+      container_type: 
+        required: false
+        type: string
+      name: 
+        required: false
+        type: string
+      disk_format: 
+        required: false
+        type: string
+      version: 
+        required: false
+        type: string
+
+  tosca.nodes.nfv.ext.LocalStorage: 
+    capabilities: 
+      local_attachment: 
+        type: tosca.capabilities.nfv.ext.LocalAttachment
+    derived_from: tosca.nodes.Root
+    properties: 
+      size: 
+        required: false
+        type: string
+      disk_type: 
+        required: false
+        type: string
+
+  tosca.nodes.nfv.ext.zte.VNF: 
+    capabilities: 
+      forwarder: 
+        type: tosca.capabilities.nfv.Forwarder
+    derived_from: tosca.nodes.Root
+    properties: 
+      request_reclassification: 
+        required: false
+        type: boolean
+      domain_type: 
+        required: false
+        type: string
+      nsh_aware: 
+        required: false
+        type: boolean
+      plugin_info: 
+        required: false
+        type: string
+      adjust_vnf_capacity: 
+        required: false
+        type: boolean
+      vnfd_version: 
+        required: false
+        type: string
+      vmnumber_overquota_alarm: 
+        required: false
+        type: boolean
+      custom_properties: 
+        entry_schema: 
+          type: string
+        required: false
+        type: map
+      version: 
+        required: false
+        type: string
+      cross_dc: 
+        required: false
+        type: boolean
+      script_info: 
+        required: false
+        type: string
+      vendor: 
+        required: false
+        type: string
+      is_shared: 
+        required: false
+        type: boolean
+      name: 
+        required: false
+        type: string
+      vnf_extend_type: 
+        required: false
+        type: string
+      id: 
+        required: false
+        type: string
+      vnf_type: 
+        required: false
+        type: string
+      is_sfc_proxy: 
+        required: false
+        type: boolean
+    requirements: 
+    - forwarder: 
+        capability: tosca.capabilities.nfv.Forwarder
+        occurrences: 
+        - 0
+        - UNBOUNDED
+    - virtualLink: 
+        capability: tosca.capabilities.nfv.VirtualLinkable
+        occurrences: 
+        - 0
+        - UNBOUNDED
+
+  tosca.nodes.nfv.ext.zte.CP: 
+    capabilities: 
+      forwarder: 
+        type: tosca.capabilities.nfv.Forwarder
+    derived_from: tosca.nodes.Root
+    properties: 
+      guest_os_mtu: 
+        required: false
+        type: integer
+      bandwidth: 
+        required: false
+        type: integer
+      interface_name: 
+        required: false
+        type: string
+      allowed_address_pairs: 
+        entry_schema: 
+          type: tosca.datatypes.nfv.ext.AddressPairs
+        required: false
+        type: list
+      ip_address: 
+        required: false
+        type: string
+      bond: 
+        required: false
+        type: string
+      proxiedVNFs: 
+        entry_schema: 
+          type: string
+        required: false
+        type: list
+      sfc_encapsulation: 
+        required: false
+        type: string
+      floating_ip_address: 
+        required: false
+        type: tosca.datatypes.nfv.ext.FloatingIP
+      service_ip_address: 
+        required: false
+        type: string
+      mac_address: 
+        required: false
+        type: string
+      proxiedVNFtype: 
+        required: false
+        type: string
+      macbond: 
+        required: false
+        type: string
+      vnic_type: 
+        required: false
+        type: string
+      direction: 
+        required: false
+        type: string
+      order: 
+        required: false
+        type: integer
+    requirements: 
+    - forwarder: 
+        capability: tosca.capabilities.nfv.Forwarder
+        occurrences: 
+        - 0
+        - UNBOUNDED
+    - virtualbinding: 
+        capability: tosca.capabilities.nfv.VirtualBindable
+        occurrences: 
+        - 0
+        - UNBOUNDED
+    - virtualLink: 
+        capability: tosca.capabilities.nfv.VirtualBindable
+        occurrences: 
+        - 0
+        - UNBOUNDED
+
+  tosca.nodes.nfv.ext.zte.VDU: 
+    capabilities: 
+      scalable: 
+        type: tosca.capabilities.Scalable
+      monitoring_parameter: 
+        type: tosca.capabilities.nfv.Metric
+      nfv_compute: 
+        type: tosca.capabilities.nfv.ext.Compute.Container.Architecture
+      virtualbinding: 
+        type: tosca.capabilities.nfv.VirtualBindable
+    derived_from: tosca.nodes.Root
+    properties: 
+      manual_scale_select_vim: 
+        required: false
+        type: boolean
+      vdu_type: 
+        required: false
+        type: string
+      watchdog: 
+        required: false
+        type: tosca.datatypes.nfv.ext.zte.WatchDog
+      name: 
+        required: false
+        type: string
+      local_affinity_antiaffinity_rule: 
+        required: false
+        type: tosca.datatypes.nfv.ext.LocalAffinityOrAntiAffinityRule
+      support_scaling: 
+        required: false
+        type: boolean
+      storage_policy: 
+        required: false
+        type: string
+      key_vdu: 
+        required: false
+        type: boolean
+      location_info: 
+        required: false
+        type: tosca.datatypes.nfv.ext.LocationInfo
+      inject_data_list: 
+        entry_schema: 
+          type: tosca.datatypes.nfv.ext.InjectData
+        required: false
+        type: list
+    requirements: 
+    - guest_os: 
+        capability: tosca.capabilities.nfv.ext.GuestOs
+        occurrences: 
+        - 0
+        - UNBOUNDED
+    - local_storage: 
+        capability: tosca.capabilities.nfv.ext.LocalAttachment
+        occurrences: 
+        - 0
+        - UNBOUNDED
+    - volume_storage: 
+        capability: tosca.capabilities.Attachment
+        occurrences: 
+        - 0
+        - UNBOUNDED
+    - dependency: 
+        capability: tosca.capabilities.Node
+        occurrences: 
+        - 0
+        - UNBOUNDED
+
+  tosca.nodes.nfv.ext.zte.VL: 
+    capabilities: 
+      virtual_linkable: 
+        type: tosca.capabilities.nfv.VirtualLinkable
+    derived_from: tosca.nodes.Root
+    properties: 
+      segmentation_id: 
+        required: false
+        type: string
+      network_name: 
+        required: false
+        type: string
+      is_predefined: 
+        required: false
+        type: boolean
+      mtu: 
+        required: false
+        type: integer
+      dns_nameservers: 
+        entry_schema: 
+          type: string
+        required: false
+        type: list
+      physical_network: 
+        required: false
+        type: string
+      dhcp_enabled: 
+        required: false
+        type: boolean
+      network_id: 
+        required: false
+        type: string
+      host_routes: 
+        entry_schema: 
+          type: tosca.datatypes.nfv.ext.HostRouteInfo
+        required: false
+        type: list
+      ip_version: 
+        required: false
+        type: integer
+      vendor: 
+        required: false
+        type: string
+      name: 
+        required: false
+        type: string
+      start_ip: 
+        required: false
+        type: string
+      vlan_transparent: 
+        required: false
+        type: boolean
+      cidr: 
+        required: false
+        type: string
+      gateway_ip: 
+        required: false
+        type: string
+      network_type: 
+        required: false
+        type: string
+      end_ip: 
+        required: false
+        type: string
+      location_info: 
+        required: false
+        type: tosca.datatypes.nfv.ext.LocationInfo
+
+  tosca.nodes.nfv.ext.zte.VNF.vCSCF: 
+    capabilities: 
+      forwarder: 
+        type: tosca.capabilities.nfv.Forwarder
+    derived_from: tosca.nodes.nfv.ext.zte.VNF
+    properties: 
+      request_reclassification: 
+        required: false
+        type: boolean
+      domain_type: 
+        default: CT
+        required: false
+        type: string
+      nsh_aware: 
+        required: false
+        type: boolean
+      plugin_info: 
+        required: false
+        type: string
+      vnfm_type: 
+        default: ztevmanagerdriver
+        required: false
+        type: string
+      adjust_vnf_capacity: 
+        required: false
+        type: boolean
+      vnfd_version: 
+        default: v1.0
+        required: false
+        type: string
+      vmnumber_overquota_alarm: 
+        required: false
+        type: boolean
+      csarVersion: 
+        default: v1.0
+        required: false
+        type: string
+      csarProvider: 
+        default: ZTE
+        required: false
+        type: string
+      custom_properties: 
+        entry_schema: 
+          type: string
+        required: false
+        type: map
+      version: 
+        default: v1.0
+        required: false
+        type: string
+      csarType: 
+        default: NFAR
+        required: false
+        type: string
+      cross_dc: 
+        required: false
+        type: boolean
+      script_info: 
+        required: false
+        type: string
+      vendor: 
+        default: ZTE
+        required: false
+        type: string
+      is_shared: 
+        required: false
+        type: boolean
+      name: 
+        default: vCSCF
+        required: false
+        type: string
+      vnf_extend_type: 
+        default: none
+        required: false
+        type: string
+      id: 
+        default: CSCF_NF_ZTE_v1.0
+        required: false
+        type: string
+      vnf_type: 
+        default: ztevmanagerdriver
+        required: false
+        type: string
+      is_sfc_proxy: 
+        required: false
+        type: boolean
+    requirements: 
+    - virtualLink: 
+        capability: tosca.capabilities.nfv.VirtualLinkable
+        occurrences: 
+        - 0
+        - UNBOUNDED
+    - forwarder: 
+        capability: tosca.capabilities.nfv.Forwarder
+        occurrences: 
+        - 0
+        - UNBOUNDED
+    - toVNFM: 
+        capability: tosca.capabilities.nfv.VirtualBindable
+        occurrences: 
+        - 0
+        - UNBOUNDED
+    - toMgmt: 
+        capability: tosca.capabilities.nfv.VirtualBindable
+        occurrences: 
+        - 0
+        - UNBOUNDED                        
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/similarDirectoryName/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/similarDirectoryName/in/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..eaf7fec
--- /dev/null
@@ -0,0 +1,95 @@
+tosca_definitions_version: tosca_simple_yaml_1_1
+imports:
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+#Next section moved from GlobalSubstitutionTypesServiceTemplate
+node_types: 
+  org.openecomp.resource.vfc.VNF.vMME:
+    derived_from: tosca.nodes.Root
+    description: MME_VFC
+    properties:
+      vendor:
+        type: string
+        default: ERICSSON
+      csarVersion:
+        type: string
+        default: v1.0
+      csarProvider:
+        type: string
+        default: ERICSSON
+      id:
+        type: string
+        default: vMME
+      version:
+        type: string
+        default: v1.0
+      csarType:
+        type: string
+        default: NFAR
+    requirements:
+    - virtualLink:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.network.Linkable
+metadata:
+  invariantUUID: b638d948-297a-434c-84c1-7cbc08456c4e
+  UUID: cd6b68ae-c2af-4af4-ada0-d066b02519a0
+  name: ZTE-EPC-MME-VF
+  description: mme vf
+  type: VF
+  category: Generic
+  subcategory: Network Elements
+  resourceVendor: zte
+  resourceVendorRelease: '1.0'
+  resourceVendorModelNumber: ''
+topology_template:
+  inputs:
+    nf_naming:
+      type: org.openecomp.datatypes.Naming
+      default:
+        ecomp_generated_naming: true
+    nf_naming_code:
+      type: string
+      default: xxxxxx
+    nf_function:
+      type: string
+      default: xxxxxx
+    availability_zone_max_count:
+      type: integer
+      default: 1
+    nf_role:
+      type: string
+      default: xxxxxx
+    max_instances:
+      type: integer
+      default: 0
+    min_instances:
+      type: integer
+      default: 0
+    nf_type:
+      type: string
+      default: xxxxxx
+  node_templates:
+    MME-EPC-ZTE:
+      type: org.openecomp.resource.vfc.VNF.vMME
+      metadata:
+        invariantUUID: 2e7e44d1-c6fd-4a9b-8026-130c91b49fe2
+        UUID: fa6c6a48-9916-4089-ade0-68ae2b1c2b6d
+        customizationUUID: 0862b18b-a728-4455-975d-e4debd2719a0
+        version: '0.1'
+        name: ZTE-EPC-MME
+        description: MME VFC
+        type: VFC
+        category: Generic
+        subcategory: Abstract
+        resourceVendor: zte
+        resourceVendorRelease: '1.0'
+        resourceVendorModelNumber: ''
+      properties:
+        vendor: ERICSSON
+        csarVersion: v1.0
+        csarProvider: ERICSSON
+        id: vMME
+        version: v1.0
+        csarType: NFAR
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/similarDirectoryName/in/TOSCA-Metadata/TOSCA.meta b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/similarDirectoryName/in/TOSCA-Metadata/TOSCA.meta
new file mode 100644 (file)
index 0000000..f7bb7b4
--- /dev/null
@@ -0,0 +1,4 @@
+TOSCA-Meta-File-Version: 1.0
+CSAR-Version: 1.1
+Created-By: Feng yuanxing
+Entry-Definitions: Definitions/MainServiceTemplate.yml
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/similarDirectoryName/out/expectedTree.json b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/similarDirectoryName/out/expectedTree.json
new file mode 100644 (file)
index 0000000..071887b
--- /dev/null
@@ -0,0 +1,49 @@
+{
+  "nested": [
+    {
+      "fileName": "TOSCA-Metadata",
+      "nested": [
+        {
+          "fileName": "TOSCA.meta"
+        }
+      ]
+    },
+    {
+      "fileName": "MainServiceTemplate.yaml"
+    },
+    {
+      "fileName": "Definitions",
+      "nested": [
+        {
+          "fileName": "GlobalSubstitutionTypesServiceTemplate.yaml"
+        }
+      ]
+    },
+    {
+      "fileName": "Artifacts",
+      "nested": [
+        {
+          "fileName": "OTHER",
+          "nested": [
+            {
+              "fileName": "clearWaterIMSOTHER.zip"
+            }
+          ]
+        },
+        {
+          "fileName": "Deployment",
+          "nested": [
+            {
+              "fileName": "OTHER",
+              "nested": [
+                {
+                  "fileName": "clearWaterIMSOTHERDEPLOYMENT.zip"
+                }
+              ]
+            }
+          ]
+        }
+      ]
+    }
+  ]
+}
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/twoFilesUnderSameDirectory/in/Artifacts/OTHER/clearWaterIMSOTHER.zip b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/twoFilesUnderSameDirectory/in/Artifacts/OTHER/clearWaterIMSOTHER.zip
new file mode 100644 (file)
index 0000000..df1ac6b
Binary files /dev/null and b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/twoFilesUnderSameDirectory/in/Artifacts/OTHER/clearWaterIMSOTHER.zip differ
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/twoFilesUnderSameDirectory/in/Artifacts/OTHER/clearWaterIMSOTHERDEPLOYMENT.zip b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/twoFilesUnderSameDirectory/in/Artifacts/OTHER/clearWaterIMSOTHERDEPLOYMENT.zip
new file mode 100644 (file)
index 0000000..df1ac6b
Binary files /dev/null and b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/twoFilesUnderSameDirectory/in/Artifacts/OTHER/clearWaterIMSOTHERDEPLOYMENT.zip differ
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/twoFilesUnderSameDirectory/in/Definitions/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/twoFilesUnderSameDirectory/in/Definitions/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..0923257
--- /dev/null
@@ -0,0 +1,430 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+
+node_types:
+  tosca.nodes.nfv.ext.ImageFile: 
+    capabilities: 
+      guest_os: 
+        type: tosca.capabilities.nfv.ext.GuestOs
+      image_fle: 
+        type: tosca.capabilities.nfv.ext.ImageFile
+    derived_from: tosca.nodes.Root
+    properties: 
+      file_url: 
+        required: false
+        type: string
+      container_type: 
+        required: false
+        type: string
+      name: 
+        required: false
+        type: string
+      disk_format: 
+        required: false
+        type: string
+      version: 
+        required: false
+        type: string
+
+  tosca.nodes.nfv.ext.LocalStorage: 
+    capabilities: 
+      local_attachment: 
+        type: tosca.capabilities.nfv.ext.LocalAttachment
+    derived_from: tosca.nodes.Root
+    properties: 
+      size: 
+        required: false
+        type: string
+      disk_type: 
+        required: false
+        type: string
+
+  tosca.nodes.nfv.ext.zte.VNF: 
+    capabilities: 
+      forwarder: 
+        type: tosca.capabilities.nfv.Forwarder
+    derived_from: tosca.nodes.Root
+    properties: 
+      request_reclassification: 
+        required: false
+        type: boolean
+      domain_type: 
+        required: false
+        type: string
+      nsh_aware: 
+        required: false
+        type: boolean
+      plugin_info: 
+        required: false
+        type: string
+      adjust_vnf_capacity: 
+        required: false
+        type: boolean
+      vnfd_version: 
+        required: false
+        type: string
+      vmnumber_overquota_alarm: 
+        required: false
+        type: boolean
+      custom_properties: 
+        entry_schema: 
+          type: string
+        required: false
+        type: map
+      version: 
+        required: false
+        type: string
+      cross_dc: 
+        required: false
+        type: boolean
+      script_info: 
+        required: false
+        type: string
+      vendor: 
+        required: false
+        type: string
+      is_shared: 
+        required: false
+        type: boolean
+      name: 
+        required: false
+        type: string
+      vnf_extend_type: 
+        required: false
+        type: string
+      id: 
+        required: false
+        type: string
+      vnf_type: 
+        required: false
+        type: string
+      is_sfc_proxy: 
+        required: false
+        type: boolean
+    requirements: 
+    - forwarder: 
+        capability: tosca.capabilities.nfv.Forwarder
+        occurrences: 
+        - 0
+        - UNBOUNDED
+    - virtualLink: 
+        capability: tosca.capabilities.nfv.VirtualLinkable
+        occurrences: 
+        - 0
+        - UNBOUNDED
+
+  tosca.nodes.nfv.ext.zte.CP: 
+    capabilities: 
+      forwarder: 
+        type: tosca.capabilities.nfv.Forwarder
+    derived_from: tosca.nodes.Root
+    properties: 
+      guest_os_mtu: 
+        required: false
+        type: integer
+      bandwidth: 
+        required: false
+        type: integer
+      interface_name: 
+        required: false
+        type: string
+      allowed_address_pairs: 
+        entry_schema: 
+          type: tosca.datatypes.nfv.ext.AddressPairs
+        required: false
+        type: list
+      ip_address: 
+        required: false
+        type: string
+      bond: 
+        required: false
+        type: string
+      proxiedVNFs: 
+        entry_schema: 
+          type: string
+        required: false
+        type: list
+      sfc_encapsulation: 
+        required: false
+        type: string
+      floating_ip_address: 
+        required: false
+        type: tosca.datatypes.nfv.ext.FloatingIP
+      service_ip_address: 
+        required: false
+        type: string
+      mac_address: 
+        required: false
+        type: string
+      proxiedVNFtype: 
+        required: false
+        type: string
+      macbond: 
+        required: false
+        type: string
+      vnic_type: 
+        required: false
+        type: string
+      direction: 
+        required: false
+        type: string
+      order: 
+        required: false
+        type: integer
+    requirements: 
+    - forwarder: 
+        capability: tosca.capabilities.nfv.Forwarder
+        occurrences: 
+        - 0
+        - UNBOUNDED
+    - virtualbinding: 
+        capability: tosca.capabilities.nfv.VirtualBindable
+        occurrences: 
+        - 0
+        - UNBOUNDED
+    - virtualLink: 
+        capability: tosca.capabilities.nfv.VirtualBindable
+        occurrences: 
+        - 0
+        - UNBOUNDED
+
+  tosca.nodes.nfv.ext.zte.VDU: 
+    capabilities: 
+      scalable: 
+        type: tosca.capabilities.Scalable
+      monitoring_parameter: 
+        type: tosca.capabilities.nfv.Metric
+      nfv_compute: 
+        type: tosca.capabilities.nfv.ext.Compute.Container.Architecture
+      virtualbinding: 
+        type: tosca.capabilities.nfv.VirtualBindable
+    derived_from: tosca.nodes.Root
+    properties: 
+      manual_scale_select_vim: 
+        required: false
+        type: boolean
+      vdu_type: 
+        required: false
+        type: string
+      watchdog: 
+        required: false
+        type: tosca.datatypes.nfv.ext.zte.WatchDog
+      name: 
+        required: false
+        type: string
+      local_affinity_antiaffinity_rule: 
+        required: false
+        type: tosca.datatypes.nfv.ext.LocalAffinityOrAntiAffinityRule
+      support_scaling: 
+        required: false
+        type: boolean
+      storage_policy: 
+        required: false
+        type: string
+      key_vdu: 
+        required: false
+        type: boolean
+      location_info: 
+        required: false
+        type: tosca.datatypes.nfv.ext.LocationInfo
+      inject_data_list: 
+        entry_schema: 
+          type: tosca.datatypes.nfv.ext.InjectData
+        required: false
+        type: list
+    requirements: 
+    - guest_os: 
+        capability: tosca.capabilities.nfv.ext.GuestOs
+        occurrences: 
+        - 0
+        - UNBOUNDED
+    - local_storage: 
+        capability: tosca.capabilities.nfv.ext.LocalAttachment
+        occurrences: 
+        - 0
+        - UNBOUNDED
+    - volume_storage: 
+        capability: tosca.capabilities.Attachment
+        occurrences: 
+        - 0
+        - UNBOUNDED
+    - dependency: 
+        capability: tosca.capabilities.Node
+        occurrences: 
+        - 0
+        - UNBOUNDED
+
+  tosca.nodes.nfv.ext.zte.VL: 
+    capabilities: 
+      virtual_linkable: 
+        type: tosca.capabilities.nfv.VirtualLinkable
+    derived_from: tosca.nodes.Root
+    properties: 
+      segmentation_id: 
+        required: false
+        type: string
+      network_name: 
+        required: false
+        type: string
+      is_predefined: 
+        required: false
+        type: boolean
+      mtu: 
+        required: false
+        type: integer
+      dns_nameservers: 
+        entry_schema: 
+          type: string
+        required: false
+        type: list
+      physical_network: 
+        required: false
+        type: string
+      dhcp_enabled: 
+        required: false
+        type: boolean
+      network_id: 
+        required: false
+        type: string
+      host_routes: 
+        entry_schema: 
+          type: tosca.datatypes.nfv.ext.HostRouteInfo
+        required: false
+        type: list
+      ip_version: 
+        required: false
+        type: integer
+      vendor: 
+        required: false
+        type: string
+      name: 
+        required: false
+        type: string
+      start_ip: 
+        required: false
+        type: string
+      vlan_transparent: 
+        required: false
+        type: boolean
+      cidr: 
+        required: false
+        type: string
+      gateway_ip: 
+        required: false
+        type: string
+      network_type: 
+        required: false
+        type: string
+      end_ip: 
+        required: false
+        type: string
+      location_info: 
+        required: false
+        type: tosca.datatypes.nfv.ext.LocationInfo
+
+  tosca.nodes.nfv.ext.zte.VNF.vCSCF: 
+    capabilities: 
+      forwarder: 
+        type: tosca.capabilities.nfv.Forwarder
+    derived_from: tosca.nodes.nfv.ext.zte.VNF
+    properties: 
+      request_reclassification: 
+        required: false
+        type: boolean
+      domain_type: 
+        default: CT
+        required: false
+        type: string
+      nsh_aware: 
+        required: false
+        type: boolean
+      plugin_info: 
+        required: false
+        type: string
+      vnfm_type: 
+        default: ztevmanagerdriver
+        required: false
+        type: string
+      adjust_vnf_capacity: 
+        required: false
+        type: boolean
+      vnfd_version: 
+        default: v1.0
+        required: false
+        type: string
+      vmnumber_overquota_alarm: 
+        required: false
+        type: boolean
+      csarVersion: 
+        default: v1.0
+        required: false
+        type: string
+      csarProvider: 
+        default: ZTE
+        required: false
+        type: string
+      custom_properties: 
+        entry_schema: 
+          type: string
+        required: false
+        type: map
+      version: 
+        default: v1.0
+        required: false
+        type: string
+      csarType: 
+        default: NFAR
+        required: false
+        type: string
+      cross_dc: 
+        required: false
+        type: boolean
+      script_info: 
+        required: false
+        type: string
+      vendor: 
+        default: ZTE
+        required: false
+        type: string
+      is_shared: 
+        required: false
+        type: boolean
+      name: 
+        default: vCSCF
+        required: false
+        type: string
+      vnf_extend_type: 
+        default: none
+        required: false
+        type: string
+      id: 
+        default: CSCF_NF_ZTE_v1.0
+        required: false
+        type: string
+      vnf_type: 
+        default: ztevmanagerdriver
+        required: false
+        type: string
+      is_sfc_proxy: 
+        required: false
+        type: boolean
+    requirements: 
+    - virtualLink: 
+        capability: tosca.capabilities.nfv.VirtualLinkable
+        occurrences: 
+        - 0
+        - UNBOUNDED
+    - forwarder: 
+        capability: tosca.capabilities.nfv.Forwarder
+        occurrences: 
+        - 0
+        - UNBOUNDED
+    - toVNFM: 
+        capability: tosca.capabilities.nfv.VirtualBindable
+        occurrences: 
+        - 0
+        - UNBOUNDED
+    - toMgmt: 
+        capability: tosca.capabilities.nfv.VirtualBindable
+        occurrences: 
+        - 0
+        - UNBOUNDED                        
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/twoFilesUnderSameDirectory/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/twoFilesUnderSameDirectory/in/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..eaf7fec
--- /dev/null
@@ -0,0 +1,95 @@
+tosca_definitions_version: tosca_simple_yaml_1_1
+imports:
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+#Next section moved from GlobalSubstitutionTypesServiceTemplate
+node_types: 
+  org.openecomp.resource.vfc.VNF.vMME:
+    derived_from: tosca.nodes.Root
+    description: MME_VFC
+    properties:
+      vendor:
+        type: string
+        default: ERICSSON
+      csarVersion:
+        type: string
+        default: v1.0
+      csarProvider:
+        type: string
+        default: ERICSSON
+      id:
+        type: string
+        default: vMME
+      version:
+        type: string
+        default: v1.0
+      csarType:
+        type: string
+        default: NFAR
+    requirements:
+    - virtualLink:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.network.Linkable
+metadata:
+  invariantUUID: b638d948-297a-434c-84c1-7cbc08456c4e
+  UUID: cd6b68ae-c2af-4af4-ada0-d066b02519a0
+  name: ZTE-EPC-MME-VF
+  description: mme vf
+  type: VF
+  category: Generic
+  subcategory: Network Elements
+  resourceVendor: zte
+  resourceVendorRelease: '1.0'
+  resourceVendorModelNumber: ''
+topology_template:
+  inputs:
+    nf_naming:
+      type: org.openecomp.datatypes.Naming
+      default:
+        ecomp_generated_naming: true
+    nf_naming_code:
+      type: string
+      default: xxxxxx
+    nf_function:
+      type: string
+      default: xxxxxx
+    availability_zone_max_count:
+      type: integer
+      default: 1
+    nf_role:
+      type: string
+      default: xxxxxx
+    max_instances:
+      type: integer
+      default: 0
+    min_instances:
+      type: integer
+      default: 0
+    nf_type:
+      type: string
+      default: xxxxxx
+  node_templates:
+    MME-EPC-ZTE:
+      type: org.openecomp.resource.vfc.VNF.vMME
+      metadata:
+        invariantUUID: 2e7e44d1-c6fd-4a9b-8026-130c91b49fe2
+        UUID: fa6c6a48-9916-4089-ade0-68ae2b1c2b6d
+        customizationUUID: 0862b18b-a728-4455-975d-e4debd2719a0
+        version: '0.1'
+        name: ZTE-EPC-MME
+        description: MME VFC
+        type: VFC
+        category: Generic
+        subcategory: Abstract
+        resourceVendor: zte
+        resourceVendorRelease: '1.0'
+        resourceVendorModelNumber: ''
+      properties:
+        vendor: ERICSSON
+        csarVersion: v1.0
+        csarProvider: ERICSSON
+        id: vMME
+        version: v1.0
+        csarType: NFAR
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/twoFilesUnderSameDirectory/in/TOSCA-Metadata/TOSCA.meta b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/twoFilesUnderSameDirectory/in/TOSCA-Metadata/TOSCA.meta
new file mode 100644 (file)
index 0000000..f7bb7b4
--- /dev/null
@@ -0,0 +1,4 @@
+TOSCA-Meta-File-Version: 1.0
+CSAR-Version: 1.1
+Created-By: Feng yuanxing
+Entry-Definitions: Definitions/MainServiceTemplate.yml
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/twoFilesUnderSameDirectory/out/expectedTree.json b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/twoFilesUnderSameDirectory/out/expectedTree.json
new file mode 100644 (file)
index 0000000..59fec70
--- /dev/null
@@ -0,0 +1,39 @@
+{
+  "nested": [
+    {
+      "fileName": "TOSCA-Metadata",
+      "nested": [
+        {
+          "fileName": "TOSCA.meta"
+        }
+      ]
+    },
+    {
+      "fileName": "MainServiceTemplate.yaml"
+    },
+    {
+      "fileName": "Definitions",
+      "nested": [
+        {
+          "fileName": "GlobalSubstitutionTypesServiceTemplate.yaml"
+        }
+      ]
+    },
+    {
+      "fileName": "Artifacts",
+      "nested": [
+        {
+          "fileName": "OTHER",
+          "nested": [
+            {
+              "fileName": "clearWaterIMSOTHERDEPLOYMENT.zip"
+            },
+            {
+              "fileName": "clearWaterIMSOTHER.zip"
+            }
+          ]
+        }
+      ]
+    }
+  ]
+}
\ No newline at end of file