summaryrefslogtreecommitdiffstats
path: root/catalog-be/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-be/src/main')
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/AttributeBusinessLogic.java8
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/PropertyBusinessLogic.java8
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java78
-rw-r--r--catalog-be/src/main/resources/import/tosca/heat-types/genericNeutronNet/genericNeutronNet.json21
-rw-r--r--catalog-be/src/main/resources/import/tosca/heat-types/genericNeutronNet/genericNeutronNet.yml36
-rw-r--r--catalog-be/src/main/resources/import/tosca/heat-types/genericNeutronNet/genericNeutronNet.zipbin0 -> 611 bytes
-rw-r--r--catalog-be/src/main/resources/import/tosca/onap-types/NSD/NSD.json15
-rw-r--r--catalog-be/src/main/resources/import/tosca/onap-types/NSD/NSD.yml41
-rw-r--r--catalog-be/src/main/resources/import/tosca/onap-types/NSD/NSD.zipbin0 -> 554 bytes
-rw-r--r--catalog-be/src/main/resources/import/tosca/onap-types/vduCpd/vduCpd.yml2
-rw-r--r--catalog-be/src/main/resources/import/tosca/onap-types/vduCpd/vduCpd.zipbin562 -> 567 bytes
-rw-r--r--catalog-be/src/main/resources/scripts/import/tosca/importHeatTypes.py3
-rw-r--r--catalog-be/src/main/resources/scripts/import/tosca/importOnapTypes.py3
-rw-r--r--catalog-be/src/main/resources/scripts/import/tosca/typesToUpgrade.json49
14 files changed, 227 insertions, 37 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/AttributeBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/AttributeBusinessLogic.java
index 4fd4610ef9..5b8a10a03e 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/AttributeBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/AttributeBusinessLogic.java
@@ -83,7 +83,7 @@ public class AttributeBusinessLogic extends BaseBusinessLogic {
// Get the resource from DB
Either<Resource, StorageOperationStatus> status = toscaOperationFacade.getToscaElement(resourceId);
if (status.isRight()) {
- return Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, ""));
+ return Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, resourceId));
}
Resource resource = status.left().value();
@@ -151,7 +151,7 @@ public class AttributeBusinessLogic extends BaseBusinessLogic {
// Get the resource from DB
Either<Resource, StorageOperationStatus> status = toscaOperationFacade.getToscaElement(resourceId);
if (status.isRight()) {
- return Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, ""));
+ return Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, resourceId));
}
Resource resource = status.left().value();
@@ -195,7 +195,7 @@ public class AttributeBusinessLogic extends BaseBusinessLogic {
// Get the resource from DB
Either<Resource, StorageOperationStatus> eitherResource = toscaOperationFacade.getToscaElement(resourceId);
if (eitherResource.isRight()) {
- return Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, ""));
+ return Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, resourceId));
}
Resource resource = eitherResource.left().value();
@@ -273,7 +273,7 @@ public class AttributeBusinessLogic extends BaseBusinessLogic {
// Get the resource from DB
Either<Resource, StorageOperationStatus> eitherResource = toscaOperationFacade.getToscaElement(resourceId);
if (eitherResource.isRight()) {
- return Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, ""));
+ return Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, resourceId));
}
Resource resource = eitherResource.left().value();
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/PropertyBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/PropertyBusinessLogic.java
index 833e6c0b9e..e16b34f389 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/PropertyBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/PropertyBusinessLogic.java
@@ -121,7 +121,7 @@ public class PropertyBusinessLogic extends BaseBusinessLogic {
// Get the resource from DB
Either<Resource, StorageOperationStatus> status = toscaOperationFacade.getToscaElement(resourceId);
if (status.isRight()) {
- result = Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, ""));
+ result = Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, resourceId));
return result;
}
Resource resource = status.left().value();
@@ -219,7 +219,7 @@ public class PropertyBusinessLogic extends BaseBusinessLogic {
// Get the resource from DB
Either<Resource, StorageOperationStatus> status = toscaOperationFacade.getToscaElement(resourceId);
if (status.isRight()) {
- return Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, ""));
+ return Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, resourceId));
}
Resource resource = status.left().value();
@@ -271,7 +271,7 @@ public class PropertyBusinessLogic extends BaseBusinessLogic {
// Get the resource from DB
Either<Resource, StorageOperationStatus> getResourceRes = toscaOperationFacade.getToscaElement(resourceId);
if (getResourceRes.isRight()) {
- result = Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, ""));
+ result = Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, resourceId));
return result;
}
Resource resource = getResourceRes.left().value();
@@ -321,7 +321,7 @@ public class PropertyBusinessLogic extends BaseBusinessLogic {
Either<Resource, StorageOperationStatus> status = toscaOperationFacade.getToscaElement(resourceId);
if (status.isRight()) {
- return Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, ""));
+ return Either.right(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND, resourceId));
}
Resource resource = status.left().value();
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java
index ba26576648..0ae546479a 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java
@@ -1869,27 +1869,25 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
log.debug("************* Going to create all nodes {}", yamlName);
Either<Map<String, Resource>, ResponseFormat> createdResourcesFromdNodeTypeMap = this.handleNodeTypes(yamlName, resource, topologyTemplateYaml, false, nodeTypesArtifactsToCreate, nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo, nodeName);
- log.debug("************* Finished to create all nodes {}", yamlName);
if (createdResourcesFromdNodeTypeMap.isRight()) {
log.debug("failed to resources from node types status is {}", createdResourcesFromdNodeTypeMap.right().value());
return Either.right(createdResourcesFromdNodeTypeMap.right().value());
}
+ log.debug("************* Finished to create all nodes {}", yamlName);
log.debug("************* Going to create all resource instances {}", yamlName);
createResourcesInstancesEither = createResourceInstances(csarInfo.getModifier(), yamlName, resource, uploadComponentInstanceInfoMap, true, false, csarInfo.getCreatedNodes());
- log.debug("************* Finished to create all resource instances {}", yamlName);
if (createResourcesInstancesEither.isRight()) {
log.debug("failed to create resource instances status is {}", createResourcesInstancesEither.right().value());
result = createResourcesInstancesEither;
return createResourcesInstancesEither;
}
+ log.debug("************* Finished to create all resource instances for {}", yamlName);
resource = createResourcesInstancesEither.left().value();
log.debug("************* Going to create all relations {}", yamlName);
createResourcesInstancesEither = createResourceInstancesRelations(csarInfo.getModifier(), yamlName, resource, uploadComponentInstanceInfoMap);
- log.debug("************* Finished to create all relations {}", yamlName);
-
if (createResourcesInstancesEither.isRight()) {
log.debug("failed to create relation between resource instances status is {}", createResourcesInstancesEither.right().value());
result = createResourcesInstancesEither;
@@ -1897,6 +1895,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
} else {
resource = createResourcesInstancesEither.left().value();
}
+ log.debug("************* Finished to create all relations {}", yamlName);
log.debug("************* Going to create positions {}", yamlName);
Either<List<ComponentInstance>, ResponseFormat> eitherSetPosition = compositionBusinessLogic.setPositionsForComponentInstances(resource, csarInfo.getModifier().getUserId());
@@ -4265,7 +4264,6 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return Either.left(validRegDef);
}
- @SuppressWarnings("unchecked")
public Either<ParsedToscaYamlInfo, ResponseFormat> parseResourceInfoFromYaml(String yamlFileName, Resource resource, String resourceYml, Map<String, String> createdNodesToscaResourceNames, Map<String, NodeTypeInfo> nodeTypesInfo, String nodeName) {
Map<String, Object> mappedToscaTemplate;
@@ -4319,7 +4317,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
Map<String, Resource> nodeNamespaceMap) {
Either<Resource, ResponseFormat> eitherResource = null;
- log.debug("createResourceInstances is {} - going to create resource instanse from CSAR", yamlName);
+ log.debug("{} - going to create resource instanse from CSAR", yamlName);
if (uploadResInstancesMap == null || uploadResInstancesMap.isEmpty()) {
ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.NOT_TOPOLOGY_TOSCA_TEMPLATE);
@@ -4334,13 +4332,13 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
Iterator<Entry<String, UploadComponentInstanceInfo>> nodesInfoValue = uploadResInstancesMap.entrySet().iterator();
Map<ComponentInstance, Resource> resourcesInstancesMap = new HashMap<>();
while (nodesInfoValue.hasNext()) {
- log.debug("*************Going to create resource instances {}", yamlName);
+ log.debug("*************Going to create resource instances from {}", yamlName);
Entry<String, UploadComponentInstanceInfo> uploadComponentInstanceInfoEntry = nodesInfoValue.next();
UploadComponentInstanceInfo uploadComponentInstanceInfo = uploadComponentInstanceInfoEntry.getValue();
// updating type if the type is node type name - we need to take the
// updated name
- log.debug("*************Going to create resource instances {}", uploadComponentInstanceInfo.getName());
+ log.debug("*************Going to create resource instance {}", uploadComponentInstanceInfo.getName());
if (nodeNamespaceMap.containsKey(uploadComponentInstanceInfo.getType())) {
uploadComponentInstanceInfo.setType(nodeNamespaceMap.get(uploadComponentInstanceInfo.getType()).getToscaResourceName());
}
@@ -4357,17 +4355,19 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
ComponentTypeEnum containerComponentType = resource.getComponentType();
NodeTypeEnum containerNodeType = containerComponentType.getNodeType();
-
- if (containerNodeType.equals(NodeTypeEnum.Resource) && uploadComponentInstanceInfo.getCapabilities() != null) {
- Either<Map<String, List<CapabilityDefinition>>, ResponseFormat> getValidComponentInstanceCapabilitiesRes = getValidComponentInstanceCapabilities(refResource.getCapabilities(), uploadComponentInstanceInfo.getCapabilities());
+ //************
+ if (containerNodeType.equals(NodeTypeEnum.Resource) && MapUtils.isNotEmpty(uploadComponentInstanceInfo.getCapabilities()) && MapUtils.isNotEmpty(refResource.getCapabilities())) {
+ setCapabilityNamesTypes(refResource.getCapabilities(), uploadComponentInstanceInfo.getCapabilities());
+ Either<Map<String, List<CapabilityDefinition>>, ResponseFormat> getValidComponentInstanceCapabilitiesRes = getValidComponentInstanceCapabilities(refResource.getUniqueId(), refResource.getCapabilities(), uploadComponentInstanceInfo.getCapabilities());
if (getValidComponentInstanceCapabilitiesRes.isRight()) {
return Either.right(getValidComponentInstanceCapabilitiesRes.right().value());
} else {
componentInstance.setCapabilities(getValidComponentInstanceCapabilitiesRes.left().value());
}
}
+ //***********************
if (!existingnodeTypeMap.containsKey(uploadComponentInstanceInfo.getType())) {
- log.debug("createResourceInstances - not found lates version for resource instance with name {} and type ", uploadComponentInstanceInfo.getName(), uploadComponentInstanceInfo.getType());
+ log.debug("createResourceInstances - not found latest version for resource instance with name {} and type ", uploadComponentInstanceInfo.getName(), uploadComponentInstanceInfo.getType());
ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.INVALID_NODE_TEMPLATE, yamlName, uploadComponentInstanceInfo.getName(), uploadComponentInstanceInfo.getType());
return Either.right(responseFormat);
}
@@ -4417,16 +4417,30 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return Either.left(eitherGerResource.left().value());
}
+
+ private void setCapabilityNamesTypes(Map<String, List<CapabilityDefinition>> originCapabilities, Map<String, List<UploadCapInfo>> uploadedCapabilities) {
+ for(Entry<String, List<UploadCapInfo>> currEntry : uploadedCapabilities.entrySet()){
+ if(originCapabilities.containsKey(currEntry.getKey())){
+ currEntry.getValue().stream().forEach(cap -> cap.setType(currEntry.getKey()));
+ }
+ }
+
+ for(Map.Entry<String, List<CapabilityDefinition>> capabilities : originCapabilities.entrySet()){
+ capabilities.getValue().stream().forEach(cap -> {if(uploadedCapabilities.containsKey(cap.getName())){uploadedCapabilities.get(cap.getName()).stream().forEach(c -> {c.setName(cap.getName());c.setType(cap.getType());});};});
+ }
+ }
+
+
private Either<Resource, ResponseFormat> validateResourceInstanceBeforeCreate(String yamlName, UploadComponentInstanceInfo uploadComponentInstanceInfo, Map<String, Resource> nodeNamespaceMap) {
- log.debug("validateResourceInstanceBeforeCreate - going to validate resource instance with name {} and type before create", uploadComponentInstanceInfo.getName(), uploadComponentInstanceInfo.getType());
+ log.debug("going to validate resource instance with name {} and type {} before create", uploadComponentInstanceInfo.getName(), uploadComponentInstanceInfo.getType());
Resource refResource = null;
if (nodeNamespaceMap.containsKey(uploadComponentInstanceInfo.getType())) {
refResource = nodeNamespaceMap.get(uploadComponentInstanceInfo.getType());
} else {
Either<Resource, StorageOperationStatus> findResourceEither = toscaOperationFacade.getLatestCertifiedNodeTypeByToscaResourceName(uploadComponentInstanceInfo.getType());
if (findResourceEither.isRight()) {
- log.debug("validateResourceInstanceBeforeCreate - not found lates version for resource instance with name {} and type ", uploadComponentInstanceInfo.getName(), uploadComponentInstanceInfo.getType());
+ log.debug("not found lates version for resource instance with name {} and type {}", uploadComponentInstanceInfo.getName(), uploadComponentInstanceInfo.getType());
ResponseFormat responseFormat = componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(findResourceEither.right().value()));
return Either.right(responseFormat);
}
@@ -4435,16 +4449,17 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
}
String componentState = refResource.getComponentMetadataDefinition().getMetadataDataDefinition().getState();
if (componentState.equals(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT.name())) {
- log.debug("validateResourceInstanceBeforeCreate - component instance of component {} can not be created because the component is in an illegal state {}.", refResource.getName(), componentState);
+ log.debug("component instance of component {} can not be created because the component is in an illegal state {}.", refResource.getName(), componentState);
ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.ILLEGAL_COMPONENT_STATE, refResource.getComponentType().getValue(), refResource.getName(), componentState);
return Either.right(responseFormat);
}
if (!ToscaUtils.isAtomicType(refResource) && refResource.getResourceType() != ResourceTypeEnum.CVFC) {
- log.debug("validateResourceInstanceBeforeCreate - ref resource type is ", refResource.getResourceType());
+ log.debug("ref resource type is {}", refResource.getResourceType());
ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.INVALID_NODE_TEMPLATE, yamlName, uploadComponentInstanceInfo.getName(), uploadComponentInstanceInfo.getType());
return Either.right(responseFormat);
}
+ log.debug("validate resource instance with name {} and type {} before create, successful",uploadComponentInstanceInfo.getName(), uploadComponentInstanceInfo.getType());
return Either.left(refResource);
}
@@ -7021,7 +7036,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
return null;
}
- private Either<Map<String, List<CapabilityDefinition>>, ResponseFormat> getValidComponentInstanceCapabilities(Map<String, List<CapabilityDefinition>> defaultCapabilities, Map<String, List<UploadCapInfo>> uploadedCapabilities) {
+ private Either<Map<String, List<CapabilityDefinition>>, ResponseFormat> getValidComponentInstanceCapabilities(String resourceId, Map<String, List<CapabilityDefinition>> defaultCapabilities, Map<String, List<UploadCapInfo>> uploadedCapabilities) {
ResponseFormat responseFormat;
Map<String, List<CapabilityDefinition>> validCapabilitiesMap = new HashMap<>();
@@ -7031,14 +7046,33 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
responseFormat = componentsUtils.getResponseFormat(ActionStatus.MISSING_CAPABILITY_TYPE, capabilityType);
return Either.right(responseFormat);
} else {
- CapabilityDefinition delaultCapability = defaultCapabilities.get(capabilityType).get(0);
- Either<Boolean, String> validationRes = validateUniquenessUpdateUploadedComponentInstanceCapability(delaultCapability, uploadedCapabilitiesEntry.getValue().get(0));
- if (validationRes.isRight()) {
- responseFormat = componentsUtils.getResponseFormat(ActionStatus.PROPERTY_NAME_ALREADY_EXISTS, validationRes.right().value());
+ CapabilityDefinition defaultCapability;
+ if(CollectionUtils.isNotEmpty(defaultCapabilities.get(capabilityType).get(0).getProperties())){
+ defaultCapability = defaultCapabilities.get(capabilityType).get(0);
+ } else {
+ Either<Component, StorageOperationStatus> getFullComponentRes = toscaOperationFacade.getToscaFullElement(resourceId);
+ if(getFullComponentRes.isRight()){
+ log.debug("Failed to get full component {}. Status is {}. ", resourceId, getFullComponentRes.right().value());
+ responseFormat = componentsUtils.getResponseFormat(ActionStatus.COMPONENT_NOT_FOUND, resourceId);
+ return Either.right(responseFormat);
+ }
+ defaultCapability = getFullComponentRes.left().value().getCapabilities().get(capabilityType).get(0);
+ }
+ if(CollectionUtils.isEmpty(defaultCapability.getProperties()) && CollectionUtils.isNotEmpty(uploadedCapabilitiesEntry.getValue().get(0).getProperties())){
+ log.debug("Failed to validate capability {} of component {}. Property list is empty. ", defaultCapability.getName(), resourceId);
+ log.debug("Failed to update capability property values. Property list of fetched capability {} is empty. ", defaultCapability.getName());
+ responseFormat = componentsUtils.getResponseFormat(ActionStatus.PROPERTY_NOT_FOUND, resourceId);
return Either.right(responseFormat);
}
+ if(CollectionUtils.isNotEmpty(defaultCapability.getProperties()) && CollectionUtils.isNotEmpty(uploadedCapabilitiesEntry.getValue().get(0).getProperties())){
+ Either<Boolean, String> validationRes = validateUniquenessUpdateUploadedComponentInstanceCapability(defaultCapability, uploadedCapabilitiesEntry.getValue().get(0));
+ if (validationRes.isRight()) {
+ responseFormat = componentsUtils.getResponseFormat(ActionStatus.PROPERTY_NAME_ALREADY_EXISTS, validationRes.right().value());
+ return Either.right(responseFormat);
+ }
+ }
List<CapabilityDefinition> validCapabilityList = new ArrayList<>();
- validCapabilityList.add(delaultCapability);
+ validCapabilityList.add(defaultCapability);
validCapabilitiesMap.put(uploadedCapabilitiesEntry.getKey(), validCapabilityList);
}
}
diff --git a/catalog-be/src/main/resources/import/tosca/heat-types/genericNeutronNet/genericNeutronNet.json b/catalog-be/src/main/resources/import/tosca/heat-types/genericNeutronNet/genericNeutronNet.json
new file mode 100644
index 0000000000..d9b008a870
--- /dev/null
+++ b/catalog-be/src/main/resources/import/tosca/heat-types/genericNeutronNet/genericNeutronNet.json
@@ -0,0 +1,21 @@
+{
+ "payloadName": "genericNeutronNet.yml",
+ "contactId": "jh0003",
+ "name": "Generic NeutronNet",
+ "description": "Generic NeutronNet",
+ "resourceIconPath": "network",
+ "resourceType": "VL",
+ "categories": [
+ {
+ "name": "Generic",
+ "subcategories": [
+ {
+ "name": "Network Elements"
+ }
+ ]
+ }
+],
+ "tags": [
+ "Generic NeutronNet"
+ ]
+} \ No newline at end of file
diff --git a/catalog-be/src/main/resources/import/tosca/heat-types/genericNeutronNet/genericNeutronNet.yml b/catalog-be/src/main/resources/import/tosca/heat-types/genericNeutronNet/genericNeutronNet.yml
new file mode 100644
index 0000000000..12dc13e98b
--- /dev/null
+++ b/catalog-be/src/main/resources/import/tosca/heat-types/genericNeutronNet/genericNeutronNet.yml
@@ -0,0 +1,36 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+node_types:
+ org.openecomp.resource.vl.GenericNeutronNet:
+ derived_from: org.openecomp.resource.vl.extVL
+ description: Generic Neutron Network
+ properties:
+ network_role:
+ type: string
+ description: |
+ Unique label that defines the role that this network performs. example: vce oam network, vnat sr-iov1 network
+ network_assignments:
+ type: org.openecomp.datatypes.network.NetworkAssignments
+ network_flows:
+ type: org.openecomp.datatypes.network.NetworkFlows
+ network_scope:
+ type: string
+ network_ecomp_naming:
+ type: org.openecomp.datatypes.EcompNaming
+ network_type:
+ type: string
+ description: ECOMP supported network types.
+ default: NEUTRON
+ provider_network:
+ type: org.openecomp.datatypes.network.ProviderNetwork
+ network_technology:
+ type: string
+ description: ECOMP supported network technology
+ default: NEUTRON
+ network_homing:
+ type: org.openecomp.datatypes.EcompHoming
+ capabilities:
+ virtual_linkable:
+ type: tosca.capabilities.network.Linkable
+ occurrences:
+ - 1
+ - UNBOUNDED \ No newline at end of file
diff --git a/catalog-be/src/main/resources/import/tosca/heat-types/genericNeutronNet/genericNeutronNet.zip b/catalog-be/src/main/resources/import/tosca/heat-types/genericNeutronNet/genericNeutronNet.zip
new file mode 100644
index 0000000000..ed51f834f3
--- /dev/null
+++ b/catalog-be/src/main/resources/import/tosca/heat-types/genericNeutronNet/genericNeutronNet.zip
Binary files differ
diff --git a/catalog-be/src/main/resources/import/tosca/onap-types/NSD/NSD.json b/catalog-be/src/main/resources/import/tosca/onap-types/NSD/NSD.json
new file mode 100644
index 0000000000..22788ec06c
--- /dev/null
+++ b/catalog-be/src/main/resources/import/tosca/onap-types/NSD/NSD.json
@@ -0,0 +1,15 @@
+{
+ "payloadName": "NSD.yml",
+ "contactId": "jh0003",
+ "name": "NSD",
+ "description": "NSD",
+ "resourceIconPath": "network",
+ "resourceType": "VFC",
+ "categories": [{
+ "name": "Generic",
+ "subcategories": [{
+ "name": "Network Elements"
+ }]
+ }],
+ "tags": ["NSD"]
+} \ No newline at end of file
diff --git a/catalog-be/src/main/resources/import/tosca/onap-types/NSD/NSD.yml b/catalog-be/src/main/resources/import/tosca/onap-types/NSD/NSD.yml
new file mode 100644
index 0000000000..1b3d8820d5
--- /dev/null
+++ b/catalog-be/src/main/resources/import/tosca/onap-types/NSD/NSD.yml
@@ -0,0 +1,41 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ org.openecomp.resource.vfc.NSD:
+ derived_from: tosca.nodes.Root
+ description: ECOMP Allotted Resource base type all other allotted resources node types derive from
+ properties:
+ nsd_id:
+ type: string
+ required: true
+ description: ID of the NSD
+ nsd_designer:
+ type: string
+ required: true
+ description: Designer of the NSD
+ nsd_version:
+ type: string
+ required: true
+ description: Version of the NSD
+ nsd_name:
+ type: string
+ required: true
+ description: Name of the NSD
+ providing_service_uuid:
+ type: string
+ required: true
+ description: The depending service uuid in order to map the allotted resource to the specific service version
+ providing_service_invariant_uuid:
+ type: string
+ required: true
+ description: The depending service invariant uuid in order to map the allotted resource to the specific service version
+ providing_service_name:
+ type: string
+ required: true
+ description: The depending service name in order to map the allotted resource to the specific service version
+ requirements:
+ - virtualLink:
+ capability: tosca.capabilities.network.Linkable
+ relationship: tosca.relationships.network.LinksTo
+ capabilities:
+ virtual_linkable:
+ type: tosca.capabilities.network.Linkable
diff --git a/catalog-be/src/main/resources/import/tosca/onap-types/NSD/NSD.zip b/catalog-be/src/main/resources/import/tosca/onap-types/NSD/NSD.zip
new file mode 100644
index 0000000000..d741b50c16
--- /dev/null
+++ b/catalog-be/src/main/resources/import/tosca/onap-types/NSD/NSD.zip
Binary files differ
diff --git a/catalog-be/src/main/resources/import/tosca/onap-types/vduCpd/vduCpd.yml b/catalog-be/src/main/resources/import/tosca/onap-types/vduCpd/vduCpd.yml
index e1f6d068ce..e5d79fcacf 100644
--- a/catalog-be/src/main/resources/import/tosca/onap-types/vduCpd/vduCpd.yml
+++ b/catalog-be/src/main/resources/import/tosca/onap-types/vduCpd/vduCpd.yml
@@ -50,7 +50,7 @@ node_types:
- 0
- UNBOUNDED
- virtual_link:
- capability: tosca.capabilities.nfv.VirtualBindable
+ capability: tosca.capabilities.nfv.VirtualLinkable
occurrences:
- 0
- UNBOUNDED \ No newline at end of file
diff --git a/catalog-be/src/main/resources/import/tosca/onap-types/vduCpd/vduCpd.zip b/catalog-be/src/main/resources/import/tosca/onap-types/vduCpd/vduCpd.zip
index 6a9d4be124..e1b5be9f2f 100644
--- a/catalog-be/src/main/resources/import/tosca/onap-types/vduCpd/vduCpd.zip
+++ b/catalog-be/src/main/resources/import/tosca/onap-types/vduCpd/vduCpd.zip
Binary files differ
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importHeatTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/importHeatTypes.py
index 78b257d6f3..c72c2c394f 100644
--- a/catalog-be/src/main/resources/scripts/import/tosca/importHeatTypes.py
+++ b/catalog-be/src/main/resources/scripts/import/tosca/importHeatTypes.py
@@ -53,7 +53,8 @@ def importHeatTypes(beHost, bePort, adminUser, fileDir, updateversion):
"multiFlavorVFC",
"vnfConfiguration",
"underlayVpn",
- "overlayTunnel"
+ "overlayTunnel",
+ "genericNeutronNet"
]
responseCodes = [200, 201]
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/importOnapTypes.py b/catalog-be/src/main/resources/scripts/import/tosca/importOnapTypes.py
index f91b64ed81..31c11c74bc 100644
--- a/catalog-be/src/main/resources/scripts/import/tosca/importOnapTypes.py
+++ b/catalog-be/src/main/resources/scripts/import/tosca/importOnapTypes.py
@@ -29,7 +29,8 @@ def importOnapTypes(beHost, bePort, adminUser, fileDir, updateversion):
"vduCompute",
"vduCpd",
"vduVirtualStorage",
- "vnfVirtualLinkDesc"
+ "vnfVirtualLinkDesc",
+ "NSD"
]
responseCodes = [200, 201]
diff --git a/catalog-be/src/main/resources/scripts/import/tosca/typesToUpgrade.json b/catalog-be/src/main/resources/scripts/import/tosca/typesToUpgrade.json
index a6948f5da8..c518855860 100644
--- a/catalog-be/src/main/resources/scripts/import/tosca/typesToUpgrade.json
+++ b/catalog-be/src/main/resources/scripts/import/tosca/typesToUpgrade.json
@@ -1,13 +1,54 @@
{
"heat": [
- "contrailPort",
- "extCp",
- "contrailV2VirtualMachineInterface",
+ "globalNetwork",
+ "globalPort",
+ "globalCompute",
+ "volume",
+ "cinderVolume",
+ "contrailVirtualNetwork",
+ "neutronNet",
"neutronPort",
+ "novaServer",
+ "extVl",
+ "internalVl",
+ "extCp",
+ "vl",
+ "eline",
+ "abstractSubstitute",
+ "Generic_VFC",
+ "Generic_VF",
"Generic_PNF",
+ "Generic_Service",
+ "contrailNetworkRules",
+ "contrailPort",
+ "contrailV2NetworkRules",
+ "contrailV2VirtualNetwork",
+ "securityRules",
+ "contrailAbstractSubstitute",
+ "contrailCompute",
+ "contrailV2VirtualMachineInterface",
+ "subInterface",
+ "contrailV2VLANSubInterface",
"multiFlavorVFC",
- "vnfConfiguration"
+ "vnfConfiguration",
+ "underlayVpn",
+ "overlayTunnel",
+ "genericNeutronNet"
],
"normative": [
+ "root",
+ "compute",
+ "softwareComponent",
+ "webServer",
+ "webApplication",
+ "DBMS",
+ "database",
+ "objectStorage",
+ "blockStorage",
+ "containerRuntime",
+ "containerApplication",
+ "loadBalancer",
+ "port",
+ "network"
]
} \ No newline at end of file