aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ProductServlet.java5
-rw-r--r--catalog-be/src/main/resources/import/tosca/onap-types/VDU/VDU.json15
-rw-r--r--catalog-be/src/main/resources/import/tosca/onap-types/VDU/VDU.yml22
-rw-r--r--catalog-be/src/main/resources/import/tosca/onap-types/VDU/VDU.zipbin0 -> 457 bytes
-rw-r--r--catalog-be/src/main/resources/import/tosca/onap-types/vduCpd/vduCpd.yml1
-rw-r--r--catalog-be/src/main/resources/scripts/import/tosca/importOnapTypes.py3
-rw-r--r--openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ComponentQuestionnaireHealer.java8
-rw-r--r--openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/SubEntitiesQuestionnaireHealer.java12
-rw-r--r--openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ValidationStructureHealer.java5
-rw-r--r--openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VlmVersionHealer.java17
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/PortMirroringEnricher.java50
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/nodes.yml1068
-rw-r--r--openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/filedatastructuremodule/CandidateServiceImpl.java3
-rw-r--r--openecomp-ui/resources/scss/modules/_licenseModelLimits.scss38
14 files changed, 1078 insertions, 169 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ProductServlet.java b/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ProductServlet.java
index 681195643e..209f38d8a4 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ProductServlet.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ProductServlet.java
@@ -39,7 +39,6 @@ import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.openecomp.sdc.be.components.impl.ProductBusinessLogic;
-import org.openecomp.sdc.be.components.impl.ServiceBusinessLogic;
import org.openecomp.sdc.be.config.BeEcompErrorManager;
import org.openecomp.sdc.be.dao.api.ActionStatus;
import org.openecomp.sdc.be.model.Product;
@@ -51,14 +50,14 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.jcabi.aspects.Loggable;
+
+import fj.data.Either;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
-import fj.data.Either;
-
@Loggable(prepend = true, value = Loggable.DEBUG, trim = false)
@Path("/v1/catalog")
@Api(value = "Product Catalog", description = "Product Servlet")
diff --git a/catalog-be/src/main/resources/import/tosca/onap-types/VDU/VDU.json b/catalog-be/src/main/resources/import/tosca/onap-types/VDU/VDU.json
new file mode 100644
index 0000000000..5d721d4abc
--- /dev/null
+++ b/catalog-be/src/main/resources/import/tosca/onap-types/VDU/VDU.json
@@ -0,0 +1,15 @@
+{
+ "payloadName": "VDU.yml",
+ "contactId": "jh0003",
+ "name": "VDU",
+ "description": "VDU",
+ "resourceIconPath": "compute",
+ "resourceType": "VFC",
+ "categories": [{
+ "name": "Generic",
+ "subcategories": [{
+ "name": "Infrastructure"
+ }]
+ }],
+ "tags": ["VDU"]
+} \ No newline at end of file
diff --git a/catalog-be/src/main/resources/import/tosca/onap-types/VDU/VDU.yml b/catalog-be/src/main/resources/import/tosca/onap-types/VDU/VDU.yml
new file mode 100644
index 0000000000..541126f7e3
--- /dev/null
+++ b/catalog-be/src/main/resources/import/tosca/onap-types/VDU/VDU.yml
@@ -0,0 +1,22 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ tosca.nodes.nfv.VDU:
+ derived_from: tosca.nodes.SoftwareComponent
+ capabilities:
+#Not found in any spec
+# high_availability:
+# type: nfv.capabilities.HA
+ Virtualbinding:
+ type: tosca.capabilities.nfv.VirtualBindable
+# monitoring_parameter:
+# type: nfv.capabilities.Metric
+ requirements:
+#Not found in any spec
+# - high_availability:
+# capability: nfv.capabilities.HA
+# relationship: nfv.relationships.HA
+# occurrences: [ 0, 1 ]
+ - host:
+ capability: tosca.capabilities.Container
+ node: tosca.nodes.Compute
+ relationship: tosca.relationships.HostedOn
diff --git a/catalog-be/src/main/resources/import/tosca/onap-types/VDU/VDU.zip b/catalog-be/src/main/resources/import/tosca/onap-types/VDU/VDU.zip
new file mode 100644
index 0000000000..9010bf0544
--- /dev/null
+++ b/catalog-be/src/main/resources/import/tosca/onap-types/VDU/VDU.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 e5d79fcacf..673e923182 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
@@ -1,3 +1,4 @@
+#NOT SPEC COMPLAINT!!!!!!!!!!!!!!!!!!!!!!
tosca_definitions_version: tosca_simple_yaml_1_0_0
node_types:
tosca.nodes.nfv.VduCpd:
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 31c11c74bc..664c5cc64a 100644
--- a/catalog-be/src/main/resources/scripts/import/tosca/importOnapTypes.py
+++ b/catalog-be/src/main/resources/scripts/import/tosca/importOnapTypes.py
@@ -30,7 +30,8 @@ def importOnapTypes(beHost, bePort, adminUser, fileDir, updateversion):
"vduCpd",
"vduVirtualStorage",
"vnfVirtualLinkDesc",
- "NSD"
+ "NSD",
+ "VDU"
]
responseCodes = [200, 201]
diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ComponentQuestionnaireHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ComponentQuestionnaireHealer.java
index d061556e4c..4dadb97f71 100644
--- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ComponentQuestionnaireHealer.java
+++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ComponentQuestionnaireHealer.java
@@ -19,6 +19,7 @@ import org.openecomp.sdc.versioning.dao.types.Version;
import java.util.Collection;
import java.util.Map;
+import java.util.Objects;
public class ComponentQuestionnaireHealer implements Healer {
@@ -59,8 +60,10 @@ public class ComponentQuestionnaireHealer implements Healer {
Collection<ComponentEntity> componentEntities =
componentDao.list(new ComponentEntity(vspId, version, null));
componentEntities.forEach(componentEntity -> {
- String questionnaire = componentDao.getQuestionnaireData(vspId, version, componentEntity
- .getId()).getQuestionnaireData();
+ ComponentEntity componentQuestionnaireData =
+ componentDao.getQuestionnaireData(vspId, version, componentEntity.getId());
+ String questionnaire = Objects.isNull(componentQuestionnaireData) ? null
+ : componentQuestionnaireData.getQuestionnaireData();
if (questionnaire != null) {
JsonParser jsonParser = new JsonParser();
@@ -97,7 +100,6 @@ public class ComponentQuestionnaireHealer implements Healer {
* Move Disk Atributes from genral/image/ to genral/disk in component questionnaire itself
* @param json
* @param diskAttrName
- * @param diskJsonObject
* @return
*/
private void processDiskAttribute(JsonObject json, String diskAttrName) {
diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/SubEntitiesQuestionnaireHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/SubEntitiesQuestionnaireHealer.java
index 130405be1d..9355eb076f 100644
--- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/SubEntitiesQuestionnaireHealer.java
+++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/SubEntitiesQuestionnaireHealer.java
@@ -55,6 +55,9 @@ public class SubEntitiesQuestionnaireHealer implements Healer {
private static NicDao nicDao = NicDaoFactory.getInstance().createInterface();
private static NetworkDao networkDao = NetworkDaoFactory.getInstance().createInterface();
+ private static String emptyString = "";
+ private static String emptyJson = "{}";
+
@Override
public Object heal(Map<String, Object> healingParams) throws Exception {
@@ -90,8 +93,7 @@ public class SubEntitiesQuestionnaireHealer implements Healer {
for (Object entity : compositionEntities) {
CompositionEntity compositionEntity = (CompositionEntity) entity;
- if (Objects.isNull(compositionEntity.getQuestionnaireData()) ||
- "".equals(compositionEntity.getQuestionnaireData())) {
+ if (isQuestionnaireNeedsToGetHealed(compositionEntity)) {
compositionEntity.setVersion(newVersion);
updateNullQuestionnaire(compositionEntity, type);
}
@@ -100,6 +102,12 @@ public class SubEntitiesQuestionnaireHealer implements Healer {
mdcDataDebugMessage.debugExitMessage(null);
}
+ private boolean isQuestionnaireNeedsToGetHealed(CompositionEntity compositionEntity) {
+ return Objects.isNull(compositionEntity.getQuestionnaireData())
+ || emptyString.equals(compositionEntity.getQuestionnaireData())
+ || emptyJson.equals(compositionEntity.getQuestionnaireData());
+ }
+
private void updateNullQuestionnaire(CompositionEntity entity,
CompositionEntityType type) {
diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ValidationStructureHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ValidationStructureHealer.java
index 58ba3b7c35..4bf7e18091 100644
--- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ValidationStructureHealer.java
+++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ValidationStructureHealer.java
@@ -48,6 +48,11 @@ public class ValidationStructureHealer implements Healer {
UploadDataEntity orchestrationTemplate =
orchestrationTemplateDao.getOrchestrationTemplate(vspId, version);
+ if(Objects.isNull(orchestrationTemplate.getValidationData())
+ || !JsonUtil.isValidJson(orchestrationTemplate.getValidationData())){
+ return Optional.empty();
+ }
+
OldValidationStructureTree oldValidationStructureTree;
try{
oldValidationStructureTree =
diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VlmVersionHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VlmVersionHealer.java
index 4accd790ab..085923b8a0 100644
--- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VlmVersionHealer.java
+++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VlmVersionHealer.java
@@ -1,5 +1,6 @@
package org.openecomp.sdc.healing.healers;
+import org.apache.commons.collections4.CollectionUtils;
import org.openecomp.sdc.common.utils.SdcCommon;
import org.openecomp.sdc.healing.interfaces.Healer;
import org.openecomp.sdc.logging.api.Logger;
@@ -15,6 +16,7 @@ import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdc.versioning.types.VersionInfo;
import java.util.ArrayList;
import java.util.List;
@@ -60,7 +62,7 @@ public class VlmVersionHealer implements Healer {
VendorLicenseModelEntity vlm = vendorLicenseModel.getVendorLicenseModel();
String vlmId = vlm.getId();
- Version vlmVersion = vlm.getVersion();
+ Version vlmVersion = getLatestFinalVlmVersion(vendorLicenseModel.getVersionInfo());
List<LicenseAgreementEntity> laList =
new ArrayList<>(
@@ -68,12 +70,19 @@ public class VlmVersionHealer implements Healer {
vspDetails.setVlmVersion(vlmVersion);
- vspDetails.setLicenseAgreement(laList.get(0).getId());
- vspDetails.setFeatureGroups(new ArrayList<>(laList.get(0).getFeatureGroupIds()));
- vspInfoDao.update(vspDetails);
+ if(CollectionUtils.isNotEmpty(laList)) {
+ vspDetails.setLicenseAgreement(laList.get(0).getId());
+ vspDetails.setFeatureGroups(new ArrayList<>(laList.get(0).getFeatureGroupIds()));
+ }
+ vspInfoDao.update(vspDetails);
return vspDetails;
}
+
+ private Version getLatestFinalVlmVersion(VersionInfo versionInfo){
+ return versionInfo.getActiveVersion().isFinal() ? versionInfo.getActiveVersion()
+ : versionInfo.getLatestFinalVersion();
+ }
}
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/PortMirroringEnricher.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/PortMirroringEnricher.java
index 2fe1416ffc..705773d1fc 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/PortMirroringEnricher.java
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/PortMirroringEnricher.java
@@ -9,27 +9,34 @@ import org.apache.commons.collections4.MapUtils;
import org.openecomp.sdc.datatypes.error.ErrorMessage;
import org.openecomp.sdc.enrichment.impl.tosca.model.PortMirroringConnectionPointDescription;
import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
+import org.openecomp.sdc.tosca.datatypes.ToscaElementTypes;
import org.openecomp.sdc.tosca.datatypes.ToscaNodeType;
import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
import org.openecomp.sdc.tosca.datatypes.model.CapabilityAssignment;
import org.openecomp.sdc.tosca.datatypes.model.Import;
import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
+import org.openecomp.sdc.tosca.datatypes.model.NodeType;
import org.openecomp.sdc.tosca.datatypes.model.PropertyDefinition;
import org.openecomp.sdc.tosca.datatypes.model.RequirementAssignment;
import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
import org.openecomp.sdc.tosca.services.DataModelUtil;
+import org.openecomp.sdc.tosca.services.ToscaAnalyzerService;
import org.openecomp.sdc.tosca.services.ToscaConstants;
import org.openecomp.sdc.tosca.services.ToscaUtil;
+import org.openecomp.sdc.tosca.services.impl.ToscaAnalyzerServiceImpl;
import org.openecomp.sdc.translator.services.heattotosca.HeatToToscaUtil;
import org.openecomp.sdc.translator.services.heattotosca.globaltypes.GlobalTypesGenerator;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
+import java.util.Set;
import java.util.stream.Collectors;
public class PortMirroringEnricher {
@@ -186,40 +193,40 @@ public class PortMirroringEnricher {
addPortMirroringSubstitutionMappingCapability(serviceTemplate,
externalPortNodeTemplateId);
}
- handleExternalPortProperties(externalNodeTemplate.getValue());
+ handleExternalPortProperties(externalNodeTemplate.getValue(), serviceTemplate, toscaServiceModel);
}
addGlobalTypeImport(serviceTemplate);
}
}
}
- private void handleExternalPortProperties(NodeTemplate portNodeTemplate) {
+ private void handleExternalPortProperties(NodeTemplate portNodeTemplate,
+ ServiceTemplate serviceTemplate,
+ ToscaServiceModel toscaServiceModel){
- ServiceTemplate serviceTemplate = globalTypesServiceTemplate.get("openecomp/nodes.yml");
+ ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
String externalPortType = portNodeTemplate.getType();
Map<String, PropertyDefinition> globalTypesportProperties = new HashMap<>();
- globalTypesportProperties.putAll(
- serviceTemplate.getNode_types().get("org.openecomp.resource.cp.nodes.network.Port")
- .getProperties());
- globalTypesportProperties
- .putAll(serviceTemplate.getNode_types().get(externalPortType).getProperties());
+ NodeType flatNodeType =
+ (NodeType) toscaAnalyzerService.getFlatEntity(ToscaElementTypes.NODE_TYPE, externalPortType, serviceTemplate, toscaServiceModel);
+ globalTypesportProperties.putAll(flatNodeType.getProperties());
Map<String, Object> properties = portNodeTemplate.getProperties();
Map<String, Object> filteredProperties = new HashMap<>();
- if (MapUtils.isEmpty(properties)) {
+ if(MapUtils.isEmpty(properties)){
return;
}
- for (Map.Entry<String, Object> propertyEntry : properties.entrySet()) {
- if (globalTypesportProperties.containsKey(propertyEntry.getKey())) {
+ for(Map.Entry<String, Object> propertyEntry: properties.entrySet()){
+ if(globalTypesportProperties.containsKey(propertyEntry.getKey())){
filteredProperties.put(propertyEntry.getKey(), propertyEntry.getValue());
}
}
- if (!MapUtils.isEmpty(filteredProperties)) {
+ if(!MapUtils.isEmpty(filteredProperties)) {
portNodeTemplate.setProperties(filteredProperties);
- } else {
+ }else{
portNodeTemplate.setProperties(null);
}
@@ -284,14 +291,15 @@ public class PortMirroringEnricher {
private boolean isPortNodeTemplate(String nodeType) {
//Check if node corresponds to a concrete port node
- if (Objects.nonNull(nodeType)) {
- if (nodeType.equals(ToscaNodeType.NEUTRON_PORT)
- || nodeType.equals(ToscaNodeType.CONTRAILV2_VIRTUAL_MACHINE_INTERFACE)
- || nodeType.equals(ToscaNodeType.CONTRAIL_PORT)) {
- return true;
- }
- }
- return false;
+ Set<String> portNodeTypes = getPortNodeTypes();
+ return Objects.nonNull(nodeType)
+ && portNodeTypes.contains(nodeType);
+ }
+
+ private Set<String> getPortNodeTypes(){
+ return new HashSet<>(Arrays.asList(ToscaNodeType.NEUTRON_PORT,
+ ToscaNodeType.CONTRAILV2_VIRTUAL_MACHINE_INTERFACE,
+ ToscaNodeType.CONTRAIL_PORT));
}
private boolean isSubstitutableNodeTemplate(NodeTemplate nodeTemplate) {
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/nodes.yml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/nodes.yml
index 83516a22ba..810bf304c1 100644
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/nodes.yml
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/openecomp/nodes.yml
@@ -1,308 +1,316 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
tosca_definitions_version: tosca_simple_openecomp_1_0
+
metadata:
filename: openecomp/nodes.yml
version: '1.0'
+
imports:
- openecomp_index:
file: _index.yml
+
node_types:
- org.openecomp.resource.vl.nodes.network.VL:
+
+ org.openecomp.resource.vl.nodes.network.Network:
derived_from: tosca.nodes.network.Network
properties:
vendor:
type: string
required: false
- status: SUPPORTED
vl_name:
type: string
required: false
- status: SUPPORTED
capabilities:
end_point:
type: tosca.capabilities.Endpoint
- occurrences:
- - 1
- - UNBOUNDED
+
org.openecomp.resource.abstract.nodes.AbstractSubstitute:
derived_from: tosca.nodes.Root
properties:
service_template_filter:
- type: org.openecomp.datatypes.substitution.SubstitutionFiltering
description: Substitution Filter
- required: true
+ type: org.openecomp.datatypes.substitution.SubstitutionFiltering
status: SUPPORTED
+ required: true
+
org.openecomp.resource.vl.extVL:
- derived_from: org.openecomp.resource.vl.nodes.network.VL
+ derived_from: org.openecomp.resource.vl.nodes.network.Network
description: VF Tenant oam protected network
properties:
network_type:
- type: string
description: OPENECOMP supported network types.
+ type: string
required: true
- status: SUPPORTED
network_role:
- type: string
description: |
Unique label that defines the role that this network performs. example: vce oam network, vnat sr-iov1 network
+ type: string
required: true
- status: SUPPORTED
network_scope:
- type: string
description: |
Uniquely identifies the network scope. Valid values for the network scope includes: VF - VF-level network. Intra-VF network which connects the VFCs (VMs) inside the VF. SERVICE - Service-level network. Intra-Service network which connects the VFs within the service GLOBAL - Global network which can be shared by multiple services
- required: true
- status: SUPPORTED
+ type: string
constraints:
- valid_values:
- VF
- SERVICE
- GLOBAL
network_technology:
- type: string
description: OPENECOMP supported network technology
+ type: string
required: true
- status: SUPPORTED
network_ecomp_naming:
type: org.openecomp.datatypes.EcompNaming
required: true
- status: SUPPORTED
network_homing:
type: org.openecomp.datatypes.EcompHoming
required: true
- status: SUPPORTED
network_assignments:
type: org.openecomp.datatypes.network.NetworkAssignments
required: true
- status: SUPPORTED
provider_network:
type: org.openecomp.datatypes.network.ProviderNetwork
required: true
- status: SUPPORTED
network_flows:
type: org.openecomp.datatypes.network.NetworkFlows
required: false
- status: SUPPORTED
+
+
org.openecomp.resource.vfc.nodes.Compute:
derived_from: tosca.nodes.Compute
capabilities:
disk.ephemeral.size:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
instance:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
memory:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
disk.iops:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
disk.device.read.requests:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
cpu.delta:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
disk.capacity:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
disk.device.read.bytes:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
disk.write.bytes:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
disk.latency:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
disk.device.read.bytes.rate:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
disk.usage:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
cpu_util:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
disk.device.allocation:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
disk.write.requests.rate:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
disk.write.bytes.rate:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
disk.device.latency:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
cpu:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
disk.device.write.requests:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
disk.device.write.bytes:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
disk.read.requests:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
disk.root.size:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
disk.device.write.bytes.rate:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
vcpus:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
disk.device.iops:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
disk.device.usage:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
disk.device.read.requests.rate:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
disk.device.write.requests.rate:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
disk.allocation:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
disk.read.bytes.rate:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
disk.read.bytes:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
memory.usage:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
disk.device.capacity:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
memory.resident:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
disk.write.requests:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
+
org.openecomp.resource.abstract.nodes.DFAbstractSubstitute:
derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
properties:
license_feature_group_ref:
- type: string
description: refrence to license feature group
- required: true
+ type: string
status: SUPPORTED
+ required: true
requirements:
- deployment_flavor:
capability: org.openecomp.capabilities.attachment.DeploymentFlavor
@@ -311,191 +319,222 @@ node_types:
occurrences:
- 1
- UNBOUNDED
+
+ org.openecomp.resource.abstract.nodes.ComplexVFC:
+ derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+
org.openecomp.resource.abstract.nodes.VFC:
derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
properties:
high_availablity:
- type: string
description: high_availablity
- required: false
+ type: string
status: SUPPORTED
+ required: false
vm_image_name:
- type: string
description: Master image_name volume id
- required: true
+ type: string
status: SUPPORTED
+ required: true
vm_flavor_name:
- type: string
description: Master image_name volume id
- required: true
+ type: string
status: SUPPORTED
+ required: true
nfc_naming_code:
- type: string
description: nfc code for instance naming
+ type: string
+ status: SUPPORTED
required: false
+ nfc_code:
+ type: string
+ description: nfc code
status: SUPPORTED
- vm_type_tag:
+ required: false
+ nfc_function:
type: string
- description: vm type based on naming Convention
+ description: nfc function
+ status: SUPPORTED
required: false
+ vm_type_tag:
+ description: vm type based on naming Convention
+ type: string
status: SUPPORTED
+ required: false
vfc_naming:
- type: org.openecomp.datatypes.Naming
description: vfc naming
- required: false
- default: false
+ type: org.openecomp.datatypes.Naming
status: SUPPORTED
+ default: false
+ required: false
min_instances:
- type: integer
description: Minimum number of VFC Instances
- required: false
- default: 0
+ type: integer
status: SUPPORTED
+ default: 0
+ required: false
constraints:
- greater_or_equal: 0
max_instances:
- type: integer
description: Maximum number of VFC Instances
- required: false
+ type: integer
status: SUPPORTED
+ required: false
constraints:
- greater_or_equal: 1
+
org.openecomp.resource.vl.ELine:
- derived_from: org.openecomp.resource.vl.nodes.network.VL
+ derived_from: org.openecomp.resource.vl.nodes.network.Network
capabilities:
linkable:
type: tosca.capabilities.network.Linkable
occurrences:
- 0
- 2
+
org.openecomp.resource.cp.nodes.network.SubInterface:
derived_from: tosca.nodes.network.Port
+
org.openecomp.resource.vl.internalVL:
- derived_from: org.openecomp.resource.vl.nodes.network.VL
+ derived_from: org.openecomp.resource.vl.nodes.network.Network
description: The AT&T internal (VF-level) Virtual Link
- org.openecomp.resource.cp.nodes.network.CP:
- derived_from: tosca.nodes.network.Port
+
+ org.openecomp.resource.cp.nodes.network.Port:
+ derived_from: tosca.nodes.network.Port
properties:
network_role_tag:
- type: string
description: Must correlate to the set of defined “network-role�? tag identifiers from the associated HEAT template
+ type: string
required: true
- status: SUPPORTED
mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
description: identifies MAC address assignments to the CP
+ type: org.openecomp.datatypes.network.MacRequirements
required: false
- status: SUPPORTED
vlan_requirements:
- type: list
description: identifies vlan address assignments to the CP
- required: false
- status: SUPPORTED
+ type: list
entry_schema:
type: org.openecomp.datatypes.network.VlanRequirements
+ required: false
ip_requirements:
- type: list
description: identifies IP requirements to the CP
- required: true
- status: SUPPORTED
+ type: list
entry_schema:
type: org.openecomp.datatypes.network.IpRequirements
+ required: true
+ network_role:
+ description: identical to VL network_role
+ type: string
+ required: false
+ order:
+ description: The order of the CP on the compute instance (e.g. eth2).
+ type: integer
+ required: false
+ exCP_naming:
+ description: CP Name
+ type: org.openecomp.datatypes.Naming
+ required: false
+ subnetpoolid:
+ description: subnet pool id
+ type: string
+ required: false
capabilities:
network.incoming.packets.rate:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
network.outgoing.bytes:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
network.outgoing.packets.rate:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
network.outpoing.packets:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
network.incoming.bytes.rate:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
network.incoming.bytes:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
network.outgoing.bytes.rate:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
network.incoming.packets:
- type: org.openecomp.capabilities.metric.Ceilometer
description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+ type: org.openecomp.capabilities.metric.Ceilometer
occurrences:
- 1
- UNBOUNDED
+
org.openecomp.resource.nodes.DeploymentFlavor:
derived_from: tosca.nodes.Root
capabilities:
deployment_flavor:
- type: org.openecomp.capabilities.attachment.DeploymentFlavor
description: Allowed deployment flavors of an abstract node
+ type: org.openecomp.capabilities.attachment.DeploymentFlavor
occurrences:
- 1
- UNBOUNDED
+
org.openecomp.resource.cp.extCP:
derived_from: tosca.nodes.Root
description: The AT&T Connection Point base type all other CP derive from
properties:
network_role:
- type: string
description: identical to VL network_role
+ type: string
required: true
- status: SUPPORTED
order:
- type: integer
description: The order of the CP on the compute instance (e.g. eth2).
+ type: integer
required: true
- status: SUPPORTED
network_role_tag:
- type: string
description: Must correlate to the set of defined “network-role�? tag identifiers from the associated HEAT template
+ type: string
required: true
- status: SUPPORTED
mac_requirements:
- type: org.openecomp.datatypes.network.MacRequirements
description: identifies MAC address assignments to the CP
+ type: org.openecomp.datatypes.network.MacRequirements
required: false
- status: SUPPORTED
vlan_requirements:
- type: list
description: identifies vlan address assignments to the CP
- required: false
- status: SUPPORTED
+ type: list
entry_schema:
type: org.openecomp.datatypes.network.VlanRequirements
+ required: false
ip_requirements:
- type: list
description: identifies IP requirements to the CP
- required: true
- status: SUPPORTED
+ type: list
entry_schema:
type: org.openecomp.datatypes.network.IpRequirements
+ required: true
+ capabilities:
+ internal_connectionPoint:
+ type: tosca.capabilities.Node
+ valid_source_types:
+ - tosca.nodes.network.Port
requirements:
- virtualLink:
capability: tosca.capabilities.network.Linkable
@@ -505,15 +544,802 @@ node_types:
relationship: tosca.relationships.network.BindsTo
- external_virtualLink:
capability: tosca.capabilities.network.Linkable
- node: org.openecomp.resource.vl.nodes.network.VL
+ node: org.openecomp.resource.vl.nodes.network.Network
relationship: tosca.relationships.network.LinksTo
+
+ org.openecomp.resource.vfc.nodes.volume:
+ derived_from: tosca.nodes.BlockStorage
+
+ ### Node types related to Deployment Flavors
+ org.openecomp.resource.abstract.nodes.VnfConfiguration:
+ derived_from: tosca.nodes.Root
+ description: a container for the available flavors
+ properties:
+ allowed_flavors:
+ description: a collection of all available flavor valuesets
+ type: map
+ entry_schema:
+ type: org.openecomp.datatypes.flavors.DeploymentFlavor
+
+ org.openecomp.resource.abstract.nodes.MultiFlavorVFC:
+ derived_from: org.openecomp.resource.abstract.nodes.VFC
+ description: Multi flavored VFC node
+ properties:
+ images:
+ type: map
+ entry_schema:
+ type: org.openecomp.datatypes.ImageInfo
+ required: false
+
+ ## New node types for Port Mirroring
+ org.openecomp.nodes.ServiceProxy:
+ derived_from: tosca.nodes.Root
+
+ org.openecomp.nodes.PortMirroringConfiguration:
+ derived_from: tosca.nodes.Root
+ requirements:
+ - source:
+ capability: org.openecomp.capabilities.PortMirroring
+ occurrences:
+ - 1
+ - UNBOUNDED
+ - collector:
+ capability: org.openecomp.capabilities.PortMirroring
+ occurrences:
+ - 1
+ - 1
+
+ org.openecomp.resource.cp.v2.extCP:
+ derived_from: org.openecomp.resource.cp.nodes.network.Port
+ description: The SDC External Connection Point base type
capabilities:
- internal_connectionPoint:
- type: tosca.capabilities.Node
- valid_source_types:
- - tosca.nodes.network.Port
+ port_mirroring:
+ type: org.openecomp.capabilities.PortMirroring
+
+ org.openecomp.resource.cp.v2.extNeutronCP:
+ derived_from: org.openecomp.resource.cp.v2.extCP
+ properties:
+ port_security_enabled:
+ type: boolean
+ description: Flag to enable/disable port security on the network
+ required: false
+ status: SUPPORTED
+ device_id:
+ type: string
+ description: Device ID of this port
+ required: false
+ status: SUPPORTED
+ qos_policy:
+ type: string
+ description: The name or ID of QoS policy to attach to this network
+ required: false
+ status: SUPPORTED
+ allowed_address_pairs:
+ type: list
+ description: Additional MAC/IP address pairs allowed to pass through the port
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.AddressPair
+ binding:vnic_type:
+ type: string
+ description: The vnic type to be bound on the neutron port
+ required: false
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - macvtap
+ - direct
+ - normal
+ value_specs:
+ type: map
+ description: Extra parameters to include in the request
+ required: false
+ default: {
+ }
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ device_owner:
+ type: string
+ description: Name of the network owning the port
+ required: false
+ status: SUPPORTED
+ network:
+ type: string
+ description: Network this port belongs to
+ required: false
+ status: SUPPORTED
+ replacement_policy:
+ type: string
+ description: Policy on how to respond to a stack-update for this resource
+ required: false
+ default: AUTO
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - REPLACE_ALWAYS
+ - AUTO
+ security_groups:
+ type: list
+ description: List of security group names or IDs
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ fixed_ips:
+ type: list
+ description: Desired IPs for this port
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+ mac_address:
+ type: string
+ description: MAC address to give to this port
+ required: false
+ status: SUPPORTED
+ admin_state_up:
+ type: boolean
+ description: A boolean value specifying the administrative status of the network
+ required: false
+ default: true
+ status: SUPPORTED
+ name:
+ type: string
+ description: A symbolic name for this port
+ required: false
+ status: SUPPORTED
+ attributes:
+ tenant_id:
+ type: string
+ description: Tenant owning the port
+ status: SUPPORTED
+ network_id:
+ type: string
+ description: Unique identifier for the network owning the port
+ status: SUPPORTED
+ qos_policy_id:
+ type: string
+ description: The QoS policy ID attached to this network
+ status: SUPPORTED
+ show:
+ type: string
+ description: Detailed information about resource
+ status: SUPPORTED
+ subnets:
+ type: list
+ description: Subnets of this network
+ status: SUPPORTED
+ entry_schema:
+ type: string
+ status:
+ type: string
+ description: The status of the network
+ status: SUPPORTED
+ capabilities:
+ attachment:
+ type: tosca.capabilities.Attachment
occurrences:
- 1
- UNBOUNDED
- org.openecomp.resource.vfc.nodes.volume:
- derived_from: tosca.nodes.BlockStorage
+ binding:
+ type: tosca.capabilities.network.Bindable
+ valid_source_types:
+ - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ org.openecomp.resource.cp.v2.extContrailCP:
+ derived_from: org.openecomp.resource.cp.v2.extCP
+ properties:
+ static_routes:
+ type: list
+ description: An ordered list of static routes to be added to this interface
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.contrail.port.StaticRoute
+ virtual_network:
+ type: string
+ description: Virtual Network for this interface
+ required: true
+ status: SUPPORTED
+ static_route:
+ type: boolean
+ description: Static route enabled
+ required: false
+ default: false
+ status: SUPPORTED
+ allowed_address_pairs:
+ type: list
+ description: List of allowed address pair for this interface
+ required: false
+ status: SUPPORTED
+ entry_schema:
+ type: org.openecomp.datatypes.heat.network.contrail.AddressPair
+ shared_ip:
+ type: boolean
+ description: Shared ip enabled
+ required: false
+ default: false
+ status: SUPPORTED
+ ip_address:
+ type: string
+ description: IP for this interface
+ required: false
+ status: SUPPORTED
+ interface_type:
+ type: string
+ description: Interface type
+ required: true
+ status: SUPPORTED
+ constraints:
+ - valid_values:
+ - management
+ - left
+ - right
+ - other
+ attributes:
+ fq_name:
+ type: string
+ description: fq_name
+ status: SUPPORTED
+ tosca.nodes.nfv.NS.vEPC_NS:
+ derived_from: tosca.nodes.nfv.NS
+ properties:
+ vendor:
+ default: ChinaMobile
+ required: false
+ type: string
+ csarVersion:
+ default: v1.0
+ required: false
+ type: string
+ name:
+ default: vEPC_NS
+ required: false
+ type: string
+ csarProvider:
+ default: ChinaMobile
+ required: false
+ type: string
+ id:
+ default: vEPC_NS
+ required: false
+ type: string
+ version:
+ default: v1.0
+ required: false
+ type: string
+ csarType:
+ default: NSAR
+ required: false
+ type: string
+ requirements:
+ - virtualLink:
+ capability: tosca.capabilities.nfv.VirtualLinkable
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ tosca.nodes.nfv.NS.vIMS_NS:
+ derived_from: tosca.nodes.nfv.NS
+ properties:
+ vendor:
+ default: ChinaMobile
+ required: false
+ type: string
+ csarVersion:
+ default: v1.0
+ required: false
+ type: string
+ name:
+ default: vIMS_NS
+ required: false
+ type: string
+ csarProvider:
+ default: ChinaMobile
+ required: false
+ type: string
+ id:
+ default: vIMS_NS
+ required: false
+ type: string
+ version:
+ default: v1.0
+ required: false
+ type: string
+ csarType:
+ default: NSAR
+ required: false
+ type: string
+ requirements:
+ - virtualLink:
+ capability: tosca.capabilities.nfv.VirtualLinkable
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ tosca.nodes.nfv.NS:
+ derived_from: tosca.nodes.Root
+ properties:
+ vendor:
+ required: false
+ type: string
+ name:
+ required: false
+ type: string
+ id:
+ required: false
+ type: string
+ version:
+ required: false
+ type: string
+ requirements:
+ - virtualLink:
+ capability: tosca.capabilities.nfv.VirtualLinkable
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ tosca.nodes.nfv.VDU.Compute:
+ attributes:
+ private_address:
+ type: string
+ public_address:
+ type: string
+ networks:
+ type: string
+ ports:
+ type: string
+ capabilities:
+ scalable:
+ type: tosca.capabilities.Scalable
+ virtual_compute:
+ type: tosca.capabilities.nfv.VirtualCompute
+ endpoint:
+ type: tosca.capabilities.Endpoint.Admin
+ os:
+ type: tosca.capabilities.OperatingSystem
+ virtual_binding:
+ type: tosca.capabilities.nfv.VirtualBindable
+ host:
+ type: tosca.capabilities.Container
+ binding:
+ type: tosca.capabilities.network.Bindable
+ monitoring_parameter:
+ type: tosca.capabilities.nfv.Metric
+ derived_from: tosca.nodes.Root
+ properties:
+ configurable_properties:
+ entry_schema:
+ type: tosca.datatypes.nfv.VnfcConfigurableProperties
+ type: map
+ name:
+ type: string
+ nfvi_constraints:
+ entry_schema:
+ type: string
+ required: false
+ type: list
+ descrption:
+ type: string
+ boot_order:
+ entry_schema:
+ type: string
+ required: false
+ type: list
+ requirements:
+ - local_storage:
+ capability: tosca.capabilities.Attachment
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - virtual_storage:
+ capability: tosca.capabilities.nfv.VirtualStorage
+ occurrences:
+ - 0
+ - UNBOUNDED
+
+ tosca.nodes.nfv.VDU.VirtualStorage:
+ capabilities:
+ virtual_storage:
+ type: tosca.capabilities.nfv.VirtualStorage
+ derived_from: tosca.nodes.Root
+ properties:
+ id:
+ type: string
+ size_of_storage:
+ type: string
+ rdma_enabled:
+ required: false
+ type: boolean
+ type_of_storage:
+ type: string
+
+ tosca.nodes.nfv.VduCpd:
+ derived_from: tosca.nodes.Root
+ properties:
+ virtual_network_interface_requirements:
+ entry_schema:
+ type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements
+ required: false
+ type: list
+ role:
+ constraints:
+ - valid_values:
+ - root
+ - leaf
+ required: false
+ type: string
+ bitrate_requirement:
+ required: false
+ type: integer
+ description:
+ required: false
+ type: string
+ layer_protocol:
+ constraints:
+ - valid_values:
+ - ethernet
+ - mpls
+ - odu2
+ - ipv4
+ - ipv6
+ - pseudo_wire
+ type: string
+ address_data:
+ entry_schema:
+ type: tosca.datatype.nfv.AddressData
+ required: false
+ type: list
+ requirements:
+ - virtual_binding:
+ capability: tosca.capabilities.nfv.VirtualBindable
+ occurrences:
+ - 0
+ - UNBOUNDED
+ - virtual_link:
+ capability: tosca.capabilities.nfv.VirtualBindable
+ occurrences:
+ - 0
+ - UNBOUNDED
+ 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.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:
+ 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.VnfVirtualLinkDesc:
+ capabilities:
+ monitoring_parameters:
+ type: tosca.capabilities.nfv.Metric
+ virtual_linkable:
+ type: tosca.capabilities.nfv.VirtualLinkable
+ derived_from: tosca.nodes.Root
+ properties:
+ vl_flavours:
+ entry_schema:
+ type: string
+ type: map
+ description:
+ required: false
+ type: string
+ test_access:
+ entry_schema:
+ type: string
+ required: false
+ type: list
+ connectivity_type:
+ type: tosca.datatypes.nfv.ConnectivityType \ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/filedatastructuremodule/CandidateServiceImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/filedatastructuremodule/CandidateServiceImpl.java
index 4c38bd94a7..640777e993 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/filedatastructuremodule/CandidateServiceImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/filedatastructuremodule/CandidateServiceImpl.java
@@ -340,7 +340,8 @@ public class CandidateServiceImpl implements CandidateService {
Optional<String> jsonFileDataStructure =
orchestrationTemplateCandidateDataDao.getStructure(vspId, version);
- if (jsonFileDataStructure.isPresent()) {
+ if (jsonFileDataStructure.isPresent()
+ && JsonUtil.isValidJson(jsonFileDataStructure.get())) {
mdcDataDebugMessage.debugExitMessage("VSP Id", vspId);
return Optional
.of(JsonUtil.json2Object(jsonFileDataStructure.get(), FilesDataStructure.class));
diff --git a/openecomp-ui/resources/scss/modules/_licenseModelLimits.scss b/openecomp-ui/resources/scss/modules/_licenseModelLimits.scss
index 32fd128f2e..16b6af7cf9 100644
--- a/openecomp-ui/resources/scss/modules/_licenseModelLimits.scss
+++ b/openecomp-ui/resources/scss/modules/_licenseModelLimits.scss
@@ -38,23 +38,30 @@
.list-editor-item-view-content {
padding-left: 0;
}
- .svg-icon-wrapper.trashO {
- margin-bottom: 0;
+
+ .svg-icon {
+ margin-top: 10px;
margin-right: 50px;
- .svg-icon {
- fill: $gray;
- height: 16px;
- width: 16px;
- &:hover {
- fill: $dark-gray;
- }
- }
+ fill: $gray;
+ &:hover {
+ fill: $dark-gray;
+ }
}
+
&.selectable {
&:hover {
+ .list-editor-item-view-field {
+ .text.description, .text-name {
+ &:after {
+ background-color: darken($tlv-light-gray, 4%);
+ }
+ }
+
+ }
background-color: darken($tlv-light-gray, 4%);
cursor: pointer;
}
+
}
&:hover {
border-color: transparent;
@@ -65,20 +72,20 @@
display: flex;
align-items: center;
white-space: nowrap;
-
+
&.limit-name {
.text.name {
@extend .body-1-semibold;
color: $blue;
text-transform: uppercase;
- padding: 0px 10px;
+ margin-left : 45px;
}
border-right: 1px solid $light-gray;
margin-right: 22px;
flex: 0.4;
display: flex;
- justify-content: center;
+ justify-content: left;
}
&.limit-description {
@@ -90,10 +97,15 @@
max-width: 300px;
}
+
.text.description, .text.name {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
+ &:after {
+ background: $tlv-light-gray;
+ }
+
}
}