Support deletion of archived VFs in SDC BE 27/128727/12
authorfranciscovila <javier.paradela.vila@est.tech>
Tue, 26 Apr 2022 17:06:03 +0000 (18:06 +0100)
committerMichael Morris <michael.morris@est.tech>
Thu, 28 Apr 2022 12:26:09 +0000 (12:26 +0000)
Support deletion of archived VFs in SDC BE

Issue-ID: SDC-3973
Signed-off-by: franciscovila <javier.paradela.vila@est.tech>
Change-Id: I0bb18e627c026b794609c2a57806c7a4f925741b

13 files changed:
catalog-be/src/main/docker/backend/chef-repo/cookbooks/sdc-catalog-be/files/default/error-configuration.yaml
catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java
catalog-be/src/main/java/org/openecomp/sdc/be/impl/ComponentsUtils.java
catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ResourcesServlet.java
catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogicTest.java
catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/CheckoutTest.java
catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourceServletTest.java
catalog-be/src/test/resources/config/catalog-be/error-configuration.yaml
catalog-dao/src/main/java/org/openecomp/sdc/be/dao/janusgraph/JanusGraphDao.java
catalog-model/src/main/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/ToscaOperationFacade.java
catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/StorageOperationStatus.java
catalog-model/src/test/java/org/openecomp/sdc/be/model/jsonjanusgraph/operations/ToscaOperationFacadeTest.java
common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/DeleteActionEnum.java [new file with mode: 0644]

index 9e7939d..b539bd0 100644 (file)
@@ -2635,7 +2635,7 @@ errors:
         messageId: "SVC4163"
     }
 
-    #---------SVC4164-----------------------------
+    #---------SVC4692-----------------------------
     # %1 - Component name
     COMPONENT_NOT_ARCHIVED: {
         code: 403,
@@ -2643,13 +2643,14 @@ errors:
         messageId: "SVC4692"
     }
 
-    #---------SVC4165-----------------------------
+    #---------SVC4693-----------------------------
     # %1 - List of services
     COMPONENT_IN_USE_BY_ANOTHER_COMPONENT: {
         code: 403,
         message: "Component is in use by '%1'",
         messageId: "SVC4693"
     }
+
     #---------SVC4164-----------------------------
     # %1 - componentType
     # %2 - component name
@@ -2657,4 +2658,5 @@ errors:
         code: 409,
         message: "System deployed '%1' cannot be deleted '%2'",
         messageId: "SVC4164"
-    }
\ No newline at end of file
+    }
+
index f4952b6..e11dbb3 100644 (file)
  */
 package org.openecomp.sdc.be.components.impl;
 
-import static java.util.stream.Collectors.toList;
-import static java.util.stream.Collectors.toMap;
-import static java.util.stream.Collectors.toSet;
-import static org.apache.commons.collections.CollectionUtils.isNotEmpty;
-import static org.apache.commons.collections.MapUtils.isEmpty;
-import static org.apache.commons.collections.MapUtils.isNotEmpty;
-import static org.openecomp.sdc.be.components.impl.ImportUtils.findFirstToscaStringElement;
-import static org.openecomp.sdc.be.components.impl.ImportUtils.getPropertyJsonStringValue;
-import static org.openecomp.sdc.be.tosca.CsarUtils.VF_NODE_TYPE_ARTIFACTS_PATH_PATTERN;
-import static org.openecomp.sdc.common.api.Constants.DEFAULT_GROUP_VF_MODULE;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.EnumMap;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Objects;
-import java.util.Optional;
-import java.util.Set;
-import java.util.function.Function;
-import java.util.regex.Pattern;
-import java.util.stream.Collectors;
-
+import com.google.common.annotations.VisibleForTesting;
+import fj.data.Either;
 import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.MapUtils;
@@ -158,6 +131,7 @@ import org.openecomp.sdc.be.model.operations.api.IGroupTypeOperation;
 import org.openecomp.sdc.be.model.operations.api.IInterfaceLifecycleOperation;
 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
 import org.openecomp.sdc.be.model.operations.impl.InterfaceLifecycleOperation;
+import org.openecomp.sdc.be.model.operations.impl.ModelOperation;
 import org.openecomp.sdc.be.model.operations.impl.UniqueIdBuilder;
 import org.openecomp.sdc.be.model.operations.utils.ComponentValidationUtils;
 import org.openecomp.sdc.be.model.tosca.ToscaPropertyType;
@@ -188,9 +162,34 @@ import org.springframework.context.annotation.Lazy;
 import org.yaml.snakeyaml.DumperOptions;
 import org.yaml.snakeyaml.Yaml;
 
-import com.google.common.annotations.VisibleForTesting;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EnumMap;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.Set;
+import java.util.function.Function;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
 
-import fj.data.Either;
+import static java.util.stream.Collectors.toList;
+import static java.util.stream.Collectors.toMap;
+import static java.util.stream.Collectors.toSet;
+import static org.apache.commons.collections.CollectionUtils.isNotEmpty;
+import static org.apache.commons.collections.MapUtils.isEmpty;
+import static org.apache.commons.collections.MapUtils.isNotEmpty;
+import static org.openecomp.sdc.be.components.impl.ImportUtils.findFirstToscaStringElement;
+import static org.openecomp.sdc.be.components.impl.ImportUtils.getPropertyJsonStringValue;
+import static org.openecomp.sdc.be.tosca.CsarUtils.VF_NODE_TYPE_ARTIFACTS_PATH_PATTERN;
+import static org.openecomp.sdc.common.api.Constants.DEFAULT_GROUP_VF_MODULE;
 
 @org.springframework.stereotype.Component("resourceBusinessLogic")
 public class ResourceBusinessLogic extends ComponentBusinessLogic {
@@ -226,6 +225,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
     private LifecycleBusinessLogic lifecycleBusinessLogic;
     private final DataTypeBusinessLogic dataTypeBusinessLogic;
     private final PolicyTypeBusinessLogic policyTypeBusinessLogic;
+    private final ModelOperation modelOperation;
 
     @Autowired
     private ICapabilityTypeOperation capabilityTypeOperation;
@@ -258,10 +258,11 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                                  final ComponentProjectCodeValidator componentProjectCodeValidator,
                                  final ComponentDescriptionValidator componentDescriptionValidator, final PolicyBusinessLogic policyBusinessLogic,
                                  final ModelBusinessLogic modelBusinessLogic,
-                                 final DataTypeBusinessLogic dataTypeBusinessLogic, final PolicyTypeBusinessLogic policyTypeBusinessLogic) {
+                                 final DataTypeBusinessLogic dataTypeBusinessLogic, final PolicyTypeBusinessLogic policyTypeBusinessLogic,
+                                 final ModelOperation modelOperation) {
         super(elementDao, groupOperation, groupInstanceOperation, groupTypeOperation, groupBusinessLogic, interfaceOperation,
-            interfaceLifecycleTypeOperation, artifactsBusinessLogic, artifactToscaOperation, componentContactIdValidator, componentNameValidator,
-            componentTagsValidator, componentValidator, componentIconValidator, componentProjectCodeValidator, componentDescriptionValidator);
+                interfaceLifecycleTypeOperation, artifactsBusinessLogic, artifactToscaOperation, componentContactIdValidator, componentNameValidator,
+                componentTagsValidator, componentValidator, componentIconValidator, componentProjectCodeValidator, componentDescriptionValidator);
         this.componentInstanceBusinessLogic = componentInstanceBusinessLogic;
         this.resourceImportManager = resourceImportManager;
         this.inputsBusinessLogic = inputsBusinessLogic;
@@ -277,6 +278,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         this.modelBusinessLogic = modelBusinessLogic;
         this.dataTypeBusinessLogic = dataTypeBusinessLogic;
         this.policyTypeBusinessLogic = policyTypeBusinessLogic;
+        this.modelOperation = modelOperation;
     }
 
     static <T> Either<T, RuntimeException> rollbackWithEither(final JanusGraphDao janusGraphDao, final ActionStatus actionStatus,
@@ -386,7 +388,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                                                                                    String userId) {
         validateUserExists(userId);
         Either<Boolean, StorageOperationStatus> dataModelResponse = toscaOperationFacade
-            .validateComponentNameUniqueness(resourceName, resourceTypeEnum, ComponentTypeEnum.RESOURCE);
+                .validateComponentNameUniqueness(resourceName, resourceTypeEnum, ComponentTypeEnum.RESOURCE);
         // DE242223
         janusGraphDao.commit();
         if (dataModelResponse.isLeft()) {
@@ -396,7 +398,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             return Either.left(result);
         }
         ResponseFormat responseFormat = componentsUtils
-            .getResponseFormat(componentsUtils.convertFromStorageResponse(dataModelResponse.right().value()));
+                .getResponseFormat(componentsUtils.convertFromStorageResponse(dataModelResponse.right().value()));
         return Either.right(responseFormat);
     }
 
@@ -405,7 +407,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         validateResourceBeforeCreate(resource, user, false);
         String csarUUID = payloadName == null ? resource.getCsarUUID() : payloadName;
         loggerSupportability.log(LoggerSupportabilityActions.CREATE_RESOURCE, resource.getComponentMetadataForSupportLog(), StatusCode.STARTED,
-            "Starting to create resource from CSAR by user {} ", user.getUserId());
+                "Starting to create resource from CSAR by user {} ", user.getUserId());
         if (StringUtils.isNotEmpty(csarUUID)) {
             csarBusinessLogic.validateCsarBeforeCreate(resource, auditingAction, user, csarUUID);
             log.debug("CsarUUID is {} - going to create resource from CSAR", csarUUID);
@@ -444,7 +446,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                 updatedResource = updateResourceMetadata(resourceUniqueId, resource, oldResource, user, false);
             } else {
                 updatedResource = updateResourceFromCsar(oldResource, resource, user, AuditingActionEnum.UPDATE_RESOURCE_METADATA, false,
-                    csarUIPayload, csarUUID);
+                        csarUIPayload, csarUUID);
             }
         } else {
             log.debug("Failed to update resource {}, csarUUID or payload name is missing", resource.getSystemName());
@@ -468,16 +470,16 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
 
         // name
         Either<Resource, StorageOperationStatus> resourceLinkedToCsarRes = toscaOperationFacade
-            .getLatestComponentByCsarOrName(ComponentTypeEnum.RESOURCE, csarUUID, resource.getSystemName());
+                .getLatestComponentByCsarOrName(ComponentTypeEnum.RESOURCE, csarUUID, resource.getSystemName());
         if (resourceLinkedToCsarRes.isRight()) {
             if (StorageOperationStatus.NOT_FOUND != resourceLinkedToCsarRes.right().value()) {
                 log.debug("Failed to find previous resource by CSAR {} and system name {}", csarUUID, resource.getSystemName());
                 throw new StorageException(resourceLinkedToCsarRes.right().value());
             }
         } else if (!resourceLinkedToCsarRes.left().value().getUniqueId().equals(oldResource.getUniqueId()) && !resourceLinkedToCsarRes.left().value()
-            .getName().equals(oldResource.getName())) {
+                .getName().equals(oldResource.getName())) {
             ResponseFormat errorResponse = componentsUtils
-                .getResponseFormat(ActionStatus.VSP_ALREADY_EXISTS, csarUUID, resourceLinkedToCsarRes.left().value().getName());
+                    .getResponseFormat(ActionStatus.VSP_ALREADY_EXISTS, csarUUID, resourceLinkedToCsarRes.left().value().getName());
             componentsUtils.auditResource(errorResponse, user, resource, AuditingActionEnum.UPDATE_RESOURCE_METADATA);
             throw new ByActionStatusComponentException(ActionStatus.VSP_ALREADY_EXISTS, csarUUID, resourceLinkedToCsarRes.left().value().getName());
         }
@@ -494,9 +496,9 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         String oldCsarUUID = oldResource.getCsarUUID();
         if (oldCsarUUID != null && !oldCsarUUID.isEmpty() && !csarUUID.equals(oldCsarUUID)) {
             log.debug("Failed to update resource with UniqueId {} using Csar {}, since the resource is linked to a different VSP {}",
-                resourceUniqueId, csarUUID, oldCsarUUID);
+                    resourceUniqueId, csarUUID, oldCsarUUID);
             ResponseFormat errorResponse = componentsUtils
-                .getResponseFormat(ActionStatus.RESOURCE_LINKED_TO_DIFFERENT_VSP, resource.getName(), csarUUID, oldCsarUUID);
+                    .getResponseFormat(ActionStatus.RESOURCE_LINKED_TO_DIFFERENT_VSP, resource.getName(), csarUUID, oldCsarUUID);
             componentsUtils.auditResource(errorResponse, user, resource, AuditingActionEnum.UPDATE_RESOURCE_METADATA);
             throw new ByActionStatusComponentException(ActionStatus.RESOURCE_LINKED_TO_DIFFERENT_VSP, resource.getName(), csarUUID, oldCsarUUID);
         }
@@ -529,16 +531,16 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         lockComponent(lockedResourceId, oldResource, "update Resource From Csar");
         Map<String, NodeTypeInfo> nodeTypesInfo = csarInfo.extractTypesInfo();
         Either<Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>>, ResponseFormat> findNodeTypesArtifactsToHandleRes = findNodeTypesArtifactsToHandle(
-            nodeTypesInfo, csarInfo, oldResource);
+                nodeTypesInfo, csarInfo, oldResource);
         if (findNodeTypesArtifactsToHandleRes.isRight()) {
             log.debug("failed to find node types for update with artifacts during import csar {}. ", csarInfo.getCsarUUID());
             throw new ByResponseFormatComponentException(findNodeTypesArtifactsToHandleRes.right().value());
         }
         Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = findNodeTypesArtifactsToHandleRes.left()
-            .value();
+                .value();
         try {
             updatedResource = updateResourceFromYaml(oldResource, newResource, updateResource, createdArtifacts, csarInfo.getMainTemplateName(),
-                csarInfo.getMainTemplateContent(), csarInfo, nodeTypesInfo, nodeTypesArtifactsToHandle, null, false);
+                    csarInfo.getMainTemplateContent(), csarInfo, nodeTypesInfo, nodeTypesArtifactsToHandle, null, false);
         } catch (ComponentException | StorageException e) {
             rollback(inTransaction, newResource, createdArtifacts, null);
             throw e;
@@ -552,9 +554,9 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
 
     private void validateLifecycleState(Resource oldResource, User user) {
         if (LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT == oldResource.getLifecycleState() && !oldResource.getLastUpdaterUserId()
-            .equals(user.getUserId())) {
+                .equals(user.getUserId())) {
             log.debug("#validateLifecycleState - Current user is not last updater, last updater userId: {}, current user userId: {}",
-                oldResource.getLastUpdaterUserId(), user.getUserId());
+                    oldResource.getLastUpdaterUserId(), user.getUserId());
             throw new ByActionStatusComponentException(ActionStatus.RESTRICTED_OPERATION);
         }
     }
@@ -570,44 +572,44 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         ParsedToscaYamlInfo uploadComponentInstanceInfoMap;
         try {
             uploadComponentInstanceInfoMap = csarBusinessLogic
-                .getParsedToscaYamlInfo(yamlFileContent, yamlFileName, nodeTypesInfo, csarInfo, nodeName, oldResource);
+                    .getParsedToscaYamlInfo(yamlFileContent, yamlFileName, nodeTypesInfo, csarInfo, nodeName, oldResource);
             Map<String, UploadComponentInstanceInfo> instances = uploadComponentInstanceInfoMap.getInstances();
             if (MapUtils.isEmpty(instances) && newResource.getResourceType() != ResourceTypeEnum.PNF) {
                 throw new ByActionStatusComponentException(ActionStatus.NOT_TOPOLOGY_TOSCA_TEMPLATE, yamlFileName);
             }
             preparedResource = updateExistingResourceByImport(newResource, oldResource, csarInfo.getModifier(), inTransaction, shouldLock,
-                isNested).left;
+                    isNested).left;
             log.trace("YAML topology file found in CSAR, file name: {}, contents: {}", yamlFileName, yamlFileContent);
             handleResourceGenericType(preparedResource, yamlFileContent, uploadComponentInstanceInfoMap,
-                uploadComponentInstanceInfoMap.getSubstitutionMappingNodeType());
+                    uploadComponentInstanceInfoMap.getSubstitutionMappingNodeType());
             handleNodeTypes(yamlFileName, preparedResource, yamlFileContent, shouldLock, nodeTypesArtifactsToHandle, createdArtifacts, nodeTypesInfo,
-                csarInfo, nodeName, newResource.getModel());
+                    csarInfo, nodeName, newResource.getModel());
             preparedResource = createInputsOnResource(preparedResource, uploadComponentInstanceInfoMap.getInputs());
             Map<String, Resource> existingNodeTypesByResourceNames = new HashMap<>();
             final Map<String, UploadComponentInstanceInfo> instancesToCreate = getInstancesToCreate(uploadComponentInstanceInfoMap,
-                newResource.getModel());
+                    newResource.getModel());
             preparedResource = createResourceInstances(yamlFileName, preparedResource, oldResource, instancesToCreate, csarInfo.getCreatedNodes(),
-                existingNodeTypesByResourceNames);
+                    existingNodeTypesByResourceNames);
             preparedResource = createResourceInstancesRelations(csarInfo.getModifier(), yamlFileName, preparedResource, oldResource,
-                instancesToCreate,
-                existingNodeTypesByResourceNames);
+                    instancesToCreate,
+                    existingNodeTypesByResourceNames);
         } catch (ComponentException e) {
             ResponseFormat responseFormat =
-                e.getResponseFormat() == null ? componentsUtils.getResponseFormat(e.getActionStatus(), e.getParams()) : e.getResponseFormat();
+                    e.getResponseFormat() == null ? componentsUtils.getResponseFormat(e.getActionStatus(), e.getParams()) : e.getResponseFormat();
             log.debug("#updateResourceFromYaml - failed to update newResource from yaml {} .The error is {}", yamlFileName, responseFormat);
             componentsUtils
-                .auditResource(responseFormat, csarInfo.getModifier(), preparedResource == null ? oldResource : preparedResource, actionEnum);
+                    .auditResource(responseFormat, csarInfo.getModifier(), preparedResource == null ? oldResource : preparedResource, actionEnum);
             throw e;
         } catch (StorageException e) {
             ResponseFormat responseFormat = componentsUtils
-                .getResponseFormat(componentsUtils.convertFromStorageResponse(e.getStorageOperationStatus()));
+                    .getResponseFormat(componentsUtils.convertFromStorageResponse(e.getStorageOperationStatus()));
             log.debug("#updateResourceFromYaml - failed to update newResource from yaml {} .The error is {}", yamlFileName, responseFormat);
             componentsUtils
-                .auditResource(responseFormat, csarInfo.getModifier(), preparedResource == null ? oldResource : preparedResource, actionEnum);
+                    .auditResource(responseFormat, csarInfo.getModifier(), preparedResource == null ? oldResource : preparedResource, actionEnum);
             throw e;
         }
         Either<Map<String, GroupDefinition>, ResponseFormat> validateUpdateVfGroupNamesRes = groupBusinessLogic
-            .validateUpdateVfGroupNames(uploadComponentInstanceInfoMap.getGroups(), preparedResource.getSystemName());
+                .validateUpdateVfGroupNames(uploadComponentInstanceInfoMap.getGroups(), preparedResource.getSystemName());
         if (validateUpdateVfGroupNamesRes.isRight()) {
             throw new ByResponseFormatComponentException(validateUpdateVfGroupNamesRes.right().value());
         }
@@ -623,7 +625,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         preparedResource = updateGroupsOnResource(preparedResource, groups);
         NodeTypeInfoToUpdateArtifacts nodeTypeInfoToUpdateArtifacts = new NodeTypeInfoToUpdateArtifacts(nodeName, nodeTypesArtifactsToHandle);
         Either<Resource, ResponseFormat> updateArtifactsEither = createOrUpdateArtifacts(ArtifactOperationEnum.UPDATE, createdArtifacts, yamlFileName,
-            csarInfo, preparedResource, nodeTypeInfoToUpdateArtifacts, inTransaction, shouldLock);
+                csarInfo, preparedResource, nodeTypeInfoToUpdateArtifacts, inTransaction, shouldLock);
         if (updateArtifactsEither.isRight()) {
             log.debug("failed to update artifacts {}", updateArtifactsEither.right().value());
             throw new ByResponseFormatComponentException(updateArtifactsEither.right().value());
@@ -649,7 +651,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             Map<String, ArtifactDefinition> createdNewArtifacts = preparedResource.getDeploymentArtifacts();
             if (DEFAULT_GROUP_VF_MODULE.equals(group.getType())) {
                 List<PropertyDataDefinition> volumePropList = group.getProperties().stream().filter(p -> "volume_group".equals(p.getName()))
-                    .collect(Collectors.toList());
+                        .collect(Collectors.toList());
                 if (!volumePropList.isEmpty()) {
                     PropertyDataDefinition volumeProp = volumePropList.get(0);
                     if (volumeProp != null) {
@@ -669,14 +671,14 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             log.debug("Failed to update groups name : oldResource or preparedResource is null");
         } else if (CollectionUtils.isNotEmpty(oldResource.getGroups()) && CollectionUtils.isNotEmpty(preparedResource.getGroups())) {
             Map<String, String> oldGroups = oldResource.getGroups().stream()
-                .collect(toMap(GroupDataDefinition::getInvariantName, GroupDataDefinition::getName));
+                    .collect(toMap(GroupDataDefinition::getInvariantName, GroupDataDefinition::getName));
             List<GroupDefinition> updatedGroups = preparedResource.getGroups().stream()
-                .filter(group -> oldGroups.containsKey(group.getInvariantName()) && !group.getName().equals(oldGroups.get(group.getInvariantName())))
-                .collect(toList());
+                    .filter(group -> oldGroups.containsKey(group.getInvariantName()) && !group.getName().equals(oldGroups.get(group.getInvariantName())))
+                    .collect(toList());
             if (CollectionUtils.isNotEmpty(updatedGroups)) {
                 if (isTopologyChanged) {
                     updatedGroups.stream().filter(group -> !group.isVspOriginated())
-                        .forEach(group -> group.setName(oldGroups.get(group.getInvariantName())));
+                            .forEach(group -> group.setName(oldGroups.get(group.getInvariantName())));
                 } else {
                     updatedGroups.forEach(group -> group.setName(oldGroups.get(group.getInvariantName())));
                 }
@@ -691,10 +693,10 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         } else {
             if (CollectionUtils.isNotEmpty(oldResource.getComponentInstances())) {
                 Map<String, String> oldInstances = oldResource.getComponentInstances().stream()
-                    .collect(toMap(ComponentInstance::getInvariantName, ComponentInstance::getName));
+                        .collect(toMap(ComponentInstance::getInvariantName, ComponentInstance::getName));
                 List<ComponentInstance> updatedInstances = preparedResource.getComponentInstances().stream()
-                    .filter(i -> oldInstances.containsKey(i.getInvariantName()) && !i.getName().equals(oldInstances.get(i.getInvariantName())))
-                    .collect(toList());
+                        .filter(i -> oldInstances.containsKey(i.getInvariantName()) && !i.getName().equals(oldInstances.get(i.getInvariantName())))
+                        .collect(toList());
                 if (CollectionUtils.isNotEmpty(updatedInstances)) {
                     if (isTopologyChanged) {
                         updatedInstances.stream().filter(i -> !i.isCreatedFromCsar()).forEach(i -> i.setName(oldInstances.get(i.getInvariantName())));
@@ -704,7 +706,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                 }
             }
             componentInstanceBusinessLogic.updateComponentInstance(ComponentTypeEnum.RESOURCE_PARAM_NAME, null, preparedResource.getUniqueId(),
-                csarInfo.getModifier().getUserId(), preparedResource.getComponentInstances(), false);
+                    csarInfo.getModifier().getUserId(), preparedResource.getComponentInstances(), false);
         }
     }
 
@@ -715,18 +717,18 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         String nodeName = nodeTypeInfoToUpdateArtifacts.getNodeName();
         Resource resource = preparedResource;
         Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = nodeTypeInfoToUpdateArtifacts
-            .getNodeTypesArtifactsToHandle();
+                .getNodeTypesArtifactsToHandle();
         if (preparedResource.getResourceType() == ResourceTypeEnum.CVFC) {
             if (nodeName != null && nodeTypesArtifactsToHandle.get(nodeName) != null && !nodeTypesArtifactsToHandle.get(nodeName).isEmpty()) {
                 Either<List<ArtifactDefinition>, ResponseFormat> handleNodeTypeArtifactsRes = handleNodeTypeArtifacts(preparedResource,
-                    nodeTypesArtifactsToHandle.get(nodeName), createdArtifacts, csarInfo.getModifier(), inTransaction, true);
+                        nodeTypesArtifactsToHandle.get(nodeName), createdArtifacts, csarInfo.getModifier(), inTransaction, true);
                 if (handleNodeTypeArtifactsRes.isRight()) {
                     return Either.right(handleNodeTypeArtifactsRes.right().value());
                 }
             }
         } else {
             Either<Resource, ResponseFormat> createdCsarArtifactsEither = handleVfCsarArtifacts(preparedResource, csarInfo, createdArtifacts,
-                new ArtifactOperationInfo(false, false, operation), shouldLock, inTransaction);
+                    new ArtifactOperationInfo(false, false, operation), shouldLock, inTransaction);
             log.trace("************* Finished to add artifacts from yaml {}", yamlFileName);
             if (createdCsarArtifactsEither.isRight()) {
                 return createdCsarArtifactsEither;
@@ -749,15 +751,15 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                                                final ParsedToscaYamlInfo parsedToscaYamlInfo, final String substitutionMappingNodeType) {
         if (processSubstitutableAsNodeType(resource, parsedToscaYamlInfo)) {
             final Map<String, Object> substitutableAsNodeType = getSubstitutableAsNodeTypeFromTemplate(
-                (Map<String, Object>) new Yaml().load(topologyTemplateYaml), substitutionMappingNodeType);
+                    (Map<String, Object>) new Yaml().load(topologyTemplateYaml), substitutionMappingNodeType);
             final Resource genericResource = fetchAndSetDerivedFromGenericType(resource,
-                (String) substitutableAsNodeType.get(TypeUtils.ToscaTagNamesEnum.DERIVED_FROM.getElementName()));
+                    (String) substitutableAsNodeType.get(TypeUtils.ToscaTagNamesEnum.DERIVED_FROM.getElementName()));
 
             generatePropertiesFromGenericType(resource, genericResource);
             generatePropertiesFromNodeType(resource, substitutableAsNodeType);
             final String resourceId = resource.getUniqueId();
             resource.getProperties().forEach(propertyDefinition -> propertyDefinition.setUniqueId(
-                UniqueIdBuilder.buildPropertyUniqueId(resourceId, propertyDefinition.getName())));
+                    UniqueIdBuilder.buildPropertyUniqueId(resourceId, propertyDefinition.getName())));
             createResourcePropertiesOnGraph(resource);
             return genericResource;
         }
@@ -765,19 +767,19 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
     }
 
     private Either<Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>>, ResponseFormat> findNodeTypesArtifactsToHandle(
-        final Map<String, NodeTypeInfo> nodeTypesInfo, final CsarInfo csarInfo, final Resource oldResource) {
+            final Map<String, NodeTypeInfo> nodeTypesInfo, final CsarInfo csarInfo, final Resource oldResource) {
         final Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
         Either<Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>>, ResponseFormat> nodeTypesArtifactsToHandleRes = Either
-            .left(nodeTypesArtifactsToHandle);
+                .left(nodeTypesArtifactsToHandle);
         try {
             final Map<String, List<ArtifactDefinition>> extractedVfcsArtifacts = CsarUtils.extractVfcsArtifactsFromCsar(csarInfo.getCsar());
             final Map<String, ImmutablePair<String, String>> extractedVfcToscaNames = extractVfcToscaNames(nodeTypesInfo, oldResource.getName(),
-                csarInfo);
+                    csarInfo);
             log.debug("Going to fetch node types for resource with name {} during import csar with UUID {}. ", oldResource.getName(),
-                csarInfo.getCsarUUID());
+                    csarInfo.getCsarUUID());
             extractedVfcToscaNames.forEach(
-                (namespace, vfcToscaNames) -> findAddNodeTypeArtifactsToHandle(csarInfo, nodeTypesArtifactsToHandle, oldResource,
-                    extractedVfcsArtifacts, namespace, vfcToscaNames));
+                    (namespace, vfcToscaNames) -> findAddNodeTypeArtifactsToHandle(csarInfo, nodeTypesArtifactsToHandle, oldResource,
+                            extractedVfcsArtifacts, namespace, vfcToscaNames));
         } catch (Exception e) {
             final ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.GENERAL_ERROR);
             nodeTypesArtifactsToHandleRes = Either.right(responseFormat);
@@ -807,8 +809,8 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             List<ArtifactDefinition> artifactsToDelete = new ArrayList<>();
             // delete all informational artifacts
             artifactsToDelete.addAll(
-                curNodeType.getArtifacts().values().stream().filter(a -> a.getArtifactGroupType() == ArtifactGroupTypeEnum.INFORMATIONAL)
-                    .collect(toList()));
+                    curNodeType.getArtifacts().values().stream().filter(a -> a.getArtifactGroupType() == ArtifactGroupTypeEnum.INFORMATIONAL)
+                            .collect(toList()));
             // delete all deployment artifacts
             artifactsToDelete.addAll(curNodeType.getDeploymentArtifacts().values());
             if (!artifactsToDelete.isEmpty()) {
@@ -825,12 +827,12 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         if (status != null && status != StorageOperationStatus.NOT_FOUND) {
             log.debug("Error occurred during fetching node type with tosca name {}, error: {}", currVfcToscaName, status);
             ResponseFormat responseFormat = componentsUtils
-                .getResponseFormat(componentsUtils.convertFromStorageResponse(status), csarInfo.getCsarUUID());
+                    .getResponseFormat(componentsUtils.convertFromStorageResponse(status), csarInfo.getCsarUUID());
             componentsUtils.auditResource(responseFormat, csarInfo.getModifier(), resource, AuditingActionEnum.CREATE_RESOURCE);
             throw new ByActionStatusComponentException(componentsUtils.convertFromStorageResponse(status), csarInfo.getCsarUUID());
         } else if (StringUtils.isNotEmpty(currVfcToscaName)) {
             return (Resource) toscaOperationFacade.getLatestByToscaResourceName(currVfcToscaName, resource.getModel()).left()
-                .on(st -> findVfcResource(csarInfo, resource, previousVfcToscaName, null, st));
+                    .on(st -> findVfcResource(csarInfo, resource, previousVfcToscaName, null, st));
         }
         return null;
     }
@@ -842,7 +844,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             List<ArtifactDefinition> artifactsToUpdate = new ArrayList<>();
             List<ArtifactDefinition> artifactsToDelete = new ArrayList<>();
             processExistingNodeTypeArtifacts(extractedArtifacts, artifactsToUpload, artifactsToUpdate, artifactsToDelete,
-                collectExistingArtifacts(curNodeType));
+                    collectExistingArtifacts(curNodeType));
             return putFoundArtifacts(artifactsToUpload, artifactsToUpdate, artifactsToDelete);
         } catch (Exception e) {
             log.debug("Exception occurred when findNodeTypeArtifactsToHandle, error is:{}", e.getMessage(), e);
@@ -881,7 +883,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
     private void processNodeTypeArtifact(List<ArtifactDefinition> artifactsToUpload, List<ArtifactDefinition> artifactsToUpdate,
                                          Map<String, ArtifactDefinition> existingArtifacts, ArtifactDefinition currNewArtifact) {
         Optional<ArtifactDefinition> foundArtifact = existingArtifacts.values().stream()
-            .filter(a -> a.getArtifactName().equals(currNewArtifact.getArtifactName())).findFirst();
+                .filter(a -> a.getArtifactName().equals(currNewArtifact.getArtifactName())).findFirst();
         if (foundArtifact.isPresent()) {
             if (foundArtifact.get().getArtifactType().equals(currNewArtifact.getArtifactType())) {
                 updateFoundArtifact(artifactsToUpdate, currNewArtifact, foundArtifact.get());
@@ -890,7 +892,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             } else {
                 log.debug("Can't upload two artifact with the same name {}.", currNewArtifact.getArtifactName());
                 throw new ByActionStatusComponentException(ActionStatus.ARTIFACT_ALREADY_EXIST_IN_DIFFERENT_TYPE_IN_CSAR,
-                    currNewArtifact.getArtifactName(), currNewArtifact.getArtifactType(), foundArtifact.get().getArtifactType());
+                        currNewArtifact.getArtifactName(), currNewArtifact.getArtifactType(), foundArtifact.get().getArtifactType());
             }
         }
     }
@@ -915,8 +917,8 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         }
         if (MapUtils.isNotEmpty(curNodeType.getArtifacts())) {
             existingArtifacts.putAll(
-                curNodeType.getArtifacts().entrySet().stream().filter(e -> e.getValue().getArtifactGroupType() == ArtifactGroupTypeEnum.INFORMATIONAL)
-                    .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)));
+                    curNodeType.getArtifacts().entrySet().stream().filter(e -> e.getValue().getArtifactGroupType() == ArtifactGroupTypeEnum.INFORMATIONAL)
+                            .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)));
         }
         return existingArtifacts;
     }
@@ -933,14 +935,14 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         Either<Resource, ResponseFormat> checkoutResourceRes;
         try {
             if (!resource.getComponentMetadataDefinition().getMetadataDataDefinition().getState()
-                .equals(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT.name())) {
+                    .equals(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT.name())) {
                 log.debug("************* Going to change life cycle state of resource {} to not certified checked out. ", resource.getName());
                 Either<? extends Component, ResponseFormat> checkoutRes = lifecycleBusinessLogic
-                    .changeComponentState(resource.getComponentType(), resource.getUniqueId(), user, LifeCycleTransitionEnum.CHECKOUT,
-                        new LifecycleChangeInfoWithAction(CERTIFICATION_ON_IMPORT, LifecycleChanceActionEnum.CREATE_FROM_CSAR), inTransaction, true);
+                        .changeComponentState(resource.getComponentType(), resource.getUniqueId(), user, LifeCycleTransitionEnum.CHECKOUT,
+                                new LifecycleChangeInfoWithAction(CERTIFICATION_ON_IMPORT, LifecycleChanceActionEnum.CREATE_FROM_CSAR), inTransaction, true);
                 if (checkoutRes.isRight()) {
                     log.debug("Could not change state of component {} with uid {} to checked out. Status is {}. ",
-                        resource.getComponentType().getNodeType(), resource.getUniqueId(), checkoutRes.right().value().getStatus());
+                            resource.getComponentType().getNodeType(), resource.getUniqueId(), checkoutRes.right().value().getStatus());
                     checkoutResourceRes = Either.right(checkoutRes.right().value());
                 } else {
                     checkoutResourceRes = Either.left((Resource) checkoutRes.left().value());
@@ -986,8 +988,8 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                 if (curArtifactsToHandle != null && !curArtifactsToHandle.isEmpty()) {
                     log.debug("************* Going to {} artifact to vfc {}", curOperation.name(), nodeTypeResource.getName());
                     handleNodeTypeArtifactsRequestRes = artifactsBusinessLogic
-                        .handleArtifactsRequestForInnerVfcComponent(curArtifactsToHandle, nodeTypeResource, user, createdArtifacts,
-                            new ArtifactOperationInfo(false, ignoreLifecycleState, curOperation), false, inTransaction);
+                            .handleArtifactsRequestForInnerVfcComponent(curArtifactsToHandle, nodeTypeResource, user, createdArtifacts,
+                                    new ArtifactOperationInfo(false, ignoreLifecycleState, curOperation), false, inTransaction);
                     if (ArtifactOperationEnum.isCreateOrLink(curOperation)) {
                         createdArtifacts.addAll(handleNodeTypeArtifactsRequestRes);
                     }
@@ -1010,7 +1012,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         if (!nodes.isEmpty()) {
             for (Entry<String, Object> nodeType : nodes.entrySet()) {
                 final ImmutablePair<String, String> toscaResourceName = buildNestedToscaResourceName(ResourceTypeEnum.VFC.name(), vfResourceName,
-                    nodeType.getKey());
+                        nodeType.getKey());
                 vfcToscaNames.put(nodeType.getKey(), toscaResourceName);
             }
         }
@@ -1031,7 +1033,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
 
     private void extractNodeTypes(Map<String, Object> nodes, Map<String, Object> mappedToscaTemplate) {
         Either<Map<String, Object>, ResultStatusEnum> eitherNodeTypes = ImportUtils
-            .findFirstToscaMapElement(mappedToscaTemplate, TypeUtils.ToscaTagNamesEnum.NODE_TYPES);
+                .findFirstToscaMapElement(mappedToscaTemplate, TypeUtils.ToscaTagNamesEnum.NODE_TYPES);
         if (eitherNodeTypes.isLeft()) {
             nodes.putAll(eitherNodeTypes.left().value());
         }
@@ -1040,8 +1042,8 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
     public Resource createResourceFromCsar(Resource resource, User user, Map<String, byte[]> csarUIPayload, String csarUUID) {
         log.trace("************* created successfully from YAML, resource TOSCA ");
         loggerSupportability
-            .log(LoggerSupportabilityActions.CREATE_RESOURCE_FROM_YAML, StatusCode.STARTED, "Starting to create Resource From Csar by user {}",
-                user.getUserId());
+                .log(LoggerSupportabilityActions.CREATE_RESOURCE_FROM_YAML, StatusCode.STARTED, "Starting to create Resource From Csar by user {}",
+                        user.getUserId());
         CsarInfo csarInfo = csarBusinessLogic.getCsarInfo(resource, null, user, csarUIPayload, csarUUID);
         Map<String, NodeTypeInfo> nodeTypesInfo = csarInfo.extractTypesInfo();
         final String model = resource.getModel();
@@ -1058,22 +1060,22 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                 policyTypeBusinessLogic.createPolicyTypeFromYaml(new Yaml().dump(policyTypesToCreate), model, true);
             }
         }
-        
+
         Either<Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>>, ResponseFormat> findNodeTypesArtifactsToHandleRes = findNodeTypesArtifactsToHandle(
-            nodeTypesInfo, csarInfo, resource);
+                nodeTypesInfo, csarInfo, resource);
         if (findNodeTypesArtifactsToHandleRes.isRight()) {
             log.debug("failed to find node types for update with artifacts during import csar {}. ", csarInfo.getCsarUUID());
             loggerSupportability
-                .log(LoggerSupportabilityActions.CREATE_RESOURCE_FROM_YAML, resource.getComponentMetadataForSupportLog(), StatusCode.ERROR,
-                    "error: {}", findNodeTypesArtifactsToHandleRes.right().value());
+                    .log(LoggerSupportabilityActions.CREATE_RESOURCE_FROM_YAML, resource.getComponentMetadataForSupportLog(), StatusCode.ERROR,
+                            "error: {}", findNodeTypesArtifactsToHandleRes.right().value());
             throw new ByResponseFormatComponentException(findNodeTypesArtifactsToHandleRes.right().value());
         }
         Resource vfResource = createResourceFromYaml(resource, csarInfo.getMainTemplateContent(), csarInfo.getMainTemplateName(), nodeTypesInfo,
-            csarInfo, findNodeTypesArtifactsToHandleRes.left().value(), true, false, null);
+                csarInfo, findNodeTypesArtifactsToHandleRes.left().value(), true, false, null);
         log.trace("*************VF Resource created successfully from YAML, resource TOSCA name: {}", vfResource.getToscaResourceName());
         loggerSupportability
-            .log(LoggerSupportabilityActions.CREATE_RESOURCE_FROM_YAML, StatusCode.COMPLETE, "Ended create Resource From Csar by user {}",
-                user.getUserId());
+                .log(LoggerSupportabilityActions.CREATE_RESOURCE_FROM_YAML, StatusCode.COMPLETE, "Ended create Resource From Csar by user {}",
+                        user.getUserId());
         return vfResource;
     }
 
@@ -1097,27 +1099,27 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         Resource createdResource;
         try {
             ParsedToscaYamlInfo parsedToscaYamlInfo = csarBusinessLogic
-                .getParsedToscaYamlInfo(topologyTemplateYaml, yamlName, nodeTypesInfo, csarInfo, nodeName, resource);
+                    .getParsedToscaYamlInfo(topologyTemplateYaml, yamlName, nodeTypesInfo, csarInfo, nodeName, resource);
             if (MapUtils.isEmpty(parsedToscaYamlInfo.getInstances()) && resource.getResourceType() != ResourceTypeEnum.PNF) {
                 throw new ByActionStatusComponentException(ActionStatus.NOT_TOPOLOGY_TOSCA_TEMPLATE, yamlName);
             }
             log.debug("#createResourceFromYaml - Going to create resource {} and RIs ", resource.getName());
             loggerSupportability
-                .log(LoggerSupportabilityActions.CREATE_RESOURCE_FROM_YAML, resource.getComponentMetadataForSupportLog(), StatusCode.STARTED, "");
+                    .log(LoggerSupportabilityActions.CREATE_RESOURCE_FROM_YAML, resource.getComponentMetadataForSupportLog(), StatusCode.STARTED, "");
             createdResource = createResourceAndRIsFromYaml(yamlName, resource, parsedToscaYamlInfo, AuditingActionEnum.IMPORT_RESOURCE, false,
-                createdArtifacts, topologyTemplateYaml, nodeTypesInfo, csarInfo, nodeTypesArtifactsToCreate, shouldLock, inTransaction, nodeName);
+                    createdArtifacts, topologyTemplateYaml, nodeTypesInfo, csarInfo, nodeTypesArtifactsToCreate, shouldLock, inTransaction, nodeName);
             log.debug("#createResourceFromYaml - The resource {} has been created ", resource.getName());
             loggerSupportability
-                .log(LoggerSupportabilityActions.CREATE_RESOURCE_FROM_YAML, resource.getComponentMetadataForSupportLog(), StatusCode.COMPLETE,
-                    "The resource has been created: {}", resource.getName());
+                    .log(LoggerSupportabilityActions.CREATE_RESOURCE_FROM_YAML, resource.getComponentMetadataForSupportLog(), StatusCode.COMPLETE,
+                            "The resource has been created: {}", resource.getName());
         } catch (ComponentException e) {
             ResponseFormat responseFormat =
-                e.getResponseFormat() == null ? componentsUtils.getResponseFormat(e.getActionStatus(), e.getParams()) : e.getResponseFormat();
+                    e.getResponseFormat() == null ? componentsUtils.getResponseFormat(e.getActionStatus(), e.getParams()) : e.getResponseFormat();
             componentsUtils.auditResource(responseFormat, csarInfo.getModifier(), resource, AuditingActionEnum.IMPORT_RESOURCE);
             throw e;
         } catch (StorageException e) {
             ResponseFormat responseFormat = componentsUtils
-                .getResponseFormat(componentsUtils.convertFromStorageResponse(e.getStorageOperationStatus()));
+                    .getResponseFormat(componentsUtils.convertFromStorageResponse(e.getStorageOperationStatus()));
             componentsUtils.auditResource(responseFormat, csarInfo.getModifier(), resource, AuditingActionEnum.IMPORT_RESOURCE);
             throw e;
         }
@@ -1138,7 +1140,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         mapToConvert.put(TypeUtils.ToscaTagNamesEnum.TOSCA_VERSION.getElementName(), toscaVersion.left().value());
         final Map<String, Object> nodeTypes = getNodeTypesFromTemplate(mappedToscaTemplate, substitutableAsNodeType);
         createNodeTypes(yamlName, resource, needLock, nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo, mapToConvert,
-            nodeTypes);
+                nodeTypes);
         return csarInfo.getCreatedNodes();
     }
 
@@ -1200,17 +1202,17 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         while (nodesNameValueIter.hasNext()) {
             Entry<String, Object> nodeType = nodesNameValueIter.next();
             Map<ArtifactOperationEnum, List<ArtifactDefinition>> nodeTypeArtifactsToHandle =
-                nodeTypesArtifactsToHandle == null || nodeTypesArtifactsToHandle.isEmpty() ? null : nodeTypesArtifactsToHandle.get(nodeType.getKey());
+                    nodeTypesArtifactsToHandle == null || nodeTypesArtifactsToHandle.isEmpty() ? null : nodeTypesArtifactsToHandle.get(nodeType.getKey());
             if (nodeTypesInfo.containsKey(nodeType.getKey())) {
                 log.trace("************* Going to handle nested vfc {}", nodeType.getKey());
                 vfcCreated = handleNestedVfc(resource, nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo,
-                    nodeType.getKey());
+                        nodeType.getKey());
                 log.trace("************* Finished to handle nested vfc {}", nodeType.getKey());
             } else if (csarInfo.getCreatedNodesToscaResourceNames() != null && !csarInfo.getCreatedNodesToscaResourceNames()
-                .containsKey(nodeType.getKey())) {
+                    .containsKey(nodeType.getKey())) {
                 log.trace("************* Going to create node {}", nodeType.getKey());
                 ImmutablePair<Resource, ActionStatus> resourceCreated = createNodeTypeResourceFromYaml(yamlName, nodeType, csarInfo.getModifier(),
-                    mapToConvert, resource, needLock, nodeTypeArtifactsToHandle, nodeTypesNewCreatedArtifacts, true, csarInfo, true);
+                        mapToConvert, resource, needLock, nodeTypeArtifactsToHandle, nodeTypesNewCreatedArtifacts, true, csarInfo, true);
                 log.debug("************* Finished to create node {}", nodeType.getKey());
                 vfcCreated = resourceCreated.getLeft();
                 csarInfo.getCreatedNodesToscaResourceNames().put(nodeType.getKey(), vfcCreated.getToscaResourceName());
@@ -1229,7 +1231,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         Map<String, Object> nestedVfcJsonMap = nodesInfo.get(nodeName).getMappedToscaTemplate();
         log.debug("************* Going to create node types from yaml {}", yamlName);
         createResourcesFromYamlNodeTypesList(yamlName, resource, nestedVfcJsonMap, false, nodesArtifactsToHandle, createdArtifacts,
-            Collections.emptyMap(), csarInfo, resource.getModel());
+                Collections.emptyMap(), csarInfo, resource.getModel());
         log.debug("************* Finished to create node types from yaml {}", yamlName);
         if (nestedVfcJsonMap.containsKey(TypeUtils.ToscaTagNamesEnum.TOPOLOGY_TEMPLATE.getElementName())) {
             log.debug("************* Going to handle complex VFC from yaml {}", yamlName);
@@ -1245,28 +1247,28 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         Resource oldComplexVfc = null;
         Resource newComplexVfc = buildValidComplexVfc(resource, csarInfo, nodeName, nodesInfo);
         Either<Resource, StorageOperationStatus> oldComplexVfcRes = toscaOperationFacade
-            .getFullLatestComponentByToscaResourceName(newComplexVfc.getToscaResourceName());
+                .getFullLatestComponentByToscaResourceName(newComplexVfc.getToscaResourceName());
         if (oldComplexVfcRes.isRight() && oldComplexVfcRes.right().value() == StorageOperationStatus.NOT_FOUND) {
             oldComplexVfcRes = toscaOperationFacade.getFullLatestComponentByToscaResourceName(
-                buildNestedToscaResourceName(ResourceTypeEnum.CVFC.name(), csarInfo.getVfResourceName(), nodeName).getRight());
+                    buildNestedToscaResourceName(ResourceTypeEnum.CVFC.name(), csarInfo.getVfResourceName(), nodeName).getRight());
         }
         if (oldComplexVfcRes.isRight() && oldComplexVfcRes.right().value() != StorageOperationStatus.NOT_FOUND) {
             log.debug("Failed to fetch previous complex VFC by tosca resource name {}. Status is {}. ", newComplexVfc.getToscaResourceName(),
-                oldComplexVfcRes.right().value());
+                    oldComplexVfcRes.right().value());
             throw new ByActionStatusComponentException(ActionStatus.GENERAL_ERROR);
         } else if (oldComplexVfcRes.isLeft()) {
             log.debug(VALIDATE_DERIVED_BEFORE_UPDATE);
             final Either<Boolean, ResponseFormat> eitherValidation = validateNestedDerivedFromDuringUpdate(oldComplexVfcRes.left().value(),
-                newComplexVfc, ValidationUtils.hasBeenCertified(oldComplexVfcRes.left().value().getVersion()));
+                    newComplexVfc, ValidationUtils.hasBeenCertified(oldComplexVfcRes.left().value().getVersion()));
             if (eitherValidation.isLeft()) {
                 oldComplexVfc = oldComplexVfcRes.left().value();
             }
         }
         newComplexVfc = handleComplexVfc(nodesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo, nodeName, yamlName, oldComplexVfc,
-            newComplexVfc);
+                newComplexVfc);
         csarInfo.getCreatedNodesToscaResourceNames().put(nodeName, newComplexVfc.getToscaResourceName());
         final LifecycleChangeInfoWithAction lifecycleChangeInfo = new LifecycleChangeInfoWithAction(CERTIFICATION_ON_IMPORT,
-            LifecycleChanceActionEnum.CREATE_FROM_CSAR);
+                LifecycleChanceActionEnum.CREATE_FROM_CSAR);
         log.debug("Going to certify cvfc {}. ", newComplexVfc.getName());
         final Resource result = propagateStateToCertified(csarInfo.getModifier(), newComplexVfc, lifecycleChangeInfo, true, false, true);
         csarInfo.getCreatedNodes().put(nodeName, result);
@@ -1284,10 +1286,10 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         CsarInfo.markNestedVfc(mappedToscaTemplate, newNodeTypesInfo);
         if (oldComplexVfc == null) {
             handleComplexVfcRes = createResourceFromYaml(newComplexVfc, yamlContent, yamlName, newNodeTypesInfo, csarInfo, nodesArtifactsToHandle,
-                false, true, nodeName);
+                    false, true, nodeName);
         } else {
             handleComplexVfcRes = updateResourceFromYaml(oldComplexVfc, newComplexVfc, AuditingActionEnum.UPDATE_RESOURCE_METADATA, createdArtifacts,
-                yamlContent, yamlName, csarInfo, newNodeTypesInfo, nodesArtifactsToHandle, nodeName, true);
+                    yamlContent, yamlName, csarInfo, newNodeTypesInfo, nodesArtifactsToHandle, nodeName, true);
         }
         return handleComplexVfcRes;
     }
@@ -1320,7 +1322,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         final String singleVfcYaml = buildNodeTypeYaml(nodeNameValue, mapToConvert, resourceMetaData.getResourceType(), csarInfo);
         user = validateUser(user, "CheckIn Resource", resourceVf, AuditingActionEnum.CHECKIN_RESOURCE, true);
         return createResourceFromNodeType(singleVfcYaml, resourceMetaData, user, true, needLock, nodeTypeArtifactsToHandle,
-            nodeTypesNewCreatedArtifacts, forceCertificationAllowed, csarInfo, nodeNameValue.getKey(), isNested);
+                nodeTypesNewCreatedArtifacts, forceCertificationAllowed, csarInfo, nodeNameValue.getKey(), isNested);
     }
 
     private String buildNodeTypeYaml(final Entry<String, Object> nodeNameValue, final Map<String, Object> mapToConvert, final String nodeResourceType,
@@ -1333,7 +1335,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         final Yaml yaml = new Yaml(options);
         final Map<String, Object> node = new HashMap<>();
         node.put(buildNestedToscaResourceName(nodeResourceType, csarInfo.getVfResourceName(), nodeNameValue.getKey()).getLeft(),
-            nodeNameValue.getValue());
+                nodeNameValue.getValue());
         mapToConvert.put(TypeUtils.ToscaTagNamesEnum.NODE_TYPES.getElementName(), node);
         return yaml.dumpAsMap(mapToConvert);
     }
@@ -1350,11 +1352,11 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                                                                             boolean forceCertificationAllowed, CsarInfo csarInfo, String nodeName,
                                                                             boolean isNested) {
         LifecycleChangeInfoWithAction lifecycleChangeInfo = new LifecycleChangeInfoWithAction(CERTIFICATION_ON_IMPORT,
-            LifecycleChanceActionEnum.CREATE_FROM_CSAR);
+                LifecycleChanceActionEnum.CREATE_FROM_CSAR);
         Function<Resource, Boolean> validator = resource -> validateResourceCreationFromNodeType(resource, creator);
         return resourceImportManager
-            .importCertifiedResource(nodeTypeYaml, resourceMetaData, creator, validator, lifecycleChangeInfo, isInTransaction, true, needLock,
-                nodeTypeArtifactsToHandle, nodeTypesNewCreatedArtifacts, forceCertificationAllowed, csarInfo, nodeName, isNested);
+                .importCertifiedResource(nodeTypeYaml, resourceMetaData, creator, validator, lifecycleChangeInfo, isInTransaction, true, needLock,
+                        nodeTypeArtifactsToHandle, nodeTypesNewCreatedArtifacts, forceCertificationAllowed, csarInfo, nodeName, isNested);
     }
 
     /**
@@ -1389,7 +1391,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         final String namePrefix = nodeName.replace(actualName, "");
         String resourceType = namePrefix.substring(nodeTypeNamePrefix.length());
         log.debug("initial  namePrefix:{} resourceType {}. nodeName {} , actualName {} prefix {}", namePrefix, resourceType, nodeName, actualName,
-            nodeTypeNamePrefix);
+                nodeTypeNamePrefix);
         // if we import from csar, the node_type name can be
 
         // org.openecomp.resource.abstract.node_name - in this case we always
@@ -1496,30 +1498,30 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         try {
             log.trace("************* createResourceFromYaml before full create resource {}", yamlName);
             loggerSupportability.log(LoggerSupportabilityActions.CREATE_INPUTS, resource.getComponentMetadataForSupportLog(), StatusCode.STARTED,
-                "Starting to add inputs from yaml: {}", yamlName);
+                    "Starting to add inputs from yaml: {}", yamlName);
             if (processSubstitutableAsNodeType(resource, parsedToscaYamlInfo)) {
                 final Map<String, Object> substitutableAsNodeType = getSubstitutableAsNodeTypeFromTemplate(
-                    (Map<String, Object>) new Yaml().load(topologyTemplateYaml), parsedToscaYamlInfo.getSubstitutionMappingNodeType());
+                        (Map<String, Object>) new Yaml().load(topologyTemplateYaml), parsedToscaYamlInfo.getSubstitutionMappingNodeType());
                 resource.setToscaResourceName(parsedToscaYamlInfo.getSubstitutionMappingNodeType());
                 final Resource genericResource = fetchAndSetDerivedFromGenericType(resource,
-                    (String) substitutableAsNodeType.get(TypeUtils.ToscaTagNamesEnum.DERIVED_FROM.getElementName()));
+                        (String) substitutableAsNodeType.get(TypeUtils.ToscaTagNamesEnum.DERIVED_FROM.getElementName()));
                 resource = createResourceTransaction(resource, csarInfo.getModifier(), isNormative);
                 generatePropertiesFromGenericType(resource, genericResource);
                 generatePropertiesFromNodeType(resource, substitutableAsNodeType);
                 final String resourceId = resource.getUniqueId();
                 resource.getProperties().forEach(propertyDefinition -> propertyDefinition.setUniqueId(
-                    UniqueIdBuilder.buildPropertyUniqueId(resourceId, propertyDefinition.getName())));
+                        UniqueIdBuilder.buildPropertyUniqueId(resourceId, propertyDefinition.getName())));
 
                 createResourcePropertiesOnGraph(resource);
                 final Map<String, UploadComponentInstanceInfo> instancesToCreate = getInstancesToCreate(parsedToscaYamlInfo, resource.getModel());
 
                 log.trace("************* Going to create nodes, RI's and Relations  from yaml {}", yamlName);
                 loggerSupportability
-                    .log(LoggerSupportabilityActions.CREATE_RESOURCE_FROM_YAML, resource.getComponentMetadataForSupportLog(), StatusCode.STARTED,
-                        "Start create nodes, RI and Relations  from yaml: {}", yamlName);
+                        .log(LoggerSupportabilityActions.CREATE_RESOURCE_FROM_YAML, resource.getComponentMetadataForSupportLog(), StatusCode.STARTED,
+                                "Start create nodes, RI and Relations  from yaml: {}", yamlName);
                 resource = createRIAndRelationsFromYaml(yamlName, resource, instancesToCreate, topologyTemplateYaml,
-                    nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo, nodeTypesArtifactsToCreate, nodeName,
-                    parsedToscaYamlInfo.getSubstitutionMappingNodeType());
+                        nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo, nodeTypesArtifactsToCreate, nodeName,
+                        parsedToscaYamlInfo.getSubstitutionMappingNodeType());
             } else {
                 final Resource genericResource = fetchAndSetDerivedFromGenericType(resource, null);
                 resource = createResourceTransaction(resource, csarInfo.getModifier(), isNormative);
@@ -1533,7 +1535,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
 
                 log.trace("************* Finish to add inputs from yaml {}", yamlName);
                 loggerSupportability.log(LoggerSupportabilityActions.CREATE_INPUTS, resource.getComponentMetadataForSupportLog(), StatusCode.COMPLETE,
-                    "Finish to add inputs from yaml: {}", yamlName);
+                        "Finish to add inputs from yaml: {}", yamlName);
                 if (resource.getResourceType() == ResourceTypeEnum.PNF) {
                     log.trace("************* Adding generic properties to PNF");
                     resource = (Resource) propertyBusinessLogic.copyPropertyToComponent(resource, genericResource.getProperties());
@@ -1541,23 +1543,23 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                     softwareInformationBusinessLogic.setSoftwareInformation(resource, csarInfo);
                     log.trace("************* Removing non-mano software information file from PNF");
                     if (csarInfo.getSoftwareInformationPath().isPresent() && !softwareInformationBusinessLogic.removeSoftwareInformationFile(
-                        csarInfo)) {
+                            csarInfo)) {
                         log.warn(EcompLoggerErrorCode.BUSINESS_PROCESS_ERROR, ResourceBusinessLogic.class.getName(), "catalog-be",
-                            "Could not remove the software information file.");
+                                "Could not remove the software information file.");
                     }
                 }
                 final Map<String, UploadComponentInstanceInfo> instancesToCreate = getInstancesToCreate(parsedToscaYamlInfo);
 
                 log.trace("************* Going to create nodes, RI's and Relations  from yaml {}", yamlName);
                 loggerSupportability
-                    .log(LoggerSupportabilityActions.CREATE_RESOURCE_FROM_YAML, resource.getComponentMetadataForSupportLog(), StatusCode.STARTED,
-                        "Start create nodes, RI and Relations  from yaml: {}", yamlName);
+                        .log(LoggerSupportabilityActions.CREATE_RESOURCE_FROM_YAML, resource.getComponentMetadataForSupportLog(), StatusCode.STARTED,
+                                "Start create nodes, RI and Relations  from yaml: {}", yamlName);
                 resource = createRIAndRelationsFromYaml(yamlName, resource, instancesToCreate, topologyTemplateYaml,
-                    nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo, nodeTypesArtifactsToCreate, nodeName, null);
+                        nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo, nodeTypesArtifactsToCreate, nodeName, null);
             }
             log.trace("************* Finished to create nodes, RI and Relation  from yaml {}", yamlName);
             loggerSupportability.log(LoggerSupportabilityActions.CREATE_RELATIONS, resource.getComponentMetadataForSupportLog(), StatusCode.COMPLETE,
-                "Finished to create nodes, RI and Relation  from yaml: {}", yamlName);
+                    "Finished to create nodes, RI and Relation  from yaml: {}", yamlName);
             // validate update vf module group names
             Optional<Map<String, GroupDefinition>> asdGroups = checkAndCreateAsdTypeVfModules(parsedToscaYamlInfo.getInstances());
             Map<String, GroupDefinition> parsedGroups = parsedToscaYamlInfo.getGroups();
@@ -1565,7 +1567,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                 parsedGroups.putAll(asdGroups.get());
             }
             final Either<Map<String, GroupDefinition>, ResponseFormat> validateUpdateVfGroupNamesRes = groupBusinessLogic
-                .validateUpdateVfGroupNames(parsedGroups, resource.getSystemName());
+                    .validateUpdateVfGroupNames(parsedGroups, resource.getSystemName());
             if (validateUpdateVfGroupNamesRes.isRight()) {
                 rollback(inTransaction, resource, createdArtifacts, nodeTypesNewCreatedArtifacts);
                 throw new ByResponseFormatComponentException(validateUpdateVfGroupNamesRes.right().value());
@@ -1574,7 +1576,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             final Map<String, GroupDefinition> groups;
             log.trace("************* Going to add groups from yaml {}", yamlName);
             loggerSupportability.log(LoggerSupportabilityActions.CREATE_GROUPS, resource.getComponentMetadataForSupportLog(), StatusCode.STARTED,
-                "Start to add groups from yaml: {}", yamlName);
+                    "Start to add groups from yaml: {}", yamlName);
             if (!validateUpdateVfGroupNamesRes.left().value().isEmpty()) {
                 groups = validateUpdateVfGroupNamesRes.left().value();
             } else {
@@ -1584,16 +1586,16 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             if (createGroupsOnResource.isRight()) {
                 rollback(inTransaction, resource, createdArtifacts, nodeTypesNewCreatedArtifacts);
                 loggerSupportability.log(LoggerSupportabilityActions.CREATE_GROUPS, resource.getComponentMetadataForSupportLog(), StatusCode.ERROR,
-                    "ERROR while adding groups from yaml: {}", yamlName);
+                        "ERROR while adding groups from yaml: {}", yamlName);
                 throw new ByResponseFormatComponentException(createGroupsOnResource.right().value());
             }
             resource = createGroupsOnResource.left().value();
             log.trace("************* Finished to add groups from yaml {}", yamlName);
             loggerSupportability.log(LoggerSupportabilityActions.CREATE_GROUPS, resource.getComponentMetadataForSupportLog(), StatusCode.COMPLETE,
-                "Finished to add groups from yaml: {}", yamlName);
+                    "Finished to add groups from yaml: {}", yamlName);
             log.trace("************* Going to add artifacts from yaml {}", yamlName);
             loggerSupportability.log(LoggerSupportabilityActions.CREATE_ARTIFACTS, resource.getComponentMetadataForSupportLog(), StatusCode.STARTED,
-                "Started to add artifacts from yaml: {}", yamlName);
+                    "Started to add artifacts from yaml: {}", yamlName);
             log.trace("************* Starting to add policies from yaml {}", yamlName);
             Map<String, PolicyDefinition> policies = parsedToscaYamlInfo.getPolicies();
             if (MapUtils.isNotEmpty(policies)) {
@@ -1601,34 +1603,34 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             }
             log.trace("************* Finished to add policies from yaml {}", yamlName);
             final NodeTypeInfoToUpdateArtifacts nodeTypeInfoToUpdateArtifacts = new NodeTypeInfoToUpdateArtifacts(nodeName,
-                nodeTypesArtifactsToCreate);
+                    nodeTypesArtifactsToCreate);
             final Either<Resource, ResponseFormat> createArtifactsEither = createOrUpdateArtifacts(ArtifactOperationEnum.CREATE, createdArtifacts,
-                yamlName, csarInfo, resource, nodeTypeInfoToUpdateArtifacts, inTransaction, shouldLock);
+                    yamlName, csarInfo, resource, nodeTypeInfoToUpdateArtifacts, inTransaction, shouldLock);
             if (createArtifactsEither.isRight()) {
                 rollback(inTransaction, resource, createdArtifacts, nodeTypesNewCreatedArtifacts);
                 loggerSupportability.log(LoggerSupportabilityActions.CREATE_ARTIFACTS, resource.getComponentMetadataForSupportLog(), StatusCode.ERROR,
-                    "error happened {}", createArtifactsEither.right().value());
+                        "error happened {}", createArtifactsEither.right().value());
                 throw new ByResponseFormatComponentException(createArtifactsEither.right().value());
             }
             loggerSupportability.log(LoggerSupportabilityActions.CREATE_ARTIFACTS, resource.getComponentMetadataForSupportLog(), StatusCode.COMPLETE,
-                "Finished to add artifacts from yaml: " + resource.getToscaResourceName());
+                    "Finished to add artifacts from yaml: " + resource.getToscaResourceName());
             final ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.CREATED);
             componentsUtils.auditResource(responseFormat, csarInfo.getModifier(), resource, actionEnum);
             ASDCKpiApi.countCreatedResourcesKPI();
             return resource;
         } catch (final BusinessLogicException e) {
             log.error(EcompLoggerErrorCode.BUSINESS_PROCESS_ERROR, ResourceBusinessLogic.class.getName(),
-                "An error has occurred during resource and resource instance creation", e);
+                    "An error has occurred during resource and resource instance creation", e);
             rollback(inTransaction, resource, createdArtifacts, nodeTypesNewCreatedArtifacts);
             throw new ByResponseFormatComponentException(e.getResponseFormat());
         } catch (final ComponentException e) {
             log.error(EcompLoggerErrorCode.SCHEMA_ERROR, ResourceBusinessLogic.class.getName(),
-                "An error has occurred during resource and resource instance creation", e);
+                    "An error has occurred during resource and resource instance creation", e);
             rollback(inTransaction, resource, createdArtifacts, nodeTypesNewCreatedArtifacts);
             throw new ByResponseFormatComponentException(e.getResponseFormat());
         } catch (final Exception e) {
             log.error(EcompLoggerErrorCode.BUSINESS_PROCESS_ERROR, ResourceBusinessLogic.class.getName(),
-                "An error has occurred during resource and resource instance creation", e);
+                    "An error has occurred during resource and resource instance creation", e);
             rollback(inTransaction, resource, createdArtifacts, nodeTypesNewCreatedArtifacts);
             throw new ByActionStatusComponentException(ActionStatus.GENERAL_ERROR);
         } finally {
@@ -1647,7 +1649,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             for (Map.Entry<String, UploadComponentInstanceInfo> instance : instances.entrySet()) {
                 if (isNotEmpty(instance.getValue().getArtifacts()) || instance.getValue().getArtifacts() != null) {
                     Map<String, UploadArtifactInfo> artifactsMap = instance.getValue().getArtifacts()
-                        .get(ToscaTagNamesEnum.ARTIFACTS.getElementName());
+                            .get(ToscaTagNamesEnum.ARTIFACTS.getElementName());
                     if (isNotEmpty(artifactsMap) || artifactsMap != null) {
                         for (Map.Entry<String , UploadArtifactInfo> artifact : artifactsMap.entrySet()) {
                             if (artifact.getValue().getType().equals(Constants.ASD_DEPLOYMENT_ITEM)) {
@@ -1704,7 +1706,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
 
     private boolean processSubstitutableAsNodeType(final Resource resource, final ParsedToscaYamlInfo parsedToscaYamlInfo) {
         return !resource.getResourceType().isAtomicType() && StringUtils.isNotEmpty(resource.getModel())
-            && parsedToscaYamlInfo.getSubstitutionMappingNodeType() != null;
+                && parsedToscaYamlInfo.getSubstitutionMappingNodeType() != null;
     }
 
     private Map<String, UploadComponentInstanceInfo> getInstancesToCreate(final ParsedToscaYamlInfo parsedToscaYamlInfo) {
@@ -1716,8 +1718,8 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             return parsedToscaYamlInfo.getInstances();
         }
         return parsedToscaYamlInfo.getInstances().entrySet().stream()
-            .filter(entry -> !parsedToscaYamlInfo.getSubstitutionMappingNodeType().equals(entry.getValue().getType()))
-            .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
+                .filter(entry -> !parsedToscaYamlInfo.getSubstitutionMappingNodeType().equals(entry.getValue().getType()))
+                .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
     }
 
     private void rollback(boolean inTransaction, Resource resource, List<ArtifactDefinition> createdArtifacts,
@@ -1758,7 +1760,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         List<InputDefinition> inputs = resource.getInputs();
         if (MapUtils.isNotEmpty(groups)) {
             groups.values().stream().filter(g -> isNotEmpty(g.getProperties())).flatMap(g -> g.getProperties().stream())
-                .forEach(p -> handleGetInputs(p, inputs));
+                    .forEach(p -> handleGetInputs(p, inputs));
         }
     }
 
@@ -1772,7 +1774,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             if (inputs == null || inputs.isEmpty()) {
                 log.debug("Failed to add property {} to group. Inputs list is empty ", property);
                 rollbackWithException(ActionStatus.INPUTS_NOT_FOUND,
-                    property.getGetInputValues().stream().map(GetInputValueDataDefinition::getInputName).collect(toList()).toString());
+                        property.getGetInputValues().stream().map(GetInputValueDataDefinition::getInputName).collect(toList()).toString());
             }
             ListIterator<GetInputValueDataDefinition> getInputValuesIter = property.getGetInputValues().listIterator();
             while (getInputValuesIter.hasNext()) {
@@ -1866,7 +1868,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                                    List<GroupDefinition> groupsToDelete) {
         for (GroupDefinition group : groupsFromResource) {
             Optional<GroupDefinition> op = groupsAsList.stream().filter(p -> p.getInvariantName().equalsIgnoreCase(group.getInvariantName()))
-                .findAny();
+                    .findAny();
             if (op.isEmpty() && (group.getArtifacts() == null || group.getArtifacts().isEmpty())) {
                 groupsToDelete.add(group);
             }
@@ -1877,7 +1879,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                                            List<GroupDefinition> groupsToUpdate, List<GroupDefinition> groupsToCreate) {
         for (GroupDefinition group : groupsAsList) {
             Optional<GroupDefinition> op = groupsFromResource.stream().filter(p -> p.getInvariantName().equalsIgnoreCase(group.getInvariantName()))
-                .findAny();
+                    .findAny();
             if (op.isPresent()) {
                 GroupDefinition groupToUpdate = op.get();
                 groupToUpdate.setMembers(group.getMembers());
@@ -1896,7 +1898,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             Either<List<InputDefinition>, ResponseFormat> createInputs = inputsBusinessLogic.createInputsInGraph(inputs, resource);
             if (createInputs.isRight()) {
                 loggerSupportability.log(LoggerSupportabilityActions.CREATE_INPUTS, resource.getComponentMetadataForSupportLog(), StatusCode.ERROR,
-                    "failed to add inputs from yaml: {}", createInputs.right().value());
+                        "failed to add inputs from yaml: {}", createInputs.right().value());
                 throw new ByResponseFormatComponentException(createInputs.right().value());
             }
             resource.setInputs(createInputs.left().value());
@@ -1927,13 +1929,13 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         final List<PropertyDefinition> resourceProperties = resource.getProperties();
         for (PropertyDefinition propertyDefinition : resourceProperties) {
             final Either<PropertyDefinition, StorageOperationStatus> addPropertyEither = toscaOperationFacade
-                .addPropertyToComponent(propertyDefinition.getName(), propertyDefinition, resource);
+                    .addPropertyToComponent(propertyDefinition.getName(), propertyDefinition, resource);
 
             if (addPropertyEither.isRight()) {
                 final String error = String.format("failed to add properties from yaml: {}", addPropertyEither.right().value());
                 loggerSupportability.log(LoggerSupportabilityActions.CREATE_PROPERTIES, resource.getComponentMetadataForSupportLog(),
-                    StatusCode.ERROR,
-                    error);
+                        StatusCode.ERROR,
+                        error);
                 throw new ByActionStatusComponentException(componentsUtils.convertFromStorageResponse(addPropertyEither.right().value()), error);
             }
         }
@@ -1969,22 +1971,22 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         if (CollectionUtils.isEmpty(componentInstances)) {
             String membersAstString = String.join(",", compInstancesNames);
             log.debug("The members: {}, in group: {}, cannot be found in component {}. There are no component instances.", membersAstString,
-                groupName, component.getNormalizedName());
+                    groupName, component.getNormalizedName());
             throw new ByActionStatusComponentException(ActionStatus.GROUP_INVALID_COMPONENT_INSTANCE, membersAstString, groupName,
-                component.getNormalizedName(), getComponentTypeForResponse(component));
+                    component.getNormalizedName(), getComponentTypeForResponse(component));
         }
         // Find all component instances with the member names
         Map<String, String> memberNames = componentInstances.stream().collect(toMap(ComponentInstance::getName, ComponentInstance::getUniqueId));
         memberNames.putAll(groups.keySet().stream().collect(toMap(g -> g, g -> "")));
         Map<String, String> relevantInstances = memberNames.entrySet().stream().filter(n -> compInstancesNames.contains(n.getKey()))
-            .collect(toMap(Entry::getKey, Entry::getValue));
+                .collect(toMap(Entry::getKey, Entry::getValue));
         if (relevantInstances.size() != compInstancesNames.size()) {
             List<String> foundMembers = new ArrayList<>(relevantInstances.keySet());
             foundMembers.forEach(compInstancesNames::remove);
             String membersAstString = String.join(",", compInstancesNames);
             log.debug("The members: {}, in group: {}, cannot be found in component: {}", membersAstString, groupName, component.getNormalizedName());
             throw new ByActionStatusComponentException(ActionStatus.GROUP_INVALID_COMPONENT_INSTANCE, membersAstString, groupName,
-                component.getNormalizedName(), getComponentTypeForResponse(component));
+                    component.getNormalizedName(), getComponentTypeForResponse(component));
         }
         updatedGroupDefinition.setMembers(relevantInstances);
     }
@@ -2040,12 +2042,12 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
 
         // are groups
         List<String> currGroupFilteredMembers = currGroupMembers.stream().
-            // Keep Only Elements of type group and not Resource Instances
-                filter(allGroups::containsKey).
-            // Add Filtered Elements to main Set
-                peek(allGroupMembers::add).
-            // Collect results
-                collect(toList());
+                // Keep Only Elements of type group and not Resource Instances
+                        filter(allGroups::containsKey).
+                // Add Filtered Elements to main Set
+                        peek(allGroupMembers::add).
+                // Collect results
+                        collect(toList());
         // Recursively call the method for all the filtered group members
         for (String innerGroupName : currGroupFilteredMembers) {
             fillAllGroupMemebersRecursivly(innerGroupName, allGroups, allGroupMembers);
@@ -2065,10 +2067,10 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         if (!stop) {
             final Set<String> allMembers = allGroups.get(groupName).getMembers().keySet();
             Set<String> membersOfTypeGroup = allMembers.stream().
-                // Filter In Only Group members
-                    filter(allGroups::containsKey).
-                // Collect
-                    collect(toSet());
+                    // Filter In Only Group members
+                            filter(allGroups::containsKey).
+                    // Collect
+                            collect(toSet());
             stop = allGroupMembers.containsAll(membersOfTypeGroup);
         }
         return stop;
@@ -2082,16 +2084,16 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                                                   String nodeName, final String substitutableAsNodeType) {
         log.debug("************* Going to create all nodes {}", yamlName);
         handleNodeTypes(yamlName, resource, topologyTemplateYaml, false, nodeTypesArtifactsToCreate, nodeTypesNewCreatedArtifacts, nodeTypesInfo,
-            csarInfo, nodeName, substitutableAsNodeType);
+                csarInfo, nodeName, substitutableAsNodeType);
         log.debug("************* Finished to create all nodes {}", yamlName);
         log.debug("************* Going to create all resource instances {}", yamlName);
         Map<String, Resource> existingNodeTypesByResourceNames = new HashMap<>();
         resource = createResourceInstances(yamlName, resource, null, uploadComponentInstanceInfoMap, csarInfo.getCreatedNodes(),
-            existingNodeTypesByResourceNames);
+                existingNodeTypesByResourceNames);
         log.debug("************* Finished to create all resource instances {}", yamlName);
         log.debug("************* Going to create all relations {}", yamlName);
         resource = createResourceInstancesRelations(csarInfo.getModifier(), yamlName, resource, null, uploadComponentInstanceInfoMap,
-            existingNodeTypesByResourceNames);
+                existingNodeTypesByResourceNames);
         log.debug("************* Finished to create all relations {}", yamlName);
         log.debug("************* Going to create positions {}", yamlName);
         compositionBusinessLogic.setPositionsForComponentInstances(resource, csarInfo.getModifier().getUserId());
@@ -2119,7 +2121,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             for (Entry<String, NodeTypeInfo> nodeTypeEntry : nodeTypesInfo.entrySet()) {
                 if (nodeTypeEntry.getValue().isNested() && !nodeTypeAlreadyExists(nodeTypeEntry.getKey(), resource.getModel())) {
                     handleNestedVfc(resource, nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo,
-                        nodeTypeEntry.getKey());
+                            nodeTypeEntry.getKey());
                     log.trace("************* finished to create node {}", nodeTypeEntry.getKey());
                 }
             }
@@ -2131,15 +2133,15 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                 mappedToscaTemplate = (Map<String, Object>) new Yaml().load(topologyTemplateYaml);
             }
             createResourcesFromYamlNodeTypesList(yamlName, resource, mappedToscaTemplate, needLock, nodeTypesArtifactsToHandle,
-                nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo, substitutableAsNodeType);
+                    nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo, substitutableAsNodeType);
         } catch (ComponentException e) {
             ResponseFormat responseFormat =
-                e.getResponseFormat() != null ? e.getResponseFormat() : componentsUtils.getResponseFormat(e.getActionStatus(), e.getParams());
+                    e.getResponseFormat() != null ? e.getResponseFormat() : componentsUtils.getResponseFormat(e.getActionStatus(), e.getParams());
             componentsUtils.auditResource(responseFormat, csarInfo.getModifier(), resource, AuditingActionEnum.IMPORT_RESOURCE);
             throw e;
         } catch (StorageException e) {
             ResponseFormat responseFormat = componentsUtils
-                .getResponseFormat(componentsUtils.convertFromStorageResponse(e.getStorageOperationStatus()));
+                    .getResponseFormat(componentsUtils.convertFromStorageResponse(e.getStorageOperationStatus()));
             componentsUtils.auditResource(responseFormat, csarInfo.getModifier(), resource, AuditingActionEnum.IMPORT_RESOURCE);
             throw e;
         }
@@ -2170,31 +2172,31 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             }
             // Specific Behavior for license artifacts
             createOrUpdateSingleNonMetaArtifact(resource, csarInfo, CsarUtils.ARTIFACTS_PATH + Constants.VENDOR_LICENSE_MODEL,
-                Constants.VENDOR_LICENSE_MODEL, ArtifactTypeEnum.VENDOR_LICENSE.getType(), ArtifactGroupTypeEnum.DEPLOYMENT,
-                Constants.VENDOR_LICENSE_LABEL, Constants.VENDOR_LICENSE_DISPLAY_NAME, Constants.VENDOR_LICENSE_DESCRIPTION, vendorLicenseModelId,
-                artifactOperation, null, true, shouldLock, inTransaction);
+                    Constants.VENDOR_LICENSE_MODEL, ArtifactTypeEnum.VENDOR_LICENSE.getType(), ArtifactGroupTypeEnum.DEPLOYMENT,
+                    Constants.VENDOR_LICENSE_LABEL, Constants.VENDOR_LICENSE_DISPLAY_NAME, Constants.VENDOR_LICENSE_DESCRIPTION, vendorLicenseModelId,
+                    artifactOperation, null, true, shouldLock, inTransaction);
             createOrUpdateSingleNonMetaArtifact(resource, csarInfo, CsarUtils.ARTIFACTS_PATH + Constants.VF_LICENSE_MODEL, Constants.VF_LICENSE_MODEL,
-                ArtifactTypeEnum.VF_LICENSE.getType(), ArtifactGroupTypeEnum.DEPLOYMENT, Constants.VF_LICENSE_LABEL,
-                Constants.VF_LICENSE_DISPLAY_NAME, Constants.VF_LICENSE_DESCRIPTION, vfLicenseModelId, artifactOperation, null, true, shouldLock,
-                inTransaction);
+                    ArtifactTypeEnum.VF_LICENSE.getType(), ArtifactGroupTypeEnum.DEPLOYMENT, Constants.VF_LICENSE_LABEL,
+                    Constants.VF_LICENSE_DISPLAY_NAME, Constants.VF_LICENSE_DESCRIPTION, vfLicenseModelId, artifactOperation, null, true, shouldLock,
+                    inTransaction);
             Either<Resource, ResponseFormat> eitherCreateResult = createOrUpdateNonMetaArtifacts(csarInfo, resource, createdArtifacts, shouldLock,
-                inTransaction, artifactOperation);
+                    inTransaction, artifactOperation);
             if (eitherCreateResult.isRight()) {
                 return Either.right(eitherCreateResult.right().value());
             }
             Either<ImmutablePair<String, String>, ResponseFormat> artifacsMetaCsarStatus = CsarValidationUtils
-                .getArtifactsMeta(csarInfo.getCsar(), csarInfo.getCsarUUID(), componentsUtils);
+                    .getArtifactsMeta(csarInfo.getCsar(), csarInfo.getCsarUUID(), componentsUtils);
             if (artifacsMetaCsarStatus.isLeft()) {
                 String artifactsFileName = artifacsMetaCsarStatus.left().value().getKey();
                 String artifactsContents = artifacsMetaCsarStatus.left().value().getValue();
                 Either<Resource, ResponseFormat> createArtifactsFromCsar;
                 if (artifactOperation.isCreateOrLink()) {
                     createArtifactsFromCsar = csarArtifactsAndGroupsBusinessLogic
-                        .createResourceArtifactsFromCsar(csarInfo, resource, artifactsContents, artifactsFileName, createdArtifacts);
+                            .createResourceArtifactsFromCsar(csarInfo, resource, artifactsContents, artifactsFileName, createdArtifacts);
                 } else {
                     Either<Component, ResponseFormat> result = csarArtifactsAndGroupsBusinessLogic
-                        .updateResourceArtifactsFromCsar(csarInfo, resource, artifactsContents, artifactsFileName, createdArtifacts, shouldLock,
-                            inTransaction);
+                            .updateResourceArtifactsFromCsar(csarInfo, resource, artifactsContents, artifactsFileName, createdArtifacts, shouldLock,
+                                    inTransaction);
                     if ((result.left().value() instanceof Resource) && result.isLeft()) {
                         Resource service1 = (Resource) result.left().value();
                         createArtifactsFromCsar = Either.left(service1);
@@ -2227,7 +2229,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         if (operation.isUpdate() || operation.isDelete()) {
             if (isArtifactDeletionRequired(artifactId, artifactFileBytes, isFromCsar)) {
                 Either<ArtifactDefinition, ResponseFormat> handleDelete = artifactsBusinessLogic
-                    .handleDelete(resource.getUniqueId(), artifactId, csarInfo.getModifier(), resource, shouldLock, inTransaction);
+                        .handleDelete(resource.getUniqueId(), artifactId, csarInfo.getModifier(), resource, shouldLock, inTransaction);
                 if (handleDelete.isRight()) {
                     result = Either.right(handleDelete.right().value());
                 } else {
@@ -2247,14 +2249,14 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         }
         if (artifactFileBytes != null) {
             Map<String, Object> vendorLicenseModelJson = ArtifactUtils
-                .buildJsonForUpdateArtifact(artifactId, artifactFileName, artifactType, artifactGroupType, artifactLabel, artifactDisplayName,
-                    artifactDescription, artifactFileBytes, null, isFromCsar);
+                    .buildJsonForUpdateArtifact(artifactId, artifactFileName, artifactType, artifactGroupType, artifactLabel, artifactDisplayName,
+                            artifactDescription, artifactFileBytes, null, isFromCsar);
             Either<Either<ArtifactDefinition, Operation>, ResponseFormat> eitherNonMetaArtifacts = csarArtifactsAndGroupsBusinessLogic
-                .createOrUpdateCsarArtifactFromJson(resource, csarInfo.getModifier(), vendorLicenseModelJson, operation);
+                    .createOrUpdateCsarArtifactFromJson(resource, csarInfo.getModifier(), vendorLicenseModelJson, operation);
             addNonMetaCreatedArtifactsToSupportRollback(operation, createdArtifacts, eitherNonMetaArtifacts);
             if (eitherNonMetaArtifacts.isRight()) {
                 BeEcompErrorManager.getInstance().logInternalFlowError("UploadLicenseArtifact",
-                    "Failed to upload license artifact: " + artifactFileName + "With csar uuid: " + csarInfo.getCsarUUID(), ErrorSeverity.WARNING);
+                        "Failed to upload license artifact: " + artifactFileName + "With csar uuid: " + csarInfo.getCsarUUID(), ErrorSeverity.WARNING);
                 return Either.right(eitherNonMetaArtifacts.right().value());
             }
             ArtifactDefinition artifactDefinition = eitherNonMetaArtifacts.left().value().left().value();
@@ -2294,8 +2296,8 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             Either<List<NonMetaArtifactInfo>, String> artifactPathAndNameList = getValidArtifactNames(csarInfo, collectedWarningMessages);
             if (artifactPathAndNameList.isRight()) {
                 return Either.right(
-                    getComponentsUtils().getResponseFormatByArtifactId(ActionStatus.ARTIFACT_NAME_INVALID, artifactPathAndNameList.right().value(),
-                        VALID_CHARACTERS_ARTIFACT_NAME));
+                        getComponentsUtils().getResponseFormatByArtifactId(ActionStatus.ARTIFACT_NAME_INVALID, artifactPathAndNameList.right().value(),
+                                VALID_CHARACTERS_ARTIFACT_NAME));
             }
             EnumMap<ArtifactOperationEnum, List<NonMetaArtifactInfo>> vfCsarArtifactsToHandle = null;
             if (artifactOperation.isCreateOrLink()) {
@@ -2303,7 +2305,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                 vfCsarArtifactsToHandle.put(artifactOperation.getArtifactOperationEnum(), artifactPathAndNameList.left().value());
             } else {
                 Either<EnumMap<ArtifactOperationEnum, List<NonMetaArtifactInfo>>, ResponseFormat> findVfCsarArtifactsToHandleRes = findVfCsarArtifactsToHandle(
-                    resource, artifactPathAndNameList.left().value(), csarInfo.getModifier());
+                        resource, artifactPathAndNameList.left().value(), csarInfo.getModifier());
                 if (findVfCsarArtifactsToHandleRes.isRight()) {
                     resStatus = Either.right(findVfCsarArtifactsToHandleRes.right().value());
                 }
@@ -2332,21 +2334,21 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                                                                   EnumMap<ArtifactOperationEnum, List<NonMetaArtifactInfo>> vfCsarArtifactsToHandle) {
         for (Entry<ArtifactOperationEnum, List<NonMetaArtifactInfo>> currArtifactOperationPair : vfCsarArtifactsToHandle.entrySet()) {
             Optional<ResponseFormat> optionalCreateInDBError =
-                // Stream of artifacts to be created
-                currArtifactOperationPair.getValue().stream()
-                    // create each artifact
-                    .map(e -> createOrUpdateSingleNonMetaArtifact(resource, csarInfo, e.getPath(), e.getArtifactName(), e.getArtifactType(),
-                        e.getArtifactGroupType(), e.getArtifactLabel(), e.getDisplayName(), CsarUtils.ARTIFACT_CREATED_FROM_CSAR,
-                        e.getArtifactUniqueId(), new ArtifactOperationInfo(false, false, currArtifactOperationPair.getKey()), createdArtifacts,
-                        e.isFromCsar(), shouldLock, inTransaction))
-                    // filter in only error
-                    .filter(Either::isRight).
-                    // Convert the error from either to
-
-                    // ResponseFormat
-                        map(e -> e.right().value()).
-                    // Check if an error occurred
-                        findAny();
+                    // Stream of artifacts to be created
+                    currArtifactOperationPair.getValue().stream()
+                            // create each artifact
+                            .map(e -> createOrUpdateSingleNonMetaArtifact(resource, csarInfo, e.getPath(), e.getArtifactName(), e.getArtifactType(),
+                                    e.getArtifactGroupType(), e.getArtifactLabel(), e.getDisplayName(), CsarUtils.ARTIFACT_CREATED_FROM_CSAR,
+                                    e.getArtifactUniqueId(), new ArtifactOperationInfo(false, false, currArtifactOperationPair.getKey()), createdArtifacts,
+                                    e.isFromCsar(), shouldLock, inTransaction))
+                            // filter in only error
+                            .filter(Either::isRight).
+                            // Convert the error from either to
+
+                            // ResponseFormat
+                                    map(e -> e.right().value()).
+                            // Check if an error occurred
+                                    findAny();
             // Error found on artifact Creation
             if (optionalCreateInDBError.isPresent()) {
                 resStatus = Either.right(optionalCreateInDBError.get());
@@ -2359,18 +2361,18 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
     private Either<List<NonMetaArtifactInfo>, String> getValidArtifactNames(CsarInfo csarInfo,
                                                                             Map<String, Set<List<String>>> collectedWarningMessages) {
         List<NonMetaArtifactInfo> artifactPathAndNameList =
-            // Stream of file paths contained in csar
-            csarInfo.getCsar().entrySet().stream()
-                // Filter in only VF artifact path location
-                .filter(e -> Pattern.compile(VF_NODE_TYPE_ARTIFACTS_PATH_PATTERN).matcher(e.getKey()).matches())
-                // Validate and add warnings
-                .map(e -> CsarUtils.validateNonMetaArtifact(e.getKey(), e.getValue(), collectedWarningMessages))
-                // Filter in Non Warnings
-                .filter(Either::isLeft)
-                // Convert from Either to NonMetaArtifactInfo
-                .map(e -> e.left().value())
-                // collect to List
-                .collect(toList());
+                // Stream of file paths contained in csar
+                csarInfo.getCsar().entrySet().stream()
+                        // Filter in only VF artifact path location
+                        .filter(e -> Pattern.compile(VF_NODE_TYPE_ARTIFACTS_PATH_PATTERN).matcher(e.getKey()).matches())
+                        // Validate and add warnings
+                        .map(e -> CsarUtils.validateNonMetaArtifact(e.getKey(), e.getValue(), collectedWarningMessages))
+                        // Filter in Non Warnings
+                        .filter(Either::isLeft)
+                        // Convert from Either to NonMetaArtifactInfo
+                        .map(e -> e.left().value())
+                        // collect to List
+                        .collect(toList());
         Pattern englishNumbersAndUnderScoresOnly = Pattern.compile(CsarUtils.VALID_ENGLISH_ARTIFACT_NAME);
         for (NonMetaArtifactInfo nonMetaArtifactInfo : artifactPathAndNameList) {
             if (!englishNumbersAndUnderScoresOnly.matcher(nonMetaArtifactInfo.getDisplayName()).matches()) {
@@ -2392,10 +2394,10 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             existingArtifacts.addAll(resource.getArtifacts().values());
         }
         existingArtifacts = existingArtifacts.stream()
-            // filter MANDATORY artifacts, LICENSE artifacts and artifacts
+                // filter MANDATORY artifacts, LICENSE artifacts and artifacts
 
-            // was created from HEAT.meta
-            .filter(this::isNonMetaArtifact).collect(toList());
+                // was created from HEAT.meta
+                .filter(this::isNonMetaArtifact).collect(toList());
         List<String> artifactsToIgnore = new ArrayList<>();
         // collect IDs of Artifacts of VF which belongs to any group
         if (resource.getGroups() != null) {
@@ -2406,8 +2408,8 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             });
         }
         existingArtifacts = existingArtifacts.stream()
-            // filter artifacts which belongs to any group
-            .filter(a -> !artifactsToIgnore.contains(a.getUniqueId())).collect(toList());
+                // filter artifacts which belongs to any group
+                .filter(a -> !artifactsToIgnore.contains(a.getUniqueId())).collect(toList());
         return organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList, existingArtifacts, resource, user);
     }
 
@@ -2417,7 +2419,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
 
     private boolean isValidArtifactType(ArtifactDefinition artifact) {
         return artifact.getArtifactType() != null && ArtifactTypeEnum.parse(artifact.getArtifactType()) != ArtifactTypeEnum.VENDOR_LICENSE
-            && ArtifactTypeEnum.parse(artifact.getArtifactType()) != ArtifactTypeEnum.VF_LICENSE;
+                && ArtifactTypeEnum.parse(artifact.getArtifactType()) != ArtifactTypeEnum.VF_LICENSE;
     }
 
     private Resource createResourceInstancesRelations(User user, String yamlName, Resource resource, Resource oldResource,
@@ -2425,17 +2427,17 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                                                       Map<String, Resource> existingNodeTypesByResourceNames) {
         log.debug("#createResourceInstancesRelations - Going to create relations ");
         loggerSupportability.log(LoggerSupportabilityActions.CREATE_RELATIONS, resource.getComponentMetadataForSupportLog(), StatusCode.STARTED,
-            "Start to create relations");
+                "Start to create relations");
         List<ComponentInstance> componentInstancesList = resource.getComponentInstances();
         if (isEmpty(uploadResInstancesMap) || CollectionUtils.isEmpty(componentInstancesList) &&
-            resource.getResourceType() != ResourceTypeEnum.PNF) { // PNF can have no resource instances {
+                resource.getResourceType() != ResourceTypeEnum.PNF) { // PNF can have no resource instances {
             log.debug("#createResourceInstancesRelations - No instances found in the resource {} is empty, yaml template file name {}, ",
-                resource.getUniqueId(), yamlName);
+                    resource.getUniqueId(), yamlName);
             loggerSupportability.log(LoggerSupportabilityActions.CREATE_RELATIONS, resource.getComponentMetadataForSupportLog(), StatusCode.ERROR,
-                "No instances found in the resource: {}, is empty, yaml template file name: {}", resource.getName(), yamlName);
+                    "No instances found in the resource: {}, is empty, yaml template file name: {}", resource.getName(), yamlName);
             BeEcompErrorManager.getInstance()
-                .logInternalDataError("createResourceInstancesRelations", "No instances found in a resource or nn yaml template. ",
-                    ErrorSeverity.ERROR);
+                    .logInternalDataError("createResourceInstancesRelations", "No instances found in a resource or nn yaml template. ",
+                            ErrorSeverity.ERROR);
             throw new ByActionStatusComponentException(ActionStatus.NOT_TOPOLOGY_TOSCA_TEMPLATE, yamlName);
         }
         Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
@@ -2448,12 +2450,12 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
         Resource finalResource = resource;
         uploadResInstancesMap.values().forEach(
-            i -> processComponentInstance(yamlName, finalResource, componentInstancesList,
-                componentsUtils.getAllDataTypes(applicationDataTypeCache, resource.getModel()), instProperties, instCapabilities,
-                instRequirements, instDeploymentArtifacts, instArtifacts, instAttributes, existingNodeTypesByResourceNames, instInputs, i));
+                i -> processComponentInstance(yamlName, finalResource, componentInstancesList,
+                        componentsUtils.getAllDataTypes(applicationDataTypeCache, resource.getModel()), instProperties, instCapabilities,
+                        instRequirements, instDeploymentArtifacts, instArtifacts, instAttributes, existingNodeTypesByResourceNames, instInputs, i));
         resource.getComponentInstances().stream().filter(i -> !i.isCreatedFromCsar()).forEach(
-            i -> processUiComponentInstance(oldResource, i, instCapabilities, instRequirements, instDeploymentArtifacts, instArtifacts,
-                instProperties, instInputs, instAttributes));
+                i -> processUiComponentInstance(oldResource, i, instCapabilities, instRequirements, instDeploymentArtifacts, instArtifacts,
+                        instProperties, instInputs, instAttributes));
         associateComponentInstancePropertiesToComponent(yamlName, resource, instProperties);
         associateComponentInstanceInputsToComponent(yamlName, resource, instInputs);
         associateDeploymentArtifactsToInstances(user, yamlName, resource, instDeploymentArtifacts);
@@ -2465,14 +2467,14 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         handleSubstitutionMappings(resource, uploadResInstancesMap);
         log.debug("************* in create relations, getResource start");
         loggerSupportability
-            .log(LoggerSupportabilityActions.CREATE_RELATIONS, resource.getComponentMetadataForSupportLog(), StatusCode.COMPLETE, "create relations");
+                .log(LoggerSupportabilityActions.CREATE_RELATIONS, resource.getComponentMetadataForSupportLog(), StatusCode.COMPLETE, "create relations");
         Either<Resource, StorageOperationStatus> eitherGetResource = toscaOperationFacade.getToscaFullElement(resource.getUniqueId());
         log.debug("************* in create relations, getResource end");
         if (eitherGetResource.isRight()) {
             loggerSupportability.log(LoggerSupportabilityActions.CREATE_RELATIONS, resource.getComponentMetadataForSupportLog(), StatusCode.ERROR,
-                "ERROR while create relations");
+                    "ERROR while create relations");
             throw new ByResponseFormatComponentException(
-                componentsUtils.getResponseFormatByResource(componentsUtils.convertFromStorageResponse(eitherGetResource.right().value()), resource));
+                    componentsUtils.getResponseFormatByResource(componentsUtils.convertFromStorageResponse(eitherGetResource.right().value()), resource));
         }
         return eitherGetResource.left().value();
     }
@@ -2500,18 +2502,18 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                 instArtifacts.put(instance.getUniqueId(), foundInstance.get().getArtifacts());
             }
             if (MapUtils.isNotEmpty(oldResource.getComponentInstancesProperties()) && CollectionUtils
-                .isNotEmpty(oldResource.getComponentInstancesProperties().get(foundInstance.get().getUniqueId()))) {
+                    .isNotEmpty(oldResource.getComponentInstancesProperties().get(foundInstance.get().getUniqueId()))) {
                 instProperties.put(instance.getUniqueId(), oldResource.getComponentInstancesProperties().get(foundInstance.get().getUniqueId()));
             }
             if (MapUtils.isNotEmpty(oldResource.getComponentInstancesInputs()) && CollectionUtils
-                .isNotEmpty(oldResource.getComponentInstancesInputs().get(foundInstance.get().getUniqueId()))) {
+                    .isNotEmpty(oldResource.getComponentInstancesInputs().get(foundInstance.get().getUniqueId()))) {
                 instInputs.put(instance.getUniqueId(), oldResource.getComponentInstancesInputs().get(foundInstance.get().getUniqueId()));
             }
             if (MapUtils.isNotEmpty(oldResource.getComponentInstancesAttributes()) && CollectionUtils
-                .isNotEmpty(oldResource.getComponentInstancesAttributes().get(foundInstance.get().getUniqueId()))) {
+                    .isNotEmpty(oldResource.getComponentInstancesAttributes().get(foundInstance.get().getUniqueId()))) {
                 instAttributes.put(instance.getUniqueId(),
-                    oldResource.getComponentInstancesAttributes().get(foundInstance.get().getUniqueId()).stream().map(AttributeDefinition::new)
-                        .collect(toList()));
+                        oldResource.getComponentInstancesAttributes().get(foundInstance.get().getUniqueId()).stream().map(AttributeDefinition::new)
+                                .collect(toList()));
             }
         }
     }
@@ -2525,7 +2527,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
 
     private void associateResourceInstances(String yamlName, Resource resource, List<RequirementCapabilityRelDef> relations) {
         Either<List<RequirementCapabilityRelDef>, StorageOperationStatus> relationsEither = toscaOperationFacade
-            .associateResourceInstances(resource, resource.getUniqueId(), relations);
+                .associateResourceInstances(resource, resource.getUniqueId(), relations);
         if (relationsEither.isRight() && relationsEither.right().value() != StorageOperationStatus.NOT_FOUND) {
             StorageOperationStatus status = relationsEither.right().value();
             log.debug("failed to associate instances of resource {} status is {}", resource.getUniqueId(), status);
@@ -2578,7 +2580,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                                                              Map<String, List<ComponentInstanceInput>> instInputs) {
         if (MapUtils.isNotEmpty(instInputs)) {
             Either<Map<String, List<ComponentInstanceInput>>, StorageOperationStatus> addInputToInst = toscaOperationFacade
-                .associateComponentInstanceInputsToComponent(instInputs, resource.getUniqueId());
+                    .associateComponentInstanceInputsToComponent(instInputs, resource.getUniqueId());
             if (addInputToInst.isRight()) {
                 StorageOperationStatus addInputToInstError = addInputToInst.right().value();
                 log.debug("failed to associate inputs value of resource {} status is {}", resource.getUniqueId(), addInputToInstError);
@@ -2600,11 +2602,11 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
     private void associateComponentInstancePropertiesToComponent(String yamlName, Resource resource,
                                                                  Map<String, List<ComponentInstanceProperty>> instProperties) {
         Either<Map<String, List<ComponentInstanceProperty>>, StorageOperationStatus> addPropToInst = toscaOperationFacade
-            .associateComponentInstancePropertiesToComponent(instProperties, resource.getUniqueId());
+                .associateComponentInstancePropertiesToComponent(instProperties, resource.getUniqueId());
         if (addPropToInst.isRight()) {
             loggerSupportability.log(LoggerSupportabilityActions.CREATE_RELATIONS, resource.getComponentMetadataForSupportLog(), StatusCode.ERROR,
-                "ERROR while  associate compnent insatnce properties of resource: {} status is: {}", resource.getName(),
-                addPropToInst.right().value());
+                    "ERROR while  associate compnent insatnce properties of resource: {} status is: {}", resource.getName(),
+                    addPropToInst.right().value());
             StorageOperationStatus storageOperationStatus = addPropToInst.right().value();
             log.debug("failed to associate properties of resource {} status is {}", resource.getUniqueId(), storageOperationStatus);
             throw new ByActionStatusComponentException(componentsUtils.convertFromStorageResponse(storageOperationStatus), yamlName);
@@ -2630,7 +2632,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         }
         if (getResourceRes != null && getResourceRes.isRight()) {
             ResponseFormat responseFormat = componentsUtils
-                .getResponseFormatByResource(componentsUtils.convertFromStorageResponse(getResourceRes.right().value()), resource);
+                    .getResponseFormatByResource(componentsUtils.convertFromStorageResponse(getResourceRes.right().value()), resource);
             throw new ByResponseFormatComponentException(responseFormat);
         }
 
@@ -2650,8 +2652,8 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             if (currentCompInstance == null) {
                 log.debug(COMPONENT_INSTANCE_WITH_NAME_IN_RESOURCE, uploadComponentInstanceInfo.getName(), resource.getUniqueId());
                 BeEcompErrorManager.getInstance()
-                    .logInternalDataError(COMPONENT_INSTANCE_WITH_NAME + uploadComponentInstanceInfo.getName() + IN_RESOURCE, resource.getUniqueId(),
-                        ErrorSeverity.ERROR);
+                        .logInternalDataError(COMPONENT_INSTANCE_WITH_NAME + uploadComponentInstanceInfo.getName() + IN_RESOURCE, resource.getUniqueId(),
+                                ErrorSeverity.ERROR);
                 throw new ByActionStatusComponentException(ActionStatus.NOT_TOPOLOGY_TOSCA_TEMPLATE, yamlName);
             }
             ResponseFormat addRelationToRiRes = addRelationToRI(yamlName, resource, entry.getValue(), relations);
@@ -2680,12 +2682,12 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                                           Map<String, List<ComponentInstanceInput>> instInputs,
                                           UploadComponentInstanceInfo uploadComponentInstanceInfo) {
         Optional<ComponentInstance> currentCompInstanceOpt = componentInstancesList.stream()
-            .filter(i -> i.getName().equals(uploadComponentInstanceInfo.getName())).findFirst();
+                .filter(i -> i.getName().equals(uploadComponentInstanceInfo.getName())).findFirst();
         if (currentCompInstanceOpt.isEmpty()) {
             log.debug(COMPONENT_INSTANCE_WITH_NAME_IN_RESOURCE, uploadComponentInstanceInfo.getName(), resource.getUniqueId());
             BeEcompErrorManager.getInstance()
-                .logInternalDataError(COMPONENT_INSTANCE_WITH_NAME + uploadComponentInstanceInfo.getName() + IN_RESOURCE, resource.getUniqueId(),
-                    ErrorSeverity.ERROR);
+                    .logInternalDataError(COMPONENT_INSTANCE_WITH_NAME + uploadComponentInstanceInfo.getName() + IN_RESOURCE, resource.getUniqueId(),
+                            ErrorSeverity.ERROR);
             throw new ByActionStatusComponentException(ActionStatus.NOT_TOPOLOGY_TOSCA_TEMPLATE, yamlName);
         }
         ComponentInstance currentCompInstance = currentCompInstanceOpt.get();
@@ -2708,7 +2710,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         }
         if (originResource.getResourceType() != ResourceTypeEnum.CVFC) {
             ResponseFormat addPropertiesValueToRiRes = addPropertyValuesToRi(uploadComponentInstanceInfo, resource, originResource,
-                currentCompInstance, instProperties, allDataTypes);
+                    currentCompInstance, instProperties, allDataTypes);
             if (addPropertiesValueToRiRes.getStatus() != 200) {
                 throw new ByResponseFormatComponentException(addPropertiesValueToRiRes);
             }
@@ -2721,12 +2723,12 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         Resource originResource;
         if (!originCompMap.containsKey(currentCompInstance.getComponentUid())) {
             Either<Resource, StorageOperationStatus> getOriginResourceRes = toscaOperationFacade
-                .getToscaFullElement(currentCompInstance.getComponentUid());
+                    .getToscaFullElement(currentCompInstance.getComponentUid());
             if (getOriginResourceRes.isRight()) {
                 log.debug("failed to fetch resource with uniqueId {} and tosca component name {} status is {}", currentCompInstance.getComponentUid(),
-                    currentCompInstance.getToscaComponentName(), getOriginResourceRes);
+                        currentCompInstance.getToscaComponentName(), getOriginResourceRes);
                 throw new ByActionStatusComponentException(componentsUtils.convertFromStorageResponse(getOriginResourceRes.right().value()),
-                    currentCompInstance.getComponentUid());
+                        currentCompInstance.getComponentUid());
             }
             originResource = getOriginResourceRes.left().value();
             originCompMap.put(originResource.getUniqueId(), originResource);
@@ -2757,7 +2759,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                                                   Map<String, Map<String, UploadPropInfo>> newPropertiesMap,
                                                   Map<String, DataTypeDefinition> allDataTypes) {
         originCapabilities.values().stream().flatMap(Collection::stream).filter(c -> newPropertiesMap.containsKey(c.getName()))
-            .forEach(c -> updatePropertyValues(c.getProperties(), newPropertiesMap.get(c.getName()), allDataTypes));
+                .forEach(c -> updatePropertyValues(c.getProperties(), newPropertiesMap.get(c.getName()), allDataTypes));
     }
 
     private void addCapabilitiesProperties(Map<String, Map<String, UploadPropInfo>> newPropertiesMap, List<UploadCapInfo> capabilities) {
@@ -2805,17 +2807,17 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         StorageOperationStatus status = toscaOperationFacade.deleteAllCalculatedCapabilitiesRequirements(resource.getUniqueId());
         if (status != StorageOperationStatus.OK && status != StorageOperationStatus.NOT_FOUND) {
             log.debug("Failed to delete all calculated capabilities and requirements of resource {} upon update. Status is {}",
-                resource.getUniqueId(), status);
+                    resource.getUniqueId(), status);
             updateRes = Either.right(status);
         }
         if (updateRes == null) {
             fillUpdatedInstCapabilitiesRequirements(resource.getComponentInstances(), uploadResInstancesMap, updatedInstCapabilities,
-                updatedInstRequirements);
+                    updatedInstRequirements);
             status = toscaOperationFacade.associateOrAddCalculatedCapReq(updatedInstCapabilities, updatedInstRequirements, resource);
             if (status != StorageOperationStatus.OK && status != StorageOperationStatus.NOT_FOUND) {
                 log.debug(
-                    "Failed to associate capabilities and requirementss of resource {}, updated according to a substitution mapping. Status is {}",
-                    resource.getUniqueId(), status);
+                        "Failed to associate capabilities and requirementss of resource {}, updated according to a substitution mapping. Status is {}",
+                        resource.getUniqueId(), status);
                 updateRes = Either.right(status);
             }
         }
@@ -2837,11 +2839,11 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         });
 
         final StorageOperationStatus status = toscaOperationFacade.updateCalculatedCapabilitiesRequirements(updatedInstCapabilities,
-            updatedInstRequirements, resource);
+                updatedInstRequirements, resource);
         if (status != StorageOperationStatus.OK) {
             log.debug(
-                "Failed to update capabilities and requirements of resource {}. Status is {}",
-                resource.getUniqueId(), status);
+                    "Failed to update capabilities and requirements of resource {}. Status is {}",
+                    resource.getUniqueId(), status);
             updateRes = Either.right(status);
         }
 
@@ -2868,13 +2870,13 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         if (isNotEmpty(requirementsNamesToUpdate)) {
             for (Map.Entry<String, List<RequirementDefinition>> requirements : instance.getRequirements().entrySet()) {
                 updatedRequirements.put(requirements.getKey(), requirements.getValue().stream().filter(
-                        r -> requirementsNamesToUpdate.containsKey(r.getName()) && !updatedReqNames.contains(requirementsNamesToUpdate.get(r.getName())))
-                    .map(r -> {
-                        r.setParentName(r.getName());
-                        r.setName(requirementsNamesToUpdate.get(r.getName()));
-                        updatedReqNames.add(r.getName());
-                        return r;
-                    }).collect(toList()));
+                                r -> requirementsNamesToUpdate.containsKey(r.getName()) && !updatedReqNames.contains(requirementsNamesToUpdate.get(r.getName())))
+                        .map(r -> {
+                            r.setParentName(r.getName());
+                            r.setName(requirementsNamesToUpdate.get(r.getName()));
+                            updatedReqNames.add(r.getName());
+                            return r;
+                        }).collect(toList()));
             }
         }
         if (isNotEmpty(updatedRequirements)) {
@@ -2883,22 +2885,22 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
     }
 
     private void setExternalRequirements(
-        final Map<ComponentInstance, Map<String, List<RequirementDefinition>>> updatedInstRequirements,
-        final ComponentInstance instance, final Map<String, String> requirementsNamesToUpdate) {
+            final Map<ComponentInstance, Map<String, List<RequirementDefinition>>> updatedInstRequirements,
+            final ComponentInstance instance, final Map<String, String> requirementsNamesToUpdate) {
         final Map<String, List<RequirementDefinition>> updatedRequirements = new HashMap<>();
         final Set<String> updatedReqNames = new HashSet<>();
         if (isNotEmpty(requirementsNamesToUpdate)) {
             for (Map.Entry<String, List<RequirementDefinition>> requirements : instance.getRequirements().entrySet()) {
                 updatedRequirements.put(requirements.getKey(),
-                    requirements.getValue().stream()
-                        .filter(r -> requirementsNamesToUpdate.containsKey(r.getName())
-                            && !updatedReqNames.contains(requirementsNamesToUpdate.get(r.getName())))
-                        .map(r -> {
-                            r.setExternal(true);
-                            r.setExternalName(requirementsNamesToUpdate.get(r.getName()));
-                            updatedReqNames.add(r.getName());
-                            return r;
-                        }).collect(toList()));
+                        requirements.getValue().stream()
+                                .filter(r -> requirementsNamesToUpdate.containsKey(r.getName())
+                                        && !updatedReqNames.contains(requirementsNamesToUpdate.get(r.getName())))
+                                .map(r -> {
+                                    r.setExternal(true);
+                                    r.setExternalName(requirementsNamesToUpdate.get(r.getName()));
+                                    updatedReqNames.add(r.getName());
+                                    return r;
+                                }).collect(toList()));
             }
         }
         if (isNotEmpty(updatedRequirements)) {
@@ -2907,22 +2909,22 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
     }
 
     private void setExternalCapabilities(
-        final Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> updatedInstCapabilties,
-        final ComponentInstance instance, Map<String, String> capabilitiesNamesToUpdate) {
+            final Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> updatedInstCapabilties,
+            final ComponentInstance instance, Map<String, String> capabilitiesNamesToUpdate) {
         final Map<String, List<CapabilityDefinition>> updatedCapabilities = new HashMap<>();
         final Set<String> updatedCapNames = new HashSet<>();
         if (isNotEmpty(capabilitiesNamesToUpdate)) {
             for (Map.Entry<String, List<CapabilityDefinition>> requirements : instance.getCapabilities().entrySet()) {
                 updatedCapabilities.put(requirements.getKey(),
-                    requirements.getValue().stream()
-                        .filter(c -> capabilitiesNamesToUpdate.containsKey(c.getName())
-                            && !updatedCapNames.contains(capabilitiesNamesToUpdate.get(c.getName())))
-                        .map(c -> {
-                            c.setExternal(true);
-                            c.setExternalName(capabilitiesNamesToUpdate.get(c.getName()));
-                            updatedCapNames.add(c.getName());
-                            return c;
-                        }).collect(toList()));
+                        requirements.getValue().stream()
+                                .filter(c -> capabilitiesNamesToUpdate.containsKey(c.getName())
+                                        && !updatedCapNames.contains(capabilitiesNamesToUpdate.get(c.getName())))
+                                .map(c -> {
+                                    c.setExternal(true);
+                                    c.setExternalName(capabilitiesNamesToUpdate.get(c.getName()));
+                                    updatedCapNames.add(c.getName());
+                                    return c;
+                                }).collect(toList()));
             }
         }
         if (isNotEmpty(updatedCapabilities)) {
@@ -2937,13 +2939,13 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         if (isNotEmpty(capabilitiesNamesToUpdate)) {
             for (Map.Entry<String, List<CapabilityDefinition>> requirements : instance.getCapabilities().entrySet()) {
                 updatedCapabilities.put(requirements.getKey(), requirements.getValue().stream().filter(
-                        c -> capabilitiesNamesToUpdate.containsKey(c.getName()) && !updatedCapNames.contains(capabilitiesNamesToUpdate.get(c.getName())))
-                    .map(c -> {
-                        c.setParentName(c.getName());
-                        c.setName(capabilitiesNamesToUpdate.get(c.getName()));
-                        updatedCapNames.add(c.getName());
-                        return c;
-                    }).collect(toList()));
+                                c -> capabilitiesNamesToUpdate.containsKey(c.getName()) && !updatedCapNames.contains(capabilitiesNamesToUpdate.get(c.getName())))
+                        .map(c -> {
+                            c.setParentName(c.getName());
+                            c.setName(capabilitiesNamesToUpdate.get(c.getName()));
+                            updatedCapNames.add(c.getName());
+                            return c;
+                        }).collect(toList()));
             }
         }
         if (isNotEmpty(updatedCapabilities)) {
@@ -2964,8 +2966,8 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         if (currentCompInstance == null) {
             log.debug(COMPONENT_INSTANCE_WITH_NAME_IN_RESOURCE, nodesInfoValue.getName(), resource.getUniqueId());
             BeEcompErrorManager.getInstance()
-                .logInternalDataError(COMPONENT_INSTANCE_WITH_NAME + nodesInfoValue.getName() + IN_RESOURCE, resource.getUniqueId(),
-                    ErrorSeverity.ERROR);
+                    .logInternalDataError(COMPONENT_INSTANCE_WITH_NAME + nodesInfoValue.getName() + IN_RESOURCE, resource.getUniqueId(),
+                            ErrorSeverity.ERROR);
             return componentsUtils.getResponseFormat(ActionStatus.NOT_TOPOLOGY_TOSCA_TEMPLATE, yamlName);
         }
         String resourceInstanceId = currentCompInstance.getUniqueId();
@@ -2976,19 +2978,19 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                 for (UploadReqInfo uploadRegInfo : uploadRegInfoList) {
                     log.debug("Going to create  relation {}", uploadRegInfo.getName());
                     loggerSupportability
-                        .log(LoggerSupportabilityActions.CREATE_RELATIONS, resource.getComponentMetadataForSupportLog(), StatusCode.STARTED,
-                            "Started to create relations on instance: {}", uploadRegInfo.getName());
+                            .log(LoggerSupportabilityActions.CREATE_RELATIONS, resource.getComponentMetadataForSupportLog(), StatusCode.STARTED,
+                                    "Started to create relations on instance: {}", uploadRegInfo.getName());
                     String regName = uploadRegInfo.getName();
                     RequirementCapabilityRelDef regCapRelDef = new RequirementCapabilityRelDef();
                     regCapRelDef.setFromNode(resourceInstanceId);
                     log.debug("try to find available requirement {} ", regName);
                     Either<RequirementDefinition, ResponseFormat> eitherReqStatus = findAviableRequiremen(regName, yamlName, nodesInfoValue,
-                        currentCompInstance, uploadRegInfo.getCapabilityName());
+                            currentCompInstance, uploadRegInfo.getCapabilityName());
                     if (eitherReqStatus.isRight()) {
                         log.debug("failed to find available requirement {} status is {}", regName, eitherReqStatus.right().value());
                         loggerSupportability
-                            .log(LoggerSupportabilityActions.CREATE_RELATIONS, resource.getComponentMetadataForSupportLog(), StatusCode.ERROR,
-                                "ERROR while search available requirement {} status is: {}", regName, eitherReqStatus.right().value());
+                                .log(LoggerSupportabilityActions.CREATE_RELATIONS, resource.getComponentMetadataForSupportLog(), StatusCode.ERROR,
+                                        "ERROR while search available requirement {} status is: {}", regName, eitherReqStatus.right().value());
                         return eitherReqStatus.right().value();
                     }
                     RequirementDefinition validReq = eitherReqStatus.left().value();
@@ -3013,11 +3015,11 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                     if (currentCapCompInstance == null) {
                         log.debug("The component instance  with name {} not found on resource {} ", uploadRegInfo.getNode(), resource.getUniqueId());
                         loggerSupportability
-                            .log(LoggerSupportabilityActions.CREATE_RELATIONS, resource.getComponentMetadataForSupportLog(), StatusCode.ERROR,
-                                "ERROR component instance  with name: {} not found on resource: {}", uploadRegInfo.getNode(), resource.getUniqueId());
+                                .log(LoggerSupportabilityActions.CREATE_RELATIONS, resource.getComponentMetadataForSupportLog(), StatusCode.ERROR,
+                                        "ERROR component instance  with name: {} not found on resource: {}", uploadRegInfo.getNode(), resource.getUniqueId());
                         BeEcompErrorManager.getInstance()
-                            .logInternalDataError(COMPONENT_INSTANCE_WITH_NAME + uploadRegInfo.getNode() + IN_RESOURCE, resource.getUniqueId(),
-                                ErrorSeverity.ERROR);
+                                .logInternalDataError(COMPONENT_INSTANCE_WITH_NAME + uploadRegInfo.getNode() + IN_RESOURCE, resource.getUniqueId(),
+                                        ErrorSeverity.ERROR);
                         return componentsUtils.getResponseFormat(ActionStatus.NOT_TOPOLOGY_TOSCA_TEMPLATE, yamlName);
                     }
                     regCapRelDef.setToNode(currentCapCompInstance.getUniqueId());
@@ -3025,14 +3027,14 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                     CapabilityDefinition aviableCapForRel = findAvailableCapabilityByTypeOrName(validReq, currentCapCompInstance, uploadRegInfo);
                     if (aviableCapForRel == null) {
                         log.debug("aviable capability was not found. req name is {} component instance is {}", validReq.getName(),
-                            currentCapCompInstance.getUniqueId());
-                        loggerSupportability
-                            .log(LoggerSupportabilityActions.CREATE_RELATIONS, resource.getComponentMetadataForSupportLog(), StatusCode.ERROR,
-                                "ERROR available capability was not found. req name is: {} component instance is: {}", validReq.getName(),
                                 currentCapCompInstance.getUniqueId());
+                        loggerSupportability
+                                .log(LoggerSupportabilityActions.CREATE_RELATIONS, resource.getComponentMetadataForSupportLog(), StatusCode.ERROR,
+                                        "ERROR available capability was not found. req name is: {} component instance is: {}", validReq.getName(),
+                                        currentCapCompInstance.getUniqueId());
                         BeEcompErrorManager.getInstance().logInternalDataError(
-                            "aviable capability was not found. req name is " + validReq.getName() + " component instance is " + currentCapCompInstance
-                                .getUniqueId(), resource.getUniqueId(), ErrorSeverity.ERROR);
+                                "aviable capability was not found. req name is " + validReq.getName() + " component instance is " + currentCapCompInstance
+                                        .getUniqueId(), resource.getUniqueId(), ErrorSeverity.ERROR);
                         return componentsUtils.getResponseFormat(ActionStatus.NOT_TOPOLOGY_TOSCA_TEMPLATE, yamlName);
                     }
                     reqAndRelationshipPair.setCapability(aviableCapForRel.getName());
@@ -3061,7 +3063,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             if (CollectionUtils.isEmpty(originResource.getInputs())) {
                 log.debug("failed to find properties ");
                 loggerSupportability.log(LoggerSupportabilityActions.CREATE_INPUTS, resource.getComponentMetadataForSupportLog(), StatusCode.ERROR,
-                    "ERROR while try to find properties");
+                        "ERROR while try to find properties");
                 throw new ByActionStatusComponentException(ActionStatus.PROPERTY_NOT_FOUND);
             }
             originResource.getInputs().forEach(p -> addInput(currPropertiesMap, p));
@@ -3080,7 +3082,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         String propName = propertyInfo.getName();
         if (!currPropertiesMap.containsKey(propName)) {
             loggerSupportability.log(LoggerSupportabilityActions.PROPERTY, resource.getComponentMetadataForSupportLog(), StatusCode.ERROR,
-                "ERROR failed to find property: {}", propName);
+                    "ERROR failed to find property: {}", propName);
             log.debug("failed to find property {} ", propName);
             throw new ByActionStatusComponentException(ActionStatus.PROPERTY_NOT_FOUND, propName);
         }
@@ -3107,16 +3109,16 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                 List<InputDefinition> inputs = resource.getInputs();
                 if (CollectionUtils.isEmpty(inputs)) {
                     loggerSupportability.log(LoggerSupportabilityActions.PROPERTY, resource.getComponentMetadataForSupportLog(), StatusCode.ERROR,
-                        "ERROR Failed to add property: " + propName + " to resource instance: {}. Inputs list is empty ",
-                        currentCompInstance.getUniqueId());
+                            "ERROR Failed to add property: " + propName + " to resource instance: {}. Inputs list is empty ",
+                            currentCompInstance.getUniqueId());
                     log.debug("Failed to add property {} to resource instance {}. Inputs list is empty ", property,
-                        currentCompInstance.getUniqueId());
+                            currentCompInstance.getUniqueId());
                     throw new ByActionStatusComponentException(ActionStatus.INVALID_CONTENT);
                 }
                 Optional<InputDefinition> optional = inputs.stream().filter(p -> p.getName().equals(getInput.getInputName())).findAny();
                 if (optional.isEmpty()) {
                     loggerSupportability.log(LoggerSupportabilityActions.PROPERTY, resource.getComponentMetadataForSupportLog(), StatusCode.ERROR,
-                        "ERROR Failed to find input: " + getInput.getInputName());
+                            "ERROR Failed to find input: " + getInput.getInputName());
                     log.debug("Failed to find input {} ", getInput.getInputName());
                     // @@TODO error message
                     throw new ByActionStatusComponentException(ActionStatus.INVALID_CONTENT);
@@ -3165,7 +3167,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         List<PropertyDefinition> listFromMap = originResource.getProperties();
         if ((propMap != null && !propMap.isEmpty()) && (listFromMap == null || listFromMap.isEmpty())) {
             loggerSupportability.log(LoggerSupportabilityActions.PROPERTY, resource.getComponentMetadataForSupportLog(), StatusCode.ERROR,
-                "ERROR Failed to find properties");
+                    "ERROR Failed to find properties");
             log.debug("failed to find properties");
             return componentsUtils.getResponseFormat(ActionStatus.PROPERTY_NOT_FOUND);
         }
@@ -3186,7 +3188,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                 if (!currPropertiesMap.containsKey(propName)) {
                     log.debug("failed to find property {} ", propName);
                     loggerSupportability.log(LoggerSupportabilityActions.PROPERTY, resource.getComponentMetadataForSupportLog(), StatusCode.ERROR,
-                        "ERROR Failed to find property: {}", propName);
+                            "ERROR Failed to find property: {}", propName);
                     return componentsUtils.getResponseFormat(ActionStatus.PROPERTY_NOT_FOUND, propName);
                 }
                 PropertyDefinition curPropertyDef = currPropertiesMap.get(propName);
@@ -3213,10 +3215,10 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                         if (inputs == null || inputs.isEmpty()) {
                             log.debug("Failed to add property {} to instance. Inputs list is empty ", property);
                             loggerSupportability
-                                .log(LoggerSupportabilityActions.PROPERTY, resource.getComponentMetadataForSupportLog(), StatusCode.ERROR,
-                                    "Failed to add property: {} to instance. Inputs list is empty", propName);
+                                    .log(LoggerSupportabilityActions.PROPERTY, resource.getComponentMetadataForSupportLog(), StatusCode.ERROR,
+                                            "Failed to add property: {} to instance. Inputs list is empty", propName);
                             rollbackWithException(ActionStatus.INPUTS_NOT_FOUND,
-                                property.getGetInputValues().stream().map(GetInputValueDataDefinition::getInputName).collect(toList()).toString());
+                                    property.getGetInputValues().stream().map(GetInputValueDataDefinition::getInputName).collect(toList()).toString());
                         }
                         Either<InputDefinition, RuntimeException> inputEither = findInputByName(inputs, getInput);
                         if (inputEither.isRight()) {
@@ -3259,7 +3261,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
     private CapabilityDefinition findAvailableCapabilityByTypeOrName(RequirementDefinition validReq, ComponentInstance currentCapCompInstance,
                                                                      UploadReqInfo uploadReqInfo) {
         if (null == uploadReqInfo.getCapabilityName() || validReq.getCapability()
-            .equals(uploadReqInfo.getCapabilityName())) {// get
+                .equals(uploadReqInfo.getCapabilityName())) {// get
 
             // by
 
@@ -3279,7 +3281,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             return null;
         }
         Optional<CapabilityDefinition> capByName = capMap.get(validReq.getCapability()).stream()
-            .filter(p -> p.getName().equals(uploadReqInfo.getCapabilityName())).findAny();
+                .filter(p -> p.getName().equals(uploadReqInfo.getCapabilityName())).findAny();
         if (capByName.isEmpty()) {
             return null;
         }
@@ -3380,8 +3382,8 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         }
         if (validRegDef == null) {
             ResponseFormat responseFormat = componentsUtils
-                .getResponseFormat(ActionStatus.INVALID_NODE_TEMPLATE, yamlName, uploadComponentInstanceInfo.getName(),
-                    uploadComponentInstanceInfo.getType());
+                    .getResponseFormat(ActionStatus.INVALID_NODE_TEMPLATE, yamlName, uploadComponentInstanceInfo.getName(),
+                            uploadComponentInstanceInfo.getType());
             return Either.right(responseFormat);
         }
         return Either.left(validRegDef);
@@ -3401,12 +3403,12 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         }
         Map<ComponentInstance, Resource> resourcesInstancesMap = new HashMap<>();
         uploadResInstancesMap.values().forEach(
-            i -> createAndAddResourceInstance(i, yamlName, resource, nodeNamespaceMap, existingNodeTypesByResourceNames, resourcesInstancesMap));
+                i -> createAndAddResourceInstance(i, yamlName, resource, nodeNamespaceMap, existingNodeTypesByResourceNames, resourcesInstancesMap));
         if (oldResource != null && oldResource.getResourceType() != ResourceTypeEnum.CVFC && oldResource.getComponentInstances() != null) {
             Map<String, Resource> existingNodeTypesByUids = existingNodeTypesByResourceNames.values().stream()
-                .collect(toMap(Resource::getUniqueId, r -> r));
+                    .collect(toMap(Resource::getUniqueId, r -> r));
             oldResource.getComponentInstances().stream().filter(i -> !i.isCreatedFromCsar())
-                .forEach(uiInst -> resourcesInstancesMap.put(uiInst, getOriginResource(existingNodeTypesByUids, uiInst)));
+                    .forEach(uiInst -> resourcesInstancesMap.put(uiInst, getOriginResource(existingNodeTypesByUids, uiInst)));
         }
         if (isNotEmpty(resourcesInstancesMap)) {
             try {
@@ -3415,14 +3417,14 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                 if (exp.getStorageOperationStatus() != null && exp.getStorageOperationStatus() != StorageOperationStatus.OK) {
                     log.debug("Failed to add component instances to container component {}", resource.getName());
                     ResponseFormat responseFormat = componentsUtils
-                        .getResponseFormat(componentsUtils.convertFromStorageResponse(exp.getStorageOperationStatus()));
+                            .getResponseFormat(componentsUtils.convertFromStorageResponse(exp.getStorageOperationStatus()));
                     eitherResource = Either.right(responseFormat);
                     throw new ByResponseFormatComponentException(eitherResource.right().value());
                 }
             }
         }
         if (CollectionUtils.isEmpty(resource.getComponentInstances()) &&
-            resource.getResourceType() != ResourceTypeEnum.PNF) { // PNF can have no resource instances
+                resource.getResourceType() != ResourceTypeEnum.PNF) { // PNF can have no resource instances
             log.debug("Error when create resource instance from csar. ComponentInstances list empty");
             BeEcompErrorManager.getInstance().logBeDaoSystemError("Error when create resource instance from csar. ComponentInstances list empty");
             throw new ByResponseFormatComponentException(componentsUtils.getResponseFormat(ActionStatus.NOT_TOPOLOGY_TOSCA_TEMPLATE));
@@ -3452,23 +3454,23 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         UploadNodeFilterInfo uploadNodeFilterInfo = uploadComponentInstanceInfo.getUploadNodeFilterInfo();
         if (uploadNodeFilterInfo != null) {
             componentInstance
-                .setNodeFilter(new CINodeFilterUtils().getNodeFilterDataDefinition(uploadNodeFilterInfo, componentInstance.getUniqueId()));
+                    .setNodeFilter(new CINodeFilterUtils().getNodeFilterDataDefinition(uploadNodeFilterInfo, componentInstance.getUniqueId()));
         }
         ComponentTypeEnum containerComponentType = resource.getComponentType();
         NodeTypeEnum containerNodeType = containerComponentType.getNodeType();
         if (containerNodeType == NodeTypeEnum.Resource && isNotEmpty(uploadComponentInstanceInfo.getCapabilities()) && isNotEmpty(
-            refResource.getCapabilities())) {
+                refResource.getCapabilities())) {
             setCapabilityNamesTypes(refResource.getCapabilities(), uploadComponentInstanceInfo.getCapabilities());
             Map<String, List<CapabilityDefinition>> validComponentInstanceCapabilities = getValidComponentInstanceCapabilities(
-                refResource.getUniqueId(), refResource.getCapabilities(), uploadComponentInstanceInfo.getCapabilities());
+                    refResource.getUniqueId(), refResource.getCapabilities(), uploadComponentInstanceInfo.getCapabilities());
             componentInstance.setCapabilities(validComponentInstanceCapabilities);
         }
         if (isNotEmpty(uploadComponentInstanceInfo.getArtifacts())) {
             Map<String, Map<String, UploadArtifactInfo>> artifacts = uploadComponentInstanceInfo.getArtifacts();
             Map<String, ToscaArtifactDataDefinition> toscaArtifacts = new HashMap<>();
             Map<String, Map<String, UploadArtifactInfo>> arts = artifacts.entrySet().stream()
-                .filter(e -> e.getKey().contains(TypeUtils.ToscaTagNamesEnum.ARTIFACTS.getElementName()))
-                .collect(Collectors.toMap(Entry::getKey, Entry::getValue));
+                    .filter(e -> e.getKey().contains(TypeUtils.ToscaTagNamesEnum.ARTIFACTS.getElementName()))
+                    .collect(Collectors.toMap(Entry::getKey, Entry::getValue));
             Map<String, UploadArtifactInfo> artifact = arts.get(TypeUtils.ToscaTagNamesEnum.ARTIFACTS.getElementName());
             for (Map.Entry<String, UploadArtifactInfo> entry : artifact.entrySet()) {
                 ToscaArtifactDataDefinition to = new ToscaArtifactDataDefinition();
@@ -3488,9 +3490,9 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         }
         if (!existingnodeTypeMap.containsKey(uploadComponentInstanceInfo.getType())) {
             log.debug("createResourceInstances - not found lates version for resource instance with name {} and type {}",
-                uploadComponentInstanceInfo.getName(), uploadComponentInstanceInfo.getType());
+                    uploadComponentInstanceInfo.getName(), uploadComponentInstanceInfo.getType());
             throw new ByActionStatusComponentException(ActionStatus.INVALID_NODE_TEMPLATE, yamlName, uploadComponentInstanceInfo.getName(),
-                uploadComponentInstanceInfo.getType());
+                    uploadComponentInstanceInfo.getType());
         }
         Resource origResource = existingnodeTypeMap.get(uploadComponentInstanceInfo.getType());
         componentInstance.setName(uploadComponentInstanceInfo.getName());
@@ -3521,18 +3523,18 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
     private Resource validateResourceInstanceBeforeCreate(String yamlName, UploadComponentInstanceInfo uploadComponentInstanceInfo,
                                                           Map<String, Resource> nodeNamespaceMap, Resource resource) {
         log.debug("validateResourceInstanceBeforeCreate - going to validate resource instance with name {} and type {} before create",
-            uploadComponentInstanceInfo.getName(), uploadComponentInstanceInfo.getType());
+                uploadComponentInstanceInfo.getName(), uploadComponentInstanceInfo.getType());
         Resource refResource;
         if (nodeNamespaceMap.containsKey(uploadComponentInstanceInfo.getType())) {
             refResource = nodeNamespaceMap.get(uploadComponentInstanceInfo.getType());
         } else {
             Either<Resource, StorageOperationStatus> findResourceEither = StringUtils.isEmpty(resource.getModel()) ?
-                toscaOperationFacade.getByToscaResourceNameMatchingVendorRelease(uploadComponentInstanceInfo.getType(),
-                    ((ResourceMetadataDataDefinition) resource.getComponentMetadataDefinition().getMetadataDataDefinition()).getVendorRelease()):
-                toscaOperationFacade.getLatestByToscaResourceNameAndModel(uploadComponentInstanceInfo.getType(), resource.getModel());
+                    toscaOperationFacade.getByToscaResourceNameMatchingVendorRelease(uploadComponentInstanceInfo.getType(),
+                            ((ResourceMetadataDataDefinition) resource.getComponentMetadataDefinition().getMetadataDataDefinition()).getVendorRelease()):
+                    toscaOperationFacade.getLatestByToscaResourceNameAndModel(uploadComponentInstanceInfo.getType(), resource.getModel());
             if (findResourceEither.isRight()) {
                 log.debug("validateResourceInstanceBeforeCreate - not found latest version for resource instance with name {} and type {}",
-                    uploadComponentInstanceInfo.getName(), uploadComponentInstanceInfo.getType());
+                        uploadComponentInstanceInfo.getName(), uploadComponentInstanceInfo.getType());
                 throw new ByActionStatusComponentException(componentsUtils.convertFromStorageResponse(findResourceEither.right().value()));
             }
             refResource = findResourceEither.left().value();
@@ -3541,15 +3543,15 @@ 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);
+                    "validateResourceInstanceBeforeCreate - component instance of component {} can not be created because the component is in an illegal state {}.",
+                    refResource.getName(), componentState);
             throw new ByActionStatusComponentException(ActionStatus.ILLEGAL_COMPONENT_STATE, refResource.getComponentType().getValue(),
-                refResource.getName(), componentState);
+                    refResource.getName(), componentState);
         }
         if (!ModelConverter.isAtomicComponent(refResource) && refResource.getResourceType() != ResourceTypeEnum.CVFC) {
             log.debug("validateResourceInstanceBeforeCreate -  ref resource type is {} ", refResource.getResourceType());
             throw new ByActionStatusComponentException(ActionStatus.INVALID_NODE_TEMPLATE, yamlName, uploadComponentInstanceInfo.getName(),
-                uploadComponentInstanceInfo.getType());
+                    uploadComponentInstanceInfo.getType());
         }
         return refResource;
     }
@@ -3559,7 +3561,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         boolean failed = false;
         try {
             if (resource.getLifecycleState() != LifecycleStateEnum.CERTIFIED && forceCertificationAllowed && lifecycleBusinessLogic
-                .isFirstCertification(resource.getVersion())) {
+                    .isFirstCertification(resource.getVersion())) {
                 nodeForceCertification(resource, user, lifecycleChangeInfo, inTransaction, needLock);
             }
             if (resource.getLifecycleState() == LifecycleStateEnum.CERTIFIED) {
@@ -3586,7 +3588,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
     private Resource nodeFullCertification(String uniqueId, User user, LifecycleChangeInfoWithAction lifecycleChangeInfo, boolean inTransaction,
                                            boolean needLock) {
         Either<Resource, ResponseFormat> resourceResponse = lifecycleBusinessLogic
-            .changeState(uniqueId, user, LifeCycleTransitionEnum.CERTIFY, lifecycleChangeInfo, inTransaction, needLock);
+                .changeState(uniqueId, user, LifeCycleTransitionEnum.CERTIFY, lifecycleChangeInfo, inTransaction, needLock);
         if (resourceResponse.isRight()) {
             throw new ByResponseFormatComponentException(resourceResponse.right().value());
         }
@@ -3607,15 +3609,15 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         final boolean isNestedResource = isNestedResourceUpdate(csarInfo, nodeName);
         final String resourceName = resource.getToscaResourceName();
         final Either<Resource, StorageOperationStatus> latestByToscaName = toscaOperationFacade
-            .getLatestByToscaResourceNameAndModel(resourceName, resource.getModel());
+                .getLatestByToscaResourceNameAndModel(resourceName, resource.getModel());
         if (latestByToscaName.isLeft() && Objects.nonNull(latestByToscaName.left().value())) {
             final Resource foundResource = latestByToscaName.left().value();
             // we don't allow updating names of top level types
             if (!isNestedResource && !StringUtils.equals(resource.getName(), foundResource.getName())) {
                 BeEcompErrorManager.getInstance()
-                    .logBeComponentMissingError("Create / Update resource by import", ComponentTypeEnum.RESOURCE.getValue(), resource.getName());
+                        .logBeComponentMissingError("Create / Update resource by import", ComponentTypeEnum.RESOURCE.getValue(), resource.getName());
                 log.debug("resource already exist new name={} old name={} same type={}", resource.getName(), foundResource.getName(),
-                    resource.getToscaResourceName());
+                        resource.getToscaResourceName());
                 final ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.RESOURCE_ALREADY_EXISTS);
                 componentsUtils.auditResource(responseFormat, user, resource, AuditingActionEnum.IMPORT_RESOURCE);
                 throwComponentException(responseFormat);
@@ -3631,7 +3633,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             StorageOperationStatus status = latestByToscaName.right().value();
             log.debug("failed to get latest version of resource {}. status={}", resource.getName(), status);
             ResponseFormat responseFormat = componentsUtils
-                .getResponseFormatByResource(componentsUtils.convertFromStorageResponse(latestByToscaName.right().value()), resource);
+                    .getResponseFormatByResource(componentsUtils.convertFromStorageResponse(latestByToscaName.right().value()), resource);
             componentsUtils.auditResource(responseFormat, user, resource, AuditingActionEnum.IMPORT_RESOURCE);
             throwComponentException(responseFormat);
         }
@@ -3647,12 +3649,12 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                                                                                final CsarInfo csarInfo, final boolean isNested,
                                                                                final String nodeName) {
         final Either<Component, StorageOperationStatus> latestByToscaName = toscaOperationFacade.getLatestByToscaResourceName(
-            buildNestedToscaResourceName(resource.getResourceType().name(), csarInfo.getVfResourceName(), nodeName).getRight(), resource.getModel());
+                buildNestedToscaResourceName(resource.getResourceType().name(), csarInfo.getVfResourceName(), nodeName).getRight(), resource.getModel());
         if (latestByToscaName.isLeft()) {
             final Resource nestedResource = (Resource) latestByToscaName.left().value();
             log.debug(VALIDATE_DERIVED_BEFORE_UPDATE);
             final Either<Boolean, ResponseFormat> eitherValidation = validateNestedDerivedFromDuringUpdate(nestedResource, resource,
-                ValidationUtils.hasBeenCertified(nestedResource.getVersion()));
+                    ValidationUtils.hasBeenCertified(nestedResource.getVersion()));
             if (eitherValidation.isRight()) {
                 return createResourceByImport(resource, user, isNormative, isInTransaction, csarInfo);
             }
@@ -3686,7 +3688,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                                                                                  boolean inTransaction, boolean needLock, boolean isNested) {
         String lockedResourceId = oldResource.getUniqueId();
         log.debug("found resource: name={}, id={}, version={}, state={}", oldResource.getName(), lockedResourceId, oldResource.getVersion(),
-            oldResource.getLifecycleState());
+                oldResource.getLifecycleState());
         ImmutablePair<Resource, ActionStatus> resourcePair = null;
         try {
             lockComponent(lockedResourceId, oldResource, needLock, "Update Resource by Import");
@@ -3747,7 +3749,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             Either<Resource, StorageOperationStatus> overrideResource = toscaOperationFacade.overrideComponent(newResource, oldResource);
             if (overrideResource.isRight()) {
                 ResponseFormat responseFormat = componentsUtils
-                    .getResponseFormatByResource(componentsUtils.convertFromStorageResponse(overrideResource.right().value()), newResource);
+                        .getResponseFormatByResource(componentsUtils.convertFromStorageResponse(overrideResource.right().value()), newResource);
                 componentsUtils.auditResource(responseFormat, user, newResource, AuditingActionEnum.IMPORT_RESOURCE);
                 throwComponentException(responseFormat);
             }
@@ -3755,7 +3757,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             log.debug("Resource updated successfully!!!");
             ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.OK);
             componentsUtils.auditResource(responseFormat, user, newResource, AuditingActionEnum.IMPORT_RESOURCE,
-                ResourceVersionInfo.newBuilder().state(oldResource.getLifecycleState().name()).version(oldResource.getVersion()).build());
+                    ResourceVersionInfo.newBuilder().state(oldResource.getLifecycleState().name()).version(oldResource.getVersion()).build());
             resourcePair = new ImmutablePair<>(overrideResource.left().value(), ActionStatus.OK);
             return resourcePair;
         } finally {
@@ -3811,19 +3813,19 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             newResource.setGroups(groupForUpdate);
         }
         if (newResource.getResourceType().isAtomicType() && !newResource.getName().equals("Root")
-            && newResource.getResourceType() != ResourceTypeEnum.CVFC) {
+                && newResource.getResourceType() != ResourceTypeEnum.CVFC) {
             ResourceTypeEnum updatedResourceType = newResource.getResourceType();
             Optional<Component> derivedFromResourceOptional = getParentComponent(newResource);
             if (derivedFromResourceOptional.isPresent() && derivedFromResourceOptional.get().getComponentType() == ComponentTypeEnum.RESOURCE) {
                 Resource parentResource = (Resource) derivedFromResourceOptional.get();
                 if (!(parentResource.isAbstract() && (ResourceTypeEnum.VFC == parentResource.getResourceType()
-                    || ResourceTypeEnum.ABSTRACT == parentResource.getResourceType())) && parentResource.getResourceType() != updatedResourceType
-                    && oldResource.getResourceType() != updatedResourceType) {
+                        || ResourceTypeEnum.ABSTRACT == parentResource.getResourceType())) && parentResource.getResourceType() != updatedResourceType
+                        && oldResource.getResourceType() != updatedResourceType) {
                     BeEcompErrorManager.getInstance().logInternalDataError("mergeOldResourceMetadataWithNew",
-                        "resource type of the resource does not match to derived from resource type", ErrorSeverity.ERROR);
+                            "resource type of the resource does not match to derived from resource type", ErrorSeverity.ERROR);
                     log.debug(
-                        "#mergeOldResourceMetadataWithNew - resource type {} of the resource {} does not match to derived from resource type {}",
-                        newResource.getResourceType(), newResource.getToscaResourceName(), parentResource.getResourceType());
+                            "#mergeOldResourceMetadataWithNew - resource type {} of the resource {} does not match to derived from resource type {}",
+                            newResource.getResourceType(), newResource.getToscaResourceName(), parentResource.getResourceType());
                     throw new ByActionStatusComponentException(ActionStatus.INVALID_RESOURCE_TYPE);
                 }
             }
@@ -3836,10 +3838,10 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         }
         String toscaResourceNameDerivedFrom = newResource.getDerivedFrom().get(0);
         Either<Component, StorageOperationStatus> latestByToscaResourceName = toscaOperationFacade
-            .getLatestByToscaResourceName(toscaResourceNameDerivedFrom, newResource.getModel());
+                .getLatestByToscaResourceName(toscaResourceNameDerivedFrom, newResource.getModel());
         if (latestByToscaResourceName.isRight()) {
             BeEcompErrorManager.getInstance()
-                .logInternalDataError("mergeOldResourceMetadataWithNew", "derived from resource not found", ErrorSeverity.ERROR);
+                    .logInternalDataError("mergeOldResourceMetadataWithNew", "derived from resource not found", ErrorSeverity.ERROR);
             log.debug("#mergeOldResourceMetadataWithNew - derived from resource {} not found", toscaResourceNameDerivedFrom);
             throw new ByActionStatusComponentException(ActionStatus.RESOURCE_NOT_FOUND, toscaResourceNameDerivedFrom);
         }
@@ -3850,8 +3852,8 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         if (!ComponentValidationUtils.canWorkOnResource(oldResource, user.getUserId())) {
             // checkout
             return lifecycleBusinessLogic
-                .changeState(oldResource.getUniqueId(), user, LifeCycleTransitionEnum.CHECKOUT, new LifecycleChangeInfoWithAction("update by import"),
-                    inTransaction, needLock).left().on(response -> failOnChangeState(response, user, oldResource, newResource));
+                    .changeState(oldResource.getUniqueId(), user, LifeCycleTransitionEnum.CHECKOUT, new LifecycleChangeInfoWithAction("update by import"),
+                            inTransaction, needLock).left().on(response -> failOnChangeState(response, user, oldResource, newResource));
         }
         return oldResource;
     }
@@ -3859,7 +3861,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
     private Resource failOnChangeState(ResponseFormat response, User user, Resource oldResource, Resource newResource) {
         log.info("resource {} cannot be updated. reason={}", oldResource.getUniqueId(), response.getFormattedMessage());
         componentsUtils.auditResource(response, user, newResource, AuditingActionEnum.IMPORT_RESOURCE,
-            ResourceVersionInfo.newBuilder().state(oldResource.getLifecycleState().name()).version(oldResource.getVersion()).build());
+                ResourceVersionInfo.newBuilder().state(oldResource.getLifecycleState().name()).version(oldResource.getVersion()).build());
         throw new ByResponseFormatComponentException(response);
     }
 
@@ -3880,7 +3882,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                 resourceSystemName = resource.getSystemName();
             }
             resource
-                .setToscaResourceName(CommonBeUtils.generateToscaResourceName(resource.getResourceType().name().toLowerCase(), resourceSystemName));
+                    .setToscaResourceName(CommonBeUtils.generateToscaResourceName(resource.getResourceType().name().toLowerCase(), resourceSystemName));
         }
         // Generate invariant UUID - must be here and not in operation since it
 
@@ -3915,7 +3917,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                 if (eitherCapTypeFound.isRight()) {
                     if (eitherCapTypeFound.right().value() == StorageOperationStatus.NOT_FOUND) {
                         BeEcompErrorManager.getInstance()
-                            .logBeGraphObjectMissingError("Create Resource - validateLifecycleTypesCreate", "Interface", intType);
+                                .logBeGraphObjectMissingError("Create Resource - validateLifecycleTypesCreate", "Interface", intType);
                         log.debug("Lifecycle Type: {} is required by resource: {} but does not exist in the DB", intType, resource.getName());
                         BeEcompErrorManager.getInstance().logBeDaoSystemError("Create Resource - validateLifecycleTypesCreate");
                         log.debug("request to data model failed with error: {}", eitherCapTypeFound.right().value().name());
@@ -3936,7 +3938,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             log.debug("validate capability Types Exist - capabilities section");
             for (Entry<String, List<CapabilityDefinition>> typeEntry : resource.getCapabilities().entrySet()) {
                 eitherResult = validateCapabilityTypeExists(user, capabilityTypeOperation, resource, actionEnum, eitherResult, typeEntry,
-                    inTransaction);
+                        inTransaction);
                 if (eitherResult.isRight()) {
                     return Either.right(eitherResult.right().value());
                 }
@@ -3946,7 +3948,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             log.debug("validate capability Types Exist - requirements section");
             for (String type : resource.getRequirements().keySet()) {
                 eitherResult = validateCapabilityTypeExists(user, capabilityTypeOperation, resource, resource.getRequirements().get(type), actionEnum,
-                    eitherResult, type, inTransaction);
+                        eitherResult, type, inTransaction);
                 if (eitherResult.isRight()) {
                     return Either.right(eitherResult.right().value());
                 }
@@ -3985,11 +3987,11 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                                                                          Either<Boolean, ResponseFormat> eitherResult,
                                                                          Entry<String, List<CapabilityDefinition>> typeEntry, boolean inTransaction) {
         Either<CapabilityTypeDefinition, StorageOperationStatus> eitherCapTypeFound = capabilityTypeOperation
-            .getCapabilityType(UniqueIdBuilder.buildCapabilityTypeUid(resource.getModel(), typeEntry.getKey()), inTransaction);
+                .getCapabilityType(UniqueIdBuilder.buildCapabilityTypeUid(resource.getModel(), typeEntry.getKey()), inTransaction);
         if (eitherCapTypeFound.isRight()) {
             if (eitherCapTypeFound.right().value() == StorageOperationStatus.NOT_FOUND) {
                 BeEcompErrorManager.getInstance()
-                    .logBeGraphObjectMissingError(CREATE_RESOURCE_VALIDATE_CAPABILITY_TYPES, "Capability Type", typeEntry.getKey());
+                        .logBeGraphObjectMissingError(CREATE_RESOURCE_VALIDATE_CAPABILITY_TYPES, "Capability Type", typeEntry.getKey());
                 log.debug("Capability Type: {} is required by resource: {} but does not exist in the DB", typeEntry.getKey(), resource.getName());
                 BeEcompErrorManager.getInstance().logBeDaoSystemError(CREATE_RESOURCE_VALIDATE_CAPABILITY_TYPES);
             }
@@ -4068,12 +4070,12 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             ASDCKpiApi.countCreatedResourcesKPI();
         } catch (ComponentException e) {
             ResponseFormat responseFormat =
-                e.getResponseFormat() == null ? componentsUtils.getResponseFormat(e.getActionStatus(), e.getParams()) : e.getResponseFormat();
+                    e.getResponseFormat() == null ? componentsUtils.getResponseFormat(e.getActionStatus(), e.getParams()) : e.getResponseFormat();
             componentsUtils.auditResource(responseFormat, user, resource, actionEnum);
             throw e;
         } catch (StorageException e) {
             ResponseFormat responseFormat = componentsUtils
-                .getResponseFormat(componentsUtils.convertFromStorageResponse(e.getStorageOperationStatus()));
+                    .getResponseFormat(componentsUtils.convertFromStorageResponse(e.getStorageOperationStatus()));
             componentsUtils.auditResource(responseFormat, user, resource, actionEnum);
             throw e;
         } finally {
@@ -4090,20 +4092,20 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         final ResourceTypeEnum resourceType = resource.getResourceType();
         final ComponentTypeEnum componentType = resource.getComponentType();
         final Either<Boolean, StorageOperationStatus> eitherValidation = toscaOperationFacade
-            .validateComponentNameAndModelExists(resourceName, modelName, resourceType, componentType);
+                .validateComponentNameAndModelExists(resourceName, modelName, resourceType, componentType);
         if (eitherValidation.isRight()) {
             loggerSupportability.log(LoggerSupportabilityActions.VALIDATE_NAME, resource.getComponentMetadataForSupportLog(), StatusCode.ERROR,
-                "ERROR while validate component name {} Status is: {}", resource.getName(), eitherValidation.right().value());
+                    "ERROR while validate component name {} Status is: {}", resource.getName(), eitherValidation.right().value());
             log.debug("Failed to validate component name {}. Status is {}. ", resource.getName(), eitherValidation.right().value());
             throw new ByActionStatusComponentException(componentsUtils.convertFromStorageResponse(eitherValidation.right().value()));
         }
         if (eitherValidation.left().value()) {
             log.debug("resource with name: {}, already exists", resource.getName());
             loggerSupportability
-                .log(LoggerSupportabilityActions.CREATE_RESOURCE_FROM_YAML, resource.getComponentMetadataForSupportLog(), StatusCode.ERROR,
-                    "resource with name: {} already exists", resource.getName());
+                    .log(LoggerSupportabilityActions.CREATE_RESOURCE_FROM_YAML, resource.getComponentMetadataForSupportLog(), StatusCode.ERROR,
+                            "resource with name: {} already exists", resource.getName());
             throw new ByActionStatusComponentException(ActionStatus.COMPONENT_NAME_ALREADY_EXIST, ComponentTypeEnum.RESOURCE.getValue(),
-                resource.getName());
+                    resource.getName());
         }
         log.debug("send resource {} to dao for create", resource.getName());
         createArtifactsPlaceHolderData(resource, user);
@@ -4145,7 +4147,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             artifactMap = new HashMap<>();
         }
         Map<String, Object> deploymentResourceArtifacts = ConfigurationManager.getConfigurationManager().getConfiguration()
-            .getDeploymentResourceArtifacts();
+                .getDeploymentResourceArtifacts();
         if (deploymentResourceArtifacts != null) {
             Map<String, ArtifactDefinition> finalArtifactMap = artifactMap;
             deploymentResourceArtifacts.forEach((k, v) -> processDeploymentResourceArtifacts(user, resource, finalArtifactMap, k, v));
@@ -4166,7 +4168,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         }
         if (artifactsBusinessLogic != null) {
             ArtifactDefinition artifactDefinition = artifactsBusinessLogic
-                .createArtifactPlaceHolderInfo(resource.getUniqueId(), k, (Map<String, Object>) v, user, ArtifactGroupTypeEnum.DEPLOYMENT);
+                    .createArtifactPlaceHolderInfo(resource.getUniqueId(), k, (Map<String, Object>) v, user, ArtifactGroupTypeEnum.DEPLOYMENT);
             if (artifactDefinition != null && !artifactMap.containsKey(artifactDefinition.getArtifactLabel())) {
                 artifactMap.put(artifactDefinition.getArtifactLabel(), artifactDefinition);
             }
@@ -4183,7 +4185,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         List<String> exludeResourceCategory = ConfigurationManager.getConfigurationManager().getConfiguration().getExcludeResourceCategory();
         List<String> exludeResourceType = ConfigurationManager.getConfigurationManager().getConfiguration().getExcludeResourceType();
         Map<String, Object> informationalResourceArtifacts = ConfigurationManager.getConfigurationManager().getConfiguration()
-            .getInformationalResourceArtifacts();
+                .getInformationalResourceArtifacts();
         List<CategoryDefinition> categories = resource.getCategories();
         boolean isCreateArtifact = true;
         if (exludeResourceCategory != null) {
@@ -4199,8 +4201,8 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             for (String informationalResourceArtifactName : keys) {
                 Map<String, Object> artifactInfoMap = (Map<String, Object>) informationalResourceArtifacts.get(informationalResourceArtifactName);
                 ArtifactDefinition artifactDefinition = artifactsBusinessLogic
-                    .createArtifactPlaceHolderInfo(resourceUniqueId, informationalResourceArtifactName, artifactInfoMap, user,
-                        ArtifactGroupTypeEnum.INFORMATIONAL);
+                        .createArtifactPlaceHolderInfo(resourceUniqueId, informationalResourceArtifactName, artifactInfoMap, user,
+                                ArtifactGroupTypeEnum.INFORMATIONAL);
                 artifactMap.put(artifactDefinition.getArtifactLabel(), artifactDefinition);
             }
         }
@@ -4225,7 +4227,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         Resource resource = resourceStatus.left().value();
         if (isComponentSystemDeployed(resource)) {
             throw new ByActionStatusComponentException(ActionStatus.CANNOT_DELETE_SYSTEM_DEPLOYED_RESOURCES, ComponentTypeEnum.RESOURCE.getValue(),
-                resource.getName());
+                    resource.getName());
         }
         StorageOperationStatus result = StorageOperationStatus.OK;
         lockComponent(resourceId, resource, "Mark resource to delete");
@@ -4252,6 +4254,45 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         return resource.getComponentMetadataDefinition().getMetadataDataDefinition().isNormative();
     }
 
+    /**
+     * Deletes every version of the provided resource
+     *
+     * @param resourceId the resource identifier
+     * @param user the user that performs the deletion
+     * @return
+     * @throws ComponentException if there is any error in the deletion of the resource operation
+     */
+    public void deleteResourceAllVersions(String resourceId, User user) {
+        validateUserExists(user);
+        Either<Resource, StorageOperationStatus> resourceStatus = toscaOperationFacade.getToscaElement(resourceId);
+        if (resourceStatus.isRight()) {
+            log.debug("Failed to get resource {}", resourceId);
+            componentException(resourceStatus.right().value());
+        }
+        Resource resource = resourceStatus.left().value();
+        if (Boolean.FALSE.equals(resource.isArchived())) {
+            log.debug("The resource, {}, requested for delete has not been archived.", resourceId);
+            throw new ComponentException(ActionStatus.COMPONENT_NOT_ARCHIVED, resourceId);
+        }
+        try {
+            String model = resource.getModel();
+            final Optional<Model> modelOptional = modelOperation.findModelByName(model);
+            List<String> deletedResourceList = toscaOperationFacade.deleteComponent(resource.getInvariantUUID(), NodeTypeEnum.Resource, true);
+            if (log.isDebugEnabled()) {
+                deletedResourceList.forEach(deletedR -> log.debug("Component {} was deleted.", deletedR));
+            }
+            if (modelOptional.isPresent() && modelOptional.get().getModelType() == ModelTypeEnum.NORMATIVE_EXTENSION) {
+                modelOperation.deleteModel(modelOptional.get(), true);
+            }
+            toscaOperationFacade.commitAndCheck(resource.getUniqueId());
+            updateCatalog(resource, ChangeTypeEnum.DELETE);
+        } catch (ComponentException exception) {
+            log.debug("Failed to delete resource, {} ", resourceId);
+            janusGraphDao.rollback();
+            throw exception;
+        }
+    }
+
     public ResponseFormat deleteResourceByNameAndVersion(String resourceName, String version, User user) {
         ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.NO_CONTENT);
         validateUserExists(user);
@@ -4260,11 +4301,11 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         boolean failed = false;
         try {
             Either<Resource, StorageOperationStatus> resourceStatus = toscaOperationFacade
-                .getComponentByNameAndVersion(ComponentTypeEnum.RESOURCE, resourceName, version);
+                    .getComponentByNameAndVersion(ComponentTypeEnum.RESOURCE, resourceName, version);
             if (resourceStatus.isRight()) {
                 log.debug("failed to get resource {} version {}", resourceName, version);
                 return componentsUtils
-                    .getResponseFormatByResource(componentsUtils.convertFromStorageResponse(resourceStatus.right().value()), resourceName);
+                        .getResponseFormatByResource(componentsUtils.convertFromStorageResponse(resourceStatus.right().value()), resourceName);
             }
             resource = resourceStatus.left().value();
         } finally {
@@ -4302,11 +4343,11 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         if (storageStatus.isRight()) {
             log.debug("failed to get resource by id {}", resourceId);
             return Either.right(
-                componentsUtils.getResponseFormatByResource(componentsUtils.convertFromStorageResponse(storageStatus.right().value()), resourceId));
+                    componentsUtils.getResponseFormatByResource(componentsUtils.convertFromStorageResponse(storageStatus.right().value()), resourceId));
         }
         if (storageStatus.left().value() == null) {
             return Either.right(componentsUtils
-                .getResponseFormatByResource(componentsUtils.convertFromStorageResponse(StorageOperationStatus.NOT_FOUND), resourceId));
+                    .getResponseFormatByResource(componentsUtils.convertFromStorageResponse(StorageOperationStatus.NOT_FOUND), resourceId));
         }
         return Either.left(storageStatus.left().value());
     }
@@ -4314,11 +4355,11 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
     public Either<Resource, ResponseFormat> getResourceByNameAndVersion(String resourceName, String resourceVersion, String userId) {
         validateUserExists(userId);
         Either<Resource, StorageOperationStatus> getResource = toscaOperationFacade
-            .getComponentByNameAndVersion(ComponentTypeEnum.RESOURCE, resourceName, resourceVersion);
+                .getComponentByNameAndVersion(ComponentTypeEnum.RESOURCE, resourceName, resourceVersion);
         if (getResource.isRight()) {
             log.debug("failed to get resource by name {} and version {}", resourceName, resourceVersion);
             return Either.right(
-                componentsUtils.getResponseFormatByResource(componentsUtils.convertFromStorageResponse(getResource.right().value()), resourceName));
+                    componentsUtils.getResponseFormatByResource(componentsUtils.convertFromStorageResponse(getResource.right().value()), resourceName));
         }
         return Either.left(getResource.left().value());
     }
@@ -4342,7 +4383,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                 Either<Resource, StorageOperationStatus> storageStatus = toscaOperationFacade.getToscaElement(resourceIdToUpdate);
                 if (storageStatus.isRight()) {
                     throw new ByResponseFormatComponentException(
-                        componentsUtils.getResponseFormatByResource(componentsUtils.convertFromStorageResponse(storageStatus.right().value()), ""));
+                            componentsUtils.getResponseFormatByResource(componentsUtils.convertFromStorageResponse(storageStatus.right().value()), ""));
                 }
                 currentResource = storageStatus.left().value();
             }
@@ -4356,7 +4397,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             StorageOperationStatus lockResult = graphLockOperation.lockComponent(resourceIdToUpdate, NodeTypeEnum.Resource);
             if (lockResult != StorageOperationStatus.OK) {
                 BeEcompErrorManager.getInstance()
-                    .logBeFailedLockObjectError("Upload Artifact - lock ", NodeTypeEnum.Resource.getName(), resourceIdToUpdate);
+                        .logBeFailedLockObjectError("Upload Artifact - lock ", NodeTypeEnum.Resource.getName(), resourceIdToUpdate);
                 log.debug("Failed to lock resource: {}, error - {}", resourceIdToUpdate, lockResult);
                 ResponseFormat responseFormat = componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(lockResult));
                 throw new ByResponseFormatComponentException(responseFormat);
@@ -4380,7 +4421,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                 newResource.setDerivedFrom(null);
             }
             Either<Resource, ResponseFormat> dataModelResponse = updateResourceMetadata(resourceIdToUpdate, newResource, user, currentResource, false,
-                true);
+                    true);
             if (dataModelResponse.isRight()) {
                 log.debug("failed to update resource metadata!!!");
                 throw new ByResponseFormatComponentException(dataModelResponse.right().value());
@@ -4412,7 +4453,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         newResource.setHighestVersion(currentResource.isHighestVersion());
         newResource.setCreationDate(currentResource.getCreationDate());
         Either<Boolean, ResponseFormat> processUpdateOfDerivedFrom = processUpdateOfDerivedFrom(currentResource, newResource, user.getUserId(),
-            inTransaction);
+                inTransaction);
         if (processUpdateOfDerivedFrom.isRight()) {
             log.debug("Couldn't update derived from for resource {}", resourceIdToUpdate);
             return Either.right(processUpdateOfDerivedFrom.right().value());
@@ -4422,15 +4463,15 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             for (GroupDefinition group : newResource.getGroups()) {
                 if (DEFAULT_GROUP_VF_MODULE.equals(group.getType())) {
                     groupBusinessLogic
-                        .validateAndUpdateGroupMetadata(newResource.getComponentMetadataDefinition().getMetadataDataDefinition().getUniqueId(), user,
-                            newResource.getComponentType(), group, true, false);
+                            .validateAndUpdateGroupMetadata(newResource.getComponentMetadataDefinition().getMetadataDataDefinition().getUniqueId(), user,
+                                    newResource.getComponentType(), group, true, false);
                 }
             }
         }
         Either<Resource, StorageOperationStatus> dataModelResponse = toscaOperationFacade.updateToscaElement(newResource);
         if (dataModelResponse.isRight()) {
             ResponseFormat responseFormat = componentsUtils
-                .getResponseFormatByResource(componentsUtils.convertFromStorageResponse(dataModelResponse.right().value()), newResource);
+                    .getResponseFormatByResource(componentsUtils.convertFromStorageResponse(dataModelResponse.right().value()), newResource);
             return Either.right(responseFormat);
         } else if (dataModelResponse.left().value() == null) {
             log.debug("No response from updateResource");
@@ -4442,7 +4483,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
     private void updateVfModuleGroupsNames(Resource currentResource, Resource newResource) {
         if (currentResource.getGroups() != null && !currentResource.getName().equals(newResource.getName())) {
             List<GroupDefinition> updatedGroups = currentResource.getGroups().stream()
-                .map(group -> getUpdatedGroup(group, currentResource.getName(), newResource.getName())).collect(toList());
+                    .map(group -> getUpdatedGroup(group, currentResource.getName(), newResource.getName())).collect(toList());
             newResource.setGroups(updatedGroups);
         }
     }
@@ -4616,7 +4657,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
 
         // instances that were created without the "Cvfc" suffix
         return currentResource.getResourceType() == ResourceTypeEnum.CVFC && resourceNameUpdated
-            .equals(addCvfcSuffixToResourceName(resourceNameCurrent));
+                .equals(addCvfcSuffixToResourceName(resourceNameCurrent));
     }
 
     private String addCvfcSuffixToResourceName(String resourceName) {
@@ -4692,7 +4733,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                 validateDerivedFromExist(null, updateInfoResource, null);
             } else {
                 Either<Boolean, ResponseFormat> validateDerivedFromExtending = validateDerivedFromExtending(null, currentResource, updateInfoResource,
-                    null);
+                        null);
                 if (validateDerivedFromExtending.isRight() || !validateDerivedFromExtending.left().value()) {
                     log.debug("Derived from cannot be updated if it doesnt inherits directly or extends inheritance");
                     return validateDerivedFromExtending;
@@ -4730,7 +4771,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                 validateDerivedFromExist(null, updateInfoResource, null);
             } else {
                 Either<Boolean, ResponseFormat> validateDerivedFromExtending = validateDerivedFromExtending(null, currentResource, updateInfoResource,
-                    null);
+                        null);
                 if (validateDerivedFromExtending.isRight() || !validateDerivedFromExtending.left().value()) {
                     log.debug("Derived from cannot be updated if it doesnt inherits directly or extends inheritance");
                     return validateDerivedFromExtending;
@@ -4751,7 +4792,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             BeEcompErrorManager.getInstance().logBeDaoSystemError("Create Resource - validateDerivedFromExist");
             log.debug("request to data model failed with error: {}", storageStatus);
             ResponseFormat responseFormat = componentsUtils
-                .getResponseFormatByResource(componentsUtils.convertFromStorageResponse(storageStatus), resource);
+                    .getResponseFormatByResource(componentsUtils.convertFromStorageResponse(storageStatus), resource);
             log.trace("audit before sending response");
             componentsUtils.auditResource(responseFormat, user, resource, actionEnum);
             throw new ByActionStatusComponentException(componentsUtils.convertFromStorageResponse(storageStatus));
@@ -4769,12 +4810,12 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         String currentTemplateName = currentResource.getDerivedFrom().get(0);
         String updatedTemplateName = updateInfoResource.getDerivedFrom().get(0);
         Either<Boolean, StorageOperationStatus> dataModelResponse = toscaOperationFacade
-            .validateToscaResourceNameExtends(currentTemplateName, updatedTemplateName, currentResource.getModel());
+                .validateToscaResourceNameExtends(currentTemplateName, updatedTemplateName, currentResource.getModel());
         if (dataModelResponse.isRight()) {
             StorageOperationStatus storageStatus = dataModelResponse.right().value();
             BeEcompErrorManager.getInstance().logBeDaoSystemError("Create/Update Resource - validateDerivingFromExtendingType");
             ResponseFormat responseFormat = componentsUtils
-                .getResponseFormatByResource(componentsUtils.convertFromStorageResponse(storageStatus), currentResource);
+                    .getResponseFormatByResource(componentsUtils.convertFromStorageResponse(storageStatus), currentResource);
             log.trace("audit before sending response");
             componentsUtils.auditResource(responseFormat, user, currentResource, actionEnum);
             return Either.right(responseFormat);
@@ -4791,7 +4832,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
     public void validateDerivedFromNotEmpty(User user, Resource resource, AuditingActionEnum actionEnum) {
         log.debug("validate resource derivedFrom field");
         if ((resource.getDerivedFrom() == null) || (resource.getDerivedFrom().isEmpty()) || (resource.getDerivedFrom().get(0)) == null || (resource
-            .getDerivedFrom().get(0).trim().isEmpty())) {
+                .getDerivedFrom().get(0).trim().isEmpty())) {
             log.info("derived from (template) field is missing for the resource");
             ResponseFormat responseFormat = componentsUtils.getResponseFormat(ActionStatus.MISSING_DERIVED_FROM_TEMPLATE);
             componentsUtils.auditResource(responseFormat, user, resource, actionEnum);
@@ -4801,11 +4842,11 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
 
     private void validateResourceNameUniqueness(Resource resource) {
         Either<Boolean, StorageOperationStatus> resourceOperationResponse = toscaOperationFacade
-            .validateComponentNameExists(resource.getName(), resource.getResourceType(), resource.getComponentType());
+                .validateComponentNameExists(resource.getName(), resource.getResourceType(), resource.getComponentType());
         if (resourceOperationResponse.isLeft() && resourceOperationResponse.left().value()) {
             log.debug("resource with name: {}, already exists", resource.getName());
             throw new ByActionStatusComponentException(ActionStatus.COMPONENT_NAME_ALREADY_EXIST, ComponentTypeEnum.RESOURCE.getValue(),
-                resource.getName());
+                    resource.getName());
         } else if (resourceOperationResponse.isRight()) {
             log.debug("error while validateResourceNameExists for resource: {}", resource.getName());
             throw new StorageException(resourceOperationResponse.right().value());
@@ -4817,7 +4858,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         if (CollectionUtils.isEmpty(categories)) {
             log.debug(CATEGORY_IS_EMPTY);
             ResponseFormat responseFormat = componentsUtils
-                .getResponseFormat(ActionStatus.COMPONENT_MISSING_CATEGORY, ComponentTypeEnum.RESOURCE.getValue());
+                    .getResponseFormat(ActionStatus.COMPONENT_MISSING_CATEGORY, ComponentTypeEnum.RESOURCE.getValue());
             componentsUtils.auditResource(responseFormat, user, resource, actionEnum);
             throw new ByActionStatusComponentException(ActionStatus.COMPONENT_MISSING_CATEGORY, ComponentTypeEnum.RESOURCE.getValue());
         }
@@ -4839,14 +4880,14 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         if (!ValidationUtils.validateStringNotEmpty(category.getName())) {
             log.debug(CATEGORY_IS_EMPTY);
             ResponseFormat responseFormat = componentsUtils
-                .getResponseFormat(ActionStatus.COMPONENT_MISSING_CATEGORY, ComponentTypeEnum.RESOURCE.getValue());
+                    .getResponseFormat(ActionStatus.COMPONENT_MISSING_CATEGORY, ComponentTypeEnum.RESOURCE.getValue());
             componentsUtils.auditResource(responseFormat, user, resource, actionEnum);
             throw new ByActionStatusComponentException(ActionStatus.COMPONENT_MISSING_CATEGORY, ComponentTypeEnum.RESOURCE.getValue());
         }
         if (!ValidationUtils.validateStringNotEmpty(subcategory.getName())) {
             log.debug(CATEGORY_IS_EMPTY);
             ResponseFormat responseFormat = componentsUtils
-                .getResponseFormat(ActionStatus.COMPONENT_MISSING_SUBCATEGORY, ComponentTypeEnum.RESOURCE.getValue());
+                    .getResponseFormat(ActionStatus.COMPONENT_MISSING_SUBCATEGORY, ComponentTypeEnum.RESOURCE.getValue());
             componentsUtils.auditResource(responseFormat, user, resource, actionEnum);
             throw new ByActionStatusComponentException(ActionStatus.COMPONENT_MISSING_SUBCATEGORY, ComponentTypeEnum.RESOURCE.getValue());
         }
@@ -4873,10 +4914,10 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                 return; // explisite output even if failOnInvalidCategory throw an exception
             }
             Optional<SubCategoryDefinition> foundSubcategory = foundCategory.get().getSubcategories().stream()
-                .filter(subcat -> subcat.getName().equals(subcategory.getName())).findFirst();
+                    .filter(subcat -> subcat.getName().equals(subcategory.getName())).findFirst();
             if (foundSubcategory.isEmpty()) {
                 log.debug("SubCategory {} is not part of resource category group. Resource subcategory valid values are {}", subcategory,
-                    foundCategory.get().getSubcategories());
+                        foundCategory.get().getSubcategories());
                 failOnInvalidCategory(user, resource, actionEnum);
             }
         }
@@ -4906,7 +4947,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             if (!ValidationUtils.validateVendorReleaseLength(vendorRelease)) {
                 log.info("vendor release exceds limit.");
                 ResponseFormat errorResponse = componentsUtils
-                    .getResponseFormat(ActionStatus.VENDOR_RELEASE_EXCEEDS_LIMIT, "" + ValidationUtils.VENDOR_RELEASE_MAX_LENGTH);
+                        .getResponseFormat(ActionStatus.VENDOR_RELEASE_EXCEEDS_LIMIT, "" + ValidationUtils.VENDOR_RELEASE_MAX_LENGTH);
                 componentsUtils.auditResource(errorResponse, user, resource, actionEnum);
                 throw new ByActionStatusComponentException(ActionStatus.VENDOR_RELEASE_EXCEEDS_LIMIT, "" + ValidationUtils.VENDOR_RELEASE_MAX_LENGTH);
             }
@@ -4935,7 +4976,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             if (!ValidationUtils.validateVendorNameLength(vendorName)) {
                 log.info("vendor name exceds limit.");
                 ResponseFormat errorResponse = componentsUtils
-                    .getResponseFormat(ActionStatus.VENDOR_NAME_EXCEEDS_LIMIT, "" + ValidationUtils.VENDOR_NAME_MAX_LENGTH);
+                        .getResponseFormat(ActionStatus.VENDOR_NAME_EXCEEDS_LIMIT, "" + ValidationUtils.VENDOR_NAME_MAX_LENGTH);
                 componentsUtils.auditResource(errorResponse, user, resource, actionEnum);
                 throw new ByActionStatusComponentException(ActionStatus.VENDOR_NAME_EXCEEDS_LIMIT, "" + ValidationUtils.VENDOR_NAME_MAX_LENGTH);
             }
@@ -4954,10 +4995,10 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             if (!ValidationUtils.validateResourceVendorModelNumberLength(resourceVendorModelNumber)) {
                 log.info("resource vendor model number exceeds limit.");
                 ResponseFormat errorResponse = componentsUtils.getResponseFormat(ActionStatus.RESOURCE_VENDOR_MODEL_NUMBER_EXCEEDS_LIMIT,
-                    "" + ValidationUtils.RESOURCE_VENDOR_MODEL_NUMBER_MAX_LENGTH);
+                        "" + ValidationUtils.RESOURCE_VENDOR_MODEL_NUMBER_MAX_LENGTH);
                 componentsUtils.auditResource(errorResponse, user, resource, actionEnum);
                 throw new ByActionStatusComponentException(ActionStatus.RESOURCE_VENDOR_MODEL_NUMBER_EXCEEDS_LIMIT,
-                    "" + ValidationUtils.RESOURCE_VENDOR_MODEL_NUMBER_MAX_LENGTH);
+                        "" + ValidationUtils.RESOURCE_VENDOR_MODEL_NUMBER_MAX_LENGTH);
             }
             // resource vendor model number is currently validated as vendor
 
@@ -5019,10 +5060,10 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                             if (implementation != null) {
                                 String uniqueId = implementation.getUniqueId();
                                 log.debug("Removing interface artifact definition {}, operation {}, interfaceType {}", uniqueId,
-                                    operationEntry.getKey(), interfaceType);
+                                        operationEntry.getKey(), interfaceType);
                                 // only thing that transacts and locks here
                                 Either<ArtifactDefinition, ResponseFormat> deleteArtifactByInterface = artifactsBusinessLogic
-                                    .deleteArtifactByInterface(resourceId, userId, uniqueId, true);
+                                        .deleteArtifactByInterface(resourceId, userId, uniqueId, true);
                                 if (deleteArtifactByInterface.isRight()) {
                                     log.debug("Couldn't remove artifact definition with id {}", uniqueId);
                                     if (!inTransaction) {
@@ -5041,14 +5082,14 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             }
             log.debug("2. Removing properties");
             Either<Map<String, PropertyDefinition>, StorageOperationStatus> findPropertiesOfNode = propertyOperation
-                .deleteAllPropertiesAssociatedToNode(NodeTypeEnum.Resource, resourceId);
+                    .deleteAllPropertiesAssociatedToNode(NodeTypeEnum.Resource, resourceId);
             if (findPropertiesOfNode.isRight() && findPropertiesOfNode.right().value() != StorageOperationStatus.OK) {
                 log.debug("Failed to remove all properties of resource");
                 if (!inTransaction) {
                     janusGraphDao.rollback();
                 }
                 return Either
-                    .right(componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(findPropertiesOfNode.right().value())));
+                        .right(componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(findPropertiesOfNode.right().value())));
             }
         } else {
             log.debug("Derived from wasn't changed during update");
@@ -5105,7 +5146,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             ResponseFormat responseFormat;
             if (type.equals(ToscaPropertyType.LIST.getType()) || type.equals(ToscaPropertyType.MAP.getType())) {
                 throw new ByActionStatusComponentException(ActionStatus.INVALID_COMPLEX_DEFAULT_VALUE, property.getName(), type, innerType,
-                    property.getDefaultValue());
+                        property.getDefaultValue());
             }
             throw new ByActionStatusComponentException(ActionStatus.INVALID_DEFAULT_VALUE, property.getName(), type, property.getDefaultValue());
         }
@@ -5148,7 +5189,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         }
         // get resource from csar uuid
         Either<Resource, StorageOperationStatus> either = toscaOperationFacade
-            .getLatestComponentByCsarOrName(ComponentTypeEnum.RESOURCE, csarUuid, "");
+                .getLatestComponentByCsarOrName(ComponentTypeEnum.RESOURCE, csarUuid, "");
         if (either.isRight()) {
             ResponseFormat resp = componentsUtils.getResponseFormat(ActionStatus.RESOURCE_FROM_CSAR_NOT_FOUND, csarUuid);
             return Either.right(resp);
@@ -5214,7 +5255,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                                                                              UploadCapInfo uploadedCapability) {
         List<ComponentInstanceProperty> validProperties = new ArrayList<>();
         Map<String, PropertyDefinition> defaultProperties = defaultCapability.getProperties().stream()
-            .collect(toMap(PropertyDefinition::getName, Function.identity()));
+                .collect(toMap(PropertyDefinition::getName, Function.identity()));
         List<UploadPropInfo> uploadedProperties = uploadedCapability.getProperties();
         for (UploadPropInfo property : uploadedProperties) {
             String propertyName = property.getName().toLowerCase();
@@ -5240,11 +5281,11 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
     }
 
     private Either<EnumMap<ArtifactOperationEnum, List<NonMetaArtifactInfo>>, ResponseFormat> organizeVfCsarArtifactsByArtifactOperation(
-        List<NonMetaArtifactInfo> artifactPathAndNameList, List<ArtifactDefinition> existingArtifactsToHandle, Resource resource, User user) {
+            List<NonMetaArtifactInfo> artifactPathAndNameList, List<ArtifactDefinition> existingArtifactsToHandle, Resource resource, User user) {
         EnumMap<ArtifactOperationEnum, List<NonMetaArtifactInfo>> nodeTypeArtifactsToHandle = new EnumMap<>(ArtifactOperationEnum.class);
         Wrapper<ResponseFormat> responseWrapper = new Wrapper<>();
         Either<EnumMap<ArtifactOperationEnum, List<NonMetaArtifactInfo>>, ResponseFormat> nodeTypeArtifactsToHandleRes = Either
-            .left(nodeTypeArtifactsToHandle);
+                .left(nodeTypeArtifactsToHandle);
         try {
             // add all found Csar artifacts to list to upload
             List<NonMetaArtifactInfo> artifactsToUpload = new ArrayList<>(artifactPathAndNameList);
@@ -5254,7 +5295,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                 ArtifactDefinition foundArtifact;
                 if (!existingArtifactsToHandle.isEmpty()) {
                     foundArtifact = existingArtifactsToHandle.stream().filter(a -> a.getArtifactName().equals(currNewArtifact.getArtifactName()))
-                        .findFirst().orElse(null);
+                            .findFirst().orElse(null);
                     if (foundArtifact != null) {
                         if (foundArtifact.getArtifactType().equals(currNewArtifact.getArtifactType())) {
                             if (!foundArtifact.getArtifactChecksum().equals(currNewArtifact.getArtifactChecksum())) {
@@ -5281,14 +5322,14 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                         } else {
                             log.debug("Can't upload two artifact with the same name {}.", currNewArtifact.getArtifactName());
                             ResponseFormat responseFormat = ResponseFormatManager.getInstance()
-                                .getResponseFormat(ActionStatus.ARTIFACT_ALREADY_EXIST_IN_DIFFERENT_TYPE_IN_CSAR, currNewArtifact.getArtifactName(),
-                                    currNewArtifact.getArtifactType(), foundArtifact.getArtifactType());
+                                    .getResponseFormat(ActionStatus.ARTIFACT_ALREADY_EXIST_IN_DIFFERENT_TYPE_IN_CSAR, currNewArtifact.getArtifactName(),
+                                            currNewArtifact.getArtifactType(), foundArtifact.getArtifactType());
                             AuditingActionEnum auditingAction = artifactsBusinessLogic
-                                .detectAuditingType(new ArtifactOperationInfo(false, false, ArtifactOperationEnum.CREATE),
-                                    foundArtifact.getArtifactChecksum());
+                                    .detectAuditingType(new ArtifactOperationInfo(false, false, ArtifactOperationEnum.CREATE),
+                                            foundArtifact.getArtifactChecksum());
                             artifactsBusinessLogic
-                                .handleAuditing(auditingAction, resource, resource.getUniqueId(), user, null, null, foundArtifact.getUniqueId(),
-                                    responseFormat, resource.getComponentType(), null);
+                                    .handleAuditing(auditingAction, resource, resource.getUniqueId(), user, null, null, foundArtifact.getUniqueId(),
+                                            responseFormat, resource.getComponentType(), null);
                             responseWrapper.setInnerElement(responseFormat);
                             break;
                         }
@@ -5299,10 +5340,10 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                 for (ArtifactDefinition currArtifact : existingArtifactsToHandle) {
                     if (currArtifact.getIsFromCsar()) {
                         artifactsToDelete.add(new NonMetaArtifactInfo(currArtifact.getArtifactName(), null, currArtifact.getArtifactType(),
-                            currArtifact.getArtifactGroupType(), null, currArtifact.getUniqueId(), currArtifact.getIsFromCsar()));
+                                currArtifact.getArtifactGroupType(), null, currArtifact.getUniqueId(), currArtifact.getIsFromCsar()));
                     } else {
                         artifactsToUpdate.add(new NonMetaArtifactInfo(currArtifact.getArtifactName(), null, currArtifact.getArtifactType(),
-                            currArtifact.getArtifactGroupType(), null, currArtifact.getUniqueId(), currArtifact.getIsFromCsar()));
+                                currArtifact.getArtifactGroupType(), null, currArtifact.getUniqueId(), currArtifact.getIsFromCsar()));
                     }
                 }
             }
@@ -5343,8 +5384,8 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
         try {
             final String nodeTypeNamePrefix = getNodeTypeNamePrefix(nodeTypeFullName);
             log.debug("####### buildNestedToscaResourceName nodeResourceType {}, vfResourceName {}, "
-                    + "nodeTypeFullName {}, actualType {}, vfResourceName {} ", nodeResourceType, vfResourceName, nodeTypeFullName, actualType,
-                vfResourceName);
+                            + "nodeTypeFullName {}, actualType {}, vfResourceName {} ", nodeResourceType, vfResourceName, nodeTypeFullName, actualType,
+                    vfResourceName);
             final StringBuilder toscaResourceName = new StringBuilder(nodeTypeNamePrefix);
             if (!nodeTypeFullName.contains(nodeTypeNamePrefix)) {
                 nameWithouNamespacePrefix = nodeTypeFullName;
@@ -5362,16 +5403,16 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                 toscaResourceName.append(nodeResourceType.toLowerCase()).append('.').append(ValidationUtils.convertToSystemName(actualVfName));
             } else {
                 toscaResourceName.append(actualType.toLowerCase()).append('.').append(ValidationUtils.convertToSystemName(actualVfName)).append('.')
-                    .append(Constants.ABSTRACT);
+                        .append(Constants.ABSTRACT);
             }
             final StringBuilder previousToscaResourceName = new StringBuilder(toscaResourceName);
             final String[] actualNames = actualName.split("\\.");
             if (actualNames.length < 3) {
                 return new ImmutablePair<>(toscaResourceName.append(actualName.toLowerCase()).toString(),
-                    previousToscaResourceName.append(actualName).toString());
+                        previousToscaResourceName.append(actualName).toString());
             }
             return new ImmutablePair<>(toscaResourceName.append(actualName.toLowerCase()).toString(),
-                previousToscaResourceName.append(actualName.substring(actualNames[1].length() + 1).toLowerCase()).toString());
+                    previousToscaResourceName.append(actualName.substring(actualNames[1].length() + 1).toLowerCase()).toString());
         } catch (final Exception e) {
             log.debug("Exception occured when buildNestedToscaResourceName, error is:{}", e.getMessage(), e);
             throw new ByActionStatusComponentException(ActionStatus.INVALID_TOSCA_TEMPLATE, vfResourceName);
@@ -5408,7 +5449,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             }
             log.debug("failed to get resource by id {} with filters {}", resourceId, dataParamsToReturn);
             return Either.right(
-                componentsUtils.getResponseFormatByResource(componentsUtils.convertFromStorageResponse(resourceResultEither.right().value()), ""));
+                    componentsUtils.getResponseFormatByResource(componentsUtils.convertFromStorageResponse(resourceResultEither.right().value()), ""));
         }
         Resource resource = resourceResultEither.left().value();
         if (dataParamsToReturn.contains(ComponentFieldsEnum.INPUTS.getValue())) {
index 5c2facc..c1f45fe 100644 (file)
@@ -764,6 +764,12 @@ public class ComponentsUtils {
             case COMPONENT_IS_ARCHIVED:
                 responseEnum = ActionStatus.COMPONENT_IS_ARCHIVED;
                 break;
+            case COMPONENT_NOT_ARCHIVED:
+                responseEnum = ActionStatus.COMPONENT_NOT_ARCHIVED;
+                break;
+            case COMPONENT_IS_IN_USE:
+                responseEnum = ActionStatus.COMPONENT_IN_USE_BY_ANOTHER_COMPONENT;
+                break;
             case DECLARED_INPUT_USED_BY_OPERATION:
                 responseEnum = ActionStatus.DECLARED_INPUT_USED_BY_OPERATION;
                 break;
index 81d0f32..8109521 100644 (file)
@@ -31,26 +31,6 @@ import io.swagger.v3.oas.annotations.servers.Server;
 import io.swagger.v3.oas.annotations.servers.Servers;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import io.swagger.v3.oas.annotations.tags.Tags;
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-import javax.inject.Inject;
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
 import org.apache.http.HttpStatus;
 import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
 import org.glassfish.jersey.media.multipart.FormDataParam;
@@ -67,6 +47,7 @@ import org.openecomp.sdc.be.config.BeEcompErrorManager;
 import org.openecomp.sdc.be.dao.api.ActionStatus;
 import org.openecomp.sdc.be.datamodel.api.HighestFilterEnum;
 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
+import org.openecomp.sdc.be.datatypes.enums.DeleteActionEnum;
 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
 import org.openecomp.sdc.be.impl.ComponentsUtils;
 import org.openecomp.sdc.be.impl.ServletUtils;
@@ -89,6 +70,27 @@ import org.openecomp.sdc.common.zip.exception.ZipException;
 import org.openecomp.sdc.exception.ResponseFormat;
 import org.springframework.stereotype.Controller;
 
+import javax.inject.Inject;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
 @Loggable(prepend = true, value = Loggable.DEBUG, trim = false)
 @Path("/v1/catalog")
 @Tags({@Tag(name = "SDCE-2 APIs")})
@@ -218,7 +220,12 @@ public class ResourcesServlet extends AbstractValidationsServlet {
     @DELETE
     @Path("/resources/{resourceId}")
     @PermissionAllowed(AafPermission.PermNames.INTERNAL_ALL_VALUE)
-    public Response deleteResource(@PathParam("resourceId") final String resourceId, @Context final HttpServletRequest request) {
+    public Response deleteResource(@PathParam("resourceId") final String resourceId,
+                                   @Parameter(description = "Optional parameter to determine the delete action: " +
+                                           "DELETE, which will permanently delete the Resource from the system or " +
+                                           "MARK_AS_DELETE, which will logically mark the Resource as deleted. Default action is to MARK_AS_DELETE")
+                                   @QueryParam("deleteAction") final DeleteActionEnum deleteAction,
+                                   @Context final HttpServletRequest request) {
         String url = request.getMethod() + " " + request.getRequestURI();
         log.debug(START_HANDLE_REQUEST_OF, url);
         // get modifier id
@@ -227,21 +234,25 @@ public class ResourcesServlet extends AbstractValidationsServlet {
         modifier.setUserId(userId);
         log.debug(MODIFIER_ID_IS, userId);
         loggerSupportability.log(LoggerSupportabilityActions.DELETE_RESOURCE, StatusCode.STARTED, "Starting to delete Resource by user {}", userId);
-        Response response;
         try {
             String resourceIdLower = resourceId.toLowerCase();
-            ResponseFormat actionResponse = resourceBusinessLogic.deleteResource(resourceIdLower, modifier);
+            ResponseFormat actionResponse;
+            if (DeleteActionEnum.DELETE.equals(deleteAction)) {
+                resourceBusinessLogic.deleteResourceAllVersions(resourceId, modifier);
+                actionResponse = componentsUtils.getResponseFormat(ActionStatus.NO_CONTENT);
+            } else {
+                actionResponse = resourceBusinessLogic.deleteResource(resourceIdLower, modifier);
+            }
             if (actionResponse.getStatus() != HttpStatus.SC_NO_CONTENT) {
                 log.debug("failed to delete resource");
-                response = buildErrorResponse(actionResponse);
-                return response;
+                return buildErrorResponse(actionResponse);
             }
-            response = buildOkResponse(getComponentsUtils().getResponseFormat(ActionStatus.NO_CONTENT), null);
+
             loggerSupportability.log(LoggerSupportabilityActions.DELETE_RESOURCE, StatusCode.COMPLETE, "Ended delete Resource by user {}", userId);
-            return response;
-        } catch (JSONException e) {
+            return buildOkResponse(getComponentsUtils().getResponseFormat(ActionStatus.NO_CONTENT), null);
+        } catch (Exception e) {
             BeEcompErrorManager.getInstance().logBeRestApiGeneralError("Delete Resource");
-            log.debug("delete resource failed with exception", e);
+            log.debug("delete resource failed with exception ", e);
             throw e;
         }
     }
index 0018ed0..20e2114 100644 (file)
 
 package org.openecomp.sdc.be.components.impl;
 
-import static org.assertj.core.api.Java6Assertions.assertThat;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyList;
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.when;
-
-import java.io.File;
-import java.io.IOException;
-import java.lang.reflect.Method;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.EnumMap;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Optional;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-import javax.servlet.ServletContext;
-
+import fj.data.Either;
 import org.apache.commons.lang3.tuple.ImmutablePair;
 import org.junit.Assert;
 import org.junit.Before;
@@ -121,6 +90,7 @@ import org.openecomp.sdc.be.model.jsonjanusgraph.operations.NodeTemplateOperatio
 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.NodeTypeOperation;
 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.TopologyTemplateOperation;
 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade;
+import org.openecomp.sdc.be.model.jsonjanusgraph.operations.exception.OperationException;
 import org.openecomp.sdc.be.model.operations.StorageException;
 import org.openecomp.sdc.be.model.operations.api.ICapabilityTypeOperation;
 import org.openecomp.sdc.be.model.operations.api.IElementOperation;
@@ -133,6 +103,7 @@ import org.openecomp.sdc.be.model.operations.impl.ArtifactTypeOperation;
 import org.openecomp.sdc.be.model.operations.impl.CsarOperation;
 import org.openecomp.sdc.be.model.operations.impl.GraphLockOperation;
 import org.openecomp.sdc.be.model.operations.impl.InterfaceLifecycleOperation;
+import org.openecomp.sdc.be.model.operations.impl.ModelOperation;
 import org.openecomp.sdc.be.model.operations.impl.PolicyTypeOperation;
 import org.openecomp.sdc.be.model.operations.impl.PropertyOperation;
 import org.openecomp.sdc.be.model.tosca.ToscaPropertyType;
@@ -154,7 +125,37 @@ import org.openecomp.sdc.common.zip.exception.ZipException;
 import org.openecomp.sdc.exception.ResponseFormat;
 import org.springframework.web.context.WebApplicationContext;
 
-import fj.data.Either;
+import javax.servlet.ServletContext;
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.Method;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.EnumMap;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Optional;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import static org.assertj.core.api.Java6Assertions.assertThat;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThrows;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyList;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.when;
 
 public class ResourceBusinessLogicTest {
 
@@ -218,6 +219,7 @@ public class ResourceBusinessLogicTest {
        private final ArtifactTypeOperation artifactTypeOperation = Mockito.mock(ArtifactTypeOperation.class);
        private final DataTypeBusinessLogic dataTypeBusinessLogic = Mockito.mock(DataTypeBusinessLogic.class);
        private final PolicyTypeBusinessLogic policyTypeBusinessLogic = Mockito.mock(PolicyTypeBusinessLogic.class);
+       private final ModelOperation modelOperation = Mockito.mock(ModelOperation.class);
 
        private YamlTemplateParsingHandler yamlTemplateParsingHandler = Mockito.mock(YamlTemplateParsingHandler.class);
        @InjectMocks
@@ -325,7 +327,7 @@ public class ResourceBusinessLogicTest {
                                csarArtifactsAndGroupsBusinessLogic, mergeInstanceUtils, uiComponentDataConverter, csarBusinessLogic,
                                artifactToscaOperation, propertyBusinessLogic, componentContactIdValidator, componentNameValidator,
                                componentTagsValidator, componentValidator,     componentIconValidator, componentProjectCodeValidator,
-                               componentDescriptionValidator, policyBusinessLogic, modelBusinessLogic, dataTypeBusinessLogic, policyTypeBusinessLogic);
+                               componentDescriptionValidator, policyBusinessLogic, modelBusinessLogic, dataTypeBusinessLogic, policyTypeBusinessLogic, modelOperation);
                bl.setElementDao(mockElementDao);
                bl.setUserAdmin(mockUserAdmin);
                bl.setCapabilityTypeOperation(capabilityTypeOperation);
@@ -2506,4 +2508,32 @@ public class ResourceBusinessLogicTest {
                assertTrue(result.isRight());
                assertTrue(result.right().value() instanceof ByActionStatusComponentException);
        }
+
+       @Test
+       public void testDeleteResource_NotFound() {
+               Mockito.when(toscaOperationFacade.getToscaElement(Mockito.anyString())).thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
+               ResponseFormat respFormat = componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(StorageOperationStatus.NOT_FOUND), "");
+               ResponseFormat actualResponseFormat = bl.deleteResource("1", user);
+               assertEquals(respFormat.getStatus(), actualResponseFormat.getStatus());
+       }
+
+       @Test
+       public void testDeleteResource_NotArchived() {
+               Mockito.when(toscaOperationFacade.getToscaElement(Mockito.anyString())).thenReturn(Either.left(resourceResponse));
+               ComponentException actualComponentException = assertThrows(ComponentException.class, () -> bl.deleteResourceAllVersions(resourceResponse.getUniqueId(), user));
+               assertEquals(ActionStatus.COMPONENT_NOT_ARCHIVED, actualComponentException.getActionStatus());
+               assertEquals("my-resource_name with   space:0.1", actualComponentException.getParams()[0]);
+       }
+
+       @Test
+       public void testDeleteResource_IsInUse() {
+               Resource resourceObject = createResourceObject(true);
+               Mockito.when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(resourceObject));
+               resourceObject.setArchived(true);
+               OperationException oe = new OperationException(ActionStatus.COMPONENT_IN_USE_BY_ANOTHER_COMPONENT, "resource_name");
+               Mockito.when(toscaOperationFacade.deleteComponent(resourceObject.getInvariantUUID(), NodeTypeEnum.Resource, true)).thenThrow(oe);
+               OperationException actualOperationException = assertThrows(OperationException.class, () -> bl.deleteResourceAllVersions(resourceResponse.getUniqueId(), user));
+               assertEquals(ActionStatus.COMPONENT_IN_USE_BY_ANOTHER_COMPONENT, actualOperationException.getActionStatus());
+               assertEquals("resource_name", actualOperationException.getParams()[0]);
+       }
 }
index b1e17b8..765be0a 100644 (file)
@@ -23,7 +23,6 @@ package org.openecomp.sdc.be.components.lifecycle;
 import fj.data.Either;
 import org.junit.Before;
 import org.junit.Test;
-import org.mockito.InjectMocks;
 import org.mockito.Mockito;
 import org.openecomp.sdc.be.components.csar.CsarArtifactsAndGroupsBusinessLogic;
 import org.openecomp.sdc.be.components.csar.CsarBusinessLogic;
@@ -49,6 +48,7 @@ import org.openecomp.sdc.be.model.Component;
 import org.openecomp.sdc.be.model.LifecycleStateEnum;
 import org.openecomp.sdc.be.model.Resource;
 import org.openecomp.sdc.be.model.User;
+import org.openecomp.sdc.be.model.operations.impl.ModelOperation;
 import org.openecomp.sdc.be.user.Role;
 import org.openecomp.sdc.exception.ResponseFormat;
 
@@ -74,7 +74,8 @@ public class CheckoutTest extends LifecycleTestBase {
     private final ModelBusinessLogic modelBusinessLogic = Mockito.mock(ModelBusinessLogic.class);
     private final DataTypeBusinessLogic dataTypeBusinessLogic = Mockito.mock(DataTypeBusinessLogic.class);
     private final PolicyTypeBusinessLogic policyTypeBusinessLogic = Mockito.mock(PolicyTypeBusinessLogic.class);
-    @InjectMocks
+    private final ModelOperation modelOperation = Mockito.mock(ModelOperation.class);
+
     ResourceBusinessLogic bl = new ResourceBusinessLogic(elementDao, groupOperation, groupInstanceOperation, groupTypeOperation,
         groupBusinessLogic, interfaceOperation, interfaceLifecycleTypeOperation, artifactsBusinessLogic,
         componentInstanceBusinessLogic, resourceImportManager, inputsBusinessLogic, outputsBusinessLogic,compositionBusinessLogic,
@@ -82,7 +83,7 @@ public class CheckoutTest extends LifecycleTestBase {
         uiComponentDataConverter, csarBusinessLogic, artifactToscaOperation, propertyBusinessLogic,
         componentContactIdValidator, componentNameValidator, componentTagsValidator, componentValidator,
         componentIconValidator, componentProjectCodeValidator, componentDescriptionValidator ,policyBusinessLogic, modelBusinessLogic,
-        dataTypeBusinessLogic, policyTypeBusinessLogic);
+        dataTypeBusinessLogic, policyTypeBusinessLogic, modelOperation);
 
     @Before
     public void setup() {
index 36612eb..4daff86 100644 (file)
 
 package org.openecomp.sdc.be.servlets;
 
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.Assert.assertEquals;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.BDDMockito.given;
-import static org.mockito.Mockito.when;
-
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import fj.data.Either;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-import javax.ws.rs.client.Entity;
-import javax.ws.rs.core.Application;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
 import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.lang3.tuple.ImmutablePair;
 import org.apache.commons.text.StrSubstitutor;
@@ -89,6 +69,27 @@ import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 import org.springframework.web.context.WebApplicationContext;
 
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import javax.ws.rs.client.Entity;
+import javax.ws.rs.core.Application;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.Assert.assertEquals;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.BDDMockito.given;
+import static org.mockito.Mockito.when;
+
 class ResourceServletTest extends JerseyTest {
 
     private final HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
index aeab301..a93b52c 100644 (file)
@@ -2319,4 +2319,20 @@ errors:
         code: 400,
         message: "The Model '%1' is not allowed for the imported Vendor Software Product. Allowed Models: '%2'",
         messageId: "SVC4156"
+    }
+
+    #---------SVC4692-----------------------------
+    # %1 - Component name
+    COMPONENT_NOT_ARCHIVED: {
+        code: 403,
+        message: "Component '%1' is not archived",
+        messageId: "SVC4692"
+    }
+
+    #---------SVC4693-----------------------------
+    # %1 - List of services
+    COMPONENT_IN_USE_BY_ANOTHER_COMPONENT: {
+        code: 403,
+        message: "Component is in use by '%1'",
+        messageId: "SVC4693"
     }
\ No newline at end of file
index 449a496..ed69992 100644 (file)
@@ -24,6 +24,8 @@ import static org.apache.commons.collections.CollectionUtils.isEmpty;
 import fj.data.Either;
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.EnumMap;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -49,6 +51,7 @@ import org.janusgraph.core.JanusGraphVertex;
 import org.janusgraph.core.JanusGraphVertexQuery;
 import org.janusgraph.core.PropertyKey;
 import org.janusgraph.graphdb.query.JanusGraphPredicate;
+import org.openecomp.sdc.be.dao.api.exception.JanusGraphException;
 import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
 import org.openecomp.sdc.be.dao.jsongraph.types.EdgeLabelEnum;
 import org.openecomp.sdc.be.dao.jsongraph.types.EdgePropertyEnum;
@@ -604,6 +607,39 @@ public class JanusGraphDao {
         }
     }
 
+
+    /**
+     * Finds the vertices that have the given invariant id and any additional property provided.
+     *
+     * @param invariantUuid the invariant uuid
+     * @param additionalPropertiesToMatch any additional property to match along with the {@link GraphPropertyEnum#INVARIANT_UUID}
+     * @return the list of vertex that has the given invariant uuid
+     * @throws JanusGraphException if the find operation was returned an error status
+     */
+    public List<GraphVertex> findAllVertexByInvariantUuid(final String invariantUuid,
+                                                          final Map<GraphPropertyEnum, Object> additionalPropertiesToMatch) {
+        final Map<GraphPropertyEnum, Object> propertiesToMatch = new EnumMap<>(GraphPropertyEnum.class);
+        if (MapUtils.isNotEmpty(additionalPropertiesToMatch)) {
+            propertiesToMatch.putAll(additionalPropertiesToMatch);
+        }
+        propertiesToMatch.put(GraphPropertyEnum.INVARIANT_UUID, invariantUuid);
+        final Either<List<GraphVertex>, JanusGraphOperationStatus> vertexEither =
+                getByCriteria(null, propertiesToMatch, JsonParseFlagEnum.ParseMetadata);
+        if (vertexEither.isRight()) {
+            final JanusGraphOperationStatus status = vertexEither.right().value();
+            if (status == JanusGraphOperationStatus.NOT_FOUND) {
+                return Collections.emptyList();
+            }
+            final String errorMsg = String.format("Couldn't fetch vertex with invariantUUId '%s'. Status was '%s'", invariantUuid, status);
+            throw new JanusGraphException(status, errorMsg);
+        }
+        final List<GraphVertex> vertices = vertexEither.left().value();
+        if (vertices == null || vertices.isEmpty()) {
+            return Collections.emptyList();
+        }
+        return vertices;
+    }
+
     private boolean vertexValidForModel(final JanusGraphVertex vertex, final String model, final boolean includeNormativeExtensions) {
         final String vertexLabel = (String)vertex.property(GraphPropertyEnum.LABEL.getProperty()).value();
         final VertexTypeEnum vertexType = VertexTypeEnum.getByName(vertexLabel);
index 0546a91..9c34b4c 100644 (file)
@@ -55,6 +55,7 @@ import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.janusgraph.graphdb.query.JanusGraphPredicate;
 import org.openecomp.sdc.be.config.Configuration;
 import org.openecomp.sdc.be.config.ConfigurationManager;
+import org.openecomp.sdc.be.dao.api.exception.JanusGraphException;
 import org.openecomp.sdc.be.dao.janusgraph.HealingJanusGraphDao;
 import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
 import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
@@ -129,6 +130,7 @@ import org.openecomp.sdc.be.model.utils.GroupUtils;
 import org.openecomp.sdc.be.resources.data.ComponentMetadataData;
 import org.openecomp.sdc.common.jsongraph.util.CommonUtility;
 import org.openecomp.sdc.common.jsongraph.util.CommonUtility.LogLevelEnum;
+import org.openecomp.sdc.common.log.enums.EcompLoggerErrorCode;
 import org.openecomp.sdc.common.log.wrappers.Logger;
 import org.openecomp.sdc.common.util.ValidationUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -171,12 +173,12 @@ public class ToscaOperationFacade {
             return Optional.empty();
         }
         List<CapabilityDefinition> capabilityDefinitionList = componentCapabilities.values().stream().flatMap(Collection::stream)
-            .collect(Collectors.toList());
+                .collect(Collectors.toList());
         if (CollectionUtils.isEmpty(capabilityDefinitionList)) {
             return Optional.empty();
         }
         return capabilityDefinitionList.stream().filter(capabilityDefinition -> capabilityDefinition.getUniqueId().equals(propertyParentUniqueId))
-            .findAny();
+                .findAny();
     }
 
     public <T extends Component> Either<T, StorageOperationStatus> getToscaFullElement(String componentId) {
@@ -233,7 +235,7 @@ public class ToscaOperationFacade {
         props.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name());
         props.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
         Either<List<GraphVertex>, JanusGraphOperationStatus> getVertexEither = janusGraphDao
-            .getByCriteria(ModelConverter.getVertexType(component), props);
+                .getByCriteria(ModelConverter.getVertexType(component), props);
         if (getVertexEither.isRight()) {
             log.debug(COULDNT_FETCH_COMPONENT_WITH_AND_UNIQUE_ID_ERROR, component.getUniqueId(), getVertexEither.right().value());
             return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(getVertexEither.right().value()));
@@ -302,7 +304,7 @@ public class ToscaOperationFacade {
             return StorageOperationStatus.OK;
         } else {
             Either<GraphVertex, JanusGraphOperationStatus> getResponse = janusGraphDao
-                .getVertexById(componentToDelete.getUniqueId(), JsonParseFlagEnum.ParseAll);
+                    .getVertexById(componentToDelete.getUniqueId(), JsonParseFlagEnum.ParseAll);
             if (getResponse.isRight()) {
                 log.debug(COULDNT_FETCH_COMPONENT_WITH_AND_UNIQUE_ID_ERROR, componentToDelete.getUniqueId(), getResponse.right().value());
                 return DaoStatusConverter.convertJanusGraphStatusToStorageStatus(getResponse.right().value());
@@ -374,7 +376,7 @@ public class ToscaOperationFacade {
         propertiesToMatch.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
         propertiesNotToMatch.put(GraphPropertyEnum.IS_DELETED, true);
         final Either<List<GraphVertex>, JanusGraphOperationStatus> highestResources = janusGraphDao
-            .getByCriteria(null, propertiesToMatch, propertiesNotToMatch, parseFlag, model);
+                .getByCriteria(null, propertiesToMatch, propertiesNotToMatch, parseFlag, model);
         if (highestResources.isRight()) {
             final JanusGraphOperationStatus status = highestResources.right().value();
             log.debug("failed to find resource with name {}. status={} ", nodeName, status);
@@ -414,7 +416,7 @@ public class ToscaOperationFacade {
         Map<GraphPropertyEnum, Object> properties = new EnumMap<>(GraphPropertyEnum.class);
         properties.put(GraphPropertyEnum.CSAR_UUID, csarUUID);
         Either<List<GraphVertex>, JanusGraphOperationStatus> resources = janusGraphDao
-            .getByCriteria(null, properties, JsonParseFlagEnum.ParseMetadata);
+                .getByCriteria(null, properties, JsonParseFlagEnum.ParseMetadata);
         if (resources.isRight()) {
             if (resources.right().value() == JanusGraphOperationStatus.NOT_FOUND) {
                 return StorageOperationStatus.OK;
@@ -456,7 +458,7 @@ public class ToscaOperationFacade {
     public Either<Resource, StorageOperationStatus> getByToscaResourceNameMatchingVendorRelease(final String toscaResourceName,
                                                                                                 final String vendorVersion) {
         return getByToscaResourceNameMatchingVendorRelease(toscaResourceName, VertexTypeEnum.NODE_TYPE, JsonParseFlagEnum.ParseMetadata,
-            vendorVersion);
+                vendorVersion);
     }
 
     public Either<Resource, StorageOperationStatus> getByToscaResourceNameMatchingVendorRelease(String toscaResourceName, VertexTypeEnum vertexType,
@@ -466,13 +468,13 @@ public class ToscaOperationFacade {
         props.put(GraphPropertyEnum.STATE, LifecycleStateEnum.CERTIFIED.name());
         Map<String, Entry<JanusGraphPredicate, Object>> predicateCriteria = getVendorVersionPredicate(vendorRelease);
         Either<List<GraphVertex>, JanusGraphOperationStatus> getLatestRes = janusGraphDao
-            .getByCriteria(vertexType, props, null, predicateCriteria, parseFlag, null);
+                .getByCriteria(vertexType, props, null, predicateCriteria, parseFlag, null);
         if (getLatestRes.isRight() || CollectionUtils.isEmpty(getLatestRes.left().value())) {
             getLatestRes = janusGraphDao.getByCriteria(vertexType, props, parseFlag);
         }
         return getLatestRes.right().map(status -> {
             CommonUtility
-                .addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to fetch {} with name {}. status={} ", vertexType, toscaResourceName, status);
+                    .addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to fetch {} with name {}. status={} ", vertexType, toscaResourceName, status);
             return DaoStatusConverter.convertJanusGraphStatusToStorageStatus(status);
         }).left().bind(resources -> {
             double version = 0.0;
@@ -505,7 +507,7 @@ public class ToscaOperationFacade {
         hasNotProperties.put(GraphPropertyEnum.IS_DELETED, true);
 
         Either<List<GraphVertex>, JanusGraphOperationStatus> getResourceRes = janusGraphDao
-            .getByCriteria(VertexTypeEnum.NODE_TYPE, hasProperties, hasNotProperties, JsonParseFlagEnum.ParseAll, model);
+                .getByCriteria(VertexTypeEnum.NODE_TYPE, hasProperties, hasNotProperties, JsonParseFlagEnum.ParseAll, model);
         if (getResourceRes.isRight()) {
             JanusGraphOperationStatus status = getResourceRes.right().value();
             log.debug("failed to find resource with toscaResourceName {}, version {}. Status is {} ", toscaResourceName, version, status);
@@ -541,12 +543,12 @@ public class ToscaOperationFacade {
 
     public List<GraphVertex> getResourceModelElementVertices(final Resource resource) {
         final Either<GraphVertex, JanusGraphOperationStatus> vertex =
-            janusGraphDao.getVertexById(resource.getUniqueId(), JsonParseFlagEnum.NoParse);
+                janusGraphDao.getVertexById(resource.getUniqueId(), JsonParseFlagEnum.NoParse);
         if (vertex.isRight() || Objects.isNull(vertex.left().value())) {
             return Collections.emptyList();
         }
         final Either<List<GraphVertex>, JanusGraphOperationStatus> nodeModelVertices =
-            janusGraphDao.getParentVertices(vertex.left().value(), EdgeLabelEnum.MODEL_ELEMENT, JsonParseFlagEnum.NoParse);
+                janusGraphDao.getParentVertices(vertex.left().value(), EdgeLabelEnum.MODEL_ELEMENT, JsonParseFlagEnum.NoParse);
         if (nodeModelVertices.isRight() || nodeModelVertices.left().value() == null) {
             return Collections.emptyList();
         }
@@ -576,7 +578,7 @@ public class ToscaOperationFacade {
         Either<List<GraphVertex>, JanusGraphOperationStatus> getLatestRes = janusGraphDao.getByCriteria(vertexType, props, parseFlag);
         return getLatestRes.right().map(status -> {
             CommonUtility
-                .addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to fetch {} with name {}. status={} ", vertexType, toscaResourceName, status);
+                    .addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to fetch {} with name {}. status={} ", vertexType, toscaResourceName, status);
             return DaoStatusConverter.convertJanusGraphStatusToStorageStatus(status);
         }).left().bind(resources -> {
             double version = 0.0;
@@ -618,7 +620,7 @@ public class ToscaOperationFacade {
         if (getLatestRes.isRight()) {
             JanusGraphOperationStatus status = getLatestRes.right().value();
             CommonUtility
-                .addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to fetch {} with name {}. status={} ", vertexType, toscaResourceName, status);
+                    .addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to fetch {} with name {}. status={} ", vertexType, toscaResourceName, status);
             result = Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(status));
         }
         if (result == null) {
@@ -676,7 +678,7 @@ public class ToscaOperationFacade {
     public Either<List<RequirementCapabilityRelDef>, StorageOperationStatus> associateResourceInstances(Component component, String componentId,
                                                                                                         List<RequirementCapabilityRelDef> relations) {
         Either<List<RequirementCapabilityRelDef>, StorageOperationStatus> reqAndCapListEither = nodeTemplateOperation
-            .associateResourceInstances(component, componentId, relations);
+                .associateResourceInstances(component, componentId, relations);
         if (component != null) {
             updateInstancesCapAndReqOnComponentFromDB(component);
         }
@@ -687,7 +689,7 @@ public class ToscaOperationFacade {
         Map<GraphPropertyEnum, Object> properties = new EnumMap<>(GraphPropertyEnum.class);
         properties.put(GraphPropertyEnum.TOSCA_RESOURCE_NAME, name);
         Either<List<GraphVertex>, JanusGraphOperationStatus> resources = janusGraphDao
-            .getByCriteria(null, properties, JsonParseFlagEnum.ParseMetadata);
+                .getByCriteria(null, properties, JsonParseFlagEnum.ParseMetadata);
         if (resources.isRight() && resources.right().value() != JanusGraphOperationStatus.NOT_FOUND) {
             log.debug("failed to get resources from graph with property name: {}", name);
             return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(resources.right().value()));
@@ -712,14 +714,14 @@ public class ToscaOperationFacade {
     public Either<Resource, StorageOperationStatus> overrideComponent(Resource newComponent, Resource oldComponent) {
         copyArtifactsToNewComponent(newComponent, oldComponent);
         Either<GraphVertex, JanusGraphOperationStatus> componentVEither = janusGraphDao
-            .getVertexById(oldComponent.getUniqueId(), JsonParseFlagEnum.NoParse);
+                .getVertexById(oldComponent.getUniqueId(), JsonParseFlagEnum.NoParse);
         if (componentVEither.isRight()) {
             log.debug("Failed to fetch component {} error {}", oldComponent.getUniqueId(), componentVEither.right().value());
             return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(componentVEither.right().value()));
         }
         GraphVertex componentv = componentVEither.left().value();
         Either<GraphVertex, JanusGraphOperationStatus> parentVertexEither = janusGraphDao
-            .getParentVertex(componentv, EdgeLabelEnum.VERSION, JsonParseFlagEnum.NoParse);
+                .getParentVertex(componentv, EdgeLabelEnum.VERSION, JsonParseFlagEnum.NoParse);
         if (parentVertexEither.isRight() && parentVertexEither.right().value() != JanusGraphOperationStatus.NOT_FOUND) {
             log.debug("Failed to fetch parent version for component {} error {}", oldComponent.getUniqueId(), parentVertexEither.right().value());
             return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(parentVertexEither.right().value()));
@@ -736,7 +738,7 @@ public class ToscaOperationFacade {
         }
         Resource newElement = createToscaComponent.left().value();
         Either<GraphVertex, JanusGraphOperationStatus> newVersionEither = janusGraphDao
-            .getVertexById(newElement.getUniqueId(), JsonParseFlagEnum.NoParse);
+                .getVertexById(newElement.getUniqueId(), JsonParseFlagEnum.NoParse);
         if (newVersionEither.isRight()) {
             log.debug("Failed to fetch new tosca element component {} error {}", newComponent.getUniqueId(), newVersionEither.right().value());
             return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(newVersionEither.right().value()));
@@ -744,10 +746,10 @@ public class ToscaOperationFacade {
         if (parentVertexEither.isLeft()) {
             GraphVertex previousVersionV = parentVertexEither.left().value();
             JanusGraphOperationStatus createEdge = janusGraphDao
-                .createEdge(previousVersionV, newVersionEither.left().value(), EdgeLabelEnum.VERSION, null);
+                    .createEdge(previousVersionV, newVersionEither.left().value(), EdgeLabelEnum.VERSION, null);
             if (createEdge != JanusGraphOperationStatus.OK) {
                 log.debug("Failed to associate to previous version {} new version {} error {}", previousVersionV.getUniqueId(),
-                    newVersionEither.right().value(), createEdge);
+                        newVersionEither.right().value(), createEdge);
                 return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(createEdge));
             }
         }
@@ -817,7 +819,7 @@ public class ToscaOperationFacade {
         propertiesToMatch.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
         propertiesNotToMatch.put(GraphPropertyEnum.IS_DELETED, true);
         Either<List<GraphVertex>, JanusGraphOperationStatus> highestResources = janusGraphDao
-            .getByCriteria(null, propertiesToMatch, propertiesNotToMatch, parseFlag, model);
+                .getByCriteria(null, propertiesToMatch, propertiesNotToMatch, parseFlag, model);
         if (highestResources.isRight()) {
             JanusGraphOperationStatus status = highestResources.right().value();
             log.debug("failed to find resource with name {}. status={} ", nodeName, status);
@@ -856,7 +858,7 @@ public class ToscaOperationFacade {
         }
         propertiesNotToMatch.put(GraphPropertyEnum.IS_DELETED, true);
         Either<List<GraphVertex>, JanusGraphOperationStatus> getComponentsRes = janusGraphDao
-            .getByCriteria(null, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseAll);
+                .getByCriteria(null, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseAll);
         if (getComponentsRes.isRight()) {
             JanusGraphOperationStatus status = getComponentsRes.right().value();
             log.debug("Failed to fetch the component with system name {}. Status is {} ", systemName, status);
@@ -868,7 +870,7 @@ public class ToscaOperationFacade {
                 getComponentRes = getToscaElementByOperation(componentVertex);
                 if (getComponentRes.isRight()) {
                     log.debug("Failed to get the component {}. Status is {} ", componentVertex.getJsonMetadataField(JsonPresentationFields.NAME),
-                        getComponentRes.right().value());
+                            getComponentRes.right().value());
                     result = Either.right(getComponentRes.right().value());
                     break;
                 }
@@ -900,7 +902,7 @@ public class ToscaOperationFacade {
             hasProperties.put(GraphPropertyEnum.COMPONENT_TYPE, componentType.name());
         }
         Either<List<GraphVertex>, JanusGraphOperationStatus> getResourceRes = janusGraphDao
-            .getByCriteria(null, hasProperties, hasNotProperties, parseFlag);
+                .getByCriteria(null, hasProperties, hasNotProperties, parseFlag);
         if (getResourceRes.isRight()) {
             JanusGraphOperationStatus status = getResourceRes.right().value();
             log.debug("failed to find resource with name {}, version {}. Status is {} ", name, version, status);
@@ -923,7 +925,7 @@ public class ToscaOperationFacade {
         }
         Map<String, Entry<JanusGraphPredicate, Object>> predicateCriteria = getVendorVersionPredicate(vendorRelease);
         Either<List<GraphVertex>, JanusGraphOperationStatus> getResourceRes = janusGraphDao.getByCriteria(null, hasProperties, hasNotProperties,
-            predicateCriteria, parseFlag, modelName);
+                predicateCriteria, parseFlag, modelName);
         if (getResourceRes.isRight()) {
             JanusGraphOperationStatus status = getResourceRes.right().value();
             log.debug("failed to find resource with name {}, version {}. Status is {} ", name, predicateCriteria, status);
@@ -935,8 +937,8 @@ public class ToscaOperationFacade {
     public Either<List<CatalogComponent>, StorageOperationStatus> getCatalogOrArchiveComponents(boolean isCatalog,
                                                                                                 List<OriginTypeEnum> excludeTypes) {
         List<ResourceTypeEnum> excludedResourceTypes = Optional.ofNullable(excludeTypes).orElse(Collections.emptyList()).stream()
-            .filter(type -> !type.equals(OriginTypeEnum.SERVICE)).map(type -> ResourceTypeEnum.getTypeByName(type.name()))
-            .collect(Collectors.toList());
+                .filter(type -> !type.equals(OriginTypeEnum.SERVICE)).map(type -> ResourceTypeEnum.getTypeByName(type.name()))
+                .collect(Collectors.toList());
         return topologyTemplateOperation.getElementCatalogData(isCatalog, excludedResourceTypes);
     }
 
@@ -948,8 +950,8 @@ public class ToscaOperationFacade {
         Either<List<ToscaElement>, StorageOperationStatus> catalogDataResult;
         List<ToscaElement> toscaElements = new ArrayList<>();
         List<ResourceTypeEnum> excludedResourceTypes = Optional.ofNullable(excludeTypes).orElse(Collections.emptyList()).stream()
-            .filter(type -> !type.equals(OriginTypeEnum.SERVICE)).map(type -> ResourceTypeEnum.getTypeByName(type.name()))
-            .collect(Collectors.toList());
+                .filter(type -> !type.equals(OriginTypeEnum.SERVICE)).map(type -> ResourceTypeEnum.getTypeByName(type.name()))
+                .collect(Collectors.toList());
         switch (componentType) {
             case RESOURCE:
                 catalogDataResult = nodeTypeOperation.getElementCatalogData(ComponentTypeEnum.RESOURCE, excludedResourceTypes, isHighestVersions);
@@ -1001,11 +1003,15 @@ public class ToscaOperationFacade {
     }
 
     public List<String> deleteService(String invariantUUID, final boolean inTransaction) {
-        List<GraphVertex> allServiceVerticesToDelete = getVerticesForAllVersions(invariantUUID, ToscaElementTypeEnum.TOPOLOGY_TEMPLATE);
+        return deleteComponent(invariantUUID, NodeTypeEnum.Service, inTransaction);
+    }
+
+    public List<String> deleteComponent(String invariantUUID, NodeTypeEnum componentType, final boolean inTransaction) {
+        final List<GraphVertex> allServiceVerticesToDelete = findVertexListByInvariantUuid(invariantUUID);
         List<String> affectedComponentIds = new ArrayList<>();
         try {
-            checkNotUsed( allServiceVerticesToDelete);
-            lockAllVerticesByNodeType(allServiceVerticesToDelete, NodeTypeEnum.Service);
+            checkNotUsed(allServiceVerticesToDelete);
+            lockAllVerticesByNodeType(allServiceVerticesToDelete, componentType);
             for (GraphVertex elementV : allServiceVerticesToDelete) {
                 Either<ToscaElement, StorageOperationStatus> deleteToscaElement = deleteToscaElement(elementV);
                 if (deleteToscaElement.isRight()) {
@@ -1024,7 +1030,7 @@ public class ToscaOperationFacade {
             }
             throw exception;
         } finally {
-            unlockAllVerticesByNodeType(allServiceVerticesToDelete, NodeTypeEnum.Service);
+            unlockAllVerticesByNodeType(allServiceVerticesToDelete, componentType);
         }
         return affectedComponentIds;
     }
@@ -1045,22 +1051,13 @@ public class ToscaOperationFacade {
         }
     }
 
-    private List<GraphVertex> getVerticesForAllVersions(String invariantUUID, ToscaElementTypeEnum componentType){
-        Either<List<Component>, StorageOperationStatus> allComponents =
-                getComponentListByInvariantUuid(invariantUUID, null);
-        if (allComponents.isRight()) {
-            throwStorageException(allComponents.right().value());
-        }
-        List<GraphVertex> allComponentVertices = new ArrayList<>();
-        for (Component component : allComponents.left().value()) {
-            Either<GraphVertex, StorageOperationStatus> componentGraphVertex = topologyTemplateOperation
-                    .getComponentByLabelAndId(component.getUniqueId(), componentType, JsonParseFlagEnum.ParseAll);
-            if (componentGraphVertex.isRight()) {
-                throwStorageException(componentGraphVertex.right().value());
-            }
-            allComponentVertices.add(componentGraphVertex.left().value());
+    public List<GraphVertex> findVertexListByInvariantUuid(final String invariantUuid) {
+        try {
+            return janusGraphDao.findAllVertexByInvariantUuid(invariantUuid, Collections.emptyMap());
+        } catch (final JanusGraphException e) {
+            log.error(EcompLoggerErrorCode.DATA_ERROR, this.getClass().getName(), e.getMessage());
+            throw new StorageException(e.getStatus());
         }
-        return allComponentVertices;
     }
 
     public void commitAndCheck(String componentId) {
@@ -1120,7 +1117,7 @@ public class ToscaOperationFacade {
                 Either<ToscaElement, StorageOperationStatus> deleteToscaElement = deleteToscaElement(elementV);
                 if (deleteToscaElement.isRight()) {
                     log.debug("Failed to delete marked element UniqueID {}, Name {}, error {}", elementV.getUniqueId(),
-                        elementV.getMetadataProperties().get(GraphPropertyEnum.NAME), deleteToscaElement.right().value());
+                            elementV.getMetadataProperties().get(GraphPropertyEnum.NAME), deleteToscaElement.right().value());
                     continue;
                 }
                 deleted.add(elementV.getUniqueId());
@@ -1187,19 +1184,19 @@ public class ToscaOperationFacade {
         }
         String nextComponentInstanceCounter = getNextComponentInstanceCounter(containerComponent, nameToFindForCounter);
         Either<ImmutablePair<TopologyTemplate, String>, StorageOperationStatus> addResult = nodeTemplateOperation
-            .addComponentInstanceToTopologyTemplate(ModelConverter.convertToToscaElement(containerComponent),
-                ModelConverter.convertToToscaElement(origComponent), nextComponentInstanceCounter, componentInstance, allowDeleted, user);
+                .addComponentInstanceToTopologyTemplate(ModelConverter.convertToToscaElement(containerComponent),
+                        ModelConverter.convertToToscaElement(origComponent), nextComponentInstanceCounter, componentInstance, allowDeleted, user);
         if (addResult.isRight()) {
             CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to add the component instance {} to container component {}. ",
-                componentInstance.getName(), containerComponent.getName());
+                    componentInstance.getName(), containerComponent.getName());
             result = Either.right(addResult.right().value());
         }
         if (result == null) {
             updateContainerComponentRes = topologyTemplateOperation.getToscaElement(containerComponent.getUniqueId());
             if (updateContainerComponentRes.isRight()) {
                 CommonUtility
-                    .addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to fetch updated topology template {} with updated component instance {}. ",
-                        containerComponent.getName(), componentInstance.getName());
+                        .addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to fetch updated topology template {} with updated component instance {}. ",
+                                containerComponent.getName(), componentInstance.getName());
                 result = Either.right(updateContainerComponentRes.right().value());
             }
         }
@@ -1207,8 +1204,8 @@ public class ToscaOperationFacade {
             Component updatedComponent = ModelConverter.convertFromToscaElement(updateContainerComponentRes.left().value());
             String createdInstanceId = addResult.left().value().getRight();
             CommonUtility
-                .addRecordToLog(log, LogLevelEnum.TRACE, "The component instance {} has been added to container component {}. ", createdInstanceId,
-                    updatedComponent.getName());
+                    .addRecordToLog(log, LogLevelEnum.TRACE, "The component instance {} has been added to container component {}. ", createdInstanceId,
+                            updatedComponent.getName());
             result = Either.left(new ImmutablePair<>(updatedComponent, createdInstanceId));
         }
         return result;
@@ -1218,7 +1215,7 @@ public class ToscaOperationFacade {
                                                        boolean allowDeleted, boolean isUpdateCsar) {
         CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Going to add component instances to component {}", containerComponent.getUniqueId());
         Either<GraphVertex, JanusGraphOperationStatus> metadataVertex = janusGraphDao
-            .getVertexById(containerComponent.getUniqueId(), JsonParseFlagEnum.ParseAll);
+                .getVertexById(containerComponent.getUniqueId(), JsonParseFlagEnum.ParseAll);
         if (metadataVertex.isRight()) {
             JanusGraphOperationStatus status = metadataVertex.right().value();
             if (status == JanusGraphOperationStatus.NOT_FOUND) {
@@ -1227,33 +1224,33 @@ public class ToscaOperationFacade {
             throw new StorageException(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(status));
         }
         Map<String, ComponentInstanceDataDefinition> compnentInstancesMap = nodeTemplateOperation
-            .associateComponentInstancesToComponent(containerComponent, resourcesInstancesMap, metadataVertex.left().value(), allowDeleted,
-                isUpdateCsar);
+                .associateComponentInstancesToComponent(containerComponent, resourcesInstancesMap, metadataVertex.left().value(), allowDeleted,
+                        isUpdateCsar);
         containerComponent.setComponentInstances(ModelConverter.getComponentInstancesFromMapObject(compnentInstancesMap, containerComponent));
     }
 
     public Either<ImmutablePair<Component, String>, StorageOperationStatus> updateComponentInstanceMetadataOfTopologyTemplate(
-        Component containerComponent, Component origComponent, ComponentInstance componentInstance) {
+            Component containerComponent, Component origComponent, ComponentInstance componentInstance) {
         Either<ImmutablePair<Component, String>, StorageOperationStatus> result = null;
         CommonUtility.addRecordToLog(log, LogLevelEnum.TRACE,
-            "Going to update the metadata of the component instance {} belonging to container component {}. ", componentInstance.getName(),
-            containerComponent.getName());
+                "Going to update the metadata of the component instance {} belonging to container component {}. ", componentInstance.getName(),
+                containerComponent.getName());
         componentInstance.setIcon(origComponent.getIcon());
         Either<ImmutablePair<TopologyTemplate, String>, StorageOperationStatus> updateResult = nodeTemplateOperation
-            .updateComponentInstanceMetadataOfTopologyTemplate(ModelConverter.convertToToscaElement(containerComponent),
-                ModelConverter.convertToToscaElement(origComponent), componentInstance);
+                .updateComponentInstanceMetadataOfTopologyTemplate(ModelConverter.convertToToscaElement(containerComponent),
+                        ModelConverter.convertToToscaElement(origComponent), componentInstance);
         if (updateResult.isRight()) {
             CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG,
-                "Failed to update the metadata of the component instance {} belonging to container component {}. ", componentInstance.getName(),
-                containerComponent.getName());
+                    "Failed to update the metadata of the component instance {} belonging to container component {}. ", componentInstance.getName(),
+                    containerComponent.getName());
             result = Either.right(updateResult.right().value());
         }
         if (result == null) {
             Component updatedComponent = ModelConverter.convertFromToscaElement(updateResult.left().value().getLeft());
             String createdInstanceId = updateResult.left().value().getRight();
             CommonUtility
-                .addRecordToLog(log, LogLevelEnum.TRACE, "The metadata of the component instance {} has been updated to container component {}. ",
-                    createdInstanceId, updatedComponent.getName());
+                    .addRecordToLog(log, LogLevelEnum.TRACE, "The metadata of the component instance {} has been updated to container component {}. ",
+                            createdInstanceId, updatedComponent.getName());
             result = Either.left(new ImmutablePair<>(updatedComponent, createdInstanceId));
         }
         return result;
@@ -1267,18 +1264,18 @@ public class ToscaOperationFacade {
                                                                                                        ComponentParametersView filter) {
         Either<Component, StorageOperationStatus> result = null;
         CommonUtility.addRecordToLog(log, LogLevelEnum.TRACE, "Going to update the metadata  belonging to container component {}. ",
-            containerComponent.getName());
+                containerComponent.getName());
         Either<TopologyTemplate, StorageOperationStatus> updateResult = nodeTemplateOperation
-            .updateComponentInstanceMetadataOfTopologyTemplate(ModelConverter.convertToToscaElement(containerComponent), filter);
+                .updateComponentInstanceMetadataOfTopologyTemplate(ModelConverter.convertToToscaElement(containerComponent), filter);
         if (updateResult.isRight()) {
             CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to update the metadata  belonging to container component {}. ",
-                containerComponent.getName());
+                    containerComponent.getName());
             result = Either.right(updateResult.right().value());
         }
         if (result == null) {
             Component updatedComponent = ModelConverter.convertFromToscaElement(updateResult.left().value());
             CommonUtility
-                .addRecordToLog(log, LogLevelEnum.TRACE, "The metadata has been updated to container component {}. ", updatedComponent.getName());
+                    .addRecordToLog(log, LogLevelEnum.TRACE, "The metadata has been updated to container component {}. ", updatedComponent.getName());
             result = Either.left(updatedComponent);
         }
         return result;
@@ -1289,19 +1286,19 @@ public class ToscaOperationFacade {
                                                                                                                         String resourceInstanceId) {
         Either<ImmutablePair<Component, String>, StorageOperationStatus> result = null;
         CommonUtility.addRecordToLog(log, LogLevelEnum.TRACE, "Going to delete the component instance {} belonging to container component {}. ",
-            resourceInstanceId, containerComponent.getName());
+                resourceInstanceId, containerComponent.getName());
         Either<ImmutablePair<TopologyTemplate, String>, StorageOperationStatus> updateResult = nodeTemplateOperation
-            .deleteComponentInstanceFromTopologyTemplate(ModelConverter.convertToToscaElement(containerComponent), resourceInstanceId);
+                .deleteComponentInstanceFromTopologyTemplate(ModelConverter.convertToToscaElement(containerComponent), resourceInstanceId);
         if (updateResult.isRight()) {
             CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to delete the component instance {} belonging to container component {}. ",
-                resourceInstanceId, containerComponent.getName());
+                    resourceInstanceId, containerComponent.getName());
             result = Either.right(updateResult.right().value());
         }
         if (result == null) {
             Component updatedComponent = ModelConverter.convertFromToscaElement(updateResult.left().value().getLeft());
             String deletedInstanceId = updateResult.left().value().getRight();
             CommonUtility.addRecordToLog(log, LogLevelEnum.TRACE, "The component instance {} has been deleted from container component {}. ",
-                deletedInstanceId, updatedComponent.getName());
+                    deletedInstanceId, updatedComponent.getName());
             result = Either.left(new ImmutablePair<>(updatedComponent, deletedInstanceId));
         }
         return result;
@@ -1324,11 +1321,11 @@ public class ToscaOperationFacade {
      */
     private Integer getMaxCounterFromNamesAndIds(Component containerComponent, String normalizedName) {
         List<String> countersInNames = containerComponent.getComponentInstances().stream()
-            .filter(ci -> ci.getNormalizedName() != null && ci.getNormalizedName().startsWith(normalizedName))
-            .map(ci -> ci.getNormalizedName().split(normalizedName)[1]).collect(Collectors.toList());
+                .filter(ci -> ci.getNormalizedName() != null && ci.getNormalizedName().startsWith(normalizedName))
+                .map(ci -> ci.getNormalizedName().split(normalizedName)[1]).collect(Collectors.toList());
         List<String> countersInIds = containerComponent.getComponentInstances().stream()
-            .filter(ci -> ci.getUniqueId() != null && ci.getUniqueId().contains(normalizedName)).map(ci -> ci.getUniqueId().split(normalizedName)[1])
-            .collect(Collectors.toList());
+                .filter(ci -> ci.getUniqueId() != null && ci.getUniqueId().contains(normalizedName)).map(ci -> ci.getUniqueId().split(normalizedName)[1])
+                .collect(Collectors.toList());
         List<String> namesAndIdsList = new ArrayList<>(countersInNames);
         namesAndIdsList.addAll(countersInIds);
         return getMaxInteger(namesAndIdsList);
@@ -1363,7 +1360,7 @@ public class ToscaOperationFacade {
         }
         GraphVertex vertex = getVertexEither.left().value();
         Map<String, PropertyDataDefinition> inputsMap = inputs.entrySet().stream()
-            .collect(Collectors.toMap(Map.Entry::getKey, e -> new PropertyDataDefinition(e.getValue())));
+                .collect(Collectors.toMap(Map.Entry::getKey, e -> new PropertyDataDefinition(e.getValue())));
         StorageOperationStatus status = topologyTemplateOperation.associateInputsToComponent(vertex, inputsMap, componentId);
         if (StorageOperationStatus.OK == status) {
             log.debug(COMPONENT_CREATED_SUCCESSFULLY);
@@ -1384,9 +1381,9 @@ public class ToscaOperationFacade {
         }
         GraphVertex vertex = getVertexEither.left().value();
         Map<String, PropertyDefinition> inputsMap = inputs.entrySet().stream()
-            .collect(Collectors.toMap(Map.Entry::getKey, e -> new PropertyDefinition(e.getValue())));
+                .collect(Collectors.toMap(Map.Entry::getKey, e -> new PropertyDefinition(e.getValue())));
         StorageOperationStatus status = topologyTemplateOperation
-            .addToscaDataToToscaElement(vertex, EdgeLabelEnum.INPUTS, VertexTypeEnum.INPUTS, inputsMap, JsonPresentationFields.NAME);
+                .addToscaDataToToscaElement(vertex, EdgeLabelEnum.INPUTS, VertexTypeEnum.INPUTS, inputsMap, JsonPresentationFields.NAME);
         if (StorageOperationStatus.OK == status) {
             log.debug(COMPONENT_CREATED_SUCCESSFULLY);
             List<InputDefinition> inputsResList = null;
@@ -1406,9 +1403,9 @@ public class ToscaOperationFacade {
         }
         GraphVertex vertex = getVertexEither.left().value();
         Map<String, AttributeDefinition> outputsMap = outputs.entrySet().stream()
-            .collect(Collectors.toMap(Map.Entry::getKey, e -> new AttributeDefinition(e.getValue())));
+                .collect(Collectors.toMap(Map.Entry::getKey, e -> new AttributeDefinition(e.getValue())));
         StorageOperationStatus status = topologyTemplateOperation
-            .addToscaDataToToscaElement(vertex, EdgeLabelEnum.OUTPUTS, VertexTypeEnum.OUTPUTS, outputsMap, JsonPresentationFields.NAME);
+                .addToscaDataToToscaElement(vertex, EdgeLabelEnum.OUTPUTS, VertexTypeEnum.OUTPUTS, outputsMap, JsonPresentationFields.NAME);
         if (StorageOperationStatus.OK == status) {
             log.debug(COMPONENT_CREATED_SUCCESSFULLY);
             List<OutputDefinition> outputsResList = null;
@@ -1432,7 +1429,7 @@ public class ToscaOperationFacade {
         log.trace("#addDataTypesToComponent - enter, componentId={}", componentId);
         /* get component vertex */
         Either<GraphVertex, JanusGraphOperationStatus> getVertexEither = janusGraphDao
-            .getVertexById(componentId, JsonParseFlagEnum.NoParse);
+                .getVertexById(componentId, JsonParseFlagEnum.NoParse);
         if (getVertexEither.isRight()) {
             /* not found / error */
             log.debug(COULDNT_FETCH_COMPONENT_WITH_AND_UNIQUE_ID_ERROR, componentId, getVertexEither.right().value());
@@ -1442,12 +1439,12 @@ public class ToscaOperationFacade {
         log.trace("#addDataTypesToComponent - get vertex ok");
         // convert DataTypeDefinition to DataTypeDataDefinition
         Map<String, DataTypeDataDefinition> dataTypeDataMap = dataTypes.entrySet().stream()
-            .collect(Collectors.toMap(Map.Entry::getKey, e -> convertDataTypeToDataTypeData(e.getValue())));
+                .collect(Collectors.toMap(Map.Entry::getKey, e -> convertDataTypeToDataTypeData(e.getValue())));
         // add datatype(s) to the Component.
 
         // if child vertex does not exist, it will be created.
         StorageOperationStatus status = topologyTemplateOperation
-            .addToscaDataToToscaElement(vertex, EdgeLabelEnum.DATA_TYPES, VertexTypeEnum.DATA_TYPES, dataTypeDataMap, JsonPresentationFields.NAME);
+                .addToscaDataToToscaElement(vertex, EdgeLabelEnum.DATA_TYPES, VertexTypeEnum.DATA_TYPES, dataTypeDataMap, JsonPresentationFields.NAME);
         if (StorageOperationStatus.OK == status) {
             log.debug(COMPONENT_CREATED_SUCCESSFULLY);
             List<DataTypeDefinition> inputsResList = null;
@@ -1464,7 +1461,7 @@ public class ToscaOperationFacade {
         DataTypeDataDefinition dataTypeData = new DataTypeDataDefinition(dataType);
         if (CollectionUtils.isNotEmpty(dataType.getProperties())) {
             List<PropertyDataDefinition> propertyDataList = dataType.getProperties().stream().map(PropertyDataDefinition::new)
-                .collect(Collectors.toList());
+                    .collect(Collectors.toList());
             dataTypeData.setPropertiesData(propertyDataList);
         }
         // if "derivedFrom" data_type exists, copy the name to "derivedFromName"
@@ -1472,7 +1469,7 @@ public class ToscaOperationFacade {
             // if names are different, log it
             if (!StringUtils.equals(dataTypeData.getDerivedFromName(), dataType.getDerivedFrom().getName())) {
                 log.debug("#convertDataTypeToDataTypeData - derivedFromName(={}) overwritten by derivedFrom.name(={})", dataType.getDerivedFromName(),
-                    dataType.getDerivedFrom().getName());
+                        dataType.getDerivedFrom().getName());
             }
             dataTypeData.setDerivedFromName(dataType.getDerivedFrom().getName());
         }
@@ -1509,7 +1506,7 @@ public class ToscaOperationFacade {
         GraphVertex vertex = getVertexEither.left().value();
         List<PropertyDataDefinition> inputsAsDataDef = inputs.stream().map(PropertyDataDefinition::new).collect(Collectors.toList());
         StorageOperationStatus status = topologyTemplateOperation
-            .updateToscaDataOfToscaElement(vertex, EdgeLabelEnum.INPUTS, VertexTypeEnum.INPUTS, inputsAsDataDef, JsonPresentationFields.NAME);
+                .updateToscaDataOfToscaElement(vertex, EdgeLabelEnum.INPUTS, VertexTypeEnum.INPUTS, inputsAsDataDef, JsonPresentationFields.NAME);
         if (StorageOperationStatus.OK == status) {
             log.debug(COMPONENT_CREATED_SUCCESSFULLY);
             List<InputDefinition> inputsResList = null;
@@ -1523,7 +1520,7 @@ public class ToscaOperationFacade {
 
     // region - ComponentInstance
     public Either<Map<String, List<ComponentInstanceProperty>>, StorageOperationStatus> associateComponentInstancePropertiesToComponent(
-        Map<String, List<ComponentInstanceProperty>> instProperties, String componentId) {
+            Map<String, List<ComponentInstanceProperty>> instProperties, String componentId) {
         Either<GraphVertex, JanusGraphOperationStatus> getVertexEither = janusGraphDao.getVertexById(componentId, JsonParseFlagEnum.NoParse);
         if (getVertexEither.isRight()) {
             log.debug(COULDNT_FETCH_COMPONENT_WITH_AND_UNIQUE_ID_ERROR, componentId, getVertexEither.right().value());
@@ -1536,7 +1533,7 @@ public class ToscaOperationFacade {
             for (Entry<String, List<ComponentInstanceProperty>> entry : instProperties.entrySet()) {
                 propertiesMap = new MapPropertiesDataDefinition();
                 propertiesMap.setMapToscaDataDefinition(
-                    entry.getValue().stream().map(PropertyDataDefinition::new).collect(Collectors.toMap(PropertyDataDefinition::getName, e -> e)));
+                        entry.getValue().stream().map(PropertyDataDefinition::new).collect(Collectors.toMap(PropertyDataDefinition::getName, e -> e)));
                 instPropsMap.put(entry.getKey(), propertiesMap);
             }
         }
@@ -1552,7 +1549,7 @@ public class ToscaOperationFacade {
      * saves the instInputs as the updated instance inputs of the component container in DB
      */
     public Either<Map<String, List<ComponentInstanceInput>>, StorageOperationStatus> updateComponentInstanceInputsToComponent(
-        Map<String, List<ComponentInstanceInput>> instInputs, String componentId) {
+            Map<String, List<ComponentInstanceInput>> instInputs, String componentId) {
         if (instInputs == null || instInputs.isEmpty()) {
             return Either.left(instInputs);
         }
@@ -1562,11 +1559,11 @@ public class ToscaOperationFacade {
             List<String> pathKeysPerInst = new ArrayList<>();
             pathKeysPerInst.add(inputsPerIntance.getKey());
             status = topologyTemplateOperation
-                .updateToscaDataDeepElementsOfToscaElement(componentId, EdgeLabelEnum.INST_INPUTS, VertexTypeEnum.INST_INPUTS, toscaDataListPerInst,
-                    pathKeysPerInst, JsonPresentationFields.NAME);
+                    .updateToscaDataDeepElementsOfToscaElement(componentId, EdgeLabelEnum.INST_INPUTS, VertexTypeEnum.INST_INPUTS, toscaDataListPerInst,
+                            pathKeysPerInst, JsonPresentationFields.NAME);
             if (status != StorageOperationStatus.OK) {
                 log.debug("Failed to update component instance inputs for instance {} in component {} edge type {} error {}",
-                    inputsPerIntance.getKey(), componentId, EdgeLabelEnum.INST_INPUTS, status);
+                        inputsPerIntance.getKey(), componentId, EdgeLabelEnum.INST_INPUTS, status);
                 return Either.right(status);
             }
         }
@@ -1577,7 +1574,7 @@ public class ToscaOperationFacade {
      * saves the instProps as the updated instance properties of the component container in DB
      */
     public Either<Map<String, List<ComponentInstanceProperty>>, StorageOperationStatus> updateComponentInstancePropsToComponent(
-        Map<String, List<ComponentInstanceProperty>> instProps, String componentId) {
+            Map<String, List<ComponentInstanceProperty>> instProps, String componentId) {
         if (instProps == null || instProps.isEmpty()) {
             return Either.left(instProps);
         }
@@ -1587,11 +1584,11 @@ public class ToscaOperationFacade {
             List<String> pathKeysPerInst = new ArrayList<>();
             pathKeysPerInst.add(propsPerIntance.getKey());
             status = topologyTemplateOperation
-                .updateToscaDataDeepElementsOfToscaElement(componentId, EdgeLabelEnum.INST_PROPERTIES, VertexTypeEnum.INST_PROPERTIES,
-                    toscaDataListPerInst, pathKeysPerInst, JsonPresentationFields.NAME);
+                    .updateToscaDataDeepElementsOfToscaElement(componentId, EdgeLabelEnum.INST_PROPERTIES, VertexTypeEnum.INST_PROPERTIES,
+                            toscaDataListPerInst, pathKeysPerInst, JsonPresentationFields.NAME);
             if (status != StorageOperationStatus.OK) {
                 log.debug("Failed to update component instance inputs for instance {} in component {} edge type {} error {}",
-                    propsPerIntance.getKey(), componentId, EdgeLabelEnum.INST_PROPERTIES, status);
+                        propsPerIntance.getKey(), componentId, EdgeLabelEnum.INST_PROPERTIES, status);
                 return Either.right(status);
             }
         }
@@ -1599,7 +1596,7 @@ public class ToscaOperationFacade {
     }
 
     public Either<Map<String, List<ComponentInstanceInput>>, StorageOperationStatus> associateComponentInstanceInputsToComponent(
-        Map<String, List<ComponentInstanceInput>> instInputs, String componentId) {
+            Map<String, List<ComponentInstanceInput>> instInputs, String componentId) {
         Either<GraphVertex, JanusGraphOperationStatus> getVertexEither = janusGraphDao.getVertexById(componentId, JsonParseFlagEnum.NoParse);
         if (getVertexEither.isRight()) {
             log.debug(COULDNT_FETCH_COMPONENT_WITH_AND_UNIQUE_ID_ERROR, componentId, getVertexEither.right().value());
@@ -1612,7 +1609,7 @@ public class ToscaOperationFacade {
             for (Entry<String, List<ComponentInstanceInput>> entry : instInputs.entrySet()) {
                 propertiesMap = new MapPropertiesDataDefinition();
                 propertiesMap.setMapToscaDataDefinition(
-                    entry.getValue().stream().map(PropertyDataDefinition::new).collect(Collectors.toMap(PropertyDataDefinition::getName, e -> e)));
+                        entry.getValue().stream().map(PropertyDataDefinition::new).collect(Collectors.toMap(PropertyDataDefinition::getName, e -> e)));
                 instPropsMap.put(entry.getKey(), propertiesMap);
             }
         }
@@ -1625,7 +1622,7 @@ public class ToscaOperationFacade {
     }
 
     public Either<Map<String, List<ComponentInstanceInput>>, StorageOperationStatus> addComponentInstanceInputsToComponent(
-        Component containerComponent, Map<String, List<ComponentInstanceInput>> instProperties) {
+            Component containerComponent, Map<String, List<ComponentInstanceInput>> instProperties) {
         requireNonNull(instProperties);
         StorageOperationStatus status;
         for (Entry<String, List<ComponentInstanceInput>> entry : instProperties.entrySet()) {
@@ -1635,7 +1632,7 @@ public class ToscaOperationFacade {
                 for (ComponentInstanceInput property : props) {
                     List<ComponentInstanceInput> componentInstancesInputs = containerComponent.getComponentInstancesInputs().get(componentInstanceId);
                     Optional<ComponentInstanceInput> instanceProperty = componentInstancesInputs.stream()
-                        .filter(p -> p.getName().equals(property.getName())).findAny();
+                            .filter(p -> p.getName().equals(property.getName())).findAny();
                     if (instanceProperty.isPresent()) {
                         status = updateComponentInstanceInput(containerComponent, componentInstanceId, property);
                     } else {
@@ -1654,7 +1651,7 @@ public class ToscaOperationFacade {
     }
 
     public Either<Map<String, List<ComponentInstanceOutput>>, StorageOperationStatus> addComponentInstanceOutputsToComponent(
-        Component containerComponent, Map<String, List<ComponentInstanceOutput>> instProperties) {
+            Component containerComponent, Map<String, List<ComponentInstanceOutput>> instProperties) {
         requireNonNull(instProperties);
         StorageOperationStatus status;
         for (final Entry<String, List<ComponentInstanceOutput>> entry : instProperties.entrySet()) {
@@ -1663,9 +1660,9 @@ public class ToscaOperationFacade {
             if (!isEmpty(props)) {
                 for (final ComponentInstanceOutput property : props) {
                     final List<ComponentInstanceOutput> componentInstancesInputs = containerComponent.getComponentInstancesOutputs()
-                        .get(componentInstanceId);
+                            .get(componentInstanceId);
                     final Optional<ComponentInstanceOutput> instanceProperty = componentInstancesInputs.stream()
-                        .filter(p -> p.getName().equals(property.getName())).findAny();
+                            .filter(p -> p.getName().equals(property.getName())).findAny();
                     if (instanceProperty.isPresent()) {
                         status = updateComponentInstanceOutput(containerComponent, componentInstanceId, property);
                     } else {
@@ -1684,13 +1681,13 @@ public class ToscaOperationFacade {
     }
 
     public Either<Map<String, List<ComponentInstanceProperty>>, StorageOperationStatus> addComponentInstancePropertiesToComponent(
-        Component containerComponent, Map<String, List<ComponentInstanceProperty>> instProperties) {
+            Component containerComponent, Map<String, List<ComponentInstanceProperty>> instProperties) {
         requireNonNull(instProperties);
         for (Entry<String, List<ComponentInstanceProperty>> entry : instProperties.entrySet()) {
             List<ComponentInstanceProperty> props = entry.getValue();
             String componentInstanceId = entry.getKey();
             List<ComponentInstanceProperty> originalComponentInstProps = containerComponent.getComponentInstancesProperties()
-                .get(componentInstanceId);
+                    .get(componentInstanceId);
             Map<String, List<CapabilityDefinition>> containerComponentCapabilities = containerComponent.getCapabilities();
             if (isEmpty(props)) {
                 continue;
@@ -1701,7 +1698,7 @@ public class ToscaOperationFacade {
                 Optional<CapabilityDefinition> capPropDefinition = getPropertyCapability(propertyParentUniqueId, containerComponent);
                 if (capPropDefinition.isPresent() && MapUtils.isNotEmpty(containerComponentCapabilities)) {
                     status = populateAndUpdateInstanceCapProperty(containerComponent, componentInstanceId, containerComponentCapabilities, property,
-                        capPropDefinition.get());
+                            capPropDefinition.get());
                 }
                 if (status == null) {
                     status = updateOrAddComponentInstanceProperty(containerComponent, componentInstanceId, originalComponentInstProps, property);
@@ -1715,7 +1712,7 @@ public class ToscaOperationFacade {
     }
 
     public Either<Map<String, List<ComponentInstanceAttribute>>, StorageOperationStatus> addComponentInstanceAttributesToComponent(
-        final Component containerComponent, final Map<String, List<ComponentInstanceAttribute>> instProperties) {
+            final Component containerComponent, final Map<String, List<ComponentInstanceAttribute>> instProperties) {
         requireNonNull(instProperties);
         for (final Entry<String, List<ComponentInstanceAttribute>> entry : instProperties.entrySet()) {
             final List<ComponentInstanceAttribute> props = entry.getValue();
@@ -1724,10 +1721,10 @@ public class ToscaOperationFacade {
             }
             final String componentInstanceId = entry.getKey();
             final List<ComponentInstanceAttribute> originalComponentInstProps = containerComponent.getComponentInstancesAttributes()
-                .get(componentInstanceId);
+                    .get(componentInstanceId);
             for (final ComponentInstanceAttribute property : props) {
                 final StorageOperationStatus status = updateOrAddComponentInstanceAttribute(containerComponent, componentInstanceId,
-                    originalComponentInstProps, property);
+                        originalComponentInstProps, property);
                 if (status != StorageOperationStatus.OK) {
                     return Either.right(status);
                 }
@@ -1745,7 +1742,7 @@ public class ToscaOperationFacade {
             return null;
         }
         Optional<CapabilityDefinition> capDefToGetProp = capabilityDefinitions.stream()
-            .filter(cap -> cap.getUniqueId().equals(capabilityDefinition.getUniqueId()) && cap.getPath().size() == 1).findAny();
+                .filter(cap -> cap.getUniqueId().equals(capabilityDefinition.getUniqueId()) && cap.getPath().size() == 1).findAny();
         if (capDefToGetProp.isPresent()) {
             return updateInstanceCapabilityProperty(containerComponent, componentInstanceId, property, capDefToGetProp.get());
         }
@@ -1758,7 +1755,7 @@ public class ToscaOperationFacade {
         StorageOperationStatus status;
         // check if the property already exists or not
         Optional<ComponentInstanceProperty> instanceProperty = originalComponentInstProps.stream()
-            .filter(p -> p.getUniqueId().equals(property.getUniqueId())).findAny();
+                .filter(p -> p.getUniqueId().equals(property.getUniqueId())).findAny();
         if (instanceProperty.isPresent()) {
             status = updateComponentInstanceProperty(containerComponent, componentInstanceId, property);
         } else {
@@ -1776,7 +1773,7 @@ public class ToscaOperationFacade {
         StorageOperationStatus status;
         // check if the property already exists or not
         Optional<ComponentInstanceAttribute> instanceProperty = originalComponentInstProps.stream()
-            .filter(p -> p.getUniqueId().equals(property.getUniqueId())).findAny();
+                .filter(p -> p.getUniqueId().equals(property.getUniqueId())).findAny();
         if (instanceProperty.isPresent()) {
             status = updateComponentInstanceAttribute(containerComponent, componentInstanceId, property);
         } else {
@@ -1808,7 +1805,7 @@ public class ToscaOperationFacade {
         StorageOperationStatus status;
         StringBuilder sb = new StringBuilder(componentInstanceId);
         sb.append(ModelConverter.CAP_PROP_DELIM).append(propOwner).append(ModelConverter.CAP_PROP_DELIM).append(capabilityDefinition.getType())
-            .append(ModelConverter.CAP_PROP_DELIM).append(capabilityDefinition.getName());
+                .append(ModelConverter.CAP_PROP_DELIM).append(capabilityDefinition.getName());
         String capKey = sb.toString();
         status = updateComponentInstanceCapabiltyProperty(containerComponent, componentInstanceId, capKey, property);
         if (status != StorageOperationStatus.OK) {
@@ -1839,7 +1836,7 @@ public class ToscaOperationFacade {
         GraphVertex vertex = getVertexEither.left().value();
         if (MapUtils.isNotEmpty(capabilities)) {
             Either<GraphVertex, StorageOperationStatus> associateElementToData = topologyTemplateOperation
-                .associateElementToData(vertex, VertexTypeEnum.CAPABILITIES, EdgeLabelEnum.CAPABILITIES, capabilities);
+                    .associateElementToData(vertex, VertexTypeEnum.CAPABILITIES, EdgeLabelEnum.CAPABILITIES, capabilities);
             if (associateElementToData.isRight()) {
                 return associateElementToData.right().value();
             }
@@ -1856,7 +1853,7 @@ public class ToscaOperationFacade {
         GraphVertex vertex = getVertexEither.left().value();
         if (MapUtils.isNotEmpty(requirements)) {
             Either<GraphVertex, StorageOperationStatus> associateElementToData = topologyTemplateOperation
-                .associateElementToData(vertex, VertexTypeEnum.REQUIREMENTS, EdgeLabelEnum.REQUIREMENTS, requirements);
+                    .associateElementToData(vertex, VertexTypeEnum.REQUIREMENTS, EdgeLabelEnum.REQUIREMENTS, requirements);
             if (associateElementToData.isRight()) {
                 return associateElementToData.right().value();
             }
@@ -1867,7 +1864,7 @@ public class ToscaOperationFacade {
     public StorageOperationStatus associateDeploymentArtifactsToInstances(Map<String, Map<String, ArtifactDefinition>> instDeploymentArtifacts,
                                                                           Component component, User user) {
         Either<GraphVertex, JanusGraphOperationStatus> getVertexEither = janusGraphDao
-            .getVertexById(component.getUniqueId(), JsonParseFlagEnum.NoParse);
+                .getVertexById(component.getUniqueId(), JsonParseFlagEnum.NoParse);
         if (getVertexEither.isRight()) {
             log.debug(COULDNT_FETCH_COMPONENT_WITH_AND_UNIQUE_ID_ERROR, component.getUniqueId(), getVertexEither.right().value());
             return DaoStatusConverter.convertJanusGraphStatusToStorageStatus(getVertexEither.right().value());
@@ -1879,9 +1876,9 @@ public class ToscaOperationFacade {
             for (Entry<String, Map<String, ArtifactDefinition>> entry : instDeploymentArtifacts.entrySet()) {
                 Map<String, ArtifactDefinition> artList = entry.getValue();
                 Map<String, ArtifactDataDefinition> artifacts = artList.entrySet().stream()
-                    .collect(Collectors.toMap(Map.Entry::getKey, e -> new ArtifactDataDefinition(e.getValue())));
+                        .collect(Collectors.toMap(Map.Entry::getKey, e -> new ArtifactDataDefinition(e.getValue())));
                 artifactsMap = nodeTemplateOperation
-                    .prepareInstDeploymentArtifactPerInstance(artifacts, entry.getKey(), user, NodeTemplateOperation.HEAT_VF_ENV_NAME);
+                        .prepareInstDeploymentArtifactPerInstance(artifacts, entry.getKey(), user, NodeTemplateOperation.HEAT_VF_ENV_NAME);
                 instArtMap.put(entry.getKey(), artifactsMap);
             }
         }
@@ -1891,7 +1888,7 @@ public class ToscaOperationFacade {
 
     public StorageOperationStatus associateArtifactsToInstances(Map<String, Map<String, ArtifactDefinition>> instArtifacts, Component component) {
         Either<GraphVertex, JanusGraphOperationStatus> getVertexEither = janusGraphDao
-            .getVertexById(component.getUniqueId(), JsonParseFlagEnum.NoParse);
+                .getVertexById(component.getUniqueId(), JsonParseFlagEnum.NoParse);
         if (getVertexEither.isRight()) {
             log.debug(COULDNT_FETCH_COMPONENT_WITH_AND_UNIQUE_ID_ERROR, component.getUniqueId(), getVertexEither.right().value());
             return DaoStatusConverter.convertJanusGraphStatusToStorageStatus(getVertexEither.right().value());
@@ -1903,7 +1900,7 @@ public class ToscaOperationFacade {
             for (Entry<String, Map<String, ArtifactDefinition>> entry : instArtifacts.entrySet()) {
                 Map<String, ArtifactDefinition> artList = entry.getValue();
                 Map<String, ArtifactDataDefinition> artifacts = artList.entrySet().stream()
-                    .collect(Collectors.toMap(Map.Entry::getKey, e -> new ArtifactDataDefinition(e.getValue())));
+                        .collect(Collectors.toMap(Map.Entry::getKey, e -> new ArtifactDataDefinition(e.getValue())));
                 artifactsMap = new MapArtifactDataDefinition(artifacts);
                 instArtMap.put(entry.getKey(), artifactsMap);
             }
@@ -1915,7 +1912,7 @@ public class ToscaOperationFacade {
     public StorageOperationStatus associateInstAttributeToComponentToInstances(Map<String, List<AttributeDefinition>> instArttributes,
                                                                                Component component) {
         Either<GraphVertex, JanusGraphOperationStatus> getVertexEither = janusGraphDao
-            .getVertexById(component.getUniqueId(), JsonParseFlagEnum.NoParse);
+                .getVertexById(component.getUniqueId(), JsonParseFlagEnum.NoParse);
         if (getVertexEither.isRight()) {
             log.debug(COULDNT_FETCH_COMPONENT_WITH_AND_UNIQUE_ID_ERROR, component.getUniqueId(), getVertexEither.right().value());
             return DaoStatusConverter.convertJanusGraphStatusToStorageStatus(getVertexEither.right().value());
@@ -1928,7 +1925,7 @@ public class ToscaOperationFacade {
                 final List<AttributeDefinition> value = entry.getValue();
                 attributesMap = new MapAttributesDataDefinition();
                 attributesMap.setMapToscaDataDefinition(
-                    value.stream().map(AttributeDefinition::new).collect(Collectors.toMap(AttributeDefinition::getName, e -> e)));
+                        value.stream().map(AttributeDefinition::new).collect(Collectors.toMap(AttributeDefinition::getName, e -> e)));
                 instAttr.put(entry.getKey(), attributesMap);
             }
         }
@@ -1950,7 +1947,7 @@ public class ToscaOperationFacade {
                                                                  Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instReg,
                                                                  Component component) {
         Either<GraphVertex, JanusGraphOperationStatus> getVertexEither = janusGraphDao
-            .getVertexById(component.getUniqueId(), JsonParseFlagEnum.NoParse);
+                .getVertexById(component.getUniqueId(), JsonParseFlagEnum.NoParse);
         if (getVertexEither.isRight()) {
             log.debug(COULDNT_FETCH_COMPONENT_WITH_AND_UNIQUE_ID_ERROR, component.getUniqueId(), getVertexEither.right().value());
             return DaoStatusConverter.convertJanusGraphStatusToStorageStatus(getVertexEither.right().value());
@@ -1965,13 +1962,13 @@ public class ToscaOperationFacade {
                 Map<String, ListCapabilityDataDefinition> mapToscaDataDefinition = new HashMap<>();
                 for (Entry<String, List<CapabilityDefinition>> instCapability : caps.entrySet()) {
                     mapToscaDataDefinition.put(instCapability.getKey(), new ListCapabilityDataDefinition(
-                        instCapability.getValue().stream().map(CapabilityDataDefinition::new).collect(Collectors.toList())));
+                            instCapability.getValue().stream().map(CapabilityDataDefinition::new).collect(Collectors.toList())));
                 }
                 ComponentInstanceDataDefinition componentInstance = new ComponentInstanceDataDefinition(entry.getKey());
                 MapListCapabilityDataDefinition capMap = nodeTemplateOperation
-                    .prepareCalculatedCapabiltyForNodeType(mapToscaDataDefinition, componentInstance);
+                        .prepareCalculatedCapabiltyForNodeType(mapToscaDataDefinition, componentInstance);
                 MapCapabilityProperty mapCapabilityProperty = ModelConverter
-                    .convertToMapOfMapCapabiltyProperties(caps, componentInstance.getUniqueId(), true);
+                        .convertToMapOfMapCapabiltyProperties(caps, componentInstance.getUniqueId(), true);
                 calcCapabilty.put(entry.getKey().getUniqueId(), capMap);
                 calculatedCapabilitiesProperties.put(entry.getKey().getUniqueId(), mapCapabilityProperty);
             }
@@ -1982,24 +1979,24 @@ public class ToscaOperationFacade {
                 Map<String, ListRequirementDataDefinition> mapToscaDataDefinition = new HashMap<>();
                 for (Entry<String, List<RequirementDefinition>> instReq : req.entrySet()) {
                     mapToscaDataDefinition.put(instReq.getKey(), new ListRequirementDataDefinition(
-                        instReq.getValue().stream().map(RequirementDataDefinition::new).collect(Collectors.toList())));
+                            instReq.getValue().stream().map(RequirementDataDefinition::new).collect(Collectors.toList())));
                 }
                 MapListRequirementDataDefinition reqMap = nodeTemplateOperation
-                    .prepareCalculatedRequirementForNodeType(mapToscaDataDefinition, new ComponentInstanceDataDefinition(entry.getKey()));
+                        .prepareCalculatedRequirementForNodeType(mapToscaDataDefinition, new ComponentInstanceDataDefinition(entry.getKey()));
                 String componentInstanceId = entry.getKey().getUniqueId();
                 calcRequirements.put(componentInstanceId, reqMap);
             }
         }
         StorageOperationStatus storageOperationStatus = topologyTemplateOperation
-            .associateOrAddCalcCapReqToComponent(vertex, calcRequirements, calcCapabilty, calculatedCapabilitiesProperties);
+                .associateOrAddCalcCapReqToComponent(vertex, calcRequirements, calcCapabilty, calculatedCapabilitiesProperties);
         updateInstancesCapAndReqOnComponentFromDB(component);
         return storageOperationStatus;
     }
 
     public StorageOperationStatus updateCalculatedCapabilitiesRequirements(
-        final Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties,
-        final Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instReg,
-        final Component component) {
+            final Map<ComponentInstance, Map<String, List<CapabilityDefinition>>> instCapabilties,
+            final Map<ComponentInstance, Map<String, List<RequirementDefinition>>> instReg,
+            final Component component) {
         StorageOperationStatus storageOperationStatus = StorageOperationStatus.OK;
         if (instCapabilties != null) {
             for (Entry<ComponentInstance, Map<String, List<CapabilityDefinition>>> entry : instCapabilties.entrySet()) {
@@ -2017,7 +2014,7 @@ public class ToscaOperationFacade {
                 for (List<RequirementDefinition> requirementList : req.values()) {
                     for (RequirementDefinition requirement : requirementList) {
                         storageOperationStatus = nodeTemplateOperation.updateComponentInstanceRequirement(component.getUniqueId(),
-                            entry.getKey().getUniqueId(), requirement);
+                                entry.getKey().getUniqueId(), requirement);
                         if (storageOperationStatus != StorageOperationStatus.OK) {
                             return storageOperationStatus;
                         }
@@ -2074,14 +2071,14 @@ public class ToscaOperationFacade {
         Map<GraphPropertyEnum, Object> hasNotProps = new EnumMap<>(GraphPropertyEnum.class);
         fillPropsMap(hasProps, hasNotProps, internalComponentType, componentTypeEnum, isAbstract, vertexType, modelName);
         Either<List<GraphVertex>, JanusGraphOperationStatus> getRes = janusGraphDao
-            .getByCriteria(vertexType, hasProps, hasNotProps, JsonParseFlagEnum.ParseMetadata, modelName, includeNormativeExtensionModels);
+                .getByCriteria(vertexType, hasProps, hasNotProps, JsonParseFlagEnum.ParseMetadata, modelName, includeNormativeExtensionModels);
         if (getRes.isRight() && !JanusGraphOperationStatus.NOT_FOUND.equals(getRes.right().value())) {
             return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(getRes.right().value()));
         }
         // region -> Fetch non checked-out services
         if (internalComponentType != null && internalComponentType.toLowerCase().trim().equals(SERVICE) && VertexTypeEnum.NODE_TYPE == vertexType) {
             Either<List<Service>, StorageOperationStatus> result = getLatestVersionNonCheckoutServicesMetadataOnly(
-                new EnumMap<>(GraphPropertyEnum.class), new EnumMap<>(GraphPropertyEnum.class), modelName);
+                    new EnumMap<>(GraphPropertyEnum.class), new EnumMap<>(GraphPropertyEnum.class), modelName);
             if (result.isRight()) {
                 log.debug("Failed to fetch services for");
                 return Either.right(result.right().value());
@@ -2098,7 +2095,7 @@ public class ToscaOperationFacade {
         if (getRes.isLeft()) {
             for (GraphVertex vertexComponent : getRes.left().value()) {
                 Either<ToscaElement, StorageOperationStatus> componentRes = topologyTemplateOperation
-                    .getLightComponent(vertexComponent, componentTypeEnum, params);
+                        .getLightComponent(vertexComponent, componentTypeEnum, params);
                 if (componentRes.isRight()) {
                     log.debug("Failed to fetch light element for {} error {}", vertexComponent.getUniqueId(), componentRes.right().value());
                     return Either.right(componentRes.right().value());
@@ -2126,15 +2123,15 @@ public class ToscaOperationFacade {
         propertiesNotToMatch.put(GraphPropertyEnum.IS_DELETED, true);
         propertiesNotToMatch.put(GraphPropertyEnum.IS_ARCHIVED, true); //US382674, US382683
         Either<List<GraphVertex>, JanusGraphOperationStatus> getRes = janusGraphDao
-            .getByCriteria(null, hasProperties, propertiesNotToMatch, parseFlag);
+                .getByCriteria(null, hasProperties, propertiesNotToMatch, parseFlag);
         if (getRes.isRight()) {
             result = Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(getRes.right().value()));
         } else {
             List<ComponentMetadataData> latestVersionList = getRes.left().value().stream().map(ModelConverter::convertToComponentMetadata)
-                .collect(Collectors.toList());
+                    .collect(Collectors.toList());
             ComponentMetadataData latestVersion = latestVersionList.size() == 1 ? latestVersionList.get(0) : latestVersionList.stream().max(
-                (c1, c2) -> Double.compare(Double.parseDouble(c1.getMetadataDataDefinition().getVersion()),
-                    Double.parseDouble(c2.getMetadataDataDefinition().getVersion()))).get();
+                    (c1, c2) -> Double.compare(Double.parseDouble(c1.getMetadataDataDefinition().getVersion()),
+                            Double.parseDouble(c2.getMetadataDataDefinition().getVersion()))).get();
             result = Either.left(latestVersion);
         }
         return result;
@@ -2172,7 +2169,7 @@ public class ToscaOperationFacade {
                     componentParametersView.setIgnoreRequirements(false);
                 }
                 Either<ToscaElement, StorageOperationStatus> getToscaElementRes = nodeTemplateOperation.getToscaElementOperation(componentTypeEnum)
-                    .getLightComponent(componentUid, componentTypeEnum, componentParametersView);
+                        .getLightComponent(componentUid, componentTypeEnum, componentParametersView);
                 if (getToscaElementRes.isRight()) {
                     log.debug("Failed to fetch resource for error is {}", getToscaElementRes.right().value());
                     return Either.right(getToscaElementRes.right().value());
@@ -2199,7 +2196,7 @@ public class ToscaOperationFacade {
     private Either<List<String>, StorageOperationStatus> getComponentUids(boolean isAbstract, ComponentTypeEnum componentTypeEnum,
                                                                           String internalComponentType) {
         Either<List<Component>, StorageOperationStatus> getToscaElementsRes = getLatestVersionNotAbstractMetadataOnly(isAbstract, componentTypeEnum,
-            internalComponentType, null, false);
+                internalComponentType, null, false);
         if (getToscaElementsRes.isRight()) {
             return Either.right(getToscaElementsRes.right().value());
         }
@@ -2234,7 +2231,7 @@ public class ToscaOperationFacade {
                                                                                    ComponentTypeEnum componentType) {
         String normalizedName = ValidationUtils.normaliseComponentName(name);
         Either<List<GraphVertex>, JanusGraphOperationStatus> vertexEither = janusGraphDao
-            .getByCriteria(getVertexTypeEnum(resourceType), propertiesToMatch(normalizedName, componentType), JsonParseFlagEnum.NoParse);
+                .getByCriteria(getVertexTypeEnum(resourceType), propertiesToMatch(normalizedName, componentType), JsonParseFlagEnum.NoParse);
         if (vertexEither.isRight() && vertexEither.right().value() != JanusGraphOperationStatus.NOT_FOUND) {
             log.debug("failed to get vertex from graph with property normalizedName: {}", normalizedName);
             return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(vertexEither.right().value()));
@@ -2257,14 +2254,14 @@ public class ToscaOperationFacade {
                                                                                             final ComponentTypeEnum componentType) {
         final String normalizedName = ValidationUtils.normaliseComponentName(resourceName);
         final Either<List<GraphVertex>, JanusGraphOperationStatus> vertexEither = janusGraphDao
-            .getByCriteria(getVertexTypeEnum(resourceType), propertiesToMatch(normalizedName, componentType), null, null, JsonParseFlagEnum.NoParse,
-                modelName);
+                .getByCriteria(getVertexTypeEnum(resourceType), propertiesToMatch(normalizedName, componentType), null, null, JsonParseFlagEnum.NoParse,
+                        modelName);
         if (vertexEither.isRight() && vertexEither.right().value() != JanusGraphOperationStatus.NOT_FOUND) {
             log.debug("failed to get vertex from graph with property normalizedName: {} and model: {}", normalizedName, modelName);
             return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(vertexEither.right().value()));
         }
         return Either.left(CollectionUtils.isEmpty(vertexEither.isLeft() ? vertexEither.left().value().stream()
-            .collect(Collectors.toList()) : null));
+                .collect(Collectors.toList()) : null));
     }
 
     private VertexTypeEnum getVertexTypeEnum(final ResourceTypeEnum resourceType) {
@@ -2339,7 +2336,7 @@ public class ToscaOperationFacade {
             internalVertexTypes.add(VertexTypeEnum.NODE_TYPE);
         }
         if (ComponentTypeEnum.SERVICE == componentTypeEnum || SERVICE.equalsIgnoreCase(internalComponentType) || VF.equalsIgnoreCase(
-            internalComponentType)) {
+                internalComponentType)) {
             internalVertexTypes.add(VertexTypeEnum.TOPOLOGY_TEMPLATE);
         }
         return internalVertexTypes;
@@ -2354,7 +2351,7 @@ public class ToscaOperationFacade {
         List<Component> result = new ArrayList<>();
         for (VertexTypeEnum vertexType : internalVertexTypes) {
             Either<List<Component>, StorageOperationStatus> listByVertexType = getLatestVersionNotAbstractToscaElementsMetadataOnly(isAbstract,
-                componentTypeEnum, internalComponentType, vertexType, modelName, includeNormativeExtensionModels);
+                    componentTypeEnum, internalComponentType, vertexType, modelName, includeNormativeExtensionModels);
             if (listByVertexType.isRight()) {
                 return listByVertexType;
             }
@@ -2380,7 +2377,7 @@ public class ToscaOperationFacade {
         Map<GraphPropertyEnum, Object> propertiesNotToMatch = new EnumMap<>(GraphPropertyEnum.class);
         propertiesNotToMatch.put(GraphPropertyEnum.IS_DELETED, true);
         Either<List<GraphVertex>, JanusGraphOperationStatus> vertexEither = janusGraphDao
-            .getByCriteria(null, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseAll);
+                .getByCriteria(null, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseAll);
         if (vertexEither.isRight()) {
             return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(vertexEither.right().value()));
         }
@@ -2402,7 +2399,7 @@ public class ToscaOperationFacade {
         propertiesNotToMatch.put(GraphPropertyEnum.IS_DELETED, true);
         propertiesNotToMatch.put(GraphPropertyEnum.IS_ARCHIVED, true); //US382674, US382683
         Either<List<GraphVertex>, JanusGraphOperationStatus> vertexEither = janusGraphDao
-            .getByCriteria(null, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseAll);
+                .getByCriteria(null, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseAll);
         if (vertexEither.isRight()) {
             log.debug("Couldn't fetch metadata for component with uuid {}, error: {}", componentUuid, vertexEither.right().value());
             return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(vertexEither.right().value()));
@@ -2454,7 +2451,7 @@ public class ToscaOperationFacade {
             return Either.right(StorageOperationStatus.NOT_FOUND);
         }
         Component component = latestVersionList.size() == 1 ? latestVersionList.get(0)
-            : latestVersionList.stream().max((c1, c2) -> Double.compare(Double.parseDouble(c1.getVersion()), Double.parseDouble(c2.getVersion())))
+                : latestVersionList.stream().max((c1, c2) -> Double.compare(Double.parseDouble(c1.getVersion()), Double.parseDouble(c2.getVersion())))
                 .get();
         return Either.left(component);
     }
@@ -2471,7 +2468,7 @@ public class ToscaOperationFacade {
         propertiesToMatch.put(GraphPropertyEnum.COMPONENT_TYPE, ComponentTypeEnum.RESOURCE.name());
         propertiesNotToMatch.put(GraphPropertyEnum.IS_DELETED, true);
         Either<List<GraphVertex>, JanusGraphOperationStatus> getResourcesRes = janusGraphDao
-            .getByCriteria(null, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseAll);
+                .getByCriteria(null, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseAll);
         if (getResourcesRes.isRight()) {
             log.debug("Failed to fetch all certified resources. Status is {}", getResourcesRes.right().value());
             return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(getResourcesRes.right().value()));
@@ -2497,7 +2494,7 @@ public class ToscaOperationFacade {
         hasProperties.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
         hasNotProperties.put(GraphPropertyEnum.IS_DELETED, true);
         Either<List<GraphVertex>, JanusGraphOperationStatus> getResourceRes = janusGraphDao
-            .getByCriteria(null, hasProperties, hasNotProperties, parseFlag, model);
+                .getByCriteria(null, hasProperties, hasNotProperties, parseFlag, model);
         if (getResourceRes.isRight()) {
             JanusGraphOperationStatus status = getResourceRes.right().value();
             log.debug("failed to find resource with name {}, version {}. Status is {} ", name, version, status);
@@ -2525,7 +2522,7 @@ public class ToscaOperationFacade {
         GraphVertex resourceMetadataData = null;
         List<GraphVertex> resourceMetadataDataList = null;
         Either<List<GraphVertex>, JanusGraphOperationStatus> byCsar = janusGraphDao
-            .getByCriteria(null, props, propsHasNot, JsonParseFlagEnum.ParseMetadata);
+                .getByCriteria(null, props, propsHasNot, JsonParseFlagEnum.ParseMetadata);
         if (byCsar.isRight()) {
             if (JanusGraphOperationStatus.NOT_FOUND == byCsar.right().value()) {
                 // Fix Defect DE256036
@@ -2536,16 +2533,16 @@ public class ToscaOperationFacade {
                 props.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
                 props.put(GraphPropertyEnum.SYSTEM_NAME, systemName);
                 Either<List<GraphVertex>, JanusGraphOperationStatus> bySystemname = janusGraphDao
-                    .getByCriteria(null, props, JsonParseFlagEnum.ParseMetadata);
+                        .getByCriteria(null, props, JsonParseFlagEnum.ParseMetadata);
                 if (bySystemname.isRight()) {
                     log.debug("getLatestResourceByCsarOrName - Failed to find by system name {}  error {} ", systemName,
-                        bySystemname.right().value());
+                            bySystemname.right().value());
                     return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(bySystemname.right().value()));
                 }
                 if (bySystemname.left().value().size() > 2) {
                     log.debug(
-                        "getLatestResourceByCsarOrName - getByCriteria(by system name) must return only 2 latest version, but was returned - {}",
-                        bySystemname.left().value().size());
+                            "getLatestResourceByCsarOrName - getByCriteria(by system name) must return only 2 latest version, but was returned - {}",
+                            bySystemname.left().value().size());
                     return Either.right(StorageOperationStatus.GENERAL_ERROR);
                 }
                 resourceMetadataDataList = bySystemname.left().value();
@@ -2566,7 +2563,7 @@ public class ToscaOperationFacade {
                 final Object csarUuid = resourceMetadataData.getJsonMetadataField(JsonPresentationFields.CSAR_UUID);
                 if (csarUuid != null && !csarUuid.equals(csarUUID)) {
                     log.debug("getLatestResourceByCsarOrName - same system name {} but different csarUUID. exist {} and new {} ", systemName,
-                        csarUuid, csarUUID);
+                            csarUuid, csarUUID);
                     // correct error will be returned from create flow. with all
 
                     // correct audit records!!!!!
@@ -2578,7 +2575,7 @@ public class ToscaOperationFacade {
             resourceMetadataDataList = byCsar.left().value();
             if (resourceMetadataDataList.size() > 2) {
                 log.debug("getLatestResourceByCsarOrName - getByCriteria(by csar) must return only 2 latest version, but was returned - {}",
-                    byCsar.left().value().size());
+                        byCsar.left().value().size());
                 return Either.right(StorageOperationStatus.GENERAL_ERROR);
             }
             if (resourceMetadataDataList.size() == 1) {
@@ -2607,7 +2604,7 @@ public class ToscaOperationFacade {
             Either<Resource, StorageOperationStatus> latestByToscaResourceName = getLatestByToscaResourceName(currentTemplateNameChecked, model);
             if (latestByToscaResourceName.isRight()) {
                 return latestByToscaResourceName.right().value() == StorageOperationStatus.NOT_FOUND ? Either.left(false)
-                    : Either.right(latestByToscaResourceName.right().value());
+                        : Either.right(latestByToscaResourceName.right().value());
             }
             Resource value = latestByToscaResourceName.left().value();
             if (value.getDerivedFrom() != null) {
@@ -2617,7 +2614,7 @@ public class ToscaOperationFacade {
             }
         }
         return (currentTemplateNameChecked != null && currentTemplateNameChecked.equalsIgnoreCase(templateNameCurrent)) ? Either.left(true)
-            : Either.left(false);
+                : Either.left(false);
     }
 
     public Either<List<Component>, StorageOperationStatus> fetchMetaDataByResourceType(String resourceType, ComponentParametersView filterBy) {
@@ -2627,7 +2624,7 @@ public class ToscaOperationFacade {
         Map<GraphPropertyEnum, Object> propsHasNotToMatch = new EnumMap<>(GraphPropertyEnum.class);
         propsHasNotToMatch.put(GraphPropertyEnum.IS_DELETED, true);
         Either<List<GraphVertex>, JanusGraphOperationStatus> resourcesByTypeEither = janusGraphDao
-            .getByCriteria(null, props, propsHasNotToMatch, JsonParseFlagEnum.ParseMetadata);
+                .getByCriteria(null, props, propsHasNotToMatch, JsonParseFlagEnum.ParseMetadata);
         if (resourcesByTypeEither.isRight()) {
             return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(resourcesByTypeEither.right().value()));
         }
@@ -2645,7 +2642,7 @@ public class ToscaOperationFacade {
 
     public Either<Service, StorageOperationStatus> updateDistributionStatus(Service service, User user, DistributionStatusEnum distributionStatus) {
         Either<GraphVertex, StorageOperationStatus> updateDistributionStatus = topologyTemplateOperation
-            .updateDistributionStatus(service.getUniqueId(), user, distributionStatus);
+                .updateDistributionStatus(service.getUniqueId(), user, distributionStatus);
         if (updateDistributionStatus.isRight()) {
             return Either.right(updateDistributionStatus.right().value());
         }
@@ -2705,7 +2702,7 @@ public class ToscaOperationFacade {
             for (DistributionStatusEnum state : distStatus) {
                 propertiesToMatch.put(GraphPropertyEnum.DISTRIBUTION_STATUS, state.name());
                 Either<List<Service>, StorageOperationStatus> fetchServicesByCriteria = fetchServicesByCriteria(servicesAll, propertiesToMatch,
-                    propertiesNotToMatch, null);
+                        propertiesNotToMatch, null);
                 if (fetchServicesByCriteria.isRight()) {
                     return fetchServicesByCriteria;
                 } else {
@@ -2723,21 +2720,21 @@ public class ToscaOperationFacade {
                                                                                   Map<GraphPropertyEnum, Object> propertiesNotToMatch,
                                                                                   String modelName) {
         Either<List<GraphVertex>, JanusGraphOperationStatus> getRes = janusGraphDao
-            .getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseAll, modelName);
+                .getByCriteria(VertexTypeEnum.TOPOLOGY_TEMPLATE, propertiesToMatch, propertiesNotToMatch, JsonParseFlagEnum.ParseAll, modelName);
         if (getRes.isRight()) {
             if (getRes.right().value() != JanusGraphOperationStatus.NOT_FOUND) {
                 CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG,
-                    "Failed to fetch certified services by match properties {} not match properties {} . Status is {}. ", propertiesToMatch,
-                    propertiesNotToMatch, getRes.right().value());
+                        "Failed to fetch certified services by match properties {} not match properties {} . Status is {}. ", propertiesToMatch,
+                        propertiesNotToMatch, getRes.right().value());
                 return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(getRes.right().value()));
             }
         } else {
             for (final GraphVertex vertex : getRes.left().value()) {
                 Either<ToscaElement, StorageOperationStatus> getServiceRes = topologyTemplateOperation
-                    .getLightComponent(vertex, ComponentTypeEnum.SERVICE, new ComponentParametersView(true));
+                        .getLightComponent(vertex, ComponentTypeEnum.SERVICE, new ComponentParametersView(true));
                 if (getServiceRes.isRight()) {
                     CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to fetch certified service {}. Status is {}. ",
-                        vertex.getJsonMetadataField(JsonPresentationFields.NAME), getServiceRes.right().value());
+                            vertex.getJsonMetadataField(JsonPresentationFields.NAME), getServiceRes.right().value());
                     return Either.right(getServiceRes.right().value());
                 } else {
                     servicesAll.add(ModelConverter.convertFromToscaElement(getServiceRes.left().value()));
@@ -2754,7 +2751,7 @@ public class ToscaOperationFacade {
     public StorageOperationStatus addDeploymentArtifactsToInstance(String componentId, ComponentInstance componentInstance,
                                                                    Map<String, ArtifactDefinition> finalDeploymentArtifacts) {
         Map<String, ArtifactDataDefinition> instDeplArtifacts = finalDeploymentArtifacts.entrySet().stream()
-            .collect(Collectors.toMap(Map.Entry::getKey, e -> new ArtifactDataDefinition(e.getValue())));
+                .collect(Collectors.toMap(Map.Entry::getKey, e -> new ArtifactDataDefinition(e.getValue())));
         return nodeTemplateOperation.addDeploymentArtifactsToInstance(componentId, componentInstance.getUniqueId(), instDeplArtifacts);
     }
 
@@ -2763,7 +2760,7 @@ public class ToscaOperationFacade {
         StorageOperationStatus status = StorageOperationStatus.OK;
         if (MapUtils.isNotEmpty(artifacts)) {
             Map<String, ArtifactDataDefinition> instDeplArtifacts = artifacts.entrySet().stream()
-                .collect(Collectors.toMap(Map.Entry::getKey, e -> new ArtifactDataDefinition(e.getValue())));
+                    .collect(Collectors.toMap(Map.Entry::getKey, e -> new ArtifactDataDefinition(e.getValue())));
             status = nodeTemplateOperation.addInformationalArtifactsToInstance(componentId, componentInstance.getUniqueId(), instDeplArtifacts);
         }
         return status;
@@ -2781,11 +2778,11 @@ public class ToscaOperationFacade {
                                                                                      Component component) {
         newPropertyDefinition.setName(propertyName);
         StorageOperationStatus status = getToscaElementOperation(component)
-            .addToscaDataToToscaElement(component.getUniqueId(), EdgeLabelEnum.PROPERTIES, VertexTypeEnum.PROPERTIES, newPropertyDefinition,
-                JsonPresentationFields.NAME);
+                .addToscaDataToToscaElement(component.getUniqueId(), EdgeLabelEnum.PROPERTIES, VertexTypeEnum.PROPERTIES, newPropertyDefinition,
+                        JsonPresentationFields.NAME);
         if (status != StorageOperationStatus.OK) {
             CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to add the property {} to the component {}. Status is {}. ", propertyName,
-                component.getName(), status);
+                    component.getName(), status);
             return Either.right(status);
         }
         ComponentParametersView filter = new ComponentParametersView(true);
@@ -2794,21 +2791,21 @@ public class ToscaOperationFacade {
         Either<Component, StorageOperationStatus> getUpdatedComponentRes = getToscaElement(component.getUniqueId(), filter);
         if (getUpdatedComponentRes.isRight()) {
             CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to get updated component {}. Status is {}. ", component.getUniqueId(),
-                getUpdatedComponentRes.right().value());
+                    getUpdatedComponentRes.right().value());
             return Either.right(status);
         }
         PropertyDefinition newProperty = null;
         List<PropertyDefinition> properties = (getUpdatedComponentRes.left().value()).getProperties();
         if (CollectionUtils.isNotEmpty(properties)) {
             Optional<PropertyDefinition> propertyOptional = properties.stream().filter(propertyEntry -> propertyEntry.getName().equals(propertyName))
-                .findAny();
+                    .findAny();
             if (propertyOptional.isPresent()) {
                 newProperty = propertyOptional.get();
             }
         }
         if (newProperty == null) {
             CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to find recently added property {} on the component {}. Status is {}. ",
-                propertyName, component.getUniqueId(), StorageOperationStatus.NOT_FOUND);
+                    propertyName, component.getUniqueId(), StorageOperationStatus.NOT_FOUND);
             return Either.right(StorageOperationStatus.NOT_FOUND);
         }
         return Either.left(newProperty);
@@ -2818,11 +2815,11 @@ public class ToscaOperationFacade {
                                                                                Component component) {
         newInputDefinition.setName(inputName);
         StorageOperationStatus status = getToscaElementOperation(component)
-            .addToscaDataToToscaElement(component.getUniqueId(), EdgeLabelEnum.INPUTS, VertexTypeEnum.INPUTS, newInputDefinition,
-                JsonPresentationFields.NAME);
+                .addToscaDataToToscaElement(component.getUniqueId(), EdgeLabelEnum.INPUTS, VertexTypeEnum.INPUTS, newInputDefinition,
+                        JsonPresentationFields.NAME);
         if (status != StorageOperationStatus.OK) {
             CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to add the input {} to the component {}. Status is {}. ", inputName,
-                component.getName(), status);
+                    component.getName(), status);
             return Either.right(status);
         }
         ComponentParametersView filter = new ComponentParametersView(true);
@@ -2831,7 +2828,7 @@ public class ToscaOperationFacade {
         Either<Component, StorageOperationStatus> getUpdatedComponentRes = getToscaElement(component.getUniqueId(), filter);
         if (getUpdatedComponentRes.isRight()) {
             CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to get updated component {}. Status is {}. ", component.getUniqueId(),
-                getUpdatedComponentRes.right().value());
+                    getUpdatedComponentRes.right().value());
             return Either.right(status);
         }
         InputDefinition newInput = null;
@@ -2844,8 +2841,8 @@ public class ToscaOperationFacade {
         }
         if (newInput == null) {
             CommonUtility
-                .addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to find recently added input {} " + "on the component {}. Status is {}. ", inputs,
-                    component.getUniqueId(), StorageOperationStatus.NOT_FOUND);
+                    .addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to find recently added input {} " + "on the component {}. Status is {}. ", inputs,
+                            component.getUniqueId(), StorageOperationStatus.NOT_FOUND);
             return Either.right(StorageOperationStatus.NOT_FOUND);
         }
         return Either.left(newInput);
@@ -2853,24 +2850,24 @@ public class ToscaOperationFacade {
 
     public StorageOperationStatus deletePropertyOfComponent(Component component, String propertyName) {
         return getToscaElementOperation(component)
-            .deleteToscaDataElement(component.getUniqueId(), EdgeLabelEnum.PROPERTIES, VertexTypeEnum.PROPERTIES, propertyName,
-                JsonPresentationFields.NAME);
+                .deleteToscaDataElement(component.getUniqueId(), EdgeLabelEnum.PROPERTIES, VertexTypeEnum.PROPERTIES, propertyName,
+                        JsonPresentationFields.NAME);
     }
 
     public StorageOperationStatus deleteAttributeOfResource(Component component, String attributeName) {
         return getToscaElementOperation(component)
-            .deleteToscaDataElement(component.getUniqueId(), EdgeLabelEnum.ATTRIBUTES, VertexTypeEnum.ATTRIBUTES, attributeName,
-                JsonPresentationFields.NAME);
+                .deleteToscaDataElement(component.getUniqueId(), EdgeLabelEnum.ATTRIBUTES, VertexTypeEnum.ATTRIBUTES, attributeName,
+                        JsonPresentationFields.NAME);
     }
 
     public StorageOperationStatus deleteInputOfResource(Component resource, String inputName) {
         return getToscaElementOperation(resource)
-            .deleteToscaDataElement(resource.getUniqueId(), EdgeLabelEnum.INPUTS, VertexTypeEnum.INPUTS, inputName, JsonPresentationFields.NAME);
+                .deleteToscaDataElement(resource.getUniqueId(), EdgeLabelEnum.INPUTS, VertexTypeEnum.INPUTS, inputName, JsonPresentationFields.NAME);
     }
 
     public StorageOperationStatus deleteOutputOfResource(final Component resource, final String outputName) {
         return getToscaElementOperation(resource)
-            .deleteToscaDataElement(resource.getUniqueId(), EdgeLabelEnum.OUTPUTS, VertexTypeEnum.OUTPUTS, outputName, JsonPresentationFields.NAME);
+                .deleteToscaDataElement(resource.getUniqueId(), EdgeLabelEnum.OUTPUTS, VertexTypeEnum.OUTPUTS, outputName, JsonPresentationFields.NAME);
     }
 
     /**
@@ -2882,8 +2879,8 @@ public class ToscaOperationFacade {
      */
     public StorageOperationStatus deleteDataTypeOfComponent(Component component, String dataTypeName) {
         return getToscaElementOperation(component)
-            .deleteToscaDataElement(component.getUniqueId(), EdgeLabelEnum.DATA_TYPES, VertexTypeEnum.DATA_TYPES, dataTypeName,
-                JsonPresentationFields.NAME);
+                .deleteToscaDataElement(component.getUniqueId(), EdgeLabelEnum.DATA_TYPES, VertexTypeEnum.DATA_TYPES, dataTypeName,
+                        JsonPresentationFields.NAME);
     }
 
     public Either<PropertyDefinition, StorageOperationStatus> updatePropertyOfComponent(Component component,
@@ -2891,12 +2888,12 @@ public class ToscaOperationFacade {
         Either<Component, StorageOperationStatus> getUpdatedComponentRes = null;
         Either<PropertyDefinition, StorageOperationStatus> result = null;
         StorageOperationStatus status = getToscaElementOperation(component)
-            .updateToscaDataOfToscaElement(component.getUniqueId(), EdgeLabelEnum.PROPERTIES, VertexTypeEnum.PROPERTIES, newPropertyDefinition,
-                JsonPresentationFields.NAME);
+                .updateToscaDataOfToscaElement(component.getUniqueId(), EdgeLabelEnum.PROPERTIES, VertexTypeEnum.PROPERTIES, newPropertyDefinition,
+                        JsonPresentationFields.NAME);
         if (status != StorageOperationStatus.OK) {
             CommonUtility
-                .addRecordToLog(log, LogLevelEnum.DEBUG, FAILED_TO_ADD_THE_PROPERTY_TO_THE_RESOURCE_STATUS_IS, newPropertyDefinition.getName(),
-                    component.getName(), status);
+                    .addRecordToLog(log, LogLevelEnum.DEBUG, FAILED_TO_ADD_THE_PROPERTY_TO_THE_RESOURCE_STATUS_IS, newPropertyDefinition.getName(),
+                            component.getName(), status);
             result = Either.right(status);
         }
         if (result == null) {
@@ -2905,18 +2902,18 @@ public class ToscaOperationFacade {
             getUpdatedComponentRes = getToscaElement(component.getUniqueId(), filter);
             if (getUpdatedComponentRes.isRight()) {
                 CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, FAILED_TO_GET_UPDATED_RESOURCE_STATUS_IS, component.getUniqueId(),
-                    getUpdatedComponentRes.right().value());
+                        getUpdatedComponentRes.right().value());
                 result = Either.right(status);
             }
         }
         if (result == null) {
             Optional<PropertyDefinition> newProperty = (getUpdatedComponentRes.left().value()).getProperties().stream()
-                .filter(p -> p.getName().equals(newPropertyDefinition.getName())).findAny();
+                    .filter(p -> p.getName().equals(newPropertyDefinition.getName())).findAny();
             if (newProperty.isPresent()) {
                 result = Either.left(newProperty.get());
             } else {
                 CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, FAILED_TO_FIND_RECENTLY_ADDED_PROPERTY_ON_THE_RESOURCE_STATUS_IS,
-                    newPropertyDefinition.getName(), component.getUniqueId(), StorageOperationStatus.NOT_FOUND);
+                        newPropertyDefinition.getName(), component.getUniqueId(), StorageOperationStatus.NOT_FOUND);
                 result = Either.right(StorageOperationStatus.NOT_FOUND);
             }
         }
@@ -2928,12 +2925,12 @@ public class ToscaOperationFacade {
         Either<Component, StorageOperationStatus> getUpdatedComponentRes = null;
         Either<AttributeDefinition, StorageOperationStatus> result = null;
         StorageOperationStatus status = getToscaElementOperation(component)
-            .updateToscaDataOfToscaElement(component.getUniqueId(), EdgeLabelEnum.ATTRIBUTES, VertexTypeEnum.ATTRIBUTES, newPropertyDefinition,
-                JsonPresentationFields.NAME);
+                .updateToscaDataOfToscaElement(component.getUniqueId(), EdgeLabelEnum.ATTRIBUTES, VertexTypeEnum.ATTRIBUTES, newPropertyDefinition,
+                        JsonPresentationFields.NAME);
         if (status != StorageOperationStatus.OK) {
             CommonUtility
-                .addRecordToLog(log, LogLevelEnum.DEBUG, FAILED_TO_ADD_THE_PROPERTY_TO_THE_RESOURCE_STATUS_IS, newPropertyDefinition.getName(),
-                    component.getName(), status);
+                    .addRecordToLog(log, LogLevelEnum.DEBUG, FAILED_TO_ADD_THE_PROPERTY_TO_THE_RESOURCE_STATUS_IS, newPropertyDefinition.getName(),
+                            component.getName(), status);
             result = Either.right(status);
         }
         if (result == null) {
@@ -2942,18 +2939,18 @@ public class ToscaOperationFacade {
             getUpdatedComponentRes = getToscaElement(component.getUniqueId(), filter);
             if (getUpdatedComponentRes.isRight()) {
                 CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, FAILED_TO_GET_UPDATED_RESOURCE_STATUS_IS, component.getUniqueId(),
-                    getUpdatedComponentRes.right().value());
+                        getUpdatedComponentRes.right().value());
                 result = Either.right(status);
             }
         }
         if (result == null) {
             Optional<AttributeDefinition> newProperty = (getUpdatedComponentRes.left().value()).getAttributes().stream()
-                .filter(p -> p.getName().equals(newPropertyDefinition.getName())).findAny();
+                    .filter(p -> p.getName().equals(newPropertyDefinition.getName())).findAny();
             if (newProperty.isPresent()) {
                 result = Either.left(newProperty.get());
             } else {
                 CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, FAILED_TO_FIND_RECENTLY_ADDED_PROPERTY_ON_THE_RESOURCE_STATUS_IS,
-                    newPropertyDefinition.getName(), component.getUniqueId(), StorageOperationStatus.NOT_FOUND);
+                        newPropertyDefinition.getName(), component.getUniqueId(), StorageOperationStatus.NOT_FOUND);
                 result = Either.right(StorageOperationStatus.NOT_FOUND);
             }
         }
@@ -2969,11 +2966,11 @@ public class ToscaOperationFacade {
             newAttributeDef.setOwnerId(component.getUniqueId());
         }
         StorageOperationStatus status = getToscaElementOperation(component)
-            .addToscaDataToToscaElement(component.getUniqueId(), EdgeLabelEnum.ATTRIBUTES, VertexTypeEnum.ATTRIBUTES, newAttributeDef,
-                JsonPresentationFields.NAME);
+                .addToscaDataToToscaElement(component.getUniqueId(), EdgeLabelEnum.ATTRIBUTES, VertexTypeEnum.ATTRIBUTES, newAttributeDef,
+                        JsonPresentationFields.NAME);
         if (status != StorageOperationStatus.OK) {
             CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, FAILED_TO_ADD_THE_PROPERTY_TO_THE_RESOURCE_STATUS_IS, newAttributeDef.getName(),
-                component.getName(), status);
+                    component.getName(), status);
             result = Either.right(status);
         }
         if (result == null) {
@@ -2982,18 +2979,18 @@ public class ToscaOperationFacade {
             getUpdatedComponentRes = getToscaElement(component.getUniqueId(), filter);
             if (getUpdatedComponentRes.isRight()) {
                 CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, FAILED_TO_GET_UPDATED_RESOURCE_STATUS_IS, component.getUniqueId(),
-                    getUpdatedComponentRes.right().value());
+                        getUpdatedComponentRes.right().value());
                 result = Either.right(status);
             }
         }
         if (result == null) {
             Optional<AttributeDefinition> newAttribute = ((Resource) getUpdatedComponentRes.left().value()).getAttributes().stream()
-                .filter(p -> p.getName().equals(newAttributeDef.getName())).findAny();
+                    .filter(p -> p.getName().equals(newAttributeDef.getName())).findAny();
             if (newAttribute.isPresent()) {
                 result = Either.left(newAttribute.get());
             } else {
                 CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, FAILED_TO_FIND_RECENTLY_ADDED_PROPERTY_ON_THE_RESOURCE_STATUS_IS,
-                    newAttributeDef.getName(), component.getUniqueId(), StorageOperationStatus.NOT_FOUND);
+                        newAttributeDef.getName(), component.getUniqueId(), StorageOperationStatus.NOT_FOUND);
                 result = Either.right(StorageOperationStatus.NOT_FOUND);
             }
         }
@@ -3004,11 +3001,11 @@ public class ToscaOperationFacade {
         Either<Component, StorageOperationStatus> getUpdatedComponentRes = null;
         Either<AttributeDefinition, StorageOperationStatus> result = null;
         StorageOperationStatus status = getToscaElementOperation(component)
-            .updateToscaDataOfToscaElement(component.getUniqueId(), EdgeLabelEnum.ATTRIBUTES, VertexTypeEnum.ATTRIBUTES, newAttributeDef,
-                JsonPresentationFields.NAME);
+                .updateToscaDataOfToscaElement(component.getUniqueId(), EdgeLabelEnum.ATTRIBUTES, VertexTypeEnum.ATTRIBUTES, newAttributeDef,
+                        JsonPresentationFields.NAME);
         if (status != StorageOperationStatus.OK) {
             CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, FAILED_TO_ADD_THE_PROPERTY_TO_THE_RESOURCE_STATUS_IS, newAttributeDef.getName(),
-                component.getName(), status);
+                    component.getName(), status);
             result = Either.right(status);
         }
         if (result == null) {
@@ -3017,18 +3014,18 @@ public class ToscaOperationFacade {
             getUpdatedComponentRes = getToscaElement(component.getUniqueId(), filter);
             if (getUpdatedComponentRes.isRight()) {
                 CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, FAILED_TO_GET_UPDATED_RESOURCE_STATUS_IS, component.getUniqueId(),
-                    getUpdatedComponentRes.right().value());
+                        getUpdatedComponentRes.right().value());
                 result = Either.right(status);
             }
         }
         if (result == null) {
             Optional<AttributeDefinition> newProperty = ((Resource) getUpdatedComponentRes.left().value()).getAttributes().stream()
-                .filter(p -> p.getName().equals(newAttributeDef.getName())).findAny();
+                    .filter(p -> p.getName().equals(newAttributeDef.getName())).findAny();
             if (newProperty.isPresent()) {
                 result = Either.left(newProperty.get());
             } else {
                 CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, FAILED_TO_FIND_RECENTLY_ADDED_PROPERTY_ON_THE_RESOURCE_STATUS_IS,
-                    newAttributeDef.getName(), component.getUniqueId(), StorageOperationStatus.NOT_FOUND);
+                        newAttributeDef.getName(), component.getUniqueId(), StorageOperationStatus.NOT_FOUND);
                 result = Either.right(StorageOperationStatus.NOT_FOUND);
             }
         }
@@ -3039,11 +3036,11 @@ public class ToscaOperationFacade {
         Either<Component, StorageOperationStatus> getUpdatedComponentRes = null;
         Either<InputDefinition, StorageOperationStatus> result = null;
         StorageOperationStatus status = getToscaElementOperation(component)
-            .updateToscaDataOfToscaElement(component.getUniqueId(), EdgeLabelEnum.INPUTS, VertexTypeEnum.INPUTS, newInputDefinition,
-                JsonPresentationFields.NAME);
+                .updateToscaDataOfToscaElement(component.getUniqueId(), EdgeLabelEnum.INPUTS, VertexTypeEnum.INPUTS, newInputDefinition,
+                        JsonPresentationFields.NAME);
         if (status != StorageOperationStatus.OK) {
             CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to update the input {} to the component {}. Status is {}. ",
-                newInputDefinition.getName(), component.getName(), status);
+                    newInputDefinition.getName(), component.getName(), status);
             result = Either.right(status);
         }
         if (result == null) {
@@ -3052,18 +3049,18 @@ public class ToscaOperationFacade {
             getUpdatedComponentRes = getToscaElement(component.getUniqueId(), filter);
             if (getUpdatedComponentRes.isRight()) {
                 CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, FAILED_TO_GET_UPDATED_RESOURCE_STATUS_IS, component.getUniqueId(),
-                    getUpdatedComponentRes.right().value());
+                        getUpdatedComponentRes.right().value());
                 result = Either.right(status);
             }
         }
         if (result == null) {
             Optional<InputDefinition> updatedInput = getUpdatedComponentRes.left().value().getInputs().stream()
-                .filter(p -> p.getName().equals(newInputDefinition.getName())).findAny();
+                    .filter(p -> p.getName().equals(newInputDefinition.getName())).findAny();
             if (updatedInput.isPresent()) {
                 result = Either.left(updatedInput.get());
             } else {
                 CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to find recently updated inputs {} on the resource {}. Status is {}. ",
-                    newInputDefinition.getName(), component.getUniqueId(), StorageOperationStatus.NOT_FOUND);
+                        newInputDefinition.getName(), component.getUniqueId(), StorageOperationStatus.NOT_FOUND);
                 result = Either.right(StorageOperationStatus.NOT_FOUND);
             }
         }
@@ -3083,19 +3080,19 @@ public class ToscaOperationFacade {
                                                                                                                String componentInstanceId) {
         String uniqueId = componentInstance.getUniqueId();
         StorageOperationStatus status = nodeTemplateOperation
-            .deleteToscaDataDeepElementsBlockOfToscaElement(containerComponent.getUniqueId(), EdgeLabelEnum.INST_GROUPS, VertexTypeEnum.INST_GROUPS,
-                uniqueId);
+                .deleteToscaDataDeepElementsBlockOfToscaElement(containerComponent.getUniqueId(), EdgeLabelEnum.INST_GROUPS, VertexTypeEnum.INST_GROUPS,
+                        uniqueId);
         if (status != StorageOperationStatus.OK && status != StorageOperationStatus.NOT_FOUND) {
             CommonUtility
-                .addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to delete group instances for container {}. error {] ", componentInstanceId, status);
+                    .addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to delete group instances for container {}. error {] ", componentInstanceId, status);
             return Either.right(status);
         }
         if (componentInstance.getGroupInstances() != null) {
             status = addGroupInstancesToComponentInstance(containerComponent, componentInstance, componentInstance.getGroupInstances());
             if (status != StorageOperationStatus.OK && status != StorageOperationStatus.NOT_FOUND) {
                 CommonUtility
-                    .addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to add group instances for container {}. error {] ", componentInstanceId,
-                        status);
+                        .addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to add group instances for container {}. error {] ", componentInstanceId,
+                                status);
                 return Either.right(status);
             }
         }
@@ -3199,25 +3196,25 @@ public class ToscaOperationFacade {
     public StorageOperationStatus deleteComponentInstanceInputsFromTopologyTemplate(Component containerComponent,
                                                                                     List<InputDefinition> inputsToDelete) {
         return topologyTemplateOperation.deleteToscaDataElements(containerComponent.getUniqueId(), EdgeLabelEnum.INPUTS,
-            inputsToDelete.stream().map(PropertyDataDefinition::getName).collect(Collectors.toList()));
+                inputsToDelete.stream().map(PropertyDataDefinition::getName).collect(Collectors.toList()));
     }
 
     public StorageOperationStatus deleteComponentInstanceOutputsFromTopologyTemplate(final Component containerComponent,
                                                                                      final List<OutputDefinition> outputsToDelete) {
         return topologyTemplateOperation.deleteToscaDataElements(containerComponent.getUniqueId(), EdgeLabelEnum.OUTPUTS,
-            outputsToDelete.stream().map(AttributeDataDefinition::getName).collect(Collectors.toList()));
+                outputsToDelete.stream().map(AttributeDataDefinition::getName).collect(Collectors.toList()));
     }
 
     public StorageOperationStatus updateComponentInstanceCapabiltyProperty(Component containerComponent, String componentInstanceUniqueId,
                                                                            String capabilityPropertyKey, ComponentInstanceProperty property) {
         return nodeTemplateOperation
-            .updateComponentInstanceCapabilityProperty(containerComponent, componentInstanceUniqueId, capabilityPropertyKey, property);
+                .updateComponentInstanceCapabilityProperty(containerComponent, componentInstanceUniqueId, capabilityPropertyKey, property);
     }
 
     public StorageOperationStatus updateComponentInstanceCapabilityProperties(Component containerComponent, String componentInstanceUniqueId) {
         return convertComponentInstanceProperties(containerComponent, componentInstanceUniqueId).map(instanceCapProps -> topologyTemplateOperation
-                .updateComponentInstanceCapabilityProperties(containerComponent, componentInstanceUniqueId, instanceCapProps))
-            .orElse(StorageOperationStatus.NOT_FOUND);
+                        .updateComponentInstanceCapabilityProperties(containerComponent, componentInstanceUniqueId, instanceCapProps))
+                .orElse(StorageOperationStatus.NOT_FOUND);
     }
 
     public StorageOperationStatus updateComponentInstanceRequirement(String containerComponentId, String componentInstanceUniqueId,
@@ -3250,15 +3247,15 @@ public class ToscaOperationFacade {
         final ToscaElementOperation toscaElementOperation = getToscaElementOperation(component);
         if (match) {
             status = toscaElementOperation.updateToscaDataOfToscaElement(component.getUniqueId(), EdgeLabelEnum.INTERFACE_ARTIFACTS,
-                VertexTypeEnum.INTERFACE_ARTIFACTS, interfaceDefinition, JsonPresentationFields.TYPE);
+                    VertexTypeEnum.INTERFACE_ARTIFACTS, interfaceDefinition, JsonPresentationFields.TYPE);
         } else {
             status = toscaElementOperation.addToscaDataToToscaElement(component.getUniqueId(), EdgeLabelEnum.INTERFACE_ARTIFACTS,
-                VertexTypeEnum.INTERFACE_ARTIFACTS, interfaceDefinition, JsonPresentationFields.TYPE);
+                    VertexTypeEnum.INTERFACE_ARTIFACTS, interfaceDefinition, JsonPresentationFields.TYPE);
         }
 
         if (status != StorageOperationStatus.OK) {
             CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to add the interface {} to the component {}. Status is {}. ",
-                interfaceName, component.getName(), status);
+                    interfaceName, component.getName(), status);
             return Either.right(status);
         }
         final ComponentParametersView filter = new ComponentParametersView(true);
@@ -3267,7 +3264,7 @@ public class ToscaOperationFacade {
         final Either<Component, StorageOperationStatus> getUpdatedComponentRes = getToscaElement(component.getUniqueId(), filter);
         if (getUpdatedComponentRes.isRight()) {
             CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to get updated component {}. Status is {}. ",
-                component.getUniqueId(), getUpdatedComponentRes.right().value());
+                    component.getUniqueId(), getUpdatedComponentRes.right().value());
             return Either.right(getUpdatedComponentRes.right().value());
         }
         InterfaceDefinition newInterfaceDefinition = null;
@@ -3280,7 +3277,7 @@ public class ToscaOperationFacade {
         }
         if (newInterfaceDefinition == null) {
             CommonUtility.addRecordToLog(log, LogLevelEnum.DEBUG, "Failed to find recently added interface {} on the component {}. Status is {}. ",
-                interfaceName, component.getUniqueId(), StorageOperationStatus.NOT_FOUND);
+                    interfaceName, component.getUniqueId(), StorageOperationStatus.NOT_FOUND);
             return Either.right(StorageOperationStatus.NOT_FOUND);
         }
         return Either.left(newInterfaceDefinition);
@@ -3293,14 +3290,14 @@ public class ToscaOperationFacade {
 
     public StorageOperationStatus deleteAllCalculatedCapabilitiesRequirements(String topologyTemplateId) {
         StorageOperationStatus status = topologyTemplateOperation
-            .removeToscaData(topologyTemplateId, EdgeLabelEnum.CALCULATED_CAPABILITIES, VertexTypeEnum.CALCULATED_CAPABILITIES);
+                .removeToscaData(topologyTemplateId, EdgeLabelEnum.CALCULATED_CAPABILITIES, VertexTypeEnum.CALCULATED_CAPABILITIES);
         if (status == StorageOperationStatus.OK) {
             status = topologyTemplateOperation
-                .removeToscaData(topologyTemplateId, EdgeLabelEnum.CALCULATED_REQUIREMENTS, VertexTypeEnum.CALCULATED_REQUIREMENTS);
+                    .removeToscaData(topologyTemplateId, EdgeLabelEnum.CALCULATED_REQUIREMENTS, VertexTypeEnum.CALCULATED_REQUIREMENTS);
         }
         if (status == StorageOperationStatus.OK) {
             status = topologyTemplateOperation
-                .removeToscaData(topologyTemplateId, EdgeLabelEnum.CALCULATED_CAP_PROPERTIES, VertexTypeEnum.CALCULATED_CAP_PROPERTIES);
+                    .removeToscaData(topologyTemplateId, EdgeLabelEnum.CALCULATED_CAP_PROPERTIES, VertexTypeEnum.CALCULATED_CAP_PROPERTIES);
         }
         return status;
     }
@@ -3315,10 +3312,10 @@ public class ToscaOperationFacade {
         GraphVertex nodeTypeV = getVertexEither.left().value();
         ToscaElement toscaElementToUpdate = ModelConverter.convertToToscaElement(clonedResource);
         Either<ToscaElement, StorageOperationStatus> shouldUpdateDerivedVersion = nodeTypeOperation
-            .shouldUpdateDerivedVersion(toscaElementToUpdate, nodeTypeV);
+                .shouldUpdateDerivedVersion(toscaElementToUpdate, nodeTypeV);
         if (shouldUpdateDerivedVersion.isRight() && StorageOperationStatus.OK != shouldUpdateDerivedVersion.right().value()) {
             log.debug("Failed to update derived version for node type {} derived {}, error: {}", componentId, clonedResource.getDerivedFrom().get(0),
-                shouldUpdateDerivedVersion.right().value());
+                    shouldUpdateDerivedVersion.right().value());
             return Either.right(shouldUpdateDerivedVersion.right().value());
         }
         if (shouldUpdateDerivedVersion.isLeft()) {
@@ -3363,7 +3360,7 @@ public class ToscaOperationFacade {
 
     private Optional<MapCapabilityProperty> convertComponentInstanceProperties(Component component, String instanceId) {
         return component.fetchInstanceById(instanceId)
-            .map(ci -> ModelConverter.convertToMapOfMapCapabilityProperties(ci.getCapabilities(), instanceId, ci.getOriginType().isAtomicType()));
+                .map(ci -> ModelConverter.convertToMapOfMapCapabilityProperties(ci.getCapabilities(), instanceId, ci.getOriginType().isAtomicType()));
     }
 
     public Either<PolicyDefinition, StorageOperationStatus> associatePolicyToComponent(String componentId, PolicyDefinition policyDefinition,
@@ -3382,7 +3379,7 @@ public class ToscaOperationFacade {
         }
         if (result == null) {
             StorageOperationStatus status = topologyTemplateOperation
-                .addPolicyToToscaElement(getVertexEither.left().value(), policyDefinition, counter);
+                    .addPolicyToToscaElement(getVertexEither.left().value(), policyDefinition, counter);
             if (status != StorageOperationStatus.OK) {
                 return Either.right(status);
             }
@@ -3396,8 +3393,8 @@ public class ToscaOperationFacade {
     public StorageOperationStatus associatePoliciesToComponent(String componentId, List<PolicyDefinition> policies) {
         log.debug("#associatePoliciesToComponent - associating policies for component {}.", componentId);
         return janusGraphDao.getVertexById(componentId, JsonParseFlagEnum.ParseMetadata)
-            .either(containerVertex -> topologyTemplateOperation.addPoliciesToToscaElement(containerVertex, policies),
-                DaoStatusConverter::convertJanusGraphStatusToStorageStatus);
+                .either(containerVertex -> topologyTemplateOperation.addPoliciesToToscaElement(containerVertex, policies),
+                        DaoStatusConverter::convertJanusGraphStatusToStorageStatus);
     }
 
     public Either<PolicyDefinition, StorageOperationStatus> updatePolicyOfComponent(String componentId, PolicyDefinition policyDefinition,
@@ -3425,8 +3422,8 @@ public class ToscaOperationFacade {
     public StorageOperationStatus updatePoliciesOfComponent(String componentId, List<PolicyDefinition> policyDefinition) {
         log.debug("#updatePoliciesOfComponent - updating policies for component {}", componentId);
         return janusGraphDao.getVertexById(componentId, JsonParseFlagEnum.NoParse).right()
-            .map(DaoStatusConverter::convertJanusGraphStatusToStorageStatus)
-            .either(containerVertex -> topologyTemplateOperation.updatePoliciesOfToscaElement(containerVertex, policyDefinition), err -> err);
+                .map(DaoStatusConverter::convertJanusGraphStatusToStorageStatus)
+                .either(containerVertex -> topologyTemplateOperation.updatePoliciesOfToscaElement(containerVertex, policyDefinition), err -> err);
     }
 
     public StorageOperationStatus removePolicyFromComponent(String componentId, String policyId) {
@@ -3478,7 +3475,7 @@ public class ToscaOperationFacade {
 
     private TopologyTemplate getTopologyTemplate(String componentId) {
         return (TopologyTemplate) topologyTemplateOperation.getToscaElement(componentId, getFilterComponentWithCapProperties()).left()
-            .on(this::throwStorageException);
+                .on(this::throwStorageException);
     }
 
     private ComponentParametersView getFilterComponentWithCapProperties() {
@@ -3493,7 +3490,7 @@ public class ToscaOperationFacade {
 
     public Either<Boolean, StorageOperationStatus> isComponentInUse(String componentId) {
         final List<EdgeLabelEnum> forbiddenEdgeLabelEnums = Arrays
-            .asList(EdgeLabelEnum.INSTANCE_OF, EdgeLabelEnum.PROXY_OF, EdgeLabelEnum.ALLOTTED_OF);
+                .asList(EdgeLabelEnum.INSTANCE_OF, EdgeLabelEnum.PROXY_OF, EdgeLabelEnum.ALLOTTED_OF);
         Either<GraphVertex, JanusGraphOperationStatus> vertexById = janusGraphDao.getVertexById(componentId);
         if (vertexById.isLeft()) {
             for (EdgeLabelEnum edgeLabelEnum : forbiddenEdgeLabelEnums) {
@@ -3514,10 +3511,10 @@ public class ToscaOperationFacade {
         }
         propertiesToMatch.put(GraphPropertyEnum.INVARIANT_UUID, componentInvariantUuid);
         Either<List<GraphVertex>, JanusGraphOperationStatus> vertexEither = janusGraphDao
-            .getByCriteria(null, propertiesToMatch, JsonParseFlagEnum.ParseMetadata);
+                .getByCriteria(null, propertiesToMatch, JsonParseFlagEnum.ParseMetadata);
         if (vertexEither.isRight()) {
             log.debug("Couldn't fetch metadata for component with type {} and invariantUUId {}, error: {}", componentInvariantUuid,
-                vertexEither.right().value());
+                    vertexEither.right().value());
             return Either.right(DaoStatusConverter.convertJanusGraphStatusToStorageStatus(vertexEither.right().value()));
         }
         List<GraphVertex> vertexList = vertexEither.isLeft() ? vertexEither.left().value() : null;
@@ -3544,7 +3541,7 @@ public class ToscaOperationFacade {
         if (vertexById.isLeft()) {
             for (EdgeLabelEnum edgeLabelEnum : relationEdgeLabelEnums) {
                 Either<GraphVertex, JanusGraphOperationStatus> parentVertexEither = janusGraphDao
-                    .getParentVertex(vertexById.left().value(), edgeLabelEnum, JsonParseFlagEnum.ParseJson);
+                        .getParentVertex(vertexById.left().value(), edgeLabelEnum, JsonParseFlagEnum.ParseJson);
                 if (parentVertexEither.isLeft()) {
                     Either<Component, StorageOperationStatus> componentEither = getToscaElement(parentVertexEither.left().value().getUniqueId());
                     if (componentEither.isLeft()) {
index 4916030..321fbfd 100644 (file)
@@ -65,7 +65,7 @@ public enum StorageOperationStatus {
     INVALID_PROPERTY,
     COMPONENT_IS_ARCHIVED,
     COMPONENT_NOT_ARCHIVED,
-    COMPONENT_IN_USE_BY_ANOTHER_COMPONENT,
+    COMPONENT_IS_IN_USE,
     DECLARED_INPUT_USED_BY_OPERATION;
     // @formatter:on
 
index 625ec39..d7b6c60 100644 (file)
@@ -73,6 +73,7 @@ import org.mockito.MockitoAnnotations;
 import org.mockito.junit.MockitoJUnitRunner;
 import org.openecomp.sdc.be.config.ComponentType;
 import org.openecomp.sdc.be.dao.api.ActionStatus;
+import org.openecomp.sdc.be.dao.api.exception.JanusGraphException;
 import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
 import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
 import org.openecomp.sdc.be.dao.janusgraph.HealingJanusGraphDao;
@@ -440,12 +441,8 @@ public class ToscaOperationFacadeTest {
         List<GraphVertex> inUseBy = new ArrayList<>();
         inUseBy.add(usingService);
 
-        when(janusGraphDaoMock.getByCriteria(null, propertiesToMatch, JsonParseFlagEnum.ParseMetadata)).
-                thenReturn(Either.left(allResourcesToDelete));
-        doReturn(Either.left(toscaElement)).when(topologyTemplateOperationMock).getToscaElement(eq(service1), any(ComponentParametersView.class));
-        when(topologyTemplateOperationMock.
-                getComponentByLabelAndId(serviceUid, ToscaElementTypeEnum.TOPOLOGY_TEMPLATE, JsonParseFlagEnum.ParseAll)).
-                thenReturn(Either.left(service1));
+        when(janusGraphDaoMock.findAllVertexByInvariantUuid(invariantUUID, Collections.emptyMap())).
+                thenReturn(allResourcesToDelete);
         when(janusGraphDaoMock.getParentVertices(any(GraphVertex.class), any(), eq(JsonParseFlagEnum.ParseAll))).
                 thenReturn(Either.left(inUseBy)).thenReturn(Either.left(inUseBy));
         final OperationException actualException = assertThrows(OperationException.class, () -> testInstance.deleteService(invariantUUID, true));
@@ -468,12 +465,8 @@ public class ToscaOperationFacadeTest {
         List<String> affectedComponentIds = new ArrayList<>();
         affectedComponentIds.add(service1.getUniqueId());
 
-        when(janusGraphDaoMock.getByCriteria(null, propertiesToMatch, JsonParseFlagEnum.ParseMetadata)).
-                thenReturn(Either.left(allResourcesToDelete));
-        doReturn(Either.left(toscaElement)).when(topologyTemplateOperationMock).getToscaElement(eq(service1), any(ComponentParametersView.class));
-        when(topologyTemplateOperationMock.
-                getComponentByLabelAndId(serviceUid, ToscaElementTypeEnum.TOPOLOGY_TEMPLATE, JsonParseFlagEnum.ParseAll)).
-                thenReturn(Either.left(service1));
+        when(janusGraphDaoMock.findAllVertexByInvariantUuid(invariantUUID, Collections.emptyMap())).
+                thenReturn(allResourcesToDelete);
         when(janusGraphDaoMock.getParentVertices(eq(service1), any(), eq(JsonParseFlagEnum.ParseAll))).
                 thenReturn(Either.right(JanusGraphOperationStatus.OK));
         when(graphLockOperationMock.lockComponent(service1.getUniqueId(), NodeTypeEnum.Service)).
@@ -504,18 +497,8 @@ public class ToscaOperationFacadeTest {
         Map<GraphPropertyEnum, Object> propertiesToMatch = new EnumMap<>(GraphPropertyEnum.class);
         propertiesToMatch.put(GraphPropertyEnum.INVARIANT_UUID, invariantUUID);
 
-        when(janusGraphDaoMock.getByCriteria(null, propertiesToMatch, JsonParseFlagEnum.ParseMetadata)).
-                thenReturn(Either.left(allResourcesToDelete));
-        doReturn(Either.left(toscaElement)).when(topologyTemplateOperationMock).
-                getToscaElement(eq(service), any(ComponentParametersView.class));
-        doReturn(Either.left(toscaElement2)).when(topologyTemplateOperationMock).
-                getToscaElement(eq(serviceV2), any(ComponentParametersView.class));
-        when(topologyTemplateOperationMock.
-                getComponentByLabelAndId(serviceUid, ToscaElementTypeEnum.TOPOLOGY_TEMPLATE, JsonParseFlagEnum.ParseAll)).
-                thenReturn(Either.left(service));
-        when(topologyTemplateOperationMock.
-                getComponentByLabelAndId(service2Uid, ToscaElementTypeEnum.TOPOLOGY_TEMPLATE, JsonParseFlagEnum.ParseAll)).
-                thenReturn(Either.left(serviceV2));
+        when(janusGraphDaoMock.findAllVertexByInvariantUuid(invariantUUID, Collections.emptyMap())).
+                thenReturn(allResourcesToDelete);
         when(janusGraphDaoMock.getParentVertices(any(GraphVertex.class), any(), eq(JsonParseFlagEnum.ParseAll))).
                 thenReturn(Either.right(JanusGraphOperationStatus.OK));
         when(graphLockOperationMock.lockComponent(service.getUniqueId(), NodeTypeEnum.Service)).
@@ -537,31 +520,38 @@ public class ToscaOperationFacadeTest {
         toscaElement.setUniqueId(serviceUid);
         List<GraphVertex> allResourcesToDelete = new ArrayList<>();
         allResourcesToDelete.add(service);
-        Map<GraphPropertyEnum, Object> propertiesToMatch = new EnumMap<>(GraphPropertyEnum.class);
-        propertiesToMatch.put(GraphPropertyEnum.INVARIANT_UUID, invariantUUID);
 
-        when(janusGraphDaoMock.getByCriteria(null, propertiesToMatch, JsonParseFlagEnum.ParseMetadata)).
-                thenReturn(Either.left(allResourcesToDelete));
-        doReturn(Either.left(toscaElement)).when(topologyTemplateOperationMock).getToscaElement(eq(service), any(ComponentParametersView.class));
-        when(topologyTemplateOperationMock.getComponentByLabelAndId(serviceUid, ToscaElementTypeEnum.TOPOLOGY_TEMPLATE, JsonParseFlagEnum.ParseAll)).
-                thenReturn(Either.left(service));
+        when(janusGraphDaoMock.findAllVertexByInvariantUuid(invariantUUID, Collections.emptyMap())).
+                thenReturn(allResourcesToDelete);
         when(janusGraphDaoMock.getParentVertices(eq(service), any(), eq(JsonParseFlagEnum.ParseAll))).
                 thenReturn(Either.right(JanusGraphOperationStatus.OK));
         when(graphLockOperationMock.lockComponent(service.getUniqueId(), NodeTypeEnum.Service)).
                 thenReturn(StorageOperationStatus.OK);
         when(topologyTemplateOperationMock.deleteToscaElement(service))
                 .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
-        assertThrows(StorageException.class, () -> testInstance.deleteService(invariantUUID, true));
+        StorageException actualException = assertThrows(StorageException.class, () -> testInstance.deleteService(invariantUUID, false));
+        assertEquals(StorageOperationStatus.NOT_FOUND, actualException.getStorageOperationStatus());
+        assertEquals(0, actualException.getParams().length);
     }
 
     @Test
     public void testDeleteService_NotFound() {
         String invariantUUID = "12345";
-        Map<GraphPropertyEnum, Object> propertiesToMatch = new EnumMap<>(GraphPropertyEnum.class);
-        propertiesToMatch.put(GraphPropertyEnum.INVARIANT_UUID, invariantUUID);
-        when(janusGraphDaoMock.getByCriteria(null, propertiesToMatch, JsonParseFlagEnum.ParseMetadata)).
-                thenReturn(Either.right(JanusGraphOperationStatus.NOT_FOUND));
-        assertThrows(StorageException.class, () -> testInstance.deleteService(invariantUUID, true));
+        when(janusGraphDaoMock.findAllVertexByInvariantUuid(invariantUUID, Collections.emptyMap())).
+                thenReturn(Collections.emptyList());
+        assertEquals(0, testInstance.deleteService(invariantUUID, true).size());
+    }
+
+    @Test
+    public void testDeleteService_GeneralErrorInJanusGraphDao() {
+        String invariantUUID = "12345";
+        JanusGraphException janusException = new JanusGraphException(JanusGraphOperationStatus.GENERAL_ERROR, "General error");
+        when(janusGraphDaoMock.findAllVertexByInvariantUuid(invariantUUID, Collections.emptyMap())).
+                thenThrow(janusException);
+
+        StorageException actualException = assertThrows(StorageException.class, () -> testInstance.deleteService(invariantUUID, false));
+        assertEquals(StorageOperationStatus.GENERAL_ERROR, actualException.getStorageOperationStatus());
+        assertEquals(0, actualException.getParams().length);
     }
 
     @Test
@@ -1213,6 +1203,129 @@ public class ToscaOperationFacadeTest {
             .deleteToscaDataElement(anyString(), eq(EdgeLabelEnum.OUTPUTS), eq(VertexTypeEnum.OUTPUTS), anyString(), eq(JsonPresentationFields.NAME));
     }
 
+    @Test
+    public void testDeleteResource_ResourceInUse() {
+        GraphVertex graphVertex = getTopologyTemplateVertex();
+        String invariantUuid = "1";
+        graphVertex.setUniqueId(invariantUuid);
+        GraphVertex usingComponent = getTopologyTemplateVertex();
+        usingComponent.setUniqueId("2");
+        Map<String, Object> metadataJson = new HashMap<>();
+        metadataJson.put("COMPONENT_TYPE", "SERVICE");
+        metadataJson.put("NAME", "serviceName");
+        usingComponent.setMetadataJson(metadataJson);
+        List<GraphVertex> inUseBy = new ArrayList<>();
+        inUseBy.add(usingComponent);
+        Map<String,Object> metadata = new HashMap<>();
+        metadata.put("ex1", new Object());
+        graphVertex.setMetadataJson(metadata);
+        ToscaElement toscaElement = getToscaElementForTest();
+        toscaElement.setUniqueId(invariantUuid);
+        List<GraphVertex> allResourcesToDelete = new ArrayList<>();
+        allResourcesToDelete.add(graphVertex);
+
+        when(janusGraphDaoMock.findAllVertexByInvariantUuid(invariantUuid, Collections.emptyMap())).
+                thenReturn(allResourcesToDelete);
+        when(janusGraphDaoMock.getParentVertices(any(GraphVertex.class), any(), eq(JsonParseFlagEnum.ParseAll))).thenReturn(Either.left(inUseBy));
+
+        final OperationException actualException = assertThrows(OperationException.class, () -> testInstance.deleteComponent(invariantUuid, NodeTypeEnum.Resource, true));
+        assertEquals(actualException.getActionStatus(), ActionStatus.COMPONENT_IN_USE_BY_ANOTHER_COMPONENT);
+    }
+
+    @Test
+    public void testDeleteResource_WithTwoVersions() {
+        GraphVertex graphVertex = getTopologyTemplateVertex();
+        String invariantUuid = "1";
+        graphVertex.setUniqueId(invariantUuid);
+        Map<String,Object> metadata1 = new HashMap<>();
+        metadata1.put("ex1", new Object());
+        graphVertex.setMetadataJson(metadata1);
+        ToscaElement toscaElement1 = getToscaElementForTest();
+        toscaElement1.setUniqueId(invariantUuid);
+        ToscaElement toscaElement2 = getToscaElementForTest();
+        toscaElement2.setUniqueId("2");
+        GraphVertex graphVertex2 = getTopologyTemplateVertex();
+        graphVertex2.setUniqueId("2");
+        Map<String,Object> metadata2 = new HashMap<>();
+        metadata2.put("ex2", new Object());
+        graphVertex.setMetadataJson(metadata2);
+        List<GraphVertex> parentVertices = new ArrayList<>();
+        parentVertices.add(graphVertex2);
+        List<String> affectedComponentIds = new ArrayList<>();
+        affectedComponentIds.add(graphVertex.getUniqueId());
+        affectedComponentIds.add(graphVertex2.getUniqueId());
+
+        when(graphLockOperationMock.lockComponent(graphVertex.getUniqueId(), NodeTypeEnum.Resource)).
+                thenReturn(StorageOperationStatus.OK);
+        when(graphLockOperationMock.lockComponent(graphVertex2.getUniqueId(), NodeTypeEnum.Resource)).
+                thenReturn(StorageOperationStatus.OK);
+        when(topologyTemplateOperationMock.deleteToscaElement(graphVertex)).thenReturn(Either.left(toscaElement1));
+        when(topologyTemplateOperationMock.deleteToscaElement(graphVertex2)).thenReturn(Either.left(toscaElement2));
+        List<GraphVertex> allResourcesToDelete = new ArrayList<>();
+        allResourcesToDelete.add(graphVertex);
+        allResourcesToDelete.add(graphVertex2);
+        when(janusGraphDaoMock.findAllVertexByInvariantUuid(invariantUuid, Collections.emptyMap())).
+                thenReturn(allResourcesToDelete);
+        when(janusGraphDaoMock.getParentVertices(any(GraphVertex.class), any(), any())).thenReturn(Either.right(JanusGraphOperationStatus.OK));
+        assertEquals(affectedComponentIds, testInstance.deleteComponent(invariantUuid, NodeTypeEnum.Resource, false));
+    }
+
+    @Test
+    public void testDeleteResource_WithOneVersion() {
+        GraphVertex graphVertex = getTopologyTemplateVertex();
+        graphVertex.setUniqueId("1");
+        Map<String,Object> metadata = new HashMap<>();
+        metadata.put("ex1", new Object());
+        graphVertex.setMetadataJson(metadata);
+        ToscaElement toscaElement = getToscaElementForTest();
+        List<String> affectedComponentIds = new ArrayList<>();
+        affectedComponentIds.add(graphVertex.getUniqueId());
+        when(graphLockOperationMock.lockComponent(graphVertex.getUniqueId(), NodeTypeEnum.Resource)).
+                thenReturn(StorageOperationStatus.OK);
+        when(topologyTemplateOperationMock.deleteToscaElement(graphVertex)).thenReturn(Either.left(toscaElement));
+        List<GraphVertex> allResourcesToDelete = new ArrayList<>();
+        allResourcesToDelete.add(graphVertex);
+        when(janusGraphDaoMock.findAllVertexByInvariantUuid(graphVertex.getUniqueId(), Collections.emptyMap())).
+                thenReturn(allResourcesToDelete);
+        when(janusGraphDaoMock.getParentVertices(any(GraphVertex.class), any(), any())).thenReturn(Either.right(JanusGraphOperationStatus.OK));
+        assertEquals(affectedComponentIds, testInstance.deleteComponent("1", NodeTypeEnum.Resource, true));
+    }
+
+    @Test
+    public void testDeleteResource_FailDelete() {
+        Map<GraphPropertyEnum, Object> metadataProperties = new HashMap<>();
+        metadataProperties.put(GraphPropertyEnum.NAME, "graphVertex");
+        GraphVertex graphVertex = getTopologyTemplateVertex();
+        String invariantUUID = "1";
+        graphVertex.setUniqueId(invariantUUID);
+        graphVertex.setMetadataProperties(metadataProperties);
+        ToscaElement toscaElement1 = getToscaElementForTest();
+        toscaElement1.setUniqueId(invariantUUID);
+        List<String> affectedComponentIds = new ArrayList<>();
+        affectedComponentIds.add(graphVertex.getUniqueId());
+        List<GraphVertex> allResourcesToDelete = new ArrayList<>();
+        allResourcesToDelete.add(graphVertex);
+
+        when(janusGraphDaoMock.findAllVertexByInvariantUuid(graphVertex.getUniqueId(), Collections.emptyMap())).
+                thenReturn(allResourcesToDelete);
+        when(graphLockOperationMock.lockComponent(graphVertex.getUniqueId(), NodeTypeEnum.Resource)).
+                thenReturn(StorageOperationStatus.OK);
+        when(topologyTemplateOperationMock.deleteToscaElement(graphVertex))
+                .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
+        when(janusGraphDaoMock.getParentVertices(any(GraphVertex.class), any(), any())).thenReturn(Either.right(JanusGraphOperationStatus.OK));
+        StorageException actualException = assertThrows(StorageException.class, () -> testInstance.deleteComponent(invariantUUID, NodeTypeEnum.Resource, false));
+        assertEquals(StorageOperationStatus.NOT_FOUND, actualException.getStorageOperationStatus());
+        assertEquals(0, actualException.getParams().length);
+    }
+
+    @Test
+    public void testDeleteResource_NotFound() {
+        String invariantUUID = "12345";
+        when(janusGraphDaoMock.findAllVertexByInvariantUuid(invariantUUID, Collections.emptyMap())).
+                thenReturn(Collections.emptyList());
+        assertEquals(0, testInstance.deleteComponent(invariantUUID, NodeTypeEnum.Resource, true).size());
+    }
+
     private StorageOperationStatus associateRequirementsToServiceWithStatus(StorageOperationStatus status) {
         Map<String, ListRequirementDataDefinition> requirementsMap = new HashedMap();
         String componentId = "componentid";
diff --git a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/DeleteActionEnum.java b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/DeleteActionEnum.java
new file mode 100644 (file)
index 0000000..0f0cac6
--- /dev/null
@@ -0,0 +1,27 @@
+/*-
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
+ */
+package org.openecomp.sdc.be.datatypes.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum DeleteActionEnum {
+    MARK_AS_DELETE("MARK_AS_DELETE"),
+    DELETE("DELETE");
+
+    private final String value;
+}