diff options
Diffstat (limited to 'catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ServiceOperation.java')
-rw-r--r-- | catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ServiceOperation.java | 647 |
1 files changed, 185 insertions, 462 deletions
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ServiceOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ServiceOperation.java index 18229f9245..e503c787b5 100644 --- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ServiceOperation.java +++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ServiceOperation.java @@ -20,17 +20,9 @@ package org.openecomp.sdc.be.model.operations.impl; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.function.Predicate; -import java.util.stream.Collectors; - -import javax.annotation.Resource; - +import com.thinkaurelius.titan.core.TitanGraph; +import com.thinkaurelius.titan.core.TitanVertex; +import fj.data.Either; import org.apache.commons.lang3.tuple.ImmutablePair; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.graph.datatype.GraphEdge; @@ -43,18 +35,7 @@ import org.openecomp.sdc.be.datatypes.components.ServiceMetadataDataDefinition; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.datatypes.enums.FilterKeyEnum; import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; -import org.openecomp.sdc.be.model.AdditionalInformationDefinition; -import org.openecomp.sdc.be.model.ArtifactDefinition; -import org.openecomp.sdc.be.model.Component; -import org.openecomp.sdc.be.model.ComponentInstance; -import org.openecomp.sdc.be.model.ComponentInstanceInput; -import org.openecomp.sdc.be.model.ComponentParametersView; -import org.openecomp.sdc.be.model.DistributionStatusEnum; -import org.openecomp.sdc.be.model.InputDefinition; -import org.openecomp.sdc.be.model.LifecycleStateEnum; -import org.openecomp.sdc.be.model.Service; -import org.openecomp.sdc.be.model.ServiceMetadataDefinition; -import org.openecomp.sdc.be.model.User; +import org.openecomp.sdc.be.model.*; import org.openecomp.sdc.be.model.category.CategoryDefinition; import org.openecomp.sdc.be.model.operations.api.IArtifactOperation; import org.openecomp.sdc.be.model.operations.api.IElementOperation; @@ -69,11 +50,19 @@ import org.openecomp.sdc.common.util.ValidationUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.thinkaurelius.titan.core.TitanGraph; - -import fj.data.Either; +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.Predicate; +import java.util.stream.Collectors; @org.springframework.stereotype.Component("service-operation") +@Deprecated public class ServiceOperation extends ComponentOperation implements IServiceOperation { private static Logger log = LoggerFactory.getLogger(ServiceOperation.class.getName()); @@ -110,7 +99,7 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper if (findUser.isRight()) { TitanOperationStatus status = findUser.right().value(); - log.error("Cannot find user " + userId + " in the graph. status is " + status); + log.error("Cannot find user {} in the graph. status is {}",userId,status); return sendError(status, StorageOperationStatus.USER_NOT_FOUND); } @@ -121,7 +110,7 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper findUser = findUser(updaterUserId); if (findUser.isRight()) { TitanOperationStatus status = findUser.right().value(); - log.error("Cannot find user " + userId + " in the graph. status is " + status); + log.error("Cannot find user {} in the graph. status is {}",userId, status); return sendError(status, StorageOperationStatus.USER_NOT_FOUND); } else { updaterUserData = findUser.left().value(); @@ -134,17 +123,13 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper String categoryName = categories.get(0).getName(); if (categoryName != null) { - Either<CategoryData, StorageOperationStatus> categoryResult = elementOperation - .getNewCategoryData(categoryName, NodeTypeEnum.ServiceNewCategory, CategoryData.class); + Either<CategoryData, StorageOperationStatus> categoryResult = elementOperation.getNewCategoryData(categoryName, NodeTypeEnum.ServiceNewCategory, CategoryData.class); if (categoryResult.isRight()) { StorageOperationStatus status = categoryResult.right().value(); /* - * TitanOperationStatus titanStatus = null; - * if(ActionStatus.CATEGORY_NOT_FOUND.equals(status)){ - * titanStatus = TitanOperationStatus.NOT_FOUND; }else{ - * titanStatus = TitanOperationStatus.GENERAL_ERROR; } + * TitanOperationStatus titanStatus = null; if(ActionStatus.CATEGORY_NOT_FOUND.equals(status)){ titanStatus = TitanOperationStatus.NOT_FOUND; }else{ titanStatus = TitanOperationStatus.GENERAL_ERROR; } */ - log.error("Cannot find category " + categoryName + " in the graph. status is " + status); + log.error("Cannot find category {} in the graph. status is {}",categoryName,status); return Either.right(status); } @@ -156,20 +141,17 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper return Either.right(storageOperationStatus); } - log.debug("try to create service node on graph for id " + serviceData.getUniqueId()); - Either<ServiceMetadataData, TitanOperationStatus> createNode = titanGenericDao.createNode(serviceData, - ServiceMetadataData.class); + log.debug("try to create service node on graph for id {}",serviceData.getUniqueId()); + Either<ServiceMetadataData, TitanOperationStatus> createNode = titanGenericDao.createNode(serviceData, ServiceMetadataData.class); if (createNode.isRight()) { TitanOperationStatus status = createNode.right().value(); - log.error("Error returned after creating service data node " + serviceData + ". status returned is " - + status); + log.error("Error returned after creating service data node {}. status returned is {}",serviceData,status); result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status)); return result; } - log.debug("create service node created on graph for id " + serviceData.getUniqueId()); + log.debug("create service node created on graph for id {}",serviceData.getUniqueId()); - TitanOperationStatus associateMetadata = associateMetadataToComponent(serviceData, creatorUserData, - updaterUserData, null, null); + TitanOperationStatus associateMetadata = associateMetadataToComponent(serviceData, creatorUserData, updaterUserData, null, null); if (associateMetadata != TitanOperationStatus.OK) { result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(associateMetadata)); return result; @@ -194,23 +176,20 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper allArtifacts.putAll(service.getToscaArtifacts()); } - StorageOperationStatus associateArtifacts = associateArtifactsToComponent(NodeTypeEnum.Service, serviceData, - allArtifacts); + StorageOperationStatus associateArtifacts = associateArtifactsToComponent(NodeTypeEnum.Service, serviceData, allArtifacts); if (associateArtifacts != StorageOperationStatus.OK) { result = Either.right(associateArtifacts); return result; } - TitanOperationStatus associateInputs = associateInputsToComponent(NodeTypeEnum.Service, serviceData, - service.getInputs()); + TitanOperationStatus associateInputs = associateInputsToComponent(NodeTypeEnum.Service, serviceData, service.getInputs()); if (associateInputs != TitanOperationStatus.OK) { result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(associateInputs)); return result; } List<AdditionalInformationDefinition> additionalInformation = service.getAdditionalInformation(); - StorageOperationStatus addAdditionalInformation = addAdditionalInformationToService(uniqueId, - additionalInformation); + StorageOperationStatus addAdditionalInformation = addAdditionalInformationToService(uniqueId, additionalInformation); if (addAdditionalInformation != StorageOperationStatus.OK) { result = Either.right(addAdditionalInformation); return result; @@ -218,13 +197,13 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper result = this.getService(uniqueId, true); if (result.isRight()) { - log.error("Cannot get full service from the graph. status is " + result.right().value()); + log.error("Cannot get full service from the graph. status is {}", result.right().value()); return Either.right(result.right().value()); } if (log.isDebugEnabled()) { String json = prettyJson.toJson(result.left().value()); - log.debug("Service retrieved is " + json); + log.debug("Service retrieved is {}",json); } return result; @@ -242,24 +221,20 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper } } - private TitanOperationStatus associateMetadataCategoryToComponent(ServiceMetadataData serviceData, - CategoryData categoryData) { + private TitanOperationStatus associateMetadataCategoryToComponent(ServiceMetadataData serviceData, CategoryData categoryData) { Either<GraphRelation, TitanOperationStatus> result; if (categoryData != null) { result = titanGenericDao.createRelation(serviceData, categoryData, GraphEdgeLabels.CATEGORY, null); - log.debug("After associating component " + serviceData.getUniqueId() + " to category " + categoryData - + ". Edge type is " + GraphEdgeLabels.CATEGORY); + log.debug("After associating component {} to category {}. Edge type is {}",serviceData.getUniqueId(),categoryData,GraphEdgeLabels.CATEGORY); if (result.isRight()) { - log.error("Faield to associate component " + serviceData.getUniqueId() + " to category " + categoryData - + ". Edge type is " + GraphEdgeLabels.CATEGORY); + log.error("Faield to associate component {} to category {}. Edge type is {}",serviceData.getUniqueId(),categoryData,GraphEdgeLabels.CATEGORY); return result.right().value(); } } return TitanOperationStatus.OK; } - private StorageOperationStatus addAdditionalInformationToService(String resourceUniqueId, - List<AdditionalInformationDefinition> additionalInformation) { + private StorageOperationStatus addAdditionalInformationToService(String resourceUniqueId, List<AdditionalInformationDefinition> additionalInformation) { StorageOperationStatus result = null; @@ -267,13 +242,10 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper result = super.addAdditionalInformation(NodeTypeEnum.Service, resourceUniqueId, null); } else { if (additionalInformation.size() == 1) { - result = super.addAdditionalInformation(NodeTypeEnum.Service, resourceUniqueId, - additionalInformation.get(0)); + result = super.addAdditionalInformation(NodeTypeEnum.Service, resourceUniqueId, additionalInformation.get(0)); } else { result = StorageOperationStatus.BAD_REQUEST; - log.info( - "Cannot create resource with more than one additional information object. The number of received object is " - + additionalInformation.size()); + log.info("Cannot create resource with more than one additional information object. The number of received object is {}", additionalInformation.size()); } } return result; @@ -283,8 +255,7 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper return cloneService(other, version, null, inTransaction); } - public Either<Service, StorageOperationStatus> cloneService(Service other, String version, - LifecycleStateEnum targetLifecycle, boolean inTransaction) { + public Either<Service, StorageOperationStatus> cloneService(Service other, String version, LifecycleStateEnum targetLifecycle, boolean inTransaction) { Either<Service, StorageOperationStatus> result = null; try { @@ -292,28 +263,26 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper other.setVersion(version); other.setUniqueId(null); - Either<Integer, StorageOperationStatus> counterStatus = getComponentInstanceCoutner(origServiceId, - NodeTypeEnum.Service); + Either<Integer, StorageOperationStatus> counterStatus = getComponentInstanceCoutner(origServiceId, NodeTypeEnum.Service); if (counterStatus.isRight()) { StorageOperationStatus status = counterStatus.right().value(); - log.error("failed to get resource instance counter on service {}. status={}", origServiceId, - counterStatus); + log.error("failed to get resource instance counter on service {}. status={}", origServiceId, counterStatus); result = Either.right(status); return result; } Map<String, List<ComponentInstanceInput>> inputsValuesMap = new HashMap<String, List<ComponentInstanceInput>>(); List<InputDefinition> inputs = other.getInputs(); - if(inputs != null){ - for(InputDefinition input: inputs){ - - Either<List<ComponentInstanceInput>, TitanOperationStatus> inputStatus = inputOperation.getComponentInstanceInputsByInputId(input.getUniqueId()); - - if(inputStatus.isLeft()){ - if(inputStatus.left().value() != null) - inputsValuesMap.put(input.getName(), inputStatus.left().value()); - } + if (inputs != null) { + for (InputDefinition input : inputs) { + + Either<List<ComponentInstanceInput>, TitanOperationStatus> inputStatus = inputOperation + .getComponentInstanceInputsByInputId(input.getUniqueId()); + + if (inputStatus.isLeft() && inputStatus.left().value() != null) { + inputsValuesMap.put(input.getName(), inputStatus.left().value()); + } } - } + } Either<Service, StorageOperationStatus> createServiceMD = createService(other, true); @@ -333,19 +302,17 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper return result; } - Either<Integer, StorageOperationStatus> setResourceInstanceCounter = setComponentInstanceCounter( - service.getUniqueId(), NodeTypeEnum.Service, counterStatus.left().value(), true); + Either<Integer, StorageOperationStatus> setResourceInstanceCounter = setComponentInstanceCounter(service.getUniqueId(), NodeTypeEnum.Service, counterStatus.left().value(), true); if (setResourceInstanceCounter.isRight()) { StorageOperationStatus status = setResourceInstanceCounter.right().value(); - log.error("failed to set resource instance counter on service {}. status={}", service.getUniqueId(), - setResourceInstanceCounter); + log.error("failed to set resource instance counter on service {}. status={}", service.getUniqueId(), setResourceInstanceCounter); result = Either.right(status); return result; } result = this.getService(service.getUniqueId(), true); if (result.isRight()) { - log.error("Cannot get full service from the graph. status is " + result.right().value()); + log.error("Cannot get full service from the graph. status is {}", result.right().value()); return Either.right(result.right().value()); } @@ -369,22 +336,18 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper } private ServiceMetadataData getServiceMetaDataFromService(Service service) { - ServiceMetadataData serviceData = new ServiceMetadataData( - (ServiceMetadataDataDefinition) service.getComponentMetadataDefinition().getMetadataDataDefinition()); + ServiceMetadataData serviceData = new ServiceMetadataData((ServiceMetadataDataDefinition) service.getComponentMetadataDefinition().getMetadataDataDefinition()); if (service.getNormalizedName() == null || service.getNormalizedName().isEmpty()) { - serviceData.getMetadataDataDefinition() - .setNormalizedName(ValidationUtils.normaliseComponentName(service.getName())); + serviceData.getMetadataDataDefinition().setNormalizedName(ValidationUtils.normaliseComponentName(service.getName())); } if (service.getSystemName() == null || service.getSystemName().isEmpty()) { - serviceData.getMetadataDataDefinition() - .setSystemName(ValidationUtils.convertToSystemName(service.getName())); + serviceData.getMetadataDataDefinition().setSystemName(ValidationUtils.convertToSystemName(service.getName())); } return serviceData; } - private Either<Service, StorageOperationStatus> sendError(TitanOperationStatus status, - StorageOperationStatus statusIfNotFound) { + private Either<Service, StorageOperationStatus> sendError(TitanOperationStatus status, StorageOperationStatus statusIfNotFound) { Either<Service, StorageOperationStatus> result; if (status == TitanOperationStatus.NOT_FOUND) { result = Either.right(statusIfNotFound); @@ -406,128 +369,8 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper ComponentParametersView componentParametersView = new ComponentParametersView(); return getService(uniqueId, componentParametersView, inTransaction); } - // public Either<Service, StorageOperationStatus> getService(String - // uniqueId, boolean inTransaction) { - // - // Service service = null; - // Either<Service, StorageOperationStatus> result = null; - // try { - // - // NodeTypeEnum serviceNodeType = NodeTypeEnum.Service; - // NodeTypeEnum compInstNodeType = NodeTypeEnum.Resource; - // - // Either<ServiceMetadataData, StorageOperationStatus> getComponentByLabel = - // getComponentByLabelAndId(uniqueId, serviceNodeType, - // ServiceMetadataData.class); - // if (getComponentByLabel.isRight()) { - // result = Either.right(getComponentByLabel.right().value()); - // return result; - // } - // ServiceMetadataData serviceData = getComponentByLabel.left().value(); - // service = convertServiceDataToService(serviceData); - // - // TitanOperationStatus status = setComponentCreatorFromGraph(service, - // uniqueId, serviceNodeType); - // if (status != TitanOperationStatus.OK) { - // result = - // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status)); - // return result; - // } - // - // status = setComponentLastModifierFromGraph(service, uniqueId, - // serviceNodeType); - // if (status != TitanOperationStatus.OK) { - // result = - // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status)); - // return result; - // - // } - // status = setComponentCategoriesFromGraph(service); - // if (status != TitanOperationStatus.OK) { - // result = - // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status)); - // return result; - // - // } - // - // // status = setServicePropertiesFromGraph(uniqueId, resource, vertex); - // // if (status != TitanOperationStatus.OK) { - // // return - // Either.right(TitanStatusConverter.convertTitanStatusToStorageStatus(status)); - // // } - // - // StorageOperationStatus storageStatus = setArtifactFromGraph(uniqueId, - // service, serviceNodeType, artifactOperation); - // if (storageStatus != StorageOperationStatus.OK) { - // result = Either.right(storageStatus); - // return result; - // } - // - // status = setComponentInstancesFromGraph(uniqueId, service, - // serviceNodeType, compInstNodeType); - // if (status != TitanOperationStatus.OK) { - // result = - // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status)); - // return result; - // - // } - // - // status = setComponentInstancesPropertiesFromGraph(uniqueId, service); - // if (status != TitanOperationStatus.OK) { - // result = - // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status)); - // return result; - // } - // - // status = setCapabilitiesFromGraph(uniqueId, service, - // NodeTypeEnum.Service); - // if (status != TitanOperationStatus.OK) { - // result = - // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status)); - // return result; - // } - // - // status = setRequirementsFromGraph( uniqueId, service, - // NodeTypeEnum.Service); - // if (status != TitanOperationStatus.OK) { - // result = - // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status)); - // return result; - // } - // - // status = setAllVersions(service); - // if (status != TitanOperationStatus.OK) { - // return - // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status)); - // } - // - // status = setServiceAdditionalInformationFromGraph(uniqueId, service); - // if (status != TitanOperationStatus.OK) { - // return - // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status)); - // } - // - // status = setGroupsFromGraph(uniqueId, service, NodeTypeEnum.Resource); - // if (status != TitanOperationStatus.OK) { - // return - // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status)); - // } - // - // result = Either.left(service); - // return result; - // } finally { - // if (false == inTransaction) { - // if (result == null || result.isRight()) { - // titanGenericDao.rollback(); - // } else { - // titanGenericDao.commit(); - // } - // } - // } - // } - public Either<Service, StorageOperationStatus> getService(String uniqueId, - ComponentParametersView componentParametersView, boolean inTransaction) { + public Either<Service, StorageOperationStatus> getService(String uniqueId, ComponentParametersView componentParametersView, boolean inTransaction) { Service service = null; Either<Service, StorageOperationStatus> result = null; @@ -536,8 +379,7 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper NodeTypeEnum serviceNodeType = NodeTypeEnum.Service; NodeTypeEnum compInstNodeType = NodeTypeEnum.Resource; - Either<ServiceMetadataData, StorageOperationStatus> getComponentByLabel = getComponentByLabelAndId(uniqueId, - serviceNodeType, ServiceMetadataData.class); + Either<ServiceMetadataData, StorageOperationStatus> getComponentByLabel = getComponentByLabelAndId(uniqueId, serviceNodeType, ServiceMetadataData.class); if (getComponentByLabel.isRight()) { result = Either.right(getComponentByLabel.right().value()); return result; @@ -546,12 +388,10 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper // Try to fetch resource from the cache. The resource will be // fetched only if the time on the cache equals to // the time on the graph. - Either<Service, ActionStatus> componentFromCacheIfUpToDate = this.getComponentFromCacheIfUpToDate(uniqueId, - serviceData, componentParametersView, Service.class, ComponentTypeEnum.SERVICE); + Either<Service, ActionStatus> componentFromCacheIfUpToDate = this.getComponentFromCacheIfUpToDate(uniqueId, serviceData, componentParametersView, Service.class, ComponentTypeEnum.SERVICE); if (componentFromCacheIfUpToDate.isLeft()) { Service cachedService = componentFromCacheIfUpToDate.left().value(); - log.debug("Service {} with uid {} was fetched from cache.", cachedService.getName(), - cachedService.getUniqueId()); + log.debug("Service {} with uid {} was fetched from cache.", cachedService.getName(), cachedService.getUniqueId()); return Either.left(cachedService); } @@ -580,25 +420,15 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper } } - // status = setServicePropertiesFromGraph(uniqueId, resource, - // vertex); - // if (status != TitanOperationStatus.OK) { - // return - // Either.right(TitanStatusConverter.convertTitanStatusToStorageStatus(status)); - // } - if (false == componentParametersView.isIgnoreArtifacts()) { - StorageOperationStatus storageStatus = setArtifactFromGraph(uniqueId, service, serviceNodeType, - artifactOperation); + StorageOperationStatus storageStatus = setArtifactFromGraph(uniqueId, service, serviceNodeType, artifactOperation); if (storageStatus != StorageOperationStatus.OK) { result = Either.right(storageStatus); return result; } } - if (false == componentParametersView.isIgnoreComponentInstances() - || false == componentParametersView.isIgnoreComponentInstancesProperties() - || false == componentParametersView.isIgnoreCapabilities() + if (false == componentParametersView.isIgnoreComponentInstances() || false == componentParametersView.isIgnoreComponentInstancesProperties() || false == componentParametersView.isIgnoreCapabilities() || false == componentParametersView.isIgnoreRequirements()) { status = setComponentInstancesFromGraph(uniqueId, service, serviceNodeType, compInstNodeType); if (status != TitanOperationStatus.OK) { @@ -608,7 +438,7 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper } } if (false == componentParametersView.isIgnoreComponentInstancesProperties()) { - status = setComponentInstancesPropertiesFromGraph(uniqueId, service); + status = setComponentInstancesPropertiesFromGraph(service); if (status != TitanOperationStatus.OK) { result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status)); return result; @@ -650,7 +480,7 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper if (false == componentParametersView.isIgnoreInputs()) { status = setComponentInputsFromGraph(uniqueId, service, true); if (status != TitanOperationStatus.OK) { - log.error("Failed to set inputs of resource " + uniqueId + ". status is " + status); + log.error("Failed to set inputs of resource {}. status is {}",uniqueId,status); return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status)); } @@ -795,19 +625,17 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper TitanOperationStatus setComponentCategoriesFromGraph(Component service) { String uniqueId = service.getUniqueId(); - Either<List<ImmutablePair<CategoryData, GraphEdge>>, TitanOperationStatus> parentNode = titanGenericDao - .getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Service), uniqueId, - GraphEdgeLabels.CATEGORY, NodeTypeEnum.ServiceNewCategory, CategoryData.class); + Either<List<ImmutablePair<CategoryData, GraphEdge>>, TitanOperationStatus> parentNode = titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Service), uniqueId, GraphEdgeLabels.CATEGORY, + NodeTypeEnum.ServiceNewCategory, CategoryData.class); if (parentNode.isRight()) { return parentNode.right().value(); } List<ImmutablePair<CategoryData, GraphEdge>> listValue = parentNode.left().value(); if (log.isDebugEnabled()) - log.debug("Result after looking for category nodes pointed by service {}. status is {}", uniqueId, - listValue); + log.debug("Result after looking for category nodes pointed by service {}. status is {}", uniqueId, listValue); if (listValue.size() > 1) { - log.error("Multiple edges foud between resource " + uniqueId + " to category nodes."); + log.error("Multiple edges foud between resource {} to category nodes.",uniqueId); } ImmutablePair<CategoryData, GraphEdge> value = listValue.get(0); if (log.isDebugEnabled()) @@ -836,59 +664,52 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper Either<TitanGraph, TitanOperationStatus> graphResult = titanGenericDao.getGraph(); if (graphResult.isRight()) { - result = Either - .right(DaoStatusConverter.convertTitanStatusToStorageStatus(graphResult.right().value())); + result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(graphResult.right().value())); return result; } - Either<ServiceMetadataData, TitanOperationStatus> serviceNode = titanGenericDao.getNode( - UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Service), serviceId, ServiceMetadataData.class); + Either<ServiceMetadataData, TitanOperationStatus> serviceNode = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Service), serviceId, ServiceMetadataData.class); if (serviceNode.isRight()) { TitanOperationStatus status = serviceNode.right().value(); - log.error("Failed to find service " + serviceId + ". status is " + status); + log.error("Failed to find service {}. status is {}",serviceId,status); return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status)); } Either<Service, StorageOperationStatus> serviceRes = getService(serviceId, true); if (serviceRes.isRight()) { StorageOperationStatus status = serviceRes.right().value(); - log.error("Failed to find sevice " + serviceId + ".status is " + status); + log.error("Failed to find sevice {}.status is {}",serviceId,status); result = Either.right(status); return result; } Service service = serviceRes.left().value(); - Either<List<ComponentInstance>, StorageOperationStatus> deleteAllResourceInstancesRes = componentInstanceOperation - .deleteAllComponentInstances(serviceId, NodeTypeEnum.Service, true); - log.debug("After deleting resource instances under service " + serviceId + ".Result is " - + deleteAllResourceInstancesRes); + Either<List<ComponentInstance>, StorageOperationStatus> deleteAllResourceInstancesRes = componentInstanceOperation.deleteAllComponentInstances(serviceId, NodeTypeEnum.Service, true); + log.debug("After deleting resource instances under service {}.Result is {}",serviceId,deleteAllResourceInstancesRes); if (deleteAllResourceInstancesRes.isRight()) { StorageOperationStatus status = deleteAllResourceInstancesRes.right().value(); if (status != StorageOperationStatus.NOT_FOUND) { - log.error( - "Failed to delete resource instances under service " + serviceId + " .status is " + status); + log.error("Failed to delete resource instances under service {} .status is ",serviceId,status); result = Either.right(status); return result; } } - StorageOperationStatus removeArtifactsFromResource = removeArtifactsFromComponent(service, - NodeTypeEnum.Service); - log.debug("After deleting artifacts nodes in the graph. status is " + removeArtifactsFromResource); + StorageOperationStatus removeArtifactsFromResource = removeArtifactsFromComponent(service, NodeTypeEnum.Service); + log.debug("After deleting artifacts nodes in the graph. status is {}",removeArtifactsFromResource); if (!removeArtifactsFromResource.equals(StorageOperationStatus.OK)) { result = Either.right(removeArtifactsFromResource); return result; } StorageOperationStatus removeInputsFromResource = removeInputsFromComponent(NodeTypeEnum.Service, service); - log.debug("After deleting requirements nodes in the graph. status is " + removeInputsFromResource); + log.debug("After deleting requirements nodes in the graph. status is {}",removeInputsFromResource); if (removeInputsFromResource != StorageOperationStatus.OK) { result = Either.right(removeInputsFromResource); return result; } - Either<List<ImmutablePair<PropertyData, GraphEdge>>, TitanOperationStatus> deleteChildrenNodesRes = titanGenericDao - .deleteChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Service), serviceId, - GraphEdgeLabels.PROPERTY, NodeTypeEnum.Property, PropertyData.class); + Either<List<ImmutablePair<PropertyData, GraphEdge>>, TitanOperationStatus> deleteChildrenNodesRes = titanGenericDao.deleteChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Service), serviceId, GraphEdgeLabels.PROPERTY, + NodeTypeEnum.Property, PropertyData.class); if (deleteChildrenNodesRes.isRight()) { TitanOperationStatus status = deleteChildrenNodesRes.right().value(); @@ -898,27 +719,24 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper } } - StorageOperationStatus removeAdditionalInformationFromService = super.deleteAdditionalInformation( - NodeTypeEnum.Service, serviceId); - log.debug("After deleting additional information node in the graph. status is " - + removeAdditionalInformationFromService); + StorageOperationStatus removeAdditionalInformationFromService = super.deleteAdditionalInformation(NodeTypeEnum.Service, serviceId); + log.debug("After deleting additional information node in the graph. status is {}",removeAdditionalInformationFromService); if (!removeAdditionalInformationFromService.equals(StorageOperationStatus.OK)) { result = Either.right(removeAdditionalInformationFromService); return result; } StorageOperationStatus removeGroupsFromService = super.deleteGroups(NodeTypeEnum.Service, serviceId); - log.debug("After deleting group nodes in the graph. status is " + removeGroupsFromService); + log.debug("After deleting group nodes in the graph. status is {}",removeGroupsFromService); if (!removeGroupsFromService.equals(StorageOperationStatus.OK)) { result = Either.right(removeGroupsFromService); return result; } - Either<ServiceMetadataData, TitanOperationStatus> deleteServiceNodeRes = titanGenericDao - .deleteNode(serviceNode.left().value(), ServiceMetadataData.class); + Either<ServiceMetadataData, TitanOperationStatus> deleteServiceNodeRes = titanGenericDao.deleteNode(serviceNode.left().value(), ServiceMetadataData.class); if (deleteServiceNodeRes.isRight()) { TitanOperationStatus status = deleteServiceNodeRes.right().value(); - log.error("Failed to delete service node " + serviceId + ". status is " + status); + log.error("Failed to delete service node {}. status is {}",serviceId, status); result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status)); return result; } @@ -946,8 +764,7 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper } private Service convertServiceDataToService(ServiceMetadataData serviceData) { - ServiceMetadataDefinition serviceMetadataDefinition = new ServiceMetadataDefinition( - (ServiceMetadataDataDefinition) serviceData.getMetadataDataDefinition()); + ServiceMetadataDefinition serviceMetadataDefinition = new ServiceMetadataDefinition((ServiceMetadataDataDefinition) serviceData.getMetadataDataDefinition()); Service service = new Service(serviceMetadataDefinition); @@ -964,12 +781,11 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper return Either.left(clazz.cast(component.left().value())); } + @Override @SuppressWarnings("unchecked") - public Either<List<Service>, StorageOperationStatus> getFollowed(String userId, - Set<LifecycleStateEnum> lifecycleStates, Set<LifecycleStateEnum> lastStateStates, boolean inTransaction) { + public Either<List<Service>, StorageOperationStatus> getFollowed(String userId, Set<LifecycleStateEnum> lifecycleStates, Set<LifecycleStateEnum> lastStateStates, boolean inTransaction) { - return (Either<List<Service>, StorageOperationStatus>) (Either<?, StorageOperationStatus>) getFollowedComponent( - userId, lifecycleStates, lastStateStates, inTransaction, titanGenericDao, NodeTypeEnum.Service); + return (Either<List<Service>, StorageOperationStatus>) (Either<?, StorageOperationStatus>) getFollowedComponent(userId, lifecycleStates, lastStateStates, inTransaction, titanGenericDao, NodeTypeEnum.Service); } @SuppressWarnings("unchecked") @@ -978,24 +794,14 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper return (Either<T, StorageOperationStatus>) getService(id, inTransaction); } - // @Override - // public <T> Either<T, StorageOperationStatus> getComponent_tx(String id, - // boolean inTransaction) { - // return (Either<T, StorageOperationStatus>) getService_tx(id, - // inTransaction); - // } - @Override - public Either<Set<Service>, StorageOperationStatus> getCatalogData(Map<String, Object> propertiesToMatch, - boolean inTransaction) { - return getComponentCatalogData(NodeTypeEnum.Service, propertiesToMatch, Service.class, - ServiceMetadataData.class, inTransaction); + public Either<Set<Service>, StorageOperationStatus> getCatalogData(Map<String, Object> propertiesToMatch, boolean inTransaction) { + return getComponentCatalogData(NodeTypeEnum.Service, propertiesToMatch, Service.class, ServiceMetadataData.class, inTransaction); } @Override public Either<Service, StorageOperationStatus> updateService(Service service, boolean inTransaction) { - Either<Service, StorageOperationStatus> result = updateComponent(service, inTransaction, titanGenericDao, - Service.class, NodeTypeEnum.Service); + Either<Service, StorageOperationStatus> result = updateComponent(service, inTransaction, titanGenericDao, Service.class, NodeTypeEnum.Service); return result; } @@ -1008,8 +814,7 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper @SuppressWarnings("unchecked") @Override public Either<Component, StorageOperationStatus> deleteComponent(String id, boolean inTransaction) { - return (Either<Component, StorageOperationStatus>) (Either<?, StorageOperationStatus>) deleteService(id, - inTransaction); + return (Either<Component, StorageOperationStatus>) (Either<?, StorageOperationStatus>) deleteService(id, inTransaction); } @Override @@ -1023,8 +828,7 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper } @Override - public <T> Either<List<T>, StorageOperationStatus> getFilteredComponents(Map<FilterKeyEnum, String> filters, - boolean inTransaction) { + public <T> Either<List<T>, StorageOperationStatus> getFilteredComponents(Map<FilterKeyEnum, String> filters, boolean inTransaction) { Either<List<T>, StorageOperationStatus> components = null; String categoryName = filters.get(FilterKeyEnum.CATEGORY); @@ -1036,13 +840,10 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper } if (categoryName != null) { // primary filter - components = fetchByCategoryOrSubCategoryName(categoryName, NodeTypeEnum.ServiceNewCategory, - GraphEdgeLabels.CATEGORY.getProperty(), NodeTypeEnum.Service, inTransaction, - ServiceMetadataData.class); + components = fetchByCategoryOrSubCategoryName(categoryName, NodeTypeEnum.ServiceNewCategory, GraphEdgeLabels.CATEGORY.getProperty(), NodeTypeEnum.Service, inTransaction, ServiceMetadataData.class, null); if (components.isLeft() && distEnum != null) {// secondary filter Predicate<T> statusFilter = p -> ((Service) p).getDistributionStatus().equals(distEnum); - return Either - .left(components.left().value().stream().filter(statusFilter).collect(Collectors.toList())); + return Either.left(components.left().value().stream().filter(statusFilter).collect(Collectors.toList())); } filters.remove(FilterKeyEnum.DISTRIBUTION_STATUS); return components; @@ -1054,69 +855,56 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper return components; } - private <T> Either<List<T>, StorageOperationStatus> fetchByDistributionStatus(String status, - boolean inTransaction) { + private <T> Either<List<T>, StorageOperationStatus> fetchByDistributionStatus(String status, boolean inTransaction) { Map<String, Object> props = new HashMap<String, Object>(); props.put(GraphPropertiesDictionary.DISTRIBUTION_STATUS.getProperty(), status); props.put(GraphPropertiesDictionary.IS_HIGHEST_VERSION.getProperty(), true); - return (Either<List<T>, StorageOperationStatus>) (Either<?, StorageOperationStatus>) getServiceListByCriteria( - props, inTransaction); + return (Either<List<T>, StorageOperationStatus>) (Either<?, StorageOperationStatus>) getServiceListByCriteria(props, inTransaction); } @SuppressWarnings("unchecked") @Override - public Either<List<Service>, StorageOperationStatus> getTesterFollowed(String userId, - Set<LifecycleStateEnum> lifecycleStates, boolean inTransaction) { - return (Either<List<Service>, StorageOperationStatus>) (Either<?, StorageOperationStatus>) getTesterFollowedComponent( - userId, lifecycleStates, inTransaction, NodeTypeEnum.Service); + public Either<List<Service>, StorageOperationStatus> getTesterFollowed(String userId, Set<LifecycleStateEnum> lifecycleStates, boolean inTransaction) { + return (Either<List<Service>, StorageOperationStatus>) (Either<?, StorageOperationStatus>) getTesterFollowedComponent(userId, lifecycleStates, inTransaction, NodeTypeEnum.Service); } - public Either<Service, StorageOperationStatus> updateDestributionStatus(Service service, User user, - DistributionStatusEnum distributionStatus) { + @Override + public Either<Service, StorageOperationStatus> updateDestributionStatus(Service service, User user, DistributionStatusEnum distributionStatus) { String userId = user.getUserId(); Either<UserData, TitanOperationStatus> findUser = findUser(userId); if (findUser.isRight()) { TitanOperationStatus status = findUser.right().value(); - log.error("Cannot find user " + userId + " in the graph. status is " + status); + log.error("Cannot find user {} in the graph. status is {}", userId, status); return sendError(status, StorageOperationStatus.USER_NOT_FOUND); } UserData userData = findUser.left().value(); - Either<ServiceMetadataData, TitanOperationStatus> serviceMetadataDataRequeset = titanGenericDao.getNode( - UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Service), service.getUniqueId(), - ServiceMetadataData.class); + Either<ServiceMetadataData, TitanOperationStatus> serviceMetadataDataRequeset = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Service), service.getUniqueId(), ServiceMetadataData.class); if (serviceMetadataDataRequeset.isRight()) { TitanOperationStatus status = serviceMetadataDataRequeset.right().value(); - log.error("Cannot find service " + service.getUniqueId() + " in the graph. status is " + status); + log.error("Cannot find service {} in the graph. status is {}",service.getUniqueId(),status); return sendError(status, StorageOperationStatus.NOT_FOUND); } ServiceMetadataData serviceMetadataData = serviceMetadataDataRequeset.left().value(); StorageOperationStatus result = StorageOperationStatus.OK; - Either<GraphRelation, TitanOperationStatus> deleteIncomingRelation = deleteLastDistributionModifierRelation( - service); - if (deleteIncomingRelation.isRight() - && deleteIncomingRelation.right().value() != TitanOperationStatus.NOT_FOUND) { - log.error("Failed to delete user from component " + service.getUniqueId() + ". Edge type is " - + GraphEdgeLabels.LAST_DISTRIBUTION_STATE_MODIFAIER); + Either<GraphRelation, TitanOperationStatus> deleteIncomingRelation = deleteLastDistributionModifierRelation(service); + if (deleteIncomingRelation.isRight() && deleteIncomingRelation.right().value() != TitanOperationStatus.NOT_FOUND) { + log.error("Failed to delete user from component {}. Edge type is {}",service.getUniqueId(),GraphEdgeLabels.LAST_DISTRIBUTION_STATE_MODIFAIER); result = DaoStatusConverter.convertTitanStatusToStorageStatus(deleteIncomingRelation.right().value()); return Either.right(result); } - Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(userData, - serviceMetadataData, GraphEdgeLabels.LAST_DISTRIBUTION_STATE_MODIFAIER, null); - log.debug("After associating user " + userData + " to component " + serviceMetadataData.getUniqueId() - + ". Edge type is " + GraphEdgeLabels.LAST_DISTRIBUTION_STATE_MODIFAIER); + Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(userData, serviceMetadataData, GraphEdgeLabels.LAST_DISTRIBUTION_STATE_MODIFAIER, null); + log.debug("After associating user {} to component {}. Edge type is {}",userData,serviceMetadataData.getUniqueId(),GraphEdgeLabels.LAST_DISTRIBUTION_STATE_MODIFAIER); if (createRelation.isRight()) { - log.error("Failed to associate user " + userData + " to component " + serviceMetadataData.getUniqueId() - + ". Edge type is " + GraphEdgeLabels.LAST_DISTRIBUTION_STATE_MODIFAIER); + log.error("Failed to associate user {} to component {}. Edge type is {}",userData,serviceMetadataData.getUniqueId(),GraphEdgeLabels.LAST_DISTRIBUTION_STATE_MODIFAIER); result = DaoStatusConverter.convertTitanStatusToStorageStatus(createRelation.right().value()); return Either.right(result); } service.setDistributionStatus(distributionStatus); - Either<Service, StorageOperationStatus> updateResponse = updateComponent(service, true, titanGenericDao, - Service.class, NodeTypeEnum.Service); + Either<Service, StorageOperationStatus> updateResponse = updateComponent(service, true, titanGenericDao, Service.class, NodeTypeEnum.Service); return updateResponse; @@ -1125,17 +913,14 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper private Either<GraphRelation, TitanOperationStatus> deleteLastDistributionModifierRelation(Service service) { GraphRelation lastDistributionStateModifaierRelation = new GraphRelation(); lastDistributionStateModifaierRelation.setType(GraphEdgeLabels.LAST_DISTRIBUTION_STATE_MODIFAIER.getProperty()); - RelationEndPoint relationEndPoint = new RelationEndPoint(NodeTypeEnum.Service, - UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Service), service.getUniqueId()); + RelationEndPoint relationEndPoint = new RelationEndPoint(NodeTypeEnum.Service, UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Service), service.getUniqueId()); lastDistributionStateModifaierRelation.setTo(relationEndPoint); - Either<GraphRelation, TitanOperationStatus> deleteIncomingRelation = titanGenericDao - .deleteIncomingRelation(lastDistributionStateModifaierRelation); + Either<GraphRelation, TitanOperationStatus> deleteIncomingRelation = titanGenericDao.deleteIncomingRelation(lastDistributionStateModifaierRelation); return deleteIncomingRelation; } @Override - public Either<Set<Service>, StorageOperationStatus> getCertifiedServicesWithDistStatus( - Map<String, Object> propertiesToMatch, Set<DistributionStatusEnum> distStatus, boolean inTransaction) { + public Either<Set<Service>, StorageOperationStatus> getCertifiedServicesWithDistStatus(Map<String, Object> propertiesToMatch, Set<DistributionStatusEnum> distStatus, boolean inTransaction) { log.debug("Start getCertifiedServicesWithDistStatus."); Set<Service> servicesSet = new HashSet<Service>(); if (distStatus != null && !distStatus.isEmpty()) { @@ -1143,8 +928,7 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper Map<String, Object> props = new HashMap<>(); props.putAll(propertiesToMatch); props.put(GraphPropertiesDictionary.DISTRIBUTION_STATUS.getProperty(), status.name()); - Either<Set<Service>, StorageOperationStatus> services = retrieveCertifiedServicesWithStatus( - inTransaction, servicesSet, props); + Either<Set<Service>, StorageOperationStatus> services = retrieveCertifiedServicesWithStatus(inTransaction, props); if (services.isRight()) { return services; } else { @@ -1153,14 +937,12 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper } return Either.left(servicesSet); } else { - return retrieveCertifiedServicesWithStatus(inTransaction, servicesSet, propertiesToMatch); + return retrieveCertifiedServicesWithStatus(inTransaction, propertiesToMatch); } } - private Either<Set<Service>, StorageOperationStatus> retrieveCertifiedServicesWithStatus(boolean inTransaction, - Set<Service> servicesSet, Map<String, Object> props) { - Either<List<ServiceMetadataData>, TitanOperationStatus> criteriaRes = titanGenericDao - .getByCriteria(NodeTypeEnum.Service, props, ServiceMetadataData.class); + private Either<Set<Service>, StorageOperationStatus> retrieveCertifiedServicesWithStatus(boolean inTransaction, Map<String, Object> props) { + Either<List<ServiceMetadataData>, TitanOperationStatus> criteriaRes = titanGenericDao.getByCriteria(NodeTypeEnum.Service, props, ServiceMetadataData.class); return retrieveComponentsFromNodes(criteriaRes, inTransaction); } @@ -1170,41 +952,19 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper try { /* - * Map<String, Object> propertiesToMatch = new HashMap<>(); - * propertiesToMatch.put(GraphPropertiesDictionary.STATE.getProperty - * (), LifecycleStateEnum.CERTIFIED.name()); - * Either<List<ServiceMetadataData>, TitanOperationStatus> - * lastVersionNodes = getLastVersion(NodeTypeEnum.Service, - * propertiesToMatch, ServiceMetadataData.class); if - * (lastVersionNodes.isRight() && lastVersionNodes.right().value() - * != TitanOperationStatus.NOT_FOUND) { return - * Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus - * (lastVersionNodes.right().value())); } List<ServiceMetadataData> - * notCertifiedHighest = (lastVersionNodes.isLeft() ? - * lastVersionNodes.left().value() : new + * Map<String, Object> propertiesToMatch = new HashMap<>(); propertiesToMatch.put(GraphPropertiesDictionary.STATE.getProperty (), LifecycleStateEnum.CERTIFIED.name()); Either<List<ServiceMetadataData>, TitanOperationStatus> + * lastVersionNodes = getLastVersion(NodeTypeEnum.Service, propertiesToMatch, ServiceMetadataData.class); if (lastVersionNodes.isRight() && lastVersionNodes.right().value() != TitanOperationStatus.NOT_FOUND) { return + * Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus (lastVersionNodes.right().value())); } List<ServiceMetadataData> notCertifiedHighest = (lastVersionNodes.isLeft() ? lastVersionNodes.left().value() : new * ArrayList<ServiceMetadataData>()); * - * propertiesToMatch.put(GraphPropertiesDictionary. - * IS_HIGHEST_VERSION.getProperty(), true); - * Either<List<ServiceMetadataData>, TitanOperationStatus> - * componentsNodes = - * titanGenericDao.getByCriteria(NodeTypeEnum.Service, - * propertiesToMatch, ServiceMetadataData.class); if - * (componentsNodes.isRight() && componentsNodes.right().value() != - * TitanOperationStatus.NOT_FOUND) { return - * Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus - * (componentsNodes.right().value())); } List<ServiceMetadataData> - * certifiedHighest = (componentsNodes.isLeft() ? - * componentsNodes.left().value() : new - * ArrayList<ServiceMetadataData>()); + * propertiesToMatch.put(GraphPropertiesDictionary. IS_HIGHEST_VERSION.getProperty(), true); Either<List<ServiceMetadataData>, TitanOperationStatus> componentsNodes = titanGenericDao.getByCriteria(NodeTypeEnum.Service, propertiesToMatch, + * ServiceMetadataData.class); if (componentsNodes.isRight() && componentsNodes.right().value() != TitanOperationStatus.NOT_FOUND) { return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus + * (componentsNodes.right().value())); } List<ServiceMetadataData> certifiedHighest = (componentsNodes.isLeft() ? componentsNodes.left().value() : new ArrayList<ServiceMetadataData>()); */ - Either<List<ServiceMetadataData>, TitanOperationStatus> listOfHighestComponents = this - .getListOfHighestComponents(NodeTypeEnum.Service, ServiceMetadataData.class); - if (listOfHighestComponents.isRight() - && listOfHighestComponents.right().value() != TitanOperationStatus.NOT_FOUND) { - return Either.right( - DaoStatusConverter.convertTitanStatusToStorageStatus(listOfHighestComponents.right().value())); + Either<List<ServiceMetadataData>, TitanOperationStatus> listOfHighestComponents = this.getListOfHighestComponents(NodeTypeEnum.Service, ServiceMetadataData.class); + if (listOfHighestComponents.isRight() && listOfHighestComponents.right().value() != TitanOperationStatus.NOT_FOUND) { + return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(listOfHighestComponents.right().value())); } List<ServiceMetadataData> notCertifiedHighest = listOfHighestComponents.left().value(); @@ -1216,41 +976,29 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper // fetch from cache long startFetchAllFromCache = System.currentTimeMillis(); - Map<String, Long> components = notCertifiedHighest.stream() - .collect(Collectors.toMap(p -> p.getMetadataDataDefinition().getUniqueId(), - p -> p.getMetadataDataDefinition().getLastUpdateDate())); + Map<String, Long> components = notCertifiedHighest.stream().collect(Collectors.toMap(p -> p.getMetadataDataDefinition().getUniqueId(), p -> p.getMetadataDataDefinition().getLastUpdateDate())); - Either<ImmutablePair<List<Component>, Set<String>>, ActionStatus> componentsFromCacheForCatalog = this - .getComponentsFromCacheForCatalog(components, ComponentTypeEnum.SERVICE); + Either<ImmutablePair<List<Component>, Set<String>>, ActionStatus> componentsFromCacheForCatalog = this.getComponentsFromCacheForCatalog(components, ComponentTypeEnum.SERVICE); if (componentsFromCacheForCatalog.isLeft()) { - ImmutablePair<List<Component>, Set<String>> immutablePair = componentsFromCacheForCatalog.left() - .value(); + ImmutablePair<List<Component>, Set<String>> immutablePair = componentsFromCacheForCatalog.left().value(); List<Component> list = immutablePair.getLeft(); if (list != null) { for (Component component : list) { result.add((Service) component); } - List<String> addedUids = list.stream() - .map(p -> p.getComponentMetadataDefinition().getMetadataDataDefinition().getUniqueId()) - .collect(Collectors.toList()); - notCertifiedHighest = notCertifiedHighest.stream() - .filter(p -> false == addedUids.contains(p.getMetadataDataDefinition().getUniqueId())) - .collect(Collectors.toList()); + List<String> addedUids = list.stream().map(p -> p.getComponentMetadataDefinition().getMetadataDataDefinition().getUniqueId()).collect(Collectors.toList()); + notCertifiedHighest = notCertifiedHighest.stream().filter(p -> false == addedUids.contains(p.getMetadataDataDefinition().getUniqueId())).collect(Collectors.toList()); } } long endFetchAllFromCache = System.currentTimeMillis(); - log.debug("Fetch all catalog services metadata from cache took {} ms", - (endFetchAllFromCache - startFetchAllFromCache)); + log.debug("Fetch all catalog services metadata from cache took {} ms", (endFetchAllFromCache - startFetchAllFromCache)); log.debug("The number of services added to catalog from cache is {}", result.size()); - log.debug("The number of services needed to be fetch as light component is {}", - notCertifiedHighest.size()); + log.debug("The number of services needed to be fetch as light component is {}", notCertifiedHighest.size()); for (ServiceMetadataData data : notCertifiedHighest) { - Either<Service, StorageOperationStatus> component = getLightComponent( - data.getMetadataDataDefinition().getUniqueId(), inTransaction); + Either<Service, StorageOperationStatus> component = getLightComponent(data.getMetadataDataDefinition().getUniqueId(), inTransaction); if (component.isRight()) { - log.debug("Failed to get Service for id = {}, error : {}. Skip service", data.getUniqueId(), - component.right().value()); + log.debug("Failed to get Service for id = {}, error : {}. Skip service", data.getUniqueId(), component.right().value()); } else { result.add(component.left().value()); } @@ -1261,19 +1009,17 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper if (false == inTransaction) { titanGenericDao.commit(); } - log.debug("Fetch all catalog services took " + (System.currentTimeMillis() - start) + " ms"); + log.debug("Fetch all catalog services took {} ms",(System.currentTimeMillis() - start)); } } - public Either<List<Service>, StorageOperationStatus> getServiceCatalogDataLatestCertifiedAndNotCertified( - boolean inTransaction) { + public Either<List<Service>, StorageOperationStatus> getServiceCatalogDataLatestCertifiedAndNotCertified(boolean inTransaction) { Map<String, Object> properties = new HashMap<>(); properties.put(GraphPropertiesDictionary.IS_HIGHEST_VERSION.getProperty(), true); List<Service> result = new ArrayList<>(); - Either<List<ServiceMetadataData>, TitanOperationStatus> lastVersionNodes = titanGenericDao - .getByCriteria(NodeTypeEnum.Service, properties, ServiceMetadataData.class); + Either<List<ServiceMetadataData>, TitanOperationStatus> lastVersionNodes = titanGenericDao.getByCriteria(NodeTypeEnum.Service, properties, ServiceMetadataData.class); if (lastVersionNodes.isRight() && lastVersionNodes.right().value() != TitanOperationStatus.NOT_FOUND) { return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(lastVersionNodes.right().value())); @@ -1288,11 +1034,9 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper } for (ServiceMetadataData data : latestServices) { - Either<Service, StorageOperationStatus> component = getLightComponent( - data.getMetadataDataDefinition().getUniqueId(), inTransaction); + Either<Service, StorageOperationStatus> component = getLightComponent(data.getMetadataDataDefinition().getUniqueId(), inTransaction); if (component.isRight()) { - log.debug("Failed to get Service for id = " + data.getUniqueId() + " error : " - + component.right().value() + " skip resource"); + log.debug("Failed to get Service for id = {} error : {} skip resource",data.getUniqueId(),component.right().value()); } else { result.add(component.left().value()); } @@ -1302,25 +1046,21 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper } - private Either<List<Service>, StorageOperationStatus> getServiceListByCriteria(Map<String, Object> props, - boolean inTransaction) { + private Either<List<Service>, StorageOperationStatus> getServiceListByCriteria(Map<String, Object> props, boolean inTransaction) { props.put(GraphPropertiesDictionary.LABEL.getProperty(), NodeTypeEnum.Service.getName()); - Either<List<ServiceMetadataData>, TitanOperationStatus> byCriteria = titanGenericDao - .getByCriteria(NodeTypeEnum.Service, props, ServiceMetadataData.class); + Either<List<ServiceMetadataData>, TitanOperationStatus> byCriteria = titanGenericDao.getByCriteria(NodeTypeEnum.Service, props, ServiceMetadataData.class); if (byCriteria.isRight()) { return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(byCriteria.right().value())); } - List<Service> services = new ArrayList<Service>(); + List<Service> services = new ArrayList<>(); List<ServiceMetadataData> servicesDataList = byCriteria.left().value(); for (ServiceMetadataData data : servicesDataList) { - Either<Service, StorageOperationStatus> service = getService(data.getMetadataDataDefinition().getUniqueId(), - inTransaction); + Either<Service, StorageOperationStatus> service = getService(data.getMetadataDataDefinition().getUniqueId(), inTransaction); if (service.isLeft()) { services.add(service.left().value()); } else { - log.debug("Failed to fetch resource for name = " + data.getMetadataDataDefinition().getName() - + " and id = " + data.getUniqueId()); + log.debug("Failed to fetch resource for name = {} and id = {}",data.getMetadataDataDefinition().getName(),data.getUniqueId()); } } return Either.left(services); @@ -1334,8 +1074,7 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper return getLatestServiceByUuid(uuid, true, inTransaction); } - private Either<List<Service>, StorageOperationStatus> getLatestServiceByUuid(String uuid, boolean isLatest, - boolean inTransaction) { + private Either<List<Service>, StorageOperationStatus> getLatestServiceByUuid(String uuid, boolean isLatest, boolean inTransaction) { Map<String, Object> props = new HashMap<String, Object>(); if (isLatest) { @@ -1346,17 +1085,23 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper return getServiceListByCriteria(props, inTransaction); } - public Either<List<Service>, StorageOperationStatus> getServiceListBySystemName(String systemName, - boolean inTransaction) { + @Override + public Either<List<Service>, StorageOperationStatus> getAll() { + Either<List<Service>, StorageOperationStatus> serviceListByCriteria = getServiceListByCriteria(new HashMap<>(), false); + if (serviceListByCriteria.isRight() && serviceListByCriteria.right().value() == StorageOperationStatus.NOT_FOUND) { + return Either.left(Collections.emptyList()); + } + return serviceListByCriteria; + } + + public Either<List<Service>, StorageOperationStatus> getServiceListBySystemName(String systemName, boolean inTransaction) { Map<String, Object> props = new HashMap<String, Object>(); props.put(GraphPropertiesDictionary.SYSTEM_NAME.getProperty(), systemName); return getServiceListByCriteria(props, inTransaction); } - public Either<Service, StorageOperationStatus> getServiceByNameAndVersion(String name, String version, - Map<String, Object> additionalParams, boolean inTransaction) { - return getByNamesAndVersion(GraphPropertiesDictionary.NORMALIZED_NAME.getProperty(), - ValidationUtils.normaliseComponentName(name), version, additionalParams, inTransaction); + public Either<Service, StorageOperationStatus> getServiceByNameAndVersion(String name, String version, Map<String, Object> additionalParams, boolean inTransaction) { + return getByNamesAndVersion(GraphPropertiesDictionary.NORMALIZED_NAME.getProperty(), ValidationUtils.normaliseComponentName(name), version, additionalParams, inTransaction); } @Override @@ -1364,8 +1109,7 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper return getServiceByNameAndVersion(name, version, null, false); } - protected Either<Service, StorageOperationStatus> getByNamesAndVersion(String nameKey, String nameValue, - String version, Map<String, Object> additionalParams, boolean inTransaction) { + protected Either<Service, StorageOperationStatus> getByNamesAndVersion(String nameKey, String nameValue, String version, Map<String, Object> additionalParams, boolean inTransaction) { Map<String, Object> props = new HashMap<String, Object>(); props.put(nameKey, nameValue); props.put(GraphPropertiesDictionary.VERSION.getProperty(), version); @@ -1374,8 +1118,7 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper props.putAll(additionalParams); } - Either<List<ServiceMetadataData>, TitanOperationStatus> byCriteria = titanGenericDao - .getByCriteria(NodeTypeEnum.Service, props, ServiceMetadataData.class); + Either<List<ServiceMetadataData>, TitanOperationStatus> byCriteria = titanGenericDao.getByCriteria(NodeTypeEnum.Service, props, ServiceMetadataData.class); if (byCriteria.isRight()) { return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(byCriteria.right().value())); @@ -1383,40 +1126,33 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper List<ServiceMetadataData> dataList = byCriteria.left().value(); if (dataList != null && !dataList.isEmpty()) { if (dataList.size() > 1) { - log.debug("More that one instance of resource for name =" + nameValue + " and version = " + version); + log.debug("More that one instance of resource for name ={} and version = {}",nameValue,version); return Either.right(StorageOperationStatus.GENERAL_ERROR); } ServiceMetadataData serviceData = dataList.get(0); - Either<Service, StorageOperationStatus> service = getService( - serviceData.getMetadataDataDefinition().getUniqueId(), inTransaction); + Either<Service, StorageOperationStatus> service = getService(serviceData.getMetadataDataDefinition().getUniqueId(), inTransaction); if (service.isRight()) { - log.debug("Failed to fetch resource for name = " + serviceData.getMetadataDataDefinition().getName() - + " and id = " + serviceData.getMetadataDataDefinition().getUniqueId()); + log.debug("Failed to fetch resource for name = {} and id = {}",serviceData.getMetadataDataDefinition().getName(),serviceData.getMetadataDataDefinition().getUniqueId()); } return service; } return Either.right(StorageOperationStatus.NOT_FOUND); } - protected <T> Either<T, StorageOperationStatus> getComponentByNameAndVersion(String name, String version, - Map<String, Object> additionalParams, boolean inTransaction) { - return (Either<T, StorageOperationStatus>) getServiceByNameAndVersion(name, version, additionalParams, - inTransaction); + protected <T> Either<T, StorageOperationStatus> getComponentByNameAndVersion(String name, String version, Map<String, Object> additionalParams, boolean inTransaction) { + return (Either<T, StorageOperationStatus>) getServiceByNameAndVersion(name, version, additionalParams, inTransaction); } @Override - public Either<Service, StorageOperationStatus> getServiceBySystemNameAndVersion(String name, String version, - boolean inTransaction) { - return getByNamesAndVersion(GraphPropertiesDictionary.SYSTEM_NAME.getProperty(), name, version, null, - inTransaction); + public Either<Service, StorageOperationStatus> getServiceBySystemNameAndVersion(String name, String version, boolean inTransaction) { + return getByNamesAndVersion(GraphPropertiesDictionary.SYSTEM_NAME.getProperty(), name, version, null, inTransaction); } private TitanOperationStatus setServiceAdditionalInformationFromGraph(String uniqueId, Service service) { List<AdditionalInformationDefinition> additionalInformation = new ArrayList<>(); - Either<AdditionalInformationDefinition, TitanOperationStatus> either = additionalInformationOperation - .getAllAdditionalInformationParameters(NodeTypeEnum.Service, uniqueId, true); + Either<AdditionalInformationDefinition, TitanOperationStatus> either = additionalInformationOperation.getAllAdditionalInformationParameters(NodeTypeEnum.Service, uniqueId, true); if (either.isRight()) { TitanOperationStatus status = either.right().value(); @@ -1436,8 +1172,7 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper } private TitanOperationStatus setAllVersions(Service service) { - Either<Map<String, String>, TitanOperationStatus> res = getVersionList(NodeTypeEnum.Service, - service.getVersion(), service, ServiceMetadataData.class); + Either<Map<String, String>, TitanOperationStatus> res = getVersionList(NodeTypeEnum.Service, service.getVersion(), service, ServiceMetadataData.class); if (res.isRight()) { return res.right().value(); } @@ -1445,8 +1180,7 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper return TitanOperationStatus.OK; } - public Either<List<ArtifactDefinition>, StorageOperationStatus> getAdditionalArtifacts(String resourceId, - boolean recursively, boolean inTransaction) { + public Either<List<ArtifactDefinition>, StorageOperationStatus> getAdditionalArtifacts(String resourceId, boolean recursively, boolean inTransaction) { List<ArtifactDefinition> artifacts = new ArrayList<>(); return Either.left(artifacts); } @@ -1466,40 +1200,33 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper @SuppressWarnings("unchecked") @Override - public <T> Either<T, StorageOperationStatus> cloneComponent(T other, String version, - LifecycleStateEnum targetLifecycle, boolean inTransaction) { - return (Either<T, StorageOperationStatus>) cloneService((Service) other, version, targetLifecycle, - inTransaction); + public <T> Either<T, StorageOperationStatus> cloneComponent(T other, String version, LifecycleStateEnum targetLifecycle, boolean inTransaction) { + return (Either<T, StorageOperationStatus>) cloneService((Service) other, version, targetLifecycle, inTransaction); } @Override - public Either<Integer, StorageOperationStatus> increaseAndGetComponentInstanceCounter(String componentId, - boolean inTransaction) { + public Either<Integer, StorageOperationStatus> increaseAndGetComponentInstanceCounter(String componentId, boolean inTransaction) { return increaseAndGetComponentInstanceCounter(componentId, NodeTypeEnum.Service, inTransaction); } @Override - protected StorageOperationStatus validateCategories(Component currentComponent, Component component, - ComponentMetadataData componentData, NodeTypeEnum type) { + protected StorageOperationStatus validateCategories(Component currentComponent, Component component, ComponentMetadataData componentData, NodeTypeEnum type) { List<CategoryDefinition> newcategories = component.getCategories(); CategoryDefinition newCat = newcategories.get(0); CategoryDefinition currentCategory = currentComponent.getCategories().get(0); StorageOperationStatus status = StorageOperationStatus.OK; if (newCat != null && newCat.getName() != null && false == newCat.getName().equals(currentCategory.getName())) { - log.debug( - "Going to update the category of the resource from " + currentCategory + " to " + newCat.getName()); + log.debug("Going to update the category of the resource from {} to {}",currentCategory,newCat.getName()); status = moveCategoryEdge(component, componentData, newCat, type); - log.debug("Going to update the category of the resource from " + currentCategory + " to " + newCat.getName() - + ". status is " + status); + log.debug("Going to update the category of the resource from {} to {}. status is {}",currentCategory,newCat.getName(),status); } return status; } @Override - protected <T extends Component> StorageOperationStatus updateDerived(Component component, - Component currentComponent, ComponentMetadataData componentData, Class<T> clazz) { + protected <T extends Component> StorageOperationStatus updateDerived(Component component, Component currentComponent, ComponentMetadataData componentData, Class<T> clazz) { log.debug("Derived class isn't supported for resource"); return null; } @@ -1525,8 +1252,7 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper } @Override - public Either<Component, StorageOperationStatus> markComponentToDelete(Component componentToDelete, - boolean inTransaction) { + public Either<Component, StorageOperationStatus> markComponentToDelete(Component componentToDelete, boolean inTransaction) { return internalMarkComponentToDelete(componentToDelete, inTransaction); } @@ -1542,8 +1268,7 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper @SuppressWarnings("unchecked") @Override - public <T> Either<T, StorageOperationStatus> getComponent(String id, - ComponentParametersView componentParametersView, boolean inTransaction) { + public <T> Either<T, StorageOperationStatus> getComponent(String id, ComponentParametersView componentParametersView, boolean inTransaction) { Either<Service, StorageOperationStatus> component = getService(id, componentParametersView, inTransaction); if (component.isRight()) { @@ -1552,15 +1277,13 @@ public class ServiceOperation extends ComponentOperation implements IServiceOper return (Either<T, StorageOperationStatus>) component; } - public Either<Service, StorageOperationStatus> updateService(Service service, boolean inTransaction, - ComponentParametersView filterResultView) { - return (Either<Service, StorageOperationStatus>) updateComponentFilterResult(service, inTransaction, - titanGenericDao, service.getClass(), NodeTypeEnum.Service, filterResultView); + public Either<Service, StorageOperationStatus> updateService(Service service, boolean inTransaction, ComponentParametersView filterResultView) { + return (Either<Service, StorageOperationStatus>) updateComponentFilterResult(service, inTransaction, titanGenericDao, service.getClass(), NodeTypeEnum.Service, filterResultView); } @Override - protected <T> Either<T, StorageOperationStatus> updateComponentFilterResult(T component, boolean inTransaction, - ComponentParametersView filterResultView) { + protected <T> Either<T, StorageOperationStatus> updateComponentFilterResult(T component, boolean inTransaction, ComponentParametersView filterResultView) { return (Either<T, StorageOperationStatus>) updateService((Service) component, inTransaction, filterResultView); } + } |