Adding BDD cucumber testing component

Change-Id: I4fd7eb798cbc7cad85562453fb0a6f74fd12ff5b
Issue-ID: SDC-990
Signed-off-by: ilanap <ilanap@amdocs.com>
diff --git a/openecomp-bdd/resources/downloads/.gitignore b/openecomp-bdd/resources/downloads/.gitignore
new file mode 100644
index 0000000..dee5695
--- /dev/null
+++ b/openecomp-bdd/resources/downloads/.gitignore
@@ -0,0 +1 @@
+*.*
\ No newline at end of file
diff --git a/openecomp-bdd/resources/downloads/VSPPackage.zip b/openecomp-bdd/resources/downloads/VSPPackage.zip
new file mode 100644
index 0000000..633cb73
--- /dev/null
+++ b/openecomp-bdd/resources/downloads/VSPPackage.zip
Binary files differ
diff --git a/openecomp-bdd/resources/downloads/base_mux.zip b/openecomp-bdd/resources/downloads/base_mux.zip
new file mode 100644
index 0000000..1cc7ea4
--- /dev/null
+++ b/openecomp-bdd/resources/downloads/base_mux.zip
Binary files differ
diff --git a/openecomp-bdd/resources/json/createVF.json b/openecomp-bdd/resources/json/createVF.json
new file mode 100644
index 0000000..2ddd0f5
--- /dev/null
+++ b/openecomp-bdd/resources/json/createVF.json
@@ -0,0 +1,50 @@
+{
+  "artifacts": {},
+  "toscaArtifacts": {},
+  "contactId": "REPLACE USER_ID",
+  "categories": [
+    {
+      "name": "Generic",
+      "normalizedName": "generic",
+      "uniqueId": "REPLACE CATEGORY VSP",
+      "icons": null,
+      "subcategories": [
+        {
+          "name": "Abstract",
+          "normalizedName": "abstract",
+          "uniqueId": "REPLACE SUBCATEGORY VSP",
+          "icons": [
+            "objectStorage",
+            "compute"
+          ],
+          "groupings": null,
+          "ownerId": null,
+          "empty": false
+        }
+      ],
+      "ownerId": null,
+      "empty": false
+    }
+  ],
+  "description": "REPLACE VSP DESCRIPTION",
+  "icon": "defaulticon",
+  "componentInstancesProperties": {},
+  "componentInstancesAttributes": {},
+  "name": "REPLACE VSP NAME",
+  "tags": [
+    "REPLACE VSP NAME"
+  ],
+  "capabilities": {},
+  "requirements": {},
+  "deploymentArtifacts": {},
+  "componentType": "RESOURCE",
+  "vendorName": "REPLACE VLM NAME",
+  "vendorRelease": "1.0",
+  "componentInstances": [],
+  "properties": [],
+  "attributes": [],
+  "groups": [],
+  "resourceType": "VF",
+  "csarUUID": "REPLACE VSP ID",
+  "csarVersion": "1.0"
+}
\ No newline at end of file
diff --git a/openecomp-bdd/resources/json/createVLM.json b/openecomp-bdd/resources/json/createVLM.json
new file mode 100644
index 0000000..9431c07
--- /dev/null
+++ b/openecomp-bdd/resources/json/createVLM.json
@@ -0,0 +1 @@
+{"vendorName":"RANDOM","description":"VLM Description","iconRef":"icon"}
diff --git a/openecomp-bdd/resources/json/createVSP.json b/openecomp-bdd/resources/json/createVSP.json
new file mode 100644
index 0000000..6f63261
--- /dev/null
+++ b/openecomp-bdd/resources/json/createVSP.json
@@ -0,0 +1,11 @@
+{
+        "vendorId":"REPLACE",
+        "name": "RANDOM",
+        "category":"resourceNewCategory.generic",
+        "subCategory":"resourceNewCategory.generic.abstract",
+        "onboardingMethod":"REPLACE",
+        "description":"for testing",
+        "vendorName":"REPLACE",
+        "icon":"icon",
+        "licensingData":{}
+}
diff --git a/openecomp-bdd/resources/uploads/BASE_MUX.zip b/openecomp-bdd/resources/uploads/BASE_MUX.zip
new file mode 100644
index 0000000..4e7fbcf
--- /dev/null
+++ b/openecomp-bdd/resources/uploads/BASE_MUX.zip
Binary files differ
diff --git a/openecomp-bdd/resources/uploads/NEW_NC_with_manifest.zip b/openecomp-bdd/resources/uploads/NEW_NC_with_manifest.zip
new file mode 100644
index 0000000..403cb7b
--- /dev/null
+++ b/openecomp-bdd/resources/uploads/NEW_NC_with_manifest.zip
Binary files differ
diff --git a/openecomp-bdd/resources/uploads/errorHeat.zip b/openecomp-bdd/resources/uploads/errorHeat.zip
new file mode 100644
index 0000000..21444fa
--- /dev/null
+++ b/openecomp-bdd/resources/uploads/errorHeat.zip
Binary files differ
diff --git a/openecomp-bdd/resources/uploads/zipWithExternalPort.zip b/openecomp-bdd/resources/uploads/zipWithExternalPort.zip
new file mode 100644
index 0000000..3d6b3d0
--- /dev/null
+++ b/openecomp-bdd/resources/uploads/zipWithExternalPort.zip
Binary files differ
diff --git a/openecomp-bdd/resources/yaml/CB_BASE.yaml b/openecomp-bdd/resources/yaml/CB_BASE.yaml
new file mode 100644
index 0000000..4aef40b
--- /dev/null
+++ b/openecomp-bdd/resources/yaml/CB_BASE.yaml
@@ -0,0 +1,91 @@
+heat_template_version: 2013-05-23
+
+description: >
+ BASE TEMPLATE
+
+parameters:
+    vnf_name:
+        type: string
+        description: Unique name for this VF instance
+        
+    vnf_id:
+        type: string
+        description: Unique ID for this VF instance        
+      
+    network_in_cidr:
+      type: string
+      description: IN network address (CIDR notation)
+      
+    network_out_cidr:
+      type: string
+      description: MUX out network address (CIDR notation)
+
+    network_in_gw_ip:
+      type: string
+      description: IN network gw address 
+
+    network_out_gw_ip:
+      type: string
+      description: MUX out network gw address 
+    
+resources:
+ 
+    random-str:
+      type: OS::Heat::RandomString
+      properties:
+        length: 4
+        
+    CB_IN_Net:
+        type: OS::Neutron::Net
+        properties:
+            name: 
+              str_replace:
+                template: CB_IN_Net_rand
+                params:
+                  rand: { get_resource: random-str }
+
+    CB_IN_Subnet:
+      type: OS::Neutron::Subnet
+      properties:
+        name:
+          str_replace:
+            template: CB_IN_Net_rand
+            params:
+              rand: { get_resource: random-str }
+        network_id: { get_resource: CB_IN_Net }
+        cidr: { get_param: network_in_cidr }
+        gateway_ip: { get_param: network_in_gw_ip }
+      
+    CB_OUT_Net:
+        type: OS::Neutron::Net
+        properties:
+            name: 
+              str_replace:
+                template: CB_OUT_Net_rand
+                params:
+                  rand: { get_resource: random-str }
+
+    CB_OUT_Subnet:
+        type: OS::Neutron::Subnet
+        properties:
+            network_id: { get_resource: CB_OUT_Net }
+            cidr: { get_param: network_out_cidr }
+            gateway_ip: { get_param: network_out_gw_ip }
+            
+outputs:
+
+    CB_IN_Net:
+      description: ID of the customer facing network
+      value: { get_resource: CB_IN_Net }
+      
+    CB_IN_Subnet:
+      description: ID of the customer facing subnet
+      value: { get_resource: CB_IN_Subnet }
+      
+    CB_OUT_Net:
+      description: ID of the Internet Facing network
+      value: { get_resource: CB_OUT_Net }
+      
+    CB_OUT_Subnet:
+      description: ID of the Internet Facing subnet
+      value: { get_resource: CB_OUT_Subnet }
diff --git a/openecomp-bdd/resources/yaml/Nested_FSB1ServiceTemplate.yaml b/openecomp-bdd/resources/yaml/Nested_FSB1ServiceTemplate.yaml
new file mode 100644
index 0000000..b41b5ea
--- /dev/null
+++ b/openecomp-bdd/resources/yaml/Nested_FSB1ServiceTemplate.yaml
@@ -0,0 +1,306 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_FSB1
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+- openecomp_index:
+    file: openecomp/_index.yml
+node_types:
+  org.openecomp.resource.vfc.compute.nodes.heat.FSB1:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    port_FSB1_OAM_subnetpoolid:
+      type: string
+      required: true
+    compute_FSB1_availability_zone:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    index_value:
+      type: integer
+      description: Index value of this substitution service template runtime instance
+      required: false
+      default: 0
+      constraints:
+      - greater_or_equal: 0
+    port_FSB1_OAM_order:
+      type: integer
+      required: true
+    port_FSB1_OAM_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_FSB1_OAM_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    vm_flavor_name:
+      type: string
+      required: true
+    port_FSB1_OAM_network:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_FSB1_OAM_network_role:
+      type: string
+      required: true
+    port_FSB1_OAM_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_FSB1_OAM_network_role_tag:
+      type: string
+      required: true
+    compute_FSB1_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_FSB1_OAM_fixed_ips:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+    port_FSB1_OAM_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+  node_templates:
+    FSB1_FSB1_OAM:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        ip_requirements:
+          get_input: port_FSB1_OAM_ip_requirements
+        network_role:
+          get_input: port_FSB1_OAM_network_role
+        fixed_ips:
+          get_input:
+          - port_FSB1_OAM_fixed_ips
+          - index_value
+        subnetpoolid:
+          get_input: port_FSB1_OAM_subnetpoolid
+        mac_requirements:
+          get_input: port_FSB1_OAM_mac_requirements
+        exCP_naming:
+          get_input: port_FSB1_OAM_exCP_naming
+        vlan_requirements:
+          get_input: port_FSB1_OAM_vlan_requirements
+        network_role_tag:
+          get_input: port_FSB1_OAM_network_role_tag
+        order:
+          get_input: port_FSB1_OAM_order
+        network:
+          get_input:
+          - port_FSB1_OAM_network
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: FSB1
+          relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: FSB1
+              network_role:
+                get_input: port_FSB1_OAM_network_role
+              pps_capacity: ''
+    FSB1:
+      type: org.openecomp.resource.vfc.compute.nodes.heat.FSB1
+      properties:
+        availability_zone:
+          get_input:
+          - compute_FSB1_availability_zone
+          - index_value
+        flavor:
+          get_input: vm_flavor_name
+        name:
+          get_input:
+          - compute_FSB1_name
+          - index_value
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.FSB1
+    capabilities:
+      network.incoming.bytes.rate_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - network.incoming.bytes.rate
+      network.outgoing.bytes_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - network.outgoing.bytes
+      disk.capacity_FSB1:
+      - FSB1
+      - disk.capacity
+      disk.read.bytes.rate_FSB1:
+      - FSB1
+      - disk.read.bytes.rate
+      disk.device.latency_FSB1:
+      - FSB1
+      - disk.device.latency
+      disk.allocation_FSB1:
+      - FSB1
+      - disk.allocation
+      disk.read.bytes_FSB1:
+      - FSB1
+      - disk.read.bytes
+      disk.device.capacity_FSB1:
+      - FSB1
+      - disk.device.capacity
+      cpu_util_FSB1:
+      - FSB1
+      - cpu_util
+      disk.device.write.requests.rate_FSB1:
+      - FSB1
+      - disk.device.write.requests.rate
+      network.outgoing.bytes.rate_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - network.outgoing.bytes.rate
+      disk.root.size_FSB1:
+      - FSB1
+      - disk.root.size
+      feature_FSB1:
+      - FSB1
+      - feature
+      forwarder_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - forwarder
+      memory.resident_FSB1:
+      - FSB1
+      - memory.resident
+      network.incoming.packets.rate_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - network.incoming.packets.rate
+      cpu_FSB1:
+      - FSB1
+      - cpu
+      disk.write.requests.rate_FSB1:
+      - FSB1
+      - disk.write.requests.rate
+      feature_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - feature
+      instance_FSB1:
+      - FSB1
+      - instance
+      disk.device.read.bytes.rate_FSB1:
+      - FSB1
+      - disk.device.read.bytes.rate
+      cpu.delta_FSB1:
+      - FSB1
+      - cpu.delta
+      disk.write.bytes_FSB1:
+      - FSB1
+      - disk.write.bytes
+      disk.device.read.requests.rate_FSB1:
+      - FSB1
+      - disk.device.read.requests.rate
+      disk.device.read.requests_FSB1:
+      - FSB1
+      - disk.device.read.requests
+      disk.ephemeral.size_FSB1:
+      - FSB1
+      - disk.ephemeral.size
+      binding_FSB1:
+      - FSB1
+      - binding
+      disk.device.write.bytes_FSB1:
+      - FSB1
+      - disk.device.write.bytes
+      network.outgoing.packets.rate_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - network.outgoing.packets.rate
+      binding_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - binding
+      attachment_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - attachment
+      network.incoming.bytes_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - network.incoming.bytes
+      memory_FSB1:
+      - FSB1
+      - memory
+      network.incoming.packets_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - network.incoming.packets
+      disk.device.read.bytes_FSB1:
+      - FSB1
+      - disk.device.read.bytes
+      disk.device.usage_FSB1:
+      - FSB1
+      - disk.device.usage
+      disk.write.bytes.rate_FSB1:
+      - FSB1
+      - disk.write.bytes.rate
+      scalable_FSB1:
+      - FSB1
+      - scalable
+      disk.usage_FSB1:
+      - FSB1
+      - disk.usage
+      network.outpoing.packets_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - network.outpoing.packets
+      host_FSB1:
+      - FSB1
+      - host
+      disk.device.allocation_FSB1:
+      - FSB1
+      - disk.device.allocation
+      os_FSB1:
+      - FSB1
+      - os
+      vcpus_FSB1:
+      - FSB1
+      - vcpus
+      disk.write.requests_FSB1:
+      - FSB1
+      - disk.write.requests
+      disk.device.write.bytes.rate_FSB1:
+      - FSB1
+      - disk.device.write.bytes.rate
+      endpoint_FSB1:
+      - FSB1
+      - endpoint
+      disk.latency_FSB1:
+      - FSB1
+      - disk.latency
+      memory.usage_FSB1:
+      - FSB1
+      - memory.usage
+      disk.read.requests_FSB1:
+      - FSB1
+      - disk.read.requests
+      disk.device.write.requests_FSB1:
+      - FSB1
+      - disk.device.write.requests
+      disk.iops_FSB1:
+      - FSB1
+      - disk.iops
+      disk.device.iops_FSB1:
+      - FSB1
+      - disk.device.iops
+      port_mirroring_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - port_mirroring
+    requirements:
+      link_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - link
+      dependency_FSB1_FSB1_OAM:
+      - FSB1_FSB1_OAM
+      - dependency
+      dependency_FSB1:
+      - FSB1
+      - dependency
+      local_storage_FSB1:
+      - FSB1
+      - local_storage