Enable identification of system deployed VFCs 10/128710/4
authorMichaelMorris <michael.morris@est.tech>
Thu, 14 Apr 2022 14:19:07 +0000 (15:19 +0100)
committerVasyl Razinkov <vasyl.razinkov@est.tech>
Thu, 21 Apr 2022 11:50:55 +0000 (11:50 +0000)
Signed-off-by: MichaelMorris <michael.morris@est.tech>
Issue-ID: SDC-3972
Change-Id: Ia3513020f508275827b34111c6eb2921204d9320

catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceImportManager.java
catalog-be/src/main/java/org/openecomp/sdc/be/servlets/AbstractValidationsServlet.java
catalog-be/src/test/java/org/openecomp/sdc/be/components/ResourceImportManagerTest.java
catalog-model/src/main/java/org/openecomp/sdc/be/model/NodeTypeMetadata.java
catalog-model/src/main/java/org/openecomp/sdc/be/model/UploadResourceInfo.java
catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/utils/ModelConverter.java
catalog-model/src/main/java/org/openecomp/sdc/be/model/mapper/NodeTypeMetadataMapper.java
common-be/src/main/java/org/openecomp/sdc/be/datatypes/components/ComponentMetadataDataDefinition.java
common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/JsonPresentationFields.java
common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/JsonPresentationFieldsExtractor.java

index 8c6e9cb..0681dd4 100644 (file)
@@ -148,7 +148,7 @@ public class ResourceImportManager {
         lifecycleChangeInfo.setUserRemarks("certification on import");
         Function<Resource, Boolean> validator = resource -> resourceBusinessLogic.validatePropertiesDefaultValues(resource);
         return importCertifiedResource(resourceYml, resourceMetaData, creator, validator, lifecycleChangeInfo, isInTransaction, createNewVersion,
-            needLock, null, null, false, null, null, false);
+                needLock, null, null, false, null, null, false);
     }
 
     public void importAllNormativeResource(final String resourcesYaml, final NodeTypesMetadataList nodeTypesMetadataList, final User user,
@@ -215,6 +215,7 @@ public class ResourceImportManager {
             setMetaDataFromJson(resourceMetaData, resource);
             populateResourceFromYaml(resourceYml, resource);
             validationFunction.apply(resource);
+            resource.getComponentMetadataDefinition().getMetadataDataDefinition().setNormative(resourceMetaData.isNormative());
             checkResourceExists(createNewVersion, csarInfo, resource);
             resource = resourceBusinessLogic
                 .createOrUpdateResourceByImport(resource, creator, true, isInTransaction, needLock, csarInfo, nodeName, isNested).left;
index 02f96ad..7c300b3 100644 (file)
@@ -292,6 +292,7 @@ public abstract class AbstractValidationsServlet extends BeGenericServlet {
             if (resourceInfoObject == null) {
                 isValid = false;
             } else {
+                resourceInfoObject.setNormative(!resourceAuthorityEnum.isUserTypeResource());
                 if (!resourceAuthorityEnum.isBackEndImport()) {
                     isValid = resourceInfoObject.getPayloadName() != null && !resourceInfoObject.getPayloadName().isEmpty();
                     //only resource name is checked
index 6f20e2d..80b5cf0 100644 (file)
@@ -155,7 +155,7 @@ public class ResourceImportManagerTest {
 
         testSetConstantMetaData(resource);
         testSetMetaDataFromJson(resource, resourceMD);
-
+        
         testSetDerivedFrom(resource);
         testSetProperties(resource);
 
@@ -432,6 +432,7 @@ public class ResourceImportManagerTest {
         resourceMD.setTags(Collections.singletonList("BlockStorage"));
         resourceMD.setDescription("Represents a server-local block storage device (i.e., not shared) offering evenly sized blocks of data from which raw storage volumes can be created.");
         resourceMD.setResourceVendorModelNumber("vendorReleaseNumber");
+        resourceMD.setNormative(true);
         return resourceMD;
     }
 
@@ -538,7 +539,7 @@ public class ResourceImportManagerTest {
         for (String tag : resource.getTags()) {
             assertTrue(resourceMD.getTags().contains(tag));
         }
-
+        assertEquals(resourceMD.isNormative(), resource.getComponentMetadataDefinition().getMetadataDataDefinition().isNormative());
     }
 
     private void testSetConstantMetaData(Resource resource) {
index da83b8f..ced62ac 100644 (file)
@@ -43,6 +43,7 @@ public class NodeTypeMetadata {
     private String vendorRelease;
     private String resourceVendorModelNumber;
     private String resourceType = ResourceTypeEnum.VFC.getValue();
+    private boolean isNormative = true;
     private List<String> tags;
     private List<CategoryDefinition> categories;
 
index dcb0116..e853b64 100644 (file)
@@ -21,12 +21,14 @@ package org.openecomp.sdc.be.model;
 
 import java.util.ArrayList;
 import java.util.List;
+import lombok.Data;
 import lombok.NoArgsConstructor;
 import org.openecomp.sdc.be.model.category.CategoryDefinition;
 import org.openecomp.sdc.be.model.category.SubCategoryDefinition;
 import org.openecomp.sdc.common.api.UploadArtifactInfo;
 
 @NoArgsConstructor
+@Data
 public class UploadResourceInfo {
 
     private String payloadData;
@@ -35,9 +37,16 @@ public class UploadResourceInfo {
     private List<String> tags;
     private List<CategoryDefinition> categories;
     private List<UploadArtifactInfo> artifactList;
-    private String contactId, name, resourceIconPath, icon, vendorName, vendorRelease, resourceVendorModelNumber;
+    private String contactId;
+    private String name;
+    private String resourceIconPath;
+    private String icon;
+    private String vendorName;
+    private String vendorRelease;
+    private String resourceVendorModelNumber;
     private String resourceType = "VFC";
     private String model;
+    private boolean isNormative;
 
     public UploadResourceInfo(String payload, String payloadName, String description, String category, List<String> tags,
                               List<UploadArtifactInfo> artifactsList, String modelName) {
@@ -61,249 +70,11 @@ public class UploadResourceInfo {
         }
     }
 
-    public String getPayloadData() {
-        return payloadData;
-    }
-
-    public void setPayloadData(String payload) {
-        this.payloadData = payload;
-    }
-
-    public String getPayloadName() {
-        return payloadName;
-    }
-
-    public void setPayloadName(String payloadName) {
-        this.payloadName = payloadName;
-    }
-
-    public String getDescription() {
-        return description;
-    }
-
-    public void setDescription(String description) {
-        this.description = description;
-    }
-
-    public List<String> getTags() {
-        return tags;
-    }
-
-    public void setTags(List<String> tags) {
-        this.tags = tags;
-    }
-
-    public List<UploadArtifactInfo> getArtifactList() {
-        return artifactList;
-    }
-
-    public void setArtifactList(List<UploadArtifactInfo> artifactsList) {
-        this.artifactList = artifactsList;
-    }
-
-    public String getModel() {
-        return model;
-    }
-
-    public void setModel(final String model) {
-        this.model = model;
-    }
-
-    @Override
-    public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + ((artifactList == null) ? 0 : artifactList.hashCode());
-        result = prime * result + ((contactId == null) ? 0 : contactId.hashCode());
-        result = prime * result + ((description == null) ? 0 : description.hashCode());
-        result = prime * result + ((icon == null) ? 0 : icon.hashCode());
-        result = prime * result + ((payloadData == null) ? 0 : payloadData.hashCode());
-        result = prime * result + ((payloadName == null) ? 0 : payloadName.hashCode());
-        result = prime * result + ((resourceIconPath == null) ? 0 : resourceIconPath.hashCode());
-        result = prime * result + ((name == null) ? 0 : name.hashCode());
-        result = prime * result + ((tags == null) ? 0 : tags.hashCode());
-        result = prime * result + ((vendorName == null) ? 0 : vendorName.hashCode());
-        result = prime * result + ((vendorRelease == null) ? 0 : vendorRelease.hashCode());
-        result = prime * result + ((model == null) ? 0 : model.hashCode());
-        result = prime * result + ((resourceVendorModelNumber == null) ? 0 : resourceVendorModelNumber.hashCode());
-        return result;
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj) {
-            return true;
-        }
-        if (obj == null) {
-            return false;
-        }
-        if (getClass() != obj.getClass()) {
-            return false;
-        }
-        UploadResourceInfo other = (UploadResourceInfo) obj;
-        if (artifactList == null) {
-            if (other.artifactList != null) {
-                return false;
-            }
-        } else if (!artifactList.equals(other.artifactList)) {
-            return false;
-        }
-        if (contactId == null) {
-            if (other.contactId != null) {
-                return false;
-            }
-        } else if (!contactId.equals(other.contactId)) {
-            return false;
-        }
-        if (description == null) {
-            if (other.description != null) {
-                return false;
-            }
-        } else if (!description.equals(other.description)) {
-            return false;
-        }
-        if (icon == null) {
-            if (other.icon != null) {
-                return false;
-            }
-        } else if (!icon.equals(other.icon)) {
-            return false;
-        }
-        if (payloadData == null) {
-            if (other.payloadData != null) {
-                return false;
-            }
-        } else if (!payloadData.equals(other.payloadData)) {
-            return false;
-        }
-        if (payloadName == null) {
-            if (other.payloadName != null) {
-                return false;
-            }
-        } else if (!payloadName.equals(other.payloadName)) {
-            return false;
-        }
-        if (resourceIconPath == null) {
-            if (other.resourceIconPath != null) {
-                return false;
-            }
-        } else if (!resourceIconPath.equals(other.resourceIconPath)) {
-            return false;
-        }
-        if (name == null) {
-            if (other.name != null) {
-                return false;
-            }
-        } else if (!name.equals(other.name)) {
-            return false;
-        }
-        if (tags == null) {
-            if (other.tags != null) {
-                return false;
-            }
-        } else if (!tags.equals(other.tags)) {
-            return false;
-        }
-        if (model == null) {
-            if (other.model != null) {
-                return false;
-            }
-        } else if (!model.equals(other.model)) {
-            return false;
-        }
-        if (vendorName == null) {
-            if (other.vendorName != null) {
-                return false;
-            }
-        } else if (!vendorName.equals(other.vendorName)) {
-            return false;
-        }
-        if (resourceVendorModelNumber == null) {
-            if (other.resourceVendorModelNumber != null) {
-                return false;
-            }
-        } else if (!resourceVendorModelNumber.equals(other.resourceVendorModelNumber)) {
-            return false;
-        }
-        if (vendorRelease == null) {
-            if (other.vendorRelease != null) {
-                return false;
-            }
-        } else if (!vendorRelease.equals(other.vendorRelease)) {
-            return false;
-        }
-        return true;
-    }
-
-    public String getContactId() {
-        return contactId;
-    }
-
-    public void setContactId(String userId) {
-        this.contactId = userId;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String resourceName) {
-        this.name = resourceName;
-    }
-
     // Icon when using UI import otherwise resourceIconPath
     public String getResourceIconPath() {
         return (resourceIconPath != null) ? resourceIconPath : icon;
     }
 
-    public void setResourceIconPath(String resourceIconPath) {
-        this.resourceIconPath = resourceIconPath;
-    }
-
-    public String getVendorName() {
-        return vendorName;
-    }
-
-    public void setVendorName(String vendorName) {
-        this.vendorName = vendorName;
-    }
-
-    public String getVendorRelease() {
-        return vendorRelease;
-    }
-
-    public void setVendorRelease(String vendorRelease) {
-        this.vendorRelease = vendorRelease;
-    }
-
-    public String getResourceVendorModelNumber() {
-        return resourceVendorModelNumber;
-    }
-
-    public void setResourceVendorModelNumber(String resourceVendorModelNumber) {
-        this.resourceVendorModelNumber = resourceVendorModelNumber;
-    }
-
-    public void setIcon(String icon) {
-        this.icon = icon;
-    }
-
-    public String getResourceType() {
-        return resourceType;
-    }
-
-    public void setResourceType(String resourceType) {
-        this.resourceType = resourceType;
-    }
-
-    public List<CategoryDefinition> getCategories() {
-        return categories;
-    }
-
-    public void setCategories(List<CategoryDefinition> categories) {
-        this.categories = categories;
-    }
-
     public void addSubCategory(String category, String subCategory) {
         if (category != null || subCategory != null) {
             if (categories == null) {
index 16d225a..6dfaebc 100644 (file)
@@ -743,6 +743,8 @@ public class ModelConverter {
             } else {
                 resource.setResourceVendorModelNumber("");
             }
+            Boolean isNormative = toscaElement.getMetadataValue(JsonPresentationFields.NORMATIVE) == null ? false : (Boolean) toscaElement.getMetadataValue(JsonPresentationFields.NORMATIVE);
+            resource.getComponentMetadataDefinition().getMetadataDataDefinition().setNormative(isNormative);
         } else if (component.getComponentType() == ComponentTypeEnum.SERVICE) {
             Service service = (Service) component;
             if (((String) toscaElement.getMetadataValue(JsonPresentationFields.SERVICE_TYPE)) != null) {
@@ -1308,6 +1310,7 @@ public class ModelConverter {
             } else {
                 toscaElement.setMetadataValue(JsonPresentationFields.RESOURCE_VENDOR_MODEL_NUMBER, "");
             }
+            toscaElement.setMetadataValue(JsonPresentationFields.NORMATIVE, ((Resource) component).getComponentMetadataDefinition().getMetadataDataDefinition().isNormative());
         } else if (component.getComponentType() == ComponentTypeEnum.SERVICE) {
             // field isn't mandatory , but shouldn't be null(should be an empty string instead)
             if (((Service) component).getServiceType() != null) {
index feef044..2073081 100644 (file)
@@ -46,6 +46,7 @@ public class NodeTypeMetadataMapper {
         uploadResourceInfo.setResourceType(nodeTypeMetadata.getResourceType());
         uploadResourceInfo.setTags(nodeTypeMetadata.getTags());
         uploadResourceInfo.setCategories(nodeTypeMetadata.getCategories());
+        uploadResourceInfo.setNormative(nodeTypeMetadata.isNormative());
         return uploadResourceInfo;
     }
 
index d6588e9..4b94adb 100644 (file)
@@ -74,6 +74,7 @@ public abstract class ComponentMetadataDataDefinition extends ToscaDataDefinitio
     private Boolean isVspArchived = false;
     private Map<String, String> categorySpecificMetadata;
     private String model;
+    private boolean normative = false;
 
     protected ComponentMetadataDataDefinition(ComponentMetadataDataDefinition other) {
         this.uniqueId = other.getUniqueId();
@@ -102,6 +103,7 @@ public abstract class ComponentMetadataDataDefinition extends ToscaDataDefinitio
         this.archiveTime = other.getArchiveTime();
         this.categorySpecificMetadata = other.getCategorySpecificMetadata();
         this.model = other.getModel();
+        this.normative = other.isNormative();
     }
 
     protected ComponentMetadataDataDefinition(JsonPresentationFieldsExtractor extractor) {
@@ -129,6 +131,7 @@ public abstract class ComponentMetadataDataDefinition extends ToscaDataDefinitio
         this.isVspArchived = extractor.isVspArchived();
         this.archiveTime = extractor.getArchiveTime();
         this.model = extractor.getModel();
+        this.normative = extractor.isNormative() == null ? false: extractor.isNormative();
     }
 
     public void setUniqueId(String uniqueId) {
index a3acb42..6e845a0 100644 (file)
@@ -70,6 +70,7 @@ public enum JsonPresentationFields {
     DERIVED_FROM_GENERIC_VERSION("derivedFromGenericVersion", null),
     SERVICE_FUNCTION("serviceFunction", null),
     MODEL("model", null),
+    NORMATIVE("normative", null),
     DATA_TYPES("data_types", GraphPropertyEnum.DATA_TYPES),
 
     ////Inputs
index a0b2143..f497066 100644 (file)
@@ -173,4 +173,8 @@ public class JsonPresentationFieldsExtractor {
     public String getModel() {
         return (String) properties.get(JsonPresentationFields.MODEL.getPresentation());
     }
+    
+    public Boolean isNormative() {
+        return (Boolean) properties.get(JsonPresentationFields.NORMATIVE.getPresentation());
+    }
 }