summaryrefslogtreecommitdiffstats
path: root/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-model/src/main/java/org/openecomp/sdc/be/model/operations')
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IAdditionalInformationOperation.java56
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IArtifactOperation.java14
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICapabilityInstanceOperation.java39
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICapabilityOperation.java30
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICapabilityTypeOperation.java9
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IComponentInstanceOperation.java139
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IComponentOperation.java12
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IConsumerOperation.java23
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IDataTypeOperation.java3
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IElementOperation.java30
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGraphLockOperation.java3
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGroupInstanceOperation.java101
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGroupOperation.java79
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGroupTypeOperation.java12
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IInputsOperation.java32
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IInterfaceLifecycleOperation.java45
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ILifecycleOperation.java27
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IPolicyTypeOperation.java3
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IProductOperation.java3
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IPropertyOperation.java31
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IRequirementOperation.java30
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IResourceOperation.java67
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IServiceOperation.java31
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IUserAdminOperation.java8
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ToscaDefinitionPathCalculator.java12
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/AbstractOperation.java8
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/AdditionalInformationOperation.java346
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ArtifactOperation.java271
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/AttributeOperation.java8
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CacheMangerOperation.java44
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CapabilityInstanceOperation.java363
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CapabilityOperation.java62
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CapabilityTypeOperation.java125
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ComponentInstanceOperation.java832
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ComponentOperation.java491
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ConsumerOperation.java14
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CsarOperation.java6
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/DaoStatusConverter.java3
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ElementOperation.java236
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/GraphLockOperation.java81
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/GroupInstanceOperation.java1701
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/GroupOperation.java879
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/GroupTypeOperation.java99
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/HeatParametersOperation.java44
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/InputsOperation.java466
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/InterfaceLifecycleOperation.java468
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/LifecycleOperation.java326
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/OnboardingClient.java3
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/PolicyTypeOperation.java49
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ProductOperation.java306
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/PropertyOperation.java223
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/RequirementOperation.java683
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ResourceOperation.java643
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ServiceOperation.java647
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ToscaDefinitionPathCalculatorImpl.java27
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/UniqueIdBuilder.java27
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/UserAdminOperation.java161
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/migration/MigrationErrorInformer.java39
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/utils/ComponentValidationUtils.java53
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/utils/GraphDeleteUtil.java29
60 files changed, 6034 insertions, 4568 deletions
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IAdditionalInformationOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IAdditionalInformationOperation.java
index 71167c395f..eb6492fa84 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IAdditionalInformationOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IAdditionalInformationOperation.java
@@ -23,8 +23,8 @@ package org.openecomp.sdc.be.model.operations.api;
import java.util.List;
import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
+import org.openecomp.sdc.be.datatypes.elements.AdditionalInfoParameterInfo;
import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
-import org.openecomp.sdc.be.model.AdditionalInfoParameterInfo;
import org.openecomp.sdc.be.model.AdditionalInformationDefinition;
import org.openecomp.sdc.be.resources.data.AdditionalInfoParameterData;
@@ -35,60 +35,42 @@ import fj.data.Either;
public interface IAdditionalInformationOperation {
- public Either<AdditionalInformationDefinition, TitanOperationStatus> addAdditionalInformationParameter(
- NodeTypeEnum nodeType, String resourceId, String key, String value);
+ public Either<AdditionalInformationDefinition, TitanOperationStatus> addAdditionalInformationParameter(NodeTypeEnum nodeType, String resourceId, String key, String value);
- public Either<AdditionalInformationDefinition, TitanOperationStatus> updateAdditionalInformationParameter(
- NodeTypeEnum nodeType, String resourceId, String origKey, String key, String value);
+ public Either<AdditionalInformationDefinition, TitanOperationStatus> updateAdditionalInformationParameter(NodeTypeEnum nodeType, String resourceId, String origKey, String key, String value);
- public Either<AdditionalInformationDefinition, TitanOperationStatus> deleteAdditionalInformationParameter(
- NodeTypeEnum nodeType, String resourceId, String key);
+ public Either<AdditionalInformationDefinition, TitanOperationStatus> deleteAdditionalInformationParameter(NodeTypeEnum nodeType, String resourceId, String key);
- public Either<AdditionalInfoParameterData, TitanOperationStatus> addAdditionalInformationNode(NodeTypeEnum nodeType,
- String resourceUniqueId);
+ public Either<AdditionalInfoParameterData, TitanOperationStatus> addAdditionalInformationNode(NodeTypeEnum nodeType, String resourceUniqueId);
- public Either<AdditionalInformationDefinition, TitanOperationStatus> addAdditionalInformationNode(
- NodeTypeEnum nodeType, String componentId, AdditionalInformationDefinition parameters);
+ public Either<AdditionalInformationDefinition, TitanOperationStatus> addAdditionalInformationNode(NodeTypeEnum nodeType, String componentId, AdditionalInformationDefinition parameters);
- public TitanOperationStatus findResourceAllAdditionalInformationRecursively(String uniqueId,
- List<AdditionalInformationDefinition> properties);
+ public TitanOperationStatus findResourceAllAdditionalInformationRecursively(String uniqueId, List<AdditionalInformationDefinition> properties);
- public TitanOperationStatus findServiceAllAdditionalInformationRecursively(String uniqueId,
- List<AdditionalInformationDefinition> properties);
+ public TitanOperationStatus findServiceAllAdditionalInformationRecursively(String uniqueId, List<AdditionalInformationDefinition> properties);
- public Either<AdditionalInformationDefinition, StorageOperationStatus> createAdditionalInformationParameter(
- NodeTypeEnum nodeType, String resourceId, String key, String value, boolean inTransaction);
+ public Either<AdditionalInformationDefinition, StorageOperationStatus> createAdditionalInformationParameter(NodeTypeEnum nodeType, String resourceId, String key, String value, boolean inTransaction);
- public Either<AdditionalInformationDefinition, StorageOperationStatus> updateAdditionalInformationParameter(
- NodeTypeEnum nodeType, String resourceId, String id, String key, String value, boolean inTransaction);
+ public Either<AdditionalInformationDefinition, StorageOperationStatus> updateAdditionalInformationParameter(NodeTypeEnum nodeType, String resourceId, String id, String key, String value, boolean inTransaction);
- public Either<AdditionalInformationDefinition, StorageOperationStatus> deleteAdditionalInformationParameter(
- NodeTypeEnum nodeType, String resourceId, String id, boolean inTransaction);
+ public Either<AdditionalInformationDefinition, StorageOperationStatus> deleteAdditionalInformationParameter(NodeTypeEnum nodeType, String resourceId, String id, boolean inTransaction);
- public Either<Integer, StorageOperationStatus> getNumberOfAdditionalInformationParameters(NodeTypeEnum nodeType,
- String resourceId, boolean inTransaction);
+ public Either<Integer, StorageOperationStatus> getNumberOfAdditionalInformationParameters(NodeTypeEnum nodeType, String resourceId, boolean inTransaction);
public Either<Integer, TitanOperationStatus> getNumberOfParameters(NodeTypeEnum nodeType, String resourceId);
- public Either<AdditionalInfoParameterInfo, TitanOperationStatus> getAdditionalInformationParameter(
- NodeTypeEnum nodeType, String resourceId, String id);
+ public Either<AdditionalInfoParameterInfo, TitanOperationStatus> getAdditionalInformationParameter(NodeTypeEnum nodeType, String resourceId, String id);
- public Either<AdditionalInfoParameterInfo, StorageOperationStatus> getAdditionalInformationParameter(
- NodeTypeEnum nodeType, String resourceId, String id, boolean inTransaction);
+ public Either<AdditionalInfoParameterInfo, StorageOperationStatus> getAdditionalInformationParameter(NodeTypeEnum nodeType, String resourceId, String id, boolean inTransaction);
- public Either<AdditionalInformationDefinition, TitanOperationStatus> getAllAdditionalInformationParameters(
- NodeTypeEnum nodeType, String resourceId, boolean ignoreVerification);
+ public Either<AdditionalInformationDefinition, TitanOperationStatus> getAllAdditionalInformationParameters(NodeTypeEnum nodeType, String resourceId, boolean ignoreVerification);
- public Either<AdditionalInformationDefinition, StorageOperationStatus> getAllAdditionalInformationParameters(
- NodeTypeEnum nodeType, String resourceId, boolean ignoreVerification, boolean inTransaction);
+ public Either<AdditionalInformationDefinition, StorageOperationStatus> getAllAdditionalInformationParameters(NodeTypeEnum nodeType, String resourceId, boolean ignoreVerification, boolean inTransaction);
- public Either<AdditionalInformationDefinition, StorageOperationStatus> deleteAllAdditionalInformationParameters(
- NodeTypeEnum nodeType, String resourceId, boolean inTransaction);
+ public Either<AdditionalInformationDefinition, StorageOperationStatus> deleteAllAdditionalInformationParameters(NodeTypeEnum nodeType, String resourceId, boolean inTransaction);
- public Either<TitanVertex, TitanOperationStatus> addAdditionalInformationNode(NodeTypeEnum nodeType,
- String componentId, TitanVertex matadatVertex);
+ public Either<TitanVertex, TitanOperationStatus> addAdditionalInformationNode(NodeTypeEnum nodeType, String componentId, TitanVertex matadatVertex);
- public TitanOperationStatus addAdditionalInformationNode(NodeTypeEnum nodeType, String componentId,
- AdditionalInformationDefinition parameters, TitanVertex metadataVertex);
+ public TitanOperationStatus addAdditionalInformationNode(NodeTypeEnum nodeType, String componentId, AdditionalInformationDefinition parameters, TitanVertex metadataVertex);
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IArtifactOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IArtifactOperation.java
index 873d05e1ed..5e8a2eb0d5 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IArtifactOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IArtifactOperation.java
@@ -23,12 +23,12 @@ package org.openecomp.sdc.be.model.operations.api;
import java.util.Map;
import org.openecomp.sdc.be.dao.titan.TitanGenericDao;
+import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition;
import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
import org.openecomp.sdc.be.model.ArtifactDefinition;
import org.openecomp.sdc.be.resources.data.ArtifactData;
-import com.thinkaurelius.titan.core.TitanTransaction;
import com.thinkaurelius.titan.core.TitanVertex;
import fj.data.Either;
@@ -51,7 +51,7 @@ public interface IArtifactOperation {
public Either<Map<String, ArtifactDefinition>, StorageOperationStatus> getArtifacts(String parentId, NodeTypeEnum parentType, boolean inTransaction, String groupType);
- Either<ArtifactDefinition, StorageOperationStatus> addHeatEnvArtifact(ArtifactDefinition artifactHeatEnv, ArtifactDefinition artifactHeat, String parentId, NodeTypeEnum parentType, boolean inTransaction);
+ Either<ArtifactDefinition, StorageOperationStatus> addHeatEnvArtifact(ArtifactDefinition artifactHeatEnv, ArtifactDefinition artifactHeat, String parentId, NodeTypeEnum parentType, boolean failIfExist);
public void updateUUID(ArtifactDataDefinition artifactData, String oldChecksum, String oldVesrion);
@@ -61,10 +61,20 @@ public interface IArtifactOperation {
public Either<ArtifactData, StorageOperationStatus> updateToscaArtifactNameOnGraph(ArtifactDefinition artifactInfo, String artifactId, NodeTypeEnum type, String id);
+
public StorageOperationStatus addArifactToComponent(ArtifactDefinition artifactInfo, String parentId, NodeTypeEnum type, boolean failIfExist, TitanVertex parentVertex);
public Either<ArtifactData, StorageOperationStatus> getLatestArtifactDataByArtifactUUID(String artifactUUID, boolean inTransaction);
StorageOperationStatus addArifactToComponent(TitanVertex artifactInfo, TitanVertex parentVertex, String label);
+ public Either<ArtifactData, TitanOperationStatus> removeArtifactOnGraph(String id, String artifactId, NodeTypeEnum type, boolean deleteMandatoryArtifact);
+
+ public Either<ArtifactDefinition, StorageOperationStatus> updateHeatEnvPlaceholder(ArtifactDefinition artifactInfo, boolean inTransaction);
+
+ public Either<ArtifactDefinition, StorageOperationStatus> updateHeatEnvArtifact( String id, ArtifactDefinition artifactEnvInfo, String oldArtifactId, String newArtifactId, NodeTypeEnum type, boolean inTransaction);
+
+ public Either<ArtifactDefinition, StorageOperationStatus> getHeatEnvByGeneratedFromId(String generatedFromId);
+
+
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICapabilityInstanceOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICapabilityInstanceOperation.java
index e50b658121..f8e8c80f12 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICapabilityInstanceOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICapabilityInstanceOperation.java
@@ -37,16 +37,14 @@ import com.thinkaurelius.titan.core.TitanVertex;
import fj.data.Either;
/**
- * public interface ICapabilityInstanceOperation provides methods for CRUD
- * operations for CapabilityInstance on component instance level
+ * public interface ICapabilityInstanceOperation provides methods for CRUD operations for CapabilityInstance on component instance level
*
* @author ns019t
*
*/
public interface ICapabilityInstanceOperation {
/**
- * create capability instance of capability with property values for
- * resource instance
+ * create capability instance of capability with property values for resource instance
*
* @param resourceInstanceId
* @param capabilityId
@@ -55,8 +53,7 @@ public interface ICapabilityInstanceOperation {
* @param capabilityName
* @return
*/
- public Either<Map<CapabilityInstData, List<PropertyValueData>>, TitanOperationStatus> createCapabilityInstanceOfCapabilityWithPropertyValuesForResourceInstance(
- String resourceInstanceId, String capabilityId, String capabilityName,
+ public Either<Map<CapabilityInstData, List<PropertyValueData>>, TitanOperationStatus> createCapabilityInstanceOfCapabilityWithPropertyValuesForResourceInstance(String resourceInstanceId, String capabilityId, String capabilityName,
List<ComponentInstanceProperty> propertyValues, boolean validateCapabilityInstExistance);
/**
@@ -68,8 +65,7 @@ public interface ICapabilityInstanceOperation {
* @param validateCapabilityInstExistence
* @return
*/
- public TitanOperationStatus createCapabilityInstanceOfCapabilityWithPropertyValuesForResourceInstance(
- TitanVertex resourceInstanceVertex, String resourceInstanceId, String capabilityId, String capabilityName,
+ public TitanOperationStatus createCapabilityInstanceOfCapabilityWithPropertyValuesForResourceInstance(TitanVertex resourceInstanceVertex, String resourceInstanceId, String capabilityId, String capabilityName,
List<ComponentInstanceProperty> propertyValues, boolean validateCapabilityInstExistence);
/**
@@ -79,8 +75,7 @@ public interface ICapabilityInstanceOperation {
* @param capabilityId
* @return
*/
- public Either<Boolean, TitanOperationStatus> validateCapabilityInstExistence(String resourceInstanceId,
- String capabilityId);
+ public Either<Boolean, TitanOperationStatus> validateCapabilityInstExistence(String resourceInstanceId, String capabilityId);
/**
* delete capability instance from resource instance
@@ -89,20 +84,16 @@ public interface ICapabilityInstanceOperation {
* @param capabilityInstanceId
* @return
*/
- public Either<CapabilityInstData, TitanOperationStatus> deleteCapabilityInstanceFromResourceInstance(
- String resourceInstanceId, String capabilityInstanceId);
+ public Either<CapabilityInstData, TitanOperationStatus> deleteCapabilityInstanceFromResourceInstance(String resourceInstanceId, String capabilityInstanceId);
/**
- * get all capability instances for resource instance returns all Capability
- * Instances related to Resource Instance as List<CapabilityInstData> or
- * TitanOperationStatus if error occurs or if Resource Instance have no any
- * related Capability Instance
+ * get all capability instances for resource instance returns all Capability Instances related to Resource Instance as List<CapabilityInstData> or TitanOperationStatus if error occurs or if Resource Instance have no any related Capability
+ * Instance
*
* @param resourceInstanceId
* @return Either<List<CapabilityInstData>, TitanOperationStatus>
*/
- public Either<List<ImmutablePair<CapabilityInstData, GraphEdge>>, TitanOperationStatus> getAllCapabilityInstancesOfResourceInstance(
- String resourceInstanceId);
+ public Either<List<ImmutablePair<CapabilityInstData, GraphEdge>>, TitanOperationStatus> getAllCapabilityInstancesOfResourceInstance(String resourceInstanceId);
/**
* get capability instance of capability for resource instance
@@ -111,8 +102,7 @@ public interface ICapabilityInstanceOperation {
* @param capabilityId
* @return
*/
- public Either<CapabilityInstData, TitanOperationStatus> getCapabilityInstanceOfCapabilityOfResourceInstance(
- String resourceInstanceId, String capabilityId);
+ public Either<CapabilityInstData, TitanOperationStatus> getCapabilityInstanceOfCapabilityOfResourceInstance(String resourceInstanceId, String capabilityId);
/**
* update capability property values
@@ -123,8 +113,7 @@ public interface ICapabilityInstanceOperation {
* @param capabilityId
* @return
*/
- public Either<List<PropertyValueData>, TitanOperationStatus> updateCapabilityPropertyValues(
- String resourceInstanceId, String capabilityId, List<ComponentInstanceProperty> propertyValues);
+ public Either<List<PropertyValueData>, TitanOperationStatus> updateCapabilityPropertyValues(String resourceInstanceId, String capabilityId, List<ComponentInstanceProperty> propertyValues);
/**
* clone and associate capability instance with property values
@@ -134,10 +123,8 @@ public interface ICapabilityInstanceOperation {
* @param capabilityInstPair
* @return
*/
- public Either<ImmutablePair<CapabilityInstData, List<PropertyValueData>>, TitanOperationStatus> cloneAssociateCapabilityInstanceWithPropertyValues(
- ComponentInstanceData createdComponentInstance, CapabilityDefinition capability,
+ public Either<ImmutablePair<CapabilityInstData, List<PropertyValueData>>, TitanOperationStatus> cloneAssociateCapabilityInstanceWithPropertyValues(ComponentInstanceData createdComponentInstance, CapabilityDefinition capability,
ImmutablePair<CapabilityInstData, GraphEdge> capabilityInstPair);
- Either<Boolean, TitanOperationStatus> validateCapabilityInstExistence(TitanVertex instanceVertex,
- String resourceInstanceId, String capabilityId);
+ Either<Boolean, TitanOperationStatus> validateCapabilityInstExistence(TitanVertex instanceVertex, String resourceInstanceId, String capabilityId);
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICapabilityOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICapabilityOperation.java
index 3b692b9607..b3be2bd6ee 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICapabilityOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICapabilityOperation.java
@@ -29,6 +29,7 @@ import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
import org.openecomp.sdc.be.model.CapabilityDefinition;
import org.openecomp.sdc.be.model.PropertyDefinition;
import org.openecomp.sdc.be.resources.data.CapabilityData;
+import org.openecomp.sdc.be.resources.data.CapabilityTypeData;
import org.openecomp.sdc.be.resources.data.PropertyData;
import com.thinkaurelius.titan.core.TitanVertex;
@@ -37,11 +38,9 @@ import fj.data.Either;
public interface ICapabilityOperation {
- public Either<CapabilityDefinition, StorageOperationStatus> addCapability(String resourceId, String capabilityName,
- CapabilityDefinition capabilityDefinition);
+ public Either<CapabilityDefinition, StorageOperationStatus> addCapability(String resourceId, String capabilityName, CapabilityDefinition capabilityDefinition);
- public Either<CapabilityDefinition, StorageOperationStatus> addCapability(String resourceId, String capabilityName,
- CapabilityDefinition capabilityDefinition, boolean inTransaction);
+ public Either<CapabilityDefinition, StorageOperationStatus> addCapability(String resourceId, String capabilityName, CapabilityDefinition capabilityDefinition, boolean inTransaction);
/**
* @param uniqueId
@@ -53,27 +52,22 @@ public interface ICapabilityOperation {
public Either<CapabilityDefinition, StorageOperationStatus> getCapability(String capabilityName, String resourceId);
- public Either<CapabilityDefinition, StorageOperationStatus> getCapability(String capabilityName, String resourceId,
- boolean inTransaction);
+ public Either<CapabilityDefinition, StorageOperationStatus> getCapability(String capabilityName, String resourceId, boolean inTransaction);
- public Either<List<ImmutablePair<CapabilityData, GraphEdge>>, TitanOperationStatus> getAllCapabilitiesPairs(
- String resourceId);
+ public Either<List<ImmutablePair<CapabilityData, GraphEdge>>, TitanOperationStatus> getAllCapabilitiesPairs(String resourceId);
- public Either<Map<String, CapabilityDefinition>, StorageOperationStatus> deleteAllCapabilities(String resourceId,
- boolean inTransaction);
+ public Either<Map<String, CapabilityDefinition>, StorageOperationStatus> deleteAllCapabilities(String resourceId, boolean inTransaction);
- public Either<CapabilityDefinition, TitanOperationStatus> getCapabilityByCapabilityData(
- CapabilityData capabilityData);
+ public Either<CapabilityDefinition, TitanOperationStatus> getCapabilityByCapabilityData(CapabilityData capabilityData);
public TitanOperationStatus getCapabilitySourcesList(String resourceId, List<String> derivedFromList);
- public Either<Map<String, PropertyData>, StorageOperationStatus> updatePropertiesOfCapability(String uniqueId,
- String capabilityType, List<PropertyDefinition> newProperties);
+ public Either<Map<String, PropertyData>, StorageOperationStatus> updatePropertiesOfCapability(String uniqueId, String capabilityType, List<PropertyDefinition> newProperties);
- public Either<Map<String, PropertyData>, StorageOperationStatus> updatePropertiesOfCapability(String uniqueId,
- String capabilityType, List<PropertyDefinition> newProperties, boolean inTransaction);
+ public Either<Map<String, PropertyData>, StorageOperationStatus> updatePropertiesOfCapability(String uniqueId, String capabilityType, List<PropertyDefinition> newProperties, boolean inTransaction);
- StorageOperationStatus addCapability(TitanVertex metadataVertex, String resourceId, String capabilityName,
- CapabilityDefinition capabilityDefinition, boolean inTransaction);
+ StorageOperationStatus addCapability(TitanVertex metadataVertex, String resourceId, String capabilityName, CapabilityDefinition capabilityDefinition, boolean inTransaction);
+
+ Either<CapabilityTypeData, TitanOperationStatus> getCapabilityTypeOfCapability(String uniqueId);
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICapabilityTypeOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICapabilityTypeOperation.java
index 6f0b5b8d13..fa06b468db 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICapabilityTypeOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ICapabilityTypeOperation.java
@@ -30,11 +30,9 @@ public interface ICapabilityTypeOperation {
* @param capabilityTypeDefinition
* @return
*/
- public Either<CapabilityTypeDefinition, StorageOperationStatus> addCapabilityType(
- CapabilityTypeDefinition capabilityTypeDefinition);
+ public Either<CapabilityTypeDefinition, StorageOperationStatus> addCapabilityType(CapabilityTypeDefinition capabilityTypeDefinition);
- public Either<CapabilityTypeDefinition, StorageOperationStatus> addCapabilityType(
- CapabilityTypeDefinition capabilityTypeDefinition, boolean inTransaction);
+ public Either<CapabilityTypeDefinition, StorageOperationStatus> addCapabilityType(CapabilityTypeDefinition capabilityTypeDefinition, boolean inTransaction);
/**
* @param uniqueId
@@ -42,6 +40,5 @@ public interface ICapabilityTypeOperation {
*/
public Either<CapabilityTypeDefinition, StorageOperationStatus> getCapabilityType(String uniqueId);
- public Either<CapabilityTypeDefinition, StorageOperationStatus> getCapabilityType(String uniqueId,
- boolean inTransaction);
+ public Either<CapabilityTypeDefinition, StorageOperationStatus> getCapabilityType(String uniqueId, boolean inTransaction);
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IComponentInstanceOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IComponentInstanceOperation.java
index e51e077906..28e70ad127 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IComponentInstanceOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IComponentInstanceOperation.java
@@ -24,6 +24,7 @@ import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.openecomp.sdc.be.dao.graph.datatype.GraphEdge;
import org.openecomp.sdc.be.dao.neo4j.GraphPropertiesDictionary;
import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
@@ -34,8 +35,12 @@ import org.openecomp.sdc.be.model.ComponentInstanceInput;
import org.openecomp.sdc.be.model.ComponentInstanceProperty;
import org.openecomp.sdc.be.model.RequirementAndRelationshipPair;
import org.openecomp.sdc.be.model.RequirementCapabilityRelDef;
+import org.openecomp.sdc.be.model.User;
import org.openecomp.sdc.be.resources.data.AttributeValueData;
+import org.openecomp.sdc.be.resources.data.CapabilityData;
import org.openecomp.sdc.be.resources.data.ComponentInstanceData;
+import org.openecomp.sdc.be.resources.data.RequirementData;
+import org.openecomp.sdc.exception.ResponseFormat;
import fj.data.Either;
@@ -52,9 +57,8 @@ public interface IComponentInstanceOperation {
* @param inTransaction
* @return
*/
- public Either<ComponentInstance, StorageOperationStatus> createComponentInstance(String containerComponentId,
- NodeTypeEnum containerNodeType, String instanceNumber, ComponentInstance componentInstance,
- NodeTypeEnum instNodeType, boolean inTransaction);
+ public Either<ComponentInstance, StorageOperationStatus> createComponentInstance(String containerComponentId, NodeTypeEnum containerNodeType, String instanceNumber, ComponentInstance componentInstance, NodeTypeEnum instNodeType,
+ boolean inTransaction);
/**
* add resource instance to service with internal transaction
@@ -64,9 +68,7 @@ public interface IComponentInstanceOperation {
* @param componentInstance
* @return
*/
- public Either<ComponentInstance, StorageOperationStatus> createComponentInstance(String containerComponentId,
- NodeTypeEnum containerNodeType, String instanceNumber, ComponentInstance componentInstance,
- NodeTypeEnum instNodeType);
+ public Either<ComponentInstance, StorageOperationStatus> createComponentInstance(String containerComponentId, NodeTypeEnum containerNodeType, String instanceNumber, ComponentInstance componentInstance, NodeTypeEnum instNodeType);
/**
* delete resource instance from component
@@ -78,11 +80,9 @@ public interface IComponentInstanceOperation {
* @param inTransaction
* @return
*/
- public Either<ComponentInstance, StorageOperationStatus> deleteComponentInstance(NodeTypeEnum containerNodeType,
- String containerComponentId, String resourceInstUid, boolean inTransaction);
+ public Either<ComponentInstance, StorageOperationStatus> deleteComponentInstance(NodeTypeEnum containerNodeType, String containerComponentId, String resourceInstUid, boolean inTransaction);
- public Either<ComponentInstance, StorageOperationStatus> deleteComponentInstance(NodeTypeEnum containerNodeType,
- String containerComponentId, String resourceInstUid);
+ public Either<ComponentInstance, StorageOperationStatus> deleteComponentInstance(NodeTypeEnum containerNodeType, String containerComponentId, String resourceInstUid);
/**
* associate 2 resource instances for a given requirement
@@ -106,16 +106,13 @@ public interface IComponentInstanceOperation {
// String serviceId, NodeTypeEnum nodeType, String fromResInstanceUid,
// String toResInstanceUid, String requirement, String relationship);
- public Either<RequirementCapabilityRelDef, StorageOperationStatus> associateResourceInstances(String serviceId,
- NodeTypeEnum nodeType, RequirementCapabilityRelDef relation, boolean inTransaction);
+ public Either<RequirementCapabilityRelDef, StorageOperationStatus> associateResourceInstances(String serviceId, NodeTypeEnum nodeType, RequirementCapabilityRelDef relation, boolean inTransaction, boolean isClone);
- public Either<RequirementCapabilityRelDef, StorageOperationStatus> associateResourceInstances(String serviceId,
- NodeTypeEnum nodeType, RequirementCapabilityRelDef relation);
+ public Either<RequirementCapabilityRelDef, StorageOperationStatus> associateResourceInstances(String serviceId, NodeTypeEnum nodeType, RequirementCapabilityRelDef relation);
/**
*
- * dissociate the relation between 2 resource instances for a given
- * requirement
+ * dissociate the relation between 2 resource instances for a given requirement
*
* @param serviceId
* @param fromResInstanceUid
@@ -124,11 +121,9 @@ public interface IComponentInstanceOperation {
* @param inTransaction
* @return
*/
- public Either<RequirementCapabilityRelDef, StorageOperationStatus> dissociateResourceInstances(String serviceId,
- NodeTypeEnum nodeType, RequirementCapabilityRelDef requirementDef, boolean inTransaction);
+ public Either<RequirementCapabilityRelDef, StorageOperationStatus> dissociateResourceInstances(String serviceId, NodeTypeEnum nodeType, RequirementCapabilityRelDef requirementDef, boolean inTransaction);
- public Either<RequirementCapabilityRelDef, StorageOperationStatus> dissociateResourceInstances(String serviceId,
- NodeTypeEnum nodeType, RequirementCapabilityRelDef requirementDef);
+ public Either<RequirementCapabilityRelDef, StorageOperationStatus> dissociateResourceInstances(String serviceId, NodeTypeEnum nodeType, RequirementCapabilityRelDef requirementDef);
/**
* update the properties of a given resource instance
@@ -139,30 +134,31 @@ public interface IComponentInstanceOperation {
* @param inTransaction
* @return
*/
- public Either<ComponentInstance, StorageOperationStatus> updateResourceInstance(String serviceId,
- NodeTypeEnum nodeType, String resourceInstanceName, ComponentInstance resourceInstance,
- boolean inTransaction);
+ public Either<ComponentInstance, StorageOperationStatus> updateResourceInstance(String serviceId, NodeTypeEnum nodeType, String resourceInstanceName, ComponentInstance resourceInstance, boolean inTransaction);
- public Either<ComponentInstance, StorageOperationStatus> updateResourceInstance(String serviceId,
- NodeTypeEnum nodeType, String resourceInstanceName, ComponentInstance resourceInstance);
+ public Either<ComponentInstance, StorageOperationStatus> updateResourceInstance(String serviceId, NodeTypeEnum nodeType, String resourceInstanceName, ComponentInstance resourceInstance);
/**
- * get all resource instances of a given service and the relations between
- * the resource instances
+ * get all resource instances of a given service and the relations between the resource instances
*
* @param serviceId
* @param inTransaction
* @return
*/
- public Either<ImmutablePair<List<ComponentInstance>, List<RequirementCapabilityRelDef>>, StorageOperationStatus> getAllComponentInstances(
- String componentId, NodeTypeEnum containerNodeType, NodeTypeEnum compInstNodeType, boolean inTransaction);
-
- public Either<List<String>, StorageOperationStatus> getAllComponentInstancesNames(String componentId,
- NodeTypeEnum nodeType, boolean inTransaction);
+ public Either<ImmutablePair<List<ComponentInstance>, List<RequirementCapabilityRelDef>>, StorageOperationStatus> getAllComponentInstances(String componentId, NodeTypeEnum containerNodeType, NodeTypeEnum compInstNodeType, boolean inTransaction);
- public Either<List<String>, StorageOperationStatus> getAllComponentInstancesNames(String componentId,
- NodeTypeEnum nodeType);
+ public Either<List<String>, StorageOperationStatus> getAllComponentInstancesNames(String componentId, NodeTypeEnum nodeType, boolean inTransaction);
+ public Either<List<String>, StorageOperationStatus> getAllComponentInstancesNames(String componentId, NodeTypeEnum nodeType);
+
+ /**
+ * get all component instance properties and values from graph
+ * @param resourceInstance
+ * @return
+ */
+ public Either<List<ComponentInstanceProperty>, StorageOperationStatus> getComponentInstancesPropertiesAndValuesFromGraph(
+ ComponentInstance resourceInstance);
+
/**
* get resource instance from id
*
@@ -171,54 +167,38 @@ public interface IComponentInstanceOperation {
*/
public Either<ComponentInstance, StorageOperationStatus> getResourceInstanceById(String resourceId);
- public Either<List<ComponentInstance>, StorageOperationStatus> deleteAllComponentInstances(String serviceId,
- NodeTypeEnum nodeType, boolean inTransaction);
+ public Either<List<ComponentInstance>, StorageOperationStatus> deleteAllComponentInstances(String serviceId, NodeTypeEnum nodeType, boolean inTransaction);
- public Either<List<ComponentInstance>, StorageOperationStatus> deleteAllComponentInstances(String serviceId,
- NodeTypeEnum nodeType);
+ public Either<List<ComponentInstance>, StorageOperationStatus> deleteAllComponentInstances(String serviceId, NodeTypeEnum nodeType);
- public Either<Integer, StorageOperationStatus> increaseAndGetResourceInstanceSpecificCounter(
- String resourceInstanceId, GraphPropertiesDictionary counterType, boolean inTransaction);
+ public Either<Integer, StorageOperationStatus> increaseAndGetResourceInstanceSpecificCounter(String resourceInstanceId, GraphPropertiesDictionary counterType, boolean inTransaction);
public String createComponentInstLogicalName(String instanceNumber, String componentInstanceName);
- public Either<Boolean, StorageOperationStatus> isComponentInstanceNameExist(String parentComponentId,
- NodeTypeEnum parentNodeType, String compInstId, String componentInstName);
+ public Either<Boolean, StorageOperationStatus> isComponentInstanceNameExist(String parentComponentId, NodeTypeEnum parentNodeType, String compInstId, String componentInstName);
- public Either<Boolean, StorageOperationStatus> validateParent(String parentId, String uniqId,
- boolean inTransaction);
+ public Either<Boolean, StorageOperationStatus> validateParent(String parentId, String uniqId, boolean inTransaction);
- public Either<ComponentInstance, StorageOperationStatus> getFullComponentInstance(
- ComponentInstance componentInstance, NodeTypeEnum compInstNodeType);
+ public Either<ComponentInstance, StorageOperationStatus> getFullComponentInstance(ComponentInstance componentInstance, NodeTypeEnum compInstNodeType);
- public Either<Boolean, StorageOperationStatus> isAvailableRequirement(ComponentInstance fromResInstance,
- RequirementAndRelationshipPair relationPair);
+ public Either<Boolean, StorageOperationStatus> isAvailableRequirement(ComponentInstance fromResInstance, RequirementAndRelationshipPair relationPair);
- public Either<Boolean, StorageOperationStatus> isAvailableCapabilty(ComponentInstance toResInstance,
- RequirementAndRelationshipPair relationPair);
+ public Either<Boolean, StorageOperationStatus> isAvailableCapabilty(ComponentInstance toResInstance, RequirementAndRelationshipPair relationPair);
- public Either<ComponentInstanceProperty, StorageOperationStatus> addPropertyValueToResourceInstance(
- ComponentInstanceProperty resourceInstanceProperty, String resourceInstanceId, Integer index,
- boolean inTransaction);
+ public Either<ComponentInstanceProperty, StorageOperationStatus> addPropertyValueToResourceInstance(ComponentInstanceProperty resourceInstanceProperty, String resourceInstanceId, Integer index, boolean inTransaction);
- public Either<ComponentInstanceProperty, StorageOperationStatus> addPropertyValueToResourceInstance(
- ComponentInstanceProperty resourceInstanceProperty, String resourceInstanceId, boolean isvalidate,
- Integer index, boolean inTransaction);
+ public Either<ComponentInstanceProperty, StorageOperationStatus> addPropertyValueToResourceInstance(ComponentInstanceProperty resourceInstanceProperty, String resourceInstanceId, boolean isvalidate, Integer index, boolean inTransaction);
/**
* Adds Attribute to resource instance
*
* @param resourceInstanceAttribute
- * * @param resourceInstanceId * @param index * @param
- * inTransaction
+ * * @param resourceInstanceId * @param index * @param inTransaction
* @return
**/
- public Either<ComponentInstanceAttribute, StorageOperationStatus> addAttributeValueToResourceInstance(
- ComponentInstanceAttribute resourceInstanceAttribute, String resourceInstanceId, Integer index,
- boolean inTransaction);
+ public Either<ComponentInstanceAttribute, StorageOperationStatus> addAttributeValueToResourceInstance(ComponentInstanceAttribute resourceInstanceAttribute, String resourceInstanceId, Integer index, boolean inTransaction);
- public Either<ComponentInstanceProperty, StorageOperationStatus> updatePropertyValueInResourceInstance(
- ComponentInstanceProperty resourceInstanceProperty, String resourceInstanceId, boolean inTransaction);
+ public Either<ComponentInstanceProperty, StorageOperationStatus> updatePropertyValueInResourceInstance(ComponentInstanceProperty resourceInstanceProperty, String resourceInstanceId, boolean inTransaction);
/**
* Updates Attribute on resource instance
@@ -228,19 +208,32 @@ public interface IComponentInstanceOperation {
* @param inTransaction
* @return
*/
- public Either<ComponentInstanceAttribute, StorageOperationStatus> updateAttributeValueInResourceInstance(
- ComponentInstanceAttribute attribute, String resourceInstanceId, boolean inTransaction);
+ public Either<ComponentInstanceAttribute, StorageOperationStatus> updateAttributeValueInResourceInstance(ComponentInstanceAttribute attribute, String resourceInstanceId, boolean inTransaction);
- public Either<AttributeValueData, TitanOperationStatus> createOrUpdateAttributeOfResourceInstance(
- ComponentInstanceAttribute attributeInstanceProperty, String resourceInstanceId);
+ public Either<AttributeValueData, TitanOperationStatus> createOrUpdateAttributeOfResourceInstance(ComponentInstanceAttribute attributeInstanceProperty, String resourceInstanceId);
+
+ public Either<ComponentInstanceInput, StorageOperationStatus> addInputValueToResourceInstance(ComponentInstanceInput input, String resourceInstanceId, Integer innerElement, boolean b);
+
+ public Either<ComponentInstanceInput, StorageOperationStatus> updateInputValueInResourceInstance(ComponentInstanceInput input, String resourceInstanceId, boolean b);
+
+ public Either<Map<String, ArtifactDefinition>, StorageOperationStatus> fetchCIEnvArtifacts(String componentInstanceId);
+
+ public StorageOperationStatus updateCustomizationUUID(String componentInstanceId);
+ /**
+ * updates componentInstance modificationTime on graph node
+ * @param componentInstance
+ * @param componentInstanceType
+ * @param modificationTime
+ * @param inTransaction
+ * @return
+ */
+ public Either<ComponentInstanceData, StorageOperationStatus> updateComponentInstanceModificationTimeAndCustomizationUuidOnGraph(ComponentInstance componentInstance, NodeTypeEnum componentInstanceType, Long modificationTime, boolean inTransaction);
- public Either<ComponentInstanceInput, StorageOperationStatus> addInputValueToResourceInstance(
- ComponentInstanceInput input, String resourceInstanceId, Integer innerElement, boolean b);
+ Either<List<ImmutablePair<CapabilityData, GraphEdge>>, TitanOperationStatus> getCapabilities(ComponentInstance compInstance, NodeTypeEnum nodeTypeEnum);
- public Either<ComponentInstanceInput, StorageOperationStatus> updateInputValueInResourceInstance(
- ComponentInstanceInput input, String resourceInstanceId, boolean b);
+ Either<List<ImmutablePair<RequirementData, GraphEdge>>, TitanOperationStatus> getRequirements(ComponentInstance compInstance, NodeTypeEnum nodeTypeEnum);
- public Either<Map<String, ArtifactDefinition>, StorageOperationStatus> fetchCIEnvArtifacts(
- String componentInstanceId);
+ Either<List<ImmutablePair<CapabilityData, GraphEdge>>, TitanOperationStatus> getFulfilledCapabilities(ComponentInstance compInstance, NodeTypeEnum nodeTypeEnum);
+ Either<List<ImmutablePair<RequirementData, GraphEdge>>, TitanOperationStatus> getFulfilledRequirements(ComponentInstance compInstance, NodeTypeEnum nodeTypeEnum);
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IComponentOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IComponentOperation.java
index e7eff13a9d..3eef59fa69 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IComponentOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IComponentOperation.java
@@ -28,23 +28,23 @@ import org.openecomp.sdc.be.datatypes.enums.FilterKeyEnum;
import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
import org.openecomp.sdc.be.model.ArtifactDefinition;
import org.openecomp.sdc.be.model.Component;
+import org.openecomp.sdc.be.model.ComponentParametersView;
import fj.data.Either;
public interface IComponentOperation {
public <T extends Component> Either<T, StorageOperationStatus> getComponent(String id, Class<T> clazz);
- public Either<List<ArtifactDefinition>, StorageOperationStatus> getComponentArtifactsForDelete(String parentId,
- NodeTypeEnum parentType, boolean inTransacton);
+ public Either<List<ArtifactDefinition>, StorageOperationStatus> getComponentArtifactsForDelete(String parentId, NodeTypeEnum parentType, boolean inTransacton);
public <T> Either<T, StorageOperationStatus> getLightComponent(String id, boolean inTransaction);
public <T> Either<T, StorageOperationStatus> getComponent(String id, boolean inTransaction);
+
+ public <T> Either<T, StorageOperationStatus> getComponent(String id, ComponentParametersView componentParametersView, boolean inTransaction);
- public <T> Either<List<T>, StorageOperationStatus> getFilteredComponents(Map<FilterKeyEnum, String> filters,
- boolean inTranscation);
+ public <T> Either<List<T>, StorageOperationStatus> getFilteredComponents(Map<FilterKeyEnum, String> filters, boolean inTranscation);
- public <T extends GraphNode> Either<T, StorageOperationStatus> getComponentByLabelAndId(String uniqueId,
- NodeTypeEnum nodeType, Class<T> clazz);
+ public <T extends GraphNode> Either<T, StorageOperationStatus> getComponentByLabelAndId(String uniqueId, NodeTypeEnum nodeType, Class<T> clazz);
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IConsumerOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IConsumerOperation.java
index 290552b382..ed43b7ce1f 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IConsumerOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IConsumerOperation.java
@@ -32,9 +32,7 @@ public interface IConsumerOperation {
* @param consumerData
* the object we want to store
* @param inTransaction
- * inTransaction is the operation part of a transaction, in case
- * the value is false the action will be committed in the end of
- * the method
+ * inTransaction is the operation part of a transaction, in case the value is false the action will be committed in the end of the method
* @return the updated object returned from the graph
*/
Either<ConsumerData, StorageOperationStatus> updateCredentials(ConsumerData consumerData, boolean inTransaction);
@@ -52,12 +50,9 @@ public interface IConsumerOperation {
* the method deletes the node with the given unique id
*
* @param consumerName
- * the unique id by witch we will look up the credential we want
- * to delete
+ * the unique id by witch we will look up the credential we want to delete
* @param inTransaction
- * inTransaction is the operation part of a transaction, in case
- * the value is false the action will be committed in the end of
- * the method
+ * inTransaction is the operation part of a transaction, in case the value is false the action will be committed in the end of the method
* @return the deleted object returned from the graph
*/
Either<ConsumerData, StorageOperationStatus> deleteCredentials(String consumerName, boolean inTransaction);
@@ -66,28 +61,24 @@ public interface IConsumerOperation {
* the method deletes the node with the given unique id
*
* @param consumerName
- * the unique id by witch we will look up the credential we want
- * to delete
+ * the unique id by witch we will look up the credential we want to delete
* @return the deleted object returned from the graph
*/
Either<ConsumerData, StorageOperationStatus> deleteCredentials(String consumerName);
/**
- * the method creates a new nod in the grape representing the supplied
- * credential object
+ * the method creates a new nod in the grape representing the supplied credential object
*
* @param consumerData
* the object we want to store
* @param inTransaction
- * is the operation part of a transaction, in case the value is
- * false the action will be committed in the end of the method
+ * is the operation part of a transaction, in case the value is false the action will be committed in the end of the method
* @return the newly stored object returned from the graph
*/
Either<ConsumerData, StorageOperationStatus> createCredentials(ConsumerData consumerData, boolean inTransaction);
/**
- * the method creates a new nod in the grape representing the supplied
- * credential object
+ * the method creates a new nod in the grape representing the supplied credential object
*
* @param consumerData
* the object we want to store
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IDataTypeOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IDataTypeOperation.java
index b7f1882b45..9377abbb76 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IDataTypeOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IDataTypeOperation.java
@@ -32,8 +32,7 @@ public interface IDataTypeOperation {
*/
public Either<DataTypeDefinition, StorageOperationStatus> addDataType(DataTypeDefinition dataTypeDefinition);
- public Either<DataTypeDefinition, StorageOperationStatus> addDataType(DataTypeDefinition dataTypeDefinition,
- boolean inTransaction);
+ public Either<DataTypeDefinition, StorageOperationStatus> addDataType(DataTypeDefinition dataTypeDefinition, boolean inTransaction);
/**
* @param name
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IElementOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IElementOperation.java
index a21c194060..0a82be8465 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IElementOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IElementOperation.java
@@ -54,18 +54,15 @@ public interface IElementOperation {
public Either<Integer, ActionStatus> getDefaultHeatTimeout();
- public <T extends GraphNode> Either<CategoryData, StorageOperationStatus> getCategoryData(String name,
- NodeTypeEnum type, Class<T> clazz);
+ public <T extends GraphNode> Either<CategoryData, StorageOperationStatus> getCategoryData(String name, NodeTypeEnum type, Class<T> clazz);
- public <T extends GraphNode> Either<org.openecomp.sdc.be.resources.data.category.CategoryData, StorageOperationStatus> getNewCategoryData(
- String name, NodeTypeEnum type, Class<T> clazz);
+ public <T extends GraphNode> Either<org.openecomp.sdc.be.resources.data.category.CategoryData, StorageOperationStatus> getNewCategoryData(String name, NodeTypeEnum type, Class<T> clazz);
public Either<Map<String, String>, ActionStatus> getResourceTypesMap();
Either<CategoryDefinition, ActionStatus> createCategory(CategoryDefinition category, NodeTypeEnum nodeType);
- Either<CategoryDefinition, ActionStatus> createCategory(CategoryDefinition category, NodeTypeEnum nodeType,
- boolean inTransaction);
+ Either<CategoryDefinition, ActionStatus> createCategory(CategoryDefinition category, NodeTypeEnum nodeType, boolean inTransaction);
Either<CategoryDefinition, ActionStatus> deleteCategory(NodeTypeEnum nodeType, String categoryId);
@@ -73,32 +70,25 @@ public interface IElementOperation {
Either<Boolean, ActionStatus> isCategoryUniqueForType(NodeTypeEnum nodeType, String normalizedName);
- Either<SubCategoryDefinition, ActionStatus> createSubCategory(String categoryId, SubCategoryDefinition subCategory,
- NodeTypeEnum nodeType);
+ Either<SubCategoryDefinition, ActionStatus> createSubCategory(String categoryId, SubCategoryDefinition subCategory, NodeTypeEnum nodeType);
- Either<SubCategoryDefinition, ActionStatus> createSubCategory(String categoryId, SubCategoryDefinition subCategory,
- NodeTypeEnum nodeType, boolean inTransaction);
+ Either<SubCategoryDefinition, ActionStatus> createSubCategory(String categoryId, SubCategoryDefinition subCategory, NodeTypeEnum nodeType, boolean inTransaction);
Either<List<CategoryDefinition>, ActionStatus> getAllCategories(NodeTypeEnum nodeType, boolean inTransaction);
Either<CategoryDefinition, ActionStatus> getCategory(NodeTypeEnum nodeType, String categoryId);
- Either<SubCategoryDefinition, ActionStatus> getSubCategoryUniqueForType(NodeTypeEnum nodeType,
- String normalizedName);
+ Either<SubCategoryDefinition, ActionStatus> getSubCategoryUniqueForType(NodeTypeEnum nodeType, String normalizedName);
- Either<Boolean, ActionStatus> isSubCategoryUniqueForCategory(NodeTypeEnum nodeType, String subCategoryNormName,
- String parentCategoryId);
+ Either<Boolean, ActionStatus> isSubCategoryUniqueForCategory(NodeTypeEnum nodeType, String subCategoryNormName, String parentCategoryId);
- Either<GroupingDefinition, ActionStatus> createGrouping(String subCategoryId, GroupingDefinition grouping,
- NodeTypeEnum nodeType);
+ Either<GroupingDefinition, ActionStatus> createGrouping(String subCategoryId, GroupingDefinition grouping, NodeTypeEnum nodeType);
Either<GroupingDefinition, ActionStatus> deleteGrouping(NodeTypeEnum nodeType, String groupingId);
Either<SubCategoryDefinition, ActionStatus> getSubCategory(NodeTypeEnum nodeType, String subCategoryId);
- Either<Boolean, ActionStatus> isGroupingUniqueForSubCategory(NodeTypeEnum nodeType, String groupingNormName,
- String parentSubCategoryId);
+ Either<Boolean, ActionStatus> isGroupingUniqueForSubCategory(NodeTypeEnum nodeType, String groupingNormName, String parentSubCategoryId);
- Either<GroupingDefinition, ActionStatus> getGroupingUniqueForType(NodeTypeEnum nodeType,
- String groupingNormalizedName);
+ Either<GroupingDefinition, ActionStatus> getGroupingUniqueForType(NodeTypeEnum nodeType, String groupingNormalizedName);
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGraphLockOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGraphLockOperation.java
index d065ce0b09..29da56205a 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGraphLockOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGraphLockOperation.java
@@ -30,7 +30,6 @@ public interface IGraphLockOperation {
public abstract StorageOperationStatus lockComponentByName(String name, NodeTypeEnum nodeType);
- public abstract StorageOperationStatus unlockComponentByName(String name, String componentId,
- NodeTypeEnum nodeType);
+ public abstract StorageOperationStatus unlockComponentByName(String name, String componentId, NodeTypeEnum nodeType);
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGroupInstanceOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGroupInstanceOperation.java
new file mode 100644
index 0000000000..8fd88f704f
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGroupInstanceOperation.java
@@ -0,0 +1,101 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.api;
+
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.openecomp.sdc.be.dao.neo4j.GraphPropertiesDictionary;
+import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
+import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
+import org.openecomp.sdc.be.model.ArtifactDefinition;
+
+import org.openecomp.sdc.be.model.ComponentInstance;
+
+import org.openecomp.sdc.be.model.ComponentInstanceProperty;
+import org.openecomp.sdc.be.model.GroupDefinition;
+import org.openecomp.sdc.be.model.GroupInstance;
+import org.openecomp.sdc.be.model.GroupInstanceProperty;
+import org.openecomp.sdc.be.resources.data.ArtifactData;
+import org.openecomp.sdc.exception.ResponseFormat;
+
+import com.thinkaurelius.titan.core.TitanVertex;
+
+import fj.data.Either;
+
+public interface IGroupInstanceOperation {
+
+ public Either<GroupInstance, StorageOperationStatus> createGroupInstance(String ComponentInstId, GroupInstance groupInstance, boolean isCreateLogicalName);
+
+ public Either<GroupInstance, StorageOperationStatus> createGroupInstance(TitanVertex ciVertex, String componentInstId, GroupInstance groupInstance, boolean isCreateLogicalName);
+
+ public Either<GroupInstance, StorageOperationStatus> deleteGroupInstanceInstance(NodeTypeEnum containerNodeType, String containerComponentId, String groupInstUid);
+
+ public Either<GroupInstance, StorageOperationStatus> updateGroupInstance(String serviceId, NodeTypeEnum nodeType, String resourceInstanceName, ComponentInstance resourceInstance);
+
+ public Either<List<GroupInstance>, StorageOperationStatus> getAllGroupInstances(String componentInstId, NodeTypeEnum compInstNodeType);
+
+ public Either<GroupInstance, TitanOperationStatus> getGroupInstanceById(String groupResourceId);
+
+ public TitanOperationStatus deleteAllGroupInstances(String componentInstId);
+
+ public Either<Integer, StorageOperationStatus> increaseAndGetGroupInstancePropertyCounter(String groupInstanceId);
+
+ public Either<Boolean, StorageOperationStatus> isGroupInstanceNameExist(String parentComponentId, NodeTypeEnum parentNodeType, String compInstId, String componentInstName);
+
+ public Either<ComponentInstance, StorageOperationStatus> getFullGroupInstance(ComponentInstance componentInstance, NodeTypeEnum compInstNodeType);
+
+ public Either<ComponentInstanceProperty, StorageOperationStatus> addPropertyValueToGroupInstance(ComponentInstanceProperty resourceInstanceProperty, String resourceInstanceId, Integer index, boolean inTransaction);
+
+ public Either<ComponentInstanceProperty, StorageOperationStatus> addPropertyValueToGroupInstance(ComponentInstanceProperty resourceInstanceProperty, String resourceInstanceId, boolean isvalidate, Integer index, boolean inTransaction);
+
+ public Either<ComponentInstanceProperty, StorageOperationStatus> updatePropertyValueInGroupInstance(ComponentInstanceProperty gropuInstanceProperty, String groupInstanceId, boolean inTransaction);
+
+ public Either<Map<String, ArtifactDefinition>, StorageOperationStatus> fetchCIEnvArtifacts(String componentInstanceId);
+
+ public StorageOperationStatus updateCustomizationUUID(String componentInstanceId);
+
+ public String createGroupInstLogicalName(String instanceNumber, String groupInstanceName);
+
+ public Either<GroupInstance, StorageOperationStatus> associateArtifactsToGroupInstance(String groupId, List<String> artifactsId);
+
+ StorageOperationStatus dissociateAndAssociateGroupsInstanceFromArtifact(String componentId, NodeTypeEnum componentTypeEnum, String oldArtifactId, ArtifactData newArtifact);
+
+ StorageOperationStatus dissociateAndAssociateGroupsInstanceFromArtifactOnGraph(String componentId, NodeTypeEnum componentTypeEnum, String oldArtifactId, ArtifactData newArtifact);
+ /**
+ * updates group instance property values
+ * @param value
+ * @param newProperties
+ * @return
+ */
+ public Either<GroupInstance, StorageOperationStatus> updateGroupInstancePropertyValues(GroupInstance value, List<GroupInstanceProperty> newProperties);
+ /**
+ * updates group instance property values
+ * @param oldGroupInstance
+ * @param newProperties
+ * @param inTransaction
+ * @return
+ */
+ public Either<GroupInstance, StorageOperationStatus> updateGroupInstancePropertyValues(GroupInstance oldGroupInstance, List<GroupInstanceProperty> newProperties, Boolean inTransaction);
+
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGroupOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGroupOperation.java
index 4252ec0622..3295adfe56 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGroupOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGroupOperation.java
@@ -26,6 +26,7 @@ import org.openecomp.sdc.be.dao.graph.datatype.GraphRelation;
import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
import org.openecomp.sdc.be.model.GroupDefinition;
+import org.openecomp.sdc.be.model.GroupProperty;
import org.openecomp.sdc.be.resources.data.ArtifactData;
import org.openecomp.sdc.be.resources.data.GroupData;
@@ -34,17 +35,13 @@ import fj.data.Either;
public interface IGroupOperation {
// add full group to component
- public Either<GroupData, TitanOperationStatus> addGroupToGraph(NodeTypeEnum nodeTypeEnum, String componentId,
- GroupDefinition groupDefinition);
+ public Either<GroupData, TitanOperationStatus> addGroupToGraph(NodeTypeEnum nodeTypeEnum, String componentId, GroupDefinition groupDefinition);
- public Either<GroupDefinition, StorageOperationStatus> addGroup(NodeTypeEnum nodeTypeEnum, String componentId,
- GroupDefinition groupDefinition);
+ public Either<GroupDefinition, StorageOperationStatus> addGroup(NodeTypeEnum nodeTypeEnum, String componentId, GroupDefinition groupDefinition);
- public Either<GroupDefinition, StorageOperationStatus> addGroup(NodeTypeEnum nodeTypeEnum, String componentId,
- GroupDefinition groupDefinition, boolean inTransaction);
+ public Either<GroupDefinition, StorageOperationStatus> addGroup(NodeTypeEnum nodeTypeEnum, String componentId, GroupDefinition groupDefinition, boolean inTransaction);
- public Either<List<GroupDefinition>, StorageOperationStatus> addGroups(NodeTypeEnum nodeTypeEnum,
- String componentId, List<GroupDefinition> groups, boolean inTransaction);
+ public Either<List<GroupDefinition>, StorageOperationStatus> addGroups(NodeTypeEnum nodeTypeEnum, String componentId, List<GroupDefinition> groups, boolean inTransaction);
// get group
public Either<GroupDefinition, TitanOperationStatus> getGroupFromGraph(String uniqueId);
@@ -54,61 +51,55 @@ public interface IGroupOperation {
public Either<GroupDefinition, StorageOperationStatus> getGroup(String uniqueId, boolean inTransaction);
// get all groups under component
- public Either<List<GroupDefinition>, TitanOperationStatus> getAllGroupsFromGraph(String componentId,
- NodeTypeEnum componentTypeEnum);
+ public Either<List<GroupDefinition>, TitanOperationStatus> getAllGroupsFromGraph(String componentId, NodeTypeEnum componentTypeEnum);
- public Either<List<GroupDefinition>, StorageOperationStatus> getAllGroups(String componentId,
- NodeTypeEnum compTypeEnum, boolean inTransaction);
+ public Either<List<GroupDefinition>, StorageOperationStatus> getAllGroups(String componentId, NodeTypeEnum compTypeEnum, boolean inTransaction);
- public Either<List<GroupDefinition>, StorageOperationStatus> getAllGroups(String componentId,
- NodeTypeEnum compTypeEnum);
+ public Either<List<GroupDefinition>, StorageOperationStatus> getAllGroups(String componentId, NodeTypeEnum compTypeEnum);
// delete all groups under component
- public Either<List<GroupDefinition>, TitanOperationStatus> deleteAllGroupsFromGraph(String componentId,
- NodeTypeEnum compTypeEnum);
+ public Either<List<GroupDefinition>, TitanOperationStatus> deleteAllGroupsFromGraph(String componentId, NodeTypeEnum compTypeEnum);
- public Either<List<GroupDefinition>, StorageOperationStatus> deleteAllGroups(String componentId,
- NodeTypeEnum compTypeEnum, boolean inTransaction);
+ public Either<List<GroupDefinition>, StorageOperationStatus> deleteAllGroups(String componentId, NodeTypeEnum compTypeEnum, boolean inTransaction);
- public Either<List<GroupDefinition>, StorageOperationStatus> deleteAllGroups(String componentId,
- NodeTypeEnum compTypeEnum);
+ public Either<List<GroupDefinition>, StorageOperationStatus> deleteAllGroups(String componentId, NodeTypeEnum compTypeEnum);
// Association
- public Either<List<String>, StorageOperationStatus> getAssociatedGroupsToComponentInstance(
- String componentInstanceId, boolean inTransaction);
+ public Either<List<String>, StorageOperationStatus> getAssociatedGroupsToComponentInstance(String componentInstanceId, boolean inTransaction);
- public Either<List<String>, StorageOperationStatus> getAssociatedGroupsToComponentInstance(
- String componentInstanceId);
+ public Either<List<String>, StorageOperationStatus> getAssociatedGroupsToComponentInstance(String componentInstanceId);
- public Either<List<String>, TitanOperationStatus> getAssociatedGroupsToComponentInstanceFromGraph(
- String componentInstanceId);
+ public Either<List<String>, TitanOperationStatus> getAssociatedGroupsToComponentInstanceFromGraph(String componentInstanceId);
- public StorageOperationStatus associateGroupsToComponentInstance(List<String> groups, String componentInstanceId,
- String compInstName, boolean inTransaction);
+ public StorageOperationStatus associateGroupsToComponentInstance(List<String> groups, String componentInstanceId, String compInstName, boolean inTransaction);
- public StorageOperationStatus associateGroupsToComponentInstance(List<String> groups, String componentInstanceId,
- String compInstName);
+ public StorageOperationStatus associateGroupsToComponentInstance(List<String> groups, String componentInstanceId, String compInstName);
- public Either<List<GraphRelation>, TitanOperationStatus> associateGroupsToComponentInstanceOnGraph(
- List<String> groups, String componentInstanceId, String compInstName);
+ public Either<List<GraphRelation>, TitanOperationStatus> associateGroupsToComponentInstanceOnGraph(List<String> groups, String componentInstanceId, String compInstName);
- public Either<List<GraphRelation>, TitanOperationStatus> dissociateAllGroupsFromArtifactOnGraph(String componentId,
- NodeTypeEnum componentTypeEnum, String artifactId);
+ public Either<List<GraphRelation>, TitanOperationStatus> dissociateAllGroupsFromArtifactOnGraph(String componentId, NodeTypeEnum componentTypeEnum, String artifactId);
- public StorageOperationStatus dissociateAllGroupsFromArtifact(String componentId, NodeTypeEnum componentTypeEnum,
- String artifactId, boolean inTransaction);
+ public StorageOperationStatus dissociateAllGroupsFromArtifact(String componentId, NodeTypeEnum componentTypeEnum, String artifactId, boolean inTransaction);
- public StorageOperationStatus dissociateAllGroupsFromArtifact(String componentId, NodeTypeEnum componentTypeEnum,
- String artifactId);
+ public StorageOperationStatus dissociateAllGroupsFromArtifact(String componentId, NodeTypeEnum componentTypeEnum, String artifactId);
- public TitanOperationStatus dissociateAndAssociateGroupsFromArtifactOnGraph(String componentId,
- NodeTypeEnum componentTypeEnum, String oldArtifactId, ArtifactData newArtifact);
+ public TitanOperationStatus dissociateAndAssociateGroupsFromArtifactOnGraph(String componentId, NodeTypeEnum componentTypeEnum, String oldArtifactId, ArtifactData newArtifact);
- public StorageOperationStatus dissociateAndAssociateGroupsFromArtifact(String componentId,
- NodeTypeEnum componentTypeEnum, String oldArtifactId, ArtifactData newArtifact, boolean inTransaction);
+ public StorageOperationStatus dissociateAndAssociateGroupsFromArtifact(String componentId, NodeTypeEnum componentTypeEnum, String oldArtifactId, ArtifactData newArtifact, boolean inTransaction);
- public StorageOperationStatus dissociateAndAssociateGroupsFromArtifact(String componentId,
- NodeTypeEnum componentTypeEnum, String oldArtifactId, ArtifactData newArtifact);
+ public StorageOperationStatus dissociateAndAssociateGroupsFromArtifact(String componentId, NodeTypeEnum componentTypeEnum, String oldArtifactId, ArtifactData newArtifact);
public boolean isGroupExist(String groupName, boolean inTransaction);
+ /**
+ * Updates Group Metadata (name and properties)
+ * @param groupToUpdateFromUniqueId
+ * @param newName
+ * @param groupToUpdateTo
+ * @param inTransaction
+ * @return
+ */
+ public Either<GroupDefinition, StorageOperationStatus> updateGroupName(String groupToUpdateFromUniqueId,
+ String newName, GroupDefinition groupToUpdateTo, boolean inTransaction);
+
+ public StorageOperationStatus validateAndUpdatePropertyValue(GroupProperty property);
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGroupTypeOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGroupTypeOperation.java
index 2b612579b6..87a0dccfab 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGroupTypeOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IGroupTypeOperation.java
@@ -34,8 +34,7 @@ public interface IGroupTypeOperation {
*/
public Either<GroupTypeDefinition, StorageOperationStatus> addGroupType(GroupTypeDefinition groupTypeDefinition);
- public Either<GroupTypeDefinition, StorageOperationStatus> addGroupType(GroupTypeDefinition groupTypeDefinition,
- boolean inTransaction);
+ public Either<GroupTypeDefinition, StorageOperationStatus> addGroupType(GroupTypeDefinition groupTypeDefinition, boolean inTransaction);
/**
* @param uniqueId
@@ -47,14 +46,11 @@ public interface IGroupTypeOperation {
public Either<GroupTypeDefinition, StorageOperationStatus> getLatestGroupTypeByType(String name);
- public Either<GroupTypeDefinition, StorageOperationStatus> getLatestGroupTypeByType(String name,
- boolean inTransaction);
+ public Either<GroupTypeDefinition, StorageOperationStatus> getLatestGroupTypeByType(String name, boolean inTransaction);
- public Either<GroupTypeDefinition, StorageOperationStatus> getGroupTypeByTypeAndVersion(String name,
- String version);
+ public Either<GroupTypeDefinition, StorageOperationStatus> getGroupTypeByTypeAndVersion(String name, String version);
- public Either<GroupTypeDefinition, StorageOperationStatus> getGroupTypeByTypeAndVersion(String name, String version,
- boolean inTransaction);
+ public Either<GroupTypeDefinition, StorageOperationStatus> getGroupTypeByTypeAndVersion(String name, String version, boolean inTransaction);
public Either<GroupTypeData, TitanOperationStatus> getLatestGroupTypeByNameFromGraph(String name);
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IInputsOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IInputsOperation.java
index 2f1f2a70cf..386864a8b0 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IInputsOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IInputsOperation.java
@@ -39,43 +39,33 @@ import fj.data.Either;
public interface IInputsOperation {
- Either<String, StorageOperationStatus> deleteInput(String inputId);
+ Either<InputDefinition, StorageOperationStatus> deleteInput(String inputId);
- Either<List<InputDefinition>, TitanOperationStatus> addInputsToGraph(String componentId, NodeTypeEnum nodeType,
- Map<String, InputDefinition> inputs, Map<String, DataTypeDefinition> dataTypes);
+ Either<List<InputDefinition>, TitanOperationStatus> addInputsToGraph(String componentId, NodeTypeEnum nodeType, Map<String, InputDefinition> inputs, Map<String, DataTypeDefinition> dataTypes);
- Either<List<InputDefinition>, StorageOperationStatus> addInputsToComponent(String resourceId, NodeTypeEnum nodeType,
- ComponentInstInputsMap componentInsInputs, Map<String, DataTypeDefinition> dataTypes);
+ Either<List<InputDefinition>, StorageOperationStatus> addInputsToComponent(String resourceId, NodeTypeEnum nodeType, ComponentInstInputsMap componentInsInputs, Map<String, DataTypeDefinition> dataTypes);
TitanOperationStatus findNodeNonInheretedInputs(String uniqueId, List<InputDefinition> inputs);
- Either<List<InputDefinition>, StorageOperationStatus> getInputsOfComponent(String compId, String fromName,
- int amount);
+ Either<List<InputDefinition>, StorageOperationStatus> getInputsOfComponent(String compId, String fromName, int amount);
- Either<List<ComponentInstanceInput>, TitanOperationStatus> getAllInputsOfResourceInstance(
- ComponentInstance compInstance);
+ Either<List<ComponentInstanceInput>, TitanOperationStatus> getAllInputsOfResourceInstance(ComponentInstance compInstance);
- Either<Map<String, InputDefinition>, StorageOperationStatus> deleteAllInputsAssociatedToNode(NodeTypeEnum nodeType,
- String uniqueId);
+ Either<Map<String, InputDefinition>, StorageOperationStatus> deleteAllInputsAssociatedToNode(NodeTypeEnum nodeType, String uniqueId);
// TitanOperationStatus findNodeNonInheretedAttribues(String uniqueId,
// NodeTypeEnum nodeType, List<AttributeDefinition> attributes);
- Either<InputsData, StorageOperationStatus> addInput(String inputName, InputDefinition inputDefinition,
- String componentId, NodeTypeEnum nodeType);
+ Either<InputsData, StorageOperationStatus> addInput(String inputName, InputDefinition inputDefinition, String componentId, NodeTypeEnum nodeType);
- Either<InputsData, TitanOperationStatus> addInputToGraph(String propertyName, InputDefinition inputDefinition,
- String componentId, NodeTypeEnum nodeType);
+ Either<InputsData, TitanOperationStatus> addInputToGraph(String propertyName, InputDefinition inputDefinition, String componentId, NodeTypeEnum nodeType);
- Either<AttributeData, StorageOperationStatus> updateInput(String inputId, InputDefinition newInDef,
- Map<String, DataTypeDefinition> dataTypes);
+ Either<AttributeData, StorageOperationStatus> updateInput(String inputId, InputDefinition newInDef, Map<String, DataTypeDefinition> dataTypes);
TitanOperationStatus findAllResourceInputs(String uniqueId, List<InputDefinition> inputs);
- Either<InputDefinition, StorageOperationStatus> getInputById(String uniqueId, boolean skipProperties,
- boolean skipinputsValue);
+ Either<InputDefinition, StorageOperationStatus> getInputById(String uniqueId, boolean skipProperties, boolean skipinputsValue);
- TitanOperationStatus addInputsToGraph(TitanVertex metadata, String componentId, Map<String, InputDefinition> inputs,
- Map<String, DataTypeDefinition> dataTypes);
+ TitanOperationStatus addInputsToGraph(TitanVertex metadata, String componentId, Map<String, InputDefinition> inputs, Map<String, DataTypeDefinition> dataTypes);
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IInterfaceLifecycleOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IInterfaceLifecycleOperation.java
index bbcb61fea8..e46460a502 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IInterfaceLifecycleOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IInterfaceLifecycleOperation.java
@@ -33,17 +33,13 @@ import fj.data.Either;
public interface IInterfaceLifecycleOperation {
- public Either<InterfaceDefinition, StorageOperationStatus> createInterfaceOnResource(InterfaceDefinition interf,
- String resourceId, String interfaceName, boolean failIfExist, boolean inTransaction);
+ public Either<InterfaceDefinition, StorageOperationStatus> createInterfaceOnResource(InterfaceDefinition interf, String resourceId, String interfaceName, boolean failIfExist, boolean inTransaction);
- public StorageOperationStatus createInterfaceOnResource(InterfaceDefinition interf, String resourceId,
- String interfaceName, boolean failIfExist, boolean inTransaction, TitanVertex metadataVertex);
+ public StorageOperationStatus createInterfaceOnResource(InterfaceDefinition interf, String resourceId, String interfaceName, boolean failIfExist, boolean inTransaction, TitanVertex metadataVertex);
- public Either<InterfaceDefinition, StorageOperationStatus> addInterfaceToResource(InterfaceDefinition interf,
- String resourceId, String interfaceName);
+ public Either<InterfaceDefinition, StorageOperationStatus> addInterfaceToResource(InterfaceDefinition interf, String resourceId, String interfaceName);
- public Either<InterfaceDefinition, StorageOperationStatus> addInterfaceToResource(InterfaceDefinition interf,
- String resourceId, String interfaceName, boolean inTransaction);
+ public Either<InterfaceDefinition, StorageOperationStatus> addInterfaceToResource(InterfaceDefinition interf, String resourceId, String interfaceName, boolean inTransaction);
// public Either<InterfaceDefinition, StorageOperationStatus>
// getInterface(String interfaceId);
@@ -51,42 +47,31 @@ public interface IInterfaceLifecycleOperation {
// public Either<InterfaceDefinition, StorageOperationStatus>
// getInterface(String interfaceId, boolean inTransaction);
- public Either<Operation, StorageOperationStatus> updateInterfaceOperation(String resourceId, String interfaceName,
- String operationName, Operation interf);
+ public Either<Operation, StorageOperationStatus> updateInterfaceOperation(String resourceId, String interfaceName, String operationName, Operation interf);
- public Either<Operation, StorageOperationStatus> updateInterfaceOperation(String resourceId, String interfaceName,
- String operationName, Operation interf, boolean inTransaction);
+ public Either<Operation, StorageOperationStatus> updateInterfaceOperation(String resourceId, String interfaceName, String operationName, Operation interf, boolean inTransaction);
- public Either<Operation, StorageOperationStatus> deleteInterfaceOperation(String resourceId, String interfaceName,
- String operationName);
+ public Either<Operation, StorageOperationStatus> deleteInterfaceOperation(String resourceId, String interfaceName, String operationName);
- public Either<Operation, StorageOperationStatus> deleteInterfaceOperation(String resourceId, String interfaceName,
- String operationName, boolean inTransaction);
+ public Either<Operation, StorageOperationStatus> deleteInterfaceOperation(String resourceId, String interfaceName, String operationName, boolean inTransaction);
- public Either<Map<String, InterfaceDefinition>, StorageOperationStatus> getAllInterfacesOfResource(
- String resourceId, boolean recursively, boolean inTransaction);
+ public Either<Map<String, InterfaceDefinition>, StorageOperationStatus> getAllInterfacesOfResource(String resourceId, boolean recursively, boolean inTransaction);
- public Either<Map<String, InterfaceDefinition>, StorageOperationStatus> getAllInterfacesOfResource(
- String resourceId, boolean recursively);
+ public Either<Map<String, InterfaceDefinition>, StorageOperationStatus> getAllInterfacesOfResource(String resourceId, boolean recursively);
- public Either<InterfaceDefinition, StorageOperationStatus> deleteInterfaceOfResourceOnGraph(String resourceId,
- InterfaceDefinition interfaceDef, boolean inTransaction);
+ public Either<InterfaceDefinition, StorageOperationStatus> deleteInterfaceOfResourceOnGraph(String resourceId, InterfaceDefinition interfaceDef, boolean inTransaction);
public Either<InterfaceDefinition, StorageOperationStatus> createInterfaceType(InterfaceDefinition interf);
- public Either<InterfaceDefinition, StorageOperationStatus> createInterfaceType(InterfaceDefinition interf,
- boolean inTransaction);
+ public Either<InterfaceDefinition, StorageOperationStatus> createInterfaceType(InterfaceDefinition interf, boolean inTransaction);
public Either<InterfaceDefinition, StorageOperationStatus> getInterface(String interfaceId);
- public StorageOperationStatus associateInterfaceToNode(GraphNode node, InterfaceDefinition interfaceDefinition,
- TitanVertex metadataVertex);
+ public StorageOperationStatus associateInterfaceToNode(GraphNode node, InterfaceDefinition interfaceDefinition, TitanVertex metadataVertex);
- public Either<Operation, StorageOperationStatus> getSpecificOperation(String resourceId, String interfaceType,
- String operationName);
+ public Either<Operation, StorageOperationStatus> getSpecificOperation(String resourceId, String interfaceType, String operationName);
- public Either<InterfaceDefinition, StorageOperationStatus> dissociateInterfaceFromNode(GraphNode node,
- InterfaceDefinition interfaceDefinition);
+ public Either<InterfaceDefinition, StorageOperationStatus> dissociateInterfaceFromNode(GraphNode node, InterfaceDefinition interfaceDefinition);
public String getShortInterfaceName(InterfaceDataDefinition interfaceDefinition);
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ILifecycleOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ILifecycleOperation.java
index 3b82eb692c..ab99f20d4c 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ILifecycleOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ILifecycleOperation.java
@@ -33,32 +33,23 @@ public interface ILifecycleOperation {
public ResourceOperation getResourceOperation();
- public Either<User, StorageOperationStatus> getComponentOwner(String resourceId, NodeTypeEnum nodeType,
- boolean inTransaction);
+ public Either<User, StorageOperationStatus> getComponentOwner(String resourceId, NodeTypeEnum nodeType, boolean inTransaction);
- public Either<? extends Component, StorageOperationStatus> checkinComponent(NodeTypeEnum nodeType,
- Component component, User modifier, User owner, boolean inTransaction);
+ public Either<? extends Component, StorageOperationStatus> checkinComponent(NodeTypeEnum nodeType, Component component, User modifier, User owner, boolean inTransaction);
- public Either<? extends Component, StorageOperationStatus> requestCertificationComponent(NodeTypeEnum nodeType,
- Component component, User modifier, User owner, boolean inTransaction);
+ public Either<? extends Component, StorageOperationStatus> requestCertificationComponent(NodeTypeEnum nodeType, Component component, User modifier, User owner, boolean inTransaction);
- public Either<? extends Component, StorageOperationStatus> startComponentCertification(NodeTypeEnum nodeType,
- Component component, User modifier, User owner, boolean inTransaction);
+ public Either<? extends Component, StorageOperationStatus> startComponentCertification(NodeTypeEnum nodeType, Component component, User modifier, User owner, boolean inTransaction);
- public Either<? extends Component, StorageOperationStatus> checkoutComponent(NodeTypeEnum nodeType,
- Component component, User modifier, User currentOwner, boolean inTransaction);
+ public Either<? extends Component, StorageOperationStatus> checkoutComponent(NodeTypeEnum nodeType, Component component, User modifier, User currentOwner, boolean inTransaction);
- public Either<? extends Component, StorageOperationStatus> certifyComponent(NodeTypeEnum nodeType,
- Component component, User modifier, User currentOwner, boolean inTransaction);
+ public Either<? extends Component, StorageOperationStatus> certifyComponent(NodeTypeEnum nodeType, Component component, User modifier, User currentOwner, boolean inTransaction);
- public Either<? extends Component, StorageOperationStatus> cancelOrFailCertification(NodeTypeEnum nodeType,
- Component component, User modifier, User owner, LifecycleStateEnum nextState, boolean b);
+ public Either<? extends Component, StorageOperationStatus> cancelOrFailCertification(NodeTypeEnum nodeType, Component component, User modifier, User owner, LifecycleStateEnum nextState, boolean b);
- public Either<Boolean, StorageOperationStatus> deleteOldComponentVersions(NodeTypeEnum nodeType,
- String componentName, String uuid, boolean inTransaction);
+ public Either<Boolean, StorageOperationStatus> deleteOldComponentVersions(NodeTypeEnum nodeType, String componentName, String uuid, boolean inTransaction);
- public Either<? extends Component, StorageOperationStatus> undoCheckout(NodeTypeEnum nodeType, Component resource,
- User modifier, User currentOwner, boolean inTransaction);
+ public Either<? extends Component, StorageOperationStatus> undoCheckout(NodeTypeEnum nodeType, Component resource, User modifier, User currentOwner, boolean inTransaction);
public ComponentOperation getComponentOperation(NodeTypeEnum componentType);
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IPolicyTypeOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IPolicyTypeOperation.java
index fc689c81e2..d25d11331d 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IPolicyTypeOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IPolicyTypeOperation.java
@@ -32,7 +32,6 @@ public interface IPolicyTypeOperation {
Either<PolicyTypeDefinition, StorageOperationStatus> getPolicyType(String uniqueId, boolean inTransaction);
- Either<PolicyTypeDefinition, StorageOperationStatus> addPolicyType(PolicyTypeDefinition policyType,
- boolean inTransaction);
+ Either<PolicyTypeDefinition, StorageOperationStatus> addPolicyType(PolicyTypeDefinition policyType, boolean inTransaction);
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IProductOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IProductOperation.java
index bbfea262a7..76f95f3c2b 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IProductOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IProductOperation.java
@@ -37,8 +37,7 @@ public interface IProductOperation extends IComponentOperation {
public Either<Product, StorageOperationStatus> deleteProduct(String productId, boolean inTransaction);
- public Either<List<Product>, StorageOperationStatus> getFollowed(String userId,
- Set<LifecycleStateEnum> lifecycleStates, Set<LifecycleStateEnum> lastStateStates, boolean inTransaction);
+ public Either<List<Product>, StorageOperationStatus> getFollowed(String userId, Set<LifecycleStateEnum> lifecycleStates, Set<LifecycleStateEnum> lastStateStates, boolean inTransaction);
public void rollback();
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IPropertyOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IPropertyOperation.java
index 6309510f6d..f9f960fdbf 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IPropertyOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IPropertyOperation.java
@@ -41,9 +41,7 @@ public interface IPropertyOperation {
* @param id
* @return
*
- * public Either<PropertyDefinition, StorageOperationStatus>
- * addPropertyToResource( String propertyName, PropertyDefinition
- * propertyDefinition, NodeTypeEnum nodeType, String id);
+ * public Either<PropertyDefinition, StorageOperationStatus> addPropertyToResource( String propertyName, PropertyDefinition propertyDefinition, NodeTypeEnum nodeType, String id);
*/
/**
@@ -55,8 +53,7 @@ public interface IPropertyOperation {
* - resource unique id
* @return
*/
- public Either<PropertyDefinition, StorageOperationStatus> getPropertyOfResource(String propertyName,
- String resourceId);
+ public Either<PropertyDefinition, StorageOperationStatus> getPropertyOfResource(String propertyName, String resourceId);
/**
* Delete all properties of resource
@@ -65,16 +62,13 @@ public interface IPropertyOperation {
* @param uniqueId
* @return
*/
- public Either<Map<String, PropertyDefinition>, StorageOperationStatus> deleteAllPropertiesAssociatedToNode(
- NodeTypeEnum nodeType, String uniqueId);
+ public Either<Map<String, PropertyDefinition>, StorageOperationStatus> deleteAllPropertiesAssociatedToNode(NodeTypeEnum nodeType, String uniqueId);
- public boolean isPropertyDefaultValueValid(IComplexDefaultValue propertyDefinition,
- Map<String, DataTypeDefinition> dataTypes);
+ public boolean isPropertyDefaultValueValid(IComplexDefaultValue propertyDefinition, Map<String, DataTypeDefinition> dataTypes);
public boolean isPropertyTypeValid(IComplexDefaultValue propertyDefinition);
- public ImmutablePair<String, Boolean> isPropertyInnerTypeValid(IComplexDefaultValue propertyDefinition,
- Map<String, DataTypeDefinition> dataTypes);
+ public ImmutablePair<String, Boolean> isPropertyInnerTypeValid(IComplexDefaultValue propertyDefinition, Map<String, DataTypeDefinition> dataTypes);
/**
* @param dataTypeDefinition
@@ -82,8 +76,7 @@ public interface IPropertyOperation {
*/
public Either<DataTypeDefinition, StorageOperationStatus> addDataType(DataTypeDefinition dataTypeDefinition);
- public Either<DataTypeDefinition, StorageOperationStatus> addDataType(DataTypeDefinition dataTypeDefinition,
- boolean inTransaction);
+ public Either<DataTypeDefinition, StorageOperationStatus> addDataType(DataTypeDefinition dataTypeDefinition, boolean inTransaction);
/**
* @param name
@@ -93,18 +86,14 @@ public interface IPropertyOperation {
public Either<DataTypeDefinition, StorageOperationStatus> getDataTypeByName(String name, boolean inTransaction);
- public Either<DataTypeDefinition, StorageOperationStatus> getDataTypeByNameWithoutDerived(String name,
- boolean inTransaction);
+ public Either<DataTypeDefinition, StorageOperationStatus> getDataTypeByNameWithoutDerived(String name, boolean inTransaction);
public Either<DataTypeDefinition, StorageOperationStatus> getDataTypeByNameWithoutDerived(String name);
- public StorageOperationStatus validateAndUpdateProperty(IComplexDefaultValue propertyDefinition,
- Map<String, DataTypeDefinition> dataTypes);
+ public StorageOperationStatus validateAndUpdateProperty(IComplexDefaultValue propertyDefinition, Map<String, DataTypeDefinition> dataTypes);
- public Either<DataTypeDefinition, StorageOperationStatus> updateDataType(DataTypeDefinition newDataTypeDefinition,
- DataTypeDefinition oldDataTypeDefinition, boolean inTransaction);
+ public Either<DataTypeDefinition, StorageOperationStatus> updateDataType(DataTypeDefinition newDataTypeDefinition, DataTypeDefinition oldDataTypeDefinition, boolean inTransaction);
- public Either<DataTypeDefinition, StorageOperationStatus> updateDataType(DataTypeDefinition newDataTypeDefinition,
- DataTypeDefinition oldDataTypeDefinition);
+ public Either<DataTypeDefinition, StorageOperationStatus> updateDataType(DataTypeDefinition newDataTypeDefinition, DataTypeDefinition oldDataTypeDefinition);
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IRequirementOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IRequirementOperation.java
index a7a9bf6013..a2af44cf61 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IRequirementOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IRequirementOperation.java
@@ -42,17 +42,13 @@ public interface IRequirementOperation {
* @param uniqueId
* @return
*/
- public Either<RequirementDefinition, StorageOperationStatus> addRequirementToResource(String reqName,
- RequirementDefinition reqDefinition, String resourceId);
+ public Either<RequirementDefinition, StorageOperationStatus> addRequirementToResource(String reqName, RequirementDefinition reqDefinition, String resourceId);
- public Either<RequirementDefinition, StorageOperationStatus> addRequirementToResource(String reqName,
- RequirementDefinition reqDefinition, String resourceId, boolean inTransaction);
+ public Either<RequirementDefinition, StorageOperationStatus> addRequirementToResource(String reqName, RequirementDefinition reqDefinition, String resourceId, boolean inTransaction);
- public Either<RequirementDefinition, StorageOperationStatus> addRequirementImplToResource(String reqName,
- RequirementImplDef reqDefinition, String resourceId, String parentReqUniqueId);
+ public Either<RequirementDefinition, StorageOperationStatus> addRequirementImplToResource(String reqName, RequirementImplDef reqDefinition, String resourceId, String parentReqUniqueId);
- public Either<RequirementDefinition, StorageOperationStatus> addRequirementImplToResource(String reqName,
- RequirementImplDef reqDefinition, String resourceId, String parentReqUniqueId, boolean inTransaction);
+ public Either<RequirementDefinition, StorageOperationStatus> addRequirementImplToResource(String reqName, RequirementImplDef reqDefinition, String resourceId, String parentReqUniqueId, boolean inTransaction);
/**
* get requirement of resource
@@ -61,25 +57,19 @@ public interface IRequirementOperation {
* @param resourceId
* @return
*/
- public Either<RequirementDefinition, StorageOperationStatus> getRequirementOfResource(String reqName,
- String resourceId);
+ public Either<RequirementDefinition, StorageOperationStatus> getRequirementOfResource(String reqName, String resourceId);
- public Either<RequirementDefinition, StorageOperationStatus> getRequirementOfResource(String reqName,
- String resourceId, boolean inTransaction);
+ public Either<RequirementDefinition, StorageOperationStatus> getRequirementOfResource(String reqName, String resourceId, boolean inTransaction);
- public Either<Map<String, RequirementDefinition>, StorageOperationStatus> getAllResourceRequirements(
- String resourceId, boolean inTransaction);
+ public Either<Map<String, RequirementDefinition>, StorageOperationStatus> getAllResourceRequirements(String resourceId, boolean inTransaction);
- Either<Map<String, List<RequirementDefinition>>, StorageOperationStatus> getAllRequirementsOfResourceOnly(
- String resourceId, boolean inTransaction);
+ Either<Map<String, List<RequirementDefinition>>, StorageOperationStatus> getAllRequirementsOfResourceOnly(String resourceId, boolean inTransaction);
public Either<Map<String, RequirementDefinition>, TitanOperationStatus> getResourceRequirements(String resourceId);
- public Either<Map<String, RequirementDefinition>, StorageOperationStatus> deleteAllRequirements(String resourceId,
- boolean inTransaction);
+ public Either<Map<String, RequirementDefinition>, StorageOperationStatus> deleteAllRequirements(String resourceId, boolean inTransaction);
public Either<RequirementDefinition, TitanOperationStatus> getRequirement(String uniqueId);
- StorageOperationStatus addRequirementToResource(TitanVertex metadataVertex, String reqName,
- RequirementDefinition reqDefinition, String resourceId, boolean inTransaction);
+ StorageOperationStatus addRequirementToResource(TitanVertex metadataVertex, String reqName, RequirementDefinition reqDefinition, String resourceId, boolean inTransaction);
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IResourceOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IResourceOperation.java
index 759380c236..01db3a5105 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IResourceOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IResourceOperation.java
@@ -51,21 +51,17 @@ public interface IResourceOperation extends IComponentOperation {
public Either<Resource, StorageOperationStatus> getResource(String resourceId, boolean inTransaction);
/**
- * the method retrieves all the certified resources, the returned values are
- * only abstract or only none abstract according to the supplied parameters.
+ * the method retrieves all the certified resources, the returned values are only abstract or only none abstract according to the supplied parameters.
*
* @param getAbstract
- * the value defines which resources to return only abstract or
- * only none abstract
+ * the value defines which resources to return only abstract or only none abstract
* @return
*/
public Either<List<Resource>, StorageOperationStatus> getAllCertifiedResources(boolean getAbstract);
- public Either<List<Resource>, StorageOperationStatus> getAllCertifiedResources(boolean getAbstract,
- Boolean isHighest);
+ public Either<List<Resource>, StorageOperationStatus> getAllCertifiedResources(boolean getAbstract, Boolean isHighest);
- public Either<Boolean, StorageOperationStatus> validateResourceNameExists(String resourceName,
- ResourceTypeEnum resourceType);
+ public Either<Boolean, StorageOperationStatus> validateResourceNameExists(String resourceName, ResourceTypeEnum resourceType);
public Either<Resource, StorageOperationStatus> deleteResource(String resourceId);
@@ -80,39 +76,31 @@ public interface IResourceOperation extends IComponentOperation {
// public Either<List<ArtifactDefinition>, StorageOperationStatus>
// getResourceArtifactsForDelete(Resource resource);
- public Either<List<Resource>, StorageOperationStatus> getFollowed(String userId,
- Set<LifecycleStateEnum> lifecycleStates, Set<LifecycleStateEnum> lastStateStates, boolean inTransaction);
+ public Either<List<Resource>, StorageOperationStatus> getFollowed(String userId, Set<LifecycleStateEnum> lifecycleStates, Set<LifecycleStateEnum> lastStateStates, boolean inTransaction);
- public Either<Set<Resource>, StorageOperationStatus> getCatalogData(Map<String, Object> propertiesToMatch,
- boolean inTransaction);
+ public Either<Set<Resource>, StorageOperationStatus> getCatalogData(Map<String, Object> propertiesToMatch, boolean inTransaction);
public Either<Resource, StorageOperationStatus> getLatestByName(String resourceName, boolean inTransaction);
- public Either<Resource, StorageOperationStatus> overrideResource(Resource resource, Resource resourceSaved,
- boolean inTransaction);
+ public Either<Resource, StorageOperationStatus> overrideResource(Resource resource, Resource resourceSaved, boolean inTransaction);
- public Either<List<Resource>, StorageOperationStatus> getTesterFollowed(String userId,
- Set<LifecycleStateEnum> lifecycleStates, boolean inTransaction);
+ public Either<List<Resource>, StorageOperationStatus> getTesterFollowed(String userId, Set<LifecycleStateEnum> lifecycleStates, boolean inTransaction);
public Either<List<Resource>, StorageOperationStatus> getResourceListByUuid(String uuid, boolean inTransaction);
public Either<List<Resource>, StorageOperationStatus> getLatestResourceByUuid(String uuid, boolean inTransaction);
- public Either<List<Resource>, StorageOperationStatus> getResourceListBySystemName(String systemName,
- boolean inTransaction);
+ public Either<List<Resource>, StorageOperationStatus> getResourceListBySystemName(String systemName, boolean inTransaction);
public Either<List<Resource>, StorageOperationStatus> getResourceCatalogData(boolean inTransaction);
- public Either<List<Resource>, StorageOperationStatus> getResourceCatalogDataVFLatestCertifiedAndNonCertified(
- boolean inTransaction);
+ public Either<List<Resource>, StorageOperationStatus> getResourceCatalogDataVFLatestCertifiedAndNonCertified(boolean inTransaction);
- public Either<List<Resource>, StorageOperationStatus> getResourceByNameAndVersion(String name, String version,
- boolean inTransaction);
+ public Either<List<Resource>, StorageOperationStatus> getResourceByNameAndVersion(String name, String version, boolean inTransaction);
public Either<List<Resource>, StorageOperationStatus> getResourceByNameAndVersion(String name, String version);
- public Either<Resource, StorageOperationStatus> getResourceBySystemNameAndVersion(String name, String version,
- Map<String, Object> additionalParams, boolean inTransaction);
+ public Either<Resource, StorageOperationStatus> getResourceBySystemNameAndVersion(String name, String version, Map<String, Object> additionalParams, boolean inTransaction);
// public Either<List<Resource>, StorageOperationStatus>
// getAllNotCheckoutResources(boolean getAbstract);
@@ -124,8 +112,35 @@ public interface IResourceOperation extends IComponentOperation {
public Either<Boolean, StorageOperationStatus> isResourceInUse(String resourceToDelete);
- public Either<Resource, StorageOperationStatus> getLatestByToscaResourceName(String toscaResourceName,
- boolean inTransaction);
+ public Either<Resource, StorageOperationStatus> getLatestByToscaResourceName(String toscaResourceName, boolean inTransaction);
public Either<Boolean, StorageOperationStatus> validateToscaResourceNameExists(String templateName);
+
+ public Either<Boolean, StorageOperationStatus> validateToscaResourceNameExtends(String templateNameCurrent, String templateNameExtends);
+
+ /**
+ *
+ * @param resource the resource to look for its derived resources
+ * @return all resources which derives from the given resource
+ */
+ Either<List<Resource>, StorageOperationStatus> getAllDerivedResources(Resource resource);
+
+ /**
+ *
+ * @return all root resources (i.e all normatives with tosca name {@code Resource.ROOT_RESOURCE}
+ */
+ Either<List<Resource>, StorageOperationStatus> getRootResources();
+
+ /**
+ *
+ * @return all resources with type VF
+ */
+ Either<List<Resource>, StorageOperationStatus> getVFResources();
+
+ /**
+ *
+ * @return all resources
+ */
+ Either<List<Resource>, StorageOperationStatus> getAll();
+
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IServiceOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IServiceOperation.java
index 05eb7c66f6..f08c52e0fa 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IServiceOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IServiceOperation.java
@@ -40,8 +40,6 @@ public interface IServiceOperation extends IComponentOperation {
public Either<Service, StorageOperationStatus> getService(String uniqueId);
public Either<Service, StorageOperationStatus> getService(String uniqueId, boolean inTransaction);
- // public Either<Service, StorageOperationStatus> getService_tx(String
- // uniqueId, boolean inTransaction);
public Either<Service, StorageOperationStatus> deleteService(String uniqueId);
@@ -49,40 +47,33 @@ public interface IServiceOperation extends IComponentOperation {
public Either<Boolean, StorageOperationStatus> validateServiceNameExists(String serviceName);
- 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);
public Either<Service, StorageOperationStatus> updateService(Service service, boolean inTransaction);
- public Either<Set<Service>, StorageOperationStatus> getCatalogData(Map<String, Object> propertiesToMatch,
- boolean inTransaction);
+ public Either<Set<Service>, StorageOperationStatus> getCatalogData(Map<String, Object> propertiesToMatch, boolean inTransaction);
- public Either<List<Service>, StorageOperationStatus> getTesterFollowed(String userId,
- Set<LifecycleStateEnum> lifecycleStates, boolean inTransaction);
+ public Either<List<Service>, StorageOperationStatus> getTesterFollowed(String userId, Set<LifecycleStateEnum> lifecycleStates, boolean inTransaction);
- 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);
- public Either<Service, StorageOperationStatus> updateDestributionStatus(Service service, User user,
- DistributionStatusEnum distributionStatus);
+ public Either<Service, StorageOperationStatus> updateDestributionStatus(Service service, User user, DistributionStatusEnum distributionStatus);
public Either<List<Service>, StorageOperationStatus> getServiceCatalogData(boolean inTransaction);
- public Either<List<Service>, StorageOperationStatus> getServiceCatalogDataLatestCertifiedAndNotCertified(
- boolean inTransaction);
+ public Either<List<Service>, StorageOperationStatus> getServiceCatalogDataLatestCertifiedAndNotCertified(boolean inTransaction);
- public Either<Service, StorageOperationStatus> getServiceByNameAndVersion(String name, String version,
- Map<String, Object> additionalParams, boolean inTransaction);
+ public Either<Service, StorageOperationStatus> getServiceByNameAndVersion(String name, String version, Map<String, Object> additionalParams, boolean inTransaction);
public Either<Service, StorageOperationStatus> getServiceByNameAndVersion(String name, String version);
- public Either<Service, StorageOperationStatus> getServiceBySystemNameAndVersion(String name, String version,
- boolean inTransaction);
+ public Either<Service, StorageOperationStatus> getServiceBySystemNameAndVersion(String name, String version, boolean inTransaction);
public Either<List<Service>, StorageOperationStatus> getServiceListByUuid(String uuid, boolean inTransaction);
public Either<List<Service>, StorageOperationStatus> getLatestServiceByUuid(String uuid, boolean inTransaction);
- public Either<List<Service>, StorageOperationStatus> getServiceListBySystemName(String systemName,
- boolean inTransaction);
+ public Either<List<Service>, StorageOperationStatus> getServiceListBySystemName(String systemName, boolean inTransaction);
+
+ Either<List<Service> , StorageOperationStatus> getAll();
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IUserAdminOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IUserAdminOperation.java
index dd9766fc83..84413f7987 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IUserAdminOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/IUserAdminOperation.java
@@ -48,11 +48,11 @@ public interface IUserAdminOperation {
public Either<List<User>, ActionStatus> getAllUsersWithRole(String role, String status);
- public Either<List<Edge>, StorageOperationStatus> getUserPandingTasksList(User user,
- Map<String, Object> properties);
+ Either<List<User>, ActionStatus> getAllUsers();
+
+ public Either<List<Edge>, StorageOperationStatus> getUserPandingTasksList(User user, Map<String, Object> properties);
public Either<ImmutablePair<User, FunctionalMenuInfo>, ActionStatus> getUserDataWithFunctionalMenu(String userId);
- public Either<FunctionalMenuInfo, TitanOperationStatus> createOrUpdateFunctionalMenu(String userId,
- String newFunctionalMenu);
+ public Either<FunctionalMenuInfo, TitanOperationStatus> createOrUpdateFunctionalMenu(String userId, String newFunctionalMenu);
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ToscaDefinitionPathCalculator.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ToscaDefinitionPathCalculator.java
new file mode 100644
index 0000000000..f64d4c9091
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/api/ToscaDefinitionPathCalculator.java
@@ -0,0 +1,12 @@
+package org.openecomp.sdc.be.model.operations.api;
+
+import org.openecomp.sdc.be.dao.graph.datatype.GraphEdge;
+import org.openecomp.sdc.be.model.ComponentInstance;
+
+import java.util.List;
+
+public interface ToscaDefinitionPathCalculator {
+
+ List<String> calculateToscaDefinitionPath(ComponentInstance componentInstance, GraphEdge edge);
+
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/AbstractOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/AbstractOperation.java
index c4bbaf58f6..0f36f09ca8 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/AbstractOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/AbstractOperation.java
@@ -198,7 +198,7 @@ public abstract class AbstractOperation {
if (ctResult.isRight()) {
TitanOperationStatus status = ctResult.right().value();
if (status != TitanOperationStatus.NOT_FOUND) {
- log.error("Failed to retrieve information on element uniqueId:" + uniqueId + ". status is " + status);
+ log.error("Failed to retrieve information on element uniqueId: {}. status is {}", uniqueId, status);
}
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(ctResult.right().value()));
return result;
@@ -314,13 +314,13 @@ public abstract class AbstractOperation {
ImmutablePair<JsonElement, Boolean> validateResult = dataTypeValidatorConverter.validateAndUpdate(value, dataTypeDefinition, dataTypes);
if (validateResult.right.booleanValue() == false) {
- log.debug("The value {} of property from type {} is invalid", value, propertyType);
+ log.debug("The value {} of property from type {} is invalid", propertyType, propertyType);
return StorageOperationStatus.INVALID_VALUE;
}
JsonElement jsonElement = validateResult.left;
- log.trace("Going to update value in property definition {} {}", propertyDefinition.getName(), (jsonElement != null ? jsonElement.toString() : null));
+ log.trace("Going to update value in property definition {} {}" , propertyDefinition.getName() , (jsonElement != null ? jsonElement.toString() : null));
updateValue(propertyDefinition, jsonElement);
@@ -360,7 +360,7 @@ public abstract class AbstractOperation {
}
PropertyDataDefinition propDef = def.getProperty();
if (propDef == null) {
- log.debug("Property in Schema Definition inside property of type {} doesn't exists", type);
+ log.debug("Property in Schema Definition inside property of type {} doesn't exist", type);
return Either.right(TitanOperationStatus.ILLEGAL_ARGUMENT);
}
innerType = propDef.getType();
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/AdditionalInformationOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/AdditionalInformationOperation.java
index e2c7f369f1..b9a67e5dc6 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/AdditionalInformationOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/AdditionalInformationOperation.java
@@ -26,9 +26,6 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-import com.thinkaurelius.titan.core.TitanTransaction;
-import com.thinkaurelius.titan.core.TitanVertex;
-
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.tinkerpop.gremlin.structure.Vertex;
import org.openecomp.sdc.be.config.BeEcompErrorManager;
@@ -41,8 +38,8 @@ import org.openecomp.sdc.be.dao.neo4j.GraphPropertiesDictionary;
import org.openecomp.sdc.be.dao.titan.TitanGenericDao;
import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
import org.openecomp.sdc.be.datatypes.elements.AdditionalInfoParameterDataDefinition;
+import org.openecomp.sdc.be.datatypes.elements.AdditionalInfoParameterInfo;
import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
-import org.openecomp.sdc.be.model.AdditionalInfoParameterInfo;
import org.openecomp.sdc.be.model.AdditionalInformationDefinition;
import org.openecomp.sdc.be.model.operations.api.IAdditionalInformationOperation;
import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
@@ -54,7 +51,9 @@ import org.openecomp.sdc.common.config.EcompErrorName;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
-import org.springframework.util.AutoPopulatingList.ElementFactory;
+
+import com.thinkaurelius.titan.core.TitanTransaction;
+import com.thinkaurelius.titan.core.TitanVertex;
import fj.data.Either;
@@ -62,7 +61,6 @@ import fj.data.Either;
public class AdditionalInformationOperation implements IAdditionalInformationOperation {
public static final String EMPTY_VALUE = null;
- public static final String PROPERTY = "property";
public AdditionalInformationOperation() {
super();
@@ -74,18 +72,15 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
private TitanGenericDao titanGenericDao;
@Override
- public Either<AdditionalInformationDefinition, TitanOperationStatus> addAdditionalInformationParameter(
- NodeTypeEnum nodeType, String componentId, String key, String value) {
+ public Either<AdditionalInformationDefinition, TitanOperationStatus> addAdditionalInformationParameter(NodeTypeEnum nodeType, String componentId, String key, String value) {
TitanOperationStatus verifyNodeTypeVsComponent = verifyNodeTypeVsComponent(nodeType, componentId);
if (verifyNodeTypeVsComponent != TitanOperationStatus.OK) {
return Either.right(verifyNodeTypeVsComponent);
}
- Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao
- .getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), componentId,
- GraphEdgeLabels.ADDITIONAL_INFORMATION, NodeTypeEnum.AdditionalInfoParameters,
- AdditionalInfoParameterData.class);
+ Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), componentId, GraphEdgeLabels.ADDITIONAL_INFORMATION,
+ NodeTypeEnum.AdditionalInfoParameters, AdditionalInfoParameterData.class);
if (getResult.isRight()) {
TitanOperationStatus status = getResult.right().value();
@@ -117,39 +112,31 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
parameters.put(key, value);
parameterData.getAdditionalInfoParameterDataDefinition().setLastCreatedCounter(lastCreatedCounter);
- Either<AdditionalInfoParameterData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(parameterData,
- AdditionalInfoParameterData.class);
+ Either<AdditionalInfoParameterData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(parameterData, AdditionalInfoParameterData.class);
if (updateNode.isRight()) {
TitanOperationStatus status = updateNode.right().value();
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeFailedUpdateNodeError,
- "UpdateAdditionalInformationParameter",
- "additional information of " + nodeType.getName() + " " + componentId, String.valueOf(status));
- BeEcompErrorManager.getInstance().logBeFailedUpdateNodeError("UpdateAdditionalInformationParameter",
- "additional information of " + nodeType.getName() + " " + componentId, String.valueOf(status));
+ BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeFailedUpdateNodeError, "UpdateAdditionalInformationParameter", "additional information of " + nodeType.getName() + " " + componentId, String.valueOf(status));
+ BeEcompErrorManager.getInstance().logBeFailedUpdateNodeError("UpdateAdditionalInformationParameter", "additional information of " + nodeType.getName() + " " + componentId, String.valueOf(status));
return Either.right(status);
}
- AdditionalInformationDefinition informationDefinition = createInformationDefinitionFromNode(componentId,
- parameters, idToKey, updateNode.left().value());
+ AdditionalInformationDefinition informationDefinition = createInformationDefinitionFromNode(componentId, parameters, idToKey, updateNode.left().value());
return Either.left(informationDefinition);
}
@Override
- public Either<AdditionalInformationDefinition, TitanOperationStatus> updateAdditionalInformationParameter(
- NodeTypeEnum nodeType, String componentId, String id, String key, String value) {
+ public Either<AdditionalInformationDefinition, TitanOperationStatus> updateAdditionalInformationParameter(NodeTypeEnum nodeType, String componentId, String id, String key, String value) {
TitanOperationStatus verifyNodeTypeVsComponent = verifyNodeTypeVsComponent(nodeType, componentId);
if (verifyNodeTypeVsComponent != TitanOperationStatus.OK) {
return Either.right(verifyNodeTypeVsComponent);
}
- Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao
- .getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), componentId,
- GraphEdgeLabels.ADDITIONAL_INFORMATION, NodeTypeEnum.AdditionalInfoParameters,
- AdditionalInfoParameterData.class);
+ Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), componentId, GraphEdgeLabels.ADDITIONAL_INFORMATION,
+ NodeTypeEnum.AdditionalInfoParameters, AdditionalInfoParameterData.class);
if (getResult.isRight()) {
TitanOperationStatus status = getResult.right().value();
@@ -172,44 +159,36 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
return Either.right(TitanOperationStatus.ALREADY_EXIST);
}
String removed = parameters.remove(origKey);
- log.trace("The key-value " + origKey + "=" + removed + " was removed from additionalInformation");
+ log.trace("The key-value {} = {} was removed from additionalInformation", origKey, removed);
}
parameters.put(key, value);
idToKey.put(id, key);
- Either<AdditionalInfoParameterData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(parameterData,
- AdditionalInfoParameterData.class);
+ Either<AdditionalInfoParameterData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(parameterData, AdditionalInfoParameterData.class);
if (updateNode.isRight()) {
TitanOperationStatus status = updateNode.right().value();
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeFailedUpdateNodeError,
- "UpdateAdditionalInformationParameter", "additional information of resource " + componentId,
- String.valueOf(status));
- BeEcompErrorManager.getInstance().logBeFailedUpdateNodeError("UpdateAdditionalInformationParameter",
- "additional information of resource " + componentId, String.valueOf(status));
+ BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeFailedUpdateNodeError, "UpdateAdditionalInformationParameter", "additional information of resource " + componentId, String.valueOf(status));
+ BeEcompErrorManager.getInstance().logBeFailedUpdateNodeError("UpdateAdditionalInformationParameter", "additional information of resource " + componentId, String.valueOf(status));
return Either.right(status);
}
- AdditionalInformationDefinition informationDefinition = createInformationDefinitionFromNode(componentId,
- parameters, idToKey, updateNode.left().value());
+ AdditionalInformationDefinition informationDefinition = createInformationDefinitionFromNode(componentId, parameters, idToKey, updateNode.left().value());
return Either.left(informationDefinition);
}
@Override
- public Either<AdditionalInformationDefinition, TitanOperationStatus> deleteAdditionalInformationParameter(
- NodeTypeEnum nodeType, String componentId, String id) {
+ public Either<AdditionalInformationDefinition, TitanOperationStatus> deleteAdditionalInformationParameter(NodeTypeEnum nodeType, String componentId, String id) {
TitanOperationStatus verifyNodeTypeVsComponent = verifyNodeTypeVsComponent(nodeType, componentId);
if (verifyNodeTypeVsComponent != TitanOperationStatus.OK) {
return Either.right(verifyNodeTypeVsComponent);
}
- Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao
- .getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), componentId,
- GraphEdgeLabels.ADDITIONAL_INFORMATION, NodeTypeEnum.AdditionalInfoParameters,
- AdditionalInfoParameterData.class);
+ Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), componentId, GraphEdgeLabels.ADDITIONAL_INFORMATION,
+ NodeTypeEnum.AdditionalInfoParameters, AdditionalInfoParameterData.class);
if (getResult.isRight()) {
TitanOperationStatus status = getResult.right().value();
@@ -228,41 +207,31 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
String key = idToKey.get(id);
String removedKey = idToKey.remove(id);
String removedValue = parameters.remove(key);
- log.trace("The key-value " + removedKey + "=" + removedValue + " was removed from additionalInformation");
+ log.trace("The key-value {} = {} was removed from additionalInformation", removedKey, removedValue);
- Either<AdditionalInfoParameterData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(parameterData,
- AdditionalInfoParameterData.class);
+ Either<AdditionalInfoParameterData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(parameterData, AdditionalInfoParameterData.class);
if (updateNode.isRight()) {
TitanOperationStatus status = updateNode.right().value();
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeFailedUpdateNodeError,
- "DeleteAdditionalInformationParameter",
- "additional information of " + nodeType.getName() + " " + componentId, String.valueOf(status));
- BeEcompErrorManager.getInstance().logBeFailedUpdateNodeError("DeleteAdditionalInformationParameter",
- "additional information of " + nodeType.getName() + " " + componentId, String.valueOf(status));
+ BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeFailedUpdateNodeError, "DeleteAdditionalInformationParameter", "additional information of " + nodeType.getName() + " " + componentId, String.valueOf(status));
+ BeEcompErrorManager.getInstance().logBeFailedUpdateNodeError("DeleteAdditionalInformationParameter", "additional information of " + nodeType.getName() + " " + componentId, String.valueOf(status));
return Either.right(status);
}
- AdditionalInformationDefinition informationDefinition = createInformationDefinitionFromNode(componentId,
- parameters, idToKey, updateNode.left().value());
+ AdditionalInformationDefinition informationDefinition = createInformationDefinitionFromNode(componentId, parameters, idToKey, updateNode.left().value());
return Either.left(informationDefinition);
}
- private AdditionalInformationDefinition createInformationDefinitionFromNode(String resourceId,
- Map<String, String> parameters, Map<String, String> idToKey,
- AdditionalInfoParameterData additionalInfoParameterData) {
- AdditionalInfoParameterDataDefinition dataDefinition = additionalInfoParameterData
- .getAdditionalInfoParameterDataDefinition();
+ private AdditionalInformationDefinition createInformationDefinitionFromNode(String resourceId, Map<String, String> parameters, Map<String, String> idToKey, AdditionalInfoParameterData additionalInfoParameterData) {
+ AdditionalInfoParameterDataDefinition dataDefinition = additionalInfoParameterData.getAdditionalInfoParameterDataDefinition();
- AdditionalInformationDefinition informationDefinition = new AdditionalInformationDefinition(dataDefinition,
- resourceId, convertParameters(parameters, idToKey));
+ AdditionalInformationDefinition informationDefinition = new AdditionalInformationDefinition(dataDefinition, resourceId, convertParameters(parameters, idToKey));
return informationDefinition;
}
- private List<AdditionalInfoParameterInfo> convertParameters(Map<String, String> parameters,
- Map<String, String> idToKey) {
+ private List<AdditionalInfoParameterInfo> convertParameters(Map<String, String> parameters, Map<String, String> idToKey) {
List<AdditionalInfoParameterInfo> list = new ArrayList<AdditionalInfoParameterInfo>();
@@ -284,8 +253,7 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
}
@Override
- public Either<AdditionalInfoParameterData, TitanOperationStatus> addAdditionalInformationNode(NodeTypeEnum nodeType,
- String componentId) {
+ public Either<AdditionalInfoParameterData, TitanOperationStatus> addAdditionalInformationNode(NodeTypeEnum nodeType, String componentId) {
UniqueIdData from = new UniqueIdData(nodeType, componentId);
@@ -293,25 +261,19 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
AdditionalInfoParameterDataDefinition additionalInfoParameterDataDefinition = new AdditionalInfoParameterDataDefinition();
additionalInfoParameterDataDefinition.setUniqueId(uniqueId);
- AdditionalInfoParameterData additionalInfoParameterData = new AdditionalInfoParameterData(
- additionalInfoParameterDataDefinition, new HashMap<String, String>(), new HashMap<String, String>());
+ AdditionalInfoParameterData additionalInfoParameterData = new AdditionalInfoParameterData(additionalInfoParameterDataDefinition, new HashMap<String, String>(), new HashMap<String, String>());
- Either<AdditionalInfoParameterData, TitanOperationStatus> createNode = titanGenericDao
- .createNode(additionalInfoParameterData, AdditionalInfoParameterData.class);
+ Either<AdditionalInfoParameterData, TitanOperationStatus> createNode = titanGenericDao.createNode(additionalInfoParameterData, AdditionalInfoParameterData.class);
if (createNode.isRight()) {
TitanOperationStatus status = createNode.right().value();
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeFailedCreateNodeError,
- "AddAdditionalInformationNode",
- "additional information to " + nodeType.getName() + " " + componentId, String.valueOf(status));
- BeEcompErrorManager.getInstance().logBeFailedCreateNodeError("AddAdditionalInformationNode", uniqueId,
- String.valueOf(status));
+ BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeFailedCreateNodeError, "AddAdditionalInformationNode", "additional information to " + nodeType.getName() + " " + componentId, String.valueOf(status));
+ BeEcompErrorManager.getInstance().logBeFailedCreateNodeError("AddAdditionalInformationNode", uniqueId, String.valueOf(status));
return Either.right(status);
}
AdditionalInfoParameterData to = createNode.left().value();
- Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(from, to,
- GraphEdgeLabels.ADDITIONAL_INFORMATION, null);
+ Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(from, to, GraphEdgeLabels.ADDITIONAL_INFORMATION, null);
if (createRelation.isRight()) {
TitanOperationStatus status = createRelation.right().value();
return Either.right(status);
@@ -321,31 +283,25 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
}
@Override
- public Either<TitanVertex, TitanOperationStatus> addAdditionalInformationNode(NodeTypeEnum nodeType,
- String componentId, TitanVertex metadataVertex) {
+ public Either<TitanVertex, TitanOperationStatus> addAdditionalInformationNode(NodeTypeEnum nodeType, String componentId, TitanVertex metadataVertex) {
String uniqueId = UniqueIdBuilder.buildAdditionalInformationUniqueId(componentId);
AdditionalInfoParameterDataDefinition additionalInfoParameterDataDefinition = new AdditionalInfoParameterDataDefinition();
additionalInfoParameterDataDefinition.setUniqueId(uniqueId);
- AdditionalInfoParameterData additionalInfoParameterData = new AdditionalInfoParameterData(
- additionalInfoParameterDataDefinition, new HashMap<String, String>(), new HashMap<String, String>());
+ AdditionalInfoParameterData additionalInfoParameterData = new AdditionalInfoParameterData(additionalInfoParameterDataDefinition, new HashMap<String, String>(), new HashMap<String, String>());
Either<TitanVertex, TitanOperationStatus> createNode = titanGenericDao.createNode(additionalInfoParameterData);
if (createNode.isRight()) {
TitanOperationStatus status = createNode.right().value();
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeFailedCreateNodeError,
- "AddAdditionalInformationNode",
- "additional information to " + nodeType.getName() + " " + componentId, String.valueOf(status));
- BeEcompErrorManager.getInstance().logBeFailedCreateNodeError("AddAdditionalInformationNode", uniqueId,
- String.valueOf(status));
+ BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeFailedCreateNodeError, "AddAdditionalInformationNode", "additional information to " + nodeType.getName() + " " + componentId, String.valueOf(status));
+ BeEcompErrorManager.getInstance().logBeFailedCreateNodeError("AddAdditionalInformationNode", uniqueId, String.valueOf(status));
return Either.right(status);
}
TitanVertex additionalInfoVertex = createNode.left().value();
- TitanOperationStatus createRelation = titanGenericDao.createEdge(metadataVertex, additionalInfoVertex,
- GraphEdgeLabels.ADDITIONAL_INFORMATION, null);
+ TitanOperationStatus createRelation = titanGenericDao.createEdge(metadataVertex, additionalInfoVertex, GraphEdgeLabels.ADDITIONAL_INFORMATION, null);
if (!createRelation.equals(TitanOperationStatus.OK)) {
return Either.right(createRelation);
@@ -353,11 +309,9 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
return Either.left(additionalInfoVertex);
}
- public Either<AdditionalInformationDefinition, TitanOperationStatus> addAdditionalInformationNode(
- NodeTypeEnum nodeType, String componentId, AdditionalInformationDefinition parameters) {
+ public Either<AdditionalInformationDefinition, TitanOperationStatus> addAdditionalInformationNode(NodeTypeEnum nodeType, String componentId, AdditionalInformationDefinition parameters) {
- Either<AdditionalInfoParameterData, TitanOperationStatus> status = this.addAdditionalInformationNode(nodeType,
- componentId);
+ Either<AdditionalInfoParameterData, TitanOperationStatus> status = this.addAdditionalInformationNode(nodeType, componentId);
if (status.isRight()) {
return Either.right(status.right().value());
@@ -367,24 +321,20 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
populateParameterNodeWithParameters(parameterData, parameters);
- Either<AdditionalInfoParameterData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(parameterData,
- AdditionalInfoParameterData.class);
+ Either<AdditionalInfoParameterData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(parameterData, AdditionalInfoParameterData.class);
if (updateNode.isRight()) {
return Either.right(updateNode.right().value());
}
- AdditionalInformationDefinition informationDefinition = convertAdditionalInformationDataToDefinition(
- updateNode.left().value(), componentId);
+ AdditionalInformationDefinition informationDefinition = convertAdditionalInformationDataToDefinition(updateNode.left().value(), componentId);
return Either.left(informationDefinition);
}
- public TitanOperationStatus addAdditionalInformationNode(NodeTypeEnum nodeType, String componentId,
- AdditionalInformationDefinition parameters, TitanVertex metadataVertex) {
+ public TitanOperationStatus addAdditionalInformationNode(NodeTypeEnum nodeType, String componentId, AdditionalInformationDefinition parameters, TitanVertex metadataVertex) {
- Either<TitanVertex, TitanOperationStatus> status = this.addAdditionalInformationNode(nodeType, componentId,
- metadataVertex);
+ Either<TitanVertex, TitanOperationStatus> status = this.addAdditionalInformationNode(nodeType, componentId, metadataVertex);
if (status.isRight()) {
return status.right().value();
@@ -392,9 +342,7 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
TitanVertex additionalInfoVertex = status.left().value();
Map<String, Object> newProp = titanGenericDao.getProperties(additionalInfoVertex);
- AdditionalInfoParameterData parameterData = GraphElementFactory.createElement(
- NodeTypeEnum.AdditionalInfoParameters.getName(), GraphElementTypeEnum.Node, newProp,
- AdditionalInfoParameterData.class);
+ AdditionalInfoParameterData parameterData = GraphElementFactory.createElement(NodeTypeEnum.AdditionalInfoParameters.getName(), GraphElementTypeEnum.Node, newProp, AdditionalInfoParameterData.class);
populateParameterNodeWithParameters(parameterData, parameters);
@@ -403,14 +351,13 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
return updateNode;
}
- private void populateParameterNodeWithParameters(AdditionalInfoParameterData parameterData,
- AdditionalInformationDefinition aiDefinition) {
+ private void populateParameterNodeWithParameters(AdditionalInfoParameterData parameterData, AdditionalInformationDefinition aiDefinition) {
if (aiDefinition != null) {
Integer lastCreatedCounter = aiDefinition.getLastCreatedCounter();
parameterData.getAdditionalInfoParameterDataDefinition().setLastCreatedCounter(lastCreatedCounter);
- log.trace("Set last created counter of additional information to " + lastCreatedCounter);
+ log.trace("Set last created counter of additional information to {}", lastCreatedCounter);
List<AdditionalInfoParameterInfo> parameters = aiDefinition.getParameters();
if (parameters != null) {
@@ -435,26 +382,22 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
}
@Override
- public TitanOperationStatus findResourceAllAdditionalInformationRecursively(String uniqueId,
- List<AdditionalInformationDefinition> properties) {
+ public TitanOperationStatus findResourceAllAdditionalInformationRecursively(String uniqueId, List<AdditionalInformationDefinition> properties) {
- log.trace("Going to fetch additional information under resource " + uniqueId);
- TitanOperationStatus resourceCapabilitiesStatus = findAdditionalInformationOfNode(NodeTypeEnum.Resource,
- uniqueId, properties);
+ log.trace("Going to fetch additional information under resource {}", uniqueId);
+ TitanOperationStatus resourceCapabilitiesStatus = findAdditionalInformationOfNode(NodeTypeEnum.Resource, uniqueId, properties);
if (!resourceCapabilitiesStatus.equals(TitanOperationStatus.OK)) {
return resourceCapabilitiesStatus;
}
- Either<ImmutablePair<ResourceMetadataData, GraphEdge>, TitanOperationStatus> parentNodes = titanGenericDao
- .getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Resource), uniqueId,
- GraphEdgeLabels.DERIVED_FROM, NodeTypeEnum.Resource, ResourceMetadataData.class);
+ Either<ImmutablePair<ResourceMetadataData, GraphEdge>, TitanOperationStatus> parentNodes = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Resource), uniqueId, GraphEdgeLabels.DERIVED_FROM, NodeTypeEnum.Resource,
+ ResourceMetadataData.class);
if (parentNodes.isRight()) {
TitanOperationStatus parentNodesStatus = parentNodes.right().value();
if (false == parentNodesStatus.equals(TitanOperationStatus.NOT_FOUND)) {
- log.error("Failed to find parent additional information of resource " + uniqueId + ". status is "
- + parentNodesStatus);
+ log.error("Failed to find parent additional information of resource {}. status is {}", uniqueId, parentNodesStatus);
return parentNodesStatus;
}
}
@@ -462,11 +405,10 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
if (parentNodes.isLeft()) {
ImmutablePair<ResourceMetadataData, GraphEdge> parnetNodePair = parentNodes.left().value();
String parentUniqueId = parnetNodePair.getKey().getMetadataDataDefinition().getUniqueId();
- TitanOperationStatus addParentIntStatus = findResourceAllAdditionalInformationRecursively(parentUniqueId,
- properties);
+ TitanOperationStatus addParentIntStatus = findResourceAllAdditionalInformationRecursively(parentUniqueId, properties);
if (addParentIntStatus != TitanOperationStatus.OK) {
- log.error("Failed to find all resource additional information of resource " + parentUniqueId);
+ log.error("Failed to find all resource additional information of resource {}", parentUniqueId);
return addParentIntStatus;
}
}
@@ -475,26 +417,22 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
}
@Override
- public TitanOperationStatus findServiceAllAdditionalInformationRecursively(String uniqueId,
- List<AdditionalInformationDefinition> properties) {
+ public TitanOperationStatus findServiceAllAdditionalInformationRecursively(String uniqueId, List<AdditionalInformationDefinition> properties) {
- log.trace("Going to fetch additional information under service " + uniqueId);
- TitanOperationStatus resourceCapabilitiesStatus = findAdditionalInformationOfNode(NodeTypeEnum.Service,
- uniqueId, properties);
+ log.trace("Going to fetch additional information under service {}", uniqueId);
+ TitanOperationStatus resourceCapabilitiesStatus = findAdditionalInformationOfNode(NodeTypeEnum.Service, uniqueId, properties);
if (!resourceCapabilitiesStatus.equals(TitanOperationStatus.OK)) {
return resourceCapabilitiesStatus;
}
- Either<ImmutablePair<ServiceMetadataData, GraphEdge>, TitanOperationStatus> parentNodes = titanGenericDao
- .getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Service), uniqueId,
- GraphEdgeLabels.DERIVED_FROM, NodeTypeEnum.Service, ServiceMetadataData.class);
+ Either<ImmutablePair<ServiceMetadataData, GraphEdge>, TitanOperationStatus> parentNodes = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Service), uniqueId, GraphEdgeLabels.DERIVED_FROM, NodeTypeEnum.Service,
+ ServiceMetadataData.class);
if (parentNodes.isRight()) {
TitanOperationStatus parentNodesStatus = parentNodes.right().value();
if (false == parentNodesStatus.equals(TitanOperationStatus.NOT_FOUND)) {
- log.error("Failed to find parent additional information of resource " + uniqueId + ". status is "
- + parentNodesStatus);
+ log.error("Failed to find parent additional information of resource {}. status is {}", uniqueId, parentNodesStatus);
return parentNodesStatus;
}
}
@@ -502,11 +440,10 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
if (parentNodes.isLeft()) {
ImmutablePair<ServiceMetadataData, GraphEdge> parnetNodePair = parentNodes.left().value();
String parentUniqueId = parnetNodePair.getKey().getMetadataDataDefinition().getUniqueId();
- TitanOperationStatus addParentIntStatus = findServiceAllAdditionalInformationRecursively(parentUniqueId,
- properties);
+ TitanOperationStatus addParentIntStatus = findServiceAllAdditionalInformationRecursively(parentUniqueId, properties);
if (addParentIntStatus != TitanOperationStatus.OK) {
- log.error("Failed to find all resource additional information of resource " + parentUniqueId);
+ log.error("Failed to find all resource additional information of resource {}", parentUniqueId);
return addParentIntStatus;
}
}
@@ -514,12 +451,10 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
}
- private TitanOperationStatus findAdditionalInformationOfNode(NodeTypeEnum nodeType, String uniqueId,
- List<AdditionalInformationDefinition> properties) {
+ private TitanOperationStatus findAdditionalInformationOfNode(NodeTypeEnum nodeType, String uniqueId, List<AdditionalInformationDefinition> properties) {
- Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> childNode = titanGenericDao
- .getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), uniqueId, GraphEdgeLabels.ADDITIONAL_INFORMATION,
- NodeTypeEnum.AdditionalInfoParameters, AdditionalInfoParameterData.class);
+ Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> childNode = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), uniqueId, GraphEdgeLabels.ADDITIONAL_INFORMATION,
+ NodeTypeEnum.AdditionalInfoParameters, AdditionalInfoParameterData.class);
if (childNode.isRight()) {
TitanOperationStatus status = childNode.right().value();
@@ -534,8 +469,7 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
Map<String, String> parameters = propertyData.getParameters();
if (parameters != null && false == parameters.isEmpty()) {
- AdditionalInformationDefinition additionalInfoDef = this
- .convertAdditionalInformationDataToDefinition(propertyData, uniqueId);
+ AdditionalInformationDefinition additionalInfoDef = this.convertAdditionalInformationDataToDefinition(propertyData, uniqueId);
properties.add(additionalInfoDef);
}
@@ -543,36 +477,29 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
}
- private AdditionalInformationDefinition convertAdditionalInformationDataToDefinition(
- AdditionalInfoParameterData additionalInfoData, String uniqueId) {
+ private AdditionalInformationDefinition convertAdditionalInformationDataToDefinition(AdditionalInfoParameterData additionalInfoData, String uniqueId) {
Map<String, String> parameters = additionalInfoData.getParameters();
Map<String, String> idToKey = additionalInfoData.getIdToKey();
- AdditionalInformationDefinition definition = new AdditionalInformationDefinition(
- additionalInfoData.getAdditionalInfoParameterDataDefinition(), uniqueId,
- convertParameters(parameters, idToKey));
+ AdditionalInformationDefinition definition = new AdditionalInformationDefinition(additionalInfoData.getAdditionalInfoParameterDataDefinition(), uniqueId, convertParameters(parameters, idToKey));
return definition;
}
@Override
- public Either<AdditionalInformationDefinition, StorageOperationStatus> createAdditionalInformationParameter(
- NodeTypeEnum nodeType, String resourceId, String key, String value, boolean inTransaction) {
+ public Either<AdditionalInformationDefinition, StorageOperationStatus> createAdditionalInformationParameter(NodeTypeEnum nodeType, String resourceId, String key, String value, boolean inTransaction) {
Either<AdditionalInformationDefinition, StorageOperationStatus> result = null;
try {
- Either<AdditionalInformationDefinition, TitanOperationStatus> either = this
- .addAdditionalInformationParameter(nodeType, resourceId, key, value);
+ Either<AdditionalInformationDefinition, TitanOperationStatus> either = this.addAdditionalInformationParameter(nodeType, resourceId, key, value);
if (either.isRight()) {
TitanOperationStatus status = either.right().value();
log.debug("Failed to add additional information property {} to component {}. Status is {}", key, resourceId, status);
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeFailedUpdateNodeError,
- "additional information of " + nodeType.getName() + " " + resourceId, String.valueOf(status));
- BeEcompErrorManager.getInstance().logBeFailedUpdateNodeError("CreateAdditionalInformationParameter",
- "additional information of " + nodeType.getName() + " " + resourceId, String.valueOf(status));
+ BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeFailedUpdateNodeError, "additional information of " + nodeType.getName() + " " + resourceId, String.valueOf(status));
+ BeEcompErrorManager.getInstance().logBeFailedUpdateNodeError("CreateAdditionalInformationParameter", "additional information of " + nodeType.getName() + " " + resourceId, String.valueOf(status));
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
} else {
AdditionalInformationDefinition additionalInformationDefinition = either.left().value();
@@ -587,18 +514,16 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
}
@Override
- public Either<AdditionalInformationDefinition, StorageOperationStatus> updateAdditionalInformationParameter(
- NodeTypeEnum nodeType, String resourceId, String id, String key, String value, boolean inTransaction) {
+ public Either<AdditionalInformationDefinition, StorageOperationStatus> updateAdditionalInformationParameter(NodeTypeEnum nodeType, String resourceId, String id, String key, String value, boolean inTransaction) {
Either<AdditionalInformationDefinition, StorageOperationStatus> result = null;
try {
- Either<AdditionalInformationDefinition, TitanOperationStatus> either = this
- .updateAdditionalInformationParameter(nodeType, resourceId, id, key, value);
+ Either<AdditionalInformationDefinition, TitanOperationStatus> either = this.updateAdditionalInformationParameter(nodeType, resourceId, id, key, value);
if (either.isRight()) {
- log.info("Failed to update additional information property " + key + " to component " + resourceId);
+ log.info("Failed to update additional information property {} to component {}", key, resourceId);
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(either.right().value()));
} else {
AdditionalInformationDefinition additionalInformationDefinition = either.left().value();
@@ -614,18 +539,16 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
}
@Override
- public Either<AdditionalInformationDefinition, StorageOperationStatus> deleteAdditionalInformationParameter(
- NodeTypeEnum nodeType, String resourceId, String id, boolean inTransaction) {
+ public Either<AdditionalInformationDefinition, StorageOperationStatus> deleteAdditionalInformationParameter(NodeTypeEnum nodeType, String resourceId, String id, boolean inTransaction) {
Either<AdditionalInformationDefinition, StorageOperationStatus> result = null;
try {
- Either<AdditionalInformationDefinition, TitanOperationStatus> either = this
- .deleteAdditionalInformationParameter(nodeType, resourceId, id);
+ Either<AdditionalInformationDefinition, TitanOperationStatus> either = this.deleteAdditionalInformationParameter(nodeType, resourceId, id);
if (either.isRight()) {
- log.error("Failed to delete additional information id " + id + " to component " + resourceId);
+ log.error("Failed to delete additional information id {} to component {}", id, resourceId);
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(either.right().value()));
} else {
AdditionalInformationDefinition additionalInformationDefinition = either.left().value();
@@ -641,8 +564,7 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
}
@Override
- public Either<Integer, StorageOperationStatus> getNumberOfAdditionalInformationParameters(NodeTypeEnum nodeType,
- String resourceId, boolean inTransaction) {
+ public Either<Integer, StorageOperationStatus> getNumberOfAdditionalInformationParameters(NodeTypeEnum nodeType, String resourceId, boolean inTransaction) {
Either<Integer, StorageOperationStatus> result = null;
@@ -651,7 +573,7 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
Either<Integer, TitanOperationStatus> either = this.getNumberOfParameters(nodeType, resourceId);
if (either.isRight()) {
- log.error("Failed to get the number of additional information properties in component " + resourceId);
+ log.error("Failed to get the number of additional information properties in component {}", resourceId);
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(either.right().value()));
} else {
Integer counter = either.left().value();
@@ -676,10 +598,8 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
@Override
public Either<Integer, TitanOperationStatus> getNumberOfParameters(NodeTypeEnum nodeType, String resourceId) {
- Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao
- .getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), resourceId,
- GraphEdgeLabels.ADDITIONAL_INFORMATION, NodeTypeEnum.AdditionalInfoParameters,
- AdditionalInfoParameterData.class);
+ Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), resourceId, GraphEdgeLabels.ADDITIONAL_INFORMATION,
+ NodeTypeEnum.AdditionalInfoParameters, AdditionalInfoParameterData.class);
if (getResult.isRight()) {
TitanOperationStatus status = getResult.right().value();
@@ -700,18 +620,15 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
}
@Override
- public Either<AdditionalInfoParameterInfo, TitanOperationStatus> getAdditionalInformationParameter(
- NodeTypeEnum nodeType, String componentId, String id) {
+ public Either<AdditionalInfoParameterInfo, TitanOperationStatus> getAdditionalInformationParameter(NodeTypeEnum nodeType, String componentId, String id) {
TitanOperationStatus verifyNodeTypeVsComponent = verifyNodeTypeVsComponent(nodeType, componentId);
if (verifyNodeTypeVsComponent != TitanOperationStatus.OK) {
return Either.right(verifyNodeTypeVsComponent);
}
- Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao
- .getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), componentId,
- GraphEdgeLabels.ADDITIONAL_INFORMATION, NodeTypeEnum.AdditionalInfoParameters,
- AdditionalInfoParameterData.class);
+ Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), componentId, GraphEdgeLabels.ADDITIONAL_INFORMATION,
+ NodeTypeEnum.AdditionalInfoParameters, AdditionalInfoParameterData.class);
if (getResult.isRight()) {
TitanOperationStatus status = getResult.right().value();
@@ -730,19 +647,15 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
String key = idToKey.get(id);
String value = parameters.get(key);
- log.trace("The key-value " + key + "=" + value + " was retrieved for id " + id);
+ log.trace("The key-value {} = {} was retrieved for id {}", key, value, id);
- Either<AdditionalInfoParameterData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(parameterData,
- AdditionalInfoParameterData.class);
+ Either<AdditionalInfoParameterData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(parameterData, AdditionalInfoParameterData.class);
if (updateNode.isRight()) {
TitanOperationStatus status = updateNode.right().value();
if (status != TitanOperationStatus.NOT_FOUND) {
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeFailedRetrieveNodeError,
- "GetAdditionnalInformationParameter",
- "additional information of " + nodeType.getName() + " " + componentId, String.valueOf(status));
- BeEcompErrorManager.getInstance().logBeFailedRetrieveNodeError("GetAdditionnalInformationParameter",
- "additional information of " + nodeType.getName() + " " + componentId, String.valueOf(status));
+ BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeFailedRetrieveNodeError, "GetAdditionnalInformationParameter", "additional information of " + nodeType.getName() + " " + componentId, String.valueOf(status));
+ BeEcompErrorManager.getInstance().logBeFailedRetrieveNodeError("GetAdditionnalInformationParameter", "additional information of " + nodeType.getName() + " " + componentId, String.valueOf(status));
}
return Either.right(status);
}
@@ -754,8 +667,7 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
}
@Override
- public Either<AdditionalInformationDefinition, TitanOperationStatus> getAllAdditionalInformationParameters(
- NodeTypeEnum nodeType, String componentId, boolean ignoreVerification) {
+ public Either<AdditionalInformationDefinition, TitanOperationStatus> getAllAdditionalInformationParameters(NodeTypeEnum nodeType, String componentId, boolean ignoreVerification) {
if (false == ignoreVerification) {
TitanOperationStatus verifyNodeTypeVsComponent = verifyNodeTypeVsComponent(nodeType, componentId);
@@ -764,19 +676,14 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
}
}
- Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao
- .getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), componentId,
- GraphEdgeLabels.ADDITIONAL_INFORMATION, NodeTypeEnum.AdditionalInfoParameters,
- AdditionalInfoParameterData.class);
+ Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), componentId, GraphEdgeLabels.ADDITIONAL_INFORMATION,
+ NodeTypeEnum.AdditionalInfoParameters, AdditionalInfoParameterData.class);
if (getResult.isRight()) {
TitanOperationStatus status = getResult.right().value();
if (status != TitanOperationStatus.NOT_FOUND) {
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeFailedRetrieveNodeError,
- "GetAdditionnalInformationParameters",
- "additional information of " + nodeType.getName() + " " + componentId, String.valueOf(status));
- BeEcompErrorManager.getInstance().logBeFailedRetrieveNodeError("GetAdditionnalInformationParameters",
- "additional information of " + nodeType.getName() + " " + componentId, String.valueOf(status));
+ BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeFailedRetrieveNodeError, "GetAdditionnalInformationParameters", "additional information of " + nodeType.getName() + " " + componentId, String.valueOf(status));
+ BeEcompErrorManager.getInstance().logBeFailedRetrieveNodeError("GetAdditionnalInformationParameters", "additional information of " + nodeType.getName() + " " + componentId, String.valueOf(status));
}
return Either.right(status);
}
@@ -786,23 +693,20 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
Map<String, String> parameters = parameterData.getParameters();
Map<String, String> idToKey = parameterData.getIdToKey();
- AdditionalInformationDefinition informationDefinition = createInformationDefinitionFromNode(componentId,
- parameters, idToKey, parameterData);
+ AdditionalInformationDefinition informationDefinition = createInformationDefinitionFromNode(componentId, parameters, idToKey, parameterData);
return Either.left(informationDefinition);
}
@Override
- public Either<AdditionalInformationDefinition, StorageOperationStatus> getAllAdditionalInformationParameters(
- NodeTypeEnum nodeType, String resourceId, boolean ignoreVerification, boolean inTransaction) {
+ public Either<AdditionalInformationDefinition, StorageOperationStatus> getAllAdditionalInformationParameters(NodeTypeEnum nodeType, String resourceId, boolean ignoreVerification, boolean inTransaction) {
Either<AdditionalInformationDefinition, StorageOperationStatus> result = null;
try {
- Either<AdditionalInformationDefinition, TitanOperationStatus> either = this
- .getAllAdditionalInformationParameters(nodeType, resourceId, ignoreVerification);
+ Either<AdditionalInformationDefinition, TitanOperationStatus> either = this.getAllAdditionalInformationParameters(nodeType, resourceId, ignoreVerification);
if (either.isRight()) {
TitanOperationStatus status = either.right().value();
@@ -833,8 +737,7 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
}
}
- private void commitOrRollbackTx(TitanTransaction tx, boolean inTransaction,
- Either<? extends Object, StorageOperationStatus> result) {
+ private void commitOrRollbackTx(TitanTransaction tx, boolean inTransaction, Either<? extends Object, StorageOperationStatus> result) {
if (false == inTransaction) {
if (result == null || result.isRight()) {
@@ -848,19 +751,16 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
}
@Override
- public Either<AdditionalInfoParameterInfo, StorageOperationStatus> getAdditionalInformationParameter(
- NodeTypeEnum nodeType, String resourceId, String id, boolean inTransaction) {
+ public Either<AdditionalInfoParameterInfo, StorageOperationStatus> getAdditionalInformationParameter(NodeTypeEnum nodeType, String resourceId, String id, boolean inTransaction) {
Either<AdditionalInfoParameterInfo, StorageOperationStatus> result = null;
try {
- Either<AdditionalInfoParameterInfo, TitanOperationStatus> either = this
- .getAdditionalInformationParameter(nodeType, resourceId, id);
+ Either<AdditionalInfoParameterInfo, TitanOperationStatus> either = this.getAdditionalInformationParameter(nodeType, resourceId, id);
if (either.isRight()) {
- log.error("Failed to fetch additional information property with id " + id + " of component "
- + resourceId);
+ log.error("Failed to fetch additional information property with id {} of component {}", id, resourceId);
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(either.right().value()));
} else {
AdditionalInfoParameterInfo additionalInformationDefinition = either.left().value();
@@ -875,30 +775,22 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
}
@Override
- public Either<AdditionalInformationDefinition, StorageOperationStatus> deleteAllAdditionalInformationParameters(
- NodeTypeEnum nodeType, String resourceId, boolean inTransaction) {
+ public Either<AdditionalInformationDefinition, StorageOperationStatus> deleteAllAdditionalInformationParameters(NodeTypeEnum nodeType, String resourceId, boolean inTransaction) {
Either<AdditionalInformationDefinition, StorageOperationStatus> result = null;
try {
- Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao
- .getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), resourceId,
- GraphEdgeLabels.ADDITIONAL_INFORMATION, NodeTypeEnum.AdditionalInfoParameters,
- AdditionalInfoParameterData.class);
+ Either<ImmutablePair<AdditionalInfoParameterData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(nodeType), resourceId, GraphEdgeLabels.ADDITIONAL_INFORMATION,
+ NodeTypeEnum.AdditionalInfoParameters, AdditionalInfoParameterData.class);
if (getResult.isRight()) {
TitanOperationStatus status = getResult.right().value();
if (status == TitanOperationStatus.NOT_FOUND) {
return Either.right(StorageOperationStatus.OK);
} else {
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeFailedDeleteNodeError,
- "DeleteAdditionalInformationNode",
- "additional information of " + nodeType.getName() + " " + resourceId,
- String.valueOf(status));
- BeEcompErrorManager.getInstance().logBeFailedDeleteNodeError("DeleteAdditionalInformationNode",
- "additional information of " + nodeType.getName() + " " + resourceId,
- String.valueOf(status));
+ BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeFailedDeleteNodeError, "DeleteAdditionalInformationNode", "additional information of " + nodeType.getName() + " " + resourceId, String.valueOf(status));
+ BeEcompErrorManager.getInstance().logBeFailedDeleteNodeError("DeleteAdditionalInformationNode", "additional information of " + nodeType.getName() + " " + resourceId, String.valueOf(status));
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
}
return result;
@@ -907,21 +799,16 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
ImmutablePair<AdditionalInfoParameterData, GraphEdge> value = getResult.left().value();
AdditionalInfoParameterData parameterData = value.getLeft();
- Either<AdditionalInfoParameterData, TitanOperationStatus> deleteNodeRes = titanGenericDao
- .deleteNode(parameterData, AdditionalInfoParameterData.class);
+ Either<AdditionalInfoParameterData, TitanOperationStatus> deleteNodeRes = titanGenericDao.deleteNode(parameterData, AdditionalInfoParameterData.class);
if (deleteNodeRes.isRight()) {
TitanOperationStatus status = getResult.right().value();
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeFailedDeleteNodeError,
- "DeleteAdditionalInformationNode", (String) parameterData.getUniqueId(),
- String.valueOf(status));
- BeEcompErrorManager.getInstance().logBeFailedDeleteNodeError("DeleteAdditionalInformationNode",
- (String) parameterData.getUniqueId(), String.valueOf(status));
+ BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeFailedDeleteNodeError, "DeleteAdditionalInformationNode", (String) parameterData.getUniqueId(), String.valueOf(status));
+ BeEcompErrorManager.getInstance().logBeFailedDeleteNodeError("DeleteAdditionalInformationNode", (String) parameterData.getUniqueId(), String.valueOf(status));
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
return result;
}
- AdditionalInformationDefinition informationDefinition = convertAdditionalInformationDataToDefinition(
- deleteNodeRes.left().value(), resourceId);
+ AdditionalInformationDefinition informationDefinition = convertAdditionalInformationDataToDefinition(deleteNodeRes.left().value(), resourceId);
result = Either.left(informationDefinition);
@@ -933,8 +820,7 @@ public class AdditionalInformationOperation implements IAdditionalInformationOpe
}
private TitanOperationStatus verifyNodeTypeVsComponent(NodeTypeEnum nodeType, String componentId) {
- Either<TitanVertex, TitanOperationStatus> vertexByProperty = titanGenericDao
- .getVertexByProperty(UniqueIdBuilder.getKeyByNodeType(nodeType), componentId);
+ Either<TitanVertex, TitanOperationStatus> vertexByProperty = titanGenericDao.getVertexByProperty(UniqueIdBuilder.getKeyByNodeType(nodeType), componentId);
if (vertexByProperty.isRight()) {
TitanOperationStatus status = vertexByProperty.right().value();
if (status == TitanOperationStatus.NOT_FOUND) {
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ArtifactOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ArtifactOperation.java
index a4f4bebd5a..1e1c9267e6 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ArtifactOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ArtifactOperation.java
@@ -28,7 +28,6 @@ import java.util.List;
import java.util.Map;
import java.util.UUID;
-import com.thinkaurelius.titan.core.TitanTransaction;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.tinkerpop.gremlin.structure.Direction;
import org.apache.tinkerpop.gremlin.structure.Edge;
@@ -81,6 +80,8 @@ public class ArtifactOperation implements IArtifactOperation {
@javax.annotation.Resource
private GroupOperation groupOperation;
+ @javax.annotation.Resource
+ private GroupInstanceOperation groupInstanceOperation;
private static Logger log = LoggerFactory.getLogger(ArtifactOperation.class.getName());
@@ -113,7 +114,7 @@ public class ArtifactOperation implements IArtifactOperation {
if (false == inTransaction) {
titanGenericDao.rollback();
}
- log.debug("Failed to add artifact {} to {} {}", artifactInfo.getArtifactName(), type, parentId);
+ log.debug("Failed to add artifact {} to {} {}", artifactInfo.getArtifactName(), type , parentId);
return Either.right(status.right().value());
} else {
if (false == inTransaction) {
@@ -191,7 +192,7 @@ public class ArtifactOperation implements IArtifactOperation {
// add heat parameters
if (artifactInfo.getHeatParameters() != null && !artifactInfo.getHeatParameters().isEmpty() && !artifactInfo.getArtifactType().equals(ArtifactTypeEnum.HEAT_ENV.getType())) {
- StorageOperationStatus addPropertiesStatus = heatParametersOperation.addPropertiesToGraph(artifactInfo.getHeatParameters(), artifactData.getUniqueId().toString(), NodeTypeEnum.ArtifactRef);
+ StorageOperationStatus addPropertiesStatus = heatParametersOperation.addPropertiesToGraph(artifactInfo.getListHeatParameters(), artifactData.getUniqueId().toString(), NodeTypeEnum.ArtifactRef);
if (addPropertiesStatus != StorageOperationStatus.OK) {
log.debug("Failed to create heat parameters on graph for artifact {}", artifactInfo.getArtifactName());
return addPropertiesStatus;
@@ -238,7 +239,7 @@ public class ArtifactOperation implements IArtifactOperation {
if (existArtifact.isRight()) {
if (existArtifact.right().value().equals(TitanOperationStatus.NOT_FOUND)) {
// create new node
- log.debug("Before adding artifact to graph {}", artifactData);
+ log.debug("Before adding artifact to graph {}" , artifactData);
if (artifactData.getArtifactDataDefinition().getArtifactUUID() == null || artifactData.getArtifactDataDefinition().getArtifactUUID().isEmpty())
updateUUID(artifactData.getArtifactDataDefinition(), null, artifactData.getArtifactDataDefinition().getArtifactVersion());
Either<ArtifactData, TitanOperationStatus> createNodeResult = titanGenericDao.createNode(artifactData, ArtifactData.class);
@@ -256,7 +257,7 @@ public class ArtifactOperation implements IArtifactOperation {
// add heat parameters
if (artifactInfo.getHeatParameters() != null && !artifactInfo.getHeatParameters().isEmpty() && !artifactInfo.getArtifactType().equals(ArtifactTypeEnum.HEAT_ENV.getType())) {
- StorageOperationStatus addPropertiesStatus = heatParametersOperation.addPropertiesToGraph(artifactInfo.getHeatParameters(), artifactData.getUniqueId().toString(), NodeTypeEnum.ArtifactRef);
+ StorageOperationStatus addPropertiesStatus = heatParametersOperation.addPropertiesToGraph(artifactInfo.getListHeatParameters(), artifactData.getUniqueId().toString(), NodeTypeEnum.ArtifactRef);
if (addPropertiesStatus != StorageOperationStatus.OK) {
log.debug("Failed to create heat parameters on graph for artifact {}", artifactInfo.getArtifactName());
return Either.right(addPropertiesStatus);
@@ -283,7 +284,7 @@ public class ArtifactOperation implements IArtifactOperation {
properties.put(GraphEdgePropertiesDictionary.GROUP_TYPE.getProperty(), artifactInfo.getArtifactGroupType().getType());
Either<GraphRelation, TitanOperationStatus> relation = titanGenericDao.createRelation(parent, artifactData, GraphEdgeLabels.ARTIFACT_REF, properties);
if (relation.isRight()) {
- log.debug("Failed to create relation in graph for id {} to new artifact", id);
+ log.debug("Failed to create relation in graph fro id {} to new artifact", id);
return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(relation.right().value()));
}
@@ -300,19 +301,20 @@ public class ArtifactOperation implements IArtifactOperation {
isValid = true;
break;
default:
- log.debug("Not supported node type for artifact relation : {}", type);
+ log.debug("Not supported node type for artifact relation : {} ", type);
}
return isValid;
}
-
+
+
protected ArtifactDefinition convertArtifactDataToArtifactDefinition(ArtifactData artifactDefResult) {
- log.debug("The object returned after create property is {}", artifactDefResult);
+ log.debug("The object returned after create property is {}" ,artifactDefResult);
ArtifactDefinition propertyDefResult = new ArtifactDefinition(artifactDefResult.getArtifactDataDefinition());
List<HeatParameterDefinition> parameters = new ArrayList<HeatParameterDefinition>();
StorageOperationStatus heatParametersOfNode = heatParametersOperation.getHeatParametersOfNode(NodeTypeEnum.ArtifactRef, artifactDefResult.getUniqueId().toString(), parameters);
if ((heatParametersOfNode.equals(StorageOperationStatus.OK)) && !parameters.isEmpty()) {
- propertyDefResult.setHeatParameters(parameters);
+ propertyDefResult.setListHeatParameters(parameters);
}
return propertyDefResult;
}
@@ -325,9 +327,35 @@ public class ArtifactOperation implements IArtifactOperation {
if (false == inTransaction) {
titanGenericDao.rollback();
}
- if (log.isDebugEnabled()){
- log.debug("Failed to update artifact {} of {} {}. Status is {}", artifactId, type.getName(), id, status.right().value());
+ log.debug("Failed to update artifact {} of {} {}. status is {}", artifactId, type.getName(), id, status.right().value());
+ BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeFailedUpdateNodeError, "Failed to update artifact " + artifactId + " of " + type.getName() + " " + id + ". status is" + status.right().value(), artifactId,
+ String.valueOf(status.right().value()));
+ BeEcompErrorManager.getInstance().logBeFailedUpdateNodeError("Update Artifact", artifactId, String.valueOf(status.right().value()));
+ return Either.right(status.right().value());
+ } else {
+ if (false == inTransaction) {
+ titanGenericDao.commit();
}
+ ArtifactData artifactData = status.left().value();
+
+ ArtifactDefinition artifactDefResult = convertArtifactDataToArtifactDefinition(artifactData);
+ log.debug("The returned ArtifactDefintion is {}", artifactDefResult);
+ return Either.left(artifactDefResult);
+ }
+ }
+
+ @Override
+ public Either<ArtifactDefinition, StorageOperationStatus> updateHeatEnvArtifact( String id, ArtifactDefinition artifactEnvInfo, String artifactId, String newArtifactId, NodeTypeEnum type, boolean inTransaction){
+
+
+ Either<ArtifactData, StorageOperationStatus> status = dissociateAndAssociateHeatEnvArtifact(id, artifactEnvInfo, artifactId, newArtifactId, type, inTransaction);
+
+
+ if (status.isRight()) {
+ if (false == inTransaction) {
+ titanGenericDao.rollback();
+ }
+ log.debug("Failed to update artifact {} of {} {}. status is {}", artifactId, type.getName(), id, status.right().value());
BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeFailedUpdateNodeError, "Failed to update artifact " + artifactId + " of " + type.getName() + " " + id + ". status is" + status.right().value(), artifactId,
String.valueOf(status.right().value()));
BeEcompErrorManager.getInstance().logBeFailedUpdateNodeError("Update Artifact", artifactId, String.valueOf(status.right().value()));
@@ -342,6 +370,47 @@ public class ArtifactOperation implements IArtifactOperation {
log.debug("The returned ArtifactDefintion is {}", artifactDefResult);
return Either.left(artifactDefResult);
}
+
+ }
+
+ private Either<ArtifactData, StorageOperationStatus> dissociateAndAssociateHeatEnvArtifact(String id, ArtifactDefinition artifactEnvInfo, String artifactId, String newArtifactId, NodeTypeEnum type, boolean inTransaction) {
+
+ ArtifactDefinition heatEnvArt = artifactEnvInfo;
+ if(heatEnvArt == null ){
+ Either<ArtifactDefinition, StorageOperationStatus> heatEnvEither = getHeatEnvByGeneratedFromId(artifactId);
+ if (heatEnvEither.isRight()) {
+ log.error("No heat env artifact node for id = {} ", artifactId);
+ return Either.right(StorageOperationStatus.NOT_FOUND);
+ }
+ heatEnvArt = heatEnvEither.left().value();
+ }
+
+ Either<ArtifactData, StorageOperationStatus> status = updateArtifactOnGraph(heatEnvArt, heatEnvArt.getUniqueId(), type, id);
+ if(status.isRight()){
+ log.error("Failed to update heat env. status is {}", status.right().value());
+ return status;
+ }
+
+ UniqueIdData generatedFromArtifactNode = new UniqueIdData(NodeTypeEnum.ArtifactRef, heatEnvArt.getUniqueId());
+ UniqueIdData oldArtifactNode = new UniqueIdData(NodeTypeEnum.ArtifactRef, artifactId);
+
+ Either<GraphRelation, TitanOperationStatus> deleteRelation = titanGenericDao.deleteRelation(generatedFromArtifactNode, oldArtifactNode, GraphEdgeLabels.GENERATED_FROM);
+ if (deleteRelation.isRight()) {
+ TitanOperationStatus titanStatus = deleteRelation.right().value();
+ if (titanStatus == TitanOperationStatus.NOT_FOUND) {
+ titanStatus = TitanOperationStatus.INVALID_ID;
+ }
+ Either.right(titanStatus);
+ }
+
+ UniqueIdData newArtifactNode = new UniqueIdData(NodeTypeEnum.ArtifactRef, newArtifactId);
+
+ Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(generatedFromArtifactNode, newArtifactNode, GraphEdgeLabels.GENERATED_FROM, null);
+ if (createRelation.isRight()) {
+ log.error("Failed to create relation from heat_env {} to heat {}", newArtifactId, generatedFromArtifactNode);
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(createRelation.right().value()));
+ }
+ return status;
}
@Override
@@ -368,6 +437,45 @@ public class ArtifactOperation implements IArtifactOperation {
return Either.left(artifactDefResult);
}
}
+
+ @Override
+ public Either<ArtifactDefinition, StorageOperationStatus> updateHeatEnvPlaceholder(ArtifactDefinition artifactInfo, boolean inTransaction) {
+
+ updateVersionAndDate(artifactInfo, artifactInfo.getArtifactVersion());
+
+ Either<ArtifactData, TitanOperationStatus> status = updateArifactDataDefinition(artifactInfo);
+
+ if (status.isRight()) {
+ if (false == inTransaction) {
+ titanGenericDao.rollback();
+ }
+ log.debug("Failed to update artifact {}", artifactInfo.getUniqueId());
+ BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeFailedUpdateNodeError, "Failed to update artifact " + artifactInfo.getUniqueId() + ". status is" + status.right().value(), artifactInfo.getUniqueId(),
+ String.valueOf(status.right().value()));
+ BeEcompErrorManager.getInstance().logBeFailedUpdateNodeError("Update Artifact", artifactInfo.getUniqueId(), String.valueOf(status.right().value()));
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status.right().value()));
+ } else {
+ if (false == inTransaction) {
+ titanGenericDao.commit();
+ }
+ ArtifactData artifactData = status.left().value();
+
+ ArtifactDefinition artifactDefResult = convertArtifactDataToArtifactDefinition(artifactData);
+ log.debug("The returned ArtifactDefintion is {}" , artifactDefResult);
+ return Either.left(artifactDefResult);
+ }
+ }
+
+ @Override
+ public Either<ArtifactDefinition, StorageOperationStatus> getHeatEnvByGeneratedFromId(String generatedFromId) {
+ String heatEnvId = generatedFromId.concat("env");
+ Either<ArtifactDefinition, StorageOperationStatus> heatEnvEither = getArtifactById(heatEnvId, true);
+ if (heatEnvEither.isRight()) {
+ log.error("No heat env artifact node for id = {} ", heatEnvId);
+ return Either.right(StorageOperationStatus.NOT_FOUND);
+ }
+ return heatEnvEither;
+ }
private Either<ArtifactData, TitanOperationStatus> updateArifactDataDefinition(ArtifactDefinition artifactInfo) {
Either<TitanGraph, TitanOperationStatus> graph = titanGenericDao.getGraph();
@@ -388,7 +496,7 @@ public class ArtifactOperation implements IArtifactOperation {
@Override
public Either<ArtifactDefinition, StorageOperationStatus> removeArifactFromResource(String id, String artifactId, NodeTypeEnum type, boolean deleteMandatoryArtifact, boolean inTransaction) {
- Either<ArtifactData, TitanOperationStatus> status = removeArtifactOnGraph(id, artifactId, type, id, deleteMandatoryArtifact);
+ Either<ArtifactData, TitanOperationStatus> status = removeArtifactOnGraph(id, artifactId, type, deleteMandatoryArtifact);
if (status.isRight()) {
if (false == inTransaction) {
@@ -406,7 +514,7 @@ public class ArtifactOperation implements IArtifactOperation {
ArtifactData artifactData = status.left().value();
ArtifactDefinition artifactDefResult = convertArtifactDataToArtifactDefinition(artifactData);
- log.debug("The returned ArtifactDefintion is {}", artifactDefResult);
+ log.debug("The returned ArtifactDefintion is {}" , artifactDefResult);
return Either.left(artifactDefResult);
}
}
@@ -447,12 +555,17 @@ public class ArtifactOperation implements IArtifactOperation {
}
++edgeCount;
}
+
+ if (isNeedUpdateHeatTime(artifactInfo)) {
+ artifactInfo.setHeatParamsUpdateDate(System.currentTimeMillis());
+ }
ArtifactData artifactData = new ArtifactData(artifactInfo);
if (edgeFromTo == null) {
log.debug("No relation between artifact = {} and node with id = {}", artifactId, id);
return Either.right(StorageOperationStatus.GENERAL_ERROR);
}
+
Either<Boolean, StorageOperationStatus> setRelevantHeatParamIdRes = null;
if (edgeCount > 1) {
// need to remove relation, create new node
@@ -477,6 +590,13 @@ public class ArtifactOperation implements IArtifactOperation {
BeEcompErrorManager.getInstance().logInternalFlowError("UpdateArtifact", "Failed to reassociate groups to the new artifact", ErrorSeverity.ERROR);
return Either.right(reassociateGroupsFromArtifact);
}
+
+ StorageOperationStatus reassociateGroupInstancesFromArtifact = groupInstanceOperation.dissociateAndAssociateGroupsInstanceFromArtifact(id, type, artifactId, addedArtifactRes.left().value());
+ if (reassociateGroupInstancesFromArtifact != StorageOperationStatus.OK) {
+ BeEcompErrorManager.getInstance().logInternalFlowError("UpdateArtifact", "Failed to reassociate group instances to the new artifact", ErrorSeverity.ERROR);
+ return Either.right(reassociateGroupsFromArtifact);
+ }
+
// If artifact is heat env
if (artifactInfo.getArtifactType().equals(ArtifactTypeEnum.HEAT_ENV.getType())) {
ArtifactData addedArtifact = addedArtifactRes.left().value();
@@ -485,13 +605,13 @@ public class ArtifactOperation implements IArtifactOperation {
setRelevantHeatParamIdRes = setRelevantHeatParamId(artifactV, artifactInfo);
if (setRelevantHeatParamIdRes.isRight()) {
- log.error("Failed to set relevant id to heat parameters for heat env artifact " + artifactInfo.getUniqueId() + ". Status is " + setRelevantHeatParamIdRes.right().value());
+ log.error("Failed to set relevant id to heat parameters for heat env artifact {}. Status is {}", artifactInfo.getUniqueId(), setRelevantHeatParamIdRes.right().value());
return Either.right(setRelevantHeatParamIdRes.right().value());
}
- for (HeatParameterDefinition heatEnvParam : artifactInfo.getHeatParameters()) {
+ for (HeatParameterDefinition heatEnvParam : artifactInfo.getListHeatParameters()) {
updateResult = heatParametersOperation.updateHeatParameterValue(heatEnvParam, newArtifactUniqueId, id, artifactInfo.getArtifactLabel());
if (updateResult.isRight()) {
- log.error("Failed to update heat parameter " + heatEnvParam.getName() + ". Status is " + updateResult.right().value());
+ log.error("Failed to update heat parameter {}. Status is {}", heatEnvParam.getName(), updateResult.right().value());
return Either.right(updateResult.right().value());
}
}
@@ -499,7 +619,7 @@ public class ArtifactOperation implements IArtifactOperation {
Iterator<Edge> iterEdgeGeneratedFrom = artifactV.edges(Direction.OUT, GraphEdgeLabels.GENERATED_FROM.getProperty());
if (!iterEdgeGeneratedFrom.hasNext()) {
- log.error("No heat artifact node for id = " + artifactId);
+ log.error("No heat artifact node for id = {}", artifactId);
return Either.right(StorageOperationStatus.NOT_FOUND);
}
Edge edgeToHeat = iterEdgeGeneratedFrom.next();
@@ -508,7 +628,7 @@ public class ArtifactOperation implements IArtifactOperation {
UniqueIdData generatedFromArtifactNode = new UniqueIdData(NodeTypeEnum.ArtifactRef, generatedFromArtifactId);
Either<GraphRelation, TitanOperationStatus> createRelationToGeneratedFromArtifactRes = titanGenericDao.createRelation(addedArtifact, generatedFromArtifactNode, GraphEdgeLabels.GENERATED_FROM, null);
if (createRelationToGeneratedFromArtifactRes.isRight()) {
- log.error("Failed to create relation from heat_env " + addedArtifact.getUniqueId() + " to heat " + generatedFromArtifactNode);
+ log.error("Failed to create relation from heat_env {} to heat {}", addedArtifact.getUniqueId(), generatedFromArtifactNode);
return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(createRelationToGeneratedFromArtifactRes.right().value()));
}
}
@@ -535,10 +655,10 @@ public class ArtifactOperation implements IArtifactOperation {
log.error("Failed to set relevant id to heat parameters for heat env artifact {}. Status is {}", artifactInfo.getUniqueId(), setRelevantHeatParamIdRes.right().value());
return Either.right(setRelevantHeatParamIdRes.right().value());
}
- for (HeatParameterDefinition heatEnvParam : artifactInfo.getHeatParameters()) {
+ for (HeatParameterDefinition heatEnvParam : artifactInfo.getListHeatParameters()) {
updateResult = heatParametersOperation.updateHeatParameterValue(heatEnvParam, artifactUniqueId, id, artifactInfo.getArtifactLabel());
if (updateResult.isRight()) {
- log.error("Failed to update heat parameter " + heatEnvParam.getName() + ". Status is " + updateResult.right().value());
+ log.error("Failed to update heat parameter {}. Status is {}", heatEnvParam.getName(), updateResult.right().value());
return Either.right(updateResult.right().value());
}
}
@@ -546,7 +666,7 @@ public class ArtifactOperation implements IArtifactOperation {
if (artifactData.getArtifactDataDefinition().getArtifactChecksum() == null) {
// update heat parameters only if it is not heat env
if (artifactInfo.getGeneratedFromId() == null) {
- StorageOperationStatus operationStatus = heatParametersOperation.updateHeatParameters(artifactInfo.getHeatParameters());
+ StorageOperationStatus operationStatus = heatParametersOperation.updateHeatParameters(artifactInfo.getListHeatParameters());
if (operationStatus != StorageOperationStatus.OK) {
return Either.right(operationStatus);
}
@@ -558,11 +678,12 @@ public class ArtifactOperation implements IArtifactOperation {
return Either.right(StorageOperationStatus.GENERAL_ERROR);
}
- StorageOperationStatus addParameters = heatParametersOperation.addPropertiesToGraph(artifactInfo.getHeatParameters(), artifactId, NodeTypeEnum.ArtifactRef);
+ StorageOperationStatus addParameters = heatParametersOperation.addPropertiesToGraph(artifactInfo.getListHeatParameters(), artifactId, NodeTypeEnum.ArtifactRef);
if (!addParameters.equals(StorageOperationStatus.OK)) {
log.debug("failed to update heat parameters for artifact id {}", artifactData.getUniqueId());
return Either.right(StorageOperationStatus.GENERAL_ERROR);
}
+
}
}
@@ -574,13 +695,20 @@ public class ArtifactOperation implements IArtifactOperation {
}
}
+ private boolean isNeedUpdateHeatTime(ArtifactDefinition artifactInfo) {
+ if (artifactInfo.getArtifactType().equals(ArtifactTypeEnum.HEAT.getType()) || artifactInfo.getArtifactType().equals(ArtifactTypeEnum.HEAT_NET.getType()) || artifactInfo.getArtifactType().equals(ArtifactTypeEnum.HEAT_VOL.getType())) {
+ return true;
+ }
+ return false;
+ }
+
private Either<Boolean, StorageOperationStatus> setRelevantHeatParamId(TitanVertex artifactV, ArtifactDefinition artifactInfo) {
Map<String, String> heatParametersHM = new HashMap<String, String>();
Iterator<Edge> iterHeat = artifactV.edges(Direction.OUT, GraphEdgeLabels.GENERATED_FROM.getProperty());
if (!iterHeat.hasNext()) {
- log.debug("No edges with label GENERATED_FROM for the node {}", artifactInfo.getUniqueId());
+ log.debug("No edges with label GENERATED_FROM for the node {}" , artifactInfo.getUniqueId());
return Either.right(StorageOperationStatus.NOT_FOUND);
}
Edge heat = iterHeat.next();
@@ -603,7 +731,7 @@ public class ArtifactOperation implements IArtifactOperation {
heatParametersHM.put(heatParam.getName(), (String) heatParam.getUniqueId());
}
String curName = null;
- for (HeatParameterDefinition heatEnvParam : artifactInfo.getHeatParameters()) {
+ for (HeatParameterDefinition heatEnvParam : artifactInfo.getListHeatParameters()) {
curName = heatEnvParam.getName();
if (heatParametersHM.containsKey(curName)) {
heatEnvParam.setUniqueId(heatParametersHM.get(curName));
@@ -635,7 +763,7 @@ public class ArtifactOperation implements IArtifactOperation {
return Either.left(edgeCount);
}
- public Either<ArtifactData, TitanOperationStatus> removeArtifactOnGraph(String id, String artifactId, NodeTypeEnum type, String id2, boolean deleteMandatoryArtifact) {
+ public Either<ArtifactData, TitanOperationStatus> removeArtifactOnGraph(String id, String artifactId, NodeTypeEnum type, boolean deleteMandatoryArtifact) {
Either<TitanGraph, TitanOperationStatus> graph = titanGenericDao.getGraph();
if (graph.isRight()) {
return Either.right(graph.right().value());
@@ -675,7 +803,7 @@ public class ArtifactOperation implements IArtifactOperation {
++edgeCount;
}
if (edgeFromTo == null) {
- log.debug("No relation between artifact = {} and node with id = {}", artifactId, id);
+ log.debug("No relation between artifact = {} and node with id = {}", artifactId, id);
return Either.right(TitanOperationStatus.GENERAL_ERROR);
}
@@ -702,13 +830,13 @@ public class ArtifactOperation implements IArtifactOperation {
log.debug("Remove artifactRef node from graph");
Either<List<HeatParameterDefinition>, StorageOperationStatus> deleteStatus = heatParametersOperation.deleteAllHeatParametersAssociatedToNode(NodeTypeEnum.ArtifactRef, artifactId);
if (deleteStatus.isRight()) {
- log.error("failed to delete heat parameters of artifact " + artifactId);
+ log.error("failed to delete heat parameters of artifact {}", artifactId);
return Either.right(TitanOperationStatus.GENERAL_ERROR);
}
StorageOperationStatus deleteValuesStatus = heatParametersOperation.deleteAllHeatValuesAssociatedToNode(NodeTypeEnum.ArtifactRef, artifactId);
if (!deleteValuesStatus.equals(StorageOperationStatus.OK)) {
- log.error("failed to delete heat values of artifact " + artifactId);
+ log.error("failed to delete heat values of artifact {}", artifactId);
return Either.right(TitanOperationStatus.GENERAL_ERROR);
}
if (!isMandatory) {
@@ -764,6 +892,12 @@ public class ArtifactOperation implements IArtifactOperation {
if (artifact != null) {
ArtifactDefinition artifactDefinition = new ArtifactDefinition(artifact.getArtifactDataDefinition());
+ Iterator<Edge> edgesGeneratedFrom = artifactV.edges(Direction.OUT, GraphEdgeLabels.GENERATED_FROM.getProperty());
+ if (edgesGeneratedFrom != null && edgesGeneratedFrom.hasNext()) {
+ TitanVertex inVertex = (TitanVertex) edgesGeneratedFrom.next().inVertex();
+ String artifactIdGeneratedFrom = (String) titanGenericDao.getProperty(inVertex, GraphPropertiesDictionary.UNIQUE_ID.getProperty());
+ artifactDefinition.setGeneratedFromId(artifactIdGeneratedFrom);
+ }
List<HeatParameterDefinition> heatParams = new ArrayList<HeatParameterDefinition>();
StorageOperationStatus heatParametersStatus = heatParametersOperation.getHeatParametersOfNode(NodeTypeEnum.ArtifactRef, artifactDefinition.getUniqueId(), heatParams);
if (!heatParametersStatus.equals(StorageOperationStatus.OK)) {
@@ -771,7 +905,7 @@ public class ArtifactOperation implements IArtifactOperation {
return Either.right(heatParametersStatus);
}
if (!heatParams.isEmpty()) {
- artifactDefinition.setHeatParameters(heatParams);
+ artifactDefinition.setListHeatParameters(heatParams);
}
artifactMap.put(artifactDefinition.getArtifactLabel(), artifactDefinition);
log.debug("Artifact was added to list {}", artifact.getUniqueId());
@@ -867,7 +1001,7 @@ public class ArtifactOperation implements IArtifactOperation {
return Either.right(heatParametersStatus);
}
if (!heatParams.isEmpty()) {
- artifactDef.setHeatParameters(heatParams);
+ artifactDef.setListHeatParameters(heatParams);
}
Either<ImmutablePair<ArtifactData, GraphEdge>, TitanOperationStatus> generatedFromArtifact = titanGenericDao.getChild(artifactData.getUniqueIdKey(), (String) artifactData.getUniqueId(), GraphEdgeLabels.GENERATED_FROM,
@@ -882,7 +1016,7 @@ public class ArtifactOperation implements IArtifactOperation {
log.debug("failed to get heat parameters values for heat artifact {}", artifactDef.getUniqueId());
return Either.right(heatParamsForEnv.right().value());
} else {
- artifactDef.setHeatParameters(heatParamsForEnv.left().value());
+ artifactDef.setListHeatParameters(heatParamsForEnv.left().value());
}
}
@@ -1003,7 +1137,7 @@ public class ArtifactOperation implements IArtifactOperation {
return Either.right(heatParametersStatus);
}
if (!heatParams.isEmpty()) {
- artifactDefinition.setHeatParameters(heatParams);
+ artifactDefinition.setListHeatParameters(heatParams);
}
Either<ImmutablePair<ArtifactData, GraphEdge>, TitanOperationStatus> getResult = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ArtifactRef), artifactDefinition.getUniqueId(), GraphEdgeLabels.GENERATED_FROM,
@@ -1039,45 +1173,40 @@ public class ArtifactOperation implements IArtifactOperation {
}
@Override
- public Either<ArtifactDefinition, StorageOperationStatus> addHeatEnvArtifact(ArtifactDefinition artifactHeatEnv, ArtifactDefinition artifactHeat, String parentId, NodeTypeEnum parentType, boolean inTransaction) {
-
- Either<ArtifactDefinition, StorageOperationStatus> result = null;
- try {
- Either<ArtifactDefinition, StorageOperationStatus> heatArtifactOnGraph = addArifactToComponent(artifactHeatEnv, parentId, parentType, true, true);
-
- if (heatArtifactOnGraph.isRight()) {
- log.debug("failed to create heat env artifact on graph");
- result = heatArtifactOnGraph;
- return result;
- }
-
- ArtifactDefinition artifactDefinition = heatArtifactOnGraph.left().value();
+ public Either<ArtifactDefinition, StorageOperationStatus> addHeatEnvArtifact(ArtifactDefinition artifactHeatEnv, ArtifactDefinition artifactHeat, String parentId, NodeTypeEnum parentType, boolean failIfExist) {
- // add relation from heatEnv to heat
- UniqueIdData heatData = new UniqueIdData(NodeTypeEnum.ArtifactRef, artifactHeat.getUniqueId());
- UniqueIdData heatEnvData = new UniqueIdData(NodeTypeEnum.ArtifactRef, artifactDefinition.getUniqueId());
- Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(heatEnvData, heatData, GraphEdgeLabels.GENERATED_FROM, null);
-
- if (createRelation.isRight()) {
- TitanOperationStatus status = createRelation.right().value();
- log.debug("failed to add relation from heat_env artifact to heat artifact. error: {}", status);
- result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- return result;
- }
- artifactDefinition.setGeneratedFromId(artifactHeat.getUniqueId());
- log.trace("heat env artifact added successfuly to resource instance");
- result = Either.left(artifactDefinition);
+ Either<ArtifactDefinition, StorageOperationStatus> result = null;
+ Either<ArtifactDefinition, StorageOperationStatus> heatArtifactOnGraph = addArifactToComponent(artifactHeatEnv, parentId, parentType, failIfExist, true);
+ if (heatArtifactOnGraph.isRight()) {
+ log.debug("failed to create heat env artifact on graph");
+ result = heatArtifactOnGraph;
return result;
- } finally {
- if (inTransaction == false) {
- if (result == null || result.isRight()) {
- this.titanGenericDao.rollback();
- } else {
- this.titanGenericDao.commit();
- }
-
- }
}
+
+ ArtifactDefinition artifactDefinition = heatArtifactOnGraph.left().value();
+ // add relation from heatEnv to heat
+ UniqueIdData heatData = new UniqueIdData(NodeTypeEnum.ArtifactRef, artifactHeat.getUniqueId());
+ UniqueIdData heatEnvData = new UniqueIdData(NodeTypeEnum.ArtifactRef, artifactDefinition.getUniqueId());
+
+ Either<GraphRelation, TitanOperationStatus> relation = titanGenericDao.getRelation(heatEnvData, heatData, GraphEdgeLabels.GENERATED_FROM);
+ if (relation.isRight()) {
+ // TODO: add error in case of error
+ TitanOperationStatus status = relation.right().value();
+ if (status == TitanOperationStatus.NOT_FOUND) {
+ Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(heatEnvData, heatData, GraphEdgeLabels.GENERATED_FROM, null);
+ if (createRelation.isRight()) {
+ status = createRelation.right().value();
+ log.debug("failed to add relation from heat_env artifact to heat artifact. error: {}", status);
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
+ return result;
+ }
+ }
+ }
+
+ artifactDefinition.setGeneratedFromId(artifactHeat.getUniqueId());
+ log.trace("heat env artifact added successfuly to resource instance");
+ result = Either.left(artifactDefinition);
+ return result;
}
public void updateUUID(ArtifactDataDefinition artifactData, String oldChecksum, String oldVesrion) {
@@ -1100,6 +1229,10 @@ public class ArtifactOperation implements IArtifactOperation {
UUID uuid = UUID.randomUUID();
artifactData.setArtifactUUID(uuid.toString());
MDC.put("serviceInstanceID", uuid.toString());
+ updateVersionAndDate(artifactData, oldVesrion);
+ }
+
+ private void updateVersionAndDate(ArtifactDataDefinition artifactData, String oldVesrion) {
long time = System.currentTimeMillis();
artifactData.setPayloadUpdateDate(time);
int newVersion = new Integer(oldVesrion).intValue();
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/AttributeOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/AttributeOperation.java
index fc81a9affd..f82a2982b0 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/AttributeOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/AttributeOperation.java
@@ -239,9 +239,9 @@ public class AttributeOperation extends AbstractOperation implements IAttributeO
List<ComponentInstanceAttribute> buildAttInstanceFromResource = attributes.stream().map(attDef -> new ComponentInstanceAttribute(attDef, false, null)).collect(Collectors.toList());
// Set Value to be default value in case it is empty
- Consumer<ComponentInstanceAttribute> valueSetter = data -> {
- if (StringUtils.isEmpty(data.getValue())) {
- data.setValue(data.getDefaultValue());
+ Consumer<ComponentInstanceAttribute> valueSetter = att -> {
+ if (StringUtils.isEmpty(att.getValue())) {
+ att.setValue(att.getDefaultValue());
}
};
buildAttInstanceFromResource.stream().forEach(valueSetter);
@@ -438,7 +438,7 @@ public class AttributeOperation extends AbstractOperation implements IAttributeO
Either<AttributeData, TitanOperationStatus> eitherResult;
StorageOperationStatus validateAndUpdateAttribute = propertyOperation.validateAndUpdateProperty(attribute, dataTypes);
if (validateAndUpdateAttribute != StorageOperationStatus.OK) {
- log.error("Attribute " + attribute + " is invalid. Status is " + validateAndUpdateAttribute);
+ log.error("Attribute {} is invalid. Status is {}", attribute, validateAndUpdateAttribute);
eitherResult = Either.right(TitanOperationStatus.ILLEGAL_ARGUMENT);
} else {
eitherResult = addAttributeToNodeType(attribute, NodeTypeEnum.Resource, resourceId);
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CacheMangerOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CacheMangerOperation.java
index d05255473d..cadcd32926 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CacheMangerOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CacheMangerOperation.java
@@ -31,10 +31,8 @@ import org.openecomp.sdc.be.model.cache.jobs.*;
import org.openecomp.sdc.be.model.cache.workers.CacheWorker;
import org.openecomp.sdc.be.model.cache.workers.IWorker;
import org.openecomp.sdc.be.model.cache.workers.SyncWorker;
+import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
import org.openecomp.sdc.be.model.operations.api.ICacheMangerOperation;
-import org.openecomp.sdc.be.model.operations.api.IProductOperation;
-import org.openecomp.sdc.be.model.operations.api.IResourceOperation;
-import org.openecomp.sdc.be.model.operations.api.IServiceOperation;
import org.openecomp.sdc.be.workers.Manager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -47,18 +45,12 @@ import java.util.LinkedList;
import java.util.concurrent.*;
/**
- * Created by mlando on 9/5/2016. the class is responsible for handling all
- * cache update operations asynchronously including sync between the graph and
- * cache and on demand update requests
+ * Created by mlando on 9/5/2016. the class is responsible for handling all cache update operations asynchronously including sync between the graph and cache and on demand update requests
*/
@Component("cacheManger-operation")
public class CacheMangerOperation implements ICacheMangerOperation {
@Autowired
- private IResourceOperation iResourceOperation;
- @Autowired
- private IServiceOperation iServiceOperation;
- @Autowired
- private IProductOperation iProductOperation;
+ private ToscaOperationFacade toscaOperationFacade;
@Autowired
private TitanGenericDao titanGenericDao;
@Autowired
@@ -76,21 +68,17 @@ public class CacheMangerOperation implements ICacheMangerOperation {
* constructor
*/
public CacheMangerOperation() {
- // daoInfo = new DaoInfo(iResourceOperation, iServiceOperation,
- // iProductOperation, componentCache);
}
/**
- * the method checks in the cache is enabled, if it is, it initializes all
- * the workers according to the configuration values.
+ * the method checks in the cache is enabled, if it is, it initializes all the workers according to the configuration values.
*/
@PostConstruct
public void init() {
- daoInfo = new DaoInfo(iResourceOperation, iServiceOperation, iProductOperation, componentCache);
+ daoInfo = new DaoInfo(toscaOperationFacade, componentCache);
- Configuration.ApplicationL2CacheConfig applicationL2CacheConfig = ConfigurationManager.getConfigurationManager()
- .getConfiguration().getApplicationL2Cache();
+ Configuration.ApplicationL2CacheConfig applicationL2CacheConfig = ConfigurationManager.getConfigurationManager().getConfiguration().getApplicationL2Cache();
if (applicationL2CacheConfig != null && applicationL2CacheConfig.isEnabled()) {
Integer numberOfWorkers = applicationL2CacheConfig.getQueue().getNumberOfCacheWorkers();
this.waitOnShutDownInMinutes = applicationL2CacheConfig.getQueue().getWaitOnShutDownInMinutes();
@@ -122,9 +110,7 @@ public class CacheMangerOperation implements ICacheMangerOperation {
}
/**
- * the method creates a job to check it the given component is in the cach
- * and if so is it valid if the value in the cache is not valid it will be
- * updated.
+ * the method creates a job to check it the given component is in the cach and if so is it valid if the value in the cache is not valid it will be updated.
*
* @param componentId
* the uid of the component we want to update
@@ -135,24 +121,21 @@ public class CacheMangerOperation implements ICacheMangerOperation {
*/
@Override
public void updateComponentInCache(String componentId, long timestamp, NodeTypeEnum nodeTypeEnum) {
- Configuration.ApplicationL2CacheConfig applicationL2CacheConfig = ConfigurationManager.getConfigurationManager()
- .getConfiguration().getApplicationL2Cache();
+ Configuration.ApplicationL2CacheConfig applicationL2CacheConfig = ConfigurationManager.getConfigurationManager().getConfiguration().getApplicationL2Cache();
if (applicationL2CacheConfig != null && applicationL2CacheConfig.isEnabled()) {
this.jobQueue.add(new CheckAndUpdateJob(daoInfo, componentId, nodeTypeEnum, timestamp));
}
}
public void overideComponentInCache(String componentId, long timestamp, NodeTypeEnum nodeTypeEnum) {
- Configuration.ApplicationL2CacheConfig applicationL2CacheConfig = ConfigurationManager.getConfigurationManager()
- .getConfiguration().getApplicationL2Cache();
+ Configuration.ApplicationL2CacheConfig applicationL2CacheConfig = ConfigurationManager.getConfigurationManager().getConfiguration().getApplicationL2Cache();
if (applicationL2CacheConfig != null && applicationL2CacheConfig.isEnabled()) {
this.jobQueue.add(new OverrideJob(daoInfo, componentId, nodeTypeEnum, timestamp));
}
}
public void deleteComponentInCache(String componentId, long timestamp, NodeTypeEnum nodeTypeEnum) {
- Configuration.ApplicationL2CacheConfig applicationL2CacheConfig = ConfigurationManager.getConfigurationManager()
- .getConfiguration().getApplicationL2Cache();
+ Configuration.ApplicationL2CacheConfig applicationL2CacheConfig = ConfigurationManager.getConfigurationManager().getConfiguration().getApplicationL2Cache();
if (applicationL2CacheConfig != null && applicationL2CacheConfig.isEnabled()) {
this.jobQueue.add(new DeleteJob(daoInfo, componentId, nodeTypeEnum, timestamp));
}
@@ -168,17 +151,14 @@ public class CacheMangerOperation implements ICacheMangerOperation {
*/
@Override
public void storeComponentInCache(org.openecomp.sdc.be.model.Component component, NodeTypeEnum nodeTypeEnum) {
- Configuration.ApplicationL2CacheConfig applicationL2CacheConfig = ConfigurationManager.getConfigurationManager()
- .getConfiguration().getApplicationL2Cache();
+ Configuration.ApplicationL2CacheConfig applicationL2CacheConfig = ConfigurationManager.getConfigurationManager().getConfiguration().getApplicationL2Cache();
if (applicationL2CacheConfig != null && applicationL2CacheConfig.isEnabled()) {
this.jobQueue.add(new StoreJob(daoInfo, component, nodeTypeEnum));
}
}
/**
- * the method shutdown's all the worker's. the method has a pre set of how
- * long it will wait for the workers to shutdown. the pre defined value is
- * taken from the configuration.
+ * the method shutdown's all the worker's. the method has a pre set of how long it will wait for the workers to shutdown. the pre defined value is taken from the configuration.
*/
@PreDestroy
public void shutDown() {
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CapabilityInstanceOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CapabilityInstanceOperation.java
index 0c4f35fd54..818089feee 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CapabilityInstanceOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CapabilityInstanceOperation.java
@@ -74,24 +74,6 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
private CapabilityOperation capabilityOperation;
/**
- * String constants for logger
- */
- private String statusIs = ". status is ";
- private String dot = ".";
- private String onGraph = " on graph ";
- private String ofRI = " of resource instance ";
- private String toCapability = " to capability ";
- private String toCI = " to capability instance ";
- private String toProperty = " to property ";
- private String forRI = " for resource instance ";
- private String failedCreateCI = "Failed to create capability instance of capability ";
- private String failedAddProperties = "Failed to add properties to capability instance ";
- private String ofCI = " of component instance ";
- private String failedDeletePropertyValues = "Failed to delete property values of capability instance ";
- private String toValue = " to property value ";
- private String fromRI = " from resource instance ";
-
- /**
* create capability instance of capability with property values for resource instance
*
* @param resourceInstanceId
@@ -184,13 +166,13 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
private Either<List<PropertyValueData>, TitanOperationStatus> addPropertyValueToCapabilityInstance(String resourceInstanceId, List<ComponentInstanceProperty> propertyValues, Wrapper<TitanOperationStatus> errorWrapper,
Either<CapabilityInstData, TitanOperationStatus> createCapabilityRes, Wrapper<Map<String, PropertyDefinition>> defaultPropertiesWrapper, Wrapper<String> createdCapabilityInstanceIdWrapper) {
Either<List<PropertyValueData>, TitanOperationStatus> addPropertyValuesRes;
- log.debug("Before adding property values to capability instance {} dot", createdCapabilityInstanceIdWrapper.getInnerElement());
+ log.debug("Before adding property values to capability instance {}.",createdCapabilityInstanceIdWrapper.getInnerElement());
addPropertyValuesRes = addPropertyValuesToCapabilityInstance(createCapabilityRes.left().value(), propertyValues, defaultPropertiesWrapper.getInnerElement());
if (addPropertyValuesRes.isRight()) {
errorWrapper.setInnerElement(addPropertyValuesRes.right().value());
- log.debug("failedAddProperties {} ofRI {} statusIs {} dot", createdCapabilityInstanceIdWrapper.getInnerElement(), resourceInstanceId, errorWrapper.getInnerElement());
+ log.debug("Failed to add properties to capability instance {} of resource instance {}. status is {}.", createdCapabilityInstanceIdWrapper.getInnerElement(), resourceInstanceId, errorWrapper.getInnerElement());
}
- log.debug("After adding property values to capability instance {} status is {}.", createdCapabilityInstanceIdWrapper.getInnerElement(), errorWrapper.getInnerElement());
+ log.debug("After adding property values to capability instance {}. status is {}.", createdCapabilityInstanceIdWrapper.getInnerElement(), errorWrapper.getInnerElement());
return addPropertyValuesRes;
}
@@ -200,9 +182,9 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
TitanOperationStatus addPropertyValuesRes = addPropertyValuesToCapabilityInstance(createCapabilityRes.left().value(), propertyValues, defaultPropertiesWrapper.getInnerElement());
if (!addPropertyValuesRes.equals(TitanOperationStatus.OK)) {
errorWrapper.setInnerElement(addPropertyValuesRes);
- log.debug("Failed to add properties to capability instance {} {} {} {} {}", createdCapabilityInstanceIdWrapper.getInnerElement(), ofRI, resourceInstanceId, statusIs, errorWrapper.getInnerElement());
+ log.debug("Failed to add properties to capability instance {} of resource instance {}. status is {}", createdCapabilityInstanceIdWrapper.getInnerElement(), resourceInstanceId, errorWrapper.getInnerElement());
}
- log.trace("After adding property values to capability instance {} {} {}", createdCapabilityInstanceIdWrapper.getInnerElement(), statusIs, errorWrapper.getInnerElement());
+ log.trace("After adding property values to capability instance {}. status is {}", createdCapabilityInstanceIdWrapper.getInnerElement(), errorWrapper.getInnerElement());
return addPropertyValuesRes;
}
@@ -214,18 +196,19 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
createdCapabilityInstanceIdWrapper.setInnerElement(createdCapabilityInstance.getUniqueId());
Map<String, PropertyDefinition> defaultProperties = overrideCapabilityDefinitionWrapper.getInnerElement().getProperties().stream().collect(Collectors.toMap(PropertyDefinition::getName, Function.identity()));
defaultPropertiesWrapper.setInnerElement(defaultProperties);
- log.debug("Before validating property values of capability instance {}.", createdCapabilityInstanceIdWrapper.getInnerElement());
+ log.debug("Before validating property values of capability instance {}",createdCapabilityInstanceIdWrapper.getInnerElement());
Either<Boolean, TitanOperationStatus> result = validateCapabilityInstanceProperties(defaultProperties, propertyValues);
if (result.isRight()) {
errorWrapper.setInnerElement(result.right().value());
- log.debug("failedAddProperties {} ofRI {} statusIs {}.", createdCapabilityInstanceIdWrapper.getInnerElement(), resourceInstanceId, errorWrapper.getInnerElement());
+ log.debug("Failed to add properties to capability instance {} of resource instance {}. status is {}.", createdCapabilityInstanceIdWrapper.getInnerElement(), resourceInstanceId, errorWrapper.getInnerElement());
}
- log.debug("After validating property values of capability instance {} status is {}.", createdCapabilityInstanceIdWrapper.getInnerElement(), errorWrapper.getInnerElement());
+ log.debug("After validating property values of capability instance {}. status is {}", createdCapabilityInstanceIdWrapper.getInnerElement(), errorWrapper.getInnerElement());
return createdCapabilityInstance;
}
private TitanVertex validateCapabilityInstancePropertiesByVertex(String resourceInstanceId, List<ComponentInstanceProperty> propertyValues, Wrapper<TitanOperationStatus> errorWrapper,
Wrapper<CapabilityDefinition> overrideCapabilityDefinitionWrapper, TitanVertex createCapabilityRes, Wrapper<Map<String, PropertyDefinition>> defaultPropertiesWrapper, Wrapper<String> createdCapabilityInstanceIdWrapper) {
+
String id = (String) titanGenericDao.getProperty(createCapabilityRes, GraphPropertiesDictionary.UNIQUE_ID.getProperty());
createdCapabilityInstanceIdWrapper.setInnerElement(id);
Map<String, PropertyDefinition> defaultProperties = overrideCapabilityDefinitionWrapper.getInnerElement().getProperties().stream().collect(Collectors.toMap(PropertyDefinition::getName, Function.identity()));
@@ -234,9 +217,9 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
Either<Boolean, TitanOperationStatus> result = validateCapabilityInstanceProperties(defaultProperties, propertyValues);
if (result.isRight()) {
errorWrapper.setInnerElement(result.right().value());
- log.debug("Failed to add properties to capability instance {} {} {} {} {}", createdCapabilityInstanceIdWrapper.getInnerElement(), ofRI, resourceInstanceId, statusIs, errorWrapper.getInnerElement());
+ log.debug("Failed to add properties to capability instance {} of resource instance {}, status is {}", createdCapabilityInstanceIdWrapper.getInnerElement(), resourceInstanceId, errorWrapper.getInnerElement());
}
- log.trace("After validating property values of capability instance {} {} {}", createdCapabilityInstanceIdWrapper.getInnerElement(), statusIs, errorWrapper.getInnerElement());
+ log.trace("After validating property values of capability instance {}, status is {}", createdCapabilityInstanceIdWrapper.getInnerElement(), errorWrapper.getInnerElement());
return createCapabilityRes;
}
@@ -249,46 +232,46 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
createCapabilityRes = createCapabilityInstanceOnGraph(resourceInstanceId, overrideCapabilityDataWrapper.getInnerElement(), capabilityInstance);
if (createCapabilityRes.isRight()) {
errorWrapper.setInnerElement(createCapabilityRes.right().value());
- log.debug("failedCreateCI {} ofRI {} statusIs {}.", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
+ log.debug("Failed to create capability instance of capability {} of resource instance {}, status is {}", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
}
- log.debug("After creating capability instance of capability {} on graph. Status is {}", capabilityId, errorWrapper.getInnerElement());
+ log.debug("After creating capability instance of capability {} on graph, status is {}", capabilityId, errorWrapper.getInnerElement());
return createCapabilityRes;
}
private Either<TitanVertex, TitanOperationStatus> createCapabilityInstanceOnGraphByVertex(TitanVertex riVertex, String resourceInstanceId, String capabilityId, Wrapper<TitanOperationStatus> errorWrapper,
Wrapper<TitanVertex> overrideCapabilityDataWrapper, Wrapper<CapabilityDefinition> overrideCapabilityDefinitionWrapper, Either<CapabilityDefinition, TitanOperationStatus> getCapabilityDefinitionRes) {
Either<TitanVertex, TitanOperationStatus> createCapabilityRes;
- log.trace("Before creating capability instance of capability {} {}", capabilityId, onGraph);
+ log.trace("Before creating capability instance of capability {} on graph", capabilityId);
overrideCapabilityDefinitionWrapper.setInnerElement(getCapabilityDefinitionRes.left().value());
CapabilityInstData capabilityInstance = buildCapabilityInstanceData(resourceInstanceId, overrideCapabilityDefinitionWrapper.getInnerElement());
createCapabilityRes = createCapabilityInstanceOnGraph(riVertex, resourceInstanceId, overrideCapabilityDataWrapper.getInnerElement(), capabilityInstance);
if (createCapabilityRes.isRight()) {
errorWrapper.setInnerElement(createCapabilityRes.right().value());
- log.debug("Failed to create capability instance of capability {} {} {} {} {} ", capabilityId, ofRI, resourceInstanceId, statusIs, errorWrapper.getInnerElement());
+ log.debug("Failed to create capability instance of capability {} of resource instance {}, status is {} ", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
}
- log.debug("After creating capability instance of capability {} {} {} {} {}", capabilityId, onGraph, statusIs, errorWrapper.getInnerElement());
+ log.debug("After creating capability instance of capability {} on graph, status is {}", capabilityId, errorWrapper.getInnerElement());
return createCapabilityRes;
}
private Either<CapabilityDefinition, TitanOperationStatus> getCapabiityDefinition(String resourceInstanceId, String capabilityId, Wrapper<TitanOperationStatus> errorWrapper, Wrapper<CapabilityData> overrideCapabilityDataWrapper,
Either<ImmutablePair<CapabilityData, GraphEdge>, TitanOperationStatus> getCapabilityRes) {
Either<CapabilityDefinition, TitanOperationStatus> getCapabilityDefinitionRes;
- log.debug("Before getting capability definition {} forRI {}.", capabilityId, resourceInstanceId);
+ log.debug("Before getting capability definition {} for resource instance {}", capabilityId, resourceInstanceId);
CapabilityData overrideCapabilityData = getCapabilityRes.left().value().getLeft();
overrideCapabilityDataWrapper.setInnerElement(overrideCapabilityData);
getCapabilityDefinitionRes = capabilityOperation.getCapabilityByCapabilityData(overrideCapabilityData);
if (getCapabilityDefinitionRes.isRight()) {
errorWrapper.setInnerElement(getCapabilityDefinitionRes.right().value());
- log.debug("Failed to retrieve capability {} ofRI {} statusIs {}.", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
+ log.debug("Failed to retrieve capability {} of resource instance {}, status is {}", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
}
- log.debug("After getting capability definition for {} forRI {} statusIs {}.", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
+ log.debug("After getting capability definition for {} for resource instance {}, status is {}", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
return getCapabilityDefinitionRes;
}
private Either<CapabilityDefinition, TitanOperationStatus> getCapabiityDefinitionByVertex(String resourceInstanceId, String capabilityId, Wrapper<TitanOperationStatus> errorWrapper, Wrapper<TitanVertex> overrideCapabilityDataWrapper,
Either<ImmutablePair<TitanVertex, Edge>, TitanOperationStatus> getCapabilityRes) {
Either<CapabilityDefinition, TitanOperationStatus> getCapabilityDefinitionRes;
- log.trace("Before getting capability definition {} {} {}", capabilityId, forRI, resourceInstanceId);
+ log.trace("Before getting capability definition {} for resource instance {}", capabilityId, resourceInstanceId);
TitanVertex overrideCapabilityData = getCapabilityRes.left().value().getLeft();
@@ -296,90 +279,90 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
getCapabilityDefinitionRes = capabilityOperation.getCapabilityByCapabilityData(overrideCapabilityData);
if (getCapabilityDefinitionRes.isRight()) {
errorWrapper.setInnerElement(getCapabilityDefinitionRes.right().value());
- log.debug("Failed to retrieve capability {} ofRI {} statusIs {}", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
+ log.debug("Failed to retrieve capability {} of resource instance {}, status is {}", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
}
- log.debug("After getting capability definition for {} forRI {} statusIs {}.", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
+ log.debug("After getting capability definition for {} for resource instance {} status is {}", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
return getCapabilityDefinitionRes;
}
private Either<ImmutablePair<CapabilityData, GraphEdge>, TitanOperationStatus> getCapabilitiesOfResourceInstance(String resourceInstanceId, String capabilityId, String capabilityName, Wrapper<TitanOperationStatus> errorWrapper) {
Either<ImmutablePair<CapabilityData, GraphEdge>, TitanOperationStatus> getCapabilityRes;
- log.debug("Before getting capability {} forRI {}.", capabilityId, resourceInstanceId);
+ log.debug("Before getting capability {} for resource instance {}", capabilityId, resourceInstanceId);
Map<String, Object> props = new HashMap<>();
props.put(GraphPropertiesDictionary.NAME.getProperty(), capabilityName);
getCapabilityRes = titanGenericDao.getChildByEdgeCriteria(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ResourceInstance), resourceInstanceId, GraphEdgeLabels.CALCULATED_CAPABILITY, NodeTypeEnum.Capability, CapabilityData.class, props);
if (getCapabilityRes.isRight()) {
errorWrapper.setInnerElement(getCapabilityRes.right().value());
- log.debug("Failed to get capability {} ofRI {} statusIs {}.", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
+ log.debug("Failed to get capability {} of resource instance {}, status is {}", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
}
- log.debug("After getting capability for {} forRI {} statusIs {}.", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
+ log.debug("After getting capability for {} for resource instance {}. status is {}", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
return getCapabilityRes;
}
private Either<ImmutablePair<TitanVertex, Edge>, TitanOperationStatus> getCapabilitiesOfResourceInstance(TitanVertex instanceVertex, String resourceInstanceId, String capabilityId, String capabilityName,
Wrapper<TitanOperationStatus> errorWrapper) {
Either<ImmutablePair<TitanVertex, Edge>, TitanOperationStatus> getCapabilityRes;
- log.trace("Before getting capability {} {} {}", capabilityId, forRI, resourceInstanceId);
+ log.trace("Before getting capability {} {} {}", capabilityId, " for resource instance ", resourceInstanceId);
Map<String, Object> props = new HashMap<>();
props.put(GraphPropertiesDictionary.NAME.getProperty(), capabilityName);
getCapabilityRes = titanGenericDao.getChildByEdgeCriteria(instanceVertex, GraphEdgeLabels.CALCULATED_CAPABILITY, props);
if (getCapabilityRes.isRight()) {
errorWrapper.setInnerElement(getCapabilityRes.right().value());
- log.debug("Failed to get capability {} {} {} {} {}", capabilityId, ofRI, resourceInstanceId, statusIs, errorWrapper.getInnerElement());
+ log.debug("Failed to get capability {} of resource instance {}. status is {}", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
}
- log.trace("After getting capability for {} {} {} {} {}", capabilityId, forRI, resourceInstanceId, statusIs, errorWrapper.getInnerElement());
+ log.trace("After getting capability for {} for resource instance {}. status is {}", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
return getCapabilityRes;
}
private void validateCapabilityInstanceExistence(String resourceInstanceId, String capabilityId, Wrapper<TitanOperationStatus> errorWrapper) {
- log.debug("Before validation of existence of capability instance of capability {} forRI {}.", capabilityId, resourceInstanceId);
+ log.debug("Before validation of existence of capability instance of capability {} for resource instance {}", capabilityId, resourceInstanceId);
boolean capabilityInstOfCapabilityAlreadyExists;
Either<Boolean, TitanOperationStatus> validateCapabilityInstExistenceRes = validateCapabilityInstExistence(resourceInstanceId, capabilityId);
if (validateCapabilityInstExistenceRes.isRight()) {
errorWrapper.setInnerElement(validateCapabilityInstExistenceRes.right().value());
- log.debug("Failed to validate uniqueness of capability instance of capability {} ofRI {} statusIs {}.", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
+ log.debug("Failed to validate uniqueness of capability instance of capability {} of resource instance {}. status is {}", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
} else {
capabilityInstOfCapabilityAlreadyExists = validateCapabilityInstExistenceRes.left().value();
if (capabilityInstOfCapabilityAlreadyExists) {
errorWrapper.setInnerElement(TitanOperationStatus.ALREADY_EXIST);
- log.debug("failedCreateCI {} ofRI {} statusIs {}.", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
+ log.debug("Failed to create capability instance of capability {} of resource instance {}. status is {}", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
}
}
- log.debug("After validation of existence of capability instance of capability {} forRI {} statusIs {}.", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
+ log.debug("After validation of existence of capability instance of capability {} for resource instance {}. status is {}", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
}
private void validateCapabilityInstanceExistence(TitanVertex resourceInstanceVertex, String resourceInstanceId, String capabilityId, Wrapper<TitanOperationStatus> errorWrapper) {
- log.trace("Before validation of existence of capability instance of capability {} {} {}", capabilityId, forRI, resourceInstanceId);
+ log.trace("Before validation of existence of capability instance of capability {} for resource instance {}", capabilityId, resourceInstanceId);
boolean capabilityInstOfCapabilityAlreadyExists;
Either<Boolean, TitanOperationStatus> validateCapabilityInstExistenceRes = validateCapabilityInstExistence(resourceInstanceId, capabilityId);
if (validateCapabilityInstExistenceRes.isRight()) {
errorWrapper.setInnerElement(validateCapabilityInstExistenceRes.right().value());
- log.debug("Failed to validate uniqueness of capability instance of capability {} ofRI {} statusIs {}.", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
+ log.debug("Failed to validate uniqueness of capability instance of capability {} of resource instance {}. status is {}", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
} else {
capabilityInstOfCapabilityAlreadyExists = validateCapabilityInstExistenceRes.left().value();
if (capabilityInstOfCapabilityAlreadyExists) {
errorWrapper.setInnerElement(TitanOperationStatus.ALREADY_EXIST);
- log.debug("failedCreateCI {} ofRI {} statusIs {}.", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
+ log.debug("Failed to create capability instance of capability {} of resource instance {}. status is {}", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
}
}
- log.debug("After validation of existence of capability instance of capability {} forRI {} statusIs {}.", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
+ log.debug("After validation of existence of capability instance of capability {} for resource instance {}. status is {}", capabilityId, resourceInstanceId, errorWrapper.getInnerElement());
}
private Either<List<PropertyValueData>, TitanOperationStatus> addPropertyValuesToCapabilityInstance(CapabilityInstData createdCapabilityInstance, List<ComponentInstanceProperty> propertyValues, Map<String, PropertyDefinition> defaultProperties) {
TitanOperationStatus error = null;
List<PropertyValueData> createdPropertyValues = new ArrayList<>();
for (ComponentInstanceProperty property : propertyValues) {
- log.debug("Before adding property value {} toCI {}.", property.getName(), createdCapabilityInstance.getUniqueId());
+ log.debug("Before adding property value {} to capability instance {}", property.getName(), createdCapabilityInstance.getUniqueId());
PropertyValueData propertyData = buildPropertyValueData(property.getName(), property.getType(), property.getValue(), createdCapabilityInstance.getUniqueId());
Either<PropertyValueData, TitanOperationStatus> addPropertyValueRes = addPropertyValueToCapabilityInstance(createdCapabilityInstance, propertyData, defaultProperties.get(property.getName()));
if (addPropertyValueRes.isRight()) {
error = addPropertyValueRes.right().value();
- log.debug("Failed to add property to capability instance {} ofRI. StatusIs {}.", createdCapabilityInstance.getUniqueId(), error);
+ log.debug("Failed to add property to capability instance {} of resource instance, status is {}", createdCapabilityInstance.getUniqueId(), error);
break;
} else {
createdPropertyValues.add(addPropertyValueRes.left().value());
}
- log.debug("After adding property value {} toCI {} statusIs {}", property.getName(), createdCapabilityInstance.getUniqueId(), error);
+ log.debug("After adding property value {} to capability instance {}. status is {}", property.getName(), createdCapabilityInstance.getUniqueId(), error);
}
if (error == null) {
return Either.left(createdPropertyValues);
@@ -391,15 +374,15 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
TitanOperationStatus error = null;
String id = (String) titanGenericDao.getProperty(createdCapabilityInstancevertex, GraphPropertiesDictionary.UNIQUE_ID.getProperty());
for (ComponentInstanceProperty property : propertyValues) {
- log.trace("Before adding property value {} {} {}", property.getName(), toCI, id);
+ log.trace("Before adding property value {} to capability instance {}", property.getName(), id);
PropertyValueData propertyData = buildPropertyValueData(property.getName(), property.getType(), property.getValue(), id);
TitanOperationStatus addPropertyValueRes = addPropertyValueToCapabilityInstance(createdCapabilityInstancevertex, propertyData, defaultProperties.get(property.getName()), id);
if (!addPropertyValueRes.equals(TitanOperationStatus.OK)) {
error = addPropertyValueRes;
- log.debug("Failed to add property to capability instance {} {} {} {}", id, ofRI, statusIs, error);
+ log.debug("Failed to add property to capability instance {} of resource instance. status is {}", id, error);
break;
}
- log.debug("After adding property value {} {} {} {} {}", property.getName(), toCI, id, statusIs, error);
+ log.debug("After adding property value {} to capability instance {}. status is {}", property.getName(), id, error);
}
if (error == null) {
return TitanOperationStatus.OK;
@@ -424,15 +407,15 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
Map<String, Object> props = null;
Either<GraphRelation, TitanOperationStatus> createRelationRes;
PropertyValueData createdValue = null;
- log.debug("Before creating property value node {} onGraph.", propertyValue.getUniqueId());
+ log.debug("Before creating property value node {} on graph", propertyValue.getUniqueId());
Either<PropertyValueData, TitanOperationStatus> createValueRes = titanGenericDao.createNode(propertyValue, PropertyValueData.class);
if (createValueRes.isRight()) {
error = createValueRes.right().value();
- log.debug("Failed to create property value for capability instance {} ofRI statusIs {}.", createdCapabilityInstance.getUniqueId(), error);
+ log.debug("Failed to create property value for capability instance {} of resource instance. status is {}", createdCapabilityInstance.getUniqueId(), error);
}
- log.debug("After creating property value node {} onGraph statusIs {}.", propertyValue.getUniqueId(), error);
+ log.debug("After creating property value node {} on graph. status is {}", propertyValue.getUniqueId(), error);
if (error == null) {
- log.debug("Before creating relation from property value node {} toCI {}.", propertyValue.getUniqueId(), createdCapabilityInstance.getUniqueId());
+ log.debug("Before creating relation from property value node {} to capability instance {}", propertyValue.getUniqueId(), createdCapabilityInstance.getUniqueId());
createdValue = createValueRes.left().value();
props = new HashMap<>();
props.put(GraphPropertiesDictionary.PROPERTY_NAME.name(), propertyDefinition.getName());
@@ -440,18 +423,18 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
createRelationRes = titanGenericDao.createRelation(createdCapabilityInstance, createdValue, GraphEdgeLabels.PROPERTY_VALUE, props);
if (createRelationRes.isRight()) {
error = createRelationRes.right().value();
- log.debug("Failed to create relation from capability instance {} toValue {} statusIs {}.", createdCapabilityInstance.getUniqueId(), createdValue.getUniqueId(), error);
+ log.debug("Failed to create relation from capability instance {} to property value {}. status is {}", createdCapabilityInstance.getUniqueId(), createdValue.getUniqueId(), error);
}
- log.debug("After creating relation from property value node {} toCI {} statusIs {}.", propertyValue.getUniqueId(), createdCapabilityInstance.getUniqueId(), error);
+ log.debug("After creating relation from property value node {} to capability instance {}. status is {}", propertyValue.getUniqueId(), createdCapabilityInstance.getUniqueId(), error);
}
if (error == null) {
- log.debug("Before creating relation from property value node {} toProperty {}.", propertyValue.getUniqueId(), propertyDefinition.getUniqueId());
+ log.debug("Before creating relation from property value node {} to property {}", propertyValue.getUniqueId(), propertyDefinition.getUniqueId());
createRelationRes = titanGenericDao.createRelation(propertyValue, new PropertyData(propertyDefinition, null), GraphEdgeLabels.PROPERTY_IMPL, props);
if (createRelationRes.isRight()) {
error = createRelationRes.right().value();
- log.debug("Failed to create relation from property value {} toProperty {} statusIs {}.", createdValue.getUniqueId(), propertyDefinition.getUniqueId(), error);
+ log.debug("Failed to create relation from property value {} to property {}. status is {}", createdValue.getUniqueId(), propertyDefinition.getUniqueId(), error);
}
- log.debug("After creating relation from property value node {} toProperty statusIs {}.", propertyValue.getUniqueId(), propertyDefinition.getUniqueId(), error);
+ log.debug("After creating relation from property value node {} to property {}. status is {}", propertyValue.getUniqueId(), propertyDefinition.getUniqueId(), error);
}
if (error == null) {
return Either.left(createdValue);
@@ -467,15 +450,13 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
Either<TitanVertex, TitanOperationStatus> createValueRes = titanGenericDao.createNode(propertyValue);
if (createValueRes.isRight()) {
error = createValueRes.right().value();
- if (log.isDebugEnabled()){
- log.debug("Failed to create property value for capability instance {} {} {} {}", id, ofRI, statusIs, error);
- }
+ log.debug("Failed to create property value for capability instance {} of resource instance. status is {}", id, error);
}
log.trace("After creating property value node {} on graph status is {}", propertyValue.getUniqueId(), error);
TitanVertex createdPropVertex = null;
String createdId = null;
if (error == null) {
- log.trace("Before creating relation from property value node {} {} {} ", propertyValue.getUniqueId(), toCI, id);
+ log.trace("Before creating relation from property value node {} to capability instance {} ", propertyValue.getUniqueId() , id);
props = new HashMap<>();
props.put(GraphPropertiesDictionary.PROPERTY_NAME.name(), propertyDefinition.getName());
props.put(GraphPropertiesDictionary.PROPERTY_ID.name(), propertyDefinition.getUniqueId());
@@ -484,22 +465,18 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
if (!createRelationRes.equals(TitanOperationStatus.OK)) {
error = createRelationRes;
createdId = (String) titanGenericDao.getProperty(createdPropVertex, GraphPropertiesDictionary.UNIQUE_ID.getProperty());
- if (log.isDebugEnabled()) {
- log.debug("Failed to create relation from capability instance {} {} {} {} {}", id, toValue, createdId, statusIs, error);
- }
- }
- if (log.isTraceEnabled()){
- log.trace("After creating relation from property value node {} {} {} {} {}", propertyValue.getUniqueId(), toCI, id, statusIs, error);
+ log.debug("Failed to create relation from capability instance {} to property value {}. status is {}", id, createdId, error);
}
+ log.trace("After creating relation from property value node {} to capability instance {}. status is {}", propertyValue.getUniqueId(), id, error);
}
if (error == null) {
- log.trace("Before creating relation from property value node {} {} {}", propertyValue.getUniqueId(), toProperty, propertyDefinition.getUniqueId());
+ log.trace("Before creating relation from property value node {} to property {}", propertyValue.getUniqueId(), propertyDefinition.getUniqueId());
createRelationRes = titanGenericDao.createEdge(createdPropVertex, new PropertyData(propertyDefinition, null), GraphEdgeLabels.PROPERTY_IMPL, props);
if (!createRelationRes.equals(TitanOperationStatus.OK)) {
error = createRelationRes;
- log.debug("Failed to create relation from property value {} {} {} {} {}", createdId, toProperty, propertyDefinition.getUniqueId(), statusIs, error);
+ log.debug("Failed to create relation from property value {} to property {}. status is {}", createdId, propertyDefinition.getUniqueId(), error);
}
- log.debug("After creating relation from property value node {} {} {} {} {}", propertyValue.getUniqueId(), toProperty, propertyDefinition.getUniqueId(), statusIs, error);
+ log.debug("After creating relation from property value node {} to property {}. status is {}", propertyValue.getUniqueId(), propertyDefinition.getUniqueId(), error);
}
if (error == null) {
return TitanOperationStatus.OK;
@@ -537,7 +514,7 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
Either<Map<String, DataTypeDefinition>, TitanOperationStatus> allDataTypes = applicationDataTypeCache.getAll();
if (allDataTypes.isRight()) {
TitanOperationStatus status = allDataTypes.right().value();
- log.debug("Failed to update property value statusIs {}.", status);
+ log.debug("Failed to update property value. status is {}", status);
result = Either.right(status);
}
if (result == null) {
@@ -582,7 +559,7 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
if (error.equals(TitanOperationStatus.NOT_FOUND)) {
result = Either.left(false);
} else {
- log.debug("Failed to get outgoing edge for resource instance {} statusIs {}.", resourceInstanceId, error);
+ log.debug("Failed to get outgoing edge for resource instance {}. status is {}.", resourceInstanceId, error);
result = Either.right(error);
}
}
@@ -604,7 +581,7 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
if (error.equals(TitanOperationStatus.NOT_FOUND)) {
result = Either.left(false);
} else {
- log.debug("Failed to get outgoing edge for resource instance {} {} {}", resourceInstanceId, statusIs, error);
+ log.debug("Failed to get outgoing edge for resource instance {} status is {}", resourceInstanceId, error);
result = Either.right(error);
}
}
@@ -615,7 +592,7 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
}
private Either<CapabilityInstData, TitanOperationStatus> createCapabilityInstanceOnGraph(String resourceInstanceId, CapabilityData overrideCapabilityData, CapabilityInstData capabilityInstance) {
- log.debug("Before creation of capability instance of capability {} forRI {}.", overrideCapabilityData.getUniqueId(), resourceInstanceId);
+ log.debug("Before creation of capability instance of capability {} for resource instance {}", overrideCapabilityData.getUniqueId(), resourceInstanceId);
Either<GraphRelation, TitanOperationStatus> createRelationRes;
CapabilityInstData createdCapabilityInstance = null;
@@ -624,9 +601,9 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
Either<CapabilityInstData, TitanOperationStatus> createCapabilityInstanceRes = titanGenericDao.createNode(capabilityInstance, CapabilityInstData.class);
if (createCapabilityInstanceRes.isRight()) {
error = createCapabilityInstanceRes.right().value();
- log.debug("failedCreateCI {} forRI {} statusIs {}.", overrideCapabilityData.getUniqueId(), resourceInstanceId, error);
+ log.debug("Failed to create capability instance of capability {} for resource instance {}. status is {}.", overrideCapabilityData.getUniqueId(), resourceInstanceId, error);
}
- log.debug("After creation of capability instance of capability {} forRI {} statusIs {}.", overrideCapabilityData.getUniqueId(), resourceInstanceId, error);
+ log.debug("After creation of capability instance of capability {} for resource instance {}. status is {}.", overrideCapabilityData.getUniqueId(), resourceInstanceId, error);
if (error == null) {
createdCapabilityInstance = createCapabilityInstanceRes.left().value();
capabilityInstanceId = createdCapabilityInstance.getUniqueId();
@@ -637,20 +614,20 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
createRelationRes = titanGenericDao.createRelation(resourceInstanceIdData, capabilityInstance, GraphEdgeLabels.CAPABILITY_INST, props);
if (createRelationRes.isRight()) {
error = createRelationRes.right().value();
- log.debug("Failed to assotiate resource instance {} toCI {} statusIs {}.", resourceInstanceId, capabilityInstanceId, error);
+ log.debug("Failed to assotiate resource instance {} to capability instance {}. status is {}", resourceInstanceId, capabilityInstanceId, error);
}
- log.debug("After associating resource instance {} to CI {} statusIs {}.", resourceInstanceId, capabilityInstanceId, error);
+ log.debug("After associating resource instance {} to capability instance {}. status is {}", resourceInstanceId, capabilityInstanceId, error);
}
if (error == null) {
- log.debug("Before associating capability instance {} toCapability {}.", capabilityInstanceId, overrideCapabilityData.getUniqueId());
+ log.debug("Before associating capability instance {} to capability {}.", capabilityInstanceId, overrideCapabilityData.getUniqueId());
Map<String, Object> props = new HashMap<>();
props.put(GraphPropertiesDictionary.CAPABILITY_ID.getProperty(), overrideCapabilityData.getUniqueId());
createRelationRes = titanGenericDao.createRelation(createdCapabilityInstance, overrideCapabilityData, GraphEdgeLabels.INSTANCE_OF, props);
if (createRelationRes.isRight()) {
error = createRelationRes.right().value();
- log.debug("Failed to associate capability instance {} toCapability statusIs {}.", capabilityInstanceId, overrideCapabilityData.getUniqueId(), error);
+ log.debug("Failed to associate capability instance {} to capability {}. status is {}", capabilityInstanceId, overrideCapabilityData.getUniqueId(), error);
}
- log.debug("After associating capability instance {} toCapability statusIs {}.", capabilityInstanceId, overrideCapabilityData.getUniqueId(), error);
+ log.debug("After associating capability instance {} to capability {}. status is {}.", capabilityInstanceId, overrideCapabilityData.getUniqueId(), error);
}
if (error == null) {
return createCapabilityInstanceRes;
@@ -660,7 +637,7 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
private Either<TitanVertex, TitanOperationStatus> createCapabilityInstanceOnGraph(TitanVertex riVertex, String resourceInstanceId, TitanVertex overrideCapabilityDataVertex, CapabilityInstData capabilityInstance) {
String overrideCapabilityDataId = (String) titanGenericDao.getProperty(overrideCapabilityDataVertex, GraphPropertiesDictionary.UNIQUE_ID.getProperty());
- log.trace("Before creation of capability instance of capability {} {} {}", overrideCapabilityDataVertex, forRI, resourceInstanceId);
+ log.trace("Before creation of capability instance of capability {} for resource instance {}", overrideCapabilityDataVertex, resourceInstanceId);
TitanOperationStatus createRelationRes;
TitanVertex createdCapabilityInstance = null;
@@ -669,9 +646,9 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
Either<TitanVertex, TitanOperationStatus> createCapabilityInstanceRes = titanGenericDao.createNode(capabilityInstance);
if (createCapabilityInstanceRes.isRight()) {
error = createCapabilityInstanceRes.right().value();
- log.debug("Failed to create capability instance of capability {} {} {} {} {}", overrideCapabilityDataId, forRI, resourceInstanceId, statusIs, error);
+ log.debug("Failed to create capability instance of capability {} for resource instance {} status is {}", overrideCapabilityDataId, resourceInstanceId, error);
}
- log.trace("After creation of capability instance of capability {} {} {} {} {}", overrideCapabilityDataId, forRI, resourceInstanceId, statusIs, error);
+ log.trace("After creation of capability instance of capability {} for resource instance {} status is {}", overrideCapabilityDataId, resourceInstanceId, error);
if (error == null) {
createdCapabilityInstance = createCapabilityInstanceRes.left().value();
capabilityInstanceId = (String) titanGenericDao.getProperty(createdCapabilityInstance, GraphPropertiesDictionary.UNIQUE_ID.getProperty());
@@ -682,22 +659,22 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
createRelationRes = titanGenericDao.createEdge(riVertex, capabilityInstance, GraphEdgeLabels.CAPABILITY_INST, props);
if (!createRelationRes.equals(TitanOperationStatus.OK)) {
error = createRelationRes;
- log.debug("Failed to assotiate resource instance {} {} {} {} {}", resourceInstanceId, toCI, capabilityInstanceId, statusIs, error);
+ log.debug("Failed to assotiate resource instance {} to capability instance {} status is {}", resourceInstanceId, capabilityInstanceId, error);
}
if (log.isTraceEnabled()) {
- log.trace("After associating resource instance {} {} {} {} {}", resourceInstanceId, toCI, capabilityInstanceId, statusIs, error);
+ log.trace("After associating resource instance {} to capability instance {}. status is {}", resourceInstanceId, capabilityInstanceId, error);
}
}
if (error == null) {
- log.trace("Before associating capability instance {} {} {}", capabilityInstanceId, toCapability, overrideCapabilityDataId);
+ log.trace("Before associating capability instance {} to capability {}", capabilityInstanceId, overrideCapabilityDataId);
Map<String, Object> props = new HashMap<>();
props.put(GraphPropertiesDictionary.CAPABILITY_ID.getProperty(), overrideCapabilityDataId);
createRelationRes = titanGenericDao.createEdge(createdCapabilityInstance, overrideCapabilityDataVertex, GraphEdgeLabels.INSTANCE_OF, props);
if (!createRelationRes.equals(TitanOperationStatus.OK)) {
error = createRelationRes;
- log.debug("Failed to associate capability instance {} {} {} {} {}", capabilityInstanceId, toCapability, overrideCapabilityDataId, statusIs, error);
+ log.debug("Failed to associate capability instance {} to capability {} status is {}", capabilityInstanceId, overrideCapabilityDataId, error);
}
- log.debug("After associating capability instance {} {} {} {} {}", capabilityInstanceId, toCapability, overrideCapabilityDataId, statusIs, error);
+ log.debug("After associating capability instance {} to capability {}. status is {}", capabilityInstanceId, overrideCapabilityDataId, error);
}
if (error == null) {
return createCapabilityInstanceRes;
@@ -726,23 +703,23 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
*/
@Override
public Either<CapabilityInstData, TitanOperationStatus> deleteCapabilityInstanceFromResourceInstance(String resourceInstanceId, String capabilityInstanceId) {
- log.debug("Before deleting of capability instance {} fromRI {}.", capabilityInstanceId, resourceInstanceId);
+ log.debug("Before deleting of capability instance {} from resource instance {}.", capabilityInstanceId, resourceInstanceId);
Either<CapabilityInstData, TitanOperationStatus> deleteCapabilityInstRes = null;
TitanOperationStatus error = null;
Either<Boolean, TitanOperationStatus> deleteProperyValuesRes = deleteAllPropertyValuesOfCapabilityInstance(resourceInstanceId, capabilityInstanceId);
if (deleteProperyValuesRes.isRight()) {
error = deleteProperyValuesRes.right().value();
- log.debug("failedDeletePropertyValues {} for RI {} statusIs {}.", capabilityInstanceId, resourceInstanceId, error);
+ log.debug("Failed to delete property values of capability instance {} for resource instance {}. status is {}", capabilityInstanceId, resourceInstanceId, error);
}
if (error == null) {
deleteCapabilityInstRes = titanGenericDao.deleteNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.CapabilityInst), capabilityInstanceId, CapabilityInstData.class);
if (deleteCapabilityInstRes.isRight()) {
error = deleteCapabilityInstRes.right().value();
- log.debug("Failed to delete capability instance {} forRI {} statusIs {}", capabilityInstanceId, resourceInstanceId, error);
+ log.debug("Failed to delete capability instance {} for resource instance {}. status is {}", capabilityInstanceId, resourceInstanceId, error);
}
}
- log.debug("After deleting of capability instance {} fromRI {} statusIs {}.", capabilityInstanceId, resourceInstanceId, error);
+ log.debug("After deleting of capability instance {} from resource instance {}. status is {}", capabilityInstanceId, resourceInstanceId, error);
if (error == null) {
return Either.left(deleteCapabilityInstRes.left().value());
}
@@ -750,14 +727,14 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
}
private Either<Boolean, TitanOperationStatus> deleteAllPropertyValuesOfCapabilityInstance(String resourceInstanceId, String capabilityInstanceId) {
- log.debug("Before deleting all property values of capability instance {} fromRI {}.", capabilityInstanceId, resourceInstanceId);
+ log.debug("Before deleting all property values of capability instance {} from resource instance {}", capabilityInstanceId, resourceInstanceId);
TitanOperationStatus error = null;
List<ImmutablePair<PropertyValueData, GraphEdge>> deletePropertiesPairs;
Either<List<ImmutablePair<PropertyValueData, GraphEdge>>, TitanOperationStatus> getPropertyValuesRes = titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.CapabilityInst), capabilityInstanceId,
GraphEdgeLabels.PROPERTY_VALUE, NodeTypeEnum.PropertyValue, PropertyValueData.class);
if (getPropertyValuesRes.isRight()) {
error = getPropertyValuesRes.right().value();
- log.debug("Failed to retrieve property values of capability instance {} forRI {} status {}.", capabilityInstanceId, resourceInstanceId, error);
+ log.debug("Failed to retrieve property values of capability instance {} for resource instance {}. status is {}", capabilityInstanceId, resourceInstanceId, error);
}
if (error == null) {
deletePropertiesPairs = getPropertyValuesRes.left().value();
@@ -765,12 +742,12 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
Either<PropertyValueData, TitanOperationStatus> deletePropertyRes = titanGenericDao.deleteNode(propertyPair.getLeft(), PropertyValueData.class);
if (deletePropertyRes.isRight()) {
error = deletePropertyRes.right().value();
- log.debug("failedDeletePropertyValues {} forRI {} statusIs {}.", capabilityInstanceId, resourceInstanceId, error);
+ log.debug("Failed to delete property values of capability instance {} for resource instance {}. status is {}", capabilityInstanceId, resourceInstanceId, error);
break;
}
}
}
- log.debug("After deleting all property values of capability instance {} fromRI {} statusIs {}.", capabilityInstanceId, resourceInstanceId, error);
+ log.debug("After deleting all property values of capability instance from resource instance {}. status is {}", capabilityInstanceId, resourceInstanceId, error);
if (error == null) {
return Either.left(true);
}
@@ -786,15 +763,15 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
*/
@Override
public Either<List<ImmutablePair<CapabilityInstData, GraphEdge>>, TitanOperationStatus> getAllCapabilityInstancesOfResourceInstance(String resourceInstanceId) {
- log.debug("Before deleting all capability instances of resource instance {}.", resourceInstanceId);
+ log.debug("Before deleting all capability instances of resource instance {}", resourceInstanceId);
TitanOperationStatus error = null;
Either<List<ImmutablePair<CapabilityInstData, GraphEdge>>, TitanOperationStatus> getCapabilityInstancesRes = titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ResourceInstance), resourceInstanceId,
GraphEdgeLabels.CAPABILITY_INST, NodeTypeEnum.CapabilityInst, CapabilityInstData.class);
if (getCapabilityInstancesRes.isRight()) {
error = getCapabilityInstancesRes.right().value();
- log.debug("Failed to retrieve capability Instances of resource instance {} statusIs {}.", resourceInstanceId, error);
+ log.debug("Failed to retrieve capability Instances of resource instance {}. status is {}", resourceInstanceId, error);
}
- log.debug("After deleting all capability instances of resource instance {} statusIs {}", resourceInstanceId, error);
+ log.debug("After deleting all capability instances of resource instance {}. status is {}", resourceInstanceId, error);
if (error == null) {
return getCapabilityInstancesRes;
}
@@ -817,7 +794,7 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
GraphEdgeLabels.CAPABILITY_INST, NodeTypeEnum.CapabilityInst, CapabilityInstData.class, props);
if (getCapabilityInstanceRes.isRight()) {
error = getCapabilityInstanceRes.right().value();
- log.debug("Failed to retrieve capability Instance of capability {} ofRI {} statusIs {}.", capabilityId, resourceInstanceId, error);
+ log.debug("Failed to retrieve capability Instance of capability {} of resource instance {}. status is {}", capabilityId, resourceInstanceId, error);
}
if (error == null) {
return Either.left(getCapabilityInstanceRes.left().value().getLeft());
@@ -835,7 +812,7 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
*/
@Override
public Either<List<PropertyValueData>, TitanOperationStatus> updateCapabilityPropertyValues(String resourceInstanceId, String capabilityId, List<ComponentInstanceProperty> propertyValues) {
- log.debug("Before updating property values of capability {} ofRI {}.", capabilityId, resourceInstanceId);
+ log.debug("Before updating property values of capability {} of resource instance {}.", capabilityId, resourceInstanceId);
TitanOperationStatus error = null;
Map<String, Object> props = new HashMap<>();
CapabilityInstData capabilityInstance = null;
@@ -849,47 +826,47 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
Either<List<PropertyValueData>, TitanOperationStatus> addPropertyValuesRes = null;
Either<CapabilityDefinition, TitanOperationStatus> getCapabilityDefinitionRes = null;
- log.debug("Before getting all capability instances of RI {}.", resourceInstanceId);
+ log.debug("Before getting all capability instances of resource instance {}.", resourceInstanceId);
props.put(GraphPropertiesDictionary.CAPABILITY_ID.getProperty(), capabilityId);
Either<ImmutablePair<CapabilityInstData, GraphEdge>, TitanOperationStatus> getCapabilityInstancesRes = titanGenericDao.getChildByEdgeCriteria(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ResourceInstance), resourceInstanceId,
GraphEdgeLabels.CAPABILITY_INST, NodeTypeEnum.CapabilityInst, CapabilityInstData.class, props);
if (getCapabilityInstancesRes.isRight()) {
error = getCapabilityInstancesRes.right().value();
- log.debug("Failed to retrieve capability Instances of capability {} ofRI {} statusIs {}.", capabilityId, resourceInstanceId, error);
+ log.debug("Failed to retrieve capability Instances of capability {} of resource instance {}. status is {}", capabilityId, resourceInstanceId, error);
}
- log.debug("After getting all capability instances ofRI {} statusIs {}.", resourceInstanceId, error);
+ log.debug("After getting all capability instances of resource instance {}. status is {}.", resourceInstanceId, error);
if (error == null) {
- log.debug("Before deleting all capability instances ofRI {}.", resourceInstanceId);
+ log.debug("Before deleting all capability instances of resource instance {}.", resourceInstanceId);
capabilityInstance = getCapabilityInstancesRes.left().value().getLeft();
capabilityInstanceId = capabilityInstance.getUniqueId();
deleteProperyValuesRes = deleteAllPropertyValuesOfCapabilityInstance(resourceInstanceId, capabilityInstanceId);
if (deleteProperyValuesRes.isRight()) {
error = deleteProperyValuesRes.right().value();
- log.debug("failedDeletePropertyValues {} forRI {} statusIs {}", capabilityInstanceId, resourceInstanceId, statusIs, error);
+ log.debug("Failed to delete property values of capability instance {} for resource instance {}. status is {}", capabilityInstanceId, resourceInstanceId, error);
}
- log.debug("After deleting all capability instances ofRI {} statusIs {}.", resourceInstanceId, error);
+ log.debug("After deleting all capability instances of resource instance {}. status is {}", resourceInstanceId, error);
}
if (error == null) {
- log.debug("Before getting capability {} ofRI {}.", capabilityId, resourceInstanceId);
+ log.debug("Before getting capability {} of resource instance {}", capabilityId, resourceInstanceId);
getCapabilityDataRes = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ResourceInstance), resourceInstanceId, GraphEdgeLabels.CALCULATED_CAPABILITY, NodeTypeEnum.Capability, CapabilityData.class);
if (getCapabilityDataRes.isRight()) {
error = getCapabilityDataRes.right().value();
- log.debug("Failed to get capability {} ofRI {} statusIs {}.", capabilityId, resourceInstanceId, error);
+ log.debug("Failed to get capability {} of resource instance {}. status is {}", capabilityId, resourceInstanceId, error);
}
- log.debug("After getting capability {} ofRI {} statusIs {}.", capabilityId, resourceInstanceId, error);
+ log.debug("After getting capability {} of resource instance {}. status is {}.", capabilityId, resourceInstanceId, error);
}
if (error == null) {
- log.debug("Before getting capability definition for capability {} ofRI {}.", capabilityId, resourceInstanceId);
+ log.debug("Before getting capability definition for capability {} of resource instance {}.", capabilityId, resourceInstanceId);
overrideCapabilityData = getCapabilityDataRes.left().value().getLeft();
getCapabilityDefinitionRes = capabilityOperation.getCapabilityByCapabilityData(overrideCapabilityData);
if (getCapabilityDefinitionRes.isRight()) {
error = getCapabilityDefinitionRes.right().value();
- log.debug("Failed to retrieve capability {} ofRI {} statusIs {}", capabilityId, resourceInstanceId, error);
+ log.debug("Failed to retrieve capability {} of resource instance {}. status is {}", capabilityId, resourceInstanceId, error);
}
- log.debug("After getting capability definition for capability {} ofRI {} statusIs {}.", capabilityId, resourceInstanceId, error);
+ log.debug("After getting capability definition for capability {} of resource instance {}. status is {}.", capabilityId, resourceInstanceId, error);
}
if (error == null) {
- log.debug("Before validating capability properties of capability instance {} ofRI {}.", capabilityInstanceId, resourceInstanceId);
+ log.debug("Before validating capability properties of capability instance {} of resource instance {}.", capabilityInstanceId, resourceInstanceId);
overrideCapabilityDefinition = getCapabilityDefinitionRes.left().value();
if (overrideCapabilityDefinition.getProperties() != null) {
defaultProperties = overrideCapabilityDefinition.getProperties().stream().collect(Collectors.toMap(PropertyDefinition::getName, Function.identity()));
@@ -897,20 +874,20 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
Either<Boolean, TitanOperationStatus> result = validateCapabilityInstanceProperties(defaultProperties, propertyValues);
if (result.isRight()) {
error = result.right().value();
- log.debug("failedAddProperties {} ofRI {} statusIs {}.", capabilityInstance.getUniqueId(), resourceInstanceId, error);
+ log.debug("Failed to add properties to capability instance {} of resource instance {}. status is {}", capabilityInstance.getUniqueId(), resourceInstanceId, error);
}
- log.debug("After validating capability properties of capability instance {} of RI {} statusIs {}.", capabilityInstanceId, resourceInstanceId, error);
+ log.debug("After validating capability properties of capability instance {} of resource instance {}. status is {}.", capabilityInstanceId, resourceInstanceId, error);
}
if (error == null) {
- log.debug("Before adding property values toCI {} ofRI {}.", capabilityInstanceId, resourceInstanceId);
+ log.debug("Before adding property values to capability instance {} of resource instance {}.", capabilityInstanceId, resourceInstanceId);
addPropertyValuesRes = addPropertyValuesToCapabilityInstance(capabilityInstance, propertyValues, defaultProperties);
if (addPropertyValuesRes.isRight()) {
error = addPropertyValuesRes.right().value();
- log.debug("failedAddProperties {} ofRI {} statusIs {}.", capabilityInstance.getUniqueId(), resourceInstanceId, error);
+ log.debug("Failed to add properties to capability instance {} of resource instance {}. status is {}", capabilityInstance.getUniqueId(), resourceInstanceId, error);
}
- log.debug("Before adding property values toCI {} ofRI {}.", capabilityInstanceId, resourceInstanceId);
+ log.debug("Before adding property values to capability instance {} of resource instance {}.", capabilityInstanceId, resourceInstanceId);
}
- log.debug("After updating property values of capability {} ofRI {} statusIs {}.", capabilityId, resourceInstanceId, error);
+ log.debug("After updating property values of capability {} of resource instance {}. status is {}.", capabilityId, resourceInstanceId, error);
if (error == null) {
return addPropertyValuesRes;
}
@@ -933,33 +910,33 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
String componentInstanceId = createdComponentInstance.getUniqueId();
String capabilityInstanceId = capabilityInstPair.getLeft().getUniqueId();
- log.debug("Before cloning capability instance with property values of capability instance {} ofRI {}.", capabilityInstanceId, componentInstanceId);
+ log.debug("Before cloning capability instance with property values of capability instance {} of resource instance {}.", capabilityInstanceId, componentInstanceId);
List<ImmutablePair<PropertyValueData, GraphEdge>> propertyValuePairs;
List<PropertyValueData> newPropertyValues = new ArrayList<>();
CapabilityInstData cloneCapabilityInstance = null;
Either<CapabilityInstData, TitanOperationStatus> cloneCapabilityInstanceNodeRes = null;
- log.debug("Before getting all property values ofCI {} ofRI {}.", capabilityInstanceId, componentInstanceId);
+ log.debug("Before getting all property values of component instance {} of resource instance {}.", capabilityInstanceId, componentInstanceId);
Either<List<ImmutablePair<PropertyValueData, GraphEdge>>, TitanOperationStatus> getPropertyValuesRes = titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.CapabilityInst), capabilityInstPair.getLeft().getUniqueId(),
GraphEdgeLabels.PROPERTY_VALUE, NodeTypeEnum.PropertyValue, PropertyValueData.class);
if (getPropertyValuesRes.isRight()) {
error = getPropertyValuesRes.right().value();
- log.debug("Failed to retrieve property values of capability instance {} ofCI {} statusIs {}.", capabilityInstPair.getLeft().getUniqueId(), componentInstanceId ,error);
+ log.debug("Failed to retrieve property values of capability instance {} of component instance {}. status is {}", capabilityInstPair.getLeft().getUniqueId(), componentInstanceId, error);
}
- log.debug("After getting all property values ofCI {} ofRI {} statusIs {}.", capabilityInstanceId, componentInstanceId, error);
+ log.debug("After getting all property values of component instance {} of resource instance {}. status is {}.", capabilityInstanceId, componentInstanceId, error);
if (error == null) {
CapabilityInstData cloneCapabilityInst = buildCapabilityInstanceData(componentInstanceId, capability);
- log.debug("Before creating capability instance node {} onGraph.", cloneCapabilityInst.getUniqueId());
+ log.debug("Before creating capability instance node {} on graph.", cloneCapabilityInst.getUniqueId());
cloneCapabilityInstanceNodeRes = titanGenericDao.createNode(cloneCapabilityInst, CapabilityInstData.class);
if (cloneCapabilityInstanceNodeRes.isRight()) {
error = cloneCapabilityInstanceNodeRes.right().value();
- log.debug("Failed to create capability instance of capability {} ofCI {} statusIs {}.", capability.getUniqueId(), componentInstanceId, error);
+ log.debug("Failed to create capability instance of capability {} of component instance {}. status is {}", capability.getUniqueId(), componentInstanceId, error);
}
- log.debug("After creating capability instance node {} onGraph. statusIs {}", cloneCapabilityInst.getUniqueId(), error);
+ log.debug("After creating capability instance node {} on graph. status is {}.", cloneCapabilityInst.getUniqueId(), error);
}
if (error == null) {
- log.debug("Before creating relation from capability instance {} toCapability {} onGraph.", cloneCapabilityInstanceNodeRes.left().value().getUniqueId(), capability.getUniqueId());
+ log.debug("Before creating relation from capability instance {} to capability {} on graph.", cloneCapabilityInstanceNodeRes.left().value().getUniqueId(), capability.getUniqueId());
cloneCapabilityInstance = cloneCapabilityInstanceNodeRes.left().value();
CapabilityData capabilityData = buildCapabilityData(capability);
Map<String, Object> props = new HashMap<>();
@@ -967,29 +944,27 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
Either<GraphRelation, TitanOperationStatus> createRelationRes = titanGenericDao.createRelation(cloneCapabilityInstance, capabilityData, GraphEdgeLabels.INSTANCE_OF, props);
if (createRelationRes.isRight()) {
error = createRelationRes.right().value();
- log.debug("Failed to associate capability instance {} toCapability {} statusIs {}.", cloneCapabilityInstance.getUniqueId(), capability.getUniqueId(), error);
+ log.debug("Failed to associate capability instance {} to capability {}. status is {}", cloneCapabilityInstance.getUniqueId(), capability.getUniqueId(), error);
}
- log.debug("After creating relation from capability instance {} toCapability {} onGraph. statusIs {}.", cloneCapabilityInstanceNodeRes.left().value().getUniqueId(), capability.getUniqueId(), error);
+ log.debug("After creating relation from capability instance {} to capability {} on graph. status is.", cloneCapabilityInstanceNodeRes.left().value().getUniqueId(), capability.getUniqueId(), error);
}
if (error == null) {
- log.debug("Before cloning property values ofCI {}.", capabilityInstanceId);
+ log.debug("Before cloning property values of component instance {}.", capabilityInstanceId);
propertyValuePairs = getPropertyValuesRes.left().value();
for (ImmutablePair<PropertyValueData, GraphEdge> propertyValuePair : propertyValuePairs) {
Either<PropertyValueData, TitanOperationStatus> clonePropertyValueRes = cloneAssociatePropertyValue(cloneCapabilityInstance, propertyValuePair);
if (clonePropertyValueRes.isRight()) {
error = clonePropertyValueRes.right().value();
- if (log.isDebugEnabled()) {
- log.debug("Failed to clone property value {} ofCapability {} ofCI {}. statusIs {}.", propertyValuePair.getLeft().getUniqueId(), capability.getUniqueId(), componentInstanceId, error);
- }
+ log.debug("Failed to clone property value {} of capability {} of component instance {}. status is {}", propertyValuePair.getLeft().getUniqueId(), capability.getUniqueId(), componentInstanceId, error);
break;
} else {
newPropertyValues.add(clonePropertyValueRes.left().value());
}
}
- log.debug("After cloning property values of CI {} statusIs {}.", capabilityInstanceId, error);
+ log.debug("After cloning property values of component instance {}. status is {}.", capabilityInstanceId, error);
}
- log.debug("After cloning capability instance with property values of capability instance {} ofRI {} statusIs {}.", capabilityInstanceId, componentInstanceId, error);
+ log.debug("After cloning capability instance with property values of capability instance {} of resource instance {}. status is {}.", capabilityInstanceId, componentInstanceId, error);
if (error == null) {
return Either.left(new ImmutablePair<CapabilityInstData, List<PropertyValueData>>(cloneCapabilityInstance, newPropertyValues));
}
@@ -1003,44 +978,40 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
String capabilityInstanceId = capabilityInstPair.getLeft().getUniqueId();
if (log.isTraceEnabled()) {
- log.trace("Before cloning capability instance with property values of capability instance {} {} {}", capabilityInstanceId, ofRI, componentInstanceId);
+ log.trace("Before cloning capability instance with property values of capability instance {} of resource instance {}", capabilityInstanceId, componentInstanceId);
}
List<ImmutablePair<TitanVertex, Edge>> propertyValuePairs;
Either<TitanVertex, TitanOperationStatus> cloneCapabilityInstanceNodeRes = null;
if (log.isTraceEnabled()) {
- log.trace("Before getting all property values {} {} {} {}", ofCI, capabilityInstanceId, ofRI, componentInstanceId);
+ log.trace("Before getting all property values of component instance {} of resource instance {}", capabilityInstanceId, componentInstanceId);
}
Either<List<ImmutablePair<TitanVertex, Edge>>, TitanOperationStatus> getPropertyValuesRes = titanGenericDao.getChildrenVertecies(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.CapabilityInst), capabilityInstPair.getLeft().getUniqueId(),
GraphEdgeLabels.PROPERTY_VALUE);
if (getPropertyValuesRes.isRight()) {
error = getPropertyValuesRes.right().value();
- if (log.isDebugEnabled()) {
- log.debug("Failed to retrieve property values of capability instance {} {} {} {} {}", capabilityInstPair.getLeft().getUniqueId(), ofCI, componentInstanceId, statusIs, error);
- }
+ log.debug("Failed to retrieve property values of capability instance {} of component instance {}. status is {}", capabilityInstPair.getLeft().getUniqueId(), componentInstanceId, error);
}
if (log.isTraceEnabled()) {
- log.trace("After getting all property values {} {} {} {} {} {}", ofCI, capabilityInstanceId, ofRI, componentInstanceId, statusIs, error);
+ log.trace("After getting all property values of component instance {} of resource instance {}. status is {}", capabilityInstanceId, componentInstanceId, error);
}
if (error == null) {
CapabilityInstData cloneCapabilityInst = buildCapabilityInstanceData(componentInstanceId, capability);
- log.trace("Before creating capability instance node {} {} ", cloneCapabilityInst.getUniqueId(), onGraph);
+ log.trace("Before creating capability instance node {} on graph", cloneCapabilityInst.getUniqueId());
cloneCapabilityInstanceNodeRes = titanGenericDao.createNode(cloneCapabilityInst);
if (cloneCapabilityInstanceNodeRes.isRight()) {
error = cloneCapabilityInstanceNodeRes.right().value();
- if (log.isDebugEnabled()) {
- log.debug("Failed to create capability instance of capability {} {} {} {} {}", capability.getUniqueId(), ofCI, componentInstanceId, statusIs, error);
- }
+ log.debug("Failed to create capability instance of capability {} of component instance {}. status is {}", capability.getUniqueId(), componentInstanceId, error);
}
if (log.isTraceEnabled()) {
- log.trace("After creating capability instance node {} {} {} {}", cloneCapabilityInst.getUniqueId(), onGraph, statusIs, error);
+ log.trace("After creating capability instance node {} on graph. status is {}", cloneCapabilityInst.getUniqueId(), error);
}
}
CapabilityData capabilityData;
TitanVertex cloneCapabilityInstance = null;
if (error == null) {
if (log.isTraceEnabled()) {
- log.trace("Before creating relation from capability instance {} {} {} {}", capability.getUniqueId(), toCapability, capability.getUniqueId(), onGraph);
+ log.trace("Before creating relation from capability instance {} to capability {} on graph", capability.getUniqueId(), capability.getUniqueId());
}
capabilityData = buildCapabilityData(capability);
Map<String, Object> props = new HashMap<>();
@@ -1049,33 +1020,25 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
TitanOperationStatus createRelationRes = titanGenericDao.createEdge(cloneCapabilityInstance, capabilityData, GraphEdgeLabels.INSTANCE_OF, props);
if (!createRelationRes.equals(TitanOperationStatus.OK)) {
error = createRelationRes;
- if (log.isDebugEnabled()) {
- log.debug("Failed to associate capability instance {} {} {} {} {}", capabilityData.getUniqueId(), toCapability, capability.getUniqueId(), statusIs, createRelationRes);
- }
- }
- if (log.isTraceEnabled()) {
- log.trace("After creating relation from capability instance {} {} {} {} {} {}", capabilityData.getUniqueId(), toCapability, capability.getUniqueId(), onGraph, statusIs, error);
+ log.debug("Failed to associate capability instance {} to capability {}. status is {}", capabilityData.getUniqueId(), capability.getUniqueId(), createRelationRes);
}
+ log.trace("After creating relation from capability instance {} to capability {} on graph. status is {}", capabilityData.getUniqueId(), capability.getUniqueId(), error);
}
if (error == null) {
- log.trace("Before cloning property values {} {} ", ofCI, capabilityInstanceId);
+ log.trace("Before cloning property values of component instance {} ", capabilityInstanceId);
propertyValuePairs = getPropertyValuesRes.left().value();
for (ImmutablePair<TitanVertex, Edge> propertyValuePair : propertyValuePairs) {
TitanOperationStatus clonePropertyValueRes = cloneAssociatePropertyValue(cloneCapabilityInstance, propertyValuePair);
if (!clonePropertyValueRes.equals(TitanOperationStatus.OK)) {
error = clonePropertyValueRes;
- if (log.isDebugEnabled()) {
- log.debug("Failed to clone property value of capability {} {} {} {} {}", capability.getUniqueId(), ofCI, componentInstanceId, statusIs, error);
- }
+ log.debug("Failed to clone property value of capability {} of component instance {}. status is {}", capability.getUniqueId(), componentInstanceId, error);
break;
}
}
- if (log.isDebugEnabled()) {
- log.debug("After cloning property values {} {} {} {}", ofCI, capabilityInstanceId, statusIs, error);
- }
+ log.debug("After cloning property values of component instance {}. status is {}", capabilityInstanceId, error);
}
- log.debug("After cloning capability instance with property values of capability instance {} ofRI {} statusIs {}.", capabilityInstanceId, componentInstanceId, error);
+ log.debug("After cloning capability instance with property values of capability instance {} of resource instance {}. status is {}.", capabilityInstanceId, componentInstanceId, error);
if (error == null) {
return Either.left(cloneCapabilityInstance);
}
@@ -1100,7 +1063,7 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
TitanOperationStatus error = null;
String propertyValueID = propertyValuePair.getLeft().getUniqueId();
String capabilityInstanceId = cloneCapabilityInstance.getUniqueId();
- log.debug("Before cloning property values {} ofCI {}.", propertyValueID, capabilityInstanceId);
+ log.debug("Before cloning property values {} of component instance {}.", propertyValueID, capabilityInstanceId);
Map<String, Object> props = propertyValuePair.getRight().getProperties();
PropertyData propertyData = new PropertyData();
@@ -1111,33 +1074,33 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
PropertyValueData createdValue = null;
Either<GraphRelation, TitanOperationStatus> createRelationRes;
- log.debug("Before creating property values node {} onGraph.", propertyValue.getUniqueId());
+ log.debug("Before creating property values node {} on graph.", propertyValue.getUniqueId());
Either<PropertyValueData, TitanOperationStatus> createValueRes = titanGenericDao.createNode(propertyValue, PropertyValueData.class);
if (createValueRes.isRight()) {
error = createValueRes.right().value();
- log.debug("Failed to create property value for capability instance {} ofRI. statusIs {}.", cloneCapabilityInstance.getUniqueId(), error);
+ log.debug("Failed to create property value for capability instance {} of resource instance. status is {}.", cloneCapabilityInstance.getUniqueId(), error);
}
- log.debug("After creating property values node {} onGraph. statusIs {}.", propertyValue.getUniqueId(), error);
+ log.debug("After creating property values node {} on graph. status is {}.", propertyValue.getUniqueId(), error);
if (error == null) {
createdValue = createValueRes.left().value();
- log.debug("Before creating relation from capability instance {} toValue {}.", capabilityInstanceId, createdValue.getUniqueId());
+ log.debug("Before creating relation from capability instance {} to property value {}.", capabilityInstanceId, createdValue.getUniqueId());
createRelationRes = titanGenericDao.createRelation(cloneCapabilityInstance, createdValue, GraphEdgeLabels.PROPERTY_VALUE, props);
if (createRelationRes.isRight()) {
error = createRelationRes.right().value();
- log.debug("Failed to create relation from capability instance {} toValue {} statusIs {}.", cloneCapabilityInstance.getUniqueId(), createdValue.getUniqueId(), error);
+ log.debug("Failed to create relation from capability instance {} to property value {}. status is {}.", cloneCapabilityInstance.getUniqueId(), createdValue.getUniqueId(), error);
}
- log.debug("After creating relation from capability instance {} toValue {} statusIs {}", capabilityInstanceId, createdValue.getUniqueId(), error);
+ log.debug("After creating relation from capability instance {} to property value {}. status is {}.", capabilityInstanceId, createdValue.getUniqueId(), error);
}
if (error == null) {
- log.debug("Before creating relation from property value {} toProperty {}.", createdValue, propertyData.getUniqueId());
+ log.debug("Before creating relation from property value {} to property {}.", createdValue, propertyData.getUniqueId());
createRelationRes = titanGenericDao.createRelation(createdValue, propertyData, GraphEdgeLabels.PROPERTY_IMPL, props);
if (createRelationRes.isRight()) {
error = createRelationRes.right().value();
- log.debug("Failed to create relation from property value {} toProperty {} statusIs {}.", createdValue.getUniqueId(), propertyId, error);
+ log.debug("Failed to create relation from property value {} to property {}. status is {}.", createdValue.getUniqueId(), propertyId, error);
}
- log.debug("Before creating relation from property value {} toProperty {} statusIs {}.", createdValue, propertyData.getUniqueId(), error);
+ log.debug("Before creating relation from property value {} to property {}. status is {}.", createdValue, propertyData.getUniqueId(), error);
}
- log.debug("After cloning property values {} ofCI {} statusIs {}.", propertyValueID, capabilityInstanceId, error);
+ log.debug("After cloning property values {} of component instance {}. status is {}.", propertyValueID, capabilityInstanceId, error);
if (error == null) {
return Either.left(createdValue);
}
@@ -1150,7 +1113,7 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
String propertyValueID = (String) titanGenericDao.getProperty(propertyVertex, GraphPropertiesDictionary.UNIQUE_ID.getProperty());
String capabilityInstanceId = (String) titanGenericDao.getProperty(capabilityInstanceVertex, GraphPropertiesDictionary.UNIQUE_ID.getProperty());
if (log.isTraceEnabled()) {
- log.trace("Before cloning property values {} {} {}", propertyValueID, ofCI, capabilityInstanceId);
+ log.trace("Before cloning property values {} of component instance {}", propertyValueID, capabilityInstanceId);
}
Map<String, Object> props = titanGenericDao.getProperties(propertyValuePair.getRight());
@@ -1165,48 +1128,40 @@ public class CapabilityInstanceOperation extends AbstractOperation implements IC
TitanVertex createdValue = null;
TitanOperationStatus createRelationRes;
- log.trace("Before creating property values node {} {} ", propertyValue.getUniqueId(), onGraph);
+ log.trace("Before creating property values node {} on graph.", propertyValue.getUniqueId());
Either<TitanVertex, TitanOperationStatus> createValueRes = titanGenericDao.createNode(propertyValue);
String capabiltyInstId = (String) titanGenericDao.getProperty(capabilityInstanceVertex, GraphPropertiesDictionary.UNIQUE_ID.getProperty());
if (createValueRes.isRight()) {
error = createValueRes.right().value();
- if (log.isDebugEnabled()) {
- log.debug("Failed to create property value for capability instance {} {} {} {}", capabiltyInstId, ofRI, statusIs, error);
- }
+ log.debug("Failed to create property value for capability instance {} of resource instance. status is {}", capabiltyInstId, error);
}
if (log.isTraceEnabled()) {
- log.trace("After creating property values node {} {} {} {} ", propertyValue.getUniqueId(), onGraph, statusIs, error);
+ log.trace("After creating property values node {} on graph. status is {} ", propertyValue.getUniqueId(), error);
}
if (error == null) {
createdValue = createValueRes.left().value();
- log.trace("Before creating relation from capability instance {} {} {}", capabilityInstanceId, toValue, propertyValue.getUniqueId());
+ log.trace("Before creating relation from capability instance {} to property value {}", capabilityInstanceId, propertyValue.getUniqueId());
createRelationRes = titanGenericDao.createEdge(capabilityInstanceVertex, createdValue, GraphEdgeLabels.PROPERTY_VALUE, props);
if (!createRelationRes.equals(TitanOperationStatus.OK)) {
error = createRelationRes;
- if (log.isDebugEnabled()) {
- log.debug("Failed to create relation from capability instance {} {} {} {} {}", capabiltyInstId, toValue, propertyValue.getUniqueId(), statusIs, error);
- }
+ log.debug("Failed to create relation from capability instance {} to property value {}. status is {}", capabiltyInstId, propertyValue.getUniqueId(), error);
}
if (log.isTraceEnabled()) {
- log.trace("After creating relation from capability instance {} {} {} {} {} ", capabilityInstanceId, toValue, propertyValue.getUniqueId(), statusIs, error);
+ log.trace("After creating relation from capability instance {} to property value {}. status is {} ", capabilityInstanceId, propertyValue.getUniqueId(), error);
}
}
if (error == null) {
- log.trace("Before creating relation from property value {} {} {} ", createdValue, toProperty, propertyData.getUniqueId());
+ log.trace("Before creating relation from property value {} to property {} ", createdValue, propertyData.getUniqueId());
createRelationRes = titanGenericDao.createEdge(createdValue, propertyData, GraphEdgeLabels.PROPERTY_IMPL, props);
if (!createRelationRes.equals(TitanOperationStatus.OK)) {
error = createRelationRes;
- if (log.isDebugEnabled()) {
- log.debug("Failed to create relation from property value {} {} {} {} {}", propertyValue.getUniqueId(), toProperty, propertyId, statusIs, error);
- }
+ log.debug("Failed to create relation from property value {} to property {}. status is {}", propertyValue.getUniqueId(), propertyId, error);
}
if (log.isTraceEnabled()) {
- log.trace("Before creating relation from property value c", createdValue, toProperty, propertyData.getUniqueId(), statusIs, error);
+ log.trace("Before creating relation from property value {} to property {}. status is {}", createdValue, propertyData.getUniqueId(), error);
}
}
- if (log.isTraceEnabled()) {
- log.trace("After cloning property values {} {} {} {} {}", propertyValueID, ofCI, capabilityInstanceId, statusIs, error);
- }
+ log.trace("After cloning property values {} of component instance {}. status is {}", propertyValueID, capabilityInstanceId, error);
if (error == null) {
return TitanOperationStatus.OK;
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CapabilityOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CapabilityOperation.java
index 9f00674780..ad43c60b0f 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CapabilityOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CapabilityOperation.java
@@ -99,7 +99,7 @@ public class CapabilityOperation extends AbstractOperation implements ICapabilit
Either<CapabilityData, TitanOperationStatus> addCapStatus = addCapabilityToResource(resourceId, capabilityName, capabilityDefinition);
if (addCapStatus.isRight()) {
- log.debug("Failed to add capability {} [ {} ] to graph", capabilityName, capabilityDefinition);
+ log.debug("Failed to add capability {} [{}] to Graph", capabilityName, capabilityDefinition);
BeEcompErrorManager.getInstance().logBeFailedCreateNodeError("Add Capability", capabilityName, String.valueOf(addCapStatus.right().value()));
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(addCapStatus.right().value()));
return result;
@@ -108,11 +108,11 @@ public class CapabilityOperation extends AbstractOperation implements ICapabilit
String capabilityUid = capabilityData.getUniqueId();
Either<CapabilityDefinition, StorageOperationStatus> capabilityRes = getCapability(capabilityUid, true);
- log.debug("After fetching capability {} with uid {}. Status is {}", capabilityName, capabilityUid, capabilityRes);
+ log.debug("After fetching capability {} with uid {}. status is {}" ,capabilityName, capabilityUid,capabilityRes);
if (capabilityRes.isRight()) {
StorageOperationStatus status = capabilityRes.right().value();
- log.debug("Failed to fetch capability {] with uid {}. Status is {}", capabilityName, capabilityUid, status);
+ log.debug("Failed to fetch capability {} with uid {}. status is {}", capabilityName, capabilityUid, status);
result = Either.right(status);
return result;
}
@@ -147,7 +147,7 @@ public class CapabilityOperation extends AbstractOperation implements ICapabilit
TitanOperationStatus addCapStatus = addCapabilityToResource(metadataVertex, resourceId, capabilityName, capabilityDefinition);
if (!addCapStatus.equals(TitanOperationStatus.OK)) {
- log.debug("Failed to add capability {} [ {} ]", capabilityName, capabilityDefinition);
+ log.debug("Failed to add capability {} [{}] to Graph", capabilityName, capabilityDefinition);
BeEcompErrorManager.getInstance().logBeFailedCreateNodeError("Add Capability", capabilityName, String.valueOf(addCapStatus));
result = DaoStatusConverter.convertTitanStatusToStorageStatus(addCapStatus);
}
@@ -171,8 +171,6 @@ public class CapabilityOperation extends AbstractOperation implements ICapabilit
CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
capabilityDefinition.setType(capabilityData.getType());
- // TODO esofer do something
-
return capabilityDefinition;
}
@@ -326,7 +324,7 @@ public class CapabilityOperation extends AbstractOperation implements ICapabilit
Either<CapabilityData, TitanOperationStatus> capabiltyRes = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Capability), uniqueId, CapabilityData.class);
if (capabiltyRes.isRight()) {
TitanOperationStatus status = capabiltyRes.right().value();
- log.debug("Failed to retrieve capability {} from graph. Status is {}", uniqueId, status);
+ log.debug("Failed to retrieve capability {} from graph. status is {}", uniqueId, status);
BeEcompErrorManager.getInstance().logBeFailedRetrieveNodeError("Fetch Capability", uniqueId, String.valueOf(status));
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
@@ -343,7 +341,7 @@ public class CapabilityOperation extends AbstractOperation implements ICapabilit
Either<CapabilityTypeData, TitanOperationStatus> capabilityTypeRes = getCapabilityTypeOfCapability(uniqueId);
if (capabilityTypeRes.isRight()) {
TitanOperationStatus status = capabilityTypeRes.right().value();
- log.debug("Failed to retrieve capability type of capability {}. Status is {}", uniqueId, status);
+ log.debug("Failed to retrieve capability type of capability {}. status is {}", uniqueId, status);
BeEcompErrorManager.getInstance().logBeFailedRetrieveNodeError("Fetch Capability", uniqueId, String.valueOf(status));
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
@@ -361,7 +359,6 @@ public class CapabilityOperation extends AbstractOperation implements ICapabilit
ImmutablePair<ResourceMetadataData, GraphEdge> pair = parentNode.left().value();
capabilityDefinition.setOwnerId(pair.left.getMetadataDataDefinition().getUniqueId());
List<String> derivedFromList = new ArrayList<>();
- // derivedFromList.add(pair.left.getMetadataDataDefinition().getName());
TitanOperationStatus fillResourceDerivedListFromGraph = fillResourceDerivedListFromGraph(pair.left.getMetadataDataDefinition().getUniqueId(), derivedFromList);
if (fillResourceDerivedListFromGraph.equals(TitanOperationStatus.OK)) {
capabilityDefinition.setCapabilitySources(derivedFromList);
@@ -371,7 +368,7 @@ public class CapabilityOperation extends AbstractOperation implements ICapabilit
Either<List<PropertyDefinition>, TitanOperationStatus> getPropertiesRes = getPropertiesOfCapability(uniqueId, capabilityTypeData.getCapabilityTypeDataDefinition().getType());
if (getPropertiesRes.isRight() && !getPropertiesRes.right().value().equals(TitanOperationStatus.NOT_FOUND)) {
TitanOperationStatus status = getPropertiesRes.right().value();
- log.debug("Failed to retrieve properties of capability {}. Status is {}", uniqueId, status);
+ log.debug("Failed to retrieve properties of capability {}. status is {}", uniqueId, status);
BeEcompErrorManager.getInstance().logBeFailedRetrieveNodeError("Fetch Properties of Capability", uniqueId, String.valueOf(status));
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
@@ -522,7 +519,7 @@ public class CapabilityOperation extends AbstractOperation implements ICapabilit
}
public Either<List<PropertyDefinition>, TitanOperationStatus> getPropertiesOfCapability(String capabilityUid, String capabilityType) {
- log.debug("Before getting properties of capability {} from graph ", capabilityUid);
+ log.debug("Before getting properties of capability {} from graph " , capabilityUid);
List<PropertyDefinition> properties;
Either<List<PropertyDefinition>, TitanOperationStatus> result = null;
@@ -539,7 +536,7 @@ public class CapabilityOperation extends AbstractOperation implements ICapabilit
getPropertiesOfCapabilityTypeRes = getAllCapabilityTypePropertiesFromAllDerivedFrom(capabilityTypeUid);
if (getPropertiesOfCapabilityTypeRes.isRight() && !getPropertiesOfCapabilityTypeRes.right().value().equals(TitanOperationStatus.NOT_FOUND)) {
TitanOperationStatus status = getPropertiesOfCapabilityTypeRes.right().value();
- log.error("Failed to retrieve properties for capability type {} from graph. Status is {}", capabilityType, status);
+ log.error("Failed to retrieve properties for capability type {} from graph. status is {}", capabilityType, status);
result = Either.right(status);
}
}
@@ -560,14 +557,15 @@ public class CapabilityOperation extends AbstractOperation implements ICapabilit
return result;
}
- protected Either<CapabilityTypeData, TitanOperationStatus> getCapabilityTypeOfCapability(String uniqueId) {
+ @Override
+ public Either<CapabilityTypeData, TitanOperationStatus> getCapabilityTypeOfCapability(String uniqueId) {
Either<ImmutablePair<CapabilityTypeData, GraphEdge>, TitanOperationStatus> capabilityTypeRes = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Capability), uniqueId, GraphEdgeLabels.TYPE_OF, NodeTypeEnum.CapabilityType,
CapabilityTypeData.class);
if (capabilityTypeRes.isRight()) {
TitanOperationStatus status = capabilityTypeRes.right().value();//
- log.debug("Cannot find capability type associated with capability {}. Status is {}", uniqueId, status);
+ log.debug("Cannot find capability type associated with capability {}. status is {}", uniqueId, status);
BeEcompErrorManager.getInstance().logBeFailedFindAssociationError("Fetch Capability type", NodeTypeEnum.CapabilityType.getName(), uniqueId, String.valueOf(status));
return Either.right(capabilityTypeRes.right().value());
}
@@ -594,7 +592,7 @@ public class CapabilityOperation extends AbstractOperation implements ICapabilit
Either<List<ImmutablePair<CapabilityData, GraphEdge>>, TitanOperationStatus> capabilitiesNodes = titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Resource), resourceId, GraphEdgeLabels.CAPABILITY,
NodeTypeEnum.Capability, CapabilityData.class);
- log.debug("After looking for all capabilities under resource {}. Status is {}", resourceId, capabilitiesNodes);
+ log.debug("After looking for all capabilities under resource {}. status is {}" , resourceId , capabilitiesNodes);
if (capabilitiesNodes.isRight()) {
TitanOperationStatus status = capabilitiesNodes.right().value();
return Either.right(status);
@@ -610,7 +608,7 @@ public class CapabilityOperation extends AbstractOperation implements ICapabilit
private Either<CapabilityData, TitanOperationStatus> addCapabilityToResource(String resourceId, String capabilityName, CapabilityDefinition capabilityDefinition) {
- log.debug("Going to add capability {} [ {} ] to resource uid {}", capabilityName, capabilityDefinition, resourceId);
+ log.debug("Going to add capability {} [ {} ] to resource uid {}" , capabilityName, capabilityDefinition, resourceId);
Either<CapabilityData, TitanOperationStatus> createCapRes = createCapability(resourceId, capabilityName, capabilityDefinition);
@@ -647,7 +645,7 @@ public class CapabilityOperation extends AbstractOperation implements ICapabilit
Either<GraphRelation, TitanOperationStatus> associateResourceRes = associateResourceToCapability(resourceId, capabilityName, capabilityData);
if (associateResourceRes.isRight()) {
TitanOperationStatus status = associateResourceRes.right().value();
- log.error("Failed to associate resource " + resourceId + " to capability " + capabilityData + ". status is " + status);
+ log.error("Failed to associate resource {} to capability {}. status is {}", resourceId, capabilityData, status);
return Either.right(status);
}
@@ -702,10 +700,10 @@ public class CapabilityOperation extends AbstractOperation implements ICapabilit
UniqueIdData capabilityTypeIdData = new UniqueIdData(NodeTypeEnum.CapabilityType, UniqueIdBuilder.buildCapabilityTypeUid(capabilityType));
log.debug("Before associating {} to capability type {}.", capabilityData, capabilityType);
Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(capabilityData, capabilityTypeIdData, GraphEdgeLabels.TYPE_OF, null);
- log.debug("After associating {} to capability type {}. status is {}", capabilityData, capabilityType, createRelResult);
+ log.debug("After associating {} to capability type {}. status is {}" , capabilityData, capabilityType, createRelResult);
if (createRelResult.isRight()) {
TitanOperationStatus operationStatus = createRelResult.right().value();
- log.error("Failed to associate capability {} to capability type {} in graph. Status is {}",capabilityData, capabilityTypeIdData, operationStatus);
+ log.error("Failed to associate capability {} to capability type {} in graph. status is {}", capabilityData, capabilityTypeIdData, operationStatus);
return Either.right(operationStatus);
}
return Either.left(createRelResult.left().value());
@@ -733,10 +731,10 @@ public class CapabilityOperation extends AbstractOperation implements ICapabilit
Map<String, Object> props = new HashMap<>();
props.put(GraphPropertiesDictionary.NAME.getProperty(), capabilityName);
Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(resourceIdData, capabilityData, GraphEdgeLabels.CAPABILITY, props);
- log.debug("After associating resource {} to capability {}. Status is {}", resourceId, capabilityData, createRelResult);
+ log.debug("After associating resource {} to capability {}. status is {}" , resourceId, capabilityData, createRelResult);
if (createRelResult.isRight()) {
TitanOperationStatus operationStatus = createRelResult.right().value();
- log.error("Failed to associate resource {} to capability {} in graph. Status is {}", resourceId, capabilityData, operationStatus);
+ log.error("Failed to associate resource {} to capability {} in graph. status is {}", resourceId, capabilityData, operationStatus);
return Either.right(operationStatus);
}
@@ -825,7 +823,7 @@ public class CapabilityOperation extends AbstractOperation implements ICapabilit
resultStatus = deletePropertiesStatus.right().value();
}
if (resultStatus == null) {
- log.debug("Before deleting capability from graph {}", capabilityUid);
+ log.debug("Before deleting capability from graph {}" , capabilityUid);
Either<CapabilityData, TitanOperationStatus> deleteNodeStatus = titanGenericDao.deleteNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Capability), capabilityUid, CapabilityData.class);
if (deleteNodeStatus.isRight()) {
resultStatus = deleteNodeStatus.right().value();
@@ -848,7 +846,7 @@ public class CapabilityOperation extends AbstractOperation implements ICapabilit
if (deleteAllRes.isRight()) {
TitanOperationStatus status = deleteAllRes.right().value();
if (status != TitanOperationStatus.NOT_FOUND) {
- log.debug("Failed to delete capabilities of resource {}. Status is {}", resourceId, status);
+ log.debug("Failed to delete capabilities of resource {}. status is {}", resourceId, status);
}
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
return result;
@@ -895,7 +893,7 @@ public class CapabilityOperation extends AbstractOperation implements ICapabilit
CapabilityDefinition capabilityDefinition = entry.getValue();
String capabilityUid = capabilityDefinition.getUniqueId();
- log.debug("Before deleting properties of capability {} from graph", capabilityUid);
+ log.debug("Before deleting properties of capability {} from graph " , capabilityUid);
Either<List<ImmutablePair<PropertyData, GraphEdge>>, TitanOperationStatus> deletePropertiesStatus = deletePropertiesOfCapability(capabilityUid);
if (deletePropertiesStatus.isRight() && !deletePropertiesStatus.right().value().equals(TitanOperationStatus.NOT_FOUND)) {
@@ -964,7 +962,7 @@ public class CapabilityOperation extends AbstractOperation implements ICapabilit
Either<Map<String, PropertyDefinition>, TitanOperationStatus> allPropertiesOfCapabilityTypeRes = getAllCapabilityTypePropertiesFromAllDerivedFrom(capabilityTypeUid);
if (allPropertiesOfCapabilityTypeRes.isRight() && !allPropertiesOfCapabilityTypeRes.right().value().equals(TitanOperationStatus.NOT_FOUND)) {
TitanOperationStatus operationStatus = allPropertiesOfCapabilityTypeRes.right().value();
- log.error("Failed to retrieve properties for capability type " + capabilityType + " from graph. status is " + operationStatus);
+ log.error("Failed to retrieve properties for capability type {} from graph. status is {}", capabilityType, operationStatus);
return Either.right(operationStatus);
}
@@ -976,7 +974,7 @@ public class CapabilityOperation extends AbstractOperation implements ICapabilit
Either<List<PropertyDefinition>, TitanOperationStatus> validateAndReducePropertiesRes = validatePropertyUniqueness(propertiesOfCapabilityType, properties);
if (validateAndReducePropertiesRes.isRight()) {
TitanOperationStatus operationStatus = validateAndReducePropertiesRes.right().value();
- log.error("Failed to add properties to capability {} in graph. Status is {}", capabilityData.getUniqueId(), operationStatus);
+ log.error("Failed to add properties to capability {} in graph. status is {}", capabilityData.getUniqueId(), operationStatus);
return Either.right(operationStatus);
}
}
@@ -984,7 +982,7 @@ public class CapabilityOperation extends AbstractOperation implements ICapabilit
Either<Map<String, PropertyData>, TitanOperationStatus> addPropertiesToCapabilityRes = propertyOperation.addPropertiesToElementType(capabilityData.getUniqueId(), NodeTypeEnum.Capability, properties);
if (addPropertiesToCapabilityRes.isRight()) {
TitanOperationStatus operationStatus = addPropertiesToCapabilityRes.right().value();
- log.error("Failed to add properties to capability {} in graph. Status is {}", capabilityData.getUniqueId(), operationStatus);
+ log.error("Failed to add properties to capability {} in graph. status is {}", capabilityData.getUniqueId(), operationStatus);
return Either.right(operationStatus);
}
return Either.left(addPropertiesToCapabilityRes.left().value());
@@ -1066,7 +1064,7 @@ public class CapabilityOperation extends AbstractOperation implements ICapabilit
}
public Either<List<ImmutablePair<PropertyData, GraphEdge>>, TitanOperationStatus> deletePropertiesOfCapability(String capabilityUid) {
- log.debug("Before deleting properties of capability {} from graph ", capabilityUid);
+ log.debug("Before deleting properties of capability {} from graph " , capabilityUid);
Either<List<ImmutablePair<PropertyData, GraphEdge>>, TitanOperationStatus> deletePropertiesStatus = titanGenericDao.deleteChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Capability), capabilityUid, GraphEdgeLabels.PROPERTY,
NodeTypeEnum.Property, PropertyData.class);
@@ -1118,7 +1116,7 @@ public class CapabilityOperation extends AbstractOperation implements ICapabilit
}
}
if (result.isRight()) {
- log.debug("Failed to update properties of capability {}. Status is {}", uniqueId, result);
+ log.debug("Failed to update properties of capability {}. status is {}", uniqueId, result);
}
return result;
} finally {
@@ -1141,13 +1139,13 @@ public class CapabilityOperation extends AbstractOperation implements ICapabilit
GraphEdgeLabels.CALCULATED_CAPABILITY, NodeTypeEnum.Capability, CapabilityData.class);
if (getCapabilitiesRes.isRight()) {
error = getCapabilitiesRes.right().value();
- log.debug("Failed to retrieve capabilities for resource instance {}. Status is {}", resourceInstanceId, error);
+ log.debug("Failed to retrieve capabilities for resource instance {}. status is {}", resourceInstanceId, error);
} else {
List<ImmutablePair<CapabilityData, GraphEdge>> capabilityPairsList = getCapabilitiesRes.left().value();
List<CapabilityData> capabilityPair = capabilityPairsList.stream().filter(pair -> pair.getLeft().getUniqueId().equals(capabilityUid)).map(pair -> pair.getLeft()).collect(Collectors.toList());
if (capabilityPair.isEmpty()) {
error = TitanOperationStatus.NOT_FOUND;
- log.debug("Failed to retrieve capability {} for resource instance {}. Status is {}", capabilityUid, resourceInstanceId, error);
+ log.debug("Failed to retrieve capability {} for resource instance {}. status is {}", capabilityUid, resourceInstanceId, error);
} else {
capability = capabilityPair.get(0);
}
@@ -1181,7 +1179,7 @@ public class CapabilityOperation extends AbstractOperation implements ICapabilit
Either<Map<String, PropertyDefinition>, TitanOperationStatus> allPropertiesOfCapabilityTypeRes = propertyOperation.findPropertiesOfNode(NodeTypeEnum.CapabilityType, nextParentType);
if (allPropertiesOfCapabilityTypeRes.isRight() && !allPropertiesOfCapabilityTypeRes.right().value().equals(TitanOperationStatus.NOT_FOUND)) {
error = allPropertiesOfCapabilityTypeRes.right().value();
- log.error("Failed to retrieve properties for capability type {} from graph. Status is {}", nextParentType, error);
+ log.error("Failed to retrieve properties for capability type {} from graph. status is {}", nextParentType, error);
return Either.right(error);
} else if (allPropertiesOfCapabilityTypeRes.isLeft()) {
if (allProperies.isEmpty()) {
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CapabilityTypeOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CapabilityTypeOperation.java
index 985399cb65..ddd6017620 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CapabilityTypeOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CapabilityTypeOperation.java
@@ -72,29 +72,22 @@ public class CapabilityTypeOperation extends AbstractOperation implements ICapab
}
@Override
- public Either<CapabilityTypeDefinition, StorageOperationStatus> addCapabilityType(
- CapabilityTypeDefinition capabilityTypeDefinition, boolean inTransaction) {
+ public Either<CapabilityTypeDefinition, StorageOperationStatus> addCapabilityType(CapabilityTypeDefinition capabilityTypeDefinition, boolean inTransaction) {
Either<CapabilityTypeDefinition, StorageOperationStatus> result = null;
try {
- Either<CapabilityTypeDefinition, TitanOperationStatus> validationRes = validateUpdateProperties(
- capabilityTypeDefinition);
+ Either<CapabilityTypeDefinition, TitanOperationStatus> validationRes = validateUpdateProperties(capabilityTypeDefinition);
if (validationRes.isRight()) {
- log.error("One or all properties of capability type {} not valid. status is {}",
- capabilityTypeDefinition, validationRes.right().value().name());
- result = Either
- .right(DaoStatusConverter.convertTitanStatusToStorageStatus(validationRes.right().value()));
+ log.error("One or all properties of capability type {} not valid. status is {}", capabilityTypeDefinition, validationRes.right().value().name());
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(validationRes.right().value()));
return result;
}
- Either<CapabilityTypeData, TitanOperationStatus> eitherStatus = addCapabilityTypeToGraph(
- capabilityTypeDefinition);
+ Either<CapabilityTypeData, TitanOperationStatus> eitherStatus = addCapabilityTypeToGraph(capabilityTypeDefinition);
if (eitherStatus.isRight()) {
- log.error("Failed to add capability {} to Graph. status is {}", capabilityTypeDefinition,
- eitherStatus.right().value().name());
- result = Either
- .right(DaoStatusConverter.convertTitanStatusToStorageStatus(eitherStatus.right().value()));
+ log.error("Failed to add capability {} to Graph. status is {}", capabilityTypeDefinition, eitherStatus.right().value().name());
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(eitherStatus.right().value()));
return result;
} else {
CapabilityTypeData capabilityTypeData = eitherStatus.left().value();
@@ -120,28 +113,21 @@ public class CapabilityTypeOperation extends AbstractOperation implements ICapab
}
- private Either<CapabilityTypeDefinition, TitanOperationStatus> validateUpdateProperties(
- CapabilityTypeDefinition capabilityTypeDefinition) {
+ private Either<CapabilityTypeDefinition, TitanOperationStatus> validateUpdateProperties(CapabilityTypeDefinition capabilityTypeDefinition) {
TitanOperationStatus error = null;
- if (capabilityTypeDefinition.getProperties() != null && !capabilityTypeDefinition.getProperties().isEmpty()
- && capabilityTypeDefinition.getDerivedFrom() != null) {
- Either<Map<String, PropertyDefinition>, TitanOperationStatus> allPropertiesRes = capabilityOperation
- .getAllCapabilityTypePropertiesFromAllDerivedFrom(capabilityTypeDefinition.getDerivedFrom());
- if (allPropertiesRes.isRight()
- && !allPropertiesRes.right().value().equals(TitanOperationStatus.NOT_FOUND)) {
+ if (capabilityTypeDefinition.getProperties() != null && !capabilityTypeDefinition.getProperties().isEmpty() && capabilityTypeDefinition.getDerivedFrom() != null) {
+ Either<Map<String, PropertyDefinition>, TitanOperationStatus> allPropertiesRes = capabilityOperation.getAllCapabilityTypePropertiesFromAllDerivedFrom(capabilityTypeDefinition.getDerivedFrom());
+ if (allPropertiesRes.isRight() && !allPropertiesRes.right().value().equals(TitanOperationStatus.NOT_FOUND)) {
error = allPropertiesRes.right().value();
- log.debug("Couldn't fetch derived from property nodes for capability type {}, error: {}",
- capabilityTypeDefinition.getType(), error);
+ log.debug("Couldn't fetch derived from property nodes for capability type {}, error: {}", capabilityTypeDefinition.getType(), error);
}
if (error == null && !allPropertiesRes.left().value().isEmpty()) {
Map<String, PropertyDefinition> derivedFromProperties = allPropertiesRes.left().value();
- capabilityTypeDefinition.getProperties().entrySet().stream()
- .filter(e -> derivedFromProperties.containsKey(e.getKey()) && e.getValue().getType() == null)
+ capabilityTypeDefinition.getProperties().entrySet().stream().filter(e -> derivedFromProperties.containsKey(e.getKey()) && e.getValue().getType() == null)
.forEach(e -> e.getValue().setType(derivedFromProperties.get(e.getKey()).getType()));
- Either<List<PropertyDefinition>, TitanOperationStatus> validatePropertiesRes = capabilityOperation
- .validatePropertyUniqueness(allPropertiesRes.left().value(), capabilityTypeDefinition
- .getProperties().values().stream().collect(Collectors.toList()));
+ Either<List<PropertyDefinition>, TitanOperationStatus> validatePropertiesRes = capabilityOperation.validatePropertyUniqueness(allPropertiesRes.left().value(),
+ capabilityTypeDefinition.getProperties().values().stream().collect(Collectors.toList()));
if (validatePropertiesRes.isRight()) {
error = validatePropertiesRes.right().value();
}
@@ -163,8 +149,7 @@ public class CapabilityTypeOperation extends AbstractOperation implements ICapab
protected CapabilityTypeDefinition convertCTDataToCTDefinition(CapabilityTypeData capabilityTypeData) {
log.debug("The object returned after create capability is {}", capabilityTypeData);
- CapabilityTypeDefinition capabilityTypeDefResult = new CapabilityTypeDefinition(
- capabilityTypeData.getCapabilityTypeDataDefinition());
+ CapabilityTypeDefinition capabilityTypeDefResult = new CapabilityTypeDefinition(capabilityTypeData.getCapabilityTypeDataDefinition());
return capabilityTypeDefResult;
}
@@ -177,14 +162,12 @@ public class CapabilityTypeOperation extends AbstractOperation implements ICapab
*
* 2. Add edge between the former node to its parent(if exists)
*
- * 3. Add property node and associate it to the node created at #1. (per
- * property & if exists)
+ * 3. Add property node and associate it to the node created at #1. (per property & if exists)
*
* @param capabilityTypeDefinition
* @return
*/
- private Either<CapabilityTypeData, TitanOperationStatus> addCapabilityTypeToGraph(
- CapabilityTypeDefinition capabilityTypeDefinition) {
+ private Either<CapabilityTypeData, TitanOperationStatus> addCapabilityTypeToGraph(CapabilityTypeDefinition capabilityTypeDefinition) {
log.debug("Got capability type {}", capabilityTypeDefinition);
@@ -194,37 +177,31 @@ public class CapabilityTypeOperation extends AbstractOperation implements ICapab
CapabilityTypeData capabilityTypeData = buildCapabilityTypeData(capabilityTypeDefinition, ctUniqueId);
log.debug("Before adding capability type to graph. capabilityTypeData = {}", capabilityTypeData);
- Either<CapabilityTypeData, TitanOperationStatus> createCTResult = titanGenericDao.createNode(capabilityTypeData,
- CapabilityTypeData.class);
+ Either<CapabilityTypeData, TitanOperationStatus> createCTResult = titanGenericDao.createNode(capabilityTypeData, CapabilityTypeData.class);
log.debug("After adding capability type to graph. status is = {}", createCTResult);
if (createCTResult.isRight()) {
TitanOperationStatus operationStatus = createCTResult.right().value();
- log.error("Failed to capability type " + capabilityTypeDefinition.getType() + " to graph. status is "
- + operationStatus);
+ log.error("Failed to capability type {} to graph. status is {}", capabilityTypeDefinition.getType(), operationStatus);
return Either.right(operationStatus);
}
CapabilityTypeData resultCTD = createCTResult.left().value();
Map<String, PropertyDefinition> propertiesMap = capabilityTypeDefinition.getProperties();
Collection<PropertyDefinition> properties = propertiesMap != null ? propertiesMap.values() : null;
- Either<Map<String, PropertyData>, TitanOperationStatus> addPropertiesToCapablityType = propertyOperation
- .addPropertiesToElementType(resultCTD.getUniqueId(), NodeTypeEnum.CapabilityType, propertiesMap);
+ Either<Map<String, PropertyData>, TitanOperationStatus> addPropertiesToCapablityType = propertyOperation.addPropertiesToElementType(resultCTD.getUniqueId(), NodeTypeEnum.CapabilityType, propertiesMap);
if (addPropertiesToCapablityType.isRight()) {
- log.error(
- "Failed add properties " + propertiesMap + " to capability " + capabilityTypeDefinition.getType());
+ log.error("Failed add properties {} to capability {}", propertiesMap, capabilityTypeDefinition.getType());
return Either.right(addPropertiesToCapablityType.right().value());
}
String derivedFrom = capabilityTypeDefinition.getDerivedFrom();
if (derivedFrom != null) {
- log.debug(
- "Before creating relation between capability type " + ctUniqueId + " to its parent " + derivedFrom);
+ log.debug("Before creating relation between capability type {} to its parent {}", ctUniqueId, derivedFrom);
UniqueIdData from = new UniqueIdData(NodeTypeEnum.CapabilityType, ctUniqueId);
UniqueIdData to = new UniqueIdData(NodeTypeEnum.CapabilityType, derivedFrom);
- Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(from, to,
- GraphEdgeLabels.DERIVED_FROM, null);
- log.debug("After create relation between capability type {} to its parent {}. Status is {}", ctUniqueId, derivedFrom, createRelation);
+ Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(from, to, GraphEdgeLabels.DERIVED_FROM, null);
+ log.debug("After create relation between capability type {} to its parent {}. status is {}", ctUniqueId, derivedFrom, createRelation);
if (createRelation.isRight()) {
return Either.right(createRelation.right().value());
}
@@ -234,8 +211,7 @@ public class CapabilityTypeOperation extends AbstractOperation implements ICapab
}
- private CapabilityTypeData buildCapabilityTypeData(CapabilityTypeDefinition capabilityTypeDefinition,
- String ctUniqueId) {
+ private CapabilityTypeData buildCapabilityTypeData(CapabilityTypeDefinition capabilityTypeDefinition, String ctUniqueId) {
CapabilityTypeData capabilityTypeData = new CapabilityTypeData(capabilityTypeDefinition);
@@ -250,8 +226,7 @@ public class CapabilityTypeOperation extends AbstractOperation implements ICapab
}
@Override
- public Either<CapabilityTypeDefinition, StorageOperationStatus> getCapabilityType(String uniqueId,
- boolean inTransaction) {
+ public Either<CapabilityTypeDefinition, StorageOperationStatus> getCapabilityType(String uniqueId, boolean inTransaction) {
Either<CapabilityTypeDefinition, StorageOperationStatus> result = null;
try {
@@ -261,7 +236,7 @@ public class CapabilityTypeOperation extends AbstractOperation implements ICapab
if (ctResult.isRight()) {
TitanOperationStatus status = ctResult.right().value();
if (status != TitanOperationStatus.NOT_FOUND) {
- log.error("Failed to retrieve information on capability type {}. Status is {}", uniqueId, status);
+ log.error("Failed to retrieve information on capability type {}. status is {}", uniqueId, status);
}
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(ctResult.right().value()));
return result;
@@ -288,33 +263,30 @@ public class CapabilityTypeOperation extends AbstractOperation implements ICapab
Either<CapabilityTypeDefinition, TitanOperationStatus> result = null;
- Either<CapabilityTypeData, TitanOperationStatus> capabilityTypesRes = titanGenericDao.getNode(
- UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.CapabilityType), uniqueId, CapabilityTypeData.class);
+ Either<CapabilityTypeData, TitanOperationStatus> capabilityTypesRes = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.CapabilityType), uniqueId, CapabilityTypeData.class);
if (capabilityTypesRes.isRight()) {
TitanOperationStatus status = capabilityTypesRes.right().value();
- log.debug("Capability type {} cannot be found in graph. Status is {}", uniqueId, status);
+ log.debug("Capability type {} cannot be found in graph. status is {}", uniqueId, status);
return Either.right(status);
}
CapabilityTypeData ctData = capabilityTypesRes.left().value();
- CapabilityTypeDefinition capabilityTypeDefinition = new CapabilityTypeDefinition(
- ctData.getCapabilityTypeDataDefinition());
+ CapabilityTypeDefinition capabilityTypeDefinition = new CapabilityTypeDefinition(ctData.getCapabilityTypeDataDefinition());
TitanOperationStatus propertiesStatus = fillProperties(uniqueId, capabilityTypeDefinition);
if (propertiesStatus != TitanOperationStatus.OK) {
- log.error("Failed to fetch properties of capability type " + uniqueId);
+ log.error("Failed to fetch properties of capability type {}", uniqueId);
return Either.right(propertiesStatus);
}
- Either<ImmutablePair<CapabilityTypeData, GraphEdge>, TitanOperationStatus> parentNode = titanGenericDao
- .getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.CapabilityType), uniqueId,
- GraphEdgeLabels.DERIVED_FROM, NodeTypeEnum.CapabilityType, CapabilityTypeData.class);
- log.debug("After retrieving DERIVED_FROM node of {}. Status is {}", uniqueId, parentNode);
+ Either<ImmutablePair<CapabilityTypeData, GraphEdge>, TitanOperationStatus> parentNode = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.CapabilityType), uniqueId, GraphEdgeLabels.DERIVED_FROM,
+ NodeTypeEnum.CapabilityType, CapabilityTypeData.class);
+ log.debug("After retrieving DERIVED_FROM node of {}. status is {}", uniqueId, parentNode);
if (parentNode.isRight()) {
TitanOperationStatus titanOperationStatus = parentNode.right().value();
if (titanOperationStatus != TitanOperationStatus.NOT_FOUND) {
- log.error("Failed to find the parent capability of capability type {}. Status is {}", uniqueId, titanOperationStatus);
+ log.error("Failed to find the parent capability of capability type {}. status is {}", uniqueId, titanOperationStatus);
result = Either.right(titanOperationStatus);
return result;
}
@@ -331,11 +303,10 @@ public class CapabilityTypeOperation extends AbstractOperation implements ICapab
private TitanOperationStatus fillProperties(String uniqueId, CapabilityTypeDefinition capabilityTypeDefinition) {
- Either<Map<String, PropertyDefinition>, TitanOperationStatus> findPropertiesOfNode = propertyOperation
- .findPropertiesOfNode(NodeTypeEnum.CapabilityType, uniqueId);
+ Either<Map<String, PropertyDefinition>, TitanOperationStatus> findPropertiesOfNode = propertyOperation.findPropertiesOfNode(NodeTypeEnum.CapabilityType, uniqueId);
if (findPropertiesOfNode.isRight()) {
TitanOperationStatus titanOperationStatus = findPropertiesOfNode.right().value();
- log.debug("After looking for properties of vertex {}. Status is {}", uniqueId, titanOperationStatus);
+ log.debug("After looking for properties of vertex {}. status is {}", uniqueId, titanOperationStatus);
if (TitanOperationStatus.NOT_FOUND.equals(titanOperationStatus)) {
return TitanOperationStatus.OK;
} else {
@@ -348,12 +319,10 @@ public class CapabilityTypeOperation extends AbstractOperation implements ICapab
}
}
- public Either<Boolean, StorageOperationStatus> isCapabilityTypeDerivedFrom(String childCandidateType,
- String parentCandidateType) {
+ public Either<Boolean, StorageOperationStatus> isCapabilityTypeDerivedFrom(String childCandidateType, String parentCandidateType) {
Map<String, Object> propertiesToMatch = new HashMap<String, Object>();
propertiesToMatch.put(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.CapabilityType), childCandidateType);
- Either<List<CapabilityTypeData>, TitanOperationStatus> getResponse = titanGenericDao
- .getByCriteria(NodeTypeEnum.CapabilityType, propertiesToMatch, CapabilityTypeData.class);
+ Either<List<CapabilityTypeData>, TitanOperationStatus> getResponse = titanGenericDao.getByCriteria(NodeTypeEnum.CapabilityType, propertiesToMatch, CapabilityTypeData.class);
if (getResponse.isRight()) {
TitanOperationStatus titanOperationStatus = getResponse.right().value();
log.debug("Couldn't fetch capability type {}, error: {}", childCandidateType, titanOperationStatus);
@@ -363,14 +332,12 @@ public class CapabilityTypeOperation extends AbstractOperation implements ICapab
Set<String> travelledTypes = new HashSet<>();
do {
travelledTypes.add(childUniqueId);
- Either<List<ImmutablePair<CapabilityTypeData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao
- .getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.CapabilityType), childUniqueId,
- GraphEdgeLabels.DERIVED_FROM, NodeTypeEnum.CapabilityType, CapabilityTypeData.class);
+ Either<List<ImmutablePair<CapabilityTypeData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.CapabilityType), childUniqueId, GraphEdgeLabels.DERIVED_FROM,
+ NodeTypeEnum.CapabilityType, CapabilityTypeData.class);
if (childrenNodes.isRight()) {
if (childrenNodes.right().value() != TitanOperationStatus.NOT_FOUND) {
TitanOperationStatus titanOperationStatus = getResponse.right().value();
- log.debug("Couldn't fetch derived from node for capability type {}, error: {}", childCandidateType,
- titanOperationStatus);
+ log.debug("Couldn't fetch derived from node for capability type {}, error: {}", childCandidateType, titanOperationStatus);
return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(titanOperationStatus));
} else {
log.debug("Derived from node is not found for type {} - this is OK for root capability.");
@@ -379,8 +346,7 @@ public class CapabilityTypeOperation extends AbstractOperation implements ICapab
}
String derivedFromUniqueId = childrenNodes.left().value().get(0).getLeft().getUniqueId();
if (derivedFromUniqueId.equals(parentCandidateType)) {
- log.debug("Verified that capability type {} derives from capability type {}", childCandidateType,
- parentCandidateType);
+ log.debug("Verified that capability type {} derives from capability type {}", childCandidateType, parentCandidateType);
return Either.left(true);
}
childUniqueId = derivedFromUniqueId;
@@ -402,8 +368,7 @@ public class CapabilityTypeOperation extends AbstractOperation implements ICapab
}
@Override
- public Either<CapabilityTypeDefinition, StorageOperationStatus> addCapabilityType(
- CapabilityTypeDefinition capabilityTypeDefinition) {
+ public Either<CapabilityTypeDefinition, StorageOperationStatus> addCapabilityType(CapabilityTypeDefinition capabilityTypeDefinition) {
return addCapabilityType(capabilityTypeDefinition, false);
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ComponentInstanceOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ComponentInstanceOperation.java
index cb85888780..c487b0ce71 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ComponentInstanceOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ComponentInstanceOperation.java
@@ -29,6 +29,7 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.Optional;
import java.util.Set;
+import java.util.UUID;
import java.util.function.Function;
import java.util.function.Supplier;
import java.util.stream.Collectors;
@@ -50,10 +51,12 @@ import org.openecomp.sdc.be.dao.neo4j.GraphEdgePropertiesDictionary;
import org.openecomp.sdc.be.dao.neo4j.GraphPropertiesDictionary;
import org.openecomp.sdc.be.dao.titan.TitanGenericDao;
import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
-import org.openecomp.sdc.be.datatypes.components.ResourceMetadataDataDefinition;
+import org.openecomp.sdc.be.datatypes.elements.CapabilityDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.ComponentInstanceDataDefinition;
+import org.openecomp.sdc.be.datatypes.elements.GetInputValueDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.PropertyRule;
+import org.openecomp.sdc.be.datatypes.elements.RequirementDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.SchemaDefinition;
import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
@@ -67,7 +70,8 @@ import org.openecomp.sdc.be.model.ComponentInstanceAttribute;
import org.openecomp.sdc.be.model.ComponentInstanceInput;
import org.openecomp.sdc.be.model.ComponentInstanceProperty;
import org.openecomp.sdc.be.model.DataTypeDefinition;
-import org.openecomp.sdc.be.model.GetInputValueInfo;
+import org.openecomp.sdc.be.model.GroupDefinition;
+import org.openecomp.sdc.be.model.GroupInstance;
import org.openecomp.sdc.be.model.HeatParameterDefinition;
import org.openecomp.sdc.be.model.IComponentInstanceConnectedElement;
import org.openecomp.sdc.be.model.InputDefinition;
@@ -78,6 +82,7 @@ import org.openecomp.sdc.be.model.RequirementAndRelationshipPair;
import org.openecomp.sdc.be.model.RequirementCapabilityRelDef;
import org.openecomp.sdc.be.model.RequirementDefinition;
import org.openecomp.sdc.be.model.Resource;
+import org.openecomp.sdc.be.model.User;
import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache;
import org.openecomp.sdc.be.model.operations.api.IAttributeOperation;
import org.openecomp.sdc.be.model.operations.api.IComponentInstanceOperation;
@@ -99,6 +104,7 @@ import org.openecomp.sdc.be.resources.data.RelationshipTypeData;
import org.openecomp.sdc.be.resources.data.RequirementData;
import org.openecomp.sdc.be.resources.data.ResourceMetadataData;
import org.openecomp.sdc.be.resources.data.UniqueIdData;
+import org.openecomp.sdc.be.resources.data.UserData;
import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum;
import org.openecomp.sdc.common.api.ArtifactTypeEnum;
import org.openecomp.sdc.common.config.EcompErrorName;
@@ -137,9 +143,6 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
private CapabilityInstanceOperation capabilityInstanceOperation;
@Autowired
- private CapabilityTypeOperation capabilityTypeOperation;
-
- @Autowired
private RequirementOperation requirementOperation;
@Autowired
@@ -160,6 +163,12 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
@Autowired
private ApplicationDataTypeCache dataTypeCache;
+ @Autowired
+ protected GroupOperation groupOperation;
+
+ @Autowired
+ protected GroupInstanceOperation groupInstanceOperation;
+
/**
* FOR TEST ONLY
*
@@ -180,12 +189,15 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
NodeTypeEnum compInstNodeType, boolean allowDeleted, boolean inTransaction) {
Either<ComponentInstance, StorageOperationStatus> result = null;
+ if (!ValidationUtils.validateStringNotEmpty(componentInstance.getCustomizationUUID())) {
+ generateCustomizationUUID(componentInstance);
+ }
try {
Either<ComponentInstance, TitanOperationStatus> addRes = addComponentInstanceToContainerComponent(containerComponentId, containerNodeType, instanceNumber, isCreateLocgicalName, componentInstance, compInstNodeType, allowDeleted);
if (addRes.isRight()) {
TitanOperationStatus status = addRes.right().value();
- log.error("Failed to add resource instance {} to service {}. Status is {}", componentInstance, containerComponentId, status);
+ log.error("Failed to add resource instance {} to service {}. status is {}", componentInstance, containerComponentId, status);
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
return result;
}
@@ -246,7 +258,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
if (deleteRes.isRight()) {
TitanOperationStatus status = deleteRes.right().value();
- log.error("Failed to remove resource instance {} from component {}. Status is {}", resourceInstUid, containerComponentId, status);
+ log.error("Failed to remove resource instance {} from component {}. status is {}", resourceInstUid, containerComponentId, status);
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
return result;
}
@@ -288,7 +300,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
if (updateRes.isRight()) {
TitanOperationStatus status = updateRes.right().value();
- log.error("Failed to find resource instance name {}. Status is {}", uniqId, status);
+ log.error("Failed to find resource instance name {}. status is {}", uniqId, status);
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
return result;
}
@@ -366,10 +378,48 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
Map<String, Object> properties = titanGenericDao.getProperties(ciVertex);
ComponentInstanceData createdComponentInstance = GraphElementFactory.createElement(NodeTypeEnum.ResourceInstance.getName(), GraphElementTypeEnum.Node, properties, ComponentInstanceData.class);
+ Either<ComponentInstance, TitanOperationStatus> createdResourceInstanceRes = createGroupInstancesOnComponentInstance(componentInstance, ciVertex, createdComponentInstance);
+ return createdResourceInstanceRes;
+ }
+
+
+ public Either<ComponentInstance, TitanOperationStatus> createGroupInstancesOnComponentInstance(ComponentInstance componentInstance, TitanVertex ciVertex, ComponentInstanceData createdComponentInstance) {
ComponentInstance createdResourceInstance = new ComponentInstance(createdComponentInstance.getComponentInstDataDefinition());
+ createdResourceInstance.setGroupInstances(componentInstance.getGroupInstances());
+ List<GroupInstance> groupInstancesList = new ArrayList<GroupInstance>();
+ List<GroupDefinition> group = null;
+ Either<List<GroupDefinition>, TitanOperationStatus> groupEither = groupOperation.getAllGroupsFromGraph(createdResourceInstance.getComponentUid(), NodeTypeEnum.Resource);
+ if (groupEither.isRight() && groupEither.right().value() != TitanOperationStatus.OK && groupEither.right().value() != TitanOperationStatus.NOT_FOUND) {
+ TitanOperationStatus status = groupEither.right().value();
+ log.debug("Failed to associate group instances to component instance {}. Status is {}", componentInstance.getUniqueId(), status);
+ return Either.right(status);
+ } else {
+ if (groupEither.isLeft()) {
+ group = groupEither.left().value();
+ if (group != null && !group.isEmpty()) {
+ List<GroupDefinition> vfGroupsList = group.stream().filter(p -> p.getType().equals("org.openecomp.groups.VfModule")).collect(Collectors.toList());
+ for (GroupDefinition groupDefinition : vfGroupsList) {
+ Either<GroupInstance, StorageOperationStatus> status = createGroupInstance(ciVertex, groupDefinition, createdResourceInstance);
+ if (status.isRight()) {
+ log.debug("Failed to associate group instances to component instance {}. Status is {}", componentInstance.getUniqueId(), status);
+
+ } else {
+ GroupInstance groupInstance = status.left().value();
+ groupInstancesList.add(groupInstance);
+ }
+
+ }
+ createdResourceInstance.setGroupInstances(groupInstancesList);
+ }
+ }
+ }
return Either.left(createdResourceInstance);
+ }
+ public void generateCustomizationUUID(ComponentInstance componentInstance) {
+ UUID uuid = UUID.randomUUID();
+ componentInstance.setCustomizationUUID(uuid.toString());
}
/**
@@ -409,7 +459,6 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
}
String originType = (String) titanGenericDao.getProperty(originVertex, GraphPropertiesDictionary.LABEL.getProperty());
String resourceType = (String) titanGenericDao.getProperty(originVertex, GraphPropertiesDictionary.RESOURCE_TYPE.getProperty());
- detectOriginType(originType, componentInstanceData, resourceType);
log.trace("Before adding component instance to graph. componentInstanceData = {}", componentInstanceData);
@@ -427,7 +476,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
TitanOperationStatus associateContainerRes = associateContainerCompToComponentInstance(metadataVertex, createdComponentInstanceVertex, logicalName);
String componentInstanceUniqueId = componentInstanceData.getUniqueId();
- if (!associateContainerRes.equals(TitanOperationStatus.OK)) {
+ if (associateContainerRes != TitanOperationStatus.OK) {
BeEcompErrorManager.getInstance().logBeDaoSystemError("Add Component Instance");
log.debug("Failed to associate container component {} to component instance {}. Status is {}", containerComponentId, componentInstanceUniqueId, associateContainerRes);
return Either.right(associateContainerRes);
@@ -435,20 +484,20 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
String originId = (String) titanGenericDao.getProperty(createdComponentInstanceVertex, GraphPropertiesDictionary.TYPE.getProperty());
TitanOperationStatus associateToInstOriginComponent = associateToInstOriginComponent(createdComponentInstanceVertex, originVertex, originId);
- if (!associateToInstOriginComponent.equals(TitanOperationStatus.OK)) {
+ if (associateToInstOriginComponent != TitanOperationStatus.OK) {
BeEcompErrorManager.getInstance().logBeDaoSystemError("Add Component Instance");
log.debug("Failed to associate component instance {} to its origin component {}. Status is {}", componentInstanceUniqueId, componentInstanceData.getComponentInstDataDefinition().getComponentUid(), associateToInstOriginComponent);
return Either.right(associateToInstOriginComponent);
}
TitanOperationStatus associateCompInstToRequirements = associateCompInstToRequirements(createdComponentInstanceVertex, containerNodeType, compInstNodeType, originId);
- if (!associateCompInstToRequirements.equals(TitanOperationStatus.OK)) {
+ if (associateCompInstToRequirements != TitanOperationStatus.OK) {
BeEcompErrorManager.getInstance().logBeDaoSystemError("Add Component Instance");
log.debug("Failed to associate component instance {} to its origin requirements. Status is {}", componentInstanceUniqueId, associateCompInstToRequirements);
return Either.right(associateCompInstToRequirements);
}
TitanOperationStatus associateCompInstToCapabilities = associateCompInstToCapabilities(createdComponentInstanceVertex, containerNodeType, compInstNodeType, originId);
- if (!associateCompInstToCapabilities.equals(TitanOperationStatus.OK)) {
+ if (associateCompInstToCapabilities != TitanOperationStatus.OK) {
BeEcompErrorManager.getInstance().logBeDaoSystemError("Add Component Instance");
log.debug("Failed to associate component instance {} to its origin capabilities. Status is {}", componentInstanceUniqueId, associateCompInstToCapabilities);
return Either.right(associateCompInstToCapabilities);
@@ -469,7 +518,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
} else if (containerNodeType.equals(NodeTypeEnum.Resource) && componentInstance.getCapabilities() != null && !componentInstance.getCapabilities().isEmpty()) {
// in case of creation from scar
TitanOperationStatus addPropertiesRes = createCapabilityInstancesWithPropertyValues(createdComponentInstanceVertex, componentInstanceUniqueId, componentInstance.getCapabilities(), true);
- if (!addPropertiesRes.equals(TitanOperationStatus.OK)) {
+ if (addPropertiesRes != TitanOperationStatus.OK) {
status = addPropertiesRes;
log.debug("Failed to create capability instances with property values for component instance {}. Status is {}", componentInstance.getUniqueId(), status);
}
@@ -490,13 +539,14 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
// in case of cloning of service
log.trace("Before associating created component instance {} to cloned capability instances.", componentInstanceUniqueId);
TitanOperationStatus associationStatus = associateCreatedComponentInstanceToClonedCapabilityInstances(createdComponentInstanceVertex, componentInstanceUniqueId, cloneCapabilityInstancesRes.left().value());
- if (!associationStatus.equals(TitanOperationStatus.OK) && !associationStatus.equals(TitanOperationStatus.NOT_FOUND)) {
+ if (associationStatus != TitanOperationStatus.OK && associationStatus != TitanOperationStatus.NOT_FOUND) {
status = associationStatus;
log.debug("Failed to associate capability instances to component instance {}. Status is {}", componentInstance.getUniqueId(), status);
}
log.trace("After associating created component instance {} to cloned capability instances. Status is {}", componentInstanceUniqueId, status);
}
}
+
if (status == null) {
// ComponentInstance createdResourceInstance = new
// ComponentInstance(createdComponentInstance.getComponentInstDataDefinition());
@@ -536,7 +586,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
CapabilityDefinition capability = capailityEntry.getValue().get(0);
if (capability.getProperties() != null && !capability.getProperties().isEmpty()) {
TitanOperationStatus addPropertiesRes = addCapabilityPropertyValuesToResourceInstance(resourceInstanceVertex, resourceInstanceId, capability, isNewlyCreatedResourceInstance);
- if (!addPropertiesRes.equals(TitanOperationStatus.OK)) {
+ if (addPropertiesRes != TitanOperationStatus.OK) {
result = addPropertiesRes;
log.debug("Failed to add property values to capabilities of component instance {}. Status is {}", resourceInstanceId, result);
return result;
@@ -555,7 +605,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
capInstPair.getRight().getProperties());
if (associateComponentInstanceToCapabilityinstanceRes.isRight()) {
error = associateComponentInstanceToCapabilityinstanceRes.right().value();
- log.debug("Failed to associate capability instance {} to resource instance {}. Status is {}.", capInstPair.getLeft().getUniqueId(), newComponentResourceId, error);
+ log.debug("Failed to associate capability instance {} to resource instance {} status is {}.", capInstPair.getLeft().getUniqueId(), newComponentResourceId, error);
break;
} else {
relationsToCapabilityInstances.add(associateComponentInstanceToCapabilityinstanceRes.left().value());
@@ -571,7 +621,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
TitanOperationStatus error = null;
for (ImmutablePair<TitanVertex, GraphEdge> capInstPair : capabilityInstances) {
TitanOperationStatus associateComponentInstanceToCapabilityinstanceRes = titanGenericDao.createEdge(riVertex, capInstPair.getLeft(), GraphEdgeLabels.CAPABILITY_INST, capInstPair.getRight().getProperties());
- if (!associateComponentInstanceToCapabilityinstanceRes.equals(TitanOperationStatus.OK)) {
+ if (associateComponentInstanceToCapabilityinstanceRes != TitanOperationStatus.OK) {
error = associateComponentInstanceToCapabilityinstanceRes;
log.debug("Failed to associate capability instance {} to resource instance {} status is {} .", capInstPair.getLeft(), newComponentResourceId, error);
break;
@@ -595,7 +645,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
GraphEdgeLabels.RESOURCE_INST, NodeTypeEnum.ResourceInstance, ComponentInstanceData.class);
if (getAllResourceInstanceRes.isRight() && !getAllResourceInstanceRes.right().value().equals(TitanOperationStatus.NOT_FOUND)) {
error = getAllResourceInstanceRes.right().value();
- log.debug("Failed to retrieve resource instances from resource {}. Status is {}.", resourceId, error);
+ log.debug("Failed to retrieve resource instances from resource {} status is {}.", resourceId, error);
}
if (getAllResourceInstanceRes.isLeft()) {
resourceInstancesPair = getAllResourceInstanceRes.left().value();
@@ -606,7 +656,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
GraphEdgeLabels.CAPABILITY_INST, NodeTypeEnum.CapabilityInst, CapabilityInstData.class);
if (getCapabilityInstancesRes.isRight() && !getCapabilityInstancesRes.right().value().equals(TitanOperationStatus.NOT_FOUND)) {
error = getCapabilityInstancesRes.right().value();
- log.debug("Failed to retrieve capability instances of resource instance {}. Status is {}", ri.getUniqueId(), error);
+ log.debug("Failed to retrieve capability instances of resource instance {} status is {}.", ri.getUniqueId(), error);
break;
}
if (getCapabilityInstancesRes.isLeft()) {
@@ -620,7 +670,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
capInstPair.getRight().getProperties());
if (associateComponentInstanceToCapabilityinstanceRes.isRight()) {
error = associateComponentInstanceToCapabilityinstanceRes.right().value();
- log.debug("Failed to associate capability instance {} to resource instance {}. Status is {}", capInstPair.getLeft().getUniqueId(), componentResourceId, error);
+ log.debug("Failed to associate capability instance {} to resource instance {} status is {}.", capInstPair.getLeft().getUniqueId(), componentResourceId, error);
break;
} else {
relationsToCapabilityInstances.add(associateComponentInstanceToCapabilityinstanceRes.left().value());
@@ -633,8 +683,10 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
return Either.right(error);
}
- private void detectOriginType(String label, ComponentInstanceData componentInstanceData, String resourceTypeStr) {
- switch (NodeTypeEnum.getByName(label)) {
+ private NodeTypeEnum detectOriginType(String label, ComponentInstanceData componentInstanceData, String resourceTypeStr) {
+ NodeTypeEnum res = null;
+ res = NodeTypeEnum.getByName(label);
+ switch (res) {
case Service:
componentInstanceData.getComponentInstDataDefinition().setOriginType(OriginTypeEnum.SERVICE);
break;
@@ -650,6 +702,9 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
case VFC:
componentInstanceData.getComponentInstDataDefinition().setOriginType(OriginTypeEnum.VFC);
break;
+ case VFCMT:
+ componentInstanceData.getComponentInstDataDefinition().setOriginType(OriginTypeEnum.VFCMT);
+ break;
case CP:
componentInstanceData.getComponentInstDataDefinition().setOriginType(OriginTypeEnum.CP);
break;
@@ -661,6 +716,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
default:
break;
}
+ return res;
}
private Either<GraphRelation, TitanOperationStatus> associateToInstOriginComponent(ComponentInstanceData componentInstanceData, NodeTypeEnum compInstNodeType) {
@@ -669,10 +725,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(componentInstanceData, resourceIdData, GraphEdgeLabels.INSTANCE_OF, null);
- log.debug("After associating resource instance {} to resource {}. Status is {}",
- componentInstanceData.getUniqueId(),
- componentInstanceData.getComponentInstDataDefinition().getUniqueId(),
- createRelation);
+ log.debug("After associating resource instance {} to resource {}. status is {}", componentInstanceData.getUniqueId(), componentInstanceData.getComponentInstDataDefinition().getUniqueId(), createRelation);
return createRelation;
}
@@ -742,12 +795,12 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
props.put(GraphEdgePropertiesDictionary.OWNER_ID.getProperty(), componentInstanceData.getUniqueId());
if (requirementDef.getMinOccurrences() == null) {
- props.put(GraphEdgePropertiesDictionary.REQUIRED_OCCURRENCES.getProperty(), RequirementData.MIN_OCCURRENCES);
+ props.put(GraphEdgePropertiesDictionary.REQUIRED_OCCURRENCES.getProperty(), RequirementDataDefinition.MIN_OCCURRENCES);
} else {
props.put(GraphEdgePropertiesDictionary.REQUIRED_OCCURRENCES.getProperty(), requirementDef.getMinOccurrences());
}
if (requirementDef.getMaxOccurrences() == null) {
- props.put(GraphEdgePropertiesDictionary.LEFT_OCCURRENCES.getProperty(), RequirementData.MAX_DEFAULT_OCCURRENCES);
+ props.put(GraphEdgePropertiesDictionary.LEFT_OCCURRENCES.getProperty(), RequirementDataDefinition.MAX_DEFAULT_OCCURRENCES);
} else {
props.put(GraphEdgePropertiesDictionary.LEFT_OCCURRENCES.getProperty(), requirementDef.getMaxOccurrences());
}
@@ -784,12 +837,12 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
props.put(GraphEdgePropertiesDictionary.OWNER_ID.getProperty(), compoInstId);
if (requirementDef.getMinOccurrences() == null) {
- props.put(GraphEdgePropertiesDictionary.REQUIRED_OCCURRENCES.getProperty(), RequirementData.MIN_OCCURRENCES);
+ props.put(GraphEdgePropertiesDictionary.REQUIRED_OCCURRENCES.getProperty(), RequirementDataDefinition.MIN_OCCURRENCES);
} else {
props.put(GraphEdgePropertiesDictionary.REQUIRED_OCCURRENCES.getProperty(), requirementDef.getMinOccurrences());
}
if (requirementDef.getMaxOccurrences() == null) {
- props.put(GraphEdgePropertiesDictionary.LEFT_OCCURRENCES.getProperty(), RequirementData.MAX_DEFAULT_OCCURRENCES);
+ props.put(GraphEdgePropertiesDictionary.LEFT_OCCURRENCES.getProperty(), RequirementDataDefinition.MAX_DEFAULT_OCCURRENCES);
} else {
props.put(GraphEdgePropertiesDictionary.LEFT_OCCURRENCES.getProperty(), requirementDef.getMaxOccurrences());
}
@@ -857,8 +910,8 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
GraphEdge edge = calculatedReq.right;
Map<String, Object> properties = edge.getProperties();
String source = null;
- String occurrences = RequirementData.MAX_DEFAULT_OCCURRENCES;
- String minOccurrences = RequirementData.MIN_OCCURRENCES;
+ String occurrences = RequirementDataDefinition.MAX_DEFAULT_OCCURRENCES;
+ String minOccurrences = RequirementDataDefinition.MIN_OCCURRENCES;
if (properties != null && properties.containsKey(GraphEdgePropertiesDictionary.SOURCE.getProperty())) {
source = (String) properties.get(GraphEdgePropertiesDictionary.SOURCE.getProperty());
@@ -898,8 +951,8 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
Edge edge = calculatedReq.right;
Map<String, Object> properties = titanGenericDao.getProperties(edge);
String source = null;
- String occurrences = RequirementData.MAX_DEFAULT_OCCURRENCES;
- String minOccurrences = RequirementData.MIN_OCCURRENCES;
+ String occurrences = RequirementDataDefinition.MAX_DEFAULT_OCCURRENCES;
+ String minOccurrences = RequirementDataDefinition.MIN_OCCURRENCES;
if (properties != null && properties.containsKey(GraphEdgePropertiesDictionary.SOURCE.getProperty())) {
source = (String) properties.get(GraphEdgePropertiesDictionary.SOURCE.getProperty());
@@ -943,8 +996,8 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
if (properties != null && properties.containsKey(GraphEdgePropertiesDictionary.SOURCE.getProperty())) {
source = (String) properties.get(GraphEdgePropertiesDictionary.SOURCE.getProperty());
}
- String minOccurrences = CapabilityData.MIN_OCCURRENCES;
- String occurrences = CapabilityData.MAX_OCCURRENCES;
+ String minOccurrences = CapabilityDataDefinition.MIN_OCCURRENCES;
+ String occurrences = CapabilityDataDefinition.MAX_OCCURRENCES;
if (properties != null && properties.containsKey(GraphEdgePropertiesDictionary.REQUIRED_OCCURRENCES.getProperty())) {
minOccurrences = (String) properties.get(GraphEdgePropertiesDictionary.REQUIRED_OCCURRENCES.getProperty());
}
@@ -982,8 +1035,8 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
if (properties != null && properties.containsKey(GraphEdgePropertiesDictionary.SOURCE.getProperty())) {
source = (String) properties.get(GraphEdgePropertiesDictionary.SOURCE.getProperty());
}
- String minOccurrences = CapabilityData.MIN_OCCURRENCES;
- String occurrences = CapabilityData.MAX_OCCURRENCES;
+ String minOccurrences = CapabilityDataDefinition.MIN_OCCURRENCES;
+ String occurrences = CapabilityDataDefinition.MAX_OCCURRENCES;
if (properties != null && properties.containsKey(GraphEdgePropertiesDictionary.REQUIRED_OCCURRENCES.getProperty())) {
minOccurrences = (String) properties.get(GraphEdgePropertiesDictionary.REQUIRED_OCCURRENCES.getProperty());
}
@@ -1021,8 +1074,8 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
log.trace("Creating calculated capability relation from component instance {} to capability {}", componentInstanceData.getUniqueId(), capabilityData.getUniqueId());
CapabilityData capabilityDataNode = new CapabilityData();
capabilityDataNode.setUniqueId(capabilityData.getUniqueId());
- String minOccurrences = CapabilityData.MIN_OCCURRENCES;
- String occurrences = CapabilityData.MAX_OCCURRENCES;
+ String minOccurrences = CapabilityDataDefinition.MIN_OCCURRENCES;
+ String occurrences = CapabilityDataDefinition.MAX_OCCURRENCES;
if (capabilityData.getMinOccurrences() != null) {
minOccurrences = capabilityData.getMinOccurrences();
}
@@ -1054,8 +1107,8 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
log.trace("Creating calculated capability relation from component instance {} to capability {}", compoInstId, capabilityData.getUniqueId());
CapabilityData capabilityDataNode = new CapabilityData();
capabilityDataNode.setUniqueId(capabilityData.getUniqueId());
- String minOccurrences = CapabilityData.MIN_OCCURRENCES;
- String occurrences = CapabilityData.MAX_OCCURRENCES;
+ String minOccurrences = CapabilityDataDefinition.MIN_OCCURRENCES;
+ String occurrences = CapabilityDataDefinition.MAX_OCCURRENCES;
if (capabilityData.getMinOccurrences() != null) {
minOccurrences = capabilityData.getMinOccurrences();
}
@@ -1220,7 +1273,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
// "_").toLowerCase();
dataDefinition.setName(logicalName);
if (dataDefinition.getNormalizedName() == null)
- dataDefinition.setNormalizedName(ValidationUtils.normaliseComponentInstanceName(logicalName));
+ dataDefinition.setNormalizedName(ValidationUtils.normalizeComponentInstanceName(logicalName));
dataDefinition.setUniqueId(UniqueIdBuilder.buildResourceInstanceUniuqeId(componentId, ciOriginComponentUid, dataDefinition.getNormalizedName()));
ComponentInstanceData resourceInstanceData = new ComponentInstanceData(dataDefinition);
@@ -1238,7 +1291,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
TitanOperationStatus status = node.right().value();
BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeDaoSystemError, "Remove Component Instance");
BeEcompErrorManager.getInstance().logBeDaoSystemError("Remove Component Instance");
- log.debug("Failed to delete component instance {}. Status is {}", componentInstanceUid, status);
+ log.debug("Failed to delete component instance {}. status is {}", componentInstanceUid, status);
return Either.right(status);
}
@@ -1280,11 +1333,18 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
return Either.right(status);
}
}
+
+ // delete associated properties
+ status = deleteAssociatedGroupInstances(componentInstanceUid);
+ if (status != TitanOperationStatus.OK) {
+ return Either.right(status);
+ }
+
Either<ComponentInstanceData, TitanOperationStatus> deleteRI = titanGenericDao.deleteNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ResourceInstance), componentInstanceUid, ComponentInstanceData.class);
if (deleteRI.isRight()) {
TitanOperationStatus deleteRiStatus = deleteRI.right().value();
- log.error("Failed to delete resource instance {}. Status is {}", componentInstanceUid, deleteRiStatus);
+ log.error("Failed to delete resource instance {}. status is {}", componentInstanceUid, deleteRiStatus);
return Either.right(deleteRiStatus);
}
@@ -1295,6 +1355,11 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
return Either.left(resourceInstance);
}
+ private TitanOperationStatus deleteAssociatedGroupInstances(String componentInstanceUid) {
+
+ return this.groupInstanceOperation.deleteAllGroupInstances(componentInstanceUid);
+ }
+
private TitanOperationStatus deleteAssociatedCapabilityInstances(String resourceInstanceId) {
TitanOperationStatus status = TitanOperationStatus.OK;
@@ -1326,7 +1391,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
if (artifactRes.isRight()) {
TitanOperationStatus status = artifactRes.right().value();
if (status != TitanOperationStatus.NOT_FOUND) {
- log.error("Failed to find artifacts of resource instance {}. Status is {}", resourceInstanceUid, status);
+ log.error("Failed to find artifacts of resource instance {}. status is {}", resourceInstanceUid, status);
return status;
}
} else {
@@ -1334,10 +1399,10 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
List<ImmutablePair<ArtifactData, GraphEdge>> artifactPairs = artifactRes.left().value();
for (ImmutablePair<ArtifactData, GraphEdge> pair : artifactPairs) {
String uniqueId = (String) pair.left.getUniqueId();
- Either<ArtifactData, TitanOperationStatus> removeArifactFromGraph = artifactOperation.removeArtifactOnGraph(resourceInstanceUid, uniqueId, NodeTypeEnum.ResourceInstance, resourceInstanceUid, true);
+ Either<ArtifactData, TitanOperationStatus> removeArifactFromGraph = artifactOperation.removeArtifactOnGraph(resourceInstanceUid, uniqueId, NodeTypeEnum.ResourceInstance, true);
if (removeArifactFromGraph.isRight()) {
TitanOperationStatus status = removeArifactFromGraph.right().value();
- log.error("Failed to delete artifact of resource instance {}. Status is {}", resourceInstanceUid, status);
+ log.error("Failed to delete artifact of resource instance {}. status is {}", resourceInstanceUid, status);
return status;
}
@@ -1404,7 +1469,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
if (relationsForTarget.isRight()) {
TitanOperationStatus status = relationsForTarget.right().value();
if (status != TitanOperationStatus.NOT_FOUND) {
- log.error("Failed to find the relationships of resource instance {}. Status is {}", resourceInstanceUid, status);
+ log.error("Failed to find the relationships of resource instance {}. status is {}", resourceInstanceUid, status);
return status;
}
} else {
@@ -1432,7 +1497,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
if (relationsForSource.isRight()) {
TitanOperationStatus status = relationsForSource.right().value();
if (status != TitanOperationStatus.NOT_FOUND) {
- log.error("Failed to find the relationships of resource instance " + resourceInstanceUid + ". status is " + status);
+ log.error("Failed to find the relationships of resource instance {}. status is {}", resourceInstanceUid, status);
return status;
}
} else {
@@ -1462,7 +1527,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
Either<RelationshipInstData, TitanOperationStatus> deleteNode = titanGenericDao.deleteNode(relationshipTypeImplData, RelationshipInstData.class);
if (deleteNode.isRight()) {
TitanOperationStatus status = deleteNode.right().value();
- log.error("Failed to delete relationship node {}. Status is {}", relationshipTypeImplData, status);
+ log.error("Failed to delete relationship node {}. status is {}", relationshipTypeImplData, status);
return status;
}
}
@@ -1495,7 +1560,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
Either<TitanVertex, TitanOperationStatus> riFrom = titanGenericDao.getVertexByProperty(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ResourceInstance), fromResInstanceUid);
if (riFrom.isRight()) {
- log.debug("Failed to fetch component instance {}. Error: {}", fromResInstanceUid, riFrom.right().value());
+ log.debug("Failed to fetch component instance {}. error {}", fromResInstanceUid, riFrom.right().value());
return Either.right(riFrom.right().value());
}
Iterator<Edge> edgeIter = riFrom.left().value().edges(Direction.OUT, GraphEdgeLabels.RELATIONSHIP_INST.getProperty());
@@ -1504,7 +1569,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
return Either.right(TitanOperationStatus.NOT_FOUND);
}
List<RelationshipInstData> deletedRelations = new ArrayList<>();
- List<String> vertexToDelete = new ArrayList<>();
+ Set<String> vertexToDelete = new HashSet<String>();
while (edgeIter.hasNext()) {
TitanEdge edge = (TitanEdge) edgeIter.next();
String name = (String) edge.property(GraphEdgePropertiesDictionary.NAME.getProperty()).value();
@@ -1531,7 +1596,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
// remove relation vertex
Either<RelationshipInstData, TitanOperationStatus> relationNode = titanGenericDao.deleteNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.RelationshipInst), relationVertexId, RelationshipInstData.class);
if (relationNode.isRight()) {
- log.debug("Failed to delete relation node with id {}. Error: {}", relationVertexId, relationNode.right().value());
+ log.debug("Failed to delete relation node with id {}. error {}", relationVertexId, relationNode.right().value());
return Either.right(relationNode.right().value());
}
RelationshipInstData deletedRelation = relationNode.left().value();
@@ -1555,7 +1620,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
Either<List<RelationshipInstData>, TitanOperationStatus> dissociateRes = disconnectResourcesInService(componentId, nodeType, requirementDef);
if (dissociateRes.isRight()) {
TitanOperationStatus status = dissociateRes.right().value();
- log.error("Failed to dissociate resource instance " + fromResInstanceUid + " from resource instance " + toResInstanceUid + " in service " + componentId + ". status is " + status);
+ log.error("Failed to dissociate resource instance {} from resource instance {} in service {}. status is {}", fromResInstanceUid, toResInstanceUid, componentId, status);
BeEcompErrorManager.getInstance().logBeDaoSystemError("dissociateComponentInstances");
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
return result;
@@ -1564,13 +1629,23 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
if (!updateCalculatedCapReqResult.equals(StorageOperationStatus.OK)) {
BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeDaoSystemError, "dissociateComponentInstances");
BeEcompErrorManager.getInstance().logBeDaoSystemError("dissociateComponentInstances");
- log.debug("Failed to dissociate component instances {}. Status is {}", requirementDef, updateCalculatedCapReqResult);
+ log.debug("Failed to dissociate component instances. {}. status is {}", requirementDef, updateCalculatedCapReqResult);
result = Either.right(updateCalculatedCapReqResult);
return result;
}
- // RelationshipInstData relationshipInstData =
- // dissociateRes.left().value();
+ StorageOperationStatus status;
+ status = updateCustomizationUUID(requirementDef.getFromNode());
+ if (status != StorageOperationStatus.OK) {
+ result = Either.right(status);
+ return result;
+ }
+ status = updateCustomizationUUID(requirementDef.getToNode());
+ if (status != StorageOperationStatus.OK) {
+ result = Either.right(status);
+ return result;
+ }
+
List<RelationshipInstData> relationshipInstData = dissociateRes.left().value();
RequirementCapabilityRelDef capabilityRelDef = buildCapabilityResult(fromResInstanceUid, toResInstanceUid, requirement, relationshipInstData);
@@ -1612,12 +1687,12 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
private StorageOperationStatus updateRequirementEdges(GraphEdgeLabels requirmentNewLabel, GraphEdgeLabels requirmentCurrentLabel, RequirementAndRelationshipPair pair, String requirementOwnerId) {
Either<TitanVertex, TitanOperationStatus> reqOwnerRI = titanGenericDao.getVertexByProperty(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ResourceInstance), requirementOwnerId);
if (reqOwnerRI.isRight()) {
- log.debug("Failed to fetch requirment Owner by Id {}. Error: {}", requirementOwnerId, reqOwnerRI.right().value());
+ log.debug("Failed to fetch requirment Owner by Id {} error {}", requirementOwnerId, reqOwnerRI.right().value());
return DaoStatusConverter.convertTitanStatusToStorageStatus(reqOwnerRI.right().value());
}
Iterator<Edge> edgeIter = reqOwnerRI.left().value().edges(Direction.OUT, requirmentCurrentLabel.name(), requirmentNewLabel.name());
if (edgeIter == null) {
- log.debug("No edges with label {} for woner RI {}", requirmentCurrentLabel, requirementOwnerId);
+ log.debug("No edges with label {} for owner RI {}", requirmentCurrentLabel, requirementOwnerId);
return StorageOperationStatus.GENERAL_ERROR;
}
boolean associate = requirmentNewLabel.equals(GraphEdgeLabels.CALCULATED_REQUIREMENT_FULLFILLED) ? true : false;
@@ -1635,7 +1710,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
String leftOccurrences = (String) titanGenericDao.getProperty(edge, GraphEdgePropertiesDictionary.LEFT_OCCURRENCES.getProperty());
String requiredOccurrencesNew = "0";
- String leftOccurrencesNew = RequirementData.MAX_DEFAULT_OCCURRENCES;
+ String leftOccurrencesNew = RequirementDataDefinition.MAX_DEFAULT_OCCURRENCES;
if (requiredOccurrences != null) {
Integer iOccurrences = Integer.parseInt(requiredOccurrences);
if (associate) {
@@ -1646,7 +1721,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
} else {
String reqMinOccurrences = (String) titanGenericDao.getProperty(reqVertex, GraphPropertiesDictionary.MIN_OCCURRENCES.getProperty());
if (reqMinOccurrences == null) {
- reqMinOccurrences = RequirementData.MIN_OCCURRENCES;
+ reqMinOccurrences = RequirementDataDefinition.MIN_OCCURRENCES;
}
if (Integer.parseInt(reqMinOccurrences) > iOccurrences) {
iOccurrences++;
@@ -1657,7 +1732,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
Map<String, Object> properties = titanGenericDao.getProperties(edge);
properties.put(GraphEdgePropertiesDictionary.REQUIRED_OCCURRENCES.getProperty(), requiredOccurrencesNew);
- if (leftOccurrences != null && !leftOccurrences.equals(RequirementData.MAX_OCCURRENCES)) {
+ if (leftOccurrences != null && !leftOccurrences.equals(RequirementDataDefinition.MAX_OCCURRENCES)) {
Integer iOccurrences = Integer.parseInt(leftOccurrences);
if (associate) {
if (iOccurrences > 0) {
@@ -1694,7 +1769,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
private StorageOperationStatus updateCapabiltyEdges(GraphEdgeLabels capabiltyNewLabel, GraphEdgeLabels capabiltyCurrentLabel, RequirementAndRelationshipPair pair, String capabiltyOwnerId) {
Either<TitanVertex, TitanOperationStatus> capOwnerRI = titanGenericDao.getVertexByProperty(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ResourceInstance), capabiltyOwnerId);
if (capOwnerRI.isRight()) {
- log.debug("Failed to fetch requirment Owner by Id {}. Error: {}", capabiltyOwnerId, capOwnerRI.right().value());
+ log.debug("Failed to fetch requirment Owner by Id {}. error {}", capabiltyOwnerId, capOwnerRI.right().value());
return DaoStatusConverter.convertTitanStatusToStorageStatus(capOwnerRI.right().value());
}
Iterator<Edge> edgeIter = capOwnerRI.left().value().edges(Direction.OUT, capabiltyCurrentLabel.name(), capabiltyNewLabel.name());
@@ -1719,7 +1794,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
String leftOccurrences = (String) titanGenericDao.getProperty(edge, GraphEdgePropertiesDictionary.LEFT_OCCURRENCES.getProperty());
String requiredOccurrencesNew = "0";
- String leftOccurrencesNew = CapabilityData.MAX_OCCURRENCES;
+ String leftOccurrencesNew = CapabilityDataDefinition.MAX_OCCURRENCES;
if (requiredOccurrences != null) {
Integer iOccurrences = Integer.parseInt(requiredOccurrences);
if (associate) {
@@ -1730,7 +1805,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
} else {
String reqMinOccurrences = (String) titanGenericDao.getProperty(capVertex, GraphPropertiesDictionary.MIN_OCCURRENCES.getProperty());
if (reqMinOccurrences == null) {
- reqMinOccurrences = CapabilityData.MIN_OCCURRENCES;
+ reqMinOccurrences = CapabilityDataDefinition.MIN_OCCURRENCES;
}
if (Integer.parseInt(reqMinOccurrences) > iOccurrences) {
iOccurrences++;
@@ -1741,7 +1816,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
Map<String, Object> properties = titanGenericDao.getProperties(edge);
properties.put(GraphEdgePropertiesDictionary.REQUIRED_OCCURRENCES.getProperty(), requiredOccurrencesNew);
- if (leftOccurrences != null && !leftOccurrences.equals(CapabilityData.MAX_OCCURRENCES)) {
+ if (leftOccurrences != null && !leftOccurrences.equals(CapabilityDataDefinition.MAX_OCCURRENCES)) {
Integer iOccurrences = Integer.parseInt(leftOccurrences);
if (associate) {
if (iOccurrences > 0) {
@@ -1806,24 +1881,24 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
relationship = relationPair.getRelationship().getType();
}
- if (log.isDebugEnabled()) {
- log.debug("Going to associate resource instance {} to resource instance {} under component {}. Requirement is {}.", fromResInstanceUid, toResInstanceUid, componentId, requirement);
- }
+ log.debug("Going to associate resource instance {} to resource instance {} under component {}. Requirement is {}.", fromResInstanceUid, toResInstanceUid, componentId, requirement);
Either<ComponentInstanceData, TitanOperationStatus> fromResourceInstDataRes = findMandatoryResourceInstData(fromResInstanceUid);
if (fromResourceInstDataRes.isRight()) {
TitanOperationStatus status = fromResourceInstDataRes.right().value();
- log.error("Failed to find resource instance {}. Status is {}", fromResInstanceUid, status);
+ log.error("Failed to find resource instance {}. status is {}", fromResInstanceUid, status);
return Either.right(status);
}
- ComponentInstanceData fromResourceInstanceData = fromResourceInstDataRes.left().value();
+ ComponentInstanceData fromCI = fromResourceInstDataRes.left().value();
+ ComponentInstanceData fromResourceInstanceData = fromCI;
Either<ComponentInstanceData, TitanOperationStatus> toResourceInstDataRes = findMandatoryResourceInstData(toResInstanceUid);
if (toResourceInstDataRes.isRight()) {
TitanOperationStatus status = toResourceInstDataRes.right().value();
- log.error("Failed to find resource instance " + toResInstanceUid + ". status is " + status);
+ log.error("Failed to find resource instance {}. status is {}", toResInstanceUid, status);
return Either.right(status);
}
- ComponentInstanceData toResourceInstanceData = toResourceInstDataRes.left().value();
+ ComponentInstanceData toCI = toResourceInstDataRes.left().value();
+ ComponentInstanceData toResourceInstanceData = toCI;
// THE component NodeTypeEnum should be sent
TitanOperationStatus isResourceInstOfService = verifyResourceInstanceUnderComponent(nodeType, componentId, fromResInstanceUid);
if (isResourceInstOfService != TitanOperationStatus.OK) {
@@ -1837,24 +1912,24 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
Either<ImmutablePair<RelationshipTypeData, String>, TitanOperationStatus> isValidRes = validateRequirementVsCapability(fromResourceInstanceData, toResourceInstanceData, requirement, relationship, relationPair);
if (isValidRes.isRight()) {
TitanOperationStatus status = isValidRes.right().value();
- log.error("Failed to validate requirement {} between resource instance {} to resource instance {}. Status is {}", requirement, fromResInstanceUid, toResInstanceUid, status);
+ log.error("Failed to validate requirement {} between resource instance {} to resource instance {}. status is {}", requirement, fromResInstanceUid, toResInstanceUid, status);
return Either.right(status);
}
RelationshipTypeData relationshipTypeData = isValidRes.left().value().getKey();
String capabilityName = isValidRes.left().value().getValue();
RelationshipInstData relationshipInstData = buildRelationshipInstData(fromResInstanceUid, requirement, relationshipTypeData, relationPair);
- Either<RelationshipInstData, TitanOperationStatus> createNode = createRelationshipInstData(fromResourceInstDataRes.left().value(), relationshipInstData, relationshipTypeData, requirement);
+ Either<RelationshipInstData, TitanOperationStatus> createNode = createRelationshipInstData(fromCI, relationshipInstData, relationshipTypeData, requirement);
if (createNode.isRight()) {
return Either.right(createNode.right().value());
}
RelationshipInstData createdRelInstData = createNode.left().value();
- Either<GraphRelation, TitanOperationStatus> associateResInst = associateRelationshipInstToTarget(toResourceInstDataRes.left().value(), requirement, capabilityName, createdRelInstData);
+ Either<GraphRelation, TitanOperationStatus> associateResInst = associateRelationshipInstToTarget(toCI, requirement, capabilityName, createdRelInstData);
if (associateResInst.isRight()) {
TitanOperationStatus status = associateResInst.right().value();
- log.error("Failed to associate relationship instance {} to target node {}. Status is {}", createdRelInstData.getUniqueId(), toResInstanceUid, status);
+ log.error("Failed to associate relationship instance {} to target node {}. status is {}", createdRelInstData.getUniqueId(), toResInstanceUid, status);
return Either.right(status);
}
@@ -1868,7 +1943,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
if (parentNode.isRight()) {
TitanOperationStatus status = parentNode.right().value();
- log.error("Failed to find the service associated to the resource instance {}. Status is {}", resInstanceUid, status);
+ log.error("Failed to find the service associated to the resource instance {}. status is {}", resInstanceUid, status);
return status;
}
@@ -1881,7 +1956,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
} else {
BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeIncorrectServiceError, "Resource Instance - verifyResourceInstanceUnderComponent", containerComponentId);
BeEcompErrorManager.getInstance().logBeIncorrectComponentError("Resource Instance - verifyResourceInstanceUnderComponent", containerNodeType.getName(), containerComponentId);
- log.debug("The provided component id {} is not equal to the component ({}) which associated to resource instance {}.", containerComponentId, uniqueId, resInstanceUid);
+ log.debug("The provided component id {} is not equal to the component ({}) which associated to resource instance {}", containerComponentId, uniqueId, resInstanceUid);
return TitanOperationStatus.INVALID_ID;
}
@@ -1919,7 +1994,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
Map<String, Object> props = new HashMap<String, Object>();
props.put(GraphPropertiesDictionary.NAME.getProperty(), capabilityName);
Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(relInstData, toResInstance, GraphEdgeLabels.CAPABILITY_NODE, props);
- log.debug("After creating relation between relationship instance {} to target node {}", relInstData.getUniqueId(), toResInstance.getUniqueId());
+ log.debug("After creatingrelation between relationship instance {} to target node {}", relInstData.getUniqueId(), toResInstance.getUniqueId());
return createRelation;
@@ -1950,7 +2025,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(resInstance, createdRelationshipInst, GraphEdgeLabels.RELATIONSHIP_INST, properties);
if (createRelation.isRight()) {
TitanOperationStatus status = createRelation.right().value();
- log.error("Failed to associate resource instance " + resInstance.getUniqueIdKey() + " to relationship instance " + createdRelationshipInst.getUniqueId() + ". status is " + status);
+ log.error("Failed to associate resource instance {} to relationship instance {}. status is {}", resInstance.getUniqueIdKey(), createdRelationshipInst.getUniqueId(), status);
return Either.right(status);
}
@@ -1984,15 +2059,13 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
}
Either<RequirementDefinition, TitanOperationStatus> requirementDefinitionE = requirementOperation.getRequirement(relationPair.getRequirementUid());
if (requirementDefinitionE.isRight()) {
- log.error("The requirement cannot be found {}" , relationPair.getRequirementUid());
+ log.error("The requirement cannot be found {}", relationPair.getRequirementUid());
return Either.right(TitanOperationStatus.ILLEGAL_ARGUMENT);
}
RequirementDefinition requirementDefinition = requirementDefinitionE.left().value();
String fetchedRequirementRelationship = requirementDefinition.getRelationship();
String fetchedRequirementCapability = requirementDefinition.getCapability();
- // TODO temporary remove of capability sources validation - uncomment
- // after alignment
// String fetchedRequirementNodeName = requirementDefinition.getNode();
TitanOperationStatus status = validateAvailableRequirement(fromResInstance, relationPair);
@@ -2010,8 +2083,6 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
log.error("Failed to fetch the origin resource for capabilty resource instance with id {}, error {}", relationPair.getCapabilityOwnerId(), originCapabilty.right().value());
return Either.right(originCapabilty.right().value());
}
- // TODO temporary remove of capability sources validation - uncomment
- // after alignment
// String originCapabId =
// originCapabilty.left().value().getComponentInstDataDefinition().getComponentUid();
@@ -2027,13 +2098,11 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
CapabilityDefinition capabilityDefinition = capabilityDefinitionE.left().value();
String capabilityName = requirement;
- if (log.isDebugEnabled()) {
- log.debug("The capability {} of resource {} appropriates to requiremt {} on resource {}", capabilityDefinition, toResourceUid, requirement, fromResourceUid);
- }
+ log.debug("The capability {} of resource {} appropriates to requirement {} on resource {}", capabilityDefinition, toResourceUid, requirement, fromResourceUid);
String capabilityType = capabilityDefinition.getType();
if (false == fetchedRequirementCapability.equals(capabilityType)) {
- log.error("The capability type in the requirement ({}) does not equal to the capability on the resource {}({})", fetchedRequirementCapability, toResourceUid, capabilityType);
+ log.error("The capability type in the requirement ({}) does not equal to the capability on the resource {} ({})", fetchedRequirementCapability, toResourceUid, capabilityType);
return Either.right(TitanOperationStatus.MATCH_NOT_FOUND);
}
@@ -2054,7 +2123,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
private TitanOperationStatus validateAvailableRequirement(ComponentInstanceData fromResInstance, RequirementAndRelationshipPair relationPair) {
Either<TitanVertex, TitanOperationStatus> fromRi = titanGenericDao.getVertexByProperty(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ResourceInstance), fromResInstance.getUniqueId());
if (fromRi.isRight()) {
- log.debug("Failed to fetch component instance {}. Error: {}", fromResInstance.getUniqueId(), fromRi.right().value());
+ log.debug("Failed to fetch component instance {} error {}", fromResInstance.getUniqueId(), fromRi.right().value());
return fromRi.right().value();
}
Iterator<Edge> edgeIter = fromRi.left().value().edges(Direction.OUT, GraphEdgeLabels.CALCULATED_REQUIREMENT.name());
@@ -2071,7 +2140,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
String ownerIdOnEdge = (String) edge.value(GraphEdgePropertiesDictionary.OWNER_ID.getProperty());
if (ownerIdOnEdge.equals(relationPair.getRequirementOwnerId())) {
String leftOccurrences = (String) titanGenericDao.getProperty(edge, GraphEdgePropertiesDictionary.LEFT_OCCURRENCES.getProperty());
- if (leftOccurrences != null && !leftOccurrences.equals(RequirementData.MAX_OCCURRENCES)) {
+ if (leftOccurrences != null && !leftOccurrences.equals(RequirementDataDefinition.MAX_OCCURRENCES)) {
Integer leftIntValue = Integer.parseInt(leftOccurrences);
if (leftIntValue > 0) {
exist = true;
@@ -2106,7 +2175,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
String ownerIdOnEdge = (String) edge.value(GraphEdgePropertiesDictionary.OWNER_ID.getProperty());
if (ownerIdOnEdge.equals(relationPair.getCapabilityOwnerId())) {
String leftOccurrences = (String) titanGenericDao.getProperty(edge, GraphEdgePropertiesDictionary.LEFT_OCCURRENCES.getProperty());
- if (leftOccurrences != null && !leftOccurrences.equals(CapabilityData.MAX_OCCURRENCES)) {
+ if (leftOccurrences != null && !leftOccurrences.equals(CapabilityDataDefinition.MAX_OCCURRENCES)) {
Integer leftIntValue = Integer.parseInt(leftOccurrences);
if (leftIntValue > 0) {
exist = true;
@@ -2150,7 +2219,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
List<ResourceMetadataData> resourcesPathList = new ArrayList<ResourceMetadataData>();
TitanOperationStatus status = resourceOperation.findResourcesPathRecursively(resourceUid, resourcesPathList);
if (status != TitanOperationStatus.OK) {
- log.error("Failed to find the parent list of resource {}. Status is {}", resourceUid, status);
+ log.error("Failed to find the parent list of resource {}. status is {}", resourceUid, status);
return status;
}
@@ -2213,7 +2282,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
if (updateRes.isRight()) {
TitanOperationStatus status = updateRes.right().value();
- log.error("Failed to update resource instance {}. Status is {}", resourceInstanceUid, status);
+ log.error("Failed to update resource instance {}. status is {}", resourceInstanceUid, status);
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
return result;
}
@@ -2256,13 +2325,24 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
instance.setPropertyValueCounter(resourceInstance.getPropertyValueCounter());
instance.setAttributeValueCounter(resourceInstance.getAttributeValueCounter());
instance.setInputValueCounter(resourceInstance.getInputValueCounter());
+
+ boolean isNeedGenerate = isNeedGenerateCustomizationUUID(resourceInstance, currentInst);
+ if (isNeedGenerate) {
+ generateCustomizationUUID(instance);
+ } else {
+ instance.setCustomizationUUID(resourceInstance.getCustomizationUUID());
+ }
return instance;
}
+ private boolean isNeedGenerateCustomizationUUID(ComponentInstance resourceInstance, ComponentInstanceData currentInst) {
+ return !currentInst.getComponentInstDataDefinition().getName().equals(resourceInstance.getName());
+ }
+
private void printDiff(ComponentInstanceData currentInst, ComponentInstance resourceInstance) {
log.debug("The current Resource Instance details are : {}", currentInst);
- log.debug("The received Resource Instance details for update are : {}", resourceInstance);
+ log.debug("The received Resource Instance details for update are :{}", resourceInstance);
}
@@ -2274,11 +2354,11 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
public Either<ComponentInstance, TitanOperationStatus> updateResourceInstanceInService(String serviceId, String resourceInstanceUid, ComponentInstance resourceInstance) {
- log.debug("Going to update resource instance {}. Properties are {}", resourceInstanceUid, resourceInstance);
+ log.trace("Going to update resource instance {}. Properies are {}", resourceInstanceUid, resourceInstance);
Either<ComponentInstanceData, TitanOperationStatus> findInstRes = findResourceInstance(resourceInstanceUid);
if (findInstRes.isRight()) {
TitanOperationStatus status = findInstRes.right().value();
- log.error("Failed to find resource instance {}. Status is {}", resourceInstanceUid, status);
+ log.error("Failed to find resource instance {}. status is {}", resourceInstanceUid, status);
return Either.right(status);
}
@@ -2294,7 +2374,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
Either<ComponentInstanceData, TitanOperationStatus> updateNodeRes = titanGenericDao.updateNode(resourceInstanceData, ComponentInstanceData.class);
if (updateNodeRes.isRight()) {
TitanOperationStatus status = updateNodeRes.right().value();
- log.error("Failed to update resource instance {}. Status is {}", resourceInstanceUid, status);
+ log.error("Failed to update resource instance {}. status is {}", resourceInstanceUid, status);
return Either.right(status);
}
@@ -2319,7 +2399,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
if (resInstancesOfService.isRight()) {
TitanOperationStatus status = resInstancesOfService.right().value();
if (status != TitanOperationStatus.NOT_FOUND) {
- log.error("Failed to find resource instances of service {}. Status is {}", componentId, status);
+ log.error("Failed to find resource instances of service {}. status is {}", componentId, status);
}
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
return result;
@@ -2348,7 +2428,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
if (updateRes.isRight()) {
TitanOperationStatus status = updateRes.right().value();
- log.error("Failed to find component instance name {}. Status is {}", componentInstName, status);
+ log.error("Failed to find component instance name {}. status is {}", componentInstName, status);
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
return result;
}
@@ -2422,7 +2502,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
Either<ComponentMetadataData, TitanOperationStatus> componentRes = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(containerNodeType), componentId, ComponentMetadataData.class);
if (componentRes.isRight()) {
TitanOperationStatus status = componentRes.right().value();
- log.error("Failed to find component {}. Status is {}", componentId, status);
+ log.error("Failed to find component {}. status is {}", componentId, status);
return Either.right(status);
}
@@ -2440,7 +2520,8 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
if (resourceInstances != null && false == resourceInstances.isEmpty()) {
Map<String, Map<String, CapabilityDefinition>> compInstCapabilities = new HashMap<String, Map<String, CapabilityDefinition>>();
Map<String, Map<String, RequirementDefinition>> compInstReq = new HashMap<String, Map<String, RequirementDefinition>>();
- Map<String, Map<String, ArtifactDefinition>> compInstArtifacts = new HashMap<String, Map<String, ArtifactDefinition>>();
+ Map<String, Map<String, ArtifactDefinition>> compInstDeploymentArtifacts = new HashMap<String, Map<String, ArtifactDefinition>>();
+ Map<String, Map<String, ArtifactDefinition>> compInstInformationalArtifacts = new HashMap<String, Map<String, ArtifactDefinition>>();
Map<String, Component> compInstOriginsMap = new HashMap<String, Component>();
for (ImmutablePair<ComponentInstanceData, GraphEdge> immutablePair : resourceInstances) {
@@ -2451,7 +2532,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
ComponentInstance resourceInstance = new ComponentInstance(resourceInstanceData.getComponentInstDataDefinition());
- TitanOperationStatus status = getFullComponentInstance(compInstCapabilities, compInstReq, compInstArtifacts, compInstOriginsMap, resourceInstance, compInstNodeType);
+ TitanOperationStatus status = getFullComponentInstance(compInstCapabilities, compInstReq, compInstDeploymentArtifacts, compInstOriginsMap, resourceInstance, compInstNodeType, compInstInformationalArtifacts);
if (status != TitanOperationStatus.OK) {
return Either.right(status);
}
@@ -2507,11 +2588,11 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
if (relationshipsRes.isRight()) {
status = relationshipsRes.right().value();
- log.debug("After fetching all reslationships of resource instance {}. Status is {}", resourceInstanceUid, status);
+ log.debug("After fetching all reslationships of resource instance {}. status is {}", resourceInstanceUid, status);
if (status == TitanOperationStatus.NOT_FOUND) {
return Either.left(requirementsResult);
} else {
- log.error("Failed to find relationhips of resource instance {}. Status is {}", resourceInstanceUid, status);
+ log.error("Failed to find relationhips of resource instance {}. status is {}", resourceInstanceUid, status);
return Either.right(status);
}
}
@@ -2545,11 +2626,11 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
if (relationshipsRes.isRight()) {
status = relationshipsRes.right().value();
- log.debug("After fetching all reslationships of resource instance {}. Status is {}", resourceInstanceUid, status);
+ log.debug("After fetching all reslationships of resource instance {}. status is {}", resourceInstanceUid, status);
if (status == TitanOperationStatus.NOT_FOUND) {
return Either.left(requirementsResult);
} else {
- log.error("Failed to find relationhips of resource instance {}. Status is {}", resourceInstanceUid, status);
+ log.error("Failed to find relationhips of resource instance {}. status is {}", resourceInstanceUid, status);
return Either.right(status);
}
}
@@ -2576,10 +2657,11 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
public Either<ComponentInstance, StorageOperationStatus> getFullComponentInstance(ComponentInstance componentInstance, NodeTypeEnum compInstNodeType) {
Map<String, Map<String, CapabilityDefinition>> compInstCapabilities = new HashMap<String, Map<String, CapabilityDefinition>>();
Map<String, Map<String, RequirementDefinition>> compInstReq = new HashMap<String, Map<String, RequirementDefinition>>();
- Map<String, Map<String, ArtifactDefinition>> compInstArtifacts = new HashMap<String, Map<String, ArtifactDefinition>>();
+ Map<String, Map<String, ArtifactDefinition>> compInstDeploymentArtifacts = new HashMap<String, Map<String, ArtifactDefinition>>();
+ Map<String, Map<String, ArtifactDefinition>> compInstInformationalArtifacts = new HashMap<String, Map<String, ArtifactDefinition>>();
Map<String, Component> compInstOrigins = new HashMap<String, Component>();
- TitanOperationStatus fullResourceInstance = getFullComponentInstance(compInstCapabilities, compInstReq, compInstArtifacts, compInstOrigins, componentInstance, compInstNodeType);
+ TitanOperationStatus fullResourceInstance = getFullComponentInstance(compInstCapabilities, compInstReq, compInstDeploymentArtifacts, compInstOrigins, componentInstance, compInstNodeType, compInstInformationalArtifacts);
if (!fullResourceInstance.equals(TitanOperationStatus.OK)) {
log.debug("failed to get full data of resource instance. error: {}", fullResourceInstance);
return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(fullResourceInstance));
@@ -2588,7 +2670,8 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
}
private TitanOperationStatus getFullComponentInstance(Map<String, Map<String, CapabilityDefinition>> compInstCapabilities, Map<String, Map<String, RequirementDefinition>> compInstReq,
- Map<String, Map<String, ArtifactDefinition>> compInstArtifacts, Map<String, Component> compInstOrigins, ComponentInstance compInst, NodeTypeEnum compInstNodeType) {
+ Map<String, Map<String, ArtifactDefinition>> compInstDeploymentArtifacts, Map<String, Component> compInstOrigins, ComponentInstance compInst, NodeTypeEnum compInstNodeType,
+ Map<String, Map<String, ArtifactDefinition>> compInstInformationalArtifacts) {
Component component = null;
ComponentOperation componentOperation = getComponentOperation(compInstNodeType);
String componentUid = compInst.getComponentUid();
@@ -2649,20 +2732,110 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
}
- capStatus = setCompInstDeploymentArtifactsFromGraph(compInstArtifacts, componentUid, compInst);
+ capStatus = setCompInstDeploymentArtifactsFromGraph(compInstDeploymentArtifacts, componentUid, compInst);
+ if (capStatus != StorageOperationStatus.OK) {
+ log.debug("Failed to find resource deployment artifacts of resource {}. status is {}", componentName, capStatus);
+
+ }
+
+ capStatus = setCompInstInformationalArtifactsResourceFromGraph(compInstInformationalArtifacts, componentUid, compInst);
if (capStatus != StorageOperationStatus.OK) {
log.debug("Failed to find resource deployment artifacts of resource {}. status is {}", componentName, capStatus);
}
- capStatus = setCompInstArtifactsFromGraph(compInst);
+ capStatus = setCompInstDeploymentArtifactsFromGraph(compInst);
if (capStatus != StorageOperationStatus.OK) {
log.debug("Failed to find resource deployment artifacts of resource instance {} . status is {}", compInst.getName(), capStatus);
}
+
+ capStatus = setCompInstInformationaltArtifactsFromGraph(compInst);
+ if (capStatus != StorageOperationStatus.OK) {
+ log.debug("Failed to find resource informational artifacts of resource instance {} . status is {}", compInst.getName(), capStatus);
+ }
+
+ capStatus = setGroupInstFromGraph(compInst);
+ if (capStatus != StorageOperationStatus.OK) {
+ log.debug("Failed to find resource groups of resource instance {} . status is {}", compInst.getName(), capStatus);
+ }
return TitanOperationStatus.OK;
}
- protected StorageOperationStatus setCompInstArtifactsFromGraph(ComponentInstance resourceInstance) {
+ private StorageOperationStatus setCompInstInformationaltArtifactsFromGraph(ComponentInstance resourceInstance) {
+ Map<String, ArtifactDefinition> informationalArtifacts = null;
+ if (resourceInstance.getArtifacts() == null) {
+ informationalArtifacts = new HashMap<String, ArtifactDefinition>();
+ } else {
+ informationalArtifacts = new HashMap<String, ArtifactDefinition>(resourceInstance.getArtifacts());
+ }
+
+ Either<Map<String, ArtifactDefinition>, StorageOperationStatus> result = artifactOperation.getArtifacts(resourceInstance.getUniqueId(), NodeTypeEnum.ResourceInstance, true, ArtifactGroupTypeEnum.INFORMATIONAL.getType());
+ if (result.isRight()) {
+ StorageOperationStatus status = result.right().value();
+ if (status != StorageOperationStatus.NOT_FOUND) {
+ return status;
+ }
+ } else {
+ informationalArtifacts.putAll(result.left().value());
+ }
+
+ resourceInstance.setArtifacts(informationalArtifacts);
+ return StorageOperationStatus.OK;
+ }
+
+ private StorageOperationStatus setGroupInstFromGraph(ComponentInstance compInst) {
+ List<GroupInstance> groupInstances = null;
+
+ Either<List<GroupInstance>, StorageOperationStatus> result = groupInstanceOperation.getAllGroupInstances(compInst.getUniqueId(), NodeTypeEnum.ResourceInstance);
+ if (result.isRight()) {
+ StorageOperationStatus status = result.right().value();
+ if (status != StorageOperationStatus.NOT_FOUND) {
+ return status;
+ } else {
+
+ return StorageOperationStatus.OK;
+ }
+ }
+
+ groupInstances = result.left().value();
+ compInst.setGroupInstances(groupInstances);
+
+ return StorageOperationStatus.OK;
+ }
+
+ private StorageOperationStatus setCompInstInformationalArtifactsResourceFromGraph(Map<String, Map<String, ArtifactDefinition>> resourcesInformationalArtifacts, String componentUid, ComponentInstance resourceInstance) {
+
+ if (resourcesInformationalArtifacts.containsKey(componentUid)) {
+ resourceInstance.setArtifacts(resourcesInformationalArtifacts.get(componentUid));
+ return StorageOperationStatus.OK;
+ }
+
+ Either<Map<String, ArtifactDefinition>, StorageOperationStatus> result = artifactOperation.getArtifacts(componentUid, NodeTypeEnum.Resource, true, ArtifactGroupTypeEnum.INFORMATIONAL.getType());
+ if (result.isRight()) {
+ StorageOperationStatus status = result.right().value();
+ if (status != StorageOperationStatus.NOT_FOUND) {
+ return status;
+ } else {
+ return StorageOperationStatus.OK;
+ }
+ }
+ Map<String, ArtifactDefinition> artifacts = result.left().value();
+ if (!artifacts.isEmpty()) {
+ Map<String, ArtifactDefinition> tempArtifacts = new HashMap<>(artifacts);
+ for (Entry<String, ArtifactDefinition> artifact : artifacts.entrySet()) {
+ if (!artifact.getValue().checkEsIdExist()) {
+ tempArtifacts.remove(artifact.getKey());
+ }
+ }
+ resourceInstance.setArtifacts(tempArtifacts);
+ resourcesInformationalArtifacts.put(componentUid, tempArtifacts);
+ }
+
+ return StorageOperationStatus.OK;
+
+ }
+
+ protected StorageOperationStatus setCompInstDeploymentArtifactsFromGraph(ComponentInstance resourceInstance) {
Map<String, ArtifactDefinition> deploymentArtifacts = null;
if (resourceInstance.getDeploymentArtifacts() == null) {
@@ -2691,7 +2864,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
log.debug("failed to get heat parameters values for heat artifact {}", artifact.getUniqueId());
return heatParamsForEnv.right().value();
} else {
- artifact.setHeatParameters(heatParamsForEnv.left().value());
+ artifact.setListHeatParameters(heatParamsForEnv.left().value());
}
}
}
@@ -2706,17 +2879,6 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
}
- // resourceInstance) {
- // ArrayList<HeatParameterDefinition>();
- // heatEnvArtifact.getGeneratedFromId());
- // Either<List<ImmutablePair<HeatParameterValueData, GraphEdge>>,
- // TitanOperationStatus> heatEnvValuesWithEdges = titanGenericDao
- // !heatEnvValuesWithEdges.right().value().equals(TitanOperationStatus.NOT_FOUND))
- // {
- // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- // heatEnvValuesWithEdges.left().value()){
- // pair.right.getProperties().get(GraphEdgePropertiesDictionary.NAME.getProperty());
- // heatValuesMap.get(parameter.getName());
private Either<List<ImmutablePair<ComponentInstanceData, GraphEdge>>, TitanOperationStatus> getAllComponentInstanceFromGraph(String componentId, NodeTypeEnum containerNodeType, boolean withEdges) {
if (log.isDebugEnabled())
log.debug("Going to fetch all resource instances nodes in graph associate to component {}", componentId);
@@ -2757,7 +2919,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
if (targetNodeRes.isRight()) {
TitanOperationStatus status = targetNodeRes.right().value();
- log.error("Failed to find the target node of relationship inst {}. Status is {}", relationshipInstData, status);
+ log.error("Failed to find the target node of relationship inst {}. status is {}", relationshipInstData, status);
return status;
}
@@ -2782,7 +2944,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
if (sourceNodeRes.isRight()) {
TitanOperationStatus status = sourceNodeRes.right().value();
- log.error("Failed to find the source node of relationship inst {}. Status is {}", relationshipInstData, status);
+ log.error("Failed to find the source node of relationship inst {}. status is {}", relationshipInstData, status);
return status;
}
@@ -2816,7 +2978,6 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
requirementCapabilityRelDef.setToNode(targetResourceUid);
String sourceUid = sourceToRel.getKey();
requirementCapabilityRelDef.setFromNode(sourceUid);
-
List<RequirementAndRelationshipPair> relationships = new ArrayList<RequirementAndRelationshipPair>();
populateRelationships(sourceToRel, relationships);
@@ -2860,6 +3021,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
pair.setCapabilityUid(relationshipInstData.getCapabiltyId());
pair.setRequirementOwnerId(relationshipInstData.getRequirementOwnerId());
pair.setRequirementUid(relationshipInstData.getRequirementId());
+ pair.setId(relationshipInstData.getUniqueId());
relationships.add(pair);
}
}
@@ -2874,16 +3036,16 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
}
@Override
- public Either<RequirementCapabilityRelDef, StorageOperationStatus> associateResourceInstances(String componentId, NodeTypeEnum nodeType, RequirementCapabilityRelDef relation, boolean inTransaction) {
+ public Either<RequirementCapabilityRelDef, StorageOperationStatus> associateResourceInstances(String componentId, NodeTypeEnum nodeType, RequirementCapabilityRelDef relation, boolean inTransaction, boolean isClone) {
Either<RequirementCapabilityRelDef, StorageOperationStatus> result = null;
try {
- Either<RequirementCapabilityRelDef, TitanOperationStatus> multiRequirements = associateResourceInstancesMultiRequirements(componentId, nodeType, relation);
+ Either<RequirementCapabilityRelDef, TitanOperationStatus> multiRequirements = associateResourceInstancesMultiRequirements(componentId, nodeType, relation, isClone);
if (multiRequirements.isRight()) {
TitanOperationStatus status = multiRequirements.right().value();
BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeDaoSystemError, "associateComponentInstances");
BeEcompErrorManager.getInstance().logBeDaoSystemError("associateComponentInstances");
- log.debug("Failed to associate component instances. {}. Status is {}", relation, status);
+ log.debug("Failed to associate component instances {}. status is {}", relation, status);
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
return result;
}
@@ -2891,7 +3053,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
if (!updateCalculatedCapReqResult.equals(StorageOperationStatus.OK)) {
BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeDaoSystemError, "associateComponentInstances");
BeEcompErrorManager.getInstance().logBeDaoSystemError("associateComponentInstances");
- log.debug("Failed to associate component instances. {}. Status is {}", relation, updateCalculatedCapReqResult);
+ log.debug("Failed to associate component instances. {}. status is {}", relation, updateCalculatedCapReqResult);
result = Either.right(updateCalculatedCapReqResult);
return result;
}
@@ -2906,7 +3068,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
}
}
- private Either<RequirementCapabilityRelDef, TitanOperationStatus> associateResourceInstancesMultiRequirements(String componentId, NodeTypeEnum nodeType, RequirementCapabilityRelDef relation) {
+ private Either<RequirementCapabilityRelDef, TitanOperationStatus> associateResourceInstancesMultiRequirements(String componentId, NodeTypeEnum nodeType, RequirementCapabilityRelDef relation, boolean isClone) {
String fromNode = relation.getFromNode();
String toNode = relation.getToNode();
@@ -2928,7 +3090,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
TitanOperationStatus status = associateRes.right().value();
BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeFailedAddingResourceInstanceError, "AssociateResourceInstances", fromNode, componentId);
BeEcompErrorManager.getInstance().logBeFailedAddingResourceInstanceError("AssociateResourceInstances - missing relationship", fromNode, componentId);
- log.debug("Failed to associate resource instance {} to resource instnace {}. Status is {}", fromNode, toNode, status);
+ log.debug("Failed to associate resource instance {} to resource instance {}. status is {}", fromNode, toNode, status);
return Either.right(status);
}
@@ -2942,6 +3104,18 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
requirementAndRelationshipPair.setCapabilityUid(immutablePair.getCapabilityUid());
requirementAndRelationshipPair.setRequirementUid(immutablePair.getRequirementUid());
relationshipsResult.add(requirementAndRelationshipPair);
+ if (!isClone) {
+ log.trace("update customization UUID for from CI {} and to CI {}", relation.getFromNode(), relation.getToNode());
+ StorageOperationStatus status;
+ status = updateCustomizationUUID(relation.getFromNode());
+ if (status != StorageOperationStatus.OK) {
+ return Either.right(TitanOperationStatus.GENERAL_ERROR);
+ }
+ status = updateCustomizationUUID(relation.getToNode());
+ if (status != StorageOperationStatus.OK) {
+ return Either.right(TitanOperationStatus.GENERAL_ERROR);
+ }
+ }
}
@@ -2955,7 +3129,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
@Override
public Either<RequirementCapabilityRelDef, StorageOperationStatus> associateResourceInstances(String componentId, NodeTypeEnum nodeType, RequirementCapabilityRelDef relation) {
- return associateResourceInstances(componentId, nodeType, relation, false);
+ return associateResourceInstances(componentId, nodeType, relation, false, false);
}
@Override
@@ -2970,7 +3144,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeSystemError, "deleteAllResourceInstances - missing relationship");
BeEcompErrorManager.getInstance().logBeSystemError("deleteAllResourceInstances - missing relationship");
}
- log.debug("Failed to delete resource instances of service {}. Status is {}", containerComponentId, status);
+ log.debug("Failed to delete resource instances of service {}. status is {}", containerComponentId, status);
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
return result;
@@ -3002,7 +3176,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
if (resourceInstancesRes.isRight()) {
TitanOperationStatus status = resourceInstancesRes.right().value();
- log.debug("After fetching all resource instances of service {}. Status is {}", componentId, status);
+ log.debug("After fetching all resource instances of service {}. status is {}", componentId, status);
return Either.right(status);
}
@@ -3015,14 +3189,14 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
log.debug("After removing resource instance {}. Result is {}", resourceInstUid, removeResourceInstanceRes);
if (removeResourceInstanceRes.isRight()) {
TitanOperationStatus status = removeResourceInstanceRes.right().value();
- log.error("After removing resource instance {}. Status is {}", resourceInstUid, status);
+ log.error("After removing resource instance {}. status is {}", resourceInstUid, status);
return Either.right(status);
}
ComponentInstance resourceInstance = removeResourceInstanceRes.left().value();
result.add(resourceInstance);
}
- log.debug("The following resource instances was deleted from service {}:{}", componentId, result);
+ log.debug("The following resource instances was deleted from service {} : {}", componentId, result);
return Either.left(result);
}
@@ -3112,7 +3286,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
pair.setCapabilityOwnerId(capOwnerId);
}
- Either<RequirementCapabilityRelDef, StorageOperationStatus> associateInstances = associateResourceInstances(component.getUniqueId(), containerNodeType, relation, true);
+ Either<RequirementCapabilityRelDef, StorageOperationStatus> associateInstances = associateResourceInstances(component.getUniqueId(), containerNodeType, relation, true, true);
if (associateInstances.isRight()) {
StorageOperationStatus status = associateInstances.right().value();
log.error("failed to assosiate resource instance {} and resource instance {}. status ={}", relation.getFromNode(), relation.getToNode(), status);
@@ -3131,33 +3305,6 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
ImmutablePair<List<ComponentInstance>, Map<String, String>> result = new ImmutablePair<List<ComponentInstance>, Map<String, String>>(list, oldCompInstToNew);
- // Either<ImmutablePair<List<ComponentInstance>,
- // List<RequirementCapabilityRelDef>>, StorageOperationStatus>
- // allResourceInstances = getAllComponentInstances(componentIdFrom,
- // containerNodeType, compInstNodeType, true);
- //
- //
- // if (allResourceInstances.isRight()) {
- // StorageOperationStatus status = allResourceInstances.right().value();
- // if (status.equals(StorageOperationStatus.NOT_FOUND)) {
- //
- // return Either.left(result);
- // } else {
- // log.error("failed to get all resource instances for service {}.
- // status={}", componentIdFrom, status);
- // return Either.right(status);
- // }
- // }
-
- // ImmutablePair<List<ComponentInstance>,
- // List<RequirementCapabilityRelDef>> instanceRelationPair =
- // allResourceInstances.left().value();
-
- // ImmutablePair<List<ComponentInstance>,
- // List<RequirementCapabilityRelDef>> instanceRelationPair = new
- // ImmutablePair<List<ComponentInstance>,
- // List<RequirementCapabilityRelDef>>(prevResource.getComponentInstances(),
- // prevResource.getComponentInstancesRelations());
List<ComponentInstance> riList = prevResource.getComponentInstances();
Map<String, ComponentInstance> riMapper = new HashMap<>();
int instanceNumber = 0;
@@ -3238,7 +3385,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
pair.setCapabilityOwnerId(capOwnerId);
}
- Either<RequirementCapabilityRelDef, StorageOperationStatus> associateInstances = associateResourceInstances(componentIdTo, containerNodeType, relation, true);
+ Either<RequirementCapabilityRelDef, StorageOperationStatus> associateInstances = associateResourceInstances(componentIdTo, containerNodeType, relation, true, true);
if (associateInstances.isRight()) {
StorageOperationStatus status = associateInstances.right().value();
log.error("failed to assosiate resource instance {} and resource instance {}. status ={}", relation.getFromNode(), relation.getToNode(), status);
@@ -3251,7 +3398,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
private boolean isAtomicComponentInstance(ComponentInstance componentInstance) {
OriginTypeEnum originType = componentInstance.getOriginType();
- if (originType.equals(OriginTypeEnum.VFC) || originType.equals(OriginTypeEnum.VL) || originType.equals(OriginTypeEnum.CP)) {
+ if (originType == OriginTypeEnum.VFC || originType == OriginTypeEnum.VFCMT || originType == OriginTypeEnum.VL || originType == OriginTypeEnum.CP) {
return true;
}
return false;
@@ -3269,9 +3416,14 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
}
Map<String, ArtifactDefinition> artifacts = getArtifactsOfRI.left().value();
+ List<GroupInstance> groupInstancesFrom = fromResourceInstance.getGroupInstances();
+ List<GroupInstance> groupInstancesTo = toResourceInstance.getGroupInstances();
+ Map<String, List<String>> groupsInstanceArtifact = new HashMap<String, List<String>>();
for (Entry<String, ArtifactDefinition> entry : artifacts.entrySet()) {
ArtifactDefinition artifactDefinition = entry.getValue();
+ String generatedFromIdArtifactUid = artifactDefinition.getGeneratedFromId();
+
// US687135 Do not Add VF_MODULES_METADATA when checking out
if (ArtifactTypeEnum.VF_MODULES_METADATA.getType().equals(artifactDefinition.getArtifactType())) {
// The artifact of type VF_MODULES_METADATA should not be cloned
@@ -3287,7 +3439,37 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
if (addArifactToResource.isRight()) {
return addArifactToResource.right().value();
}
+
+ if (groupInstancesTo != null) {
+ for (GroupInstance groupInstanceTo : groupInstancesTo) {
+ Optional<String> op = groupInstanceTo.getArtifacts().stream().filter(p -> p.equals(generatedFromIdArtifactUid)).findAny();
+ if (op.isPresent()) {
+
+ List<String> artifactsUid = null;
+ if (groupsInstanceArtifact.containsKey(groupInstanceTo.getUniqueId())) {
+ artifactsUid = groupsInstanceArtifact.get(groupInstanceTo.getUniqueId());
+ } else {
+ artifactsUid = new ArrayList<String>();
+ }
+ artifactsUid.add(addArifactToResource.left().value().getUniqueId());
+ groupsInstanceArtifact.put(groupInstanceTo.getUniqueId(), artifactsUid);
+ break;
+ }
+ }
+
+ }
+ }
+ if (groupsInstanceArtifact != null && !groupsInstanceArtifact.isEmpty()) {
+ for (Map.Entry<String, List<String>> groupArtifact : groupsInstanceArtifact.entrySet()) {
+ groupInstanceOperation.associateArtifactsToGroupInstance(groupArtifact.getKey(), groupArtifact.getValue());
+ }
}
+ Either<List<GroupInstance>, StorageOperationStatus> groupInstanceStatus = groupInstanceOperation.getAllGroupInstances(toResourceInstance.getUniqueId(), NodeTypeEnum.ResourceInstance);
+ if (groupInstanceStatus.isRight()) {
+ log.debug("failed to get groupinstance for component inatance {}", toResourceInstance.getUniqueId());
+ return groupInstanceStatus.right().value();
+ }
+ toResourceInstance.setGroupInstances(groupInstanceStatus.left().value());
toResourceInstance.setDeploymentArtifacts(artifacts);
return StorageOperationStatus.OK;
}
@@ -3406,11 +3588,11 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
Either<List<String>, TitanOperationStatus> resInstancesOfService = getComponentInstancesNameOfService(serviceId, nodeType);
- log.debug("After fetching resource instances of service {}. Result is {}", serviceId, resInstancesOfService);
+ log.debug("After fetching resource instances of service {}. result is {}", serviceId, resInstancesOfService);
if (resInstancesOfService.isRight()) {
TitanOperationStatus status = resInstancesOfService.right().value();
if (status != TitanOperationStatus.NOT_FOUND) {
- log.error("Failed to find resource instances of service {}. Status is {}", serviceId, status);
+ log.error("Failed to find resource instances of service {}. status is {}", serviceId, status);
}
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
return result;
@@ -3438,7 +3620,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
Either<List<ImmutablePair<ComponentInstanceData, GraphEdge>>, TitanOperationStatus> resourceInstancesRes = getAllComponentInstanceFromGraph(serviceId, nodeType, false);
if (resourceInstancesRes.isRight()) {
TitanOperationStatus status = resourceInstancesRes.right().value();
- log.debug("Resource instance was found under service {}. Status is {}", serviceId, status);
+ log.debug("Resource instance was found under service {}. status is {}", serviceId, status);
return Either.right(status);
}
@@ -3570,15 +3752,15 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
return status;
}
+ @Override
public Either<List<ImmutablePair<CapabilityData, GraphEdge>>, TitanOperationStatus> getCapabilities(ComponentInstance compInstance, NodeTypeEnum nodeTypeEnum) {
-
DataNodeCollector<CapabilityData> collector = () -> titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(nodeTypeEnum), compInstance.getUniqueId(), GraphEdgeLabels.CALCULATED_CAPABILITY, NodeTypeEnum.Capability,
CapabilityData.class);
return getDataFromGraph(collector);
-
}
+ @Override
public Either<List<ImmutablePair<RequirementData, GraphEdge>>, TitanOperationStatus> getRequirements(ComponentInstance compInstance, NodeTypeEnum nodeTypeEnum) {
DataNodeCollector<RequirementData> collector = () -> titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(nodeTypeEnum), compInstance.getUniqueId(), GraphEdgeLabels.CALCULATED_REQUIREMENT, NodeTypeEnum.Requirement,
@@ -3588,6 +3770,24 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
}
+ @Override
+ public Either<List<ImmutablePair<CapabilityData, GraphEdge>>, TitanOperationStatus> getFulfilledCapabilities(ComponentInstance compInstance, NodeTypeEnum nodeTypeEnum) {
+ DataNodeCollector<CapabilityData> collector = () -> titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(nodeTypeEnum), compInstance.getUniqueId(), GraphEdgeLabels.CALCULATED_CAPABILITY_FULLFILLED, NodeTypeEnum.Capability,
+ CapabilityData.class);
+
+ return getDataFromGraph(collector);
+ }
+
+ @Override
+ public Either<List<ImmutablePair<RequirementData, GraphEdge>>, TitanOperationStatus> getFulfilledRequirements(ComponentInstance compInstance, NodeTypeEnum nodeTypeEnum) {
+
+ DataNodeCollector<RequirementData> collector = () -> titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(nodeTypeEnum), compInstance.getUniqueId(), GraphEdgeLabels.CALCULATED_REQUIREMENT_FULLFILLED, NodeTypeEnum.Requirement,
+ RequirementData.class);
+
+ return getDataFromGraph(collector);
+
+ }
+
public Either<Boolean, StorageOperationStatus> isAvailableRequirement(ComponentInstance fromResInstance, RequirementAndRelationshipPair relationPair) {
Either<TitanVertex, TitanOperationStatus> fromRi = titanGenericDao.getVertexByProperty(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ResourceInstance), fromResInstance.getUniqueId());
if (fromRi.isRight()) {
@@ -3608,7 +3808,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
String ownerIdOnEdge = (String) edge.value(GraphEdgePropertiesDictionary.OWNER_ID.getProperty());
if (ownerIdOnEdge.equals(relationPair.getRequirementOwnerId())) {
String leftOccurrences = (String) edge.value(GraphEdgePropertiesDictionary.LEFT_OCCURRENCES.getProperty());
- if (leftOccurrences != null && !leftOccurrences.equals(RequirementData.MAX_OCCURRENCES)) {
+ if (leftOccurrences != null && !leftOccurrences.equals(RequirementDataDefinition.MAX_OCCURRENCES)) {
Integer leftIntValue = Integer.parseInt(leftOccurrences);
if (leftIntValue > 0) {
exist = true;
@@ -3626,7 +3826,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
public Either<Boolean, StorageOperationStatus> isAvailableCapabilty(ComponentInstance toResInstance, RequirementAndRelationshipPair relationPair) {
Either<TitanVertex, TitanOperationStatus> fromRi = titanGenericDao.getVertexByProperty(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ResourceInstance), toResInstance.getUniqueId());
if (fromRi.isRight()) {
- log.debug("Failed to fetch component instance {}. Error: {}", toResInstance.getUniqueId(), fromRi.right().value());
+ log.debug("Failed to fetch component instance {} error {}", toResInstance.getUniqueId(), fromRi.right().value());
return Either.right(StorageOperationStatus.NOT_FOUND);
}
Iterator<Edge> edgeIter = fromRi.left().value().edges(Direction.OUT, GraphEdgeLabels.CALCULATED_CAPABILITY.name());
@@ -3643,7 +3843,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
String ownerIdOnEdge = (String) edge.value(GraphEdgePropertiesDictionary.OWNER_ID.getProperty());
if (ownerIdOnEdge.equals(relationPair.getCapabilityOwnerId())) {
String leftOccurrences = (String) edge.value(GraphEdgePropertiesDictionary.LEFT_OCCURRENCES.getProperty());
- if (leftOccurrences != null && !leftOccurrences.equals(CapabilityData.MAX_OCCURRENCES)) {
+ if (leftOccurrences != null && !leftOccurrences.equals(CapabilityDataDefinition.MAX_OCCURRENCES)) {
Integer leftIntValue = Integer.parseInt(leftOccurrences);
if (leftIntValue > 0) {
exist = true;
@@ -3727,7 +3927,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
List<ComponentInstanceAttribute> attributesOnInstance = compInstanceAttList.getInnerElement();
for (int i = 0; i < attributesOnInstance.size() && storageStatusWrapper.isEmpty(); i++) {
StorageOperationStatus result = cloneSingleAttributeOnResourceInstance(createdInstanceVertex, attributesOnInstance.get(i), instanceId);
- if (!result.equals(StorageOperationStatus.OK)) {
+ if (result != StorageOperationStatus.OK) {
log.trace("Failed to clone attribute for instance {} error {}", instanceId, result);
return result;
}
@@ -4024,7 +4224,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
Either<ComponentInstanceProperty, TitanOperationStatus> addPropertyToResourceInstance = this.addPropertyToResourceInstance(property, toResourceInstance, false, index, resourceInstanceId);
- if (addPropertyToResourceInstance.isRight() && !addPropertyToResourceInstance.right().value().equals(TitanOperationStatus.OK)) {
+ if (addPropertyToResourceInstance.isRight() && addPropertyToResourceInstance.right().value() != TitanOperationStatus.OK) {
StorageOperationStatus storageStatus = DaoStatusConverter.convertTitanStatusToStorageStatus(addPropertyToResourceInstance.right().value());
return storageStatus;
}
@@ -4032,13 +4232,13 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
ComponentInstanceProperty newProp = addPropertyToResourceInstance.left().value();
Set<String> inputsKey = inputsPropMap.keySet();
String inputToAssName = null;
- GetInputValueInfo getInputInfo = null;
+ GetInputValueDataDefinition getInputInfo = null;
for (String inputName : inputsKey) {
List<ComponentInstanceProperty> propsList = inputsPropMap.get(inputName);
Optional<ComponentInstanceProperty> op = propsList.stream().filter(p -> p.getUniqueId().equals(property.getUniqueId())).findAny();
if (op.isPresent()) {
ComponentInstanceProperty inpProp = op.get();
- getInputInfo = new GetInputValueInfo();
+ getInputInfo = new GetInputValueDataDefinition();
getInputInfo.setPropName(inpProp.getName());
getInputInfo.setInputName(inputName);
inputToAssName = inputName;
@@ -4536,7 +4736,8 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
* Either<Object, Boolean> isValid = propertyOperation.validateAndUpdatePropertyValue(propertyType, value, innerType, allDataTypes.left().value());
*
* String newValue = value; if (isValid.isRight()) { Boolean res = isValid.right().value(); if (res == false) { return Either.right(TitanOperationStatus.ILLEGAL_ARGUMENT); } } else { Object object = isValid.left().value(); if (object !=
- * null) { newValue = object.toString(); } } InputValueData propertyValueData = updateDataContainer.getValueDataWrapper().getInnerElement(); log.debug("Going to update property value from {} to {}", propertyValueData.getValue(), newValue); propertyValueData.setValue(newValue);
+ * null) { newValue = object.toString(); } } InputValueData propertyValueData = updateDataContainer.getValueDataWrapper().getInnerElement(); log.debug("Going to update property value from " + propertyValueData.getValue() + " to " +
+ * newValue); propertyValueData.setValue(newValue);
*
* ImmutablePair<String, Boolean> pair = propertyOperation.validateAndUpdateRules(propertyType, resourceInstanceProerty.getRules(), innerType, allDataTypes.left().value()); if (pair.getRight() != null && pair.getRight() == false) {
* BeEcompErrorManager.getInstance(). logBeInvalidValueError("Add property value", pair.getLeft(), resourceInstanceProerty.getName(), propertyType); return Either.right(TitanOperationStatus.ILLEGAL_ARGUMENT); }
@@ -4695,7 +4896,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
}
if (isPropertyValueExists.getLeft() != TitanOperationStatus.NOT_FOUND) {
- log.debug("After finding property value of {} on component instance {}", propertyId, resourceInstanceId);
+ log.debug("After finding property value of {} on componenet instance {}", propertyId, resourceInstanceId);
return Either.right(isPropertyValueExists.getLeft());
}
@@ -4771,8 +4972,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
if (createRelResult.isRight()) {
TitanOperationStatus operationStatus = createRelResult.right().value();
- // TODO: change logger
- log.error("Failed to associate property value " + uniqueId + " to property " + propertyId + " in graph. status is " + operationStatus);
+ log.error("Failed to associate property value {} to property {} in graph. status is {}", uniqueId, propertyId, operationStatus);
return Either.right(operationStatus);
}
@@ -4780,8 +4980,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
if (createRelResult.isRight()) {
TitanOperationStatus operationStatus = createRelResult.right().value();
- // TODO: change logger
- log.error("Failed to associate resource instance " + resourceInstanceId + " property value " + uniqueId + " in graph. status is " + operationStatus);
+ log.error("Failed to associate resource instance {} property value {} in graph. status is {}", resourceInstanceId, uniqueId, operationStatus);
return Either.right(operationStatus);
}
@@ -4879,7 +5078,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
log.trace("Before validateAndUpdateRules");
ImmutablePair<String, Boolean> pair = propertyOperation.validateAndUpdateRules(propertyType, resourceInstanceProperty.getRules(), innerType, allDataTypes.left().value(), isValidate);
- log.debug("After validateAndUpdateRules. pair = {}", pair);
+ log.debug("After validateAndUpdateRules. pair = {} ", pair);
if (pair.getRight() != null && pair.getRight() == false) {
BeEcompErrorManager.getInstance().logBeInvalidValueError("Add property value", pair.getLeft(), resourceInstanceProperty.getName(), propertyType);
return Either.right(TitanOperationStatus.ILLEGAL_ARGUMENT);
@@ -4900,20 +5099,19 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
if (createRelResult.isRight()) {
TitanOperationStatus operationStatus = createRelResult.right().value();
- // TODO: change logger
- log.error("Failed to associate property value " + uniqueId + " to property " + propertyId + " in graph. status is " + operationStatus);
+ log.error("Failed to associate property value {} to property {} in graph. status is {}", uniqueId, propertyId, operationStatus);
return Either.right(operationStatus);
}
TitanOperationStatus edgeResult = titanGenericDao.createEdge(resourceInstanceVertex, propertyValueData, GraphEdgeLabels.PROPERTY_VALUE, null);
- if (!edgeResult.equals(TitanOperationStatus.OK)) {
- log.error("Failed to associate resource instance " + resourceInstanceId + " property value " + uniqueId + " in graph. status is " + edgeResult);
+ if (edgeResult != TitanOperationStatus.OK) {
+ log.error("Failed to associate resource instance {} property value {} in graph. status is {}", resourceInstanceId, uniqueId, edgeResult);
return Either.right(edgeResult);
}
ComponentInstanceProperty propertyValueResult = propertyOperation.buildResourceInstanceProperty(propertyValueData, resourceInstanceProperty);
- log.debug("The returned ResourceInstanceProperty is {}", propertyValueResult);
+ log.debug("The returned ResourceInstanceProperty is {} ", propertyValueResult);
return Either.left(propertyValueResult);
} else {
@@ -4963,7 +5161,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
ImmutablePair<TitanOperationStatus, String> isInputValueExists = inputOperation.findInputValue(resourceInstanceId, propertyId);
if (isInputValueExists.getLeft() == TitanOperationStatus.ALREADY_EXIST) {
- log.debug("The property {} already added to the resource insance {}", propertyId, resourceInstanceId);
+ log.debug("The property {} already added to the resource instance {}", propertyId, resourceInstanceId);
resourceInstanceInput.setValueUniqueUid(isInputValueExists.getRight());
/*
* Either<InputValueData, TitanOperationStatus> updatePropertyOfResourceInstance = updatePropertyOfResourceInstance(resourceInstanceInput, resourceInstanceId); if (updatePropertyOfResourceInstance.isRight()) {
@@ -4973,7 +5171,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
}
if (isInputValueExists.getLeft() != TitanOperationStatus.NOT_FOUND) {
- log.debug("After finding input value of {} on compnent instance {}", propertyId, resourceInstanceId);
+ log.debug("After finding input value of {} on componenet instance {}", propertyId, resourceInstanceId);
return Either.right(isInputValueExists.getLeft());
}
@@ -4992,7 +5190,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
}
PropertyDataDefinition propDef = def.getProperty();
if (propDef == null) {
- log.debug("Property in Schema Definition inside property of type {} doesn't exists", type);
+ log.debug("Property in Schema Definition inside property of type {} doesn't exist", type);
return Either.right(TitanOperationStatus.ILLEGAL_ARGUMENT);
}
innerType = propDef.getType();
@@ -5005,21 +5203,6 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
BeEcompErrorManager.getInstance().logInternalFlowError("UpdatePropertyValueOnComponentInstance", "Failed to update property value on instance. Status is " + status, ErrorSeverity.ERROR);
return Either.right(status);
}
- // Either<Object, Boolean> isValid = propertyOperation.validateAndUpdatePropertyValue(propertyType, value, innerType, allDataTypes.left().value());
- // log.debug("After validateAndUpdatePropertyValue. isValid = {}", isValid);
-
- /*String newValue = value;
- if (isValid.isRight()) {
- Boolean res = isValid.right().value();
- if (res == false) {
- return Either.right(TitanOperationStatus.ILLEGAL_ARGUMENT);
- }
- } else {
- Object object = isValid.left().value();
- if (object != null) {
- newValue = object.toString();
- }
- }*/
String uniqueId = UniqueIdBuilder.buildResourceInstanceInputValueUid(resourceInstanceData.getUniqueId(), index);
InputValueData propertyValueData = new InputValueData();
@@ -5028,7 +5211,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
log.debug("Before validateAndUpdateRules");
ImmutablePair<String, Boolean> pair = propertyOperation.validateAndUpdateRules(propertyType, resourceInstanceInput.getRules(), innerType, allDataTypes.left().value(), true);
- log.debug("After validateAndUpdateRules. pair = {}", pair);
+ log.debug("After validateAndUpdateRules. pair = {} ", pair);
if (pair.getRight() != null && pair.getRight() == false) {
BeEcompErrorManager.getInstance().logBeInvalidValueError("Add property value", pair.getLeft(), resourceInstanceInput.getName(), propertyType);
return Either.right(TitanOperationStatus.ILLEGAL_ARGUMENT);
@@ -5049,8 +5232,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
if (createRelResult.isRight()) {
TitanOperationStatus operationStatus = createRelResult.right().value();
- // TODO: change logger
- log.error("Failed to associate property value {} to property {} in graph. Status is {}", uniqueId, propertyId, operationStatus);
+ log.error("Failed to associate property value {} to property {} in graph. status is {}", uniqueId, propertyId, operationStatus);
return Either.right(operationStatus);
}
@@ -5063,8 +5245,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
if (createRelResult.isRight()) {
TitanOperationStatus operationStatus = createNodeResult.right().value();
- // TODO: change logger
- log.error("Failed to associate resource instance {} property value {} in graph. Status is {}", resourceInstanceId, uniqueId, operationStatus);
+ log.error("Failed to associate resource instance {} property value {} in graph. status is {}", resourceInstanceId, uniqueId, operationStatus);
return Either.right(operationStatus);
}
@@ -5282,6 +5463,40 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
return Either.left(result);
}
+ // TODO Tal G US831698
+ public Either<List<ComponentInstanceProperty>, StorageOperationStatus> getComponentInstancesPropertiesAndValuesFromGraph(ComponentInstance resourceInstance) {
+
+ Map<String, List<PropertyDefinition>> alreadyProcessedResources = new HashMap<>();
+ Map<String, List<ComponentInstanceProperty>> alreadyProcessedInstances = new HashMap<>();
+ Map<String, ImmutablePair<ComponentInstance, Integer>> processedInstances = new HashMap<>();
+ Map<String, List<ComponentInstanceProperty>> resourceInstancesProperties = new HashMap<>();
+
+ List<String> path = new ArrayList<>();
+ path.add(resourceInstance.getUniqueId());
+ Either<List<ComponentInstanceProperty>, TitanOperationStatus> componentInstanceProperties = getComponentInstanceProperties(resourceInstance, alreadyProcessedResources, alreadyProcessedInstances, processedInstances, path);
+
+ if (componentInstanceProperties.isRight()) {
+ StorageOperationStatus convertTitanStatusToStorageStatus = DaoStatusConverter.convertTitanStatusToStorageStatus(componentInstanceProperties.right().value());
+ return Either.right(convertTitanStatusToStorageStatus);
+ }
+
+ List<ComponentInstanceProperty> listOfProps = componentInstanceProperties.left().value();
+ resourceInstancesProperties.put(resourceInstance.getUniqueId(), listOfProps);
+
+ processedInstances.put(resourceInstance.getUniqueId(), new ImmutablePair<ComponentInstance, Integer>(resourceInstance, path.size()));
+ path.remove(path.size() - 1);
+
+ Either<Map<String, Map<String, ComponentInstanceProperty>>, TitanOperationStatus> findAllPropertiesValuesOnInstances = findAllPropertyValueOnInstances(processedInstances);
+ // 1. check status
+ if (findAllPropertiesValuesOnInstances.isRight()) {
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(findAllPropertiesValuesOnInstances.right().value()));
+ }
+
+ propertyOperation.updatePropertiesByPropertyValues(resourceInstancesProperties, findAllPropertiesValuesOnInstances.left().value());
+
+ return Either.left(resourceInstancesProperties.get(resourceInstance.getUniqueId()));
+ }
+
public Either<List<ComponentInstanceProperty>, TitanOperationStatus> getComponentInstanceProperties(ComponentInstance resourceInstance, Map<String, List<PropertyDefinition>> alreadyProcessedResources,
Map<String, List<ComponentInstanceProperty>> alreadyProcessedInstances, Map<String, ImmutablePair<ComponentInstance, Integer>> processedInstances, List<String> path) {
@@ -5333,7 +5548,6 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
resourceInstancePropertyList.add(resourceInstanceProperty);
}
-
}
OriginTypeEnum originType = resourceInstance.getOriginType();
@@ -5381,7 +5595,9 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
case PRODUCT:
containerNodeType = NodeTypeEnum.Product;
compInstNodeType = NodeTypeEnum.Service;
+ break;
case VFC:
+ case VFCMT:
case VL:
case CP:
break;
@@ -5418,7 +5634,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
return null;
}
- List<String> clonedList = new ArrayList();
+ List<String> clonedList = new ArrayList<String>();
clonedList.addAll(list);
return clonedList;
@@ -5441,7 +5657,6 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
ImmutablePair<ComponentInstance, Integer> pair = entry.getValue();
ComponentInstance componentInstance = pair.getLeft();
- Integer level = pair.getRight();
Either<List<ComponentInstanceProperty>, TitanOperationStatus> propeprtyValueOnCIResult = findPropertyValueOnComponentInstance(componentInstance);
@@ -5454,10 +5669,10 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
}
List<ComponentInstanceProperty> propertyValuesOnCI = propeprtyValueOnCIResult.left().value();
- if (propeprtyValueOnCIResult != null) {
+ if (propertyValuesOnCI != null) {
for (ComponentInstanceProperty instanceProperty : propertyValuesOnCI) {
boolean result = addPropertyValue(compInstUniqueId, instanceProperty, propertyToInstanceValue);
- if (result == false) {
+ if (!result) {
return Either.right(TitanOperationStatus.ALREADY_EXIST);
}
}
@@ -5558,7 +5773,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
capability.getUniqueId(), capability.getName(), capability.getProperties(), !isNewlyCreatedResourceInstance);
if (addCapInstWithPropertiesRes.isRight()) {
error = addCapInstWithPropertiesRes.right().value();
- log.debug("Failed to assotiate capability instance to resource instance {}. Status is {}", resourceInstanceId, error);
+ log.debug("Failed to assotiate capability instance to resource instance {}. status is {}", resourceInstanceId, error);
}
log.debug("After adding capability property values to resource instance {}. Status is {}", resourceInstanceId, error);
if (error == null) {
@@ -5573,7 +5788,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
TitanOperationStatus addCapInstWithPropertiesRes = capabilityInstanceOperation.createCapabilityInstanceOfCapabilityWithPropertyValuesForResourceInstance(resourceInstanceVertex, resourceInstanceId, capability.getUniqueId(),
capability.getName(), capability.getProperties(), !isNewlyCreatedResourceInstance);
- if (!addCapInstWithPropertiesRes.equals(TitanOperationStatus.OK)) {
+ if (addCapInstWithPropertiesRes != TitanOperationStatus.OK) {
error = addCapInstWithPropertiesRes;
log.debug("Failed to assotiate capability instance to resource instance {} . status is {}", resourceInstanceId, error);
}
@@ -5596,7 +5811,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
Either<List<PropertyValueData>, TitanOperationStatus> updateCapabilityPropertyValuesRes = capabilityInstanceOperation.updateCapabilityPropertyValues(resourceInstanceId, capabilityId, propertyValues);
if (updateCapabilityPropertyValuesRes.isRight()) {
error = updateCapabilityPropertyValuesRes.right().value();
- log.debug("Failed to update property values of capability {} of resource instance {}. Status is {}", capabilityId, resourceInstanceId, error);
+ log.debug("Failed to update property values of capability {} of resource instance {}. status is {}", capabilityId, resourceInstanceId, error);
}
log.debug("After updating property values of capability {} of resource instance {}. Status is {}", capabilityId, resourceInstanceId, error);
if (error == null) {
@@ -5619,14 +5834,14 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
Either<CapabilityInstData, TitanOperationStatus> getCapInstByCapabilityRes = capabilityInstanceOperation.getCapabilityInstanceOfCapabilityOfResourceInstance(resourceInstanceId, capabilityId);
if (getCapInstByCapabilityRes.isRight()) {
error = getCapInstByCapabilityRes.right().value();
- log.debug("Failed to retrieve capability instance of capability {} of resource instance {}. Status is {}", capabilityId, resourceInstanceId, error);
+ log.debug("Failed to retrieve capability instance of capability {} of resource instance {}. status is {}", capabilityId, resourceInstanceId, error);
}
if (error == null) {
String capabilityInstanceId = getCapInstByCapabilityRes.left().value().getUniqueId();
deleteCapInstWithPropertiesRes = capabilityInstanceOperation.deleteCapabilityInstanceFromResourceInstance(resourceInstanceId, capabilityInstanceId);
if (deleteCapInstWithPropertiesRes.isRight()) {
error = deleteCapInstWithPropertiesRes.right().value();
- log.debug("Failed to delete capability instance {} to resource instance {}. Status is {}", capabilityInstanceId, resourceInstanceId, error);
+ log.debug("Failed to delete capability instance {} to resource instance {}. status is {}", capabilityInstanceId, resourceInstanceId, error);
}
}
log.debug("After deleting property values of capability {} from resource instance {}. Status is {}", capabilityId, resourceInstanceId, error);
@@ -5653,7 +5868,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
Either<List<ImmutablePair<CapabilityInstData, GraphEdge>>, TitanOperationStatus> getAllCapabilityInstancesRes = capabilityInstanceOperation.getAllCapabilityInstancesOfResourceInstance(resourceInstanceId);
if (getAllCapabilityInstancesRes.isRight() && !getAllCapabilityInstancesRes.right().value().equals(TitanOperationStatus.NOT_FOUND)) {
error = getAllCapabilityInstancesRes.right().value();
- log.debug("Failed to get capability instances of component instance {}. Status is {}", resourceInstanceId, error);
+ log.debug("Failed to get capability instances of component instance {}. status is {}", resourceInstanceId, error);
}
if (getAllCapabilityInstancesRes.isLeft()) {
List<ImmutablePair<CapabilityInstData, GraphEdge>> capabilityInstances = getAllCapabilityInstancesRes.left().value();
@@ -5670,7 +5885,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
cloneAssociateCIWithPropertyValuesRes = capabilityInstanceOperation.cloneAssociateCapabilityInstanceWithPropertyValues(createdComponentInstance, relatedCapability, capabilityInstPair);
if (cloneAssociateCIWithPropertyValuesRes.isRight()) {
error = cloneAssociateCIWithPropertyValuesRes.right().value();
- log.debug("Failed to clone capability instances {} of component instance {}. Status is {}", capabilityInstPair.getLeft().getUniqueId(), resourceInstanceId, error);
+ log.debug("Failed to clone capability instances {} of component instance {}. status is {}", capabilityInstPair.getLeft().getUniqueId(), resourceInstanceId, error);
break;
} else {
result.put(new ImmutablePair<CapabilityInstData, GraphEdge>(cloneAssociateCIWithPropertyValuesRes.left().value().getLeft(), capabilityInstPair.getRight()), cloneAssociateCIWithPropertyValuesRes.left().value().getRight());
@@ -5691,7 +5906,7 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
Either<TitanVertex, TitanOperationStatus> cloneAssociateCIWithPropertyValuesRes = null;
Either<List<ImmutablePair<CapabilityInstData, GraphEdge>>, TitanOperationStatus> getAllCapabilityInstancesRes = capabilityInstanceOperation.getAllCapabilityInstancesOfResourceInstance(resourceInstanceId);
- if (getAllCapabilityInstancesRes.isRight() && !getAllCapabilityInstancesRes.right().value().equals(TitanOperationStatus.NOT_FOUND)) {
+ if (getAllCapabilityInstancesRes.isRight() && getAllCapabilityInstancesRes.right().value() != TitanOperationStatus.NOT_FOUND) {
error = getAllCapabilityInstancesRes.right().value();
log.debug("Failed to get capability instances of component instance {}. status is {}", resourceInstanceId, error);
}
@@ -5784,29 +5999,26 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
if (getOverridedPropertyValuesRes.isRight()) {
error = getOverridedPropertyValuesRes.right().value();
log.debug("Failed to retrieve property values of capability instance {}. Status is {}", curCapInstUid, error);
- }
-
- log.debug("After getting all property values of capability instance {} of component istance {}. Status is {}", curCapInstUid, componentInstanceId, error);
- Map<String, PropertyValueData> overridedPropertyValuesHM = new HashMap<>();
- List<ImmutablePair<PropertyValueData, GraphEdge>> overridedPropertyValues = getOverridedPropertyValuesRes.left().value();
- for (ImmutablePair<PropertyValueData, GraphEdge> curPropertyValuePair : overridedPropertyValues) {
- PropertyValueData curPropertyValue = curPropertyValuePair.getLeft();
- String propertyValueUid = curPropertyValue.getUniqueId();
- log.debug("Before getting property related to property value {} of capability instance {} of component istance {}.", propertyValueUid, curCapInstUid, componentInstanceId);
- Either<ImmutablePair<PropertyData, GraphEdge>, TitanOperationStatus> getPropertyDataRes = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.getByName(curPropertyValue.getLabel())), propertyValueUid,
- GraphEdgeLabels.PROPERTY_IMPL, NodeTypeEnum.Property, PropertyData.class);
- if (getPropertyDataRes.isRight()) {
- error = getOverridedPropertyValuesRes.right().value();
- log.debug("Failed to retrieve property of property value {} Status is {}", propertyValueUid, error);
- }
-
- if (log.isDebugEnabled()) {
+ } else {
+ log.debug("After getting all property values of capability instance {} of component istance {}. Status is {}", curCapInstUid, componentInstanceId, error);
+ Map<String, PropertyValueData> overridedPropertyValuesHM = new HashMap<>();
+ List<ImmutablePair<PropertyValueData, GraphEdge>> overridedPropertyValues = getOverridedPropertyValuesRes.left().value();
+ for (ImmutablePair<PropertyValueData, GraphEdge> curPropertyValuePair : overridedPropertyValues) {
+ PropertyValueData curPropertyValue = curPropertyValuePair.getLeft();
+ String propertyValueUid = curPropertyValue.getUniqueId();
+ log.debug("Before getting property related to property value {} of capability instance {} of component istance {}.", propertyValueUid, curCapInstUid, componentInstanceId);
+ Either<ImmutablePair<PropertyData, GraphEdge>, TitanOperationStatus> getPropertyDataRes = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.getByName(curPropertyValue.getLabel())), propertyValueUid,
+ GraphEdgeLabels.PROPERTY_IMPL, NodeTypeEnum.Property, PropertyData.class);
+ if (getPropertyDataRes.isRight()) {
+ error = getOverridedPropertyValuesRes.right().value();
+ log.debug("Failed to retrieve property of property value {} Status is {}", propertyValueUid, error);
+ }
log.debug("After getting property related to property value {} of capability instance {} of component istance {}. Status is {}", propertyValueUid, curCapInstUid, componentInstanceId, error);
+ PropertyData propertyData = getPropertyDataRes.left().value().getLeft();
+ overridedPropertyValuesHM.put((String) propertyData.getUniqueId(), curPropertyValue);
}
- PropertyData propertyData = getPropertyDataRes.left().value().getLeft();
- overridedPropertyValuesHM.put((String) propertyData.getUniqueId(), curPropertyValue);
+ overridedCapabilitiesHM.put((String) curCapabilityPair.getRight().getProperties().get(GraphPropertiesDictionary.CAPABILITY_ID.getProperty()), overridedPropertyValuesHM);
}
- overridedCapabilitiesHM.put((String) curCapabilityPair.getRight().getProperties().get(GraphPropertiesDictionary.CAPABILITY_ID.getProperty()), overridedPropertyValuesHM);
}
}
if (error == null && !overridedCapabilitiesHM.isEmpty()) {
@@ -5838,7 +6050,6 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
@Override
public Either<ComponentInstanceInput, StorageOperationStatus> updateInputValueInResourceInstance(ComponentInstanceInput input, String resourceInstanceId, boolean b) {
- // TODO Auto-generated method stub
return null;
}
@@ -5849,4 +6060,119 @@ public class ComponentInstanceOperation extends AbstractOperation implements ICo
return result;
}
+ @Override
+ public StorageOperationStatus updateCustomizationUUID(String componentInstanceId) {
+ Either<TitanVertex, TitanOperationStatus> vertexByProperty = titanGenericDao.getVertexByProperty(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), componentInstanceId);
+ if (vertexByProperty.isRight()) {
+ log.debug("Failed to fetch component instance by id {} error {}", componentInstanceId, vertexByProperty.right().value());
+ return DaoStatusConverter.convertTitanStatusToStorageStatus(vertexByProperty.right().value());
+ }
+ UUID uuid = UUID.randomUUID();
+ TitanVertex ciVertex = vertexByProperty.left().value();
+ ciVertex.property(GraphPropertiesDictionary.CUSTOMIZATION_UUID.getProperty(), uuid.toString());
+
+ return StorageOperationStatus.OK;
+ }
+
+ private Either<String, Boolean> handleGroupInstanceNameLogic(TitanVertex ciVertex, GroupInstance groupInstance, String componentInstanceId, String componentInstanceName, String groupName) {
+
+ groupInstance.setGroupName(groupName);
+
+ String logicalName = groupInstanceOperation.createGroupInstLogicalName(componentInstanceName, groupName);
+
+ Boolean eitherValidation = validateGroupInstanceName(logicalName, groupInstance, true);
+ if (!eitherValidation) {
+ return Either.right(false);
+ }
+ // groupInstance.setName(logicalName);
+ return Either.left(logicalName);
+ }
+
+ private Boolean validateGroupInstanceName(String groupInstanceName, GroupInstance groupInstance, boolean isCreate) {
+
+ if (!ValidationUtils.validateStringNotEmpty(groupInstanceName)) {
+ return false;
+ }
+ groupInstance.setNormalizedName(ValidationUtils.normalizeComponentInstanceName(groupInstanceName));
+ if (!isCreate) {
+ if (!ValidationUtils.validateResourceInstanceNameLength(groupInstanceName)) {
+ return false;
+ }
+ if (!ValidationUtils.validateResourceInstanceName(groupInstanceName)) {
+ return false;
+ }
+ }
+
+ return true;
+
+ }
+ // Evg: need to be public for reuse code in migration
+ public Either<GroupInstance, StorageOperationStatus> createGroupInstance(TitanVertex ciVertex, GroupDefinition groupDefinition, ComponentInstance componentInstance) {
+ // create VFC instance on VF
+ GroupInstance groupInstance = null;
+
+ boolean isCreateName = false;
+ List<GroupInstance> groupInstances = componentInstance.getGroupInstances();
+ if (groupInstances != null && !groupInstances.isEmpty()) {
+ Optional<GroupInstance> op = groupInstances.stream().filter(p -> p.getGroupUid().equals(groupDefinition.getUniqueId())).findAny();
+ if (op.isPresent()) {
+ groupInstance = op.get();
+
+ }
+ }
+ if (groupInstance == null) {
+ groupInstance = new GroupInstance();
+ groupInstance.setGroupUid(groupDefinition.getUniqueId());
+
+ groupInstance.setArtifacts(groupDefinition.getArtifacts());
+ Either<String, Boolean> handleNameLogic = handleGroupInstanceNameLogic(ciVertex, groupInstance, componentInstance.getUniqueId(), componentInstance.getNormalizedName(), groupDefinition.getName());
+ if (handleNameLogic.isRight() && !handleNameLogic.right().value()) {
+
+ if (handleNameLogic.isRight()) {
+ log.debug("failed to create logical name gor group instance {}", groupInstance.getName());
+ return Either.right(StorageOperationStatus.INVALID_ID);
+
+ }
+ }
+ isCreateName = true;
+ // groupInstance.setName(handleNameLogic.left().value());
+
+ }
+
+ return groupInstanceOperation.createGroupInstance(ciVertex, componentInstance.getUniqueId(), groupInstance, isCreateName);
+
+ }
+
+ @Override
+ public Either<ComponentInstanceData, StorageOperationStatus> updateComponentInstanceModificationTimeAndCustomizationUuidOnGraph(ComponentInstance componentInstance, NodeTypeEnum componentInstanceType, Long modificationTime, boolean inTransaction) {
+
+ log.debug("Going to update modification time of component instance {}. ", componentInstance.getName());
+ Either<ComponentInstanceData, StorageOperationStatus> result = null;
+ try{
+ ComponentInstanceData componentData = new ComponentInstanceData(componentInstance, componentInstance.getGroupInstances().size());
+ componentData.getComponentInstDataDefinition().setModificationTime(modificationTime);
+ componentData.getComponentInstDataDefinition().setCustomizationUUID(UUID.randomUUID().toString());
+ Either<ComponentInstanceData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(componentData, ComponentInstanceData.class);
+ if (updateNode.isRight()) {
+ log.error("Failed to update resource {}. status is {}", componentInstance.getUniqueId(), updateNode.right().value());
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(updateNode.right().value()));
+ }else{
+ result = Either.left(updateNode.left().value());
+ }
+ }catch(Exception e){
+ log.error("Exception occured during update modification date of compomemt instance{}. The message is {}. ", componentInstance.getName(), e.getMessage(), e);
+ result = Either.right(StorageOperationStatus.GENERAL_ERROR);
+ }finally {
+ if(!inTransaction){
+ if (result == null || result.isRight()) {
+ log.error("Going to execute rollback on graph.");
+ titanGenericDao.rollback();
+ } else {
+ log.debug("Going to execute commit on graph.");
+ titanGenericDao.commit();
+ }
+ }
+ }
+ return result;
+ }
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ComponentOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ComponentOperation.java
index b243c6ea4d..e06649bf77 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ComponentOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ComponentOperation.java
@@ -22,23 +22,15 @@ package org.openecomp.sdc.be.model.operations.impl;
import java.time.Duration;
import java.time.Instant;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.Map.Entry;
-import java.util.Optional;
-import java.util.Set;
-import java.util.UUID;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.function.Function;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import java.util.stream.Stream;
+import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.ImmutableTriple;
import org.apache.commons.lang3.tuple.Pair;
@@ -66,6 +58,7 @@ import org.openecomp.sdc.be.datatypes.components.ResourceMetadataDataDefinition;
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.datatypes.enums.OriginTypeEnum;
import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
import org.openecomp.sdc.be.model.AdditionalInformationDefinition;
import org.openecomp.sdc.be.model.ArtifactDefinition;
@@ -80,8 +73,10 @@ import org.openecomp.sdc.be.model.GroupDefinition;
import org.openecomp.sdc.be.model.InputDefinition;
import org.openecomp.sdc.be.model.LifecycleStateEnum;
import org.openecomp.sdc.be.model.PropertyDefinition;
+import org.openecomp.sdc.be.model.PropertyDefinition.PropertyNames;
import org.openecomp.sdc.be.model.RequirementCapabilityRelDef;
import org.openecomp.sdc.be.model.RequirementDefinition;
+import org.openecomp.sdc.be.model.User;
import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache;
import org.openecomp.sdc.be.model.cache.ComponentCache;
import org.openecomp.sdc.be.model.category.CategoryDefinition;
@@ -93,6 +88,7 @@ import org.openecomp.sdc.be.model.operations.api.ICapabilityOperation;
import org.openecomp.sdc.be.model.operations.api.IElementOperation;
import org.openecomp.sdc.be.model.operations.api.IRequirementOperation;
import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
+import org.openecomp.sdc.be.model.operations.api.ToscaDefinitionPathCalculator;
import org.openecomp.sdc.be.resources.data.ArtifactData;
import org.openecomp.sdc.be.resources.data.CapabilityData;
import org.openecomp.sdc.be.resources.data.ComponentMetadataData;
@@ -168,6 +164,9 @@ public abstract class ComponentOperation {
@Autowired
private ComponentCache componentCache;
+ @Autowired
+ private ToscaDefinitionPathCalculator toscaDefinitionPathCalculator;
+
private static Pattern uuidNewVersion = Pattern.compile("^\\d{1,}.1");
protected Gson prettyJson = new GsonBuilder().setPrettyPrinting().create();
@@ -193,18 +192,18 @@ public abstract class ComponentOperation {
return Either.left(tagsToCreate);
}
-
+
protected StorageOperationStatus createTagNodesOnGraph(List<TagData> tagsToCreate) {
StorageOperationStatus result = StorageOperationStatus.OK;
// In order to avoid duplicate tags
tagsToCreate = ImmutableSet.copyOf(tagsToCreate).asList();
if (tagsToCreate != null && false == tagsToCreate.isEmpty()) {
for (TagData tagData : tagsToCreate) {
- log.debug("Before creating tag {}", tagData);
+ log.debug("Before creating tag {}" , tagData);
Either<TagData, TitanOperationStatus> createTagResult = titanGenericDao.createNode(tagData, TagData.class);
if (createTagResult.isRight()) {
TitanOperationStatus status = createTagResult.right().value();
- log.error("Cannot create {} in the graph. Status is {}", tagData, status);
+ log.error("Cannot create {} in the graph. status is {}", tagData, status);
result = DaoStatusConverter.convertTitanStatusToStorageStatus(status);
}
@@ -216,7 +215,7 @@ public abstract class ComponentOperation {
public Either<Component, StorageOperationStatus> getLatestComponentByUuid(NodeTypeEnum nodeType, String uuid) {
Either<Component, StorageOperationStatus> getComponentResult = null;
- Either<ComponentMetadataData, StorageOperationStatus> latestComponentMetadataRes = getLatestComponentMetadataByUuid(nodeType, uuid);
+ Either<ComponentMetadataData, StorageOperationStatus> latestComponentMetadataRes = getLatestComponentMetadataByUuid(nodeType, uuid, false);
if (latestComponentMetadataRes.isRight()) {
getComponentResult = Either.right(latestComponentMetadataRes.right().value());
}
@@ -234,7 +233,7 @@ public abstract class ComponentOperation {
return getComponentResult;
}
- public Either<ComponentMetadataData, StorageOperationStatus> getLatestComponentMetadataByUuid(NodeTypeEnum nodeType, String uuid) {
+ public Either<ComponentMetadataData, StorageOperationStatus> getLatestComponentMetadataByUuid(NodeTypeEnum nodeType, String uuid, boolean inTransaction) {
Either<ComponentMetadataData, StorageOperationStatus> getComponentResult = null;
List<ComponentMetadataData> latestVersionList = null;
@@ -243,24 +242,31 @@ public abstract class ComponentOperation {
Map<String, Object> propertiesToMatch = new HashMap<String, Object>();
propertiesToMatch.put(GraphPropertiesDictionary.UUID.getProperty(), uuid);
propertiesToMatch.put(GraphPropertiesDictionary.IS_HIGHEST_VERSION.getProperty(), true);
-
- Either<List<ComponentMetadataData>, TitanOperationStatus> getComponentEither = titanGenericDao.getByCriteria(nodeType, propertiesToMatch, ComponentMetadataData.class);
- if (getComponentEither.isRight()) {
- log.debug("Couldn't fetch metadata for component with type {} and uuid {}, error: {}", nodeType, uuid, getComponentEither.right().value());
- getComponentResult = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getComponentEither.right().value()));
-
- }
- if (getComponentResult == null) {
- latestVersionList = getComponentEither.left().value();
- if (latestVersionList.isEmpty()) {
- log.debug("Component with type {} and uuid {} was not found", nodeType, uuid);
- getComponentResult = Either.right(StorageOperationStatus.NOT_FOUND);
+ try{
+ Either<List<ComponentMetadataData>, TitanOperationStatus> getComponentEither = titanGenericDao.getByCriteria(nodeType, propertiesToMatch, ComponentMetadataData.class);
+ if (getComponentEither.isRight()) {
+ log.debug("Couldn't fetch metadata for component with type {} and uuid {}, error: {}", nodeType, uuid, getComponentEither.right().value());
+ getComponentResult = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getComponentEither.right().value()));
+
+ }
+ if (getComponentResult == null) {
+ latestVersionList = getComponentEither.left().value();
+ if (latestVersionList.isEmpty()) {
+ log.debug("Component with type {} and uuid {} was not found", nodeType, uuid);
+ getComponentResult = Either.right(StorageOperationStatus.NOT_FOUND);
+ }
+ }
+ if (getComponentResult == null) {
+ 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();
+ getComponentResult = Either.left(latestVersion);
+ }
+ } catch (Exception e){
+ log.debug("Failed to get latest component metadata with type {} by uuid {}. ", nodeType.getName(), uuid, e);
+ }finally {
+ if (!inTransaction) {
+ titanGenericDao.commit();
}
- }
- if (getComponentResult == null) {
- 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();
- getComponentResult = Either.left(latestVersion);
}
return getComponentResult;
}
@@ -284,32 +290,6 @@ public abstract class ComponentOperation {
return Either.left(serviceData);
}
- // protected <T extends GraphNode> Either<T, StorageOperationStatus>
- // getComponentByLabelAndId_tx(String uniqueId, NodeTypeEnum nodeType,
- // Class<T> clazz) {
- //
- // Map<String, Object> propertiesToMatch = new HashMap<String, Object>();
- // propertiesToMatch.put(UniqueIdBuilder.getKeyByNodeType(nodeType),
- // uniqueId);
- // Either<List<T>, TitanOperationStatus> getResponse =
- // titanGenericDao.getByCriteria_tx(nodeType, propertiesToMatch, clazz);
- // if (getResponse.isRight()) {
- // log.debug("Couldn't fetch component with type {} and unique id {}, error:
- // {}", nodeType, uniqueId, getResponse.right().value());
- // return
- // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(getResponse.right().value()));
- //
- // }
- // List<T> serviceDataList = getResponse.left().value();
- // if (serviceDataList.isEmpty()) {
- // log.debug("Component with type {} and unique id {} was not found",
- // nodeType, uniqueId);
- // return Either.right(StorageOperationStatus.NOT_FOUND);
- // }
- // T serviceData = serviceDataList.get(0);
- // return Either.left(serviceData);
- // }
-
/**
*
* @param component
@@ -415,28 +395,28 @@ public abstract class ComponentOperation {
Map<String, Object> props = new HashMap<String, Object>();
props.put(GraphPropertiesDictionary.STATE.getProperty(), componentData.getMetadataDataDefinition().getState());
Either<GraphRelation, TitanOperationStatus> result = titanGenericDao.createRelation(updater, componentData, GraphEdgeLabels.STATE, props);
- log.debug("After associating user {} to component {}. Edge type is {}", updater, componentData.getUniqueId(), GraphEdgeLabels.STATE);
+ log.debug("After associating user {} to component {}. Edge type is {}" , updater, componentData.getUniqueId(), GraphEdgeLabels.STATE);
if (result.isRight()) {
return result.right().value();
}
result = titanGenericDao.createRelation(updater, componentData, GraphEdgeLabels.LAST_MODIFIER, null);
- log.debug("After associating user {} to component {}. Edge type is {}", updater, componentData.getUniqueId(), GraphEdgeLabels.LAST_MODIFIER);
+ log.debug("After associating user {} to component {}. Edge type is {}", updater, componentData.getUniqueId(), GraphEdgeLabels.LAST_MODIFIER);
if (result.isRight()) {
- log.error("Failed to associate user " + updater + " to component " + componentData.getUniqueId() + ". Edge type is " + GraphEdgeLabels.LAST_MODIFIER);
+ log.error("Failed to associate user {} to component {}. Edge type is {}", updater, componentData.getUniqueId(), GraphEdgeLabels.LAST_MODIFIER);
return result.right().value();
}
result = titanGenericDao.createRelation(userData, componentData, GraphEdgeLabels.CREATOR, null);
- log.debug("After associating user {} to component {}. Edge type is {}", userData, componentData.getUniqueId(), GraphEdgeLabels.CREATOR);
+ log.debug("After associating user {} to component {}. Edge type is {}" , userData, componentData.getUniqueId(), GraphEdgeLabels.CREATOR);
if (result.isRight()) {
- log.error("Failed to associate user " + userData + " to component " + componentData.getUniqueId() + ". Edge type is " + GraphEdgeLabels.CREATOR);
+ log.error("Failed to associate user {} to component {}. Edge type is {}", userData, componentData.getUniqueId(), GraphEdgeLabels.CREATOR);
return result.right().value();
}
if (derivedResources != null) {
for (ResourceMetadataData derivedResource : derivedResources) {
- log.debug("After associating component {} to parent component {}. Egde type is {}", componentData.getUniqueId(), derivedResource.getUniqueId(), GraphEdgeLabels.DERIVED_FROM);
+ log.debug("After associating component {} to parent component {}. Edge type is {}" ,componentData.getUniqueId(), derivedResource.getUniqueId(), GraphEdgeLabels.DERIVED_FROM);
result = titanGenericDao.createRelation(componentData, derivedResource, GraphEdgeLabels.DERIVED_FROM, null);
if (result.isRight()) {
log.error("Failed to associate user {} to component {}. Edge type is {}", userData, componentData.getUniqueId(), GraphEdgeLabels.CREATOR);
@@ -464,11 +444,7 @@ public abstract class ComponentOperation {
ArtifactDefinition artifactDefinition = entry.getValue();
Either<ArtifactDefinition, StorageOperationStatus> addArifactToResource = Either.left(artifactDefinition);
- // if ((artifactDefinition.getUniqueId() != null) &&
- // !artifactDefinition.getUniqueId().isEmpty()) {
addArifactToResource = artifactOperation.addArifactToComponent(artifactDefinition, (String) componentData.getUniqueId(), nodeType, false, true);
- // }
-
if (addArifactToResource.isRight()) {
return addArifactToResource.right().value();
}
@@ -497,68 +473,68 @@ public abstract class ComponentOperation {
for (ResourceMetadataData resourceData : resourceList) {
builder.append(resourceData.getUniqueId() + "|");
}
- log.debug("resources with property name: {} exists in graph. Found {}", name, builder.toString());
+ log.debug("resources with property name:{} exists in graph. found {}",name, builder.toString());
}
return Either.left(false);
} else {
- log.debug("resources with property name:" + name + " does not exists in graph");
+ log.debug("resources with property name:{} does not exists in graph", name);
return Either.left(true);
}
}
-
- protected Either<Boolean, StorageOperationStatus> validateToscaResourceNameUniqueness(String name, TitanGenericDao titanGenericDao) {
+
+ protected Either<Boolean, StorageOperationStatus> validateServiceNameUniqueness(String name, TitanGenericDao titanGenericDao) {
Map<String, Object> properties = new HashMap<>();
+ String normalizedName = ValidationUtils.normaliseComponentName(name);
+ properties.put(GraphPropertiesDictionary.NORMALIZED_NAME.getProperty(), normalizedName);
- properties.put(GraphPropertiesDictionary.TOSCA_RESOURCE_NAME.getProperty(), name);
-
- Either<List<ResourceMetadataData>, TitanOperationStatus> resources = titanGenericDao.getByCriteria(NodeTypeEnum.Resource, properties, ResourceMetadataData.class);
- if (resources.isRight() && resources.right().value() != TitanOperationStatus.NOT_FOUND) {
- log.debug("failed to get resources from graph with property name:" + name);
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(resources.right().value()));
+ Either<List<ServiceMetadataData>, TitanOperationStatus> services = titanGenericDao.getByCriteria(NodeTypeEnum.Service, properties, ServiceMetadataData.class);
+ if (services.isRight() && services.right().value() != TitanOperationStatus.NOT_FOUND) {
+ log.debug("failed to get services from graph with property name: {}" , name);
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(services.right().value()));
}
- List<ResourceMetadataData> resourceList = (resources.isLeft() ? resources.left().value() : null);
- if (resourceList != null && resourceList.size() > 0) {
+ List<ServiceMetadataData> serviceList = (services.isLeft() ? services.left().value() : null);
+ if (serviceList != null && serviceList.size() > 0) {
if (log.isDebugEnabled()) {
StringBuilder builder = new StringBuilder();
- for (ResourceMetadataData resourceData : resourceList) {
- builder.append(resourceData.getUniqueId() + "|");
+ for (ServiceMetadataData serviceData : serviceList) {
+ builder.append(serviceData.getUniqueId() + "|");
}
- log.debug("resources with property name:" + name + " exists in graph. found " + builder.toString());
+ log.debug("Service with property name:{} exists in graph. found {}" , name, builder.toString());
}
+
return Either.left(false);
} else {
- log.debug("resources with property name: {} dows not exists in the graph", name);
+ log.debug("Service with property name:{} does not exists in graph", name);
return Either.left(true);
}
-
}
-
- protected Either<Boolean, StorageOperationStatus> validateServiceNameUniqueness(String name, TitanGenericDao titanGenericDao) {
+
+ protected Either<Boolean, StorageOperationStatus> validateToscaResourceNameUniqueness(String name, TitanGenericDao titanGenericDao) {
Map<String, Object> properties = new HashMap<>();
- String normalizedName = ValidationUtils.normaliseComponentName(name);
- properties.put(GraphPropertiesDictionary.NORMALIZED_NAME.getProperty(), normalizedName);
- Either<List<ServiceMetadataData>, TitanOperationStatus> services = titanGenericDao.getByCriteria(NodeTypeEnum.Service, properties, ServiceMetadataData.class);
- if (services.isRight() && services.right().value() != TitanOperationStatus.NOT_FOUND) {
- log.debug("failed to get services from graph with property name: {}", name);
- return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(services.right().value()));
+ properties.put(GraphPropertiesDictionary.TOSCA_RESOURCE_NAME.getProperty(), name);
+
+ Either<List<ResourceMetadataData>, TitanOperationStatus> resources = titanGenericDao.getByCriteria(NodeTypeEnum.Resource, properties, ResourceMetadataData.class);
+ if (resources.isRight() && resources.right().value() != TitanOperationStatus.NOT_FOUND) {
+ log.debug("failed to get resources from graph with property name: {}" , name);
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(resources.right().value()));
}
- List<ServiceMetadataData> serviceList = (services.isLeft() ? services.left().value() : null);
- if (serviceList != null && serviceList.size() > 0) {
+ List<ResourceMetadataData> resourceList = (resources.isLeft() ? resources.left().value() : null);
+ if (resourceList != null && resourceList.size() > 0) {
if (log.isDebugEnabled()) {
StringBuilder builder = new StringBuilder();
- for (ServiceMetadataData serviceData : serviceList) {
- builder.append(serviceData.getUniqueId() + "|");
+ for (ResourceMetadataData resourceData : resourceList) {
+ builder.append(resourceData.getUniqueId() + "|");
}
- log.debug("Service with property name: {} exists in graph. Found {}", name, builder.toString());
+ log.debug("resources with property name:{} exists in graph. found {}" , name, builder.toString());
}
-
return Either.left(false);
} else {
- log.debug("Service with property name: {} dows not exists in graph", name);
+ log.debug("resources with property name:{} does not exists in graph", name);
return Either.left(true);
}
+
}
protected Either<Boolean, StorageOperationStatus> validateComponentNameUniqueness(String name, TitanGenericDao titanGenericDao, NodeTypeEnum type) {
@@ -568,7 +544,7 @@ public abstract class ComponentOperation {
Either<List<ComponentMetadataData>, TitanOperationStatus> components = titanGenericDao.getByCriteria(type, properties, ComponentMetadataData.class);
if (components.isRight() && components.right().value() != TitanOperationStatus.NOT_FOUND) {
- log.debug("failed to get components from graph with property name: {}", name);
+ log.debug("failed to get components from graph with property name: {}" , name);
return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(components.right().value()));
}
List<ComponentMetadataData> componentList = (components.isLeft() ? components.left().value() : null);
@@ -578,58 +554,16 @@ public abstract class ComponentOperation {
for (ComponentMetadataData componentData : componentList) {
builder.append(componentData.getUniqueId() + "|");
}
- log.debug("Component with property name: {} exists in graph. Found {}", name, builder.toString());
+ log.debug("Component with property name:{} exists in graph. found {}" , name, builder.toString());
}
return Either.left(false);
} else {
- log.debug("Component with property name: {} does not exists in graph", name);
+ log.debug("Component with property name:{} does not exists in graph", name);
return Either.left(true);
}
}
- // protected TitanOperationStatus setComponentCategoryFromGraph(String
- // uniqueId, Component component, TitanGenericDao titanGenericDao,
- // NodeTypeEnum categoryType) {
- //
- // Either<List<ImmutablePair<CategoryData, GraphEdge>>,
- // TitanOperationStatus> parentNode =
- // titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Resource),
- // uniqueId, GraphEdgeLabels.CATEGORY, categoryType,
- // CategoryData.class);
- // if (parentNode.isRight()) {
- // return parentNode.right().value();
- // }
- //
- // List<ImmutablePair<CategoryData, GraphEdge>> listValue =
- // parentNode.left().value();
- // log.debug("Result after looking for category nodes pointed by resource "
- // + uniqueId + ". status is " + listValue);
- // if (listValue.size() > 1) {
- // log.error("Multiple edges foud between resource " + uniqueId + " to
- // category nodes.");
- // }
- // ImmutablePair<CategoryData, GraphEdge> value = listValue.get(0);
- // log.debug("Found parent node {}", value);
- //
- // CategoryData categoryData = value.getKey();
- // String categoryStr = null;
- // if
- // (NodeTypeEnum.ResourceCategory.name().equalsIgnoreCase(categoryData.getLabel()))
- // {
- // StringBuilder sb = new StringBuilder();
- // sb.append(((ResourceCategoryData) categoryData).getCategoryName());
- // sb.append("/");
- // sb.append(categoryData.getName());
- // categoryStr = sb.toString();
- // } else {
- // categoryStr = categoryData.getName();
- // }
- //
- // component.setCategory(categoryStr);
- // return TitanOperationStatus.OK;
- // }
-
protected StorageOperationStatus setArtifactFromGraph(String uniqueId, Component component, NodeTypeEnum type, IArtifactOperation artifactOperation) {
StorageOperationStatus result = StorageOperationStatus.OK;
Either<Map<String, ArtifactDefinition>, StorageOperationStatus> artifacts = artifactOperation.getArtifacts(uniqueId, type, true);
@@ -686,15 +620,16 @@ public abstract class ComponentOperation {
return component;
}
- private <T, S extends ComponentMetadataData> Either<List<T>, StorageOperationStatus> collectComponents(TitanGraph graph, NodeTypeEnum neededType, String categoryUid, NodeTypeEnum categoryType, Class<S> clazz) {
+ private <T, S extends ComponentMetadataData> Either<List<T>, StorageOperationStatus> collectComponents(TitanGraph graph, NodeTypeEnum neededType, String categoryUid, NodeTypeEnum categoryType, Class<S> clazz, ResourceTypeEnum resourceType) {
List<T> components = new ArrayList<>();
Either<List<ImmutablePair<S, GraphEdge>>, TitanOperationStatus> parentNodes = titanGenericDao.getParentNodes(UniqueIdBuilder.getKeyByNodeType(categoryType), categoryUid, GraphEdgeLabels.CATEGORY, neededType, clazz);
if (parentNodes.isLeft()) {
for (ImmutablePair<S, GraphEdge> component : parentNodes.left().value()) {
ComponentMetadataDataDefinition componentData = component.getLeft().getMetadataDataDefinition();
Boolean isHighest = componentData.isHighestVersion();
- Boolean isComplex = neededType == NodeTypeEnum.Resource ? ResourceTypeEnum.VF.equals(((ResourceMetadataDataDefinition) componentData).getResourceType()) : true;
- if (isHighest && isComplex) {
+ boolean isMatchingResourceType = isMatchingByResourceType(neededType, resourceType, componentData);
+
+ if (isHighest && isMatchingResourceType) {
Either<T, StorageOperationStatus> result = getLightComponent(componentData.getUniqueId(), true);
if (result.isRight()) {
return Either.right(result.right().value());
@@ -706,15 +641,31 @@ public abstract class ComponentOperation {
return Either.left(components);
}
+ private boolean isMatchingByResourceType(NodeTypeEnum componentType, ResourceTypeEnum resourceType,
+ ComponentMetadataDataDefinition componentData) {
+
+ boolean isMatching;
+ if (componentType == NodeTypeEnum.Resource) {
+ if (resourceType == null) {
+ isMatching = true;
+ } else {
+ isMatching = resourceType == ((ResourceMetadataDataDefinition)componentData).getResourceType();
+ }
+ } else {
+ isMatching = true;
+ }
+ return isMatching;
+ }
+
protected <T, S extends ComponentMetadataData> Either<List<T>, StorageOperationStatus> fetchByCategoryOrSubCategoryUid(String categoryUid, NodeTypeEnum categoryType, String categoryLabel, NodeTypeEnum neededType, boolean inTransaction,
- Class<S> clazz) {
+ Class<S> clazz, ResourceTypeEnum resourceType) {
try {
Either<TitanGraph, TitanOperationStatus> graph = titanGenericDao.getGraph();
if (graph.isRight()) {
return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(graph.right().value()));
}
- return collectComponents(graph.left().value(), neededType, categoryUid, categoryType, clazz);
+ return collectComponents(graph.left().value(), neededType, categoryUid, categoryType, clazz, resourceType);
} finally {
if (false == inTransaction) {
@@ -724,12 +675,12 @@ public abstract class ComponentOperation {
}
protected <T, S extends ComponentMetadataData> Either<List<T>, StorageOperationStatus> fetchByCategoryOrSubCategoryName(String categoryName, NodeTypeEnum categoryType, String categoryLabel, NodeTypeEnum neededType, boolean inTransaction,
- Class<S> clazz) {
+ Class<S> clazz, ResourceTypeEnum resourceType) {
List<T> components = new ArrayList<>();
try {
Class categoryClazz = categoryType == NodeTypeEnum.ServiceNewCategory ? CategoryData.class : SubCategoryData.class;
Map<String, Object> props = new HashMap<String, Object>();
- props.put(GraphPropertiesDictionary.NAME.getProperty(), categoryName);
+ props.put(GraphPropertiesDictionary.NORMALIZED_NAME.getProperty(), ValidationUtils.normalizeCategoryName4Uniqueness(categoryName));
Either<List<GraphNode>, TitanOperationStatus> getCategory = titanGenericDao.getByCriteria(categoryType, props, categoryClazz);
if (getCategory.isRight()) {
return Either.right(StorageOperationStatus.CATEGORY_NOT_FOUND);
@@ -740,7 +691,7 @@ public abstract class ComponentOperation {
}
for (GraphNode category : getCategory.left().value()) {
- Either<List<T>, StorageOperationStatus> result = collectComponents(graph.left().value(), neededType, (String) category.getUniqueId(), categoryType, clazz);
+ Either<List<T>, StorageOperationStatus> result = collectComponents(graph.left().value(), neededType, (String) category.getUniqueId(), categoryType, clazz, resourceType);
if (result.isRight()) {
return result;
}
@@ -784,7 +735,6 @@ public abstract class ComponentOperation {
} else {
// for Designer retrieve specific user
String key = UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.User);
- // users = graph.left().value().getVertices(key, userId);
users = graph.left().value().query().has(key, userId).vertices();
}
Iterator<TitanVertex> userIterator = users.iterator();
@@ -852,7 +802,7 @@ public abstract class ComponentOperation {
String stateStr = edge.value(GraphEdgePropertiesDictionary.STATE.getProperty());
LifecycleStateEnum state = LifecycleStateEnum.findState(stateStr);
if (state == null) {
- log.debug("not supported STATE for element {}", stateStr);
+ log.debug("not supported STATE for element {}" , stateStr);
continue;
}
if (lifecycleStates != null && lifecycleStates.contains(state)) {
@@ -902,7 +852,7 @@ public abstract class ComponentOperation {
if (id != null) {
Either<T, StorageOperationStatus> component = getLightComponent(id, inTransaction);
if (component.isRight()) {
- log.debug("Failed to get component for id = {} error: {} skip resource", id, component.right().value());
+ log.debug("Failed to get component for id = {} error : {} skip resource", id, component.right().value());
} else {
components.add(component.left().value());
}
@@ -929,8 +879,11 @@ public abstract class ComponentOperation {
}
private Either<ArtifactData, StorageOperationStatus> generateAndUpdateToscaFileName(String componentType, String componentName, String componentId, NodeTypeEnum type, ArtifactDefinition artifactInfo) {
- Map<String, Object> getConfig = (Map<String, Object>) ConfigurationManager.getConfigurationManager().getConfiguration().getToscaArtifacts().entrySet().stream().filter(p -> p.getKey().equalsIgnoreCase(artifactInfo.getArtifactLabel()))
- .findAny().get().getValue();
+ Map<String, Object> getConfig = (Map<String, Object>) ConfigurationManager.getConfigurationManager().getConfiguration().getToscaArtifacts().entrySet().stream()
+ .filter(p -> p.getKey().equalsIgnoreCase(artifactInfo.getArtifactLabel()))
+ .findAny()
+ .get()
+ .getValue();
artifactInfo.setArtifactName(componentType + "-" + componentName + getConfig.get("artifactName"));
return artifactOperation.updateToscaArtifactNameOnGraph(artifactInfo, artifactInfo.getUniqueId(), type, componentId);
}
@@ -961,7 +914,7 @@ public abstract class ComponentOperation {
Either<CategoryData, StorageOperationStatus> categoryResult = elementOperation.getNewCategoryData(newCategory.getName(), NodeTypeEnum.ServiceNewCategory, CategoryData.class);
if (categoryResult.isRight()) {
StorageOperationStatus status = categoryResult.right().value();
- log.error("Cannot find category " + newCategory.getName() + " in the graph. status is " + status);
+ log.error("Cannot find category {} in the graph. status is {}", newCategory.getName(), status);
return status;
}
@@ -1008,9 +961,6 @@ public abstract class ComponentOperation {
public abstract <T> Either<T, StorageOperationStatus> getComponent(String id, ComponentParametersView componentParametersView, boolean inTrasnaction);
- // public abstract <T> Either<T, StorageOperationStatus>
- // getComponent_tx(String id, boolean inTransaction);
-
protected abstract <T> Either<T, StorageOperationStatus> getComponentByNameAndVersion(String name, String version, Map<String, Object> additionalParams, boolean inTransaction);
public abstract <T> Either<T, StorageOperationStatus> getLightComponent(String id, boolean inTransaction);
@@ -1129,7 +1079,7 @@ public abstract class ComponentOperation {
log.debug("No nodes in graph for criteria : from type = {} and properties = {}", type, props);
return Either.left(result);
} catch (Exception e) {
- log.debug("Failed get by criteria for type = {} and properties = {}. {}", type, props, e);
+ log.debug("Failed get by criteria for type = {} and properties = {}", type, props, e);
return Either.right(TitanGraphClient.handleTitanException(e));
}
}
@@ -1190,7 +1140,7 @@ public abstract class ComponentOperation {
// inTransaction);
Either<T, StorageOperationStatus> component = getLightComponent((String) componentData.getUniqueId(), inTransaction);
if (component.isRight()) {
- log.debug("Failed to get component for id = {} error : {} skip resource", componentData.getUniqueId(), component.right().value());
+ log.debug("Failed to get component for id = {} error : {} skip resource", componentData.getUniqueId(), component.right().value());
// return Either.right(service.right().value());
} else {
result.add(component.left().value());
@@ -1304,6 +1254,7 @@ public abstract class ComponentOperation {
for (ProductMetadataData data : componentsP) {
versionMap.put(data.getMetadataDataDefinition().getVersion(), (String) data.getUniqueId());
}
+ break;
default:
break;
}
@@ -1334,7 +1285,7 @@ public abstract class ComponentOperation {
return DaoStatusConverter.convertTitanStatusToStorageStatus(titanStatus);
}
- log.trace("After adding additional information to component {}. Result is {}", componentId, status.left().value());
+ log.trace("After adding additional information to component {}. Result is {}" , componentId ,status.left().value());
return StorageOperationStatus.OK;
@@ -1619,7 +1570,7 @@ public abstract class ComponentOperation {
// }
valueUid = valuedProperty.getValueUniqueUid();
- log.trace("Found value {} under resource instance whice override the default value {}", value, defaultValue);
+ log.trace("Found value {} under resource instance which override the default value {}" , value, defaultValue);
}
ComponentInstanceProperty resourceInstanceProperty = new ComponentInstanceProperty(propertyDefinition, value, valueUid);
@@ -1681,7 +1632,7 @@ public abstract class ComponentOperation {
StorageOperationStatus updateComponent;
if (updateNode.isRight()) {
- log.debug("Failed to update component {}. Status is {}", componentMetaData.getUniqueId(), updateNode.right().value());
+ log.debug("Failed to update component {}. status is {}", componentMetaData.getUniqueId(), updateNode.right().value());
updateComponent = DaoStatusConverter.convertTitanStatusToStorageStatus(updateNode.right().value());
result = Either.right(updateComponent);
return result;
@@ -1706,14 +1657,13 @@ public abstract class ComponentOperation {
}
private Either<List<RequirementDefinition>, TitanOperationStatus> convertReqDataListToReqDefList(ComponentInstance componentInstance, List<ImmutablePair<RequirementData, GraphEdge>> requirementData) {
- ConvertDataToDef<RequirementDefinition, RequirementData> convertor = (data, edge) -> convertReqDataToReqDef(data, edge);
+ ConvertDataToDef<RequirementDefinition, RequirementData> convertor = (instance, data, edge) -> convertReqDataToReqDef(instance, data, edge);
AddOwnerData<RequirementDefinition> dataAdder = (reqDef, compInstance) -> addOwnerDataReq(reqDef, compInstance);
-
return convertDataToDefinition(componentInstance, requirementData, convertor, dataAdder);
}
private Either<List<CapabilityDefinition>, TitanOperationStatus> convertCapDataListToCapDefList(ComponentInstance componentInstance, List<ImmutablePair<CapabilityData, GraphEdge>> capabilityData) {
- ConvertDataToDef<CapabilityDefinition, CapabilityData> convertor = (data, edge) -> convertCapDataToCapDef(data, edge);
+ ConvertDataToDef<CapabilityDefinition, CapabilityData> convertor = (instance, data, edge) -> convertCapDataToCapDef(instance, data, edge);
AddOwnerData<CapabilityDefinition> dataAdder = (capDef, compInstance) -> addOwnerDataCap(capDef, compInstance);
Either<List<CapabilityDefinition>, TitanOperationStatus> convertationResult = convertDataToDefinition(componentInstance, capabilityData, convertor, dataAdder);
if (convertationResult.isLeft()) {
@@ -1722,7 +1672,7 @@ public abstract class ComponentOperation {
return convertationResult;
}
- private Either<CapabilityDefinition, TitanOperationStatus> convertCapDataToCapDef(CapabilityData data, GraphEdge edge) {
+ private Either<CapabilityDefinition, TitanOperationStatus> convertCapDataToCapDef(ComponentInstance componentInstance, CapabilityData data, GraphEdge edge) {
Either<CapabilityDefinition, TitanOperationStatus> eitherDef = capabilityOperation.getCapabilityByCapabilityData(data);
if (eitherDef.isLeft()) {
@@ -1735,6 +1685,7 @@ public abstract class ComponentOperation {
capabilityOperation.getCapabilitySourcesList(source, sourcesList);
capDef.setName(name);
capDef.setCapabilitySources(sourcesList);
+ capDef.setPath(toscaDefinitionPathCalculator.calculateToscaDefinitionPath(componentInstance, edge));
String requiredOccurrences = (String) properties.get(GraphEdgePropertiesDictionary.REQUIRED_OCCURRENCES.getProperty());
if (requiredOccurrences != null) {
@@ -1751,7 +1702,7 @@ public abstract class ComponentOperation {
return eitherDef;
}
- private Either<RequirementDefinition, TitanOperationStatus> convertReqDataToReqDef(RequirementData data, GraphEdge edge) {
+ private Either<RequirementDefinition, TitanOperationStatus> convertReqDataToReqDef(ComponentInstance componentInstance, RequirementData data, GraphEdge edge) {
Either<RequirementDefinition, TitanOperationStatus> eitherDef = requirementOperation.getRequirement(data.getUniqueId());
if (eitherDef.isLeft()) {
@@ -1764,6 +1715,7 @@ public abstract class ComponentOperation {
if (requiredOccurrences != null) {
requirementDef.setMinOccurrences(requiredOccurrences);
}
+ requirementDef.setPath(toscaDefinitionPathCalculator.calculateToscaDefinitionPath(componentInstance, edge));
String leftOccurrences = (String) properties.get(GraphEdgePropertiesDictionary.LEFT_OCCURRENCES.getProperty());
if (leftOccurrences != null) {
requirementDef.setMaxOccurrences(leftOccurrences);
@@ -1777,7 +1729,7 @@ public abstract class ComponentOperation {
private <Def, Data> Either<List<Def>, TitanOperationStatus> convertDataToDefinition(ComponentInstance componentInstance, List<ImmutablePair<Data, GraphEdge>> requirementData, ConvertDataToDef<Def, Data> convertor, AddOwnerData<Def> dataAdder) {
Either<List<Def>, TitanOperationStatus> eitherResult;
// Convert Data To Definition
- Stream<Either<Def, TitanOperationStatus>> reqDefStream = requirementData.stream().map(e -> convertor.convert(e.left, e.right));
+ Stream<Either<Def, TitanOperationStatus>> reqDefStream = requirementData.stream().map(e -> convertor.convert(componentInstance, e.left, e.right));
// Collect But Stop After First Error
List<Either<Def, TitanOperationStatus>> filteredReqDefList = StreamUtils.takeWhilePlusOne(reqDefStream, p -> p.isLeft()).collect(Collectors.toList());
@@ -1796,7 +1748,7 @@ public abstract class ComponentOperation {
}
interface ConvertDataToDef<Def, Data> {
- Either<Def, TitanOperationStatus> convert(Data d, GraphEdge edge);
+ Either<Def, TitanOperationStatus> convert(ComponentInstance compInstance, Data d, GraphEdge edge);
}
interface AddOwnerData<Def> {
@@ -1979,7 +1931,7 @@ public abstract class ComponentOperation {
NodeTypeEnum label = NodeTypeEnum.getByName(metadataData.getLabel());
switch (label) {
case Resource:
- pair = new ImmutablePair<String, String>(metadataData.getMetadataDataDefinition().getName(), ((ResourceMetadataDataDefinition) metadataData.getMetadataDataDefinition()).getResourceType().getValue());
+ pair = new ImmutablePair<String, String>(metadataData.getMetadataDataDefinition().getName(), ((ResourceMetadataDataDefinition) metadataData.getMetadataDataDefinition()).getResourceType().name());
break;
default:
pair = new ImmutablePair<String, String>(metadataData.getMetadataDataDefinition().getName(), metadataData.getLabel());
@@ -2004,13 +1956,14 @@ public abstract class ComponentOperation {
switch (internalComponentType.toLowerCase()) {
case "vf":
properties.add(new ImmutableTriple<>(QueryType.HAS_NOT, GraphPropertiesDictionary.RESOURCE_TYPE.getProperty(), ResourceTypeEnum.VF.name()));
- properties.add(new ImmutableTriple<>(QueryType.HAS_NOT, GraphPropertiesDictionary.RESOURCE_TYPE.getProperty(), ResourceTypeEnum.VL.name()));
+// properties.add(new ImmutableTriple<>(QueryType.HAS_NOT, GraphPropertiesDictionary.RESOURCE_TYPE.getProperty(), ResourceTypeEnum.VL.name()));
// hasNotPpropertiesToMatch.put(GraphPropertiesDictionary.RESOURCE_TYPE.getProperty(),
// ResourceTypeEnum.VF.name());
break;
case "service":
properties.add(new ImmutableTriple<>(QueryType.HAS_NOT, GraphPropertiesDictionary.RESOURCE_TYPE.getProperty(), ResourceTypeEnum.VFC.name()));
- properties.add(new ImmutableTriple<>(QueryType.HAS_NOT, GraphPropertiesDictionary.RESOURCE_TYPE.getProperty(), ResourceTypeEnum.VL.name()));
+ properties.add(new ImmutableTriple<>(QueryType.HAS_NOT, GraphPropertiesDictionary.RESOURCE_TYPE.getProperty(), ResourceTypeEnum.VFCMT.name()));
+// properties.add(new ImmutableTriple<>(QueryType.HAS_NOT, GraphPropertiesDictionary.RESOURCE_TYPE.getProperty(), ResourceTypeEnum.VL.name()));
// hasNotPpropertiesToMatch.put(GraphPropertiesDictionary.RESOURCE_TYPE.getProperty(),
// ResourceTypeEnum.VFC.name());
break;
@@ -2104,11 +2057,7 @@ public abstract class ComponentOperation {
manager.addJob(new Job() {
@Override
public Either<Component, StorageOperationStatus> doWork() {
- // long start = System.currentTimeMillis();
Either<Component, StorageOperationStatus> component = getComponent(componentUid, componentParametersView, false);
- // long stop = System.currentTimeMillis();
- // log.info("********** Time calculation in ms:
- // getComponent single {}", (stop-start));
return component;
}
});
@@ -2205,10 +2154,7 @@ public abstract class ComponentOperation {
}
<T> Either<T, StorageOperationStatus> getLightComponent(String id, NodeTypeEnum nodeType, boolean inTransaction) {
- Either<Component, StorageOperationStatus> metadataComponent = getMetadataComponent(id, nodeType, inTransaction);
- if (metadataComponent.isRight()) {
- }
T component = null;
try {
log.debug("Starting to build light component of type {}, id {}", nodeType, id);
@@ -2333,7 +2279,7 @@ public abstract class ComponentOperation {
return Either.left(instanceCounter);
}
- protected TitanOperationStatus setComponentInstancesPropertiesFromGraph(String uniqueId, Component component) {
+ protected TitanOperationStatus setComponentInstancesPropertiesFromGraph(Component component) {
List<ComponentInstance> resourceInstances = component.getComponentInstances();
@@ -2390,7 +2336,7 @@ public abstract class ComponentOperation {
return TitanOperationStatus.OK;
}
-
+
protected TitanOperationStatus setComponentInstancesInputsFromGraph(String uniqueId, Component component) {
Map<String, List<ComponentInstanceInput>> resourceInstancesInputs = new HashMap<>();
@@ -2546,8 +2492,7 @@ public abstract class ComponentOperation {
Instant start = Instant.now();
Either<List<ComponentInstance>, StorageOperationStatus> resourceInstancesOfService = componentInstanceOperation.getAllComponentInstancesMetadataOnly(componentId, nodeType);
Instant end = Instant.now();
- log.debug("TOTAL TIME BL GET INSTANCES: {}", Duration.between(start, end)); // prints
- // PT1M3.553S
+ log.debug("TOTAL TIME BL GET INSTANCES: {}", Duration.between(start, end));
return resourceInstancesOfService;
}
@@ -2648,12 +2593,7 @@ public abstract class ComponentOperation {
break;
}
if (clazz1 != null) {
- // long startGetAllVersions =
- // System.currentTimeMillis();
Either<Map<String, String>, TitanOperationStatus> versionList = getVersionList(componentTypeEnum.getNodeType(), cachedComponent.getVersion(), cachedComponent.getUUID(), cachedComponent.getSystemName(), clazz1);
- // log.debug("Fetch all versions for component {} took
- // {} ms", cachedComponent.getUniqueId(),
- // System.currentTimeMillis() - startGetAllVersions);
if (versionList.isRight()) {
return Either.right(ActionStatus.GENERAL_ERROR);
}
@@ -2732,7 +2672,7 @@ public abstract class ComponentOperation {
if (counterStatus.isRight()) {
- log.error("Cannot find componentInstanceCounter for component {} in the graph. Status is {}", componentData.getUniqueId(), counterStatus);
+ log.error("Cannot find componentInstanceCounter for component {} in the graph. status is {}", componentData.getUniqueId(), counterStatus);
// result = sendError(status,
// StorageOperationStatus.USER_NOT_FOUND);
return result;
@@ -2742,7 +2682,7 @@ public abstract class ComponentOperation {
String modifierUserId = component.getLastUpdaterUserId();
if (modifierUserId == null || modifierUserId.isEmpty()) {
- log.error("userId is missing in the request.");
+ log.error("UserId is missing in the request.");
result = Either.right(StorageOperationStatus.BAD_REQUEST);
return result;
}
@@ -2750,7 +2690,7 @@ public abstract class ComponentOperation {
if (findUser.isRight()) {
TitanOperationStatus status = findUser.right().value();
- log.error("Cannot find user {} in the graph. Status is {}", modifierUserId, status);
+ log.error("Cannot find user {} in the graph. status is {}", modifierUserId, status);
// result = sendError(status,
// StorageOperationStatus.USER_NOT_FOUND);
return result;
@@ -2780,7 +2720,7 @@ public abstract class ComponentOperation {
} else {
log.debug("Going to update the last modifier user of the resource from {} to {}", currentModifier, modifierUserId);
StorageOperationStatus status = moveLastModifierEdge(component, componentData, modifierUserData, type);
- log.debug("Finish to update the last modifier user of the resource from {} to {}. Status is {}", currentModifier, modifierUserId, status);
+ log.debug("Finish to update the last modifier user of the resource from {} to {}. status is {}", currentModifier, modifierUserId, status);
if (status != StorageOperationStatus.OK) {
result = Either.right(status);
return result;
@@ -2811,7 +2751,7 @@ public abstract class ComponentOperation {
Either<TagData, TitanOperationStatus> createTagResult = titanGenericDao.createNode(tagData, TagData.class);
if (createTagResult.isRight()) {
TitanOperationStatus status = createTagResult.right().value();
- log.error("Cannot find tag {} in the graph. Status is {}", tagData, status);
+ log.error("Cannot find tag {} in the graph. status is {}", tagData, status);
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
return result;
}
@@ -2823,7 +2763,7 @@ public abstract class ComponentOperation {
Either<ComponentMetadataData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(componentData, ComponentMetadataData.class);
if (updateNode.isRight()) {
- log.error("Failed to update resource {}. Status is {}", component.getUniqueId(), updateNode.right().value());
+ log.error("Failed to update resource {}. status is {}", component.getUniqueId(), updateNode.right().value());
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(updateNode.right().value()));
return result;
}
@@ -2834,7 +2774,8 @@ public abstract class ComponentOperation {
// DE230195 in case resource name changed update TOSCA artifacts
// file names accordingly
String newSystemName = updatedResourceData.getMetadataDataDefinition().getSystemName();
- if (newSystemName != null && !newSystemName.equals(currentComponent.getSystemName())) {
+ String prevSystemName = currentComponent.getSystemName();
+ if (newSystemName != null && !newSystemName.equals(prevSystemName)) {
Map<String, ArtifactDefinition> toscaArtifacts = component.getToscaArtifacts();
if (toscaArtifacts != null) {
for (Entry<String, ArtifactDefinition> artifact : toscaArtifacts.entrySet()) {
@@ -2846,8 +2787,15 @@ public abstract class ComponentOperation {
}
}
}
-
+ //TODO call to new Artifact operation in order to update list of artifacts
+
+ //US833308 VLI in service - specific network_role property value logic
+ if (ComponentTypeEnum.SERVICE == component.getComponentType()) {
+ //update method logs success/error and returns boolean (true if nothing fails)
+ updateServiceNameInVLIsNetworkRolePropertyValues(component, prevSystemName, newSystemName);
+ }
}
+
if (component.getComponentType().equals(ComponentTypeEnum.RESOURCE)) {
updateDerived(component, currentComponent, componentData, component.getClass());
@@ -2863,13 +2811,7 @@ public abstract class ComponentOperation {
T updatedResourceValue = updatedResource.left().value();
result = Either.left(updatedResourceValue);
- if (log.isDebugEnabled()) {
- // String json = prettyJson.toJson(result.left().value());
- // log.debug("Resource retrieved after update is {}", json);
- }
-
return result;
-
} finally {
if (false == inTransaction) {
@@ -2883,4 +2825,139 @@ public abstract class ComponentOperation {
}
}
}
+
+ private boolean updateServiceNameInVLIsNetworkRolePropertyValues (Component component, String prevSystemName, String newSystemName) {
+ // find VLIs in service
+ boolean res = true;
+ if(null == component.getComponentInstances() || component.getComponentInstances().isEmpty()){
+ return res;
+ }
+
+ List <ComponentInstance> vlInstances =
+ component.getComponentInstances().stream()
+ .filter(p -> OriginTypeEnum.VL == p.getOriginType())
+ .collect(Collectors.toList());
+ if (!vlInstances.isEmpty()) {
+ for (ComponentInstance vlInstance : vlInstances){
+ // find network_role property
+ Optional <ComponentInstanceProperty> networkRoleProperty = component.getComponentInstancesProperties().get(vlInstance.getUniqueId()).stream()
+ .filter(p -> PropertyNames.NETWORK_ROLE.getPropertyName().equalsIgnoreCase(p.getName()))
+ .findAny();
+ res = res && updateNetworkRolePropertyValue(prevSystemName, newSystemName, vlInstance, networkRoleProperty);
+ }
+ }
+ return res;
+ }
+
+ private boolean updateNetworkRolePropertyValue(String prevSystemName, String newSystemName, ComponentInstance vlInstance, Optional<ComponentInstanceProperty> networkRoleProperty) {
+ if (networkRoleProperty.isPresent() && !StringUtils.isEmpty(networkRoleProperty.get().getValue()) ) {
+ ComponentInstanceProperty property = networkRoleProperty.get();
+ String updatedValue = property.getValue().replaceFirst(prevSystemName, newSystemName);
+ property.setValue(updatedValue);
+ StorageOperationStatus updateCustomizationUUID;
+ //disregard property value rule
+ property.setRules(null);
+ Either<ComponentInstanceProperty, StorageOperationStatus> result = componentInstanceOperation.updatePropertyValueInResourceInstance(property, vlInstance.getUniqueId(), true);
+ if (result.isLeft()) {
+ log.debug("Property value {} was updated on graph.", property.getValueUniqueUid());
+ updateCustomizationUUID = componentInstanceOperation.updateCustomizationUUID(vlInstance.getUniqueId());
+ } else {
+ updateCustomizationUUID = StorageOperationStatus.EXEUCTION_FAILED;
+ log.debug("Failed to update property value: {} in resource instance {}", updatedValue, vlInstance.getUniqueId());
+ }
+ return result.isLeft() && StorageOperationStatus.OK == updateCustomizationUUID;
+ }
+ return true;
+ }
+
+ public Either<ComponentMetadataData, StorageOperationStatus> updateComponentLastUpdateDateAndLastModifierOnGraph( Component component, User modifier, NodeTypeEnum componentType, boolean inTransaction) {
+
+ log.debug("Going to update last update date and last modifier info of component {}. ", component.getName());
+ Either<ComponentMetadataData, StorageOperationStatus> result = null;
+ try{
+ String modifierUserId = modifier.getUserId();
+ ComponentMetadataData componentData = getMetaDataFromComponent(component);
+ String currentUser = component.getLastUpdaterUserId();
+ UserData modifierUserData = new UserData();
+ modifierUserData.setUserId(modifierUserId);
+ if (currentUser.equals(modifierUserId)) {
+ log.debug("Graph last modifier edge should not be changed since the modifier is the same as the last modifier.");
+ } else {
+ log.debug("Going to update the last modifier user of the component from {} to {}", currentUser, modifierUserId);
+ StorageOperationStatus status = moveLastModifierEdge(component, componentData, modifierUserData, componentType);
+ log.debug("Finish to update the last modifier user of the resource from {} to {}. status is {}", currentUser, modifierUserId, status);
+ if (status != StorageOperationStatus.OK) {
+ result = Either.right(status);
+ }
+ }
+ Either<ComponentMetadataData, TitanOperationStatus> updateNode = null;
+ if(result == null){
+ log.debug("Going to update the component {} with new last update date. ", component.getName());
+ componentData.getMetadataDataDefinition().setLastUpdateDate(System.currentTimeMillis());
+ updateNode = titanGenericDao.updateNode(componentData, ComponentMetadataData.class);
+ if (updateNode.isRight()) {
+ log.error("Failed to update component {}. status is {}", component.getUniqueId(), updateNode.right().value());
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(updateNode.right().value()));
+ }
+ }
+ if(result == null){
+ result = Either.left(updateNode.left().value());
+ }
+ }catch(Exception e){
+ log.error("Exception occured during update last update date and last modifier info of component {}. The message is {}. ", component.getName(), e.getMessage());
+ }finally {
+ if(!inTransaction){
+ if (result == null || result.isRight()) {
+ log.error("Going to execute rollback on graph.");
+ titanGenericDao.rollback();
+ } else {
+ log.debug("Going to execute commit on graph.");
+ titanGenericDao.commit();
+ }
+ }
+ }
+ return result;
+ }
+ /**
+ * updates component lastUpdateDate on graph node
+ * @param component
+ * @param componentType
+ * @param lastUpdateDate
+ * @param inTransaction
+ * @return
+ */
+ public Either<ComponentMetadataData, StorageOperationStatus> updateComponentLastUpdateDateOnGraph( Component component, NodeTypeEnum componentType, Long lastUpdateDate, boolean inTransaction) {
+
+ log.debug("Going to update last update date of component {}. ", component.getName());
+ Either<ComponentMetadataData, StorageOperationStatus> result = null;
+ try{
+ ComponentMetadataData componentData = getMetaDataFromComponent(component);
+ Either<ComponentMetadataData, TitanOperationStatus> updateNode = null;
+ if(result == null){
+ log.debug("Going to update the component {} with new last update date. ", component.getName());
+ componentData.getMetadataDataDefinition().setLastUpdateDate(lastUpdateDate);
+ updateNode = titanGenericDao.updateNode(componentData, ComponentMetadataData.class);
+ if (updateNode.isRight()) {
+ log.error("Failed to update component {}. status is {}", component.getUniqueId(), updateNode.right().value());
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(updateNode.right().value()));
+ }
+ }
+ if(result == null){
+ result = Either.left(updateNode.left().value());
+ }
+ }catch(Exception e){
+ log.error("Exception occured during update last update date of component {}. The message is {}. ", component.getName(), e.getMessage());
+ }finally {
+ if(!inTransaction){
+ if (result == null || result.isRight()) {
+ log.error("Going to execute rollback on graph.");
+ titanGenericDao.rollback();
+ } else {
+ log.debug("Going to execute commit on graph.");
+ titanGenericDao.commit();
+ }
+ }
+ }
+ return result;
+ }
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ConsumerOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ConsumerOperation.java
index aafa4ba444..215a1464a6 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ConsumerOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ConsumerOperation.java
@@ -46,11 +46,11 @@ public class ConsumerOperation implements IConsumerOperation {
@Override
public Either<ConsumerData, StorageOperationStatus> getCredentials(String consumerName) {
Either<ConsumerData, StorageOperationStatus> result = null;
- log.debug("retriving Credentials for: {}.", consumerName);
+ log.debug("retriving Credentials for: {}", consumerName);
Either<ConsumerData, TitanOperationStatus> getNode = titanGenericDao.getNode(GraphPropertiesDictionary.CONSUMER_NAME.getProperty(), consumerName, ConsumerData.class);
if (getNode.isRight()) {
TitanOperationStatus status = getNode.right().value();
- log.error("Error returned after get Consumer Data node " + consumerName + ". status returned is " + status);
+ log.error("Error returned after get Consumer Data node {}. status returned is {}", consumerName, status);
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
return result;
}
@@ -67,11 +67,11 @@ public class ConsumerOperation implements IConsumerOperation {
public Either<ConsumerData, StorageOperationStatus> createCredentials(ConsumerData consumerData, boolean inTransaction) {
Either<ConsumerData, StorageOperationStatus> result = null;
try {
- log.debug("creating Credentials for: {}.", consumerData.getUniqueId());
+ log.debug("creating Credentials for: {}", consumerData.getUniqueId());
Either<ConsumerData, TitanOperationStatus> createNode = titanGenericDao.createNode(consumerData, ConsumerData.class);
if (createNode.isRight()) {
TitanOperationStatus status = createNode.right().value();
- log.error("Error returned after creating Consumer Data node " + consumerData.getUniqueId() + ". status returned is " + status);
+ log.error("Error returned after creating Consumer Data node {}. status returned is {}", consumerData.getUniqueId(), status);
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
return result;
}
@@ -96,7 +96,7 @@ public class ConsumerOperation implements IConsumerOperation {
Either<ConsumerData, TitanOperationStatus> deleteNode = titanGenericDao.deleteNode(GraphPropertiesDictionary.CONSUMER_NAME.getProperty(), consumerName, ConsumerData.class);
if (deleteNode.isRight()) {
TitanOperationStatus status = deleteNode.right().value();
- log.error("Error returned after delete Consumer Data node {}. Status returned is {}", consumerName, status);
+ log.error("Error returned after delete Consumer Data node {}. status returned is {}", consumerName, status);
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
return result;
}
@@ -120,11 +120,11 @@ public class ConsumerOperation implements IConsumerOperation {
Either<ConsumerData, StorageOperationStatus> result = null;
try {
- log.debug("update Credentials for: {}.", consumerData.getUniqueId());
+ log.debug("update Credentials for: {}", consumerData.getUniqueId());
Either<ConsumerData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(consumerData, ConsumerData.class);
if (updateNode.isRight()) {
TitanOperationStatus status = updateNode.right().value();
- log.error("Error returned after delete Consumer Data node {}. Status returned is {}", consumerData.getUniqueId(), status);
+ log.error("Error returned after delete Consumer Data node {}. status returned is {}", consumerData.getUniqueId(), status);
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
return result;
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CsarOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CsarOperation.java
index 1420ce08d8..815eb5be0e 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CsarOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/CsarOperation.java
@@ -61,7 +61,6 @@ public class CsarOperation {
}
- // Mock returning a file from the file system until we have API from onboarding
public Either<Map<String, byte[]>, StorageOperationStatus> getMockCsar(String csarUuid) {
File dir = new File("/var/tmp/mockCsar");
FileFilter fileFilter = new WildcardFileFilter("*.csar");
@@ -93,11 +92,10 @@ public class CsarOperation {
*/
public Either<Map<String, byte[]>, StorageOperationStatus> getCsar(String csarUuid, User user) {
- Either<Map<String, byte[]>, StorageOperationStatus> result = onboardingClient.getCsar(csarUuid,
- user.getUserId());
+ Either<Map<String, byte[]>, StorageOperationStatus> result = onboardingClient.getCsar(csarUuid, user.getUserId());
if (result.isRight()) {
- log.debug("Cannot find csar {}. Status returned is {}", csarUuid, result.right().value());
+ log.debug("Cannot find csar {}. Staus returned is {}", csarUuid, result.right().value());
} else {
Map<String, byte[]> values = result.left().value();
if (values != null) {
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/DaoStatusConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/DaoStatusConverter.java
index b887c5b212..260763cced 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/DaoStatusConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/DaoStatusConverter.java
@@ -100,8 +100,7 @@ public class DaoStatusConverter {
}
- public static StorageOperationStatus convertRsrcUploadStatusToStorageStatus(
- ResourceUploadStatus resourceUploadStatus) {
+ public static StorageOperationStatus convertRsrcUploadStatusToStorageStatus(ResourceUploadStatus resourceUploadStatus) {
if (resourceUploadStatus == null) {
return StorageOperationStatus.GENERAL_ERROR;
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ElementOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ElementOperation.java
index 248a1d0460..ea42c6d76b 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ElementOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ElementOperation.java
@@ -29,7 +29,7 @@ import java.util.Map;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.tinkerpop.gremlin.structure.Vertex;
import org.openecomp.sdc.be.config.ConfigurationManager;
-import org.openecomp.sdc.be.config.Configuration.DeploymentArtifactTypeConfig;
+import org.openecomp.sdc.be.config.Configuration.ArtifactTypeConfig;
import org.openecomp.sdc.be.dao.api.ActionStatus;
import org.openecomp.sdc.be.dao.graph.datatype.GraphEdge;
import org.openecomp.sdc.be.dao.graph.datatype.GraphNode;
@@ -55,8 +55,10 @@ import org.openecomp.sdc.be.resources.data.TagData;
import org.openecomp.sdc.be.resources.data.category.CategoryData;
import org.openecomp.sdc.be.resources.data.category.GroupingData;
import org.openecomp.sdc.be.resources.data.category.SubCategoryData;
+import org.openecomp.sdc.common.util.ValidationUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
import com.thinkaurelius.titan.core.TitanGraph;
@@ -68,11 +70,11 @@ import fj.data.Either;
@Component("element-operation")
public class ElementOperation implements IElementOperation {
- @javax.annotation.Resource
private TitanGenericDao titanGenericDao;
- public ElementOperation() {
+ public ElementOperation(@Qualifier("titan-generic-dao") TitanGenericDao titanGenericDao) {
super();
+ this.titanGenericDao = titanGenericDao;
}
private static Logger log = LoggerFactory.getLogger(ElementOperation.class.getName());
@@ -107,15 +109,13 @@ public class ElementOperation implements IElementOperation {
}
@Override
- public Either<CategoryDefinition, ActionStatus> createCategory(CategoryDefinition category, NodeTypeEnum nodeType,
- boolean inTransaction) {
+ public Either<CategoryDefinition, ActionStatus> createCategory(CategoryDefinition category, NodeTypeEnum nodeType, boolean inTransaction) {
Either<CategoryDefinition, ActionStatus> result = null;
category.setUniqueId(UniqueIdBuilder.buildCategoryUid(category.getNormalizedName(), nodeType));
CategoryData categoryData = new CategoryData(nodeType, category);
try {
- Either<CategoryData, TitanOperationStatus> createNode = titanGenericDao.createNode(categoryData,
- CategoryData.class);
+ Either<CategoryData, TitanOperationStatus> createNode = titanGenericDao.createNode(categoryData, CategoryData.class);
if (createNode.isRight()) {
TitanOperationStatus value = createNode.right().value();
ActionStatus actionStatus = ActionStatus.GENERAL_ERROR;
@@ -141,21 +141,18 @@ public class ElementOperation implements IElementOperation {
}
@Override
- public Either<SubCategoryDefinition, ActionStatus> createSubCategory(String categoryId,
- SubCategoryDefinition subCategory, NodeTypeEnum nodeType) {
+ public Either<SubCategoryDefinition, ActionStatus> createSubCategory(String categoryId, SubCategoryDefinition subCategory, NodeTypeEnum nodeType) {
return createSubCategory(categoryId, subCategory, nodeType, false);
}
@Override
- public Either<SubCategoryDefinition, ActionStatus> createSubCategory(String categoryId,
- SubCategoryDefinition subCategory, NodeTypeEnum nodeType, boolean inTransaction) {
+ public Either<SubCategoryDefinition, ActionStatus> createSubCategory(String categoryId, SubCategoryDefinition subCategory, NodeTypeEnum nodeType, boolean inTransaction) {
Either<SubCategoryDefinition, ActionStatus> result = null;
try {
// create edge from category to sub-category
- Either<CategoryData, TitanOperationStatus> categoryNode = titanGenericDao
- .getNode(UniqueIdBuilder.getKeyByNodeType(nodeType), categoryId, CategoryData.class);
+ Either<CategoryData, TitanOperationStatus> categoryNode = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(nodeType), categoryId, CategoryData.class);
ActionStatus actionStatus = ActionStatus.GENERAL_ERROR;
if (categoryNode.isRight()) {
TitanOperationStatus titanOperationStatus = categoryNode.right().value();
@@ -168,12 +165,10 @@ public class ElementOperation implements IElementOperation {
}
CategoryDataDefinition categoryDataDefinition = categoryNode.left().value().getCategoryDataDefinition();
- subCategory.setUniqueId(UniqueIdBuilder.buildSubCategoryUid(categoryDataDefinition.getUniqueId(),
- subCategory.getNormalizedName()));
+ subCategory.setUniqueId(UniqueIdBuilder.buildSubCategoryUid(categoryDataDefinition.getUniqueId(), subCategory.getNormalizedName()));
SubCategoryData subCategoryData = new SubCategoryData(nodeType, subCategory);
- Either<SubCategoryData, TitanOperationStatus> subCategoryNode = titanGenericDao.createNode(subCategoryData,
- SubCategoryData.class);
+ Either<SubCategoryData, TitanOperationStatus> subCategoryNode = titanGenericDao.createNode(subCategoryData, SubCategoryData.class);
if (subCategoryNode.isRight()) {
TitanOperationStatus titanOperationStatus = subCategoryNode.right().value();
log.debug("Problem while creating category, reason {}", titanOperationStatus);
@@ -184,15 +179,13 @@ public class ElementOperation implements IElementOperation {
return result;
}
- Either<GraphRelation, TitanOperationStatus> relation = titanGenericDao.createRelation(
- categoryNode.left().value(), subCategoryNode.left().value(), GraphEdgeLabels.SUB_CATEGORY, null);
+ Either<GraphRelation, TitanOperationStatus> relation = titanGenericDao.createRelation(categoryNode.left().value(), subCategoryNode.left().value(), GraphEdgeLabels.SUB_CATEGORY, null);
if (relation.isRight()) {
log.debug("Problem while create relation between category and sub-category ", relation.right().value());
result = Either.right(actionStatus);
return result;
}
- SubCategoryDefinition subCategoryCreated = new SubCategoryDefinition(
- subCategoryNode.left().value().getSubCategoryDataDefinition());
+ SubCategoryDefinition subCategoryCreated = new SubCategoryDefinition(subCategoryNode.left().value().getSubCategoryDataDefinition());
result = Either.left(subCategoryCreated);
return result;
} finally {
@@ -207,15 +200,13 @@ public class ElementOperation implements IElementOperation {
}
@Override
- public Either<GroupingDefinition, ActionStatus> createGrouping(String subCategoryId, GroupingDefinition grouping,
- NodeTypeEnum nodeType) {
+ public Either<GroupingDefinition, ActionStatus> createGrouping(String subCategoryId, GroupingDefinition grouping, NodeTypeEnum nodeType) {
Either<GroupingDefinition, ActionStatus> result = null;
try {
// create edge from sub-category to grouping
- Either<SubCategoryData, TitanOperationStatus> subCategoryNode = titanGenericDao
- .getNode(UniqueIdBuilder.getKeyByNodeType(nodeType), subCategoryId, SubCategoryData.class);
+ Either<SubCategoryData, TitanOperationStatus> subCategoryNode = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(nodeType), subCategoryId, SubCategoryData.class);
ActionStatus actionStatus = ActionStatus.GENERAL_ERROR;
if (subCategoryNode.isRight()) {
TitanOperationStatus titanOperationStatus = subCategoryNode.right().value();
@@ -228,12 +219,10 @@ public class ElementOperation implements IElementOperation {
}
SubCategoryDataDefinition subCatData = subCategoryNode.left().value().getSubCategoryDataDefinition();
- grouping.setUniqueId(
- UniqueIdBuilder.buildGroupingUid(subCatData.getUniqueId(), grouping.getNormalizedName()));
+ grouping.setUniqueId(UniqueIdBuilder.buildGroupingUid(subCatData.getUniqueId(), grouping.getNormalizedName()));
GroupingData groupingData = new GroupingData(nodeType, grouping);
- Either<GroupingData, TitanOperationStatus> groupingNode = titanGenericDao.createNode(groupingData,
- GroupingData.class);
+ Either<GroupingData, TitanOperationStatus> groupingNode = titanGenericDao.createNode(groupingData, GroupingData.class);
if (groupingNode.isRight()) {
TitanOperationStatus titanOperationStatus = groupingNode.right().value();
log.debug("Problem while creating grouping, reason {}", titanOperationStatus);
@@ -244,15 +233,13 @@ public class ElementOperation implements IElementOperation {
return result;
}
- Either<GraphRelation, TitanOperationStatus> relation = titanGenericDao.createRelation(
- subCategoryNode.left().value(), groupingNode.left().value(), GraphEdgeLabels.GROUPING, null);
+ Either<GraphRelation, TitanOperationStatus> relation = titanGenericDao.createRelation(subCategoryNode.left().value(), groupingNode.left().value(), GraphEdgeLabels.GROUPING, null);
if (relation.isRight()) {
log.debug("Problem while create relation between sub-category and grouping", relation.right().value());
result = Either.right(actionStatus);
return result;
}
- GroupingDefinition groupingCreated = new GroupingDefinition(
- groupingNode.left().value().getGroupingDataDefinition());
+ GroupingDefinition groupingCreated = new GroupingDefinition(groupingNode.left().value().getGroupingDataDefinition());
result = Either.left(groupingCreated);
return result;
} finally {
@@ -265,17 +252,14 @@ public class ElementOperation implements IElementOperation {
}
@Override
- public Either<List<CategoryDefinition>, ActionStatus> getAllCategories(NodeTypeEnum nodeType,
- boolean inTransaction) {
+ public Either<List<CategoryDefinition>, ActionStatus> getAllCategories(NodeTypeEnum nodeType, boolean inTransaction) {
try {
- if (nodeType != NodeTypeEnum.ResourceNewCategory && nodeType != NodeTypeEnum.ServiceNewCategory
- && nodeType != NodeTypeEnum.ProductCategory) {
+ if (nodeType != NodeTypeEnum.ResourceNewCategory && nodeType != NodeTypeEnum.ServiceNewCategory && nodeType != NodeTypeEnum.ProductCategory) {
log.debug("Unknown category type {}", nodeType.name());
return Either.right(ActionStatus.GENERAL_ERROR);
}
- Either<List<org.openecomp.sdc.be.resources.data.category.CategoryData>, TitanOperationStatus> either = titanGenericDao
- .getAll(nodeType, org.openecomp.sdc.be.resources.data.category.CategoryData.class);
+ Either<List<org.openecomp.sdc.be.resources.data.category.CategoryData>, TitanOperationStatus> either = titanGenericDao.getAll(nodeType, org.openecomp.sdc.be.resources.data.category.CategoryData.class);
if (either.isRight() && (either.right().value() != TitanOperationStatus.NOT_FOUND)) {
log.debug("Problem while get all categories. reason - {}", either.right().value());
return Either.right(ActionStatus.GENERAL_ERROR);
@@ -291,8 +275,7 @@ public class ElementOperation implements IElementOperation {
log.trace("Found category {}, category type {}", categoryName, nodeType);
TitanOperationStatus setSubCategories = setSubCategories(nodeType, categoryDefinition);
if (setSubCategories != TitanOperationStatus.OK) {
- log.debug("Failed to set sub-categories for category {}, category type {}, error {}",
- categoryName, nodeType, setSubCategories);
+ log.debug("Failed to set sub-categories for category {}, category type {}, error {}", categoryName, nodeType, setSubCategories);
return Either.right(ActionStatus.GENERAL_ERROR);
}
categoryList.add(categoryDefinition);
@@ -311,14 +294,12 @@ public class ElementOperation implements IElementOperation {
if (childNodeType != null) {
String categoryName = parentCategory.getName();
log.trace("Getting sub-categories for category {}, category type {}", categoryName, parentNodeType);
- Either<List<ImmutablePair<SubCategoryData, GraphEdge>>, TitanOperationStatus> parentNode = titanGenericDao
- .getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(parentNodeType), parentCategory.getUniqueId(),
- GraphEdgeLabels.SUB_CATEGORY, childNodeType, SubCategoryData.class);
+ Either<List<ImmutablePair<SubCategoryData, GraphEdge>>, TitanOperationStatus> parentNode = titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(parentNodeType), parentCategory.getUniqueId(), GraphEdgeLabels.SUB_CATEGORY,
+ childNodeType, SubCategoryData.class);
if (parentNode.isRight()) {
TitanOperationStatus titanOperationStatus = parentNode.right().value();
if (titanOperationStatus == TitanOperationStatus.NOT_FOUND) {
- log.trace("Didn't find subcategories for category {}, category type {}", categoryName,
- parentNodeType);
+ log.trace("Didn't find subcategories for category {}, category type {}", categoryName, parentNodeType);
titanOperationStatus = TitanOperationStatus.OK;
}
return titanOperationStatus;
@@ -326,16 +307,13 @@ public class ElementOperation implements IElementOperation {
List<ImmutablePair<SubCategoryData, GraphEdge>> subsCategoriesData = parentNode.left().value();
List<SubCategoryDefinition> subCategoriesDefinitions = new ArrayList<>();
for (ImmutablePair<SubCategoryData, GraphEdge> subCatPair : subsCategoriesData) {
- SubCategoryDataDefinition subCategoryDataDefinition = subCatPair.getLeft()
- .getSubCategoryDataDefinition();
+ SubCategoryDataDefinition subCategoryDataDefinition = subCatPair.getLeft().getSubCategoryDataDefinition();
SubCategoryDefinition subCategoryDefinition = new SubCategoryDefinition(subCategoryDataDefinition);
- log.trace("Found sub-category {} for category {}, category type {}",
- subCategoryDataDefinition.getName(), categoryName, parentNodeType);
+ log.trace("Found sub-category {} for category {}, category type {}", subCategoryDataDefinition.getName(), categoryName, parentNodeType);
TitanOperationStatus setGroupings = setGroupings(childNodeType, subCategoryDefinition);
if (setGroupings != TitanOperationStatus.OK) {
- log.debug("Failed to set groupings for sub-category {}, sub-category type {}, error {}",
- subCategoryDataDefinition.getName(), childNodeType, setGroupings);
+ log.debug("Failed to set groupings for sub-category {}, sub-category type {}, error {}", subCategoryDataDefinition.getName(), childNodeType, setGroupings);
return TitanOperationStatus.GENERAL_ERROR;
}
subCategoriesDefinitions.add(subCategoryDefinition);
@@ -350,14 +328,12 @@ public class ElementOperation implements IElementOperation {
if (childNodeType != null) {
String subCategoryName = parentSubCategory.getName();
log.trace("Getting groupings for subcategory {}, subcategory type {}", subCategoryName, parentNodeType);
- Either<List<ImmutablePair<GroupingData, GraphEdge>>, TitanOperationStatus> parentNode = titanGenericDao
- .getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(parentNodeType), parentSubCategory.getUniqueId(),
- GraphEdgeLabels.GROUPING, childNodeType, GroupingData.class);
+ Either<List<ImmutablePair<GroupingData, GraphEdge>>, TitanOperationStatus> parentNode = titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(parentNodeType), parentSubCategory.getUniqueId(), GraphEdgeLabels.GROUPING,
+ childNodeType, GroupingData.class);
if (parentNode.isRight()) {
TitanOperationStatus titanOperationStatus = parentNode.right().value();
if (titanOperationStatus == TitanOperationStatus.NOT_FOUND) {
- log.trace("Didn't find groupings for subcategory {}, subcategory type {}", subCategoryName,
- parentNodeType);
+ log.trace("Didn't find groupings for subcategory {}, subcategory type {}", subCategoryName, parentNodeType);
titanOperationStatus = TitanOperationStatus.OK;
}
return titanOperationStatus;
@@ -366,8 +342,7 @@ public class ElementOperation implements IElementOperation {
List<GroupingDefinition> groupingDefinitions = new ArrayList<>();
for (ImmutablePair<GroupingData, GraphEdge> groupPair : groupingData) {
GroupingDataDefinition groupingDataDefinition = groupPair.getLeft().getGroupingDataDefinition();
- log.trace("Found grouping {} for sub-category {}, sub-category type {}",
- groupingDataDefinition.getName(), subCategoryName, parentNodeType);
+ log.trace("Found grouping {} for sub-category {}, sub-category type {}", groupingDataDefinition.getName(), subCategoryName, parentNodeType);
groupingDefinitions.add(new GroupingDefinition(groupingDataDefinition));
}
parentSubCategory.setGroupings(groupingDefinitions);
@@ -396,14 +371,12 @@ public class ElementOperation implements IElementOperation {
@Override
public Either<CategoryDefinition, ActionStatus> getCategory(NodeTypeEnum nodeType, String categoryId) {
try {
- if (nodeType != NodeTypeEnum.ResourceNewCategory && nodeType != NodeTypeEnum.ServiceNewCategory
- && nodeType != NodeTypeEnum.ProductCategory) {
+ if (nodeType != NodeTypeEnum.ResourceNewCategory && nodeType != NodeTypeEnum.ServiceNewCategory && nodeType != NodeTypeEnum.ProductCategory) {
log.debug("Unknown category type {}", nodeType.name());
return Either.right(ActionStatus.GENERAL_ERROR);
}
- Either<CategoryData, TitanOperationStatus> categoryDataEither = titanGenericDao
- .getNode(UniqueIdBuilder.getKeyByNodeType(nodeType), categoryId, CategoryData.class);
+ Either<CategoryData, TitanOperationStatus> categoryDataEither = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(nodeType), categoryId, CategoryData.class);
if (categoryDataEither.isRight()) {
TitanOperationStatus titanOperationStatus = categoryDataEither.right().value();
log.debug("Problem while get category by id {}. reason {}", categoryId, titanOperationStatus);
@@ -412,8 +385,7 @@ public class ElementOperation implements IElementOperation {
}
return Either.right(ActionStatus.GENERAL_ERROR);
}
- CategoryDataDefinition categoryDataDefinition = categoryDataEither.left().value()
- .getCategoryDataDefinition();
+ CategoryDataDefinition categoryDataDefinition = categoryDataEither.left().value().getCategoryDataDefinition();
return Either.left(new CategoryDefinition(categoryDataDefinition));
} finally {
titanGenericDao.commit();
@@ -428,8 +400,7 @@ public class ElementOperation implements IElementOperation {
return Either.right(ActionStatus.GENERAL_ERROR);
}
- Either<SubCategoryData, TitanOperationStatus> subCategoryDataEither = titanGenericDao
- .getNode(UniqueIdBuilder.getKeyByNodeType(nodeType), subCategoryId, SubCategoryData.class);
+ Either<SubCategoryData, TitanOperationStatus> subCategoryDataEither = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(nodeType), subCategoryId, SubCategoryData.class);
if (subCategoryDataEither.isRight()) {
TitanOperationStatus titanOperationStatus = subCategoryDataEither.right().value();
log.debug("Problem while get sub-category by id {}. reason {}", subCategoryId, titanOperationStatus);
@@ -438,8 +409,7 @@ public class ElementOperation implements IElementOperation {
}
return Either.right(ActionStatus.GENERAL_ERROR);
}
- SubCategoryDataDefinition subCategoryDataDefinition = subCategoryDataEither.left().value()
- .getSubCategoryDataDefinition();
+ SubCategoryDataDefinition subCategoryDataDefinition = subCategoryDataEither.left().value().getSubCategoryDataDefinition();
return Either.left(new SubCategoryDefinition(subCategoryDataDefinition));
} finally {
titanGenericDao.commit();
@@ -450,14 +420,12 @@ public class ElementOperation implements IElementOperation {
public Either<CategoryDefinition, ActionStatus> deleteCategory(NodeTypeEnum nodeType, String categoryId) {
Either<CategoryDefinition, ActionStatus> result = null;
try {
- if (nodeType != NodeTypeEnum.ResourceNewCategory && nodeType != NodeTypeEnum.ServiceNewCategory
- && nodeType != NodeTypeEnum.ProductCategory) {
+ if (nodeType != NodeTypeEnum.ResourceNewCategory && nodeType != NodeTypeEnum.ServiceNewCategory && nodeType != NodeTypeEnum.ProductCategory) {
log.debug("Unknown category type {}", nodeType.name());
result = Either.right(ActionStatus.GENERAL_ERROR);
return result;
}
- Either<CategoryData, TitanOperationStatus> categoryDataEither = titanGenericDao
- .getNode(UniqueIdBuilder.getKeyByNodeType(nodeType), categoryId, CategoryData.class);
+ Either<CategoryData, TitanOperationStatus> categoryDataEither = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(nodeType), categoryId, CategoryData.class);
if (categoryDataEither.isRight()) {
log.debug("Failed to retrieve category for id {} ", categoryId);
result = Either.right(ActionStatus.GENERAL_ERROR);
@@ -473,8 +441,7 @@ public class ElementOperation implements IElementOperation {
TitanGraph tGraph = graph.left().value();
- Iterable<TitanVertex> verticesArtifact = tGraph.query()
- .has(UniqueIdBuilder.getKeyByNodeType(nodeType), categoryId).vertices();
+ Iterable<TitanVertex> verticesArtifact = tGraph.query().has(UniqueIdBuilder.getKeyByNodeType(nodeType), categoryId).vertices();
Iterator<TitanVertex> iterator = verticesArtifact.iterator();
if (!iterator.hasNext()) {
log.debug("No category node for id = {}", categoryId);
@@ -483,8 +450,7 @@ public class ElementOperation implements IElementOperation {
}
Vertex artifactV = iterator.next();
artifactV.remove();
- CategoryDefinition deleted = new CategoryDefinition(
- categoryDataEither.left().value().getCategoryDataDefinition());
+ CategoryDefinition deleted = new CategoryDefinition(categoryDataEither.left().value().getCategoryDataDefinition());
result = Either.left(deleted);
return result;
} finally {
@@ -505,8 +471,7 @@ public class ElementOperation implements IElementOperation {
result = Either.right(ActionStatus.GENERAL_ERROR);
return result;
}
- Either<SubCategoryData, TitanOperationStatus> subCategoryDataEither = titanGenericDao
- .getNode(UniqueIdBuilder.getKeyByNodeType(nodeType), subCategoryId, SubCategoryData.class);
+ Either<SubCategoryData, TitanOperationStatus> subCategoryDataEither = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(nodeType), subCategoryId, SubCategoryData.class);
if (subCategoryDataEither.isRight()) {
log.debug("Failed to retrieve sub-category for id {}", subCategoryId);
result = Either.right(ActionStatus.GENERAL_ERROR);
@@ -522,8 +487,7 @@ public class ElementOperation implements IElementOperation {
TitanGraph tGraph = graph.left().value();
- Iterable<TitanVertex> verticesArtifact = tGraph.query()
- .has(UniqueIdBuilder.getKeyByNodeType(nodeType), subCategoryId).vertices();
+ Iterable<TitanVertex> verticesArtifact = tGraph.query().has(UniqueIdBuilder.getKeyByNodeType(nodeType), subCategoryId).vertices();
Iterator<TitanVertex> iterator = verticesArtifact.iterator();
if (!iterator.hasNext()) {
log.debug("No sub-category node for id {}", subCategoryId);
@@ -533,8 +497,7 @@ public class ElementOperation implements IElementOperation {
Vertex artifactV = iterator.next();
artifactV.remove();
;
- SubCategoryDefinition deleted = new SubCategoryDefinition(
- subCategoryDataEither.left().value().getSubCategoryDataDefinition());
+ SubCategoryDefinition deleted = new SubCategoryDefinition(subCategoryDataEither.left().value().getSubCategoryDataDefinition());
result = Either.left(deleted);
return result;
} finally {
@@ -556,8 +519,7 @@ public class ElementOperation implements IElementOperation {
result = Either.right(ActionStatus.GENERAL_ERROR);
return result;
}
- Either<GroupingData, TitanOperationStatus> groupingDataEither = titanGenericDao
- .getNode(UniqueIdBuilder.getKeyByNodeType(nodeType), groupingId, GroupingData.class);
+ Either<GroupingData, TitanOperationStatus> groupingDataEither = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(nodeType), groupingId, GroupingData.class);
if (groupingDataEither.isRight()) {
log.debug("Failed to retrieve grouping for id {}", groupingId);
result = Either.right(ActionStatus.GENERAL_ERROR);
@@ -573,8 +535,7 @@ public class ElementOperation implements IElementOperation {
TitanGraph tGraph = graph.left().value();
- Iterable<TitanVertex> verticesArtifact = tGraph.query()
- .has(UniqueIdBuilder.getKeyByNodeType(nodeType), groupingId).vertices();
+ Iterable<TitanVertex> verticesArtifact = tGraph.query().has(UniqueIdBuilder.getKeyByNodeType(nodeType), groupingId).vertices();
Iterator<TitanVertex> iterator = verticesArtifact.iterator();
if (!iterator.hasNext()) {
log.debug("No grouping node for id {}", groupingId);
@@ -584,8 +545,7 @@ public class ElementOperation implements IElementOperation {
Vertex artifactV = iterator.next();
artifactV.remove();
;
- GroupingDefinition deleted = new GroupingDefinition(
- groupingDataEither.left().value().getGroupingDataDefinition());
+ GroupingDefinition deleted = new GroupingDefinition(groupingDataEither.left().value().getGroupingDataDefinition());
result = Either.left(deleted);
return result;
} finally {
@@ -603,25 +563,21 @@ public class ElementOperation implements IElementOperation {
Map<String, Object> properties = new HashMap<>();
properties.put(GraphPropertiesDictionary.NORMALIZED_NAME.getProperty(), normalizedName);
try {
- Either<List<CategoryData>, TitanOperationStatus> categoryEither = titanGenericDao.getByCriteria(nodeType,
- properties, CategoryData.class);
+ Either<List<CategoryData>, TitanOperationStatus> categoryEither = titanGenericDao.getByCriteria(nodeType, properties, CategoryData.class);
if (categoryEither.isRight() && categoryEither.right().value() != TitanOperationStatus.NOT_FOUND) {
- log.debug("Failed to get categories, nodeType {}, normalizedName {}, error {}", nodeType,
- normalizedName, categoryEither.right().value());
+ log.debug("Failed to get categories, nodeType {}, normalizedName {}, error {}", nodeType, normalizedName, categoryEither.right().value());
return Either.right(ActionStatus.GENERAL_ERROR);
}
List<CategoryData> categoryList = (categoryEither.isLeft() ? categoryEither.left().value() : null);
if (categoryList != null && categoryList.size() > 0) {
log.debug("Found category for nodeType {} with normalizedName {}", nodeType, normalizedName);
if (categoryList.size() > 1) {
- log.debug("Found more than 1 unique categories for nodeType {} with normalizedName", nodeType,
- normalizedName);
+ log.debug("Found more than 1 unique categories for nodeType {} with normalizedName", nodeType, normalizedName);
return Either.right(ActionStatus.GENERAL_ERROR);
}
return Either.left(false);
} else {
- log.debug("Category for nodeType {} with normalizedName {} doesn't exist in graph", nodeType,
- normalizedName);
+ log.debug("Category for nodeType {} with normalizedName {} doesn't exist in graph", nodeType, normalizedName);
return Either.left(true);
}
} finally {
@@ -630,21 +586,16 @@ public class ElementOperation implements IElementOperation {
}
@Override
- public Either<Boolean, ActionStatus> isSubCategoryUniqueForCategory(NodeTypeEnum nodeType,
- String subCategoryNormName, String parentCategoryId) {
+ public Either<Boolean, ActionStatus> isSubCategoryUniqueForCategory(NodeTypeEnum nodeType, String subCategoryNormName, String parentCategoryId) {
String subCategoryId = UniqueIdBuilder.buildSubCategoryUid(parentCategoryId, subCategoryNormName);
try {
- Either<SubCategoryData, TitanOperationStatus> subCategoryDataEither = titanGenericDao
- .getNode(UniqueIdBuilder.getKeyByNodeType(nodeType), subCategoryId, SubCategoryData.class);
- if (subCategoryDataEither.isRight()
- && subCategoryDataEither.right().value() != TitanOperationStatus.NOT_FOUND) {
- log.debug("Failed to get sub-category with id {}, error {}", subCategoryId,
- subCategoryDataEither.right().value());
+ Either<SubCategoryData, TitanOperationStatus> subCategoryDataEither = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(nodeType), subCategoryId, SubCategoryData.class);
+ if (subCategoryDataEither.isRight() && subCategoryDataEither.right().value() != TitanOperationStatus.NOT_FOUND) {
+ log.debug("Failed to get sub-category with id {}, error {}", subCategoryId, subCategoryDataEither.right().value());
return Either.right(ActionStatus.GENERAL_ERROR);
}
- SubCategoryData subCategoryData = (subCategoryDataEither.isLeft() ? subCategoryDataEither.left().value()
- : null);
+ SubCategoryData subCategoryData = (subCategoryDataEither.isLeft() ? subCategoryDataEither.left().value() : null);
if (subCategoryData != null) {
log.debug("Found sub-category with id {}", subCategoryId);
return Either.left(false);
@@ -658,16 +609,13 @@ public class ElementOperation implements IElementOperation {
}
@Override
- public Either<Boolean, ActionStatus> isGroupingUniqueForSubCategory(NodeTypeEnum nodeType, String groupingNormName,
- String parentSubCategoryId) {
+ public Either<Boolean, ActionStatus> isGroupingUniqueForSubCategory(NodeTypeEnum nodeType, String groupingNormName, String parentSubCategoryId) {
String groupingId = UniqueIdBuilder.buildGroupingUid(parentSubCategoryId, groupingNormName);
try {
- Either<GroupingData, TitanOperationStatus> groupingDataEither = titanGenericDao
- .getNode(UniqueIdBuilder.getKeyByNodeType(nodeType), groupingId, GroupingData.class);
+ Either<GroupingData, TitanOperationStatus> groupingDataEither = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(nodeType), groupingId, GroupingData.class);
if (groupingDataEither.isRight() && groupingDataEither.right().value() != TitanOperationStatus.NOT_FOUND) {
- log.debug("Failed to get grouping with id {}, error {}", groupingId,
- groupingDataEither.right().value());
+ log.debug("Failed to get grouping with id {}, error {}", groupingId, groupingDataEither.right().value());
return Either.right(ActionStatus.GENERAL_ERROR);
}
GroupingData groupingData = (groupingDataEither.isLeft() ? groupingDataEither.left().value() : null);
@@ -684,29 +632,23 @@ public class ElementOperation implements IElementOperation {
}
@Override
- public Either<SubCategoryDefinition, ActionStatus> getSubCategoryUniqueForType(NodeTypeEnum nodeType,
- String normalizedName) {
+ public Either<SubCategoryDefinition, ActionStatus> getSubCategoryUniqueForType(NodeTypeEnum nodeType, String normalizedName) {
Map<String, Object> properties = new HashMap<>();
properties.put(GraphPropertiesDictionary.NORMALIZED_NAME.getProperty(), normalizedName);
try {
- Either<List<SubCategoryData>, TitanOperationStatus> subCategoryEither = titanGenericDao
- .getByCriteria(nodeType, properties, SubCategoryData.class);
+ Either<List<SubCategoryData>, TitanOperationStatus> subCategoryEither = titanGenericDao.getByCriteria(nodeType, properties, SubCategoryData.class);
if (subCategoryEither.isRight() && subCategoryEither.right().value() != TitanOperationStatus.NOT_FOUND) {
- log.debug("Failed to get sub-categories, nodeType {}, normalizedName {}, error {}", nodeType,
- normalizedName, subCategoryEither.right().value());
+ log.debug("Failed to get sub-categories, nodeType {}, normalizedName {}, error {}", nodeType, normalizedName, subCategoryEither.right().value());
return Either.right(ActionStatus.GENERAL_ERROR);
}
- List<SubCategoryData> subCategoryList = (subCategoryEither.isLeft() ? subCategoryEither.left().value()
- : null);
+ List<SubCategoryData> subCategoryList = (subCategoryEither.isLeft() ? subCategoryEither.left().value() : null);
if (subCategoryList != null && subCategoryList.size() > 0) {
log.debug("Found sub-category for nodeType {} with normalizedName {}", nodeType, normalizedName);
SubCategoryData subCategoryData = subCategoryList.get(0);
- SubCategoryDefinition subCategoryDefinition = new SubCategoryDefinition(
- subCategoryData.getSubCategoryDataDefinition());
+ SubCategoryDefinition subCategoryDefinition = new SubCategoryDefinition(subCategoryData.getSubCategoryDataDefinition());
return Either.left(subCategoryDefinition);
} else {
- log.debug("Sub-category for nodeType {} with normalizedName {} doesn't exist in graph", nodeType,
- normalizedName);
+ log.debug("Sub-category for nodeType {} with normalizedName {} doesn't exist in graph", nodeType, normalizedName);
return Either.left(null);
}
} finally {
@@ -715,28 +657,23 @@ public class ElementOperation implements IElementOperation {
}
@Override
- public Either<GroupingDefinition, ActionStatus> getGroupingUniqueForType(NodeTypeEnum nodeType,
- String groupingNormalizedName) {
+ public Either<GroupingDefinition, ActionStatus> getGroupingUniqueForType(NodeTypeEnum nodeType, String groupingNormalizedName) {
Map<String, Object> properties = new HashMap<>();
properties.put(GraphPropertiesDictionary.NORMALIZED_NAME.getProperty(), groupingNormalizedName);
try {
- Either<List<GroupingData>, TitanOperationStatus> groupingEither = titanGenericDao.getByCriteria(nodeType,
- properties, GroupingData.class);
+ Either<List<GroupingData>, TitanOperationStatus> groupingEither = titanGenericDao.getByCriteria(nodeType, properties, GroupingData.class);
if (groupingEither.isRight() && groupingEither.right().value() != TitanOperationStatus.NOT_FOUND) {
- log.debug("Failed to get grouping, nodeType {}, normalizedName {}, error {}", nodeType,
- groupingNormalizedName, groupingEither.right().value());
+ log.debug("Failed to get grouping, nodeType {}, normalizedName {}, error {}", nodeType, groupingNormalizedName, groupingEither.right().value());
return Either.right(ActionStatus.GENERAL_ERROR);
}
List<GroupingData> groupingList = (groupingEither.isLeft() ? groupingEither.left().value() : null);
if (groupingList != null && groupingList.size() > 0) {
log.debug("Found grouping for nodeType {} with normalizedName {}", nodeType, groupingNormalizedName);
GroupingData groupingData = groupingList.get(0);
- GroupingDefinition groupingDefinition = new GroupingDefinition(
- groupingData.getGroupingDataDefinition());
+ GroupingDefinition groupingDefinition = new GroupingDefinition(groupingData.getGroupingDataDefinition());
return Either.left(groupingDefinition);
} else {
- log.debug("Grouping for nodeType {} with normalizedName {} doesn't exist in graph", nodeType,
- groupingNormalizedName);
+ log.debug("Grouping for nodeType {} with normalizedName {} doesn't exist in graph", nodeType, groupingNormalizedName);
return Either.left(null);
}
} finally {
@@ -751,8 +688,7 @@ public class ElementOperation implements IElementOperation {
@Override
public Either<List<Tag>, ActionStatus> getAllTags() {
try {
- Either<List<TagData>, TitanOperationStatus> either = titanGenericDao.getAll(NodeTypeEnum.Tag,
- TagData.class);
+ Either<List<TagData>, TitanOperationStatus> either = titanGenericDao.getAll(NodeTypeEnum.Tag, TagData.class);
if (either.isRight()) {
log.debug("Problem while get all tags. reason - {}", either.right().value());
return Either.right(ActionStatus.GENERAL_ERROR);
@@ -766,8 +702,7 @@ public class ElementOperation implements IElementOperation {
}
@Override
- public <T extends GraphNode> Either<org.openecomp.sdc.be.resources.data.CategoryData, StorageOperationStatus> getCategoryData(
- String name, NodeTypeEnum type, Class<T> clazz) {
+ public <T extends GraphNode> Either<org.openecomp.sdc.be.resources.data.CategoryData, StorageOperationStatus> getCategoryData(String name, NodeTypeEnum type, Class<T> clazz) {
if (name != null) {
String categoryUid = null;
if (type == NodeTypeEnum.ResourceCategory) {
@@ -779,8 +714,7 @@ public class ElementOperation implements IElementOperation {
} else {
categoryUid = UniqueIdBuilder.buildServiceCategoryUid(name, type);
}
- Either<T, TitanOperationStatus> either = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(type),
- categoryUid, clazz);
+ Either<T, TitanOperationStatus> either = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(type), categoryUid, clazz);
if (either.isRight()) {
TitanOperationStatus titanOperationStatus = either.right().value();
@@ -827,8 +761,7 @@ public class ElementOperation implements IElementOperation {
public Either<List<ArtifactType>, ActionStatus> getAllArtifactTypes() {
List<ArtifactType> artifactTypes = new ArrayList<ArtifactType>();
- List<String> artifactTypesList = ConfigurationManager.getConfigurationManager().getConfiguration()
- .getArtifactTypes();
+ List<String> artifactTypesList = ConfigurationManager.getConfigurationManager().getConfiguration().getArtifactTypes();
for (String artifactType : artifactTypesList) {
ArtifactType artifactT = new ArtifactType();
artifactT.setName(artifactType);
@@ -841,12 +774,9 @@ public class ElementOperation implements IElementOperation {
public Either<Map<String, Object>, ActionStatus> getAllDeploymentArtifactTypes() {
Map<String, Object> artifactTypes = new HashMap<String, Object>();
- Map<String, DeploymentArtifactTypeConfig> artifactResourceTypes = ConfigurationManager.getConfigurationManager()
- .getConfiguration().getResourceDeploymentArtifacts();
- Map<String, DeploymentArtifactTypeConfig> artifactServiceTypes = ConfigurationManager.getConfigurationManager()
- .getConfiguration().getServiceDeploymentArtifacts();
- Map<String, DeploymentArtifactTypeConfig> artifactResourceInstanceTypes = ConfigurationManager
- .getConfigurationManager().getConfiguration().getResourceInstanceDeploymentArtifacts();
+ Map<String, ArtifactTypeConfig> artifactResourceTypes = ConfigurationManager.getConfigurationManager().getConfiguration().getResourceDeploymentArtifacts();
+ Map<String, ArtifactTypeConfig> artifactServiceTypes = ConfigurationManager.getConfigurationManager().getConfiguration().getServiceDeploymentArtifacts();
+ Map<String, ArtifactTypeConfig> artifactResourceInstanceTypes = ConfigurationManager.getConfigurationManager().getConfiguration().getResourceInstanceDeploymentArtifacts();
artifactTypes.put("resourceDeploymentArtifacts", artifactResourceTypes);
artifactTypes.put("serviceDeploymentArtifacts", artifactServiceTypes);
@@ -858,8 +788,7 @@ public class ElementOperation implements IElementOperation {
@Override
public Either<Integer, ActionStatus> getDefaultHeatTimeout() {
- return Either.left(ConfigurationManager.getConfigurationManager().getConfiguration()
- .getDefaultHeatArtifactTimeoutMinutes());
+ return Either.left(ConfigurationManager.getConfigurationManager().getConfiguration().getDefaultHeatArtifactTimeoutMinutes());
}
@Override
@@ -876,12 +805,11 @@ public class ElementOperation implements IElementOperation {
}
@Override
- public <T extends GraphNode> Either<CategoryData, StorageOperationStatus> getNewCategoryData(String name,
- NodeTypeEnum type, Class<T> clazz) {
+ public <T extends GraphNode> Either<CategoryData, StorageOperationStatus> getNewCategoryData(String name, NodeTypeEnum type, Class<T> clazz) {
if (name != null) {
String categoryUid = UniqueIdBuilder.buildServiceCategoryUid(name, type);
Map props = new HashMap<>();
- props.put(GraphPropertiesDictionary.NAME.getProperty(), name);
+ props.put(GraphPropertiesDictionary.NORMALIZED_NAME.getProperty(), ValidationUtils.normalizeCategoryName4Uniqueness(name));
Either<List<T>, TitanOperationStatus> either = titanGenericDao.getByCriteria(type, props, clazz);
if (either.isRight()) {
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/GraphLockOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/GraphLockOperation.java
index 35541e6d46..89f8f71e2a 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/GraphLockOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/GraphLockOperation.java
@@ -25,6 +25,7 @@ import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
import org.openecomp.sdc.be.datatypes.components.ResourceMetadataDataDefinition;
import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
import org.openecomp.sdc.be.model.Resource;
+import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
import org.openecomp.sdc.be.model.operations.api.ICacheMangerOperation;
import org.openecomp.sdc.be.model.operations.api.IGraphLockOperation;
import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
@@ -32,6 +33,7 @@ import org.openecomp.sdc.be.resources.data.ComponentMetadataData;
import org.openecomp.sdc.be.resources.data.ResourceMetadataData;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import fj.data.Either;
@@ -42,9 +44,9 @@ public class GraphLockOperation implements IGraphLockOperation {
@javax.annotation.Resource
private TitanGenericDao titanGenericDao;
-
- @javax.annotation.Resource
- private ResourceOperation resourceOperation;
+
+ @Autowired
+ ToscaOperationFacade toscaOperationFacade;
@javax.annotation.Resource
private ICacheMangerOperation cacheManagerOperation;
@@ -56,9 +58,7 @@ public class GraphLockOperation implements IGraphLockOperation {
/*
* (non-Javadoc)
*
- * @see org.openecomp.sdc.be.model.operations.impl.IGraphLockOperation#
- * lockResource(java.lang.String,
- * org.openecomp.sdc.be.model.operations.api.IResourceOperation)
+ * @see org.openecomp.sdc.be.model.operations.impl.IGraphLockOperation# lockResource(java.lang.String, org.openecomp.sdc.be.model.operations.api.IResourceOperation)
*/
@Override
public StorageOperationStatus lockComponent(String componentId, NodeTypeEnum nodeType) {
@@ -70,14 +70,13 @@ public class GraphLockOperation implements IGraphLockOperation {
// In this way we mark the component as updated one (and component
// won't be fetched from cache since the component in cache has
// different timestamp)
- Either<ComponentMetadataData, TitanOperationStatus> updateTime = updateModificationTimeOfComponent(
- componentId, nodeType);
- if (updateTime.isRight()) {
- TitanOperationStatus operationStatus = updateTime.right().value();
- if (operationStatus != TitanOperationStatus.OK) {
- return DaoStatusConverter.convertTitanStatusToStorageStatus(operationStatus);
- }
- }
+// Either<ComponentMetadataData, TitanOperationStatus> updateTime = updateModificationTimeOfComponent(componentId, nodeType);
+// if (updateTime.isRight()) {
+// TitanOperationStatus operationStatus = updateTime.right().value();
+// if (operationStatus != TitanOperationStatus.OK) {
+// return DaoStatusConverter.convertTitanStatusToStorageStatus(operationStatus);
+// }
+// }
lockElementStatus = titanGenericDao.lockElement(componentId, nodeType);
@@ -97,24 +96,21 @@ public class GraphLockOperation implements IGraphLockOperation {
* @param nodeType
* @return
*/
- private Either<ComponentMetadataData, TitanOperationStatus> updateModificationTimeOfComponent(String componentId,
- NodeTypeEnum nodeType) {
+ private Either<ComponentMetadataData, TitanOperationStatus> updateModificationTimeOfComponent(String componentId, NodeTypeEnum nodeType) {
if (nodeType == NodeTypeEnum.Resource || nodeType == NodeTypeEnum.Service || nodeType == NodeTypeEnum.Product) {
// We fetch all node since update only timestamp make problems since
// there is default resource type (VFC) which changes component
// resource type when we update only timestamp(ResourceMetadataData
// contains default value VFC on resourceType field).
- Either<ComponentMetadataData, TitanOperationStatus> findComp = titanGenericDao
- .getNode(UniqueIdBuilder.getKeyByNodeType(nodeType), componentId, ComponentMetadataData.class);
+ Either<ComponentMetadataData, TitanOperationStatus> findComp = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(nodeType), componentId, ComponentMetadataData.class);
if (findComp.isRight()) {
return Either.right(findComp.right().value());
}
ComponentMetadataData componentMetadataData = findComp.left().value();
componentMetadataData.getMetadataDataDefinition().setLastUpdateDate(System.currentTimeMillis());
- Either<ComponentMetadataData, TitanOperationStatus> updateNode = titanGenericDao
- .updateNode(componentMetadataData, ComponentMetadataData.class);
+ Either<ComponentMetadataData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(componentMetadataData, ComponentMetadataData.class);
return updateNode;
}
return Either.right(TitanOperationStatus.OK);
@@ -123,23 +119,20 @@ public class GraphLockOperation implements IGraphLockOperation {
/*
* (non-Javadoc)
*
- * @see org.openecomp.sdc.be.model.operations.impl.IGraphLockOperation#
- * unlockResource(java.lang.String,
- * org.openecomp.sdc.be.model.operations.api.IResourceOperation)
+ * @see org.openecomp.sdc.be.model.operations.impl.IGraphLockOperation# unlockResource(java.lang.String, org.openecomp.sdc.be.model.operations.api.IResourceOperation)
*/
@Override
public StorageOperationStatus unlockComponent(String componentId, NodeTypeEnum nodeType) {
- Either<Long, StorageOperationStatus> addComponentToCachePart1 = addComponentToCachePart1WithoutCommit(
- componentId, nodeType);
+// Either<Long, StorageOperationStatus> addComponentToCachePart1 = addComponentToCachePart1WithoutCommit(componentId, nodeType);
TitanOperationStatus lockElementStatus = titanGenericDao.releaseElement(componentId, nodeType);
- if (addComponentToCachePart1.isLeft()) {
- Long lastUpdateDate = addComponentToCachePart1.left().value();
- addComponentToCachePart2(componentId, lastUpdateDate, nodeType);
- }
-
+// if (addComponentToCachePart1.isLeft()) {
+// Long lastUpdateDate = addComponentToCachePart1.left().value();
+// addComponentToCachePart2(componentId, lastUpdateDate, nodeType);
+// }
+//
return DaoStatusConverter.convertTitanStatusToStorageStatus(lockElementStatus);
}
@@ -151,15 +144,14 @@ public class GraphLockOperation implements IGraphLockOperation {
@Override
public StorageOperationStatus unlockComponentByName(String name, String componentId, NodeTypeEnum nodeType) {
- Either<Long, StorageOperationStatus> addComponentToCachePart1 = addComponentToCachePart1WithoutCommit(
- componentId, nodeType);
+// Either<Long, StorageOperationStatus> addComponentToCachePart1 = addComponentToCachePart1WithoutCommit(componentId, nodeType);
TitanOperationStatus lockElementStatus = titanGenericDao.releaseElement(name, nodeType);
-
- if (addComponentToCachePart1.isLeft()) {
- Long lastUpdateDate = addComponentToCachePart1.left().value();
- addComponentToCachePart2(componentId, lastUpdateDate, nodeType);
- }
+//
+// if (addComponentToCachePart1.isLeft()) {
+// Long lastUpdateDate = addComponentToCachePart1.left().value();
+// addComponentToCachePart2(componentId, lastUpdateDate, nodeType);
+// }
return DaoStatusConverter.convertTitanStatusToStorageStatus(lockElementStatus);
}
@@ -171,15 +163,12 @@ public class GraphLockOperation implements IGraphLockOperation {
* @param nodeType
* @return
*/
- private Either<Long, StorageOperationStatus> addComponentToCachePart1WithoutCommit(String componentId,
- NodeTypeEnum nodeType) {
+ private Either<Long, StorageOperationStatus> addComponentToCachePart1WithoutCommit(String componentId, NodeTypeEnum nodeType) {
if (componentId != null) { // In case of error, the componentId might be
// empty.
- if (nodeType == NodeTypeEnum.Resource || nodeType == NodeTypeEnum.Service
- || nodeType == NodeTypeEnum.Product) {
+ if (nodeType == NodeTypeEnum.Resource || nodeType == NodeTypeEnum.Service || nodeType == NodeTypeEnum.Product) {
Long lastUpdateDate = null;
- Either<ComponentMetadataData, StorageOperationStatus> resResult = resourceOperation
- .getComponentByLabelAndId(componentId, nodeType, ComponentMetadataData.class);
+ Either<ComponentMetadataData, StorageOperationStatus> resResult = toscaOperationFacade.getComponentMetadata(componentId);
if (resResult.isLeft()) {
ComponentMetadataData resourceMetadataData = resResult.left().value();
lastUpdateDate = resourceMetadataData.getMetadataDataDefinition().getLastUpdateDate();
@@ -201,12 +190,10 @@ public class GraphLockOperation implements IGraphLockOperation {
* @param nodeType
* @return
*/
- private Either<Long, StorageOperationStatus> addComponentToCachePart2(String componentId, Long lastUpdateDate,
- NodeTypeEnum nodeType) {
+ private Either<Long, StorageOperationStatus> addComponentToCachePart2(String componentId, Long lastUpdateDate, NodeTypeEnum nodeType) {
if (componentId != null) { // In case of error, the componentId might be
// empty.
- if (nodeType == NodeTypeEnum.Resource || nodeType == NodeTypeEnum.Service
- || nodeType == NodeTypeEnum.Product) {
+ if (nodeType == NodeTypeEnum.Resource || nodeType == NodeTypeEnum.Service || nodeType == NodeTypeEnum.Product) {
// add task to Q
log.debug("Going to add component {} of type {} to cache", componentId, nodeType.name().toLowerCase());
cacheManagerOperation.updateComponentInCache(componentId, lastUpdateDate, nodeType);
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/GroupInstanceOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/GroupInstanceOperation.java
new file mode 100644
index 0000000000..bd57689700
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/GroupInstanceOperation.java
@@ -0,0 +1,1701 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.model.operations.impl;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import java.util.function.Supplier;
+import java.util.stream.Collectors;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections.MapUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.apache.tinkerpop.gremlin.structure.Direction;
+import org.apache.tinkerpop.gremlin.structure.Edge;
+import org.apache.tinkerpop.gremlin.structure.Vertex;
+import org.apache.tinkerpop.gremlin.structure.VertexProperty;
+import org.openecomp.sdc.be.config.BeEcompErrorManager;
+import org.openecomp.sdc.be.config.BeEcompErrorManager.ErrorSeverity;
+import org.openecomp.sdc.be.dao.graph.GraphElementFactory;
+import org.openecomp.sdc.be.dao.graph.datatype.GraphEdge;
+import org.openecomp.sdc.be.dao.graph.datatype.GraphElementTypeEnum;
+import org.openecomp.sdc.be.dao.graph.datatype.GraphNode;
+import org.openecomp.sdc.be.dao.graph.datatype.GraphRelation;
+import org.openecomp.sdc.be.dao.neo4j.GraphEdgeLabels;
+
+import org.openecomp.sdc.be.dao.neo4j.GraphPropertiesDictionary;
+import org.openecomp.sdc.be.dao.titan.TitanGenericDao;
+import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
+import org.openecomp.sdc.be.dao.utils.Constants;
+import org.openecomp.sdc.be.datatypes.elements.GroupInstanceDataDefinition;
+import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
+import org.openecomp.sdc.be.datatypes.elements.SchemaDefinition;
+import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
+
+import org.openecomp.sdc.be.model.ArtifactDefinition;
+
+import org.openecomp.sdc.be.model.ComponentInstance;
+
+import org.openecomp.sdc.be.model.ComponentInstanceProperty;
+import org.openecomp.sdc.be.model.DataTypeDefinition;
+import org.openecomp.sdc.be.model.GroupDefinition;
+import org.openecomp.sdc.be.model.GroupInstance;
+import org.openecomp.sdc.be.model.GroupInstanceProperty;
+import org.openecomp.sdc.be.model.GroupProperty;
+import org.openecomp.sdc.be.model.GroupTypeDefinition;
+import org.openecomp.sdc.be.model.IComponentInstanceConnectedElement;
+import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache;
+import org.openecomp.sdc.be.model.operations.api.IGroupInstanceOperation;
+import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
+
+import org.openecomp.sdc.be.model.tosca.ToscaPropertyType;
+import org.openecomp.sdc.be.resources.data.ArtifactData;
+import org.openecomp.sdc.be.resources.data.AttributeValueData;
+import org.openecomp.sdc.be.resources.data.ComponentInstanceData;
+import org.openecomp.sdc.be.resources.data.GroupData;
+import org.openecomp.sdc.be.resources.data.GroupInstanceData;
+import org.openecomp.sdc.be.resources.data.PropertyData;
+import org.openecomp.sdc.be.resources.data.PropertyValueData;
+import org.openecomp.sdc.be.resources.data.UniqueIdData;
+import org.openecomp.sdc.common.datastructure.Wrapper;
+import org.openecomp.sdc.common.util.ValidationUtils;
+import org.openecomp.sdc.exception.ResponseFormat;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import com.thinkaurelius.titan.core.TitanGraph;
+import com.thinkaurelius.titan.core.TitanVertex;
+
+import fj.data.Either;
+
+@org.springframework.stereotype.Component("group-instance-operation")
+public class GroupInstanceOperation extends AbstractOperation implements IGroupInstanceOperation {
+
+ private static String ADDING_GROUP = "AddingGroupInstance";
+
+ private static Logger log = LoggerFactory.getLogger(GroupInstanceOperation.class.getName());
+
+ @Autowired
+ TitanGenericDao titanGenericDao;
+ @Autowired
+ GroupOperation groupOperation;
+
+ @Autowired
+ PropertyOperation propertyOperation;
+
+ @javax.annotation.Resource
+ private ApplicationDataTypeCache dataTypeCache;
+
+ @Override
+ public Either<GroupInstance, StorageOperationStatus> createGroupInstance(String componentInstId, GroupInstance groupInstance, boolean isCreateLogicalName) {
+ Either<GroupInstance, StorageOperationStatus> result = null;
+
+ if (!ValidationUtils.validateStringNotEmpty(groupInstance.getCustomizationUUID())) {
+ generateCustomizationUUID(groupInstance);
+ }
+
+ Either<GroupInstance, TitanOperationStatus> addRes = addGroupInstanceToComponentInstance(componentInstId, isCreateLogicalName, groupInstance);
+ if (addRes.isRight()) {
+ TitanOperationStatus status = addRes.right().value();
+ log.error("Failed to add resource instance {} to service {}. status is {}", groupInstance, componentInstId, status);
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
+ return result;
+ }
+
+ GroupInstance value = addRes.left().value();
+ result = Either.left(value);
+
+ return result;
+
+ }
+
+ @Override
+ public Either<GroupInstance, StorageOperationStatus> createGroupInstance(TitanVertex ciVertex, String componentInstId, GroupInstance groupInstance, boolean isCreateLogicalName) {
+ Either<GroupInstance, StorageOperationStatus> result = null;
+
+ if (!ValidationUtils.validateStringNotEmpty(groupInstance.getCustomizationUUID())) {
+ generateCustomizationUUID(groupInstance);
+ }
+
+ Either<TitanVertex, TitanOperationStatus> addComponentInstanceToContainerComponent = addGroupInstanceToContainerComponent(ciVertex, componentInstId, isCreateLogicalName, groupInstance);
+
+ if (addComponentInstanceToContainerComponent.isRight()) {
+ TitanOperationStatus status = addComponentInstanceToContainerComponent.right().value();
+ if (status == TitanOperationStatus.NOT_FOUND) {
+ status = TitanOperationStatus.INVALID_ID;
+ }
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
+ }
+ TitanVertex giVertex = addComponentInstanceToContainerComponent.left().value();
+ Map<String, Object> properties = titanGenericDao.getProperties(giVertex);
+ GroupInstanceData createdGroupInstanceData = GraphElementFactory.createElement(NodeTypeEnum.GroupInstance.getName(), GraphElementTypeEnum.Node, properties, GroupInstanceData.class);
+
+ GroupInstance createdGroupInstance = new GroupInstance(createdGroupInstanceData.getGroupDataDefinition());
+ createdGroupInstance.setGroupName(groupInstance.getGroupName());
+
+ createdGroupInstance.setArtifacts(groupInstance.getArtifacts());
+
+ result = Either.left(createdGroupInstance);
+
+ return result;
+
+ }
+
+ @Override
+ public Either<GroupInstance, StorageOperationStatus> deleteGroupInstanceInstance(NodeTypeEnum containerNodeType, String containerComponentId, String groupInstUid) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Either<GroupInstance, StorageOperationStatus> updateGroupInstance(String serviceId, NodeTypeEnum nodeType, String resourceInstanceName, ComponentInstance resourceInstance) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Either<List<GroupInstance>, StorageOperationStatus> getAllGroupInstances(String parentId, NodeTypeEnum parentType) {
+ Either<List<GroupInstance>, StorageOperationStatus> result = null;
+ List<GroupInstance> groupInstanceRes = new ArrayList<>();
+
+ Either<TitanGraph, TitanOperationStatus> graph = titanGenericDao.getGraph();
+ if (graph.isRight()) {
+ log.debug("Failed to work with graph {}", graph.right().value());
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(graph.right().value()));
+ }
+ TitanGraph tGraph = graph.left().value();
+ @SuppressWarnings("unchecked")
+ Iterable<TitanVertex> vertices = tGraph.query().has(UniqueIdBuilder.getKeyByNodeType(parentType), parentId).vertices();
+ if (vertices == null || vertices.iterator() == null || false == vertices.iterator().hasNext()) {
+ log.debug("No nodes for type {} for id = {}", parentType, parentId);
+ result = Either.right(StorageOperationStatus.NOT_FOUND);
+ return result;
+ }
+
+ Iterator<TitanVertex> iterator = vertices.iterator();
+ Vertex vertex = iterator.next();
+
+ Map<String, Object> edgeProperties = null;
+
+ Either<List<ImmutablePair<GroupInstanceData, GraphEdge>>, TitanOperationStatus> childrenByEdgeCriteria = titanGenericDao.getChildrenByEdgeCriteria(vertex, parentId, GraphEdgeLabels.GROUP_INST, NodeTypeEnum.GroupInstance,
+ GroupInstanceData.class, edgeProperties);
+
+ if (childrenByEdgeCriteria.isRight()) {
+ TitanOperationStatus status = childrenByEdgeCriteria.right().value();
+ log.debug("Failed to find group instance {} on graph", childrenByEdgeCriteria.right().value());
+
+ if (status == TitanOperationStatus.NOT_FOUND) {
+ result = Either.left(groupInstanceRes);
+ return result;
+ }
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
+
+ }
+
+ List<ImmutablePair<GroupInstanceData, GraphEdge>> list = childrenByEdgeCriteria.left().value();
+
+ for (ImmutablePair<GroupInstanceData, GraphEdge> pair : list) {
+ GroupInstanceData groupInstData = pair.getLeft();
+ GroupInstance groupInstance = new GroupInstance(groupInstData.getGroupDataDefinition());
+ String instOriginGroupId = groupInstance.getGroupUid();
+ Either<GroupDefinition, TitanOperationStatus> groupRes = groupOperation.getGroupFromGraph(instOriginGroupId, false, true, false);
+
+ if (groupRes.isRight()) {
+ TitanOperationStatus status = groupRes.right().value();
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
+
+ }
+ GroupDefinition groupDefinition = groupRes.left().value();
+ Either<Map<String, PropertyValueData>, TitanOperationStatus> groupInstancePropertyValuesRes = getAllGroupInstancePropertyValuesData(groupInstData);
+ if(groupInstancePropertyValuesRes.isRight()){
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(groupInstancePropertyValuesRes.right().value()));
+ }
+ buildGroupInstanceFromGroup(groupInstance, groupDefinition, groupInstancePropertyValuesRes.left().value());
+ /*
+ * Either<List<GroupProperty>, TitanOperationStatus> groupInsPropStatus = getGroupInstanceProperties(groupInstance, groupDefinition); if (groupInsPropStatus.isRight()) {
+ *
+ * return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(groupInsPropStatus.right().value())); }
+ */
+
+ Either<List<ImmutablePair<String, String>>, TitanOperationStatus> artifactsRes = getGroupArtifactsPairs(groupInstance.getUniqueId());
+ if (artifactsRes.isRight()) {
+ TitanOperationStatus status = artifactsRes.right().value();
+ if (status != TitanOperationStatus.OK) {
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
+ return result;
+ }
+ } else {
+ List<String> artifactsUid = new ArrayList<>();
+ List<String> artifactsUUID = new ArrayList<>();
+
+ List<ImmutablePair<String, String>> list1 = artifactsRes.left().value();
+ if (list != null) {
+ for (ImmutablePair<String, String> pair1 : list1) {
+ String uid = pair1.left;
+ String UUID = pair1.right;
+ artifactsUid.add(uid);
+ artifactsUUID.add(UUID);
+ }
+ groupInstance.setGroupInstanceArtifacts(artifactsUid);
+ groupInstance.setGroupInstanceArtifactsUuid(artifactsUUID);
+ }
+ }
+
+ groupInstanceRes.add(groupInstance);
+ log.debug("GroupInstance {} was added to list ", groupInstance.getUniqueId());
+ }
+
+ result = Either.left(groupInstanceRes);
+ return result;
+
+ }
+
+ @Override
+ public Either<GroupInstance, TitanOperationStatus> getGroupInstanceById(String groupResourceId) {
+ // TODO Auto-generated method stub
+ return getGroupInstanceFromGraph(groupResourceId, false, false);
+ }
+
+ @Override
+ public TitanOperationStatus deleteAllGroupInstances(String componentInstId) {
+
+ return deleteAssociatedGroupInstances(componentInstId);
+ }
+
+ private TitanOperationStatus deleteAssociatedGroupInstances(String resourceInstanceUid) {
+ final GraphEdgeLabels edgeConectingToRI = GraphEdgeLabels.GROUP_INST;
+ final NodeTypeEnum elementTypeToDelete = NodeTypeEnum.GroupInstance;
+ return deleteAssociatedRIElements(elementTypeToDelete, edgeConectingToRI, resourceInstanceUid, () -> GroupInstanceData.class);
+ }
+
+ private <T extends GraphNode> TitanOperationStatus deleteAssociatedRIElements(NodeTypeEnum elementTypeToDelete, GraphEdgeLabels edgeConectingToRI, String resourceInstanceUid, Supplier<Class<T>> classGen) {
+
+ Either<List<ImmutablePair<T, GraphEdge>>, TitanOperationStatus> elementsNodesRes = titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ResourceInstance), resourceInstanceUid, edgeConectingToRI, elementTypeToDelete,
+ classGen.get());
+
+ if (elementsNodesRes.isRight()) {
+ TitanOperationStatus status = elementsNodesRes.right().value();
+ if (status != TitanOperationStatus.NOT_FOUND) {
+ BeEcompErrorManager.getInstance().logInternalFlowError("deleteAssociatedRIElements", "Failed to find the elements of resource instance " + resourceInstanceUid + ". status is " + status, ErrorSeverity.ERROR);
+ return status;
+ }
+ } else {
+
+ List<ImmutablePair<T, GraphEdge>> relationshipNodes = elementsNodesRes.left().value();
+ if (relationshipNodes != null) {
+ for (ImmutablePair<T, GraphEdge> immutablePair : relationshipNodes) {
+ T elementValueDataData = immutablePair.getKey();
+ Either<T, TitanOperationStatus> deleteNode = titanGenericDao.deleteNode(elementValueDataData, classGen.get());
+ if (deleteNode.isRight()) {
+ TitanOperationStatus status = deleteNode.right().value();
+ BeEcompErrorManager.getInstance().logInternalFlowError("deleteAssociatedRIElements", "Failed to delete element value node " + elementValueDataData + ". status is " + status, ErrorSeverity.ERROR);
+ return status;
+ }
+ }
+ }
+
+ }
+
+ return TitanOperationStatus.OK;
+ }
+
+ @Override
+ public Either<Integer, StorageOperationStatus> increaseAndGetGroupInstancePropertyCounter(String groupInstanceId) {
+ Either<Integer, StorageOperationStatus> result = null;
+
+ Either<TitanGraph, TitanOperationStatus> graphResult = titanGenericDao.getGraph();
+ if (graphResult.isRight()) {
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(graphResult.right().value()));
+ return result;
+ }
+ Either<TitanVertex, TitanOperationStatus> vertexService = titanGenericDao.getVertexByProperty(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.GroupInstance), groupInstanceId);
+ if (vertexService.isRight()) {
+ log.debug("failed to fetch vertex of resource instance for id = {}", groupInstanceId);
+ TitanOperationStatus status = vertexService.right().value();
+ if (status == TitanOperationStatus.NOT_FOUND) {
+ status = TitanOperationStatus.INVALID_ID;
+ }
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(vertexService.right().value()));
+ return result;
+ }
+ Vertex vertex = vertexService.left().value();
+
+ VertexProperty<Object> vertexProperty = vertex.property(GraphPropertiesDictionary.PROPERTY_COUNTER.getProperty());
+ Integer counter = 0;
+ if (vertexProperty.isPresent()) {
+ if (vertexProperty.value() != null) {
+ counter = (Integer) vertexProperty.value();
+ }
+ }
+
+ counter++;
+ vertex.property(GraphPropertiesDictionary.PROPERTY_COUNTER.getProperty(), counter);
+
+ result = Either.left(counter);
+ return result;
+
+ }
+
+ @Override
+ public Either<Boolean, StorageOperationStatus> isGroupInstanceNameExist(String parentComponentId, NodeTypeEnum parentNodeType, String compInstId, String componentInstName) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Either<ComponentInstance, StorageOperationStatus> getFullGroupInstance(ComponentInstance componentInstance, NodeTypeEnum compInstNodeType) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Either<ComponentInstanceProperty, StorageOperationStatus> addPropertyValueToGroupInstance(ComponentInstanceProperty groupInstanceProperty, String groupInstanceId, Integer index, boolean inTransaction) {
+ /// #RULES SUPPORT
+ /// Ignore rules received from client till support
+ groupInstanceProperty.setRules(null);
+ ///
+ ///
+
+ Either<ComponentInstanceProperty, StorageOperationStatus> result = null;
+
+ try {
+
+ Either<PropertyValueData, TitanOperationStatus> eitherStatus = addPropertyToGroupInstance(groupInstanceProperty, groupInstanceId, index);
+
+ if (eitherStatus.isRight()) {
+ log.error("Failed to add property value {} to resource instance {} in Graph. status is {}", groupInstanceProperty, groupInstanceId, eitherStatus.right().value().name());
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(eitherStatus.right().value()));
+ return result;
+ } else {
+ PropertyValueData propertyValueData = eitherStatus.left().value();
+
+ ComponentInstanceProperty propertyValueResult = propertyOperation.buildResourceInstanceProperty(propertyValueData, groupInstanceProperty);
+ log.debug("The returned GroupInstanceProperty is {}", propertyValueResult);
+
+ Either<String, TitanOperationStatus> findDefaultValue = propertyOperation.findDefaultValueFromSecondPosition(groupInstanceProperty.getPath(), groupInstanceProperty.getUniqueId(), groupInstanceProperty.getDefaultValue());
+ if (findDefaultValue.isRight()) {
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(findDefaultValue.right().value()));
+ return result;
+ }
+ String defaultValue = findDefaultValue.left().value();
+ propertyValueResult.setDefaultValue(defaultValue);
+ log.debug("The returned default value in ResourceInstanceProperty is {}", defaultValue);
+
+ result = Either.left(propertyValueResult);
+ return result;
+ }
+ }
+
+ finally {
+ if (false == inTransaction) {
+ if (result == null || result.isRight()) {
+ log.error("Going to execute rollback on graph.");
+ titanGenericDao.rollback();
+ } else {
+ log.debug("Going to execute commit on graph.");
+ titanGenericDao.commit();
+ }
+ }
+ }
+
+ }
+
+ @Override
+ public Either<ComponentInstanceProperty, StorageOperationStatus> addPropertyValueToGroupInstance(ComponentInstanceProperty resourceInstanceProperty, String resourceInstanceId, boolean isvalidate, Integer index, boolean inTransaction) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Either<ComponentInstanceProperty, StorageOperationStatus> updatePropertyValueInGroupInstance(ComponentInstanceProperty gropuInstanceProperty, String groupInstanceId, boolean inTransaction) {
+ // TODO Auto-generated method stub
+ // change Propety class
+ return null;
+ }
+
+ @Override
+ public Either<Map<String, ArtifactDefinition>, StorageOperationStatus> fetchCIEnvArtifacts(String componentInstanceId) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public StorageOperationStatus updateCustomizationUUID(String groupInstanceId) {
+ Either<TitanVertex, TitanOperationStatus> vertexByProperty = titanGenericDao.getVertexByProperty(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), groupInstanceId);
+ if (vertexByProperty.isRight()) {
+ log.debug("Failed to fetch component instance by id {} error {}", groupInstanceId, vertexByProperty.right().value());
+ return DaoStatusConverter.convertTitanStatusToStorageStatus(vertexByProperty.right().value());
+ }
+ UUID uuid = UUID.randomUUID();
+ TitanVertex ciVertex = vertexByProperty.left().value();
+ ciVertex.property(GraphPropertiesDictionary.CUSTOMIZATION_UUID.getProperty(), uuid.toString());
+
+ return StorageOperationStatus.OK;
+ }
+
+ public void generateCustomizationUUID(GroupInstance groupInstance) {
+ UUID uuid = UUID.randomUUID();
+ groupInstance.setCustomizationUUID(uuid.toString());
+ }
+
+ /**
+ * add property to resource instance
+ *
+ * @param resourceInstanceProperty
+ * @param resourceInstanceId
+ * @param index
+ * @return
+ */
+ public Either<PropertyValueData, TitanOperationStatus> addPropertyToGroupInstance(ComponentInstanceProperty groupInstanceProperty, String groupInstanceId, Integer index) {
+
+ Either<GroupInstanceData, TitanOperationStatus> findResInstanceRes = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.GroupInstance), groupInstanceId, GroupInstanceData.class);
+
+ if (findResInstanceRes.isRight()) {
+ TitanOperationStatus status = findResInstanceRes.right().value();
+ if (status == TitanOperationStatus.NOT_FOUND) {
+ status = TitanOperationStatus.INVALID_ID;
+ }
+ return Either.right(status);
+ }
+
+ String propertyId = groupInstanceProperty.getUniqueId();
+ Either<PropertyData, TitanOperationStatus> findPropertyDefRes = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Property), propertyId, PropertyData.class);
+
+ if (findPropertyDefRes.isRight()) {
+ TitanOperationStatus status = findPropertyDefRes.right().value();
+ if (status == TitanOperationStatus.NOT_FOUND) {
+ status = TitanOperationStatus.INVALID_ID;
+ }
+ return Either.right(status);
+ }
+
+ String valueUniqueUid = groupInstanceProperty.getValueUniqueUid();
+ if (valueUniqueUid == null) {
+
+ PropertyData propertyData = findPropertyDefRes.left().value();
+ GroupInstanceData resourceInstanceData = findResInstanceRes.left().value();
+
+ ImmutablePair<TitanOperationStatus, String> isPropertyValueExists = propertyOperation.findPropertyValue(groupInstanceId, propertyId);
+ if (isPropertyValueExists.getLeft() == TitanOperationStatus.ALREADY_EXIST) {
+ log.debug("The property {} already added to the resource instance {}", propertyId, groupInstanceId);
+ groupInstanceProperty.setValueUniqueUid(isPropertyValueExists.getRight());
+ Either<PropertyValueData, TitanOperationStatus> updatePropertyOfResourceInstance = updatePropertyOfGroupInstance(groupInstanceProperty, groupInstanceId);
+ if (updatePropertyOfResourceInstance.isRight()) {
+ BeEcompErrorManager.getInstance().logInternalFlowError("UpdatePropertyValueOnComponentInstance", "Failed to update property value on instance. Status is " + updatePropertyOfResourceInstance.right().value(), ErrorSeverity.ERROR);
+ return Either.right(updatePropertyOfResourceInstance.right().value());
+ }
+ return Either.left(updatePropertyOfResourceInstance.left().value());
+ }
+
+ if (isPropertyValueExists.getLeft() != TitanOperationStatus.NOT_FOUND) {
+ log.debug("After finding property value of {} on componenet instance {}", propertyId, groupInstanceId);
+ return Either.right(isPropertyValueExists.getLeft());
+ }
+
+ String innerType = null;
+
+ PropertyDataDefinition propDataDef = propertyData.getPropertyDataDefinition();
+ String propertyType = propDataDef.getType();
+ String value = groupInstanceProperty.getValue();
+ ToscaPropertyType type = ToscaPropertyType.isValidType(propertyType);
+
+ if (type == ToscaPropertyType.LIST || type == ToscaPropertyType.MAP) {
+ SchemaDefinition def = propDataDef.getSchema();
+ if (def == null) {
+ log.debug("Schema doesn't exists for property of type {}", type);
+ return Either.right(TitanOperationStatus.ILLEGAL_ARGUMENT);
+ }
+ PropertyDataDefinition propDef = def.getProperty();
+ if (propDef == null) {
+ log.debug("Property in Schema Definition inside property of type {} doesn't exist", type);
+ return Either.right(TitanOperationStatus.ILLEGAL_ARGUMENT);
+ }
+ innerType = propDef.getType();
+ }
+
+ log.debug("Before validateAndUpdatePropertyValue");
+ Either<Map<String, DataTypeDefinition>, TitanOperationStatus> allDataTypes = dataTypeCache.getAll();
+ if (allDataTypes.isRight()) {
+ TitanOperationStatus status = allDataTypes.right().value();
+ BeEcompErrorManager.getInstance().logInternalFlowError("UpdatePropertyValueOnComponentInstance", "Failed to update property value on instance. Status is " + status, ErrorSeverity.ERROR);
+ return Either.right(status);
+ }
+ Either<Object, Boolean> isValid = propertyOperation.validateAndUpdatePropertyValue(propertyType, value, innerType, allDataTypes.left().value());
+ log.debug("After validateAndUpdatePropertyValue. isValid = {}", isValid);
+
+ String newValue = value;
+ if (isValid.isRight()) {
+ Boolean res = isValid.right().value();
+ if (res == false) {
+ return Either.right(TitanOperationStatus.ILLEGAL_ARGUMENT);
+ }
+ } else {
+ Object object = isValid.left().value();
+ if (object != null) {
+ newValue = object.toString();
+ }
+ }
+
+ String uniqueId = UniqueIdBuilder.buildResourceInstancePropertyValueUid(resourceInstanceData.getUniqueId(), index);
+ PropertyValueData propertyValueData = new PropertyValueData();
+ propertyValueData.setUniqueId(uniqueId);
+ propertyValueData.setValue(newValue);
+
+ log.debug("Before validateAndUpdateRules");
+ ImmutablePair<String, Boolean> pair = propertyOperation.validateAndUpdateRules(propertyType, groupInstanceProperty.getRules(), innerType, allDataTypes.left().value(), false);
+ log.debug("After validateAndUpdateRules. pair = {}", pair);
+ if (pair.getRight() != null && pair.getRight() == false) {
+ BeEcompErrorManager.getInstance().logBeInvalidValueError("Add property value", pair.getLeft(), groupInstanceProperty.getName(), propertyType);
+ return Either.right(TitanOperationStatus.ILLEGAL_ARGUMENT);
+ }
+ propertyOperation.addRulesToNewPropertyValue(propertyValueData, groupInstanceProperty, groupInstanceId);
+
+ log.debug("Before adding property value to graph {}", propertyValueData);
+ Either<PropertyValueData, TitanOperationStatus> createNodeResult = titanGenericDao.createNode(propertyValueData, PropertyValueData.class);
+ log.debug("After adding property value to graph {}", propertyValueData);
+
+ if (createNodeResult.isRight()) {
+ TitanOperationStatus operationStatus = createNodeResult.right().value();
+ return Either.right(operationStatus);
+ }
+ propertyValueData = createNodeResult.left().value();
+
+ Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(propertyValueData, propertyData, GraphEdgeLabels.PROPERTY_IMPL, null);
+
+ if (createRelResult.isRight()) {
+ TitanOperationStatus operationStatus = createRelResult.right().value();
+ log.error("Failed to associate property value {} to property {} in graph. status is {}", uniqueId, propertyId, operationStatus);
+ return Either.right(operationStatus);
+ }
+
+ createRelResult = titanGenericDao.createRelation(resourceInstanceData, propertyValueData, GraphEdgeLabels.PROPERTY_VALUE, null);
+
+ if (createRelResult.isRight()) {
+ TitanOperationStatus operationStatus = createRelResult.right().value();
+ log.error("Failed to associate resource instance {} property value {} in graph. status is {}", groupInstanceId, uniqueId, operationStatus);
+ return Either.right(operationStatus);
+ }
+
+ return Either.left(propertyValueData);
+ } else {
+ log.error("property value already exists.");
+ return Either.right(TitanOperationStatus.ALREADY_EXIST);
+ }
+
+ }
+
+ public Either<ComponentInstanceProperty, TitanOperationStatus> addPropertyToResourceInstance(ComponentInstanceProperty groupInstanceProperty, TitanVertex groupInstanceVertex, Integer index, String groupInstanceId) {
+
+ String propertyId = groupInstanceProperty.getUniqueId();
+ Either<PropertyData, TitanOperationStatus> findPropertyDefRes = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Property), propertyId, PropertyData.class);
+
+ if (findPropertyDefRes.isRight()) {
+ TitanOperationStatus status = findPropertyDefRes.right().value();
+ if (status == TitanOperationStatus.NOT_FOUND) {
+ status = TitanOperationStatus.INVALID_ID;
+ }
+ return Either.right(status);
+ }
+
+ String valueUniqueUid = groupInstanceProperty.getValueUniqueUid();
+ if (valueUniqueUid == null) {
+
+ PropertyData propertyData = findPropertyDefRes.left().value();
+
+ ImmutablePair<TitanOperationStatus, String> isPropertyValueExists = propertyOperation.findPropertyValue(groupInstanceId, propertyId);
+ if (isPropertyValueExists.getLeft() == TitanOperationStatus.ALREADY_EXIST) {
+ log.trace("The property {} already added to the resource instance {}", propertyId, groupInstanceId);
+ groupInstanceProperty.setValueUniqueUid(isPropertyValueExists.getRight());
+ Either<PropertyValueData, TitanOperationStatus> updatePropertyOfResourceInstance = updatePropertyOfGroupInstance(groupInstanceProperty, groupInstanceId);
+ if (updatePropertyOfResourceInstance.isRight()) {
+ BeEcompErrorManager.getInstance().logInternalFlowError("UpdatePropertyValueOnComponentInstance", "Failed to update property value on instance. Status is " + updatePropertyOfResourceInstance.right().value(), ErrorSeverity.ERROR);
+ return Either.right(updatePropertyOfResourceInstance.right().value());
+ }
+ return Either.right(TitanOperationStatus.OK);
+ }
+
+ if (isPropertyValueExists.getLeft() != TitanOperationStatus.NOT_FOUND) {
+ log.trace("After finding property value of {} on componenet instance {}", propertyId, groupInstanceId);
+ return Either.right(isPropertyValueExists.getLeft());
+ }
+
+ String innerType = null;
+
+ PropertyDataDefinition propDataDef = propertyData.getPropertyDataDefinition();
+ String propertyType = propDataDef.getType();
+ String value = groupInstanceProperty.getValue();
+ ToscaPropertyType type = ToscaPropertyType.isValidType(propertyType);
+
+ if (type == ToscaPropertyType.LIST || type == ToscaPropertyType.MAP) {
+ SchemaDefinition def = propDataDef.getSchema();
+ if (def == null) {
+ log.debug("Schema doesn't exists for property of type {}", type);
+ return Either.right(TitanOperationStatus.ILLEGAL_ARGUMENT);
+ }
+ PropertyDataDefinition propDef = def.getProperty();
+ if (propDef == null) {
+ log.debug("Property in Schema Definition inside property of type {} doesn't exist", type);
+ return Either.right(TitanOperationStatus.ILLEGAL_ARGUMENT);
+ }
+ innerType = propDef.getType();
+ }
+
+ log.trace("Before validateAndUpdatePropertyValue");
+ Either<Map<String, DataTypeDefinition>, TitanOperationStatus> allDataTypes = dataTypeCache.getAll();
+ if (allDataTypes.isRight()) {
+ TitanOperationStatus status = allDataTypes.right().value();
+ BeEcompErrorManager.getInstance().logInternalFlowError("UpdatePropertyValueOnComponentInstance", "Failed to update property value on instance. Status is " + status, ErrorSeverity.ERROR);
+ return Either.right(status);
+ }
+ Either<Object, Boolean> isValid = propertyOperation.validateAndUpdatePropertyValue(propertyType, value, innerType, allDataTypes.left().value());
+ log.trace("After validateAndUpdatePropertyValue. isValid = {}", isValid);
+
+ String newValue = value;
+ if (isValid.isRight()) {
+ Boolean res = isValid.right().value();
+ if (res == false) {
+ return Either.right(TitanOperationStatus.ILLEGAL_ARGUMENT);
+ }
+ } else {
+ Object object = isValid.left().value();
+ if (object != null) {
+ newValue = object.toString();
+ }
+ }
+
+ String uniqueId = UniqueIdBuilder.buildResourceInstancePropertyValueUid(groupInstanceId, index);
+ PropertyValueData propertyValueData = new PropertyValueData();
+ propertyValueData.setUniqueId(uniqueId);
+ propertyValueData.setValue(newValue);
+
+ log.trace("Before validateAndUpdateRules");
+ ImmutablePair<String, Boolean> pair = propertyOperation.validateAndUpdateRules(propertyType, groupInstanceProperty.getRules(), innerType, allDataTypes.left().value(), false);
+ log.debug("After validateAndUpdateRules. pair = {} ", pair);
+ if (pair.getRight() != null && pair.getRight() == false) {
+ BeEcompErrorManager.getInstance().logBeInvalidValueError("Add property value", pair.getLeft(), groupInstanceProperty.getName(), propertyType);
+ return Either.right(TitanOperationStatus.ILLEGAL_ARGUMENT);
+ }
+ propertyOperation.addRulesToNewPropertyValue(propertyValueData, groupInstanceProperty, groupInstanceId);
+
+ log.trace("Before adding property value to graph {}", propertyValueData);
+ Either<PropertyValueData, TitanOperationStatus> createNodeResult = titanGenericDao.createNode(propertyValueData, PropertyValueData.class);
+ log.trace("After adding property value to graph {}", propertyValueData);
+
+ if (createNodeResult.isRight()) {
+ TitanOperationStatus operationStatus = createNodeResult.right().value();
+ return Either.right(operationStatus);
+ }
+ propertyValueData = createNodeResult.left().value();
+
+ Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(propertyValueData, propertyData, GraphEdgeLabels.PROPERTY_IMPL, null);
+
+ if (createRelResult.isRight()) {
+ TitanOperationStatus operationStatus = createRelResult.right().value();
+ log.error("Failed to associate property value {} to property {} in graph. status is {}", uniqueId, propertyId, operationStatus);
+ return Either.right(operationStatus);
+ }
+
+ TitanOperationStatus edgeResult = titanGenericDao.createEdge(groupInstanceVertex, propertyValueData, GraphEdgeLabels.PROPERTY_VALUE, null);
+
+ if (edgeResult != TitanOperationStatus.OK) {
+ log.error("Failed to associate resource instance {} property value {} in graph. status is {}", groupInstanceId, uniqueId, edgeResult);
+ return Either.right(edgeResult);
+ }
+
+ ComponentInstanceProperty propertyValueResult = propertyOperation.buildResourceInstanceProperty(propertyValueData, groupInstanceProperty);
+ log.debug("The returned ResourceInstanceProperty is {} ", propertyValueResult);
+
+ return Either.left(propertyValueResult);
+ } else {
+ log.debug("property value already exists.");
+ return Either.right(TitanOperationStatus.ALREADY_EXIST);
+ }
+
+ }
+
+ public Either<GroupInstance, TitanOperationStatus> addGroupInstanceToComponentInstance(String componentInstanceId, boolean isCreateLogicaName, GroupInstance groupInstance) {
+ log.debug("Going to create group instance {} in componentInstance {}", groupInstance, componentInstanceId);
+
+ Either<TitanVertex, TitanOperationStatus> metadataVertex = titanGenericDao.getVertexByProperty(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), componentInstanceId);
+ if (metadataVertex.isRight()) {
+ TitanOperationStatus status = metadataVertex.right().value();
+ if (status == TitanOperationStatus.NOT_FOUND) {
+ status = TitanOperationStatus.INVALID_ID;
+ }
+ return Either.right(status);
+ }
+ Either<TitanVertex, TitanOperationStatus> addComponentInstanceToContainerComponent = addGroupInstanceToContainerComponent(metadataVertex.left().value(), componentInstanceId, isCreateLogicaName, groupInstance);
+
+ if (addComponentInstanceToContainerComponent.isRight()) {
+ TitanOperationStatus status = addComponentInstanceToContainerComponent.right().value();
+ if (status == TitanOperationStatus.NOT_FOUND) {
+ status = TitanOperationStatus.INVALID_ID;
+ }
+ return Either.right(status);
+ }
+ TitanVertex ciVertex = addComponentInstanceToContainerComponent.left().value();
+ Map<String, Object> properties = titanGenericDao.getProperties(ciVertex);
+ GroupInstanceData createdComponentInstance = GraphElementFactory.createElement(NodeTypeEnum.GroupInstance.getName(), GraphElementTypeEnum.Node, properties, GroupInstanceData.class);
+
+ GroupInstance createdResourceInstance = new GroupInstance(createdComponentInstance.getGroupDataDefinition());
+
+ return Either.left(createdResourceInstance);
+
+ }
+
+ /**
+ *
+ * @param containerComponentId
+ * @param containerNodeType
+ * @param instanceNumber
+ * @param isCreateLogicaName
+ * @param componentInstance
+ * @param compInstNodeType
+ * @param metadataVertex
+ * @return
+ */
+ public Either<TitanVertex, TitanOperationStatus> addGroupInstanceToContainerComponent(TitanVertex ciVertex, String componentInstanceId, boolean isCreateLogicaName, GroupInstance groupInstance) {
+ TitanOperationStatus status = null;
+ log.debug("Going to create group instance {} in component instance {}", groupInstance, componentInstanceId);
+ String instOriginGroupId = groupInstance.getGroupUid();
+ String logicalName = groupInstance.getName();
+ if (isCreateLogicaName){
+ String instanceName = (String) titanGenericDao.getProperty(ciVertex, GraphPropertiesDictionary.NORMALIZED_NAME.getProperty());
+ logicalName = createGroupInstLogicalName(instanceName, groupInstance.getGroupName());
+ }
+
+ GroupInstanceData groupInstanceData = buildGroupInstanceData(groupInstance, componentInstanceId, logicalName);
+ Either<TitanVertex, TitanOperationStatus> originVertexEither = titanGenericDao.getVertexByProperty(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), instOriginGroupId);
+ if (originVertexEither.isRight()) {
+ log.debug("Failed to fetch vertex of origin resource for id {} error {}", instOriginGroupId, originVertexEither.right().value());
+ return Either.right(originVertexEither.right().value());
+ }
+ TitanVertex originVertex = originVertexEither.left().value();
+
+ // String originType = (String) titanGenericDao.getProperty(originVertex, GraphPropertiesDictionary.LABEL.getProperty());
+ String groupType = (String) titanGenericDao.getProperty(originVertex, GraphPropertiesDictionary.TYPE.getProperty());
+ // detectOriginType(originType, groupInstanceData, resourceType);
+
+ log.trace("Before adding component instance to graph. componentInstanceData = {}", groupInstanceData);
+ // groupInstanceData.getGroupDataDefinition().setGroupUid(groupType);
+
+ Either<TitanVertex, TitanOperationStatus> createGIResult = titanGenericDao.createNode(groupInstanceData);
+
+ log.debug("After adding component instance to graph. status is = {}", createGIResult);
+
+ if (createGIResult.isRight()) {
+ status = createGIResult.right().value();
+ BeEcompErrorManager.getInstance().logBeDaoSystemError("Add Component Instance");
+ log.debug("Failed to create group instance node in graph. status is {}", status);
+ return Either.right(status);
+ }
+ TitanVertex createdGroupInstanceVertex = createGIResult.left().value();
+ TitanOperationStatus associateContainerRes = associateComponentInstanceToGroupInstance(ciVertex, createdGroupInstanceVertex, logicalName);
+
+ String componentInstanceUniqueId = groupInstanceData.getUniqueId();
+ if (associateContainerRes != TitanOperationStatus.OK) {
+ BeEcompErrorManager.getInstance().logBeDaoSystemError("Add Component Instance");
+ log.debug("Failed to associate container component {} to component instance {}. Status is {}", componentInstanceId, componentInstanceUniqueId, associateContainerRes);
+ return Either.right(associateContainerRes);
+ }
+ // String originId = (String) titanGenericDao.getProperty(createdGroupInstanceVertex, GraphPropertiesDictionary.TYPE.getProperty());
+
+ TitanOperationStatus associateToInstOriginComponent = associateToInstOriginGroup(createdGroupInstanceVertex, originVertex, instOriginGroupId);
+ if (associateToInstOriginComponent != TitanOperationStatus.OK) {
+ BeEcompErrorManager.getInstance().logBeDaoSystemError("Add Component Instance");
+ log.debug("Failed to associate component instance {} to its origin component {}. Status is {}", componentInstanceUniqueId, groupInstanceData.getGroupDataDefinition().getGroupUid(), associateToInstOriginComponent);
+ return Either.right(associateToInstOriginComponent);
+ }
+
+ // Capability instance with property values implementation
+
+ if (status == null) {
+ // ComponentInstance createdResourceInstance = new
+ // ComponentInstance(createdComponentInstance.getComponentInstDataDefinition());
+ //
+ // String icon = (String) titanGenericDao.getProperty(originVertex,
+ // GraphPropertiesDictionary.ICON.getProperty());
+ // createdResourceInstance.setIcon(icon);
+ return Either.left(createdGroupInstanceVertex);
+ }
+ return Either.right(status);
+ }
+
+ private GroupInstanceData buildGroupInstanceData(GroupInstance groupInstance, String componentInstanceId, String logicalName) {
+ String ciOriginComponentUid = groupInstance.getGroupUid();
+
+ GroupInstanceDataDefinition dataDefinition = new GroupInstanceDataDefinition(groupInstance);
+
+ Long creationDate = groupInstance.getCreationTime();
+ if (creationDate == null) {
+ creationDate = System.currentTimeMillis();
+ }
+ dataDefinition.setCreationTime(creationDate);
+ dataDefinition.setModificationTime(creationDate);
+ // dataDefinition.setResourceUid(resourceUid);
+ // String replacmentlogicalName = logicalName.replaceAll(" ",
+ // "_").toLowerCase();
+ dataDefinition.setName(logicalName);
+ if (dataDefinition.getNormalizedName() == null)
+ dataDefinition.setNormalizedName(ValidationUtils.normalizeComponentInstanceName(logicalName));
+ dataDefinition.setUniqueId(UniqueIdBuilder.buildResourceInstanceUniuqeId(componentInstanceId, ciOriginComponentUid, dataDefinition.getNormalizedName()));
+
+ GroupInstanceData resourceInstanceData = new GroupInstanceData(dataDefinition);
+
+ return resourceInstanceData;
+ }
+
+ @Override
+ public String createGroupInstLogicalName(String instanceName, String groupName) {
+
+ String logicalName = buildGroupInstanceLogicalName(instanceName, groupName);
+
+ return logicalName;
+ }
+
+ private String buildGroupInstanceLogicalName(String instanceName, String groupName) {
+ return instanceName + ".." + groupName;
+ }
+
+ /**
+ * Make a relation between service to resource instance.
+ *
+ * @param containerCompIdData
+ * @param componentInstanceData
+ * @param logicalName
+ * @return
+ */
+ private Either<GraphRelation, TitanOperationStatus> associateComponentInstanceToGroupInstance(UniqueIdData compInstIdData, GroupInstanceData groupInstanceData, String logicalName) {
+ Map<String, Object> properties = new HashMap<String, Object>();
+
+ properties.put(GraphPropertiesDictionary.NAME.getProperty(), logicalName);
+ Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(compInstIdData, groupInstanceData, GraphEdgeLabels.GROUP_INST, properties);
+
+ log.debug("After associating container component {} to resource instance {} with logical name {}. Status is {}", compInstIdData.getUniqueId(), groupInstanceData.getUniqueId(), logicalName, createRelation);
+
+ return createRelation;
+ }
+
+ private TitanOperationStatus associateComponentInstanceToGroupInstance(TitanVertex componentInstVertex, TitanVertex groupInstanceVertex, String logicalName) {
+ Map<String, Object> properties = new HashMap<String, Object>();
+
+ properties.put(GraphPropertiesDictionary.NAME.getProperty(), logicalName);
+ TitanOperationStatus createRelation = titanGenericDao.createEdge(componentInstVertex, groupInstanceVertex, GraphEdgeLabels.GROUP_INST, properties);
+
+ return createRelation;
+ }
+
+ private Either<GraphRelation, TitanOperationStatus> associateToInstOriginGroup(GroupInstanceData groupInstanceData, NodeTypeEnum compInstNodeType) {
+
+ UniqueIdData groupIdData = new UniqueIdData(compInstNodeType, groupInstanceData.getGroupDataDefinition().getGroupUid());
+
+ Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(groupInstanceData, groupIdData, GraphEdgeLabels.INSTANCE_OF, null);
+
+ log.debug("After associating group instance {} to group {}. status is {}", groupInstanceData.getUniqueId(), groupInstanceData.getGroupDataDefinition().getGroupUid(), createRelation);
+
+ return createRelation;
+ }
+
+ private TitanOperationStatus associateToInstOriginGroup(TitanVertex groupInstanceVertex, TitanVertex originVertex, String originId) {
+
+ TitanOperationStatus createRelation = titanGenericDao.createEdge(groupInstanceVertex, originVertex, GraphEdgeLabels.INSTANCE_OF, null);
+
+ log.debug("After associating group instance {} to group {}. status is {}", groupInstanceVertex, originId, createRelation);
+
+ return createRelation;
+ }
+
+ public Either<List<GroupProperty>, TitanOperationStatus> getGroupInstanceProperties(GroupInstance groupInstance, GroupDefinition groupDefinition) {
+
+ // 1. Go over each instance
+ // 1.1 get all properties of from the parents of the instance
+ // 1.2 get all updated properties
+ // 1.3 find all instances included in the parent of this instance and
+ // run this method on them.
+ String groupInstanceId = groupInstance.getUniqueId();
+ if (log.isDebugEnabled())
+ log.debug("Going to update properties of group instance {}", groupInstanceId);
+ String groupUid = groupInstance.getGroupUid();
+ List<GroupProperty> properties = groupDefinition.convertToGroupProperties();
+
+ if (log.isDebugEnabled())
+ log.debug("After getting properties of group {} . Number of properties is {}", groupUid, (properties == null ? 0 : properties.size()));
+ List<GroupProperty> resourceInstancePropertyList = new ArrayList<>();
+ if (properties != null && false == properties.isEmpty()) {
+
+ // TODO: WE MAY HAVE INDIRECT PROPERTY VALUE ALSO IN CASE NO
+ // PROPERTY ON THIS COMPONENT
+
+ // String resourceInstanceUid = resourceInstance.getUniqueId();
+
+ for (GroupProperty propertyDefinition : properties) {
+
+ String defaultValue = propertyDefinition.getDefaultValue();
+ String value = defaultValue;
+ String valueUid = null;
+
+ // String propertyId = propertyDefinition.getUniqueId();
+
+ GroupProperty resourceInstanceProperty = new GroupProperty(propertyDefinition, value, valueUid);
+
+ // resourceInstanceProperty.setPath(cloneList(path));
+
+ // TODO: currently ignore constraints since they are not inuse
+ // and cause to error in convertion to object.
+ resourceInstanceProperty.setConstraints(null);
+
+ resourceInstancePropertyList.add(resourceInstanceProperty);
+
+ }
+
+ }
+
+ return Either.left(resourceInstancePropertyList);
+ }
+
+ /**
+ * update value of attribute on resource instance
+ *
+ * @param resourceInstanceProerty
+ * @param resourceInstanceId
+ * @return
+ */
+ public Either<PropertyValueData, TitanOperationStatus> updatePropertyOfGroupInstance(ComponentInstanceProperty groupInstanceProerty, String groupInstanceId) {
+
+ Wrapper<TitanOperationStatus> errorWrapper = new Wrapper<>();
+ UpdateDataContainer<PropertyData, PropertyValueData> updateDataContainer = new UpdateDataContainer<>(GraphEdgeLabels.PROPERTY_IMPL, (() -> PropertyData.class), (() -> PropertyValueData.class), NodeTypeEnum.Property,
+ NodeTypeEnum.PropertyValue);
+
+ preUpdateElementOfResourceInstanceValidations(updateDataContainer, groupInstanceProerty, groupInstanceId, errorWrapper);
+ if (!errorWrapper.isEmpty()) {
+ return Either.right(errorWrapper.getInnerElement());
+ }
+
+ else {
+ String value = groupInstanceProerty.getValue();
+ // Specific Validation Logic
+ PropertyData propertyData = updateDataContainer.getDataWrapper().getInnerElement();
+
+ String innerType = null;
+
+ PropertyDataDefinition propDataDef = propertyData.getPropertyDataDefinition();
+ String propertyType = propDataDef.getType();
+ ToscaPropertyType type = ToscaPropertyType.isValidType(propertyType);
+ log.debug("The type of the property {} is {}", propertyData.getUniqueId(), propertyType);
+
+ if (type == ToscaPropertyType.LIST || type == ToscaPropertyType.MAP) {
+ SchemaDefinition def = propDataDef.getSchema();
+ if (def == null) {
+ log.debug("Schema doesn't exists for property of type {}", type);
+ return Either.right(TitanOperationStatus.ILLEGAL_ARGUMENT);
+ }
+ PropertyDataDefinition propDef = def.getProperty();
+ if (propDef == null) {
+ log.debug("Property in Schema Definition inside property of type {} doesn't exist", type);
+ return Either.right(TitanOperationStatus.ILLEGAL_ARGUMENT);
+ }
+ innerType = propDef.getType();
+ }
+ // Specific Update Logic
+ Either<Map<String, DataTypeDefinition>, TitanOperationStatus> allDataTypes = dataTypeCache.getAll();
+ if (allDataTypes.isRight()) {
+ TitanOperationStatus status = allDataTypes.right().value();
+ BeEcompErrorManager.getInstance().logInternalFlowError("UpdatePropertyValueOnComponentInstance", "Failed to update property value on instance. Status is " + status, ErrorSeverity.ERROR);
+ return Either.right(status);
+ }
+ Either<Object, Boolean> isValid = propertyOperation.validateAndUpdatePropertyValue(propertyType, value, innerType, allDataTypes.left().value());
+
+ String newValue = value;
+ if (isValid.isRight()) {
+ Boolean res = isValid.right().value();
+ if (res == false) {
+ return Either.right(TitanOperationStatus.ILLEGAL_ARGUMENT);
+ }
+ } else {
+ Object object = isValid.left().value();
+ if (object != null) {
+ newValue = object.toString();
+ }
+ }
+ PropertyValueData propertyValueData = updateDataContainer.getValueDataWrapper().getInnerElement();
+ log.debug("Going to update property value from {} to {}", propertyValueData.getValue(), newValue);
+ propertyValueData.setValue(newValue);
+
+ ImmutablePair<String, Boolean> pair = propertyOperation.validateAndUpdateRules(propertyType, groupInstanceProerty.getRules(), innerType, allDataTypes.left().value(), true);
+ if (pair.getRight() != null && pair.getRight() == false) {
+ BeEcompErrorManager.getInstance().logBeInvalidValueError("Add property value", pair.getLeft(), groupInstanceProerty.getName(), propertyType);
+ return Either.right(TitanOperationStatus.ILLEGAL_ARGUMENT);
+ }
+ propertyOperation.updateRulesInPropertyValue(propertyValueData, groupInstanceProerty, groupInstanceId);
+
+ Either<PropertyValueData, TitanOperationStatus> updateRes = titanGenericDao.updateNode(propertyValueData, PropertyValueData.class);
+ if (updateRes.isRight()) {
+ TitanOperationStatus status = updateRes.right().value();
+ return Either.right(status);
+ } else {
+ return Either.left(updateRes.left().value());
+ }
+ }
+
+ }
+
+ private static final class UpdateDataContainer<SomeData, SomeValueData> {
+ final Wrapper<SomeValueData> valueDataWrapper;
+ final Wrapper<SomeData> dataWrapper;
+ final GraphEdgeLabels graphEdge;
+ final Supplier<Class<SomeData>> someDataClassGen;
+ final Supplier<Class<SomeValueData>> someValueDataClassGen;
+ final NodeTypeEnum nodeType;
+ final NodeTypeEnum nodeTypeValue;
+
+ private UpdateDataContainer(GraphEdgeLabels graphEdge, Supplier<Class<SomeData>> someDataClassGen, Supplier<Class<SomeValueData>> someValueDataClassGen, NodeTypeEnum nodeType, NodeTypeEnum nodeTypeValue) {
+ super();
+ this.valueDataWrapper = new Wrapper<>();
+ this.dataWrapper = new Wrapper<>();
+ this.graphEdge = graphEdge;
+ this.someDataClassGen = someDataClassGen;
+ this.someValueDataClassGen = someValueDataClassGen;
+ this.nodeType = nodeType;
+ this.nodeTypeValue = nodeTypeValue;
+ }
+
+ public Wrapper<SomeValueData> getValueDataWrapper() {
+ return valueDataWrapper;
+ }
+
+ public Wrapper<SomeData> getDataWrapper() {
+ return dataWrapper;
+ }
+
+ public GraphEdgeLabels getGraphEdge() {
+ return graphEdge;
+ }
+
+ public Supplier<Class<SomeData>> getSomeDataClassGen() {
+ return someDataClassGen;
+ }
+
+ public Supplier<Class<SomeValueData>> getSomeValueDataClassGen() {
+ return someValueDataClassGen;
+ }
+
+ public NodeTypeEnum getNodeType() {
+ return nodeType;
+ }
+
+ public NodeTypeEnum getNodeTypeValue() {
+ return nodeTypeValue;
+ }
+ }
+
+ private <SomeData extends GraphNode, SomeValueData extends GraphNode> void preUpdateElementOfResourceInstanceValidations(UpdateDataContainer<SomeData, SomeValueData> updateDataContainer, IComponentInstanceConnectedElement resourceInstanceProerty,
+ String resourceInstanceId, Wrapper<TitanOperationStatus> errorWrapper) {
+
+ if (errorWrapper.isEmpty()) {
+ // Verify VFC instance Exist
+ validateGIExist(resourceInstanceId, errorWrapper);
+ }
+
+ if (errorWrapper.isEmpty()) {
+ // Example: Verify Property connected to VFC exist
+ validateElementConnectedToComponentExist(updateDataContainer, resourceInstanceProerty, errorWrapper);
+ }
+
+ if (errorWrapper.isEmpty()) {
+ // Example: Verify PropertyValue connected to VFC Instance exist
+ validateElementConnectedToComponentInstanceExist(updateDataContainer, resourceInstanceProerty, errorWrapper);
+ }
+
+ if (errorWrapper.isEmpty()) {
+ // Example: Verify PropertyValue connected Property
+ validateElementConnectedToInstance(updateDataContainer, resourceInstanceProerty, errorWrapper);
+ }
+ }
+
+ private <SomeData extends GraphNode, SomeValueData extends GraphNode> void validateElementConnectedToInstance(UpdateDataContainer<SomeData, SomeValueData> updateDataContainer, IComponentInstanceConnectedElement resourceInstanceProerty,
+ Wrapper<TitanOperationStatus> errorWrapper) {
+ Either<ImmutablePair<SomeData, GraphEdge>, TitanOperationStatus> child = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(updateDataContainer.getNodeTypeValue()), resourceInstanceProerty.getValueUniqueUid(),
+ updateDataContainer.getGraphEdge(), updateDataContainer.getNodeType(), updateDataContainer.getSomeDataClassGen().get());
+
+ if (child.isRight()) {
+ TitanOperationStatus status = child.right().value();
+ if (status == TitanOperationStatus.NOT_FOUND) {
+ status = TitanOperationStatus.INVALID_ID;
+ }
+ errorWrapper.setInnerElement(status);
+
+ } else {
+ updateDataContainer.getDataWrapper().setInnerElement(child.left().value().left);
+ }
+ }
+
+ private <SomeValueData extends GraphNode, SomeData extends GraphNode> void validateElementConnectedToComponentInstanceExist(UpdateDataContainer<SomeData, SomeValueData> updateDataContainer,
+ IComponentInstanceConnectedElement resourceInstanceProerty, Wrapper<TitanOperationStatus> errorWrapper) {
+ String valueUniqueUid = resourceInstanceProerty.getValueUniqueUid();
+ if (valueUniqueUid == null) {
+ errorWrapper.setInnerElement(TitanOperationStatus.INVALID_ID);
+ } else {
+ Either<SomeValueData, TitanOperationStatus> findPropertyValueRes = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(updateDataContainer.getNodeTypeValue()), valueUniqueUid, updateDataContainer.getSomeValueDataClassGen().get());
+ if (findPropertyValueRes.isRight()) {
+ TitanOperationStatus status = findPropertyValueRes.right().value();
+ if (status == TitanOperationStatus.NOT_FOUND) {
+ status = TitanOperationStatus.INVALID_ID;
+ }
+ errorWrapper.setInnerElement(status);
+ } else {
+ updateDataContainer.getValueDataWrapper().setInnerElement(findPropertyValueRes.left().value());
+ }
+ }
+ }
+
+ private <SomeData extends GraphNode, SomeValueData extends GraphNode> void validateElementConnectedToComponentExist(UpdateDataContainer<SomeData, SomeValueData> updateDataContainer,
+ IComponentInstanceConnectedElement resourceInstanceElementConnected, Wrapper<TitanOperationStatus> errorWrapper) {
+ String uniqueId = resourceInstanceElementConnected.getUniqueId();
+ Either<SomeData, TitanOperationStatus> findPropertyDefRes = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(updateDataContainer.getNodeType()), uniqueId, updateDataContainer.getSomeDataClassGen().get());
+
+ if (findPropertyDefRes.isRight()) {
+ TitanOperationStatus status = findPropertyDefRes.right().value();
+ errorWrapper.setInnerElement(status);
+ }
+ }
+
+ private void validateGIExist(String resourceInstanceId, Wrapper<TitanOperationStatus> errorWrapper) {
+ validateGIExist(resourceInstanceId, null, errorWrapper);
+ }
+
+ private void validateGIExist(String resourceInstanceId, Wrapper<GroupInstanceData> compInsDataWrapper, Wrapper<TitanOperationStatus> errorWrapper) {
+ validateElementExistInGraph(resourceInstanceId, NodeTypeEnum.GroupInstance, () -> GroupInstanceData.class, compInsDataWrapper, errorWrapper);
+ }
+
+ public <ElementData extends GraphNode> void validateElementExistInGraph(String elementUniqueId, NodeTypeEnum elementNodeType, Supplier<Class<ElementData>> elementClassGen, Wrapper<ElementData> elementDataWrapper,
+ Wrapper<TitanOperationStatus> errorWrapper) {
+ Either<ElementData, TitanOperationStatus> findResInstanceRes = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(elementNodeType), elementUniqueId, elementClassGen.get());
+ if (findResInstanceRes.isRight()) {
+ TitanOperationStatus status = findResInstanceRes.right().value();
+ if (status == TitanOperationStatus.NOT_FOUND) {
+ status = TitanOperationStatus.INVALID_ID;
+ }
+ errorWrapper.setInnerElement(status);
+ } else {
+ if (elementDataWrapper != null) {
+ elementDataWrapper.setInnerElement(findResInstanceRes.left().value());
+ }
+ }
+ }
+
+ /**
+ * Associate artifacts to a given group
+ *
+ * @param groupId
+ * @param artifactsId
+ * @param inTransaction
+ * @return
+ */
+ public Either<GroupInstance, StorageOperationStatus> associateArtifactsToGroupInstance(String groupId, List<String> artifactsId) {
+
+ Either<GroupInstance, StorageOperationStatus> result = null;
+
+ Either<GroupInstance, TitanOperationStatus> titanRes = this.associateArtifactsToGroupInstanceOnGraph(groupId, artifactsId);
+
+ if (titanRes.isRight()) {
+ StorageOperationStatus status = DaoStatusConverter.convertTitanStatusToStorageStatus(titanRes.right().value());
+ result = Either.right(status);
+ }
+
+ result = Either.left(titanRes.left().value());
+ return result;
+
+ }
+
+ public Either<GroupInstance, TitanOperationStatus> associateArtifactsToGroupInstanceOnGraph(String groupInstanceId, List<String> artifactsId) {
+
+ if (artifactsId == null || artifactsId.isEmpty()) {
+ return Either.right(TitanOperationStatus.OK);
+ }
+
+ for (String artifactId : artifactsId) {
+ Either<ArtifactData, TitanOperationStatus> findArtifactRes = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ArtifactRef), artifactId, ArtifactData.class);
+ if (findArtifactRes.isRight()) {
+ TitanOperationStatus status = findArtifactRes.right().value();
+ if (status == TitanOperationStatus.NOT_FOUND) {
+ status = TitanOperationStatus.INVALID_ID;
+ }
+ String description = "Failed to associate group " + groupInstanceId + " to artifact " + artifactId + " in graph. Status is " + status;
+ BeEcompErrorManager.getInstance().logInternalFlowError(ADDING_GROUP, description, ErrorSeverity.ERROR);
+ return Either.right(status);
+ }
+
+ Map<String, Object> props = new HashMap<String, Object>();
+ props.put(GraphPropertiesDictionary.NAME.getProperty(), findArtifactRes.left().value().getLabel());
+
+ GraphNode groupData = new UniqueIdData(NodeTypeEnum.GroupInstance, groupInstanceId);
+ Either<GraphRelation, TitanOperationStatus> addArtifactsRefResult = titanGenericDao.createRelation(groupData, findArtifactRes.left().value(), GraphEdgeLabels.GROUP_ARTIFACT_REF, props);
+
+ if (addArtifactsRefResult.isRight()) {
+ TitanOperationStatus status = addArtifactsRefResult.right().value();
+ String description = "Failed to associate group " + groupData.getUniqueId() + " to artifact " + artifactId + " in graph. Status is " + status;
+ BeEcompErrorManager.getInstance().logInternalFlowError(ADDING_GROUP, description, ErrorSeverity.ERROR);
+ return Either.right(status);
+ }
+ }
+
+ Either<GroupInstance, TitanOperationStatus> groupFromGraph = this.getGroupInstanceFromGraph(groupInstanceId, true, false);
+
+ return groupFromGraph;
+ }
+
+ public Either<GroupInstance, TitanOperationStatus> getGroupInstanceFromGraph(String uniqueId, boolean skipProperties, boolean skipArtifacts) {
+
+ Either<GroupInstance, TitanOperationStatus> result = null;
+
+ Either<GroupInstanceData, TitanOperationStatus> groupInstRes = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.GroupInstance), uniqueId, GroupInstanceData.class);
+ if (groupInstRes.isRight()) {
+ TitanOperationStatus status = groupInstRes.right().value();
+ log.debug("Failed to retrieve group {} from graph. Status is {}", uniqueId, status);
+ BeEcompErrorManager.getInstance().logBeFailedRetrieveNodeError("Fetch Group", uniqueId, String.valueOf(status));
+ result = Either.right(status);
+ return result;
+ }
+
+ GroupInstanceData groupInstData = groupInstRes.left().value();
+
+ GroupInstance groupInstance = new GroupInstance(groupInstData.getGroupDataDefinition());
+ String instOriginGroupId = groupInstance.getGroupUid();
+ Either<GroupDefinition, TitanOperationStatus> groupRes = groupOperation.getGroupFromGraph(instOriginGroupId, false, true, false);
+
+ if (groupRes.isRight()) {
+ TitanOperationStatus status = groupRes.right().value();
+ result = Either.right(status);
+
+ }
+ GroupDefinition groupDefinition = groupRes.left().value();
+ Either<Map<String, PropertyValueData>, TitanOperationStatus> groupInstancePropertyValuesRes = getAllGroupInstancePropertyValuesData(groupInstData);
+ if(groupInstancePropertyValuesRes.isRight()){
+ result = Either.right(groupInstancePropertyValuesRes.right().value());
+ }
+ buildGroupInstanceFromGroup(groupInstance, groupDefinition, groupInstancePropertyValuesRes.left().value());
+
+ /*
+ * if (false == skipProperties) { Either<List<GroupProperty>, TitanOperationStatus> propertiesRes = getGroupProperties(uniqueId); if (propertiesRes.isRight()) { TitanOperationStatus status = propertiesRes.right().value(); if (status !=
+ * TitanOperationStatus.OK) { result = Either.right(status); return result; } } else { List<GroupProperty> properties = propertiesRes.left().value(); groupDefinition.setProperties(properties); } }
+ */
+
+ if (false == skipArtifacts) {
+ Either<List<ImmutablePair<String, String>>, TitanOperationStatus> artifactsRes = getGroupArtifactsPairs(uniqueId);
+ if (artifactsRes.isRight()) {
+ TitanOperationStatus status = artifactsRes.right().value();
+ if (status != TitanOperationStatus.OK) {
+ result = Either.right(status);
+ return result;
+ }
+ } else {
+ List<String> artifactsUid = new ArrayList<>();
+ List<String> artifactsUUID = new ArrayList<>();
+
+ List<ImmutablePair<String, String>> list = artifactsRes.left().value();
+ if (list != null) {
+ for (ImmutablePair<String, String> pair : list) {
+ String uid = pair.left;
+ String UUID = pair.right;
+ artifactsUid.add(uid);
+ artifactsUUID.add(UUID);
+ }
+ groupInstance.setGroupInstanceArtifacts(artifactsUid);
+ groupInstance.setGroupInstanceArtifactsUuid(artifactsUUID);
+ }
+ }
+ }
+ result = Either.left(groupInstance);
+
+ return result;
+
+ }
+
+ private void buildGroupInstanceFromGroup(GroupInstance groupInstance, GroupDefinition groupDefinition, Map<String, PropertyValueData> groupInstancePropertyValues) {
+
+ groupInstance.setGroupName(groupDefinition.getName());
+ groupInstance.setInvariantUUID(groupDefinition.getInvariantUUID());
+ groupInstance.setDescription(groupDefinition.getDescription());
+ groupInstance.setVersion(groupDefinition.getVersion());
+ groupInstance.setArtifacts(groupDefinition.getArtifacts());
+ groupInstance.setArtifactsUuid(groupDefinition.getArtifactsUuid());
+ groupInstance.setType(groupDefinition.getType());
+ groupInstance.setGroupUUID(groupDefinition.getGroupUUID());
+
+ List<GroupInstanceProperty> groupInstanceProperties = groupDefinition.convertToGroupProperties()
+ //converts List of GroupProperties to List of GroupInstanceProperties and updates it with group instance property data
+ .stream().map(p->getUpdatedConvertedProperty(p, groupInstancePropertyValues)).collect(Collectors.toList());
+ groupInstance.convertFromGroupInstancesProperties(groupInstanceProperties);
+}
+
+ private GroupInstanceProperty getUpdatedConvertedProperty(GroupProperty groupProperty, Map<String, PropertyValueData> groupInstancePropertyValues){
+
+ GroupInstanceProperty updatedProperty = new GroupInstanceProperty(groupProperty, groupProperty.getValue());
+ if(!MapUtils.isEmpty(groupInstancePropertyValues) && groupInstancePropertyValues.containsKey(groupProperty.getName())){
+ PropertyValueData groupInstancePropertyValue = groupInstancePropertyValues.get(groupProperty.getName());
+ updatedProperty.setValue(groupInstancePropertyValue.getValue());
+ updatedProperty.setValueUniqueUid(groupInstancePropertyValue.getUniqueId());
+ }
+ return updatedProperty;
+ }
+
+ private Either<List<ImmutablePair<String, String>>, TitanOperationStatus> getGroupArtifactsPairs(String groupUniqueId) {
+
+ Either<List<ImmutablePair<String, String>>, TitanOperationStatus> result = null;
+
+ Either<List<ImmutablePair<ArtifactData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.GroupInstance), groupUniqueId, GraphEdgeLabels.GROUP_ARTIFACT_REF,
+ NodeTypeEnum.ArtifactRef, ArtifactData.class);
+ if (childrenNodes.isRight()) {
+ TitanOperationStatus status = childrenNodes.right().value();
+ if (status == TitanOperationStatus.NOT_FOUND) {
+ status = TitanOperationStatus.OK;
+ }
+ result = Either.right(status);
+
+ } else {
+
+ List<ImmutablePair<String, String>> artifactsList = new ArrayList<>();
+ List<ImmutablePair<ArtifactData, GraphEdge>> list = childrenNodes.left().value();
+ if (list != null) {
+ for (ImmutablePair<ArtifactData, GraphEdge> pair : list) {
+ ArtifactData artifactData = pair.getKey();
+ String uniqueId = artifactData.getArtifactDataDefinition().getUniqueId();
+ String UUID = artifactData.getArtifactDataDefinition().getArtifactUUID();
+ ImmutablePair<String, String> artifact = new ImmutablePair<String, String>(uniqueId, UUID);
+ artifactsList.add(artifact);
+ }
+ }
+
+ log.debug("The artifacts list related to group {} is {}",groupUniqueId,artifactsList);
+ result = Either.left(artifactsList);
+ }
+
+ return result;
+
+ }
+
+ @Override
+ public StorageOperationStatus dissociateAndAssociateGroupsInstanceFromArtifact(String componentId, NodeTypeEnum componentTypeEnum, String oldArtifactId, ArtifactData newArtifact) {
+
+ StorageOperationStatus result = null;
+
+ return this.dissociateAndAssociateGroupsInstanceFromArtifactOnGraph(componentId, componentTypeEnum, oldArtifactId, newArtifact);
+
+ }
+
+ @Override
+ public StorageOperationStatus dissociateAndAssociateGroupsInstanceFromArtifactOnGraph(String componentId, NodeTypeEnum componentTypeEnum, String oldArtifactId, ArtifactData newArtifact) {
+
+ Either<List<GroupInstance>, StorageOperationStatus> allGroupsFromGraph = getAllGroupInstances(componentId, componentTypeEnum);
+ if (allGroupsFromGraph.isRight()) {
+ StorageOperationStatus status = allGroupsFromGraph.right().value();
+ return status;
+ }
+
+ List<GroupInstance> allGroups = allGroupsFromGraph.left().value();
+ if (allGroups == null || allGroups.isEmpty()) {
+ return StorageOperationStatus.OK;
+ }
+
+ // Find all groups which contains this artifact id
+ List<GroupInstance> associatedGroups = allGroups.stream().filter(p -> p.getGroupInstanceArtifacts() != null && p.getGroupInstanceArtifacts().contains(oldArtifactId)).collect(Collectors.toList());
+
+ if (associatedGroups != null && false == associatedGroups.isEmpty()) {
+
+ log.debug("The groups {} contains the artifact {}",associatedGroups.stream().map(p -> p.getName()).collect(Collectors.toList()),oldArtifactId);
+
+ UniqueIdData oldArtifactData = new UniqueIdData(NodeTypeEnum.ArtifactRef, oldArtifactId);
+ UniqueIdData newArtifactData = new UniqueIdData(NodeTypeEnum.ArtifactRef, newArtifact.getArtifactDataDefinition().getUniqueId());
+ Map<String, Object> props = new HashMap<String, Object>();
+ props.put(GraphPropertiesDictionary.NAME.getProperty(), newArtifactData.getLabel());
+
+ for (GroupInstance groupDefinition : associatedGroups) {
+ UniqueIdData groupData = new UniqueIdData(NodeTypeEnum.GroupInstance, groupDefinition.getUniqueId());
+
+ Either<GraphRelation, TitanOperationStatus> deleteRelation = titanGenericDao.deleteRelation(groupData, oldArtifactData, GraphEdgeLabels.GROUP_ARTIFACT_REF);
+ log.trace("After dissociate group {} from artifact {}", groupDefinition.getName(), oldArtifactId);
+ if (deleteRelation.isRight()) {
+ TitanOperationStatus status = deleteRelation.right().value();
+ if (status == TitanOperationStatus.NOT_FOUND) {
+ status = TitanOperationStatus.INVALID_ID;
+ }
+ return DaoStatusConverter.convertTitanStatusToStorageStatus(status);
+ }
+
+ Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(groupData, newArtifactData, GraphEdgeLabels.GROUP_ARTIFACT_REF, props);
+ log.trace("After associate group {} to artifact {}", groupDefinition.getName(), newArtifact.getUniqueIdKey());
+ if (createRelation.isRight()) {
+ TitanOperationStatus status = createRelation.right().value();
+ if (status == TitanOperationStatus.NOT_FOUND) {
+ status = TitanOperationStatus.INVALID_ID;
+ }
+ return DaoStatusConverter.convertTitanStatusToStorageStatus(status);
+ }
+ }
+
+ }
+ return StorageOperationStatus.OK;
+ }
+
+ @Override
+ public Either<GroupInstance, StorageOperationStatus> updateGroupInstancePropertyValues(GroupInstance oldGroupInstance, List<GroupInstanceProperty> newProperties, Boolean inTransaction) {
+
+ Either<GroupInstance, StorageOperationStatus> updateRes = Either.left(oldGroupInstance);
+ try{
+ if(!CollectionUtils.isEmpty(newProperties)){
+ updateRes = updateGroupInstancePropertyValuesOnGraph(oldGroupInstance, newProperties);
+ }
+ }catch(Exception e){
+ log.debug("The Exception occured during update of group instance {} property values. The message is {}. ", oldGroupInstance.getName(), e.getMessage(), e);
+ updateRes = Either.right(StorageOperationStatus.GENERAL_ERROR);
+ }finally {
+ handleTransactionCommitRollback(inTransaction, updateRes);
+ }
+ return updateRes;
+ }
+
+ private Either<GroupInstance, StorageOperationStatus> updateGroupInstancePropertyValuesOnGraph( GroupInstance oldGroupInstance, List<GroupInstanceProperty> newProperties ) {
+ Either<GroupInstance, StorageOperationStatus> updateRes = null;
+ Either<Integer, StorageOperationStatus> nodeUpdateRes = null;
+ Vertex groupInstanceVertex = null;
+ Either<Vertex, StorageOperationStatus> groupInstanceVertexRes;
+ Map<String, Vertex> existingPropertyValueVertices = new HashMap<>();
+ Map<String, Vertex> existingPropertyVertices = new HashMap<>();
+ groupInstanceVertexRes = getVertexFromGraph(GraphPropertiesDictionary.UNIQUE_ID.getProperty(),oldGroupInstance.getUniqueId());
+ try{
+ if (groupInstanceVertexRes.isRight()) {
+ log.debug("Failed to fetch group instance vertex {} from graph. ", oldGroupInstance.getName());
+ updateRes = Either.right(groupInstanceVertexRes.right().value());
+ } else {
+ groupInstanceVertex = groupInstanceVertexRes.left().value();
+ findExistingPropertyValueVertices(groupInstanceVertex, existingPropertyValueVertices);
+ nodeUpdateRes = handlePropertyValues(oldGroupInstance, oldGroupInstance.getPropertyValueCounter(), newProperties, groupInstanceVertex, existingPropertyValueVertices, existingPropertyVertices);
+ if(nodeUpdateRes.isRight()){
+ log.debug("Failed to handle property values of group instance {}. ", oldGroupInstance.getName());
+ updateRes = Either.right(nodeUpdateRes.right().value());
+ } else {
+ updateRes = updateGroupInstanceVertexAndGetUpdatedGroupInstance(groupInstanceVertex, nodeUpdateRes.left().value(), oldGroupInstance);
+ }
+ }
+ } catch(Exception e){
+ log.debug("The Exception occured during update group instance {} property values on graph. The message is {}. ", oldGroupInstance.getName(), e.getMessage(), e);
+ updateRes = Either.right(StorageOperationStatus.GENERAL_ERROR);
+ }
+ return updateRes;
+ }
+
+ private Either<Integer, StorageOperationStatus> handlePropertyValues(GroupInstance oldGroupInstance, Integer propertyValueCounter, List<GroupInstanceProperty> newProperties, Vertex groupInstanceVertex,
+ Map<String, Vertex> existingPropertyValueVertices, Map<String, Vertex> existingPropertyVertices) {
+
+ Either<Integer, StorageOperationStatus> nodeHandleRes = null;
+ int currCounter = propertyValueCounter;
+ for(GroupInstanceProperty currProperty : newProperties){
+ nodeHandleRes = handlePropertyValueNode(oldGroupInstance, currCounter, currProperty, groupInstanceVertex, existingPropertyValueVertices, existingPropertyVertices);
+ if(nodeHandleRes.isRight()){
+ break;
+ }
+ currCounter = nodeHandleRes.left().value();
+ }
+ return nodeHandleRes;
+ }
+
+ private Either<GroupInstance, StorageOperationStatus> updateGroupInstanceVertexAndGetUpdatedGroupInstance( Vertex groupInstanceVertex, Integer propertyValueCounter, GroupInstance oldGroupInstance) {
+
+ TitanOperationStatus status;
+ Either<GroupInstance, StorageOperationStatus> actionResult;
+ status = updateGroupInstanceVertex(groupInstanceVertex, propertyValueCounter);
+ if(status != TitanOperationStatus.OK){
+ log.debug("Failed to update group instance {}. ", oldGroupInstance.getName());
+ actionResult = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
+ }else{
+ Either<GroupInstance, TitanOperationStatus> updatedGroupInstanceRes = getGroupInstanceFromGraph(oldGroupInstance.getUniqueId(), false, false);
+ if(updatedGroupInstanceRes.isRight()){
+ status = updatedGroupInstanceRes.right().value();
+ log.debug("Failed to get updated group instance {}. Status is {}. ", oldGroupInstance.getName(), status);
+ actionResult = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
+ }else{
+ actionResult = Either.left(updatedGroupInstanceRes.left().value());
+ }
+ }
+ return actionResult;
+ }
+
+ private Either<Integer, StorageOperationStatus> handlePropertyValueNode(GroupInstance oldGroupInstance, Integer propertyValueCounter, GroupInstanceProperty currProperty, Vertex groupInstanceVertex, Map<String, Vertex> existingPropertyValueVertices, Map<String, Vertex> existingPropertyVertices) {
+
+ String groupInstanceName = oldGroupInstance.getName();
+ TitanOperationStatus updateStatus;
+ TitanOperationStatus addStatus;
+ Vertex propertyValueVertex;
+ String propertyValueId;
+ propertyValueId = currProperty.getValueUniqueUid();
+ Either<Integer, StorageOperationStatus> actionResult = null;
+ if(existingPropertyValueVertices.containsKey(propertyValueId)){
+ updateStatus = updatePropertyValueVertex(existingPropertyValueVertices.get(propertyValueId), currProperty);
+ if(updateStatus != TitanOperationStatus.OK){
+ log.debug("Failed to update property value {} of group instance {}. ", currProperty.getName(), groupInstanceName);
+ actionResult = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(updateStatus));
+ }
+ }
+ else{
+ if(MapUtils.isEmpty(existingPropertyVertices)){
+ findExistingPropertyVertices(existingPropertyVertices, groupInstanceVertex);
+ }
+ propertyValueVertex = existingPropertyVertices.get(currProperty.getUniqueId());
+ addStatus = addPropertyValueNodeToGroupInstance(currProperty, groupInstanceVertex, propertyValueVertex, oldGroupInstance.getUniqueId(), ++propertyValueCounter);
+ if(addStatus != TitanOperationStatus.OK){
+ log.debug("Failed to add property value {} to group instance {}. ", currProperty.getName(), groupInstanceName);
+ actionResult = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(addStatus));
+ }
+ }
+ if(actionResult == null){
+ actionResult = Either.left(propertyValueCounter);
+ }
+ return actionResult;
+ }
+
+ @SuppressWarnings("unchecked")
+ private Either<Vertex, StorageOperationStatus> getVertexFromGraph(String uniqueKeyName, String uniqueId) {
+
+ Either<Vertex, StorageOperationStatus> actionResult = null;
+ try{
+ Either<TitanGraph, TitanOperationStatus> graph = titanGenericDao.getGraph();
+ Iterable<TitanVertex> vertices = null;
+ if (graph.isRight()) {
+ log.debug("Failed to get graph. Status is {}", graph.right().value());
+ actionResult = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(graph.right().value()));
+ }
+ if(actionResult == null){
+ TitanGraph tGraph = graph.left().value();
+ vertices = tGraph.query().has(uniqueKeyName, uniqueId).vertices();
+ if (vertices == null || vertices.iterator() == null || !vertices.iterator().hasNext()) {
+ log.debug("Failed to get nodes from graph for type {} for id = {}", NodeTypeEnum.GroupInstance, uniqueId);
+ actionResult = Either.right(StorageOperationStatus.NOT_FOUND);
+ }
+ }
+ if(actionResult == null && vertices != null){
+ actionResult = Either.left(vertices.iterator().next());
+ }
+ } catch(Exception e){
+ log.debug("The Exception occured during get vertex {} from graph. The message is {}. ", uniqueId, e.getMessage(), e);
+ }
+ return actionResult;
+ }
+
+ private void findExistingPropertyValueVertices(Vertex groupInstanceVertex, Map<String, Vertex> existingPropertyValueVertices) {
+ Iterator<Edge> propertyValueEdges = groupInstanceVertex.edges(Direction.OUT, GraphEdgeLabels.PROPERTY_VALUE.getProperty());
+ Vertex propertyValueVertex;
+ while(propertyValueEdges.hasNext()){
+ propertyValueVertex = propertyValueEdges.next().inVertex();
+ existingPropertyValueVertices.put((String) propertyValueVertex.property(GraphPropertiesDictionary.UNIQUE_ID.getProperty()).value(), propertyValueVertex);
+ }
+ }
+
+ private void findExistingPropertyVertices(Map<String, Vertex> existingPropertyVertices, Vertex groupInstanceVertex) {
+ Vertex groupVertex = groupInstanceVertex.edges(Direction.OUT, GraphEdgeLabels.INSTANCE_OF.getProperty()).next().inVertex();
+ Vertex groupTypeVertex = groupVertex.edges(Direction.OUT, GraphEdgeLabels.TYPE_OF.getProperty()).next().inVertex();
+ Iterator<Edge> groupTypePropertiesIterator = groupTypeVertex.edges(Direction.OUT, GraphEdgeLabels.PROPERTY.getProperty());
+ while(groupTypePropertiesIterator.hasNext()){
+ Vertex propertyValueVertex = groupTypePropertiesIterator.next().inVertex();
+ existingPropertyVertices.put((String) propertyValueVertex.property(GraphPropertiesDictionary.UNIQUE_ID.getProperty()).value(), propertyValueVertex);
+ }
+ }
+
+ private TitanOperationStatus addPropertyValueNodeToGroupInstance(GroupInstanceProperty currProperty, Vertex groupInstanceVertex, Vertex propertyVertex, String groupInstanceId, int index) {
+ TitanOperationStatus status = null;
+ TitanVertex propertyValueVertex = null;
+ PropertyValueData newPropertyValue = new PropertyValueData();
+ Long creationTime = System.currentTimeMillis();
+ newPropertyValue.setModificationTime(creationTime);
+ newPropertyValue.setCreationTime(creationTime);
+ newPropertyValue.setUniqueId(UniqueIdBuilder.buildGroupPropertyValueUid(groupInstanceId, index));
+ newPropertyValue.setValue(currProperty.getValue());
+ newPropertyValue.setType(currProperty.getType());
+ Either<TitanVertex, TitanOperationStatus> propertyValueNodeRes = titanGenericDao.createNode(newPropertyValue);
+ if(propertyValueNodeRes.isRight()){
+ status = propertyValueNodeRes.right().value();
+ }
+ if(status == null){
+ propertyValueVertex = propertyValueNodeRes.left().value();
+ Map<String, Object> props = new HashMap<>();
+ props.put(GraphPropertiesDictionary.PROPERTY_NAME.getProperty(), currProperty.getName());
+ status = titanGenericDao.createEdge(groupInstanceVertex, propertyValueVertex, GraphEdgeLabels.PROPERTY_VALUE, props);
+ }
+ if(status == TitanOperationStatus.OK){
+ status = titanGenericDao.createEdge(propertyValueVertex, propertyVertex, GraphEdgeLabels.PROPERTY_IMPL, null);
+ }
+ return status;
+ }
+
+ private TitanOperationStatus updatePropertyValueVertex(Vertex propertyValueVertex, GroupInstanceProperty property) {
+ PropertyValueData propertyValue = new PropertyValueData();
+ propertyValue.setUniqueId(property.getValue());
+ propertyValue.setModificationTime(System.currentTimeMillis());
+ propertyValue.setType(property.getType());
+ propertyValue.setValue(property.getValue());
+ return titanGenericDao.updateVertex(propertyValue, propertyValueVertex);
+ }
+
+ private TitanOperationStatus updateGroupInstanceVertex(Vertex groupInstanceVertex, int propertyValueCounter) {
+ GroupInstanceData groupInstanceData = new GroupInstanceData();
+ groupInstanceData.getGroupDataDefinition().setModificationTime(System.currentTimeMillis());
+ groupInstanceData.getGroupDataDefinition().setCustomizationUUID(UUID.randomUUID().toString());
+ groupInstanceData.getGroupDataDefinition().setPropertyValueCounter(propertyValueCounter);
+ return titanGenericDao.updateVertex(groupInstanceData, groupInstanceVertex);
+ }
+
+ private Either<Map<String, PropertyValueData>, TitanOperationStatus> getAllGroupInstancePropertyValuesData(GroupInstanceData groupInstData) {
+
+ Either<Map<String, PropertyValueData>, TitanOperationStatus> result = null;
+ try{
+ Either<List<ImmutablePair<PropertyValueData, GraphEdge>>, TitanOperationStatus> getPropertyValueChildrenRes =
+ titanGenericDao.getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), groupInstData.getUniqueId(), GraphEdgeLabels.PROPERTY_VALUE,
+ NodeTypeEnum.PropertyValue, PropertyValueData.class, true);
+ if(getPropertyValueChildrenRes.isRight()){
+ TitanOperationStatus status = getPropertyValueChildrenRes.right().value();
+ log.debug("Failed to fetch property value nodes for group instance {}. Status is {}. ", groupInstData.getName(), status);
+ if(status == TitanOperationStatus.NOT_FOUND){
+ result = Either.left(null);
+ }else{
+ result = Either.right(status);
+ }
+ }else{
+ result = Either.left(getPropertyValueChildrenRes.left().value().stream()
+ .collect(Collectors.toMap(pair->(String)(pair.getRight().getProperties().get(GraphPropertiesDictionary.PROPERTY_NAME.getProperty())), pair->pair.getLeft())));
+ }
+ } catch(Exception e){
+ log.debug("The Exception occured during fetch group instance () property values. The message is {}. ", groupInstData.getName(), e.getMessage(), e);
+ if(result == null){
+ result = Either.right(TitanOperationStatus.GENERAL_ERROR);
+ }
+ }
+ return result;
+ }
+ @Override
+ public Either<GroupInstance, StorageOperationStatus> updateGroupInstancePropertyValues(GroupInstance groupInstance, List<GroupInstanceProperty> newProperties) {
+ return updateGroupInstancePropertyValues(groupInstance, newProperties, false);
+ }
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/GroupOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/GroupOperation.java
index 9312be45c1..52bcae36db 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/GroupOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/GroupOperation.java
@@ -25,8 +25,11 @@ 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 org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.math.NumberUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.openecomp.sdc.be.config.BeEcompErrorManager;
import org.openecomp.sdc.be.config.BeEcompErrorManager.ErrorSeverity;
@@ -44,6 +47,7 @@ import org.openecomp.sdc.be.model.GroupDefinition;
import org.openecomp.sdc.be.model.GroupProperty;
import org.openecomp.sdc.be.model.GroupTypeDefinition;
import org.openecomp.sdc.be.model.PropertyDefinition;
+import org.openecomp.sdc.be.model.Resource;
import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache;
import org.openecomp.sdc.be.model.operations.api.IGroupOperation;
import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
@@ -57,6 +61,7 @@ import org.openecomp.sdc.be.resources.data.PropertyValueData;
import org.openecomp.sdc.be.resources.data.ResourceMetadataData;
import org.openecomp.sdc.be.resources.data.ServiceMetadataData;
import org.openecomp.sdc.be.resources.data.UniqueIdData;
+import org.openecomp.sdc.common.datastructure.Wrapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@@ -82,15 +87,16 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
@javax.annotation.Resource
private ApplicationDataTypeCache dataTypeCache;
+ @javax.annotation.Resource
+ protected ResourceOperation resourceOperation;
+
@Override
- public Either<GroupData, TitanOperationStatus> addGroupToGraph(NodeTypeEnum nodeTypeEnum, String componentId,
- GroupDefinition groupDefinition) {
+ public Either<GroupData, TitanOperationStatus> addGroupToGraph(NodeTypeEnum nodeTypeEnum, String componentId, GroupDefinition groupDefinition) {
String groupTypeUid = groupDefinition.getTypeUid();
if (groupTypeUid == null) {
- BeEcompErrorManager.getInstance().logInternalFlowError(ADDING_GROUP, "Group type id is empty",
- ErrorSeverity.ERROR);
+ BeEcompErrorManager.getInstance().logInternalFlowError(ADDING_GROUP, "Group type id is empty", ErrorSeverity.ERROR);
return Either.right(TitanOperationStatus.INVALID_ID);
}
@@ -112,41 +118,35 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
TitanOperationStatus status = null;
// Adding group data node to graph
log.debug("Before adding group to graph {}", groupData.toString());
- Either<GroupData, TitanOperationStatus> createNodeResult = titanGenericDao.createNode(groupData,
- GroupData.class);
+ Either<GroupData, TitanOperationStatus> createNodeResult = titanGenericDao.createNode(groupData, GroupData.class);
log.debug("After adding group to graph {}", groupData.toString());
if (createNodeResult.isRight()) {
status = createNodeResult.right().value();
- log.error("Failed to add group {} to graph. Status is {}", groupDefinition.getName(), status);
+ log.error("Failed to add group {} to graph. status is {}", groupDefinition.getName(), status);
return Either.right(status);
}
// Associate group to group type
log.debug("Going to associate group {} to its groupType {}", groupDefinition.getName(), groupDefinition.getType());
- Either<GraphRelation, TitanOperationStatus> associateGroupTypeRes = associateGroupToGroupType(groupData,
- groupTypeUid);
- log.debug("After associating group {} to its groupType {}. Status is {}", groupDefinition.getName(), groupDefinition.getType(), associateGroupTypeRes);
+ Either<GraphRelation, TitanOperationStatus> associateGroupTypeRes = associateGroupToGroupType(groupData, groupTypeUid);
+ log.debug("After associating group {} to its groupType {}. status is {}", groupDefinition.getName(), groupDefinition.getType(), associateGroupTypeRes);
if (associateGroupTypeRes.isRight()) {
status = associateGroupTypeRes.right().value();
- String description = "Failed to associate group " + groupDefinition.getName() + " to its groupType "
- + groupDefinition.getType() + " in graph.";
+ String description = "Failed to associate group " + groupDefinition.getName() + " to its groupType " + groupDefinition.getType() + " in graph.";
BeEcompErrorManager.getInstance().logInternalFlowError(ADDING_GROUP, description, ErrorSeverity.ERROR);
return Either.right(status);
}
// Associate group to component RESOURCE/SERVICE/PRODUCT
- Either<GraphRelation, TitanOperationStatus> associateComponentRes = associateGroupToComponent(groupData,
- nodeTypeEnum, componentId);
+ Either<GraphRelation, TitanOperationStatus> associateComponentRes = associateGroupToComponent(groupData, nodeTypeEnum, componentId);
if (associateComponentRes.isRight()) {
status = associateComponentRes.right().value();
- String description = "Failed to associate group " + groupDefinition.getName() + " to "
- + nodeTypeEnum.getName() + " " + componentId + ". status is " + status;
+ String description = "Failed to associate group " + groupDefinition.getName() + " to " + nodeTypeEnum.getName() + " " + componentId + ". status is " + status;
BeEcompErrorManager.getInstance().logInternalFlowError(ADDING_GROUP, description, ErrorSeverity.ERROR);
return Either.right(status);
}
- Either<GroupTypeDefinition, TitanOperationStatus> groupTypeRes = groupTypeOperation
- .getGroupTypeByUid(groupDefinition.getTypeUid());
+ Either<GroupTypeDefinition, TitanOperationStatus> groupTypeRes = groupTypeOperation.getGroupTypeByUid(groupDefinition.getTypeUid());
if (groupTypeRes.isRight()) {
TitanOperationStatus operationStatus = groupTypeRes.right().value();
log.debug("Failed to find group type {}", groupDefinition.getTypeUid());
@@ -164,18 +164,16 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
// points to the parent unique id
// Adding properties to group
- List<GroupProperty> properties = groupDefinition.getProperties();
+ List<GroupProperty> properties = groupDefinition.convertToGroupProperties();
if (properties != null && false == properties.isEmpty()) {
if (groupTypeProperties == null || true == groupTypeProperties.isEmpty()) {
- BeEcompErrorManager.getInstance().logInvalidInputError(ADDING_GROUP,
- "group type does not have properties", ErrorSeverity.INFO);
+ BeEcompErrorManager.getInstance().logInvalidInputError(ADDING_GROUP, "group type does not have properties", ErrorSeverity.INFO);
return Either.right(TitanOperationStatus.MATCH_NOT_FOUND);
}
- Map<String, PropertyDefinition> groupTypePropertiesMap = groupTypeProperties.stream()
- .collect(Collectors.toMap(p -> p.getName(), p -> p));
+ Map<String, PropertyDefinition> groupTypePropertiesMap = groupTypeProperties.stream().collect(Collectors.toMap(p -> p.getName(), p -> p));
Either<PropertyValueData, TitanOperationStatus> addPropertyResult = null;
int i = 1;
@@ -183,10 +181,8 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
addPropertyResult = addPropertyToGroup(groupData, prop, groupTypePropertiesMap.get(prop.getName()), i);
if (addPropertyResult.isRight()) {
status = addPropertyResult.right().value();
- String description = "Failed to associate group " + groupData.getUniqueId() + " to property "
- + prop.getName() + " in graph. Status is " + status;
- BeEcompErrorManager.getInstance().logInternalFlowError(ADDING_GROUP, description,
- ErrorSeverity.ERROR);
+ String description = "Failed to associate group " + groupData.getUniqueId() + " to property " + prop.getName() + " in graph. Status is " + status;
+ BeEcompErrorManager.getInstance().logInternalFlowError(ADDING_GROUP, description, ErrorSeverity.ERROR);
return Either.right(status);
}
i++;
@@ -196,41 +192,22 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
// Associate artifacts to group
List<String> artifacts = groupDefinition.getArtifacts();
- Either<GroupDefinition, TitanOperationStatus> associateArtifactsToGroupOnGraph = associateArtifactsToGroupOnGraph(
- groupData.getGroupDataDefinition().getUniqueId(), artifacts);
- if (associateArtifactsToGroupOnGraph.isRight()
- && associateArtifactsToGroupOnGraph.right().value() != TitanOperationStatus.OK) {
+ Either<GroupDefinition, TitanOperationStatus> associateArtifactsToGroupOnGraph = associateArtifactsToGroupOnGraph(groupData.getGroupDataDefinition().getUniqueId(), artifacts);
+ if (associateArtifactsToGroupOnGraph.isRight() && associateArtifactsToGroupOnGraph.right().value() != TitanOperationStatus.OK) {
return Either.right(status);
}
/*
- * Either<GraphRelation, TitanOperationStatus> addArtifactsRefResult =
- * null; if (artifacts != null) { for (String artifactId : artifacts) {
- * Either<ArtifactData, TitanOperationStatus> findArtifactRes =
- * titanGenericDao .getNode(UniqueIdBuilder
- * .getKeyByNodeType(NodeTypeEnum.ArtifactRef), artifactId,
- * ArtifactData.class); if (findArtifactRes.isRight()) { status =
- * findArtifactRes.right().value(); if (status ==
- * TitanOperationStatus.NOT_FOUND) { status =
- * TitanOperationStatus.INVALID_ID; } String description =
- * "Failed to associate group " + groupData.getUniqueId() +
- * " to artifact " + artifactId + " in graph. Status is " + status;
- * BeEcompErrorManager.getInstance().logInternalFlowError( ADDING_GROUP,
- * description, ErrorSeverity.ERROR); return Either.right(status); }
+ * Either<GraphRelation, TitanOperationStatus> addArtifactsRefResult = null; if (artifacts != null) { for (String artifactId : artifacts) { Either<ArtifactData, TitanOperationStatus> findArtifactRes = titanGenericDao .getNode(UniqueIdBuilder
+ * .getKeyByNodeType(NodeTypeEnum.ArtifactRef), artifactId, ArtifactData.class); if (findArtifactRes.isRight()) { status = findArtifactRes.right().value(); if (status == TitanOperationStatus.NOT_FOUND) { status =
+ * TitanOperationStatus.INVALID_ID; } String description = "Failed to associate group " + groupData.getUniqueId() + " to artifact " + artifactId + " in graph. Status is " + status; BeEcompErrorManager.getInstance().logInternalFlowError(
+ * ADDING_GROUP, description, ErrorSeverity.ERROR); return Either.right(status); }
*
- * Map<String, Object> props = new HashMap<String, Object>();
- * props.put(GraphPropertiesDictionary.NAME.getProperty(),
- * findArtifactRes.left().value().getLabel());
+ * Map<String, Object> props = new HashMap<String, Object>(); props.put(GraphPropertiesDictionary.NAME.getProperty(), findArtifactRes.left().value().getLabel());
*
- * addArtifactsRefResult = titanGenericDao.createRelation( groupData,
- * findArtifactRes.left().value(), GraphEdgeLabels.GROUP_ARTIFACT_REF,
- * props);
+ * addArtifactsRefResult = titanGenericDao.createRelation( groupData, findArtifactRes.left().value(), GraphEdgeLabels.GROUP_ARTIFACT_REF, props);
*
- * if (addArtifactsRefResult.isRight()) { status =
- * addArtifactsRefResult.right().value(); String description =
- * "Failed to associate group " + groupData.getUniqueId() +
- * " to artifact " + artifactId + " in graph. Status is " + status;
- * BeEcompErrorManager.getInstance().logInternalFlowError( ADDING_GROUP,
- * description, ErrorSeverity.ERROR); return Either.right(status); } } }
+ * if (addArtifactsRefResult.isRight()) { status = addArtifactsRefResult.right().value(); String description = "Failed to associate group " + groupData.getUniqueId() + " to artifact " + artifactId + " in graph. Status is " + status;
+ * BeEcompErrorManager.getInstance().logInternalFlowError( ADDING_GROUP, description, ErrorSeverity.ERROR); return Either.right(status); } } }
*/
// Associate group to members
@@ -243,31 +220,24 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
if (member.getValue() == null || member.getValue().isEmpty()) {
continue;
}
- Either<ComponentInstanceData, TitanOperationStatus> findComponentInstanceRes = titanGenericDao.getNode(
- UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ResourceInstance), member.getValue(),
- ComponentInstanceData.class);
+ Either<ComponentInstanceData, TitanOperationStatus> findComponentInstanceRes = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ResourceInstance), member.getValue(), ComponentInstanceData.class);
if (findComponentInstanceRes.isRight()) {
status = findComponentInstanceRes.right().value();
if (status == TitanOperationStatus.NOT_FOUND) {
status = TitanOperationStatus.INVALID_ID;
}
- String description = "Failed to find to find member of group " + member.getValue()
- + " in graph. Status is " + status;
- BeEcompErrorManager.getInstance().logInternalFlowError(ADDING_GROUP, description,
- ErrorSeverity.ERROR);
+ String description = "Failed to find to find member of group " + member.getValue() + " in graph. Status is " + status;
+ BeEcompErrorManager.getInstance().logInternalFlowError(ADDING_GROUP, description, ErrorSeverity.ERROR);
return Either.right(status);
}
Map<String, Object> props = new HashMap<String, Object>();
props.put(GraphPropertiesDictionary.NAME.getProperty(), member.getKey());
- addMembersRefResult = titanGenericDao.createRelation(groupData, findComponentInstanceRes.left().value(),
- GraphEdgeLabels.GROUP_MEMBER, props);
+ addMembersRefResult = titanGenericDao.createRelation(groupData, findComponentInstanceRes.left().value(), GraphEdgeLabels.GROUP_MEMBER, props);
if (addMembersRefResult.isRight()) {
status = addMembersRefResult.right().value();
- String description = "Failed to associate group " + groupData.getUniqueId()
- + " to component instance " + member.getValue() + " in graph. Status is " + status;
- BeEcompErrorManager.getInstance().logInternalFlowError(ADDING_GROUP, description,
- ErrorSeverity.ERROR);
+ String description = "Failed to associate group " + groupData.getUniqueId() + " to component instance " + member.getValue() + " in graph. Status is " + status;
+ BeEcompErrorManager.getInstance().logInternalFlowError(ADDING_GROUP, description, ErrorSeverity.ERROR);
return Either.right(status);
}
}
@@ -275,8 +245,221 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
return Either.left(groupData);
}
+
+ private Either<PropertyDefinition, TitanOperationStatus> getPropertyDefFromGroupType(GroupProperty groupProperty) {
+ Either<PropertyDefinition, TitanOperationStatus> ret;
+ Either<GroupTypeDefinition, TitanOperationStatus> groupTypeRes = groupTypeOperation
+ .getGroupTypeByUid(groupProperty.getParentUniqueId());
+ if (groupTypeRes.isRight()) {
+ TitanOperationStatus operationStatus = groupTypeRes.right().value();
+ log.debug("Failed to find group type {}", groupProperty.getParentUniqueId());
+ if (operationStatus == TitanOperationStatus.NOT_FOUND) {
+ ret = Either.right(TitanOperationStatus.INVALID_ID);
+ } else {
+ ret = Either.right(operationStatus);
+ }
+ } else {
+ GroupTypeDefinition groupTypeDefinition = groupTypeRes.left().value();
+ List<PropertyDefinition> groupTypeProperties = groupTypeDefinition.getProperties();
+
+ Map<String, PropertyDefinition> groupTypePropertiesMap = groupTypeProperties.stream()
+ .collect(Collectors.toMap(p -> p.getName(), p -> p));
+ if (groupTypeProperties == null || true == groupTypeProperties.isEmpty()) {
+ BeEcompErrorManager.getInstance().logInvalidInputError(ADDING_GROUP,
+ "group type does not have properties", ErrorSeverity.INFO);
+ ret = Either.right(TitanOperationStatus.MATCH_NOT_FOUND);
+ } else {
+ PropertyDefinition propertyDefinition = groupTypePropertiesMap.get(groupProperty.getName());
+ ret = Either.left(propertyDefinition);
+ }
+ }
+ return ret;
+ }
+
+ /**
+ * Updates GroupProperty Value
+ * @param componentId TODO
+ * @param groupId TODO
+ * @param groupProperties
+ * @param inTransaction TODO
+ *
+ * @return
+ */
+ public Either<List<GroupProperty>, StorageOperationStatus> updateGroupProperties(String componentId,
+ String groupId, List<GroupProperty> groupProperties, boolean inTransaction) {
+
+ Wrapper<Long> lastUpdateTimeWrapper = new Wrapper<>();
+ TitanOperationStatus titanStatus = TitanOperationStatus.OK;
+ Either<List<GroupProperty>, StorageOperationStatus> result = null;
+ //Get Group Data
+ final GroupData groupData;
+ Either<GroupData, TitanOperationStatus> eitherGroupData = titanGenericDao
+ .getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Group), groupId, GroupData.class);
+ if( eitherGroupData.isRight() ){
+ log.debug("Error: Could not fetch group with groupId = {}", groupId);
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(eitherGroupData.right().value()));
+ }
+ else{
+ groupData = eitherGroupData.left().value();
+ }
+
+ try {
+ Optional<TitanOperationStatus> optionalError =
+ //Stream of group properties to be updated
+ groupProperties.stream().
+ //updating each property and mapping to the TitanOperationStatus
+ map(e -> updateGroupProperty(e, groupData, lastUpdateTimeWrapper)).
+ //filtering in errors if there are such
+ filter( e -> e != TitanOperationStatus.OK).
+ //collect
+ findFirst();
+ if( optionalError.isPresent() ){
+ titanStatus = optionalError.get();
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(titanStatus));
+ }
+ else{
+ result = updateLastModificationTimeOnVf(componentId, groupId, groupProperties, lastUpdateTimeWrapper);
+ }
+
+ }
+ finally {
+ handleTransactionCommitRollback(inTransaction, result);
+ }
+
+ return result;
+ }
+
+ private Either<List<GroupProperty>, StorageOperationStatus> updateLastModificationTimeOnVf(String componentId,
+ String groupId, List<GroupProperty> groupProperties, Wrapper<Long> lastUpdateTimeWrapper) {
+ Either<List<GroupProperty>, StorageOperationStatus> result;
+ Either<Resource, StorageOperationStatus> eitherResource = resourceOperation.getResource(componentId);
+ if( eitherResource.isRight() ){
+ result = Either.right(eitherResource.right().value());
+ }
+ else{
+ Either<ComponentMetadataData, StorageOperationStatus> eitherLastUpdateDateUpdatedOnResource = resourceOperation
+ .updateComponentLastUpdateDateOnGraph(eitherResource.left().value(), NodeTypeEnum.Resource,
+ lastUpdateTimeWrapper.getInnerElement(), true);
+ if (eitherLastUpdateDateUpdatedOnResource.isLeft()) {
+
+ groupProperties =
+ //Group Stream From VF
+ eitherResource.left().value().getGroups().stream().
+ //Filter in Only the relevant group
+ filter( e -> e.getUniqueId().equals(groupId)).
+ //Get it
+ findAny().get().
+ //Get Group Properties from it
+ convertToGroupProperties();
+
+ result = Either.left(groupProperties);
+ }
+ else{
+ result = Either.right(eitherLastUpdateDateUpdatedOnResource.right().value());
+ }
+ }
+ return result;
+ }
+
+
+ private TitanOperationStatus updateGroupProperty(GroupProperty groupProperty, GroupData groupData,
+ Wrapper<Long> lastUpdateTimeWrapper) {
+ TitanOperationStatus titanStatus = TitanOperationStatus.OK;
+ // PropertyValueData node does not exist
+ if (StringUtils.isEmpty(groupProperty.getValueUniqueUid())) {
+ // create new node
+ if (!StringUtils.isEmpty(groupProperty.getValue())) {
+ // Value does not exit and was not updated as well. no need
+ // to do anything
+ } else {
+ titanStatus = addGroupPropertyToGraph(groupProperty, groupData, lastUpdateTimeWrapper);
- private Either<PropertyValueData, TitanOperationStatus> addPropertyToGroup(GroupData groupData,
+ }
+ }
+
+ else {
+ titanStatus = updateGroupPropertyInGraph(groupProperty, lastUpdateTimeWrapper);
+ }
+ return titanStatus;
+ }
+
+ private TitanOperationStatus updateGroupPropertyInGraph(GroupProperty groupProperty,
+ Wrapper<Long> lastUpdateTimeWrapper) {
+ TitanOperationStatus titanStatus;
+ Either<PropertyValueData, TitanOperationStatus> eitherGroupPropertyValue = titanGenericDao.getNode(
+ UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.PropertyValue), groupProperty.getValueUniqueUid(),
+ PropertyValueData.class);
+ if (eitherGroupPropertyValue.isRight()) {
+
+ titanStatus = eitherGroupPropertyValue.right().value();
+
+ } else {
+ PropertyValueData groupPropertyValue = eitherGroupPropertyValue.left().value();
+ // Actual Update only if value changed
+ if (!StringUtils.equals(groupPropertyValue.getValue(), groupProperty.getValue())) {
+ long modificationTime = lastUpdateTimeWrapper.isEmpty() ? System.currentTimeMillis()
+ : lastUpdateTimeWrapper.getInnerElement();
+ groupPropertyValue.setValue(groupProperty.getValue());
+ groupPropertyValue.setModificationTime(modificationTime);
+ Either<PropertyValueData, TitanOperationStatus> eitherUpdateNode = titanGenericDao
+ .updateNode(groupPropertyValue, PropertyValueData.class);
+ if( eitherUpdateNode.isLeft() ){
+ titanStatus = TitanOperationStatus.OK;
+ lastUpdateTimeWrapper.setInnerElement(modificationTime);
+ }
+ else{
+ titanStatus = eitherUpdateNode.right().value();
+ }
+
+ } else {
+ titanStatus = TitanOperationStatus.OK;
+ }
+ }
+ return titanStatus;
+ }
+
+ private TitanOperationStatus addGroupPropertyToGraph(GroupProperty groupProperty, GroupData groupData,
+ Wrapper<Long> lastUpdateTimeWrapper) {
+ PropertyDefinition propertyDefinition = null;
+ TitanOperationStatus ret = TitanOperationStatus.OK;
+ if (ret == TitanOperationStatus.OK) {
+ Either<PropertyDefinition, TitanOperationStatus> eitherPropertyDefFromGroupType = getPropertyDefFromGroupType(
+ groupProperty);
+ if (eitherPropertyDefFromGroupType.isRight()) {
+ log.debug("Error: Could not fetch group property from group Type with groupTypeId = {}",
+ groupProperty.getParentUniqueId());
+ ret = eitherPropertyDefFromGroupType.right().value();
+ } else {
+ propertyDefinition = eitherPropertyDefFromGroupType.left().value();
+ }
+ }
+ if (ret == TitanOperationStatus.OK){
+ final int groupPropCounter = groupData.getGroupDataDefinition().getPropertyValueCounter() + NumberUtils.INTEGER_ONE;
+ Either<PropertyValueData, TitanOperationStatus> eitherAddPropertyToGroup = addPropertyToGroup(groupData,
+ groupProperty, propertyDefinition, groupPropCounter);
+
+ if( eitherAddPropertyToGroup.isLeft() ){
+ ret = TitanOperationStatus.OK;
+ if( lastUpdateTimeWrapper.isEmpty() ){
+ lastUpdateTimeWrapper.setInnerElement(eitherAddPropertyToGroup.left().value().getCreationTime());
+ }
+ }
+ else{
+ ret = eitherAddPropertyToGroup.right().value();
+ }
+ if( ret == TitanOperationStatus.OK){
+ groupData.getGroupDataDefinition().setPropertyValueCounter(groupPropCounter);
+ Either<GroupData, TitanOperationStatus> updateNode = titanGenericDao .updateNode(groupData, GroupData.class);
+ if( updateNode.isRight() ){
+ ret = updateNode.right().value();
+ }
+ }
+
+ }
+ return ret;
+ }
+
+ public Either<PropertyValueData, TitanOperationStatus> addPropertyToGroup(GroupData groupData,
GroupProperty groupProperty, PropertyDefinition prop, Integer index) {
if (prop == null) {
@@ -312,15 +495,13 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
Either<Map<String, DataTypeDefinition>, TitanOperationStatus> allDataTypes = dataTypeCache.getAll();
if (allDataTypes.isRight()) {
TitanOperationStatus status = allDataTypes.right().value();
- BeEcompErrorManager.getInstance().logInternalFlowError("AddPropertyToGroup",
- "Failed to add property to group. Status is " + status, ErrorSeverity.ERROR);
+ BeEcompErrorManager.getInstance().logInternalFlowError("AddPropertyToGroup", "Failed to add property to group. Status is " + status, ErrorSeverity.ERROR);
return Either.right(status);
}
log.debug("Before validateAndUpdatePropertyValue");
- Either<Object, Boolean> isValid = propertyOperation.validateAndUpdatePropertyValue(propertyType, value,
- innerType, allDataTypes.left().value());
+ Either<Object, Boolean> isValid = propertyOperation.validateAndUpdatePropertyValue(propertyType, value, innerType, allDataTypes.left().value());
log.debug("After validateAndUpdatePropertyValue. isValid = {}", isValid);
String newValue = value;
@@ -341,9 +522,8 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
propertyValueData.setUniqueId(uniqueId);
propertyValueData.setValue(newValue);
- log.debug("Before adding property value to graph {}",propertyValueData);
- Either<PropertyValueData, TitanOperationStatus> createNodeResult = titanGenericDao.createNode(propertyValueData,
- PropertyValueData.class);
+ log.debug("Before adding property value to graph {}", propertyValueData);
+ Either<PropertyValueData, TitanOperationStatus> createNodeResult = titanGenericDao.createNode(propertyValueData, PropertyValueData.class);
log.debug("After adding property value to graph {}", propertyValueData);
if (createNodeResult.isRight()) {
@@ -351,24 +531,20 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
return Either.right(operationStatus);
}
- Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(propertyValueData,
- propertyData, GraphEdgeLabels.PROPERTY_IMPL, null);
+ Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(propertyValueData, propertyData, GraphEdgeLabels.PROPERTY_IMPL, null);
if (createRelResult.isRight()) {
TitanOperationStatus operationStatus = createRelResult.right().value();
- String description = "Failed to associate property value " + uniqueId + " to property " + propertyId
- + " in graph. status is " + operationStatus;
+ String description = "Failed to associate property value " + uniqueId + " to property " + propertyId + " in graph. status is " + operationStatus;
BeEcompErrorManager.getInstance().logInternalFlowError(ADDING_GROUP, description, ErrorSeverity.ERROR);
return Either.right(operationStatus);
}
- createRelResult = titanGenericDao.createRelation(groupData, propertyValueData, GraphEdgeLabels.PROPERTY_VALUE,
- null);
+ createRelResult = titanGenericDao.createRelation(groupData, propertyValueData, GraphEdgeLabels.PROPERTY_VALUE, null);
if (createRelResult.isRight()) {
TitanOperationStatus operationStatus = createNodeResult.right().value();
- String description = "Failed to associate group " + groupData.getGroupDataDefinition().getName()
- + " to property value " + uniqueId + " in graph. Status is " + operationStatus;
+ String description = "Failed to associate group " + groupData.getGroupDataDefinition().getName() + " to property value " + uniqueId + " in graph. Status is " + operationStatus;
BeEcompErrorManager.getInstance().logInternalFlowError(ADDING_GROUP, description, ErrorSeverity.ERROR);
return Either.right(operationStatus);
}
@@ -376,16 +552,14 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
return Either.left(createNodeResult.left().value());
}
- private Either<GraphRelation, TitanOperationStatus> associateGroupToComponent(GroupData groupData,
- NodeTypeEnum nodeTypeEnum, String componentId) {
+ private Either<GraphRelation, TitanOperationStatus> associateGroupToComponent(GroupData groupData, NodeTypeEnum nodeTypeEnum, String componentId) {
UniqueIdData componentIdData = new UniqueIdData(nodeTypeEnum, componentId);
- log.debug("Before associating component {} to group {}.", componentId, groupData);
+ log.debug("Before associating component {} to group {}", componentId, groupData);
Map<String, Object> props = new HashMap<String, Object>();
props.put(GraphPropertiesDictionary.NAME.getProperty(), groupData.getGroupDataDefinition().getName());
- Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(componentIdData,
- groupData, GraphEdgeLabels.GROUP, props);
- log.debug("After associating component {} to group {}. Status is {}", componentId, groupData, createRelResult);
+ Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(componentIdData, groupData, GraphEdgeLabels.GROUP, props);
+ log.debug("After associating component {} to group {}. status is {}", componentId, groupData, createRelResult);
if (createRelResult.isRight()) {
TitanOperationStatus operationStatus = createRelResult.right().value();
log.debug("Failed to associate component {} to group {} in graph. Status is {}", componentId, groupData, operationStatus);
@@ -395,18 +569,13 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
return Either.left(createRelResult.left().value());
}
- private Either<GraphRelation, TitanOperationStatus> associateGroupToGroupType(GroupData groupData,
- String groupTypeUid) {
+ private Either<GraphRelation, TitanOperationStatus> associateGroupToGroupType(GroupData groupData, String groupTypeUid) {
UniqueIdData groupTypeIdData = new UniqueIdData(NodeTypeEnum.GroupType, groupTypeUid);
- log.debug("Before associating {} to group type {} (uid = {}).", groupData, groupData.getGroupDataDefinition().getType(), groupTypeUid);
- Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(groupData,
- groupTypeIdData, GraphEdgeLabels.TYPE_OF, null);
-
- if (log.isDebugEnabled()) {
- log.debug("After associating {} to group type {} (uid = {}). Result is {}", groupData, groupData.getGroupDataDefinition().getType(), groupTypeUid, createRelResult);
- }
+ log.debug("Before associating {} to group type {} (uid = {})", groupData, groupData.getGroupDataDefinition().getType(), groupTypeUid);
+ Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(groupData, groupTypeIdData, GraphEdgeLabels.TYPE_OF, null);
+ log.debug("After associating {} to group type {} (uid = {}). Result is {}", groupData, groupData.getGroupDataDefinition().getType(), groupTypeUid, createRelResult);
if (createRelResult.isRight()) {
TitanOperationStatus operationStatus = createRelResult.right().value();
return Either.right(operationStatus);
@@ -415,19 +584,16 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
}
@Override
- public Either<GroupDefinition, StorageOperationStatus> addGroup(NodeTypeEnum nodeTypeEnum, String componentId,
- GroupDefinition groupDefinition) {
+ public Either<GroupDefinition, StorageOperationStatus> addGroup(NodeTypeEnum nodeTypeEnum, String componentId, GroupDefinition groupDefinition) {
return addGroup(nodeTypeEnum, componentId, groupDefinition, false);
}
@Override
- public Either<GroupDefinition, StorageOperationStatus> addGroup(NodeTypeEnum nodeTypeEnum, String componentId,
- GroupDefinition groupDefinition, boolean inTransaction) {
+ public Either<GroupDefinition, StorageOperationStatus> addGroup(NodeTypeEnum nodeTypeEnum, String componentId, GroupDefinition groupDefinition, boolean inTransaction) {
Either<GroupDefinition, StorageOperationStatus> result = null;
try {
- Either<GroupData, TitanOperationStatus> addGroupRes = addGroupToGraph(nodeTypeEnum, componentId,
- groupDefinition);
+ Either<GroupData, TitanOperationStatus> addGroupRes = addGroupToGraph(nodeTypeEnum, componentId, groupDefinition);
if (addGroupRes.isRight()) {
TitanOperationStatus status = addGroupRes.right().value();
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
@@ -506,52 +672,6 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
}
/**
- * get the list of artifacts related to a given group
- *
- * @param groupUniqueId
- * @return
- */
- // private Either<List<String>, TitanOperationStatus> getGroupArtifacts(
- // String groupUniqueId) {
- //
- // Either<List<String>, TitanOperationStatus> result = null;
- //
- // Either<List<ImmutablePair<ArtifactData, GraphEdge>>,
- // TitanOperationStatus> childrenNodes = titanGenericDao
- // .getChildrenNodes(
- // UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Group),
- // groupUniqueId, GraphEdgeLabels.GROUP_ARTIFACT_REF,
- // NodeTypeEnum.ArtifactRef, ArtifactData.class);
- // if (childrenNodes.isRight()) {
- // TitanOperationStatus status = childrenNodes.right().value();
- // if (status == TitanOperationStatus.NOT_FOUND) {
- // status = TitanOperationStatus.OK;
- // }
- // result = Either.right(status);
- //
- // } else {
- //
- // List<String> artifactsList = new ArrayList<>();
- // List<ImmutablePair<ArtifactData, GraphEdge>> list = childrenNodes
- // .left().value();
- // if (list != null) {
- // for (ImmutablePair<ArtifactData, GraphEdge> pair : list) {
- // ArtifactData artifactData = pair.getKey();
- // String uniqueId = artifactData.getArtifactDataDefinition()
- // .getUniqueId();
- // artifactsList.add(uniqueId);
- // }
- // }
- //
- // log.debug("The artifacts list related to group {} is {}", groupUniqueId, artifactsList);
- // result = Either.left(artifactsList);
- // }
- //
- // return result;
- //
- // }
-
- /**
* get members of group
*
* @param groupUniqueId
@@ -561,9 +681,8 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
Either<Map<String, String>, TitanOperationStatus> result = null;
- Either<List<ImmutablePair<ComponentInstanceData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao
- .getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Group), groupUniqueId,
- GraphEdgeLabels.GROUP_MEMBER, NodeTypeEnum.ResourceInstance, ComponentInstanceData.class);
+ Either<List<ImmutablePair<ComponentInstanceData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Group), groupUniqueId, GraphEdgeLabels.GROUP_MEMBER,
+ NodeTypeEnum.ResourceInstance, ComponentInstanceData.class);
if (childrenNodes.isRight()) {
TitanOperationStatus status = childrenNodes.right().value();
@@ -594,23 +713,20 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
public Either<GroupTypeDefinition, TitanOperationStatus> getGroupTypeOfGroup(String groupUniqueId) {
- Either<ImmutablePair<GroupTypeData, GraphEdge>, TitanOperationStatus> groupTypeRes = titanGenericDao.getChild(
- UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Group), groupUniqueId, GraphEdgeLabels.TYPE_OF,
- NodeTypeEnum.GroupType, GroupTypeData.class);
+ Either<ImmutablePair<GroupTypeData, GraphEdge>, TitanOperationStatus> groupTypeRes = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Group), groupUniqueId, GraphEdgeLabels.TYPE_OF, NodeTypeEnum.GroupType,
+ GroupTypeData.class);
if (groupTypeRes.isRight()) {
TitanOperationStatus status = groupTypeRes.right().value();
log.debug("Cannot find group type associated with capability {}. Status is {}", groupUniqueId, status);
- BeEcompErrorManager.getInstance().logBeFailedFindAssociationError("Fetch Group type",
- NodeTypeEnum.GroupType.getName(), groupUniqueId, String.valueOf(status));
+ BeEcompErrorManager.getInstance().logBeFailedFindAssociationError("Fetch Group type", NodeTypeEnum.GroupType.getName(), groupUniqueId, String.valueOf(status));
return Either.right(groupTypeRes.right().value());
}
GroupTypeData groupTypeData = groupTypeRes.left().value().getKey();
- Either<GroupTypeDefinition, TitanOperationStatus> groupTypeByUid = groupTypeOperation
- .getGroupTypeByUid(groupTypeData.getGroupTypeDataDefinition().getUniqueId());
+ Either<GroupTypeDefinition, TitanOperationStatus> groupTypeByUid = groupTypeOperation.getGroupTypeByUid(groupTypeData.getGroupTypeDataDefinition().getUniqueId());
return groupTypeByUid;
@@ -644,19 +760,16 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
return Either.right(TitanOperationStatus.OK);
}
- Map<String, PropertyDefinition> uidToPropDefMap = groupTypeProperties.stream()
- .collect(Collectors.toMap(p -> p.getUniqueId(), p -> p));
+ Map<String, PropertyDefinition> uidToPropDefMap = groupTypeProperties.stream().collect(Collectors.toMap(p -> p.getUniqueId(), p -> p));
// Find all properties values on the group
- Either<List<ImmutablePair<PropertyValueData, GraphEdge>>, TitanOperationStatus> propertyImplNodes = titanGenericDao
- .getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Group), groupUid,
- GraphEdgeLabels.PROPERTY_VALUE, NodeTypeEnum.PropertyValue, PropertyValueData.class);
+ Either<List<ImmutablePair<PropertyValueData, GraphEdge>>, TitanOperationStatus> propertyImplNodes = titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Group), groupUid, GraphEdgeLabels.PROPERTY_VALUE,
+ NodeTypeEnum.PropertyValue, PropertyValueData.class);
if (propertyImplNodes.isRight()) {
TitanOperationStatus status = propertyImplNodes.right().value();
if (status == TitanOperationStatus.NOT_FOUND) {
- groupPropertiesList = groupTypeProperties.stream()
- .map(p -> new GroupProperty(p, p.getDefaultValue(), null)).collect(Collectors.toList());
+ groupPropertiesList = groupTypeProperties.stream().map(p -> new GroupProperty(p, p.getDefaultValue(), null)).collect(Collectors.toList());
return Either.left(groupPropertiesList);
} else {
return Either.right(status);
@@ -676,9 +789,8 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
String propertyValueUid = propertyValueData.getUniqueId();
String value = propertyValueData.getValue();
- Either<ImmutablePair<PropertyData, GraphEdge>, TitanOperationStatus> propertyDefRes = titanGenericDao
- .getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.PropertyValue), propertyValueUid,
- GraphEdgeLabels.PROPERTY_IMPL, NodeTypeEnum.Property, PropertyData.class);
+ Either<ImmutablePair<PropertyData, GraphEdge>, TitanOperationStatus> propertyDefRes = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.PropertyValue), propertyValueUid, GraphEdgeLabels.PROPERTY_IMPL,
+ NodeTypeEnum.Property, PropertyData.class);
if (propertyDefRes.isRight()) {
TitanOperationStatus status = propertyDefRes.right().value();
if (status == TitanOperationStatus.NOT_FOUND) {
@@ -704,8 +816,7 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
// Find all properties which does not have property value on the group.
List<GroupProperty> leftProps = groupTypeProperties.stream()
// filter out the group type properties which already processed
- .filter(p -> false == processedProps.contains(p.getUniqueId()))
- .map(p -> new GroupProperty(p, p.getDefaultValue(), null)).collect(Collectors.toList());
+ .filter(p -> false == processedProps.contains(p.getUniqueId())).map(p -> new GroupProperty(p, p.getDefaultValue(), null)).collect(Collectors.toList());
if (leftProps != null) {
groupPropertiesList.addAll(leftProps);
}
@@ -713,28 +824,24 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
return Either.left(groupPropertiesList);
}
- public Either<List<GroupDefinition>, TitanOperationStatus> getAllGroupsFromGraph(String componentId,
- NodeTypeEnum componentTypeEnum) {
+ public Either<List<GroupDefinition>, TitanOperationStatus> getAllGroupsFromGraph(String componentId, NodeTypeEnum componentTypeEnum) {
return getAllGroupsFromGraph(componentId, componentTypeEnum, false, false, false);
}
@Override
- public Either<List<GroupDefinition>, StorageOperationStatus> getAllGroups(String componentId,
- NodeTypeEnum compTypeEnum, boolean inTransaction) {
+ public Either<List<GroupDefinition>, StorageOperationStatus> getAllGroups(String componentId, NodeTypeEnum compTypeEnum, boolean inTransaction) {
Either<List<GroupDefinition>, StorageOperationStatus> result = null;
try {
- Either<List<GroupDefinition>, TitanOperationStatus> allGroups = this.getAllGroupsFromGraph(componentId,
- compTypeEnum);
+ Either<List<GroupDefinition>, TitanOperationStatus> allGroups = this.getAllGroupsFromGraph(componentId, compTypeEnum);
if (allGroups.isRight()) {
TitanOperationStatus status = allGroups.right().value();
- log.debug("Failed to retrieve all groups of component {} from graph. Status is {}", componentId,
- status);
+ log.debug("Failed to retrieve all groups of component {} from graph. Status is {}", componentId, status);
if (status == TitanOperationStatus.NOT_FOUND) {
status = TitanOperationStatus.OK;
}
@@ -762,8 +869,7 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
}
@Override
- public Either<List<GroupDefinition>, StorageOperationStatus> getAllGroups(String componentId,
- NodeTypeEnum compTypeEnum) {
+ public Either<List<GroupDefinition>, StorageOperationStatus> getAllGroups(String componentId, NodeTypeEnum compTypeEnum) {
return getAllGroups(componentId, compTypeEnum, false);
}
@@ -778,27 +884,21 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
GroupDefinition groupDefinition = groupFromGraph.left().value();
// 1. delete all properties values nodes
- List<GroupProperty> properties = groupDefinition.getProperties();
+ List<GroupProperty> properties = groupDefinition.convertToGroupProperties();
if (properties != null) {
for (GroupProperty groupProperty : properties) {
String propValueUniqueId = groupProperty.getValueUniqueUid();
if (propValueUniqueId != null) {
UniqueIdData uniqueIdData = new UniqueIdData(NodeTypeEnum.PropertyValue, propValueUniqueId);
- Either<PropertyValueData, TitanOperationStatus> deleteNode = titanGenericDao
- .deleteNode(uniqueIdData, PropertyValueData.class);
+ Either<PropertyValueData, TitanOperationStatus> deleteNode = titanGenericDao.deleteNode(uniqueIdData, PropertyValueData.class);
if (deleteNode.isRight()) {
TitanOperationStatus status = groupFromGraph.right().value();
- String description = String.format(
- "Failed to delete property {} under group {}" + groupUniqueId
- + " on graph. Status is {}",
- propValueUniqueId, groupDefinition.getName(), status.name());
- log.debug(description);
- BeEcompErrorManager.getInstance().logBeFailedDeleteNodeError(DELETING_GROUP, propValueUniqueId,
- status.name());
+ log.debug("Failed to delete property {} under group {} {} on graph. Status is {}", propValueUniqueId, groupDefinition.getName(), groupUniqueId, status.name());
+ BeEcompErrorManager.getInstance().logBeFailedDeleteNodeError(DELETING_GROUP, propValueUniqueId, status.name());
return Either.right(status);
} else {
- log.trace("Property {} was deleted from geoup {}", propValueUniqueId, groupDefinition.getName());
+ log.trace("Property {} was deleted from group {}" ,propValueUniqueId, groupDefinition.getName());
}
}
}
@@ -809,10 +909,7 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
Either<GroupData, TitanOperationStatus> deleteNode = titanGenericDao.deleteNode(uniqueIdData, GroupData.class);
if (deleteNode.isRight()) {
TitanOperationStatus status = groupFromGraph.right().value();
- String description = String.format(
- "Failed to delete group {} with uid " + groupUniqueId + " on graph. Status is {}",
- groupDefinition.getName(), groupUniqueId, status.name());
- log.debug(description);
+ log.debug("Failed to delete group {} with uid {} on graph. Status is {}", groupDefinition.getName(), groupUniqueId, status.name());
BeEcompErrorManager.getInstance().logBeFailedDeleteNodeError(DELETING_GROUP, groupUniqueId, status.name());
return Either.right(status);
} else {
@@ -863,18 +960,15 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
}
@Override
- public Either<List<GroupDefinition>, TitanOperationStatus> deleteAllGroupsFromGraph(String componentId,
- NodeTypeEnum componentTypeEnum) {
+ public Either<List<GroupDefinition>, TitanOperationStatus> deleteAllGroupsFromGraph(String componentId, NodeTypeEnum componentTypeEnum) {
- Either<List<ImmutablePair<GroupData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao
- .getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(componentTypeEnum), componentId,
- GraphEdgeLabels.GROUP, NodeTypeEnum.Group, GroupData.class);
+ Either<List<ImmutablePair<GroupData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(componentTypeEnum), componentId, GraphEdgeLabels.GROUP, NodeTypeEnum.Group,
+ GroupData.class);
if (childrenNodes.isRight()) {
TitanOperationStatus status = childrenNodes.right().value();
if (status != TitanOperationStatus.NOT_FOUND) {
- BeEcompErrorManager.getInstance().logBeFailedFindAllNodesError(DELETING_ALL_GROUPS,
- NodeTypeEnum.Group.name(), componentId, status.name());
+ BeEcompErrorManager.getInstance().logBeFailedFindAllNodesError(DELETING_ALL_GROUPS, NodeTypeEnum.Group.name(), componentId, status.name());
}
return Either.right(status);
}
@@ -888,8 +982,7 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
Either<GroupData, TitanOperationStatus> deleteGroupFromGraph = deleteGroupFromGraph(uniqueId);
if (deleteGroupFromGraph.isRight()) {
TitanOperationStatus status = deleteGroupFromGraph.right().value();
- BeEcompErrorManager.getInstance().logBeFailedDeleteNodeError(DELETING_ALL_GROUPS, uniqueId,
- status.name());
+ BeEcompErrorManager.getInstance().logBeFailedDeleteNodeError(DELETING_ALL_GROUPS, uniqueId, status.name());
return Either.right(status);
}
GroupData groupData = deleteGroupFromGraph.left().value();
@@ -902,15 +995,13 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
}
@Override
- public Either<List<GroupDefinition>, StorageOperationStatus> deleteAllGroups(String componentId,
- NodeTypeEnum compTypeEnum, boolean inTransaction) {
+ public Either<List<GroupDefinition>, StorageOperationStatus> deleteAllGroups(String componentId, NodeTypeEnum compTypeEnum, boolean inTransaction) {
Either<List<GroupDefinition>, StorageOperationStatus> result = null;
try {
- Either<List<GroupDefinition>, TitanOperationStatus> allGroups = this.deleteAllGroupsFromGraph(componentId,
- compTypeEnum);
+ Either<List<GroupDefinition>, TitanOperationStatus> allGroups = this.deleteAllGroupsFromGraph(componentId, compTypeEnum);
if (allGroups.isRight()) {
TitanOperationStatus status = allGroups.right().value();
@@ -942,14 +1033,11 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
}
@Override
- public Either<List<GroupDefinition>, StorageOperationStatus> deleteAllGroups(String componentId,
- NodeTypeEnum compTypeEnum) {
+ public Either<List<GroupDefinition>, StorageOperationStatus> deleteAllGroups(String componentId, NodeTypeEnum compTypeEnum) {
return deleteAllGroups(componentId, compTypeEnum, false);
}
- public Either<List<GroupDefinition>, StorageOperationStatus> prepareGroupsForCloning(
- org.openecomp.sdc.be.model.Component origResource,
- ImmutablePair<List<ComponentInstance>, Map<String, String>> cloneInstances) {
+ public Either<List<GroupDefinition>, StorageOperationStatus> prepareGroupsForCloning(org.openecomp.sdc.be.model.Component origResource, ImmutablePair<List<ComponentInstance>, Map<String, String>> cloneInstances) {
List<GroupDefinition> groupsToCreate = new ArrayList<>();
Either<List<GroupDefinition>, StorageOperationStatus> result = Either.left(groupsToCreate);
@@ -966,19 +1054,18 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
gdToCreate.setUniqueId(null);
gdToCreate.setMembers(null);
- List<GroupProperty> properties = groupDefinition.getProperties();
+ List<GroupProperty> properties = groupDefinition.convertToGroupProperties();
if (properties != null) {
// Take properties which was updated in the
// group(getValueUniqueUid != null),
// Then set null instead of the value(prepare for the
// creation).
- List<GroupProperty> propertiesToUpdate = properties.stream()
- .filter(p -> p.getValueUniqueUid() != null).map(p -> {
- p.setValueUniqueUid(null);
- return p;
- }).collect(Collectors.toList());
+ List<GroupProperty> propertiesToUpdate = properties.stream().filter(p -> p.getValueUniqueUid() != null).map(p -> {
+ p.setValueUniqueUid(null);
+ return p;
+ }).collect(Collectors.toList());
- gdToCreate.setProperties(propertiesToUpdate);
+ gdToCreate.convertFromGroupProperties(propertiesToUpdate);
}
@@ -988,8 +1075,7 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
Map<String, String> oldCompUidToNew = cloneInstances.right;
if (members != null && createdInstances != null) {
- Map<String, String> compInstIdToName = createdInstances.stream()
- .collect(Collectors.toMap(p -> p.getUniqueId(), p -> p.getName()));
+ Map<String, String> compInstIdToName = createdInstances.stream().collect(Collectors.toMap(p -> p.getUniqueId(), p -> p.getName()));
Map<String, String> membersToCreate = new HashMap<>();
@@ -1018,8 +1104,7 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
}
@Override
- public Either<List<GroupDefinition>, StorageOperationStatus> addGroups(NodeTypeEnum nodeTypeEnum,
- String componentId, List<GroupDefinition> groups, boolean inTransaction) {
+ public Either<List<GroupDefinition>, StorageOperationStatus> addGroups(NodeTypeEnum nodeTypeEnum, String componentId, List<GroupDefinition> groups, boolean inTransaction) {
List<GroupDefinition> createdGroups = new ArrayList<>();
@@ -1029,8 +1114,7 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
if (groups != null) {
for (GroupDefinition groupDefinition : groups) {
- Either<GroupDefinition, StorageOperationStatus> addGroup = this.addGroup(nodeTypeEnum, componentId,
- groupDefinition, true);
+ Either<GroupDefinition, StorageOperationStatus> addGroup = this.addGroup(nodeTypeEnum, componentId, groupDefinition, true);
if (addGroup.isRight()) {
StorageOperationStatus status = addGroup.right().value();
result = Either.right(status);
@@ -1059,29 +1143,25 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
}
@Override
- public Either<List<String>, TitanOperationStatus> getAssociatedGroupsToComponentInstanceFromGraph(
- String componentInstanceId) {
+ public Either<List<String>, TitanOperationStatus> getAssociatedGroupsToComponentInstanceFromGraph(String componentInstanceId) {
List<String> groups = new ArrayList<>();
Either<List<String>, TitanOperationStatus> result = Either.left(groups);
- Either<List<ImmutablePair<GroupData, GraphEdge>>, TitanOperationStatus> parentNodes = titanGenericDao
- .getParentNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ResourceInstance), componentInstanceId,
- GraphEdgeLabels.GROUP_MEMBER, NodeTypeEnum.Group, GroupData.class);
+ Either<List<ImmutablePair<GroupData, GraphEdge>>, TitanOperationStatus> parentNodes = titanGenericDao.getParentNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ResourceInstance), componentInstanceId, GraphEdgeLabels.GROUP_MEMBER,
+ NodeTypeEnum.Group, GroupData.class);
if (parentNodes.isRight()) {
TitanOperationStatus status = parentNodes.right().value();
if (status != TitanOperationStatus.NOT_FOUND) {
- BeEcompErrorManager.getInstance().logBeFailedFindParentError("FetchGroupMembers", componentInstanceId,
- status.name());
+ BeEcompErrorManager.getInstance().logBeFailedFindParentError("FetchGroupMembers", componentInstanceId, status.name());
}
return Either.right(status);
}
List<ImmutablePair<GroupData, GraphEdge>> fetchedGroups = parentNodes.left().value();
if (fetchedGroups != null) {
- List<String> list = fetchedGroups.stream().map(p -> p.left.getGroupDataDefinition().getUniqueId())
- .collect(Collectors.toList());
+ List<String> list = fetchedGroups.stream().map(p -> p.left.getGroupDataDefinition().getUniqueId()).collect(Collectors.toList());
groups.addAll(list);
}
@@ -1090,15 +1170,13 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
}
@Override
- public Either<List<String>, StorageOperationStatus> getAssociatedGroupsToComponentInstance(
- String componentInstanceId, boolean inTransaction) {
+ public Either<List<String>, StorageOperationStatus> getAssociatedGroupsToComponentInstance(String componentInstanceId, boolean inTransaction) {
Either<List<String>, StorageOperationStatus> result = null;
try {
- Either<List<String>, TitanOperationStatus> groups = this
- .getAssociatedGroupsToComponentInstanceFromGraph(componentInstanceId);
+ Either<List<String>, TitanOperationStatus> groups = this.getAssociatedGroupsToComponentInstanceFromGraph(componentInstanceId);
if (groups.isRight()) {
TitanOperationStatus status = groups.right().value();
@@ -1129,14 +1207,12 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
}
@Override
- public Either<List<String>, StorageOperationStatus> getAssociatedGroupsToComponentInstance(
- String componentInstanceId) {
+ public Either<List<String>, StorageOperationStatus> getAssociatedGroupsToComponentInstance(String componentInstanceId) {
return getAssociatedGroupsToComponentInstance(componentInstanceId, false);
}
@Override
- public Either<List<GraphRelation>, TitanOperationStatus> associateGroupsToComponentInstanceOnGraph(
- List<String> groups, String componentInstanceId, String compInstName) {
+ public Either<List<GraphRelation>, TitanOperationStatus> associateGroupsToComponentInstanceOnGraph(List<String> groups, String componentInstanceId, String compInstName) {
List<GraphRelation> relations = new ArrayList<>();
Either<List<GraphRelation>, TitanOperationStatus> result = Either.left(relations);
@@ -1150,14 +1226,11 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
Map<String, Object> props = new HashMap<String, Object>();
props.put(GraphPropertiesDictionary.NAME.getProperty(), compInstName);
- Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(groupData,
- compInstData, GraphEdgeLabels.GROUP_MEMBER, props);
+ Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(groupData, compInstData, GraphEdgeLabels.GROUP_MEMBER, props);
if (createRelation.isRight()) {
TitanOperationStatus status = createRelation.right().value();
- String description = "Failed to associate group " + groupData.getUniqueId()
- + " to component instance " + compInstName + " in graph. Status is " + status;
- BeEcompErrorManager.getInstance().logInternalFlowError(ASSOCIATING_GROUP_TO_COMP_INST, description,
- ErrorSeverity.ERROR);
+ String description = "Failed to associate group " + groupData.getUniqueId() + " to component instance " + compInstName + " in graph. Status is " + status;
+ BeEcompErrorManager.getInstance().logInternalFlowError(ASSOCIATING_GROUP_TO_COMP_INST, description, ErrorSeverity.ERROR);
result = Either.right(status);
break;
}
@@ -1171,21 +1244,18 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
return result;
}
- public StorageOperationStatus associateGroupsToComponentInstance(List<String> groups, String componentInstanceId,
- String compInstName) {
+ public StorageOperationStatus associateGroupsToComponentInstance(List<String> groups, String componentInstanceId, String compInstName) {
return associateGroupsToComponentInstance(groups, componentInstanceId, compInstName, false);
}
@Override
- public StorageOperationStatus associateGroupsToComponentInstance(List<String> groups, String componentInstanceId,
- String compInstName, boolean inTransaction) {
+ public StorageOperationStatus associateGroupsToComponentInstance(List<String> groups, String componentInstanceId, String compInstName, boolean inTransaction) {
StorageOperationStatus result = null;
try {
- Either<List<GraphRelation>, TitanOperationStatus> either = this
- .associateGroupsToComponentInstanceOnGraph(groups, componentInstanceId, compInstName);
+ Either<List<GraphRelation>, TitanOperationStatus> either = this.associateGroupsToComponentInstanceOnGraph(groups, componentInstanceId, compInstName);
if (either.isRight()) {
TitanOperationStatus status = either.right().value();
@@ -1215,14 +1285,12 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
}
@Override
- public Either<List<GraphRelation>, TitanOperationStatus> dissociateAllGroupsFromArtifactOnGraph(String componentId,
- NodeTypeEnum componentTypeEnum, String artifactId) {
+ public Either<List<GraphRelation>, TitanOperationStatus> dissociateAllGroupsFromArtifactOnGraph(String componentId, NodeTypeEnum componentTypeEnum, String artifactId) {
List<GraphRelation> relations = new ArrayList<>();
Either<List<GraphRelation>, TitanOperationStatus> result = Either.left(relations);
- Either<List<GroupDefinition>, TitanOperationStatus> allGroupsFromGraph = getAllGroupsFromGraph(componentId,
- componentTypeEnum, true, true, false);
+ Either<List<GroupDefinition>, TitanOperationStatus> allGroupsFromGraph = getAllGroupsFromGraph(componentId, componentTypeEnum, true, true, false);
if (allGroupsFromGraph.isRight()) {
TitanOperationStatus status = allGroupsFromGraph.right().value();
return Either.right(status);
@@ -1234,9 +1302,7 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
}
// Find all groups which contains this artifact id
- List<GroupDefinition> associatedGroups = allGroups.stream()
- .filter(p -> p.getArtifacts() != null && p.getArtifacts().contains(artifactId))
- .collect(Collectors.toList());
+ List<GroupDefinition> associatedGroups = allGroups.stream().filter(p -> p.getArtifacts() != null && p.getArtifacts().contains(artifactId)).collect(Collectors.toList());
if (associatedGroups != null && false == associatedGroups.isEmpty()) {
log.debug("The groups {} contains the artifact {}", associatedGroups.stream().map(p -> p.getName()).collect(Collectors.toList()), artifactId);
@@ -1244,8 +1310,7 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
UniqueIdData artifactData = new UniqueIdData(NodeTypeEnum.ArtifactRef, artifactId);
for (GroupDefinition groupDefinition : associatedGroups) {
UniqueIdData groupData = new UniqueIdData(NodeTypeEnum.Group, groupDefinition.getUniqueId());
- Either<GraphRelation, TitanOperationStatus> deleteRelation = titanGenericDao.deleteRelation(groupData,
- artifactData, GraphEdgeLabels.GROUP_ARTIFACT_REF);
+ Either<GraphRelation, TitanOperationStatus> deleteRelation = titanGenericDao.deleteRelation(groupData, artifactData, GraphEdgeLabels.GROUP_ARTIFACT_REF);
if (deleteRelation.isRight()) {
TitanOperationStatus status = deleteRelation.right().value();
if (status == TitanOperationStatus.NOT_FOUND) {
@@ -1266,18 +1331,15 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
}
- public Either<GroupDefinition, TitanOperationStatus> getGroupFromGraph(String uniqueId, boolean skipProperties,
- boolean skipMembers, boolean skipArtifacts) {
+ public Either<GroupDefinition, TitanOperationStatus> getGroupFromGraph(String uniqueId, boolean skipProperties, boolean skipMembers, boolean skipArtifacts) {
Either<GroupDefinition, TitanOperationStatus> result = null;
- Either<GroupData, TitanOperationStatus> groupRes = titanGenericDao
- .getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Group), uniqueId, GroupData.class);
+ Either<GroupData, TitanOperationStatus> groupRes = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Group), uniqueId, GroupData.class);
if (groupRes.isRight()) {
TitanOperationStatus status = groupRes.right().value();
log.debug("Failed to retrieve group {} from graph. Status is {}", uniqueId, status);
- BeEcompErrorManager.getInstance().logBeFailedRetrieveNodeError("Fetch Group", uniqueId,
- String.valueOf(status));
+ BeEcompErrorManager.getInstance().logBeFailedRetrieveNodeError("Fetch Group", uniqueId, String.valueOf(status));
result = Either.right(status);
return result;
}
@@ -1324,13 +1386,12 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
}
} else {
List<GroupProperty> properties = propertiesRes.left().value();
- groupDefinition.setProperties(properties);
+ groupDefinition.convertFromGroupProperties(properties);
}
}
if (false == skipArtifacts) {
- Either<List<ImmutablePair<String, String>>, TitanOperationStatus> artifactsRes = getGroupArtifactsPairs(
- uniqueId);
+ Either<List<ImmutablePair<String, String>>, TitanOperationStatus> artifactsRes = getGroupArtifactsPairs(uniqueId);
if (artifactsRes.isRight()) {
TitanOperationStatus status = artifactsRes.right().value();
if (status != TitanOperationStatus.OK) {
@@ -1376,14 +1437,12 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
}
}
- protected Either<List<GroupDefinition>, TitanOperationStatus> getAllGroupsFromGraph(String componentId,
- NodeTypeEnum componentTypeEnum, boolean skipProperties, boolean skipMembers, boolean skipArtifacts) {
+ protected Either<List<GroupDefinition>, TitanOperationStatus> getAllGroupsFromGraph(String componentId, NodeTypeEnum componentTypeEnum, boolean skipProperties, boolean skipMembers, boolean skipArtifacts) {
List<GroupDefinition> groups = new ArrayList<GroupDefinition>();
- Either<List<ImmutablePair<GroupData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao
- .getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(componentTypeEnum), componentId,
- GraphEdgeLabels.GROUP, NodeTypeEnum.Group, GroupData.class);
+ Either<List<ImmutablePair<GroupData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(componentTypeEnum), componentId, GraphEdgeLabels.GROUP, NodeTypeEnum.Group,
+ GroupData.class);
if (childrenNodes.isRight()) {
TitanOperationStatus status = childrenNodes.right().value();
@@ -1403,8 +1462,7 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
for (ImmutablePair<GroupData, GraphEdge> pair : graphGroups) {
String groupUniqueId = pair.left.getGroupDataDefinition().getUniqueId();
- Either<GroupDefinition, TitanOperationStatus> groupRes = this.getGroupFromGraph(groupUniqueId,
- skipProperties, skipMembers, skipArtifacts);
+ Either<GroupDefinition, TitanOperationStatus> groupRes = this.getGroupFromGraph(groupUniqueId, skipProperties, skipMembers, skipArtifacts);
if (groupRes.isRight()) {
TitanOperationStatus status = groupRes.right().value();
@@ -1422,14 +1480,12 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
}
@Override
- public StorageOperationStatus dissociateAllGroupsFromArtifact(String componentId, NodeTypeEnum componentTypeEnum,
- String artifactId, boolean inTransaction) {
+ public StorageOperationStatus dissociateAllGroupsFromArtifact(String componentId, NodeTypeEnum componentTypeEnum, String artifactId, boolean inTransaction) {
StorageOperationStatus result = null;
try {
- Either<List<GraphRelation>, TitanOperationStatus> either = this
- .dissociateAllGroupsFromArtifactOnGraph(componentId, componentTypeEnum, artifactId);
+ Either<List<GraphRelation>, TitanOperationStatus> either = this.dissociateAllGroupsFromArtifactOnGraph(componentId, componentTypeEnum, artifactId);
if (either.isRight()) {
TitanOperationStatus status = either.right().value();
@@ -1459,18 +1515,15 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
}
@Override
- public StorageOperationStatus dissociateAllGroupsFromArtifact(String componentId, NodeTypeEnum componentTypeEnum,
- String artifactId) {
+ public StorageOperationStatus dissociateAllGroupsFromArtifact(String componentId, NodeTypeEnum componentTypeEnum, String artifactId) {
return dissociateAllGroupsFromArtifact(componentId, componentTypeEnum, artifactId, false);
}
@Override
- public TitanOperationStatus dissociateAndAssociateGroupsFromArtifactOnGraph(String componentId,
- NodeTypeEnum componentTypeEnum, String oldArtifactId, ArtifactData newArtifact) {
+ public TitanOperationStatus dissociateAndAssociateGroupsFromArtifactOnGraph(String componentId, NodeTypeEnum componentTypeEnum, String oldArtifactId, ArtifactData newArtifact) {
- Either<List<GroupDefinition>, TitanOperationStatus> allGroupsFromGraph = getAllGroupsFromGraph(componentId,
- componentTypeEnum, true, true, false);
+ Either<List<GroupDefinition>, TitanOperationStatus> allGroupsFromGraph = getAllGroupsFromGraph(componentId, componentTypeEnum, true, true, false);
if (allGroupsFromGraph.isRight()) {
TitanOperationStatus status = allGroupsFromGraph.right().value();
return status;
@@ -1482,26 +1535,22 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
}
// Find all groups which contains this artifact id
- List<GroupDefinition> associatedGroups = allGroups.stream()
- .filter(p -> p.getArtifacts() != null && p.getArtifacts().contains(oldArtifactId))
- .collect(Collectors.toList());
+ List<GroupDefinition> associatedGroups = allGroups.stream().filter(p -> p.getArtifacts() != null && p.getArtifacts().contains(oldArtifactId)).collect(Collectors.toList());
if (associatedGroups != null && false == associatedGroups.isEmpty()) {
log.debug("The groups {} contains the artifact {}", associatedGroups.stream().map(p -> p.getName()).collect(Collectors.toList()), oldArtifactId);
UniqueIdData oldArtifactData = new UniqueIdData(NodeTypeEnum.ArtifactRef, oldArtifactId);
- UniqueIdData newArtifactData = new UniqueIdData(NodeTypeEnum.ArtifactRef,
- newArtifact.getArtifactDataDefinition().getUniqueId());
+ UniqueIdData newArtifactData = new UniqueIdData(NodeTypeEnum.ArtifactRef, newArtifact.getArtifactDataDefinition().getUniqueId());
Map<String, Object> props = new HashMap<String, Object>();
props.put(GraphPropertiesDictionary.NAME.getProperty(), newArtifactData.getLabel());
for (GroupDefinition groupDefinition : associatedGroups) {
UniqueIdData groupData = new UniqueIdData(NodeTypeEnum.Group, groupDefinition.getUniqueId());
- Either<GraphRelation, TitanOperationStatus> deleteRelation = titanGenericDao.deleteRelation(groupData,
- oldArtifactData, GraphEdgeLabels.GROUP_ARTIFACT_REF);
- log.trace("After dissociate group {} from artifac {}", groupDefinition.getName(), oldArtifactId);
+ Either<GraphRelation, TitanOperationStatus> deleteRelation = titanGenericDao.deleteRelation(groupData, oldArtifactData, GraphEdgeLabels.GROUP_ARTIFACT_REF);
+ log.trace("After dissociate group {} from artifact {}" , groupDefinition.getName(), oldArtifactId);
if (deleteRelation.isRight()) {
TitanOperationStatus status = deleteRelation.right().value();
if (status == TitanOperationStatus.NOT_FOUND) {
@@ -1510,9 +1559,8 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
return status;
}
- Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(groupData,
- newArtifactData, GraphEdgeLabels.GROUP_ARTIFACT_REF, props);
- log.trace("After associate group {} to artifact {}", groupDefinition.getName(), newArtifact.getUniqueIdKey());
+ Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(groupData, newArtifactData, GraphEdgeLabels.GROUP_ARTIFACT_REF, props);
+ log.trace("After associate group {} to artifact {}" , groupDefinition.getName(), newArtifact.getUniqueIdKey());
if (createRelation.isRight()) {
TitanOperationStatus status = createRelation.right().value();
if (status == TitanOperationStatus.NOT_FOUND) {
@@ -1527,14 +1575,12 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
}
@Override
- public StorageOperationStatus dissociateAndAssociateGroupsFromArtifact(String componentId,
- NodeTypeEnum componentTypeEnum, String oldArtifactId, ArtifactData newArtifact, boolean inTransaction) {
+ public StorageOperationStatus dissociateAndAssociateGroupsFromArtifact(String componentId, NodeTypeEnum componentTypeEnum, String oldArtifactId, ArtifactData newArtifact, boolean inTransaction) {
StorageOperationStatus result = null;
try {
- TitanOperationStatus status = this.dissociateAndAssociateGroupsFromArtifactOnGraph(componentId,
- componentTypeEnum, oldArtifactId, newArtifact);
+ TitanOperationStatus status = this.dissociateAndAssociateGroupsFromArtifactOnGraph(componentId, componentTypeEnum, oldArtifactId, newArtifact);
if (status != TitanOperationStatus.OK && status != TitanOperationStatus.NOT_FOUND) {
result = DaoStatusConverter.convertTitanStatusToStorageStatus(status);
@@ -1560,20 +1606,16 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
}
@Override
- public StorageOperationStatus dissociateAndAssociateGroupsFromArtifact(String componentId,
- NodeTypeEnum componentTypeEnum, String oldArtifactId, ArtifactData newArtifact) {
- return dissociateAndAssociateGroupsFromArtifact(componentId, componentTypeEnum, oldArtifactId, newArtifact,
- false);
+ public StorageOperationStatus dissociateAndAssociateGroupsFromArtifact(String componentId, NodeTypeEnum componentTypeEnum, String oldArtifactId, ArtifactData newArtifact) {
+ return dissociateAndAssociateGroupsFromArtifact(componentId, componentTypeEnum, oldArtifactId, newArtifact, false);
}
- private Either<List<ImmutablePair<String, String>>, TitanOperationStatus> getGroupArtifactsPairs(
- String groupUniqueId) {
+ private Either<List<ImmutablePair<String, String>>, TitanOperationStatus> getGroupArtifactsPairs(String groupUniqueId) {
Either<List<ImmutablePair<String, String>>, TitanOperationStatus> result = null;
- Either<List<ImmutablePair<ArtifactData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao
- .getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Group), groupUniqueId,
- GraphEdgeLabels.GROUP_ARTIFACT_REF, NodeTypeEnum.ArtifactRef, ArtifactData.class);
+ Either<List<ImmutablePair<ArtifactData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Group), groupUniqueId, GraphEdgeLabels.GROUP_ARTIFACT_REF,
+ NodeTypeEnum.ArtifactRef, ArtifactData.class);
if (childrenNodes.isRight()) {
TitanOperationStatus status = childrenNodes.right().value();
if (status == TitanOperationStatus.NOT_FOUND) {
@@ -1631,8 +1673,7 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
*/
public Either<GroupDefinition, TitanOperationStatus> updateGroupVersionOnGraph(String groupUniqueId) {
- Either<GroupDefinition, TitanOperationStatus> groupFromGraph = this.getGroupFromGraph(groupUniqueId, false,
- false, false);
+ Either<GroupDefinition, TitanOperationStatus> groupFromGraph = this.getGroupFromGraph(groupUniqueId, false, false, false);
if (groupFromGraph.isRight()) {
TitanOperationStatus status = groupFromGraph.right().value();
@@ -1661,10 +1702,11 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
}
}
+
+
/**
- * The version of the group is an integer. In order to support BC, we might
- * get a version in a float format.
+ * The version of the group is an integer. In order to support BC, we might get a version in a float format.
*
* @param version
* @return
@@ -1680,23 +1722,20 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
}
- public Either<GroupDefinition, TitanOperationStatus> associateArtifactsToGroupOnGraph(String groupId,
- List<String> artifactsId) {
+ public Either<GroupDefinition, TitanOperationStatus> associateArtifactsToGroupOnGraph(String groupId, List<String> artifactsId) {
if (artifactsId == null || artifactsId.isEmpty()) {
return Either.right(TitanOperationStatus.OK);
}
for (String artifactId : artifactsId) {
- Either<ArtifactData, TitanOperationStatus> findArtifactRes = titanGenericDao.getNode(
- UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ArtifactRef), artifactId, ArtifactData.class);
+ Either<ArtifactData, TitanOperationStatus> findArtifactRes = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ArtifactRef), artifactId, ArtifactData.class);
if (findArtifactRes.isRight()) {
TitanOperationStatus status = findArtifactRes.right().value();
if (status == TitanOperationStatus.NOT_FOUND) {
status = TitanOperationStatus.INVALID_ID;
}
- String description = "Failed to associate group " + groupId + " to artifact " + artifactId
- + " in graph. Status is " + status;
+ String description = "Failed to associate group " + groupId + " to artifact " + artifactId + " in graph. Status is " + status;
BeEcompErrorManager.getInstance().logInternalFlowError(ADDING_GROUP, description, ErrorSeverity.ERROR);
return Either.right(status);
}
@@ -1705,69 +1744,56 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
props.put(GraphPropertiesDictionary.NAME.getProperty(), findArtifactRes.left().value().getLabel());
GraphNode groupData = new UniqueIdData(NodeTypeEnum.Group, groupId);
- Either<GraphRelation, TitanOperationStatus> addArtifactsRefResult = titanGenericDao.createRelation(
- groupData, findArtifactRes.left().value(), GraphEdgeLabels.GROUP_ARTIFACT_REF, props);
+ Either<GraphRelation, TitanOperationStatus> addArtifactsRefResult = titanGenericDao.createRelation(groupData, findArtifactRes.left().value(), GraphEdgeLabels.GROUP_ARTIFACT_REF, props);
if (addArtifactsRefResult.isRight()) {
TitanOperationStatus status = addArtifactsRefResult.right().value();
- String description = "Failed to associate group " + groupData.getUniqueId() + " to artifact "
- + artifactId + " in graph. Status is " + status;
+ String description = "Failed to associate group " + groupData.getUniqueId() + " to artifact " + artifactId + " in graph. Status is " + status;
BeEcompErrorManager.getInstance().logInternalFlowError(ADDING_GROUP, description, ErrorSeverity.ERROR);
return Either.right(status);
}
}
- Either<GroupDefinition, TitanOperationStatus> groupFromGraph = this.getGroupFromGraph(groupId, true, true,
- false);
+ Either<GroupDefinition, TitanOperationStatus> groupFromGraph = this.getGroupFromGraph(groupId, true, true, false);
return groupFromGraph;
}
- public Either<GroupDefinition, TitanOperationStatus> associateMembersToGroupOnGraph(String groupId,
- Map<String, String> members) {
+ public Either<GroupDefinition, TitanOperationStatus> associateMembersToGroupOnGraph(String groupId, Map<String, String> members) {
if (members != null && false == members.isEmpty()) {
Either<GraphRelation, TitanOperationStatus> addMembersRefResult = null;
for (Entry<String, String> member : members.entrySet()) {
- Either<ComponentInstanceData, TitanOperationStatus> findComponentInstanceRes = titanGenericDao.getNode(
- UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ResourceInstance), member.getValue(),
- ComponentInstanceData.class);
+ Either<ComponentInstanceData, TitanOperationStatus> findComponentInstanceRes = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ResourceInstance), member.getValue(), ComponentInstanceData.class);
if (findComponentInstanceRes.isRight()) {
TitanOperationStatus status = findComponentInstanceRes.right().value();
if (status == TitanOperationStatus.NOT_FOUND) {
status = TitanOperationStatus.INVALID_ID;
}
- String description = "Failed to find to find component instance group " + member.getValue()
- + " in graph. Status is " + status;
- BeEcompErrorManager.getInstance().logInternalFlowError(ADDING_GROUP, description,
- ErrorSeverity.ERROR);
+ String description = "Failed to find to find component instance group " + member.getValue() + " in graph. Status is " + status;
+ BeEcompErrorManager.getInstance().logInternalFlowError(ADDING_GROUP, description, ErrorSeverity.ERROR);
return Either.right(status);
}
Map<String, Object> props = new HashMap<String, Object>();
props.put(GraphPropertiesDictionary.NAME.getProperty(), member.getKey());
GraphNode groupData = new UniqueIdData(NodeTypeEnum.Group, groupId);
- addMembersRefResult = titanGenericDao.createRelation(groupData, findComponentInstanceRes.left().value(),
- GraphEdgeLabels.GROUP_MEMBER, props);
+ addMembersRefResult = titanGenericDao.createRelation(groupData, findComponentInstanceRes.left().value(), GraphEdgeLabels.GROUP_MEMBER, props);
if (addMembersRefResult.isRight()) {
TitanOperationStatus status = addMembersRefResult.right().value();
- String description = "Failed to associate group " + groupData.getUniqueId()
- + " to component instance " + member.getValue() + " in graph. Status is " + status;
- BeEcompErrorManager.getInstance().logInternalFlowError(ADDING_GROUP, description,
- ErrorSeverity.ERROR);
+ String description = "Failed to associate group " + groupData.getUniqueId() + " to component instance " + member.getValue() + " in graph. Status is " + status;
+ BeEcompErrorManager.getInstance().logInternalFlowError(ADDING_GROUP, description, ErrorSeverity.ERROR);
return Either.right(status);
}
}
}
- Either<GroupDefinition, TitanOperationStatus> groupFromGraph = this.getGroupFromGraph(groupId, true, false,
- true);
+ Either<GroupDefinition, TitanOperationStatus> groupFromGraph = this.getGroupFromGraph(groupId, true, false, true);
return groupFromGraph;
}
- public Either<GroupDefinition, TitanOperationStatus> dissociateArtifactsFromGroupOnGraph(String groupId,
- List<String> artifactsId) {
+ public Either<GroupDefinition, TitanOperationStatus> dissociateArtifactsFromGroupOnGraph(String groupId, List<String> artifactsId) {
if (artifactsId == null || artifactsId.isEmpty()) {
return Either.right(TitanOperationStatus.OK);
@@ -1777,32 +1803,28 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
for (String artifactId : artifactsId) {
UniqueIdData artifactData = new UniqueIdData(NodeTypeEnum.Group, artifactId);
- Either<GraphRelation, TitanOperationStatus> deleteRelation = titanGenericDao.deleteRelation(groupData,
- artifactData, GraphEdgeLabels.GROUP_ARTIFACT_REF);
- log.trace("After dissociate group {} from artifact {}", groupId, artifactId);
+ Either<GraphRelation, TitanOperationStatus> deleteRelation = titanGenericDao.deleteRelation(groupData, artifactData, GraphEdgeLabels.GROUP_ARTIFACT_REF);
+ log.trace("After dissociate group {} from artifact {}" ,groupId, artifactId);
if (deleteRelation.isRight()) {
TitanOperationStatus status = deleteRelation.right().value();
if (status == TitanOperationStatus.NOT_FOUND) {
status = TitanOperationStatus.INVALID_ID;
}
- String description = "Failed to diassociate group " + groupId + " from artifact " + artifactId
- + " in graph. Status is " + status;
+ String description = "Failed to diassociate group " + groupId + " from artifact " + artifactId + " in graph. Status is " + status;
BeEcompErrorManager.getInstance().logInternalFlowError(ADDING_GROUP, description, ErrorSeverity.ERROR);
return Either.right(status);
}
}
- Either<GroupDefinition, TitanOperationStatus> groupFromGraph = this.getGroupFromGraph(groupId, true, true,
- false);
+ Either<GroupDefinition, TitanOperationStatus> groupFromGraph = this.getGroupFromGraph(groupId, true, true, false);
return groupFromGraph;
}
- public Either<GroupDefinition, TitanOperationStatus> dissociateMembersFromGroupOnGraph(String groupId,
- Map<String, String> members) {
+ public Either<GroupDefinition, TitanOperationStatus> dissociateMembersFromGroupOnGraph(String groupId, Map<String, String> members) {
if (members == null || members.isEmpty()) {
return Either.right(TitanOperationStatus.OK);
@@ -1812,25 +1834,22 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
for (Entry<String, String> member : members.entrySet()) {
UniqueIdData artifactData = new UniqueIdData(NodeTypeEnum.Group, member.getValue());
- Either<GraphRelation, TitanOperationStatus> deleteRelation = titanGenericDao.deleteRelation(groupData,
- artifactData, GraphEdgeLabels.GROUP_MEMBER);
- log.trace("After dissociate group {} from members", groupId, member.getValue());
+ Either<GraphRelation, TitanOperationStatus> deleteRelation = titanGenericDao.deleteRelation(groupData, artifactData, GraphEdgeLabels.GROUP_MEMBER);
+ log.trace("After dissociate group {} from members {}" ,groupId, member.getValue());
if (deleteRelation.isRight()) {
TitanOperationStatus status = deleteRelation.right().value();
if (status == TitanOperationStatus.NOT_FOUND) {
status = TitanOperationStatus.INVALID_ID;
}
- String description = "Failed to diassociate group " + groupId + " from member " + member.getValue()
- + " in graph. Status is " + status;
+ String description = "Failed to diassociate group " + groupId + " from member " + member.getValue() + " in graph. Status is " + status;
BeEcompErrorManager.getInstance().logInternalFlowError(ADDING_GROUP, description, ErrorSeverity.ERROR);
return Either.right(status);
}
}
- Either<GroupDefinition, TitanOperationStatus> groupFromGraph = this.getGroupFromGraph(groupId, true, true,
- false);
+ Either<GroupDefinition, TitanOperationStatus> groupFromGraph = this.getGroupFromGraph(groupId, true, true, false);
return groupFromGraph;
@@ -1844,18 +1863,15 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
* @param inTransaction
* @return
*/
- public Either<GroupDefinition, StorageOperationStatus> dissociateArtifactsFromGroup(String groupId,
- List<String> artifactsId, boolean inTransaction) {
+ public Either<GroupDefinition, StorageOperationStatus> dissociateArtifactsFromGroup(String groupId, List<String> artifactsId, boolean inTransaction) {
Either<GroupDefinition, StorageOperationStatus> result = null;
try {
- Either<GroupDefinition, TitanOperationStatus> titanRes = this.dissociateArtifactsFromGroupOnGraph(groupId,
- artifactsId);
+ Either<GroupDefinition, TitanOperationStatus> titanRes = this.dissociateArtifactsFromGroupOnGraph(groupId, artifactsId);
if (titanRes.isRight()) {
- StorageOperationStatus storageOperationStatus = DaoStatusConverter
- .convertTitanStatusToStorageStatus(titanRes.right().value());
+ StorageOperationStatus storageOperationStatus = DaoStatusConverter.convertTitanStatusToStorageStatus(titanRes.right().value());
result = Either.right(storageOperationStatus);
return result;
}
@@ -1878,18 +1894,15 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
}
- public Either<GroupDefinition, StorageOperationStatus> dissociateMembersFromGroup(String groupId,
- Map<String, String> members, boolean inTransaction) {
+ public Either<GroupDefinition, StorageOperationStatus> dissociateMembersFromGroup(String groupId, Map<String, String> members, boolean inTransaction) {
Either<GroupDefinition, StorageOperationStatus> result = null;
try {
- Either<GroupDefinition, TitanOperationStatus> titanRes = this.dissociateMembersFromGroupOnGraph(groupId,
- members);
+ Either<GroupDefinition, TitanOperationStatus> titanRes = this.dissociateMembersFromGroupOnGraph(groupId, members);
if (titanRes.isRight()) {
- StorageOperationStatus storageOperationStatus = DaoStatusConverter
- .convertTitanStatusToStorageStatus(titanRes.right().value());
+ StorageOperationStatus storageOperationStatus = DaoStatusConverter.convertTitanStatusToStorageStatus(titanRes.right().value());
result = Either.right(storageOperationStatus);
return result;
}
@@ -1920,19 +1933,16 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
* @param inTransaction
* @return
*/
- public Either<GroupDefinition, StorageOperationStatus> associateArtifactsToGroup(String groupId,
- List<String> artifactsId, boolean inTransaction) {
+ public Either<GroupDefinition, StorageOperationStatus> associateArtifactsToGroup(String groupId, List<String> artifactsId, boolean inTransaction) {
Either<GroupDefinition, StorageOperationStatus> result = null;
try {
- Either<GroupDefinition, TitanOperationStatus> titanRes = this.associateArtifactsToGroupOnGraph(groupId,
- artifactsId);
+ Either<GroupDefinition, TitanOperationStatus> titanRes = this.associateArtifactsToGroupOnGraph(groupId, artifactsId);
if (titanRes.isRight()) {
- StorageOperationStatus status = DaoStatusConverter
- .convertTitanStatusToStorageStatus(titanRes.right().value());
+ StorageOperationStatus status = DaoStatusConverter.convertTitanStatusToStorageStatus(titanRes.right().value());
result = Either.right(status);
}
@@ -1962,19 +1972,16 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
* @param inTransaction
* @return
*/
- public Either<GroupDefinition, StorageOperationStatus> associateMembersToGroup(String groupId,
- Map<String, String> members, boolean inTransaction) {
+ public Either<GroupDefinition, StorageOperationStatus> associateMembersToGroup(String groupId, Map<String, String> members, boolean inTransaction) {
Either<GroupDefinition, StorageOperationStatus> result = null;
try {
- Either<GroupDefinition, TitanOperationStatus> titanRes = this.associateMembersToGroupOnGraph(groupId,
- members);
+ Either<GroupDefinition, TitanOperationStatus> titanRes = this.associateMembersToGroupOnGraph(groupId, members);
if (titanRes.isRight()) {
- StorageOperationStatus status = DaoStatusConverter
- .convertTitanStatusToStorageStatus(titanRes.right().value());
+ StorageOperationStatus status = DaoStatusConverter.convertTitanStatusToStorageStatus(titanRes.right().value());
result = Either.right(status);
return result;
}
@@ -1997,18 +2004,15 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
}
- public Either<List<GroupDefinition>, StorageOperationStatus> updateGroupVersion(List<String> groupsId,
- boolean inTransaction) {
+ public Either<List<GroupDefinition>, StorageOperationStatus> updateGroupVersion(List<String> groupsId, boolean inTransaction) {
Either<List<GroupDefinition>, StorageOperationStatus> result = null;
try {
- Either<List<GroupDefinition>, TitanOperationStatus> updateGroupVersionOnGraph = this
- .updateGroupVersionOnGraph(groupsId);
+ Either<List<GroupDefinition>, TitanOperationStatus> updateGroupVersionOnGraph = this.updateGroupVersionOnGraph(groupsId);
if (updateGroupVersionOnGraph.isRight()) {
- result = Either.right(DaoStatusConverter
- .convertTitanStatusToStorageStatus(updateGroupVersionOnGraph.right().value()));
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(updateGroupVersionOnGraph.right().value()));
return result;
}
@@ -2029,42 +2033,53 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
}
}
-
- public Either<GroupDefinition, StorageOperationStatus> updateGroupName(String uniqueId, String newName,
- boolean inTransaction) {
+ /**
+ * This method updates group name
+ * @param groupToUpdateFromUniqueId
+ * @param newName
+ * @param inTransaction
+ * @return
+ */
+ public Either<GroupDefinition, StorageOperationStatus> updateGroupName(String groupToUpdateFromUniqueId,
+ String newName, boolean inTransaction) {
Either<GroupDefinition, StorageOperationStatus> result = null;
try {
- Either<GroupDefinition, TitanOperationStatus> updateGroupNameOnGraph = this.updateGroupNameOnGraph(uniqueId,
- newName);
+ //Update Name
+ Either<GroupDefinition, TitanOperationStatus> updateGroupNameOnGraph = updateGroupNameOnGraph(
+ groupToUpdateFromUniqueId, newName);
if (updateGroupNameOnGraph.isRight()) {
result = Either.right(
DaoStatusConverter.convertTitanStatusToStorageStatus(updateGroupNameOnGraph.right().value()));
- return result;
+ }
+ else{
+ result = Either.left(updateGroupNameOnGraph.left().value());
}
+ return result;
- result = Either.left(updateGroupNameOnGraph.left().value());
+ } finally {
+ handleTransactionCommitRollback(inTransaction, result);
+ }
+ }
+ @Override
+ public Either<GroupDefinition, StorageOperationStatus> updateGroupName(String groupToUpdateFromUniqueId,
+ String newName, GroupDefinition groupToUpdateTo, boolean inTransaction) {
+ Either<GroupDefinition, StorageOperationStatus> result = null;
+
+ try {
+ //Update Name
+ result = updateGroupName(groupToUpdateFromUniqueId, newName, true);
return result;
} finally {
- if (false == inTransaction) {
- if (result == null || result.isRight()) {
- log.debug("Going to execute rollback on graph.");
- BeEcompErrorManager.getInstance().logBeExecuteRollbackError("Rollback on graph");
- titanGenericDao.rollback();
- } else {
- log.debug("Going to execute commit on graph.");
- titanGenericDao.commit();
- }
- }
+ handleTransactionCommitRollback(inTransaction, result);
}
}
private Either<GroupDefinition, TitanOperationStatus> updateGroupNameOnGraph(String uniqueId, String newName) {
- Either<GroupDefinition, TitanOperationStatus> groupFromGraph = this.getGroupFromGraph(uniqueId, false, false,
- false);
+ Either<GroupDefinition, TitanOperationStatus> groupFromGraph = this.getGroupFromGraph(uniqueId, false, false, false);
if (groupFromGraph.isRight()) {
TitanOperationStatus status = groupFromGraph.right().value();
@@ -2090,4 +2105,32 @@ public class GroupOperation extends AbstractOperation implements IGroupOperation
}
}
}
+
+
+ @Override
+ public StorageOperationStatus validateAndUpdatePropertyValue(GroupProperty property) {
+
+ StorageOperationStatus result = null;
+ String innerType = property.getSchema() == null ? null : property.getSchema().getProperty() == null ? null : property.getSchema().getProperty().getType();
+ Either<Map<String, DataTypeDefinition>, TitanOperationStatus> allDataTypes = dataTypeCache.getAll();
+ Either<Object, Boolean> isValid = null;
+ if (allDataTypes.isRight()) {
+ TitanOperationStatus status = allDataTypes.right().value();
+ log.debug("Failed to fetch data types from cache. Status is {}. ", status);
+ result = DaoStatusConverter.convertTitanStatusToStorageStatus(status);
+ }
+ if(result == null){
+ isValid = propertyOperation.validateAndUpdatePropertyValue(property.getType(), property.getValue(), innerType, allDataTypes.left().value());
+ if(isValid.isRight()){
+ log.debug("Failed to validate property value {}. Status is {}. ", property.getValue(), StorageOperationStatus.INVALID_PROPERTY);
+ result = StorageOperationStatus.INVALID_PROPERTY;
+ }
+ }
+ if(result == null){
+ String validValue = String.valueOf(isValid.left().value());
+ property.setValue(validValue);
+ result = StorageOperationStatus.OK;
+ }
+ return result;
+ }
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/GroupTypeOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/GroupTypeOperation.java
index 4251e503e6..2fcdf695be 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/GroupTypeOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/GroupTypeOperation.java
@@ -27,8 +27,6 @@ import java.util.Map;
import java.util.Set;
import java.util.function.Function;
-import javax.annotation.Resource;
-
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.openecomp.sdc.be.config.BeEcompErrorManager;
import org.openecomp.sdc.be.dao.graph.datatype.GraphEdge;
@@ -48,6 +46,7 @@ import org.openecomp.sdc.be.resources.data.GroupTypeData;
import org.openecomp.sdc.be.resources.data.PropertyData;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
import fj.data.Either;
@@ -58,11 +57,14 @@ public class GroupTypeOperation extends AbstractOperation implements IGroupTypeO
String CREATE_FLOW_CONTEXT = "CreateGroupType";
String GET_FLOW_CONTEXT = "GetGroupType";
- @Resource
private PropertyOperation propertyOperation;
+
+ private TitanGenericDao titanGenericDao;
- public GroupTypeOperation() {
+ public GroupTypeOperation(@Qualifier("titan-generic-dao") TitanGenericDao titanGenericDao, @Qualifier("property-operation")PropertyOperation propertyOperation) {
super();
+ this.propertyOperation = propertyOperation;
+ this.titanGenericDao = titanGenericDao;
}
private static Logger log = LoggerFactory.getLogger(GroupTypeOperation.class.getName());
@@ -83,8 +85,7 @@ public class GroupTypeOperation extends AbstractOperation implements IGroupTypeO
}
@Override
- public Either<GroupTypeDefinition, StorageOperationStatus> addGroupType(GroupTypeDefinition groupTypeDefinition,
- boolean inTransaction) {
+ public Either<GroupTypeDefinition, StorageOperationStatus> addGroupType(GroupTypeDefinition groupTypeDefinition, boolean inTransaction) {
Either<GroupTypeDefinition, StorageOperationStatus> result = null;
@@ -93,10 +94,8 @@ public class GroupTypeOperation extends AbstractOperation implements IGroupTypeO
Either<GroupTypeData, TitanOperationStatus> eitherStatus = addGroupTypeToGraph(groupTypeDefinition);
if (eitherStatus.isRight()) {
- BeEcompErrorManager.getInstance().logBeFailedCreateNodeError(CREATE_FLOW_CONTEXT,
- groupTypeDefinition.getType(), eitherStatus.right().value().name());
- result = Either
- .right(DaoStatusConverter.convertTitanStatusToStorageStatus(eitherStatus.right().value()));
+ BeEcompErrorManager.getInstance().logBeFailedCreateNodeError(CREATE_FLOW_CONTEXT, groupTypeDefinition.getType(), eitherStatus.right().value().name());
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(eitherStatus.right().value()));
} else {
GroupTypeData groupTypeData = eitherStatus.left().value();
@@ -105,8 +104,7 @@ public class GroupTypeOperation extends AbstractOperation implements IGroupTypeO
Either<GroupTypeDefinition, StorageOperationStatus> groupTypeRes = this.getGroupType(uniqueId, true);
if (groupTypeRes.isRight()) {
- BeEcompErrorManager.getInstance().logBeFailedRetrieveNodeError(GET_FLOW_CONTEXT,
- groupTypeDefinition.getType(), eitherStatus.right().value().name());
+ BeEcompErrorManager.getInstance().logBeFailedRetrieveNodeError(GET_FLOW_CONTEXT, groupTypeDefinition.getType(), eitherStatus.right().value().name());
}
result = groupTypeRes;
@@ -125,20 +123,18 @@ public class GroupTypeOperation extends AbstractOperation implements IGroupTypeO
Either<GroupTypeDefinition, TitanOperationStatus> result = null;
- Either<GroupTypeData, TitanOperationStatus> groupTypesRes = titanGenericDao
- .getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.GroupType), uniqueId, GroupTypeData.class);
+ Either<GroupTypeData, TitanOperationStatus> groupTypesRes = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.GroupType), uniqueId, GroupTypeData.class);
if (groupTypesRes.isRight()) {
TitanOperationStatus status = groupTypesRes.right().value();
- log.debug("Group type {} cannot be found in graph. Status is {}", uniqueId, status);
+ log.debug("Group type {} cannot be found in graph. status is {}", uniqueId, status);
return Either.right(status);
}
GroupTypeData gtData = groupTypesRes.left().value();
GroupTypeDefinition groupTypeDefinition = new GroupTypeDefinition(gtData.getGroupTypeDataDefinition());
- TitanOperationStatus propertiesStatus = propertyOperation.fillProperties(uniqueId,
- properList -> groupTypeDefinition.setProperties(properList));
+ TitanOperationStatus propertiesStatus = propertyOperation.fillProperties(uniqueId, properList -> groupTypeDefinition.setProperties(properList));
if (propertiesStatus != TitanOperationStatus.OK) {
log.error("Failed to fetch properties of capability type {}", uniqueId);
@@ -159,8 +155,7 @@ public class GroupTypeOperation extends AbstractOperation implements IGroupTypeO
@Override
public Either<GroupTypeDefinition, StorageOperationStatus> getGroupType(String uniqueId, boolean inTransaction) {
- Function<String, Either<GroupTypeDefinition, TitanOperationStatus>> groupTypeGetter = uId -> getGroupTypeByUid(
- uId);
+ Function<String, Either<GroupTypeDefinition, TitanOperationStatus>> groupTypeGetter = uId -> getGroupTypeByUid(uId);
return getElementType(groupTypeGetter, uniqueId, inTransaction);
}
@@ -171,8 +166,7 @@ public class GroupTypeOperation extends AbstractOperation implements IGroupTypeO
}
@Override
- public Either<GroupTypeDefinition, StorageOperationStatus> getLatestGroupTypeByType(String type,
- boolean inTransaction) {
+ public Either<GroupTypeDefinition, StorageOperationStatus> getLatestGroupTypeByType(String type, boolean inTransaction) {
Map<String, Object> mapCriteria = new HashMap<>();
mapCriteria.put(GraphPropertiesDictionary.TYPE.getProperty(), type);
mapCriteria.put(GraphPropertiesDictionary.IS_HIGHEST_VERSION.getProperty(), true);
@@ -181,8 +175,7 @@ public class GroupTypeOperation extends AbstractOperation implements IGroupTypeO
}
- public Either<GroupTypeDefinition, StorageOperationStatus> getGroupTypeByCriteria(String type,
- Map<String, Object> properties, boolean inTransaction) {
+ public Either<GroupTypeDefinition, StorageOperationStatus> getGroupTypeByCriteria(String type, Map<String, Object> properties, boolean inTransaction) {
Either<GroupTypeDefinition, StorageOperationStatus> result = null;
try {
if (type == null || type.isEmpty()) {
@@ -191,14 +184,11 @@ public class GroupTypeOperation extends AbstractOperation implements IGroupTypeO
return result;
}
- Either<List<GroupTypeData>, TitanOperationStatus> groupTypeEither = titanGenericDao
- .getByCriteria(NodeTypeEnum.GroupType, properties, GroupTypeData.class);
+ Either<List<GroupTypeData>, TitanOperationStatus> groupTypeEither = titanGenericDao.getByCriteria(NodeTypeEnum.GroupType, properties, GroupTypeData.class);
if (groupTypeEither.isRight()) {
- result = Either
- .right(DaoStatusConverter.convertTitanStatusToStorageStatus(groupTypeEither.right().value()));
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(groupTypeEither.right().value()));
} else {
- GroupTypeDataDefinition dataDefinition = groupTypeEither.left().value().stream()
- .map(e -> e.getGroupTypeDataDefinition()).findFirst().get();
+ GroupTypeDataDefinition dataDefinition = groupTypeEither.left().value().stream().map(e -> e.getGroupTypeDataDefinition()).findFirst().get();
result = getGroupType(dataDefinition.getUniqueId(), inTransaction);
}
@@ -210,14 +200,12 @@ public class GroupTypeOperation extends AbstractOperation implements IGroupTypeO
}
@Override
- public Either<GroupTypeDefinition, StorageOperationStatus> getGroupTypeByTypeAndVersion(String type,
- String version) {
+ public Either<GroupTypeDefinition, StorageOperationStatus> getGroupTypeByTypeAndVersion(String type, String version) {
return getGroupTypeByTypeAndVersion(type, version, false);
}
@Override
- public Either<GroupTypeDefinition, StorageOperationStatus> getGroupTypeByTypeAndVersion(String type, String version,
- boolean inTransaction) {
+ public Either<GroupTypeDefinition, StorageOperationStatus> getGroupTypeByTypeAndVersion(String type, String version, boolean inTransaction) {
Map<String, Object> mapCriteria = new HashMap<>();
mapCriteria.put(GraphPropertiesDictionary.TYPE.getProperty(), type);
mapCriteria.put(GraphPropertiesDictionary.VERSION.getProperty(), version);
@@ -233,8 +221,7 @@ public class GroupTypeOperation extends AbstractOperation implements IGroupTypeO
*
* 2. Add edge between the former node to its parent(if exists)
*
- * 3. Add property node and associate it to the node created at #1. (per
- * property & if exists)
+ * 3. Add property node and associate it to the node created at #1. (per property & if exists)
*
* @param groupTypeDefinition
* @return
@@ -243,28 +230,25 @@ public class GroupTypeOperation extends AbstractOperation implements IGroupTypeO
log.debug("Got group type {}", groupTypeDefinition);
- String ctUniqueId = UniqueIdBuilder.buildGroupTypeUid(groupTypeDefinition.getType(),
- groupTypeDefinition.getVersion());
+ String ctUniqueId = UniqueIdBuilder.buildGroupTypeUid(groupTypeDefinition.getType(), groupTypeDefinition.getVersion());
// capabilityTypeDefinition.setUniqueId(ctUniqueId);
GroupTypeData groupTypeData = buildGroupTypeData(groupTypeDefinition, ctUniqueId);
log.debug("Before adding group type to graph. groupTypeData = {}", groupTypeData);
- Either<GroupTypeData, TitanOperationStatus> createGTResult = titanGenericDao.createNode(groupTypeData,
- GroupTypeData.class);
+ Either<GroupTypeData, TitanOperationStatus> createGTResult = titanGenericDao.createNode(groupTypeData, GroupTypeData.class);
log.debug("After adding group type to graph. status is = {}", createGTResult);
if (createGTResult.isRight()) {
TitanOperationStatus operationStatus = createGTResult.right().value();
- log.error("Failed to add group type {} to graph. Status is {}", groupTypeDefinition.getType(), operationStatus);
+ log.error("Failed to add group type {} to graph. status is {}", groupTypeDefinition.getType(), operationStatus);
return Either.right(operationStatus);
}
GroupTypeData resultCTD = createGTResult.left().value();
List<PropertyDefinition> properties = groupTypeDefinition.getProperties();
- Either<Map<String, PropertyData>, TitanOperationStatus> addPropertiesToCapablityType = propertyOperation
- .addPropertiesToElementType(resultCTD.getUniqueId(), NodeTypeEnum.GroupType, properties);
+ Either<Map<String, PropertyData>, TitanOperationStatus> addPropertiesToCapablityType = propertyOperation.addPropertiesToElementType(resultCTD.getUniqueId(), NodeTypeEnum.GroupType, properties);
if (addPropertiesToCapablityType.isRight()) {
log.error("Failed add properties {} to capability {}", properties, groupTypeDefinition.getType());
return Either.right(addPropertiesToCapablityType.right().value());
@@ -276,14 +260,9 @@ public class GroupTypeOperation extends AbstractOperation implements IGroupTypeO
// TODO: Need to find the parent. need to take the latest one since
// we may have many versions of the same type
/*
- * log.debug("Before creating relation between group type {} to its parent {}", ctUniqueId, derivedFrom); UniqueIdData from
- * = new UniqueIdData(NodeTypeEnum.CapabilityType, ctUniqueId);
- * UniqueIdData to = new UniqueIdData(NodeTypeEnum.CapabilityType,
- * derivedFrom); Either<GraphRelation, TitanOperationStatus>
- * createRelation = titanGenericDao .createRelation(from, to,
- * GraphEdgeLabels.DERIVED_FROM, null);
- * log.debug("After create relation between capability type {} to its parent {}. Status is {}", ctUniqueId, derivedFrom, if (createRelation.isRight()) { return
- * Either.right(createRelation.right().value()); }
+ * log.debug("Before creating relation between group type {} to its parent {}", ctUniqueId, derivedFrom); UniqueIdData from = new UniqueIdData(NodeTypeEnum.CapabilityType, ctUniqueId); UniqueIdData to = new
+ * UniqueIdData(NodeTypeEnum.CapabilityType, derivedFrom); Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao .createRelation(from, to, GraphEdgeLabels.DERIVED_FROM, null);
+ * log.debug("After create relation between capability type {} to its parent {}. status is {}", ctUniqueId, derivedFrom, createRelation); if (createRelation.isRight()) { return Either.right(createRelation.right().value()); }
*
*/
}
@@ -302,8 +281,7 @@ public class GroupTypeOperation extends AbstractOperation implements IGroupTypeO
protected CapabilityTypeDefinition convertCTDataToCTDefinition(CapabilityTypeData capabilityTypeData) {
log.debug("The object returned after create capability is {}", capabilityTypeData);
- CapabilityTypeDefinition capabilityTypeDefResult = new CapabilityTypeDefinition(
- capabilityTypeData.getCapabilityTypeDataDefinition());
+ CapabilityTypeDefinition capabilityTypeDefResult = new CapabilityTypeDefinition(capabilityTypeData.getCapabilityTypeDataDefinition());
return capabilityTypeDefResult;
}
@@ -323,12 +301,10 @@ public class GroupTypeOperation extends AbstractOperation implements IGroupTypeO
return groupTypeData;
}
- public Either<Boolean, StorageOperationStatus> isCapabilityTypeDerivedFrom(String childCandidateType,
- String parentCandidateType) {
+ public Either<Boolean, StorageOperationStatus> isCapabilityTypeDerivedFrom(String childCandidateType, String parentCandidateType) {
Map<String, Object> propertiesToMatch = new HashMap<String, Object>();
propertiesToMatch.put(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.CapabilityType), childCandidateType);
- Either<List<CapabilityTypeData>, TitanOperationStatus> getResponse = titanGenericDao
- .getByCriteria(NodeTypeEnum.CapabilityType, propertiesToMatch, CapabilityTypeData.class);
+ Either<List<CapabilityTypeData>, TitanOperationStatus> getResponse = titanGenericDao.getByCriteria(NodeTypeEnum.CapabilityType, propertiesToMatch, CapabilityTypeData.class);
if (getResponse.isRight()) {
TitanOperationStatus titanOperationStatus = getResponse.right().value();
log.debug("Couldn't fetch capability type {}, error: {}", childCandidateType, titanOperationStatus);
@@ -338,14 +314,12 @@ public class GroupTypeOperation extends AbstractOperation implements IGroupTypeO
Set<String> travelledTypes = new HashSet<>();
do {
travelledTypes.add(childUniqueId);
- Either<List<ImmutablePair<CapabilityTypeData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao
- .getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.CapabilityType), childUniqueId,
- GraphEdgeLabels.DERIVED_FROM, NodeTypeEnum.CapabilityType, CapabilityTypeData.class);
+ Either<List<ImmutablePair<CapabilityTypeData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.CapabilityType), childUniqueId, GraphEdgeLabels.DERIVED_FROM,
+ NodeTypeEnum.CapabilityType, CapabilityTypeData.class);
if (childrenNodes.isRight()) {
if (childrenNodes.right().value() != TitanOperationStatus.NOT_FOUND) {
TitanOperationStatus titanOperationStatus = getResponse.right().value();
- log.debug("Couldn't fetch derived from node for capability type {}, error: {}", childCandidateType,
- titanOperationStatus);
+ log.debug("Couldn't fetch derived from node for capability type {}, error: {}", childCandidateType, titanOperationStatus);
return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(titanOperationStatus));
} else {
log.debug("Derived from node is not found for type {} - this is OK for root capability.");
@@ -354,8 +328,7 @@ public class GroupTypeOperation extends AbstractOperation implements IGroupTypeO
}
String derivedFromUniqueId = childrenNodes.left().value().get(0).getLeft().getUniqueId();
if (derivedFromUniqueId.equals(parentCandidateType)) {
- log.debug("Verified that capability type {} derives from capability type {}", childCandidateType,
- parentCandidateType);
+ log.debug("Verified that capability type {} derives from capability type {}", childCandidateType, parentCandidateType);
return Either.left(true);
}
childUniqueId = derivedFromUniqueId;
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/HeatParametersOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/HeatParametersOperation.java
index 5d7b8c5991..ad56779a94 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/HeatParametersOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/HeatParametersOperation.java
@@ -128,7 +128,7 @@ public class HeatParametersOperation implements IHeatParametersOperation {
for (ImmutablePair<HeatParameterValueData, GraphEdge> immutablePair : values) {
GraphEdge edge = immutablePair.getValue();
String propertyName = (String) edge.getProperties().get(GraphPropertiesDictionary.NAME.getProperty());
- log.trace("Heat value " + propertyName + " is associated to node " + parentUniqueId);
+ log.trace("Heat value {} is associated to node {}", propertyName,parentUniqueId);
HeatParameterValueData propertyData = immutablePair.getKey();
heatValues.add(propertyData);
@@ -193,17 +193,17 @@ public class HeatParametersOperation implements IHeatParametersOperation {
}
- log.debug("The heat values deleted from node {} are {}", parentUniqueId, heatValues);
+ log.debug("The heat values deleted from node {} are {}" , parentUniqueId, heatValues);
return StorageOperationStatus.OK;
}
private Either<HeatParameterData, TitanOperationStatus> deleteHeatParameterFromGraph(String propertyId) {
- log.debug("Before deleting heat parameter from graph {}", propertyId);
+ log.debug("Before deleting heat parameter from graph {}" , propertyId);
return titanGenericDao.deleteNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.HeatParameter), propertyId, HeatParameterData.class);
}
private Either<HeatParameterValueData, TitanOperationStatus> deleteHeatParameterValueFromGraph(String propertyId) {
- log.debug("Before deleting heat parameter from graph {}", propertyId);
+ log.debug("Before deleting heat parameter from graph {}" , propertyId);
return titanGenericDao.deleteNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.HeatParameterValue), propertyId, HeatParameterValueData.class);
}
@@ -215,17 +215,6 @@ public class HeatParametersOperation implements IHeatParametersOperation {
String propertyName = propertyDefinition.getName();
- // type and value should be validated in business logic:
- // ArtifactsBusinessLogic.validateAndConvertHeatParamers(ArtifactDefinition)
-
- // StorageOperationStatus validateAndUpdateProperty =
- // validateAndUpdateProperty(propertyDefinition);
- // if (validateAndUpdateProperty != StorageOperationStatus.OK) {
- // log.error("Property " + propertyDefinition + " is invalid.
- // Status is " + validateAndUpdateProperty);
- // return StorageOperationStatus.BAD_REQUEST;
- // }
-
Either<HeatParameterData, TitanOperationStatus> addPropertyToGraph = addPropertyToGraph(propertyName, propertyDefinition, parentId, nodeType);
if (addPropertyToGraph.isRight()) {
@@ -264,12 +253,12 @@ public class HeatParametersOperation implements IHeatParametersOperation {
propertyDefinition.setUniqueId(UniqueIdBuilder.buildHeatParameterUniqueId(parentId, propertyName));
HeatParameterData propertyData = new HeatParameterData(propertyDefinition);
- log.debug("Before adding property to graph {}", propertyData);
+ log.debug("Before adding property to graph {}" , propertyData);
Either<HeatParameterData, TitanOperationStatus> createNodeResult = titanGenericDao.createNode(propertyData, HeatParameterData.class);
- log.debug("After adding property to graph {}", propertyData);
+ log.debug("After adding property to graph {}" , propertyData);
if (createNodeResult.isRight()) {
TitanOperationStatus operationStatus = createNodeResult.right().value();
- log.error("Failed to add property {} to graph. Status is {}", propertyName, operationStatus);
+ log.error("Failed to add property {} to graph. status is {}", propertyName, operationStatus);
return Either.right(operationStatus);
}
@@ -278,10 +267,7 @@ public class HeatParametersOperation implements IHeatParametersOperation {
Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(parentNode, propertyData, GraphEdgeLabels.HEAT_PARAMETER, props);
if (createRelResult.isRight()) {
TitanOperationStatus operationStatus = createRelResult.right().value();
-
- if (log.isDebugEnabled()) {
- log.error("Failed to associate {} {} to heat parameter {} in graph. Status is {}", nodeType.getName(), parentId, propertyName, operationStatus);
- }
+ log.error("Failed to associate {} {} to heat parameter {} in graph. status is {}", nodeType.getName(), parentId, propertyName, operationStatus);
return Either.right(operationStatus);
}
@@ -291,13 +277,13 @@ public class HeatParametersOperation implements IHeatParametersOperation {
public StorageOperationStatus validateAndUpdateProperty(HeatParameterDefinition propertyDefinition) {
- log.trace("Going to validate property type and value. {}", propertyDefinition);
+ log.trace("Going to validate property type and value. {}" , propertyDefinition);
String propertyType = propertyDefinition.getType();
HeatParameterType type = getType(propertyType);
if (type == null) {
- log.info("The type {} of heat is invalid", type);
+ log.info("The type {} of heat parameter is invalid", type);
return StorageOperationStatus.INVALID_TYPE;
}
@@ -316,7 +302,8 @@ public class HeatParametersOperation implements IHeatParametersOperation {
PropertyValueConverter converter = type.getConverter();
if (isEmptyValue(defaultValue)) {
- log.debug("Default value was not sent for property {}. Set default value to {}", propertyDefinition.getName(), EMPTY_VALUE);
+ log.debug("Default value was not sent for property {}. Set default value to {}", propertyDefinition.getName() , EMPTY_VALUE);
+
propertyDefinition.setDefaultValue(EMPTY_VALUE);
} else if (false == isEmptyValue(defaultValue)) {
String convertedValue = converter.convert(defaultValue, null, null);
@@ -333,6 +320,7 @@ public class HeatParametersOperation implements IHeatParametersOperation {
if (isEmptyValue(value)) {
log.debug("Value was not sent for property {}. Set value to {}", propertyDefinition.getName(), EMPTY_VALUE);
+
propertyDefinition.setCurrentValue(EMPTY_VALUE);
} else if (!value.equals("")) {
String convertedValue = converter.convert(value, null, null);
@@ -465,7 +453,7 @@ public class HeatParametersOperation implements IHeatParametersOperation {
log.debug("After adding property to graph {}", heatValueData);
if (createNodeResult.isRight()) {
TitanOperationStatus operationStatus = createNodeResult.right().value();
- log.error("Failed to add heat value {} to graph. Status is {}", heatValueData.getUniqueId(), operationStatus);
+ log.error("Failed to add heat value {} to graph. status is {}", heatValueData.getUniqueId(), operationStatus);
return Either.right(operationStatus);
}
@@ -474,14 +462,14 @@ public class HeatParametersOperation implements IHeatParametersOperation {
Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(heatEnvNode, heatValueData, GraphEdgeLabels.PARAMETER_VALUE, props);
if (createRelResult.isRight()) {
TitanOperationStatus operationStatus = createRelResult.right().value();
- log.error("Failed to associate heat value {} to heat env artifact {} in graph. Status is {}", heatValueData.getUniqueId(), artifactId, operationStatus);
+ log.error("Failed to associate heat value {} to heat env artifact {} in graph. status is {}", heatValueData.getUniqueId(), artifactId, operationStatus);
return Either.right(operationStatus);
}
UniqueIdData heatParameterNode = new UniqueIdData(NodeTypeEnum.HeatParameter, heatParameter.getUniqueId());
Either<GraphRelation, TitanOperationStatus> createRel2Result = titanGenericDao.createRelation(heatValueData, heatParameterNode, GraphEdgeLabels.PARAMETER_IMPL, null);
if (createRel2Result.isRight()) {
TitanOperationStatus operationStatus = createRel2Result.right().value();
- log.error("Failed to associate heat value {} to heat parameter {} in graph. Status is {}", heatValueData.getUniqueId(), heatParameter.getName(), operationStatus);
+ log.error("Failed to associate heat value {} to heat parameter {} in graph. status is {}", heatValueData.getUniqueId(), heatParameter.getName(), operationStatus);
return Either.right(operationStatus);
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/InputsOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/InputsOperation.java
index e2d13a9cff..dba4ff9b75 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/InputsOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/InputsOperation.java
@@ -28,12 +28,15 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.stream.Collectors;
+import javax.json.Json;
+
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.tinkerpop.gremlin.process.traversal.Order;
import org.apache.tinkerpop.gremlin.structure.Direction;
import org.apache.tinkerpop.gremlin.structure.Edge;
import org.apache.tinkerpop.gremlin.structure.Vertex;
import org.json.simple.JSONObject;
+import org.json.simple.parser.ParseException;
import org.openecomp.sdc.be.config.BeEcompErrorManager;
import org.openecomp.sdc.be.config.BeEcompErrorManager.ErrorSeverity;
import org.openecomp.sdc.be.dao.graph.GraphElementFactory;
@@ -45,15 +48,18 @@ import org.openecomp.sdc.be.dao.neo4j.GraphEdgeLabels;
import org.openecomp.sdc.be.dao.neo4j.GraphEdgePropertiesDictionary;
import org.openecomp.sdc.be.dao.neo4j.GraphPropertiesDictionary;
import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
+import org.openecomp.sdc.be.datatypes.elements.GetInputValueDataDefinition;
+
import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
import org.openecomp.sdc.be.model.ComponentInstInputsMap;
import org.openecomp.sdc.be.model.ComponentInstance;
import org.openecomp.sdc.be.model.ComponentInstanceInput;
+import org.openecomp.sdc.be.model.ComponentInstancePropInput;
import org.openecomp.sdc.be.model.ComponentInstanceProperty;
import org.openecomp.sdc.be.model.DataTypeDefinition;
-import org.openecomp.sdc.be.model.GetInputValueInfo;
import org.openecomp.sdc.be.model.InputDefinition;
import org.openecomp.sdc.be.model.PropertyConstraint;
+import org.openecomp.sdc.be.model.PropertyDefinition;
import org.openecomp.sdc.be.model.operations.api.IInputsOperation;
import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
import org.openecomp.sdc.be.resources.data.AttributeData;
@@ -70,6 +76,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
+import org.yaml.snakeyaml.Yaml;
import com.google.gson.Gson;
import com.thinkaurelius.titan.core.TitanEdge;
@@ -83,9 +90,13 @@ import fj.data.Either;
@Component("input-operation")
public class InputsOperation extends AbstractOperation implements IInputsOperation {
+ private static final String GET_INPUT = "get_input";
+
private static String ASSOCIATING_INPUT_TO_PROP = "AssociatingInputToComponentInstanceProperty";
private static Logger log = LoggerFactory.getLogger(InputsOperation.class.getName());
+ @Autowired
+ PropertyOperation propertyOperation;
@Autowired
private ComponentInstanceOperation componentInstanceOperation;
@@ -95,18 +106,103 @@ public class InputsOperation extends AbstractOperation implements IInputsOperati
* Delete specific input from component Although inputId is unique, pass also componentId as all other methods, and also check that the inputId is inside that componentId.
*/
@Override
- public Either<String, StorageOperationStatus> deleteInput(String inputId) {
+ public Either<InputDefinition, StorageOperationStatus> deleteInput(String inputId) {
log.debug(String.format("Before deleting input: %s from graph", inputId));
+ List<ComponentInstanceInput> inputsValueList = null;
+ List<ComponentInstanceProperty> propertyList = new ArrayList<>();
+
+ Either<TitanVertex, TitanOperationStatus> vertexService = titanGenericDao.getVertexByProperty(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), inputId);
+
+ if (vertexService.isRight()) {
+ log.debug("failed to fetch vertex of resource input for id = {}", inputId);
+ TitanOperationStatus status = vertexService.right().value();
+ if (status == TitanOperationStatus.NOT_FOUND) {
+ status = TitanOperationStatus.INVALID_ID;
+ }
+
+ StorageOperationStatus convertTitanStatusToStorageStatus = DaoStatusConverter.convertTitanStatusToStorageStatus(status);
+ return Either.right(convertTitanStatusToStorageStatus);
+ }
+ TitanVertex vertex = vertexService.left().value();
+ Iterator<Edge> edgeIter = vertex.edges(Direction.IN, GraphEdgeLabels.INPUT.getProperty());
+
+ if (edgeIter == null) {
+ log.debug("No edges in graph for criteria");
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(TitanOperationStatus.NOT_FOUND));
+ }
+ String inputName = "";
+ if (edgeIter != null) {
+ while (edgeIter.hasNext()) {
+ Edge edge = edgeIter.next();
+ GraphEdge graphEdge = null;
+
+ Map<String, Object> edgeProps = titanGenericDao.getProperties(edge);
+ GraphEdgeLabels edgeTypeFromGraph = GraphEdgeLabels.getByName(edge.label());
+ graphEdge = new GraphEdge(edgeTypeFromGraph, edgeProps);
+
+ inputName = (String) graphEdge.getProperties().get(GraphEdgePropertiesDictionary.NAME.getProperty());
+
+ }
+ }
+
+
Either<List<ComponentInstanceInput>, TitanOperationStatus> inputsValueStatus = this.getComponentInstanceInputsByInputId(inputId);
if(inputsValueStatus.isLeft()){
- List<ComponentInstanceInput> inputsValueLis = inputsValueStatus.left().value();
- if(!inputsValueLis.isEmpty()){
- for(ComponentInstanceInput inputValue: inputsValueLis){
+ inputsValueList = inputsValueStatus.left().value();
+ if(!inputsValueList.isEmpty()){
+ for(ComponentInstanceInput inputValue: inputsValueList){
Either<InputValueData, TitanOperationStatus> deleteNode = titanGenericDao.deleteNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.InputValue), inputValue.getValueUniqueUid(), InputValueData.class);
if (deleteNode.isRight()) {
StorageOperationStatus convertTitanStatusToStorageStatus = DaoStatusConverter.convertTitanStatusToStorageStatus(deleteNode.right().value());
return Either.right(convertTitanStatusToStorageStatus);
- }
+ }
+ }
+ }
+ // US848813 delete service input that relates to VL / CP property
+ } else {
+ Either<List<ComponentInstanceProperty>, TitanOperationStatus> propertyValueStatus = getComponentInstancePropertiesByInputId(inputId);
+ if(propertyValueStatus.isLeft() && !propertyValueStatus.left().value().isEmpty()){
+ //propertyList = propertyValueStatus.left().value();
+ for(ComponentInstanceProperty propertyValue: propertyValueStatus.left().value()){
+
+ String value = propertyValue.getValue();
+ Map<String, Object> mappedToscaTemplate = (Map<String, Object>) new Yaml().load(value);
+
+ resetInputName(mappedToscaTemplate, inputName);
+
+ value = gson.toJson(mappedToscaTemplate);
+ propertyValue.setValue(value);
+ String compInstId = propertyValue.getComponentInstanceId();
+ propertyValue.setRules(null);
+
+ Either<PropertyValueData, TitanOperationStatus> eitherStatus = componentInstanceOperation.updatePropertyOfResourceInstance(propertyValue, compInstId, false);
+
+ if (eitherStatus.isRight()) {
+ log.error("Failed to add property value {} to resource instance {} in Graph. status is {}", propertyValue, compInstId, eitherStatus.right().value().name());
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(eitherStatus.right().value()));
+
+ } else {
+ PropertyValueData propertyValueData = eitherStatus.left().value();
+
+ ComponentInstanceProperty propertyValueResult = propertyOperation.buildResourceInstanceProperty(propertyValueData, propertyValue);
+
+ log.debug("The returned ResourceInstanceProperty is {}", propertyValueResult);
+
+ Either<String, TitanOperationStatus> findDefaultValue = propertyOperation.findDefaultValueFromSecondPosition(propertyValue.getPath(), propertyValueData.getUniqueId(), propertyValue.getDefaultValue());
+ if (findDefaultValue.isRight()) {
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(findDefaultValue.right().value()));
+
+ }
+ String defaultValue = findDefaultValue.left().value();
+ propertyValueResult.setDefaultValue(defaultValue);
+ log.debug("The returned default value in ResourceInstanceProperty is {}", defaultValue);
+
+ propertyValueResult.setComponentInstanceId(compInstId);
+ propertyList.add(propertyValueResult);
+
+
+ }
+
}
}
}
@@ -115,7 +211,11 @@ public class InputsOperation extends AbstractOperation implements IInputsOperati
StorageOperationStatus convertTitanStatusToStorageStatus = DaoStatusConverter.convertTitanStatusToStorageStatus(deleteNode.right().value());
return Either.right(convertTitanStatusToStorageStatus);
} else {
- return Either.left(inputId);
+ InputDefinition inputDefinition = this.convertInputDataToInputDefinition(deleteNode.left().value());
+ inputDefinition.setInputs(inputsValueList);
+ inputDefinition.setProperties(propertyList);
+ inputDefinition.setName(inputName);
+ return Either.left(inputDefinition);
}
}
@@ -131,7 +231,7 @@ public class InputsOperation extends AbstractOperation implements IInputsOperati
StorageOperationStatus validateAndUpdateProperty = validateAndUpdateProperty(propertyDefinition, dataTypes);
if (validateAndUpdateProperty != StorageOperationStatus.OK) {
- log.error("Property " + propertyDefinition + " is invalid. Status is " + validateAndUpdateProperty);
+ log.error("Property {} is invalid. Status is {}", propertyDefinition, validateAndUpdateProperty);
return Either.right(TitanOperationStatus.INVALID_PROPERTY);
}
@@ -312,6 +412,8 @@ public class InputsOperation extends AbstractOperation implements IInputsOperati
if (createNodeResult.isRight()) {
TitanOperationStatus operationStatus = createNodeResult.right().value();
log.error("Failed to add input {} to graph. status is {}", propertyName, operationStatus);
+ if(operationStatus == TitanOperationStatus.TITAN_SCHEMA_VIOLATION )
+ return Either.right(TitanOperationStatus.ALREADY_EXIST);
return Either.right(operationStatus);
}
@@ -447,7 +549,7 @@ public class InputsOperation extends AbstractOperation implements IInputsOperati
public <ElementDefinition> TitanOperationStatus findAllResourceElementsDefinitionRecursively(String resourceId, List<ElementDefinition> elements, NodeElementFetcher<ElementDefinition> singleNodeFetcher) {
- log.trace("Going to fetch elements under resource {}", resourceId);
+ log.trace("Going to fetch elements under resource {}" , resourceId);
TitanOperationStatus resourceAttributesStatus = singleNodeFetcher.findAllNodeElements(resourceId, elements);
if (resourceAttributesStatus != TitanOperationStatus.OK) {
@@ -514,7 +616,7 @@ public class InputsOperation extends AbstractOperation implements IInputsOperati
}
- public TitanOperationStatus associatePropertyToInput(String riId, String inputId, ComponentInstanceProperty property, GetInputValueInfo getInput) {
+ public TitanOperationStatus associatePropertyToInput(String riId, String inputId, ComponentInstanceProperty property, GetInputValueDataDefinition getInput) {
TitanOperationStatus status = TitanOperationStatus.OK;
Either<TitanGraph, TitanOperationStatus> graphRes = titanGenericDao.getGraph();
if (graphRes.isRight()) {
@@ -536,10 +638,14 @@ public class InputsOperation extends AbstractOperation implements IInputsOperati
if(getInput!=null){
props.put(GraphEdgePropertiesDictionary.NAME.getProperty(), getInput.getPropName());
if (getInput.isList()) {
- String index = getInput.getIndexValue().toString();
- if (getInput.getGetInputIndex() != null) {
- index = getInput.getGetInputIndex().getInputName();
-
+ String index = "";
+ if(getInput.getIndexValue()!= null ){
+ index = getInput.getIndexValue().toString();
+ }else{
+ if (getInput.getGetInputIndex() != null) {
+ index = getInput.getGetInputIndex().getInputName();
+
+ }
}
props.put(GraphEdgePropertiesDictionary.GET_INPUT_INDEX.getProperty(), index);
}
@@ -627,7 +733,7 @@ public class InputsOperation extends AbstractOperation implements IInputsOperati
}
- groupDefinition.setInputsValue(propsList);
+ groupDefinition.setInputs(propsList);
}
}
@@ -704,7 +810,7 @@ public class InputsOperation extends AbstractOperation implements IInputsOperati
Either<List<ComponentInstanceInput>, TitanOperationStatus> getAllRes = getAllInputsOfResourceInstanceOnlyInputDefId(resourceInstanceId);
if (getAllRes.isRight()) {
TitanOperationStatus status = getAllRes.right().value();
- log.trace("After fetching all properties of resource instance {}. Status is {}", resourceInstanceId, status);
+ log.trace("After fetching all properties of resource instance {}. Status is {}" ,resourceInstanceId, status);
return new ImmutablePair<TitanOperationStatus, String>(status, null);
}
@@ -713,7 +819,7 @@ public class InputsOperation extends AbstractOperation implements IInputsOperati
for (ComponentInstanceInput instanceProperty : list) {
String propertyUniqueId = instanceProperty.getUniqueId();
String valueUniqueUid = instanceProperty.getValueUniqueUid();
- log.trace("Go over property {} under resource instance {}. valueUniqueId = {}", propertyUniqueId, resourceInstanceId, valueUniqueUid);
+ log.trace("Go over property {} under resource instance {}. valueUniqueId = {}" ,propertyUniqueId, resourceInstanceId, valueUniqueUid);
if (propertyId.equals(propertyUniqueId) && valueUniqueUid != null) {
log.debug("The property {} already created under resource instance {}", propertyId, resourceInstanceId);
return new ImmutablePair<TitanOperationStatus, String>(TitanOperationStatus.ALREADY_EXIST, valueUniqueUid);
@@ -1031,19 +1137,36 @@ public class InputsOperation extends AbstractOperation implements IInputsOperati
PropertyValueData propertyValueData = propertyValueDataPair.left;
String propertyValueUid = propertyValueData.getUniqueId();
String value = propertyValueData.getValue();
+
+ String componentInstanceId = (String) propertyValueDataPair.right.getProperties().get(GraphEdgePropertiesDictionary.OWNER_ID.getProperty());
Either<ImmutablePair<PropertyData, GraphEdge>, TitanOperationStatus> propertyDefRes = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.PropertyValue), propertyValueUid, GraphEdgeLabels.PROPERTY_IMPL, NodeTypeEnum.Property, PropertyData.class);
if (propertyDefRes.isRight()) {
TitanOperationStatus status = propertyDefRes.right().value();
- if (status == TitanOperationStatus.NOT_FOUND) {
- status = TitanOperationStatus.INVALID_ID;
- }
return Either.right(status);
}
ImmutablePair<PropertyData, GraphEdge> propertyDefPair = propertyDefRes.left().value();
PropertyData propertyData = propertyDefPair.left;
String propertyUniqueId = (String) propertyData.getPropertyDataDefinition().getUniqueId();
+
+ Either<TitanVertex, TitanOperationStatus> originVertexEither = titanGenericDao.getVertexByProperty(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), propertyUniqueId);
+ if (originVertexEither.isRight()) {
+ log.debug("Failed to fetch vertex of property for id {} error {}", propertyUniqueId, originVertexEither.right().value());
+ return Either.right(originVertexEither.right().value());
+ }
+ TitanVertex originVertex = originVertexEither.left().value();
+ Iterator<Edge> edgeIter = originVertex.edges(Direction.IN, GraphEdgeLabels.PROPERTY.getProperty());
+ if (edgeIter == null) {
+ return Either.right(TitanOperationStatus.NOT_FOUND);
+ }
+
+ String propertyName = "";
+
+ while (edgeIter.hasNext()) {
+ TitanEdge edge = (TitanEdge) edgeIter.next();
+ propertyName = (String) edge.property(GraphEdgePropertiesDictionary.NAME.getProperty()).value();
+ }
ComponentInstanceProperty resourceInstanceProperty = new ComponentInstanceProperty();
// set property original unique id
@@ -1059,7 +1182,9 @@ public class InputsOperation extends AbstractOperation implements IInputsOperati
resourceInstanceProperty.setRules(propertyValueData.getRules());
resourceInstanceProperty.setType(propertyData.getPropertyDataDefinition().getType());
resourceInstanceProperty.setSchema(propertyData.getPropertyDataDefinition().getSchema());
- resourceInstanceProperty.setName((String) propertyValueDataPair.right.getProperties().get(GraphPropertiesDictionary.NAME.getProperty()));
+ resourceInstanceProperty.setName(propertyName);
+ resourceInstanceProperty.setComponentInstanceId(componentInstanceId);
+
result.add(resourceInstanceProperty);
}
@@ -1091,10 +1216,22 @@ public class InputsOperation extends AbstractOperation implements IInputsOperati
if (newInputsMap != null && !newInputsMap.isEmpty()) {
for (Entry<String, List<InputDefinition>> entry : newInputsMap.entrySet()) {
String compInstId = entry.getKey();
+ Either<TitanVertex, TitanOperationStatus> ciVertexEither = titanGenericDao.getVertexByProperty(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), compInstId);
+ if (ciVertexEither.isRight()) {
+ log.debug("Failed to fetch vertex of resource instance for id {} error {}", compInstId, ciVertexEither.right().value());
+ return Either.right( DaoStatusConverter.convertTitanStatusToStorageStatus(ciVertexEither.right().value()));
+ }
+ TitanVertex ciVertex = ciVertexEither.left().value();
+
+
+ //String originType = (String) titanGenericDao.getProperty(originVertex, GraphPropertiesDictionary.LABEL.getProperty());
+ String compInstname = (String) titanGenericDao.getProperty(ciVertex, GraphPropertiesDictionary.NORMALIZED_NAME.getProperty());
+
List<InputDefinition> inputs = entry.getValue();
if (inputs != null && !inputs.isEmpty()) {
for (InputDefinition input : inputs) {
+
Either<Integer, StorageOperationStatus> counterRes = componentInstanceOperation.increaseAndGetResourceInstanceSpecificCounter(compInstId, GraphPropertiesDictionary.INPUT_COUNTER, true);
if (counterRes.isRight()) {
@@ -1109,9 +1246,13 @@ public class InputsOperation extends AbstractOperation implements IInputsOperati
return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(oldInputEither.right().value()));
}
- JSONObject jobject = new JSONObject();
- jobject.put("get_input", input.getName());
+
InputDefinition oldInput = oldInputEither.left().value();
+ String serviceInputName = compInstname + "_" + input.getName();
+ input.setName(serviceInputName);
+
+ JSONObject jobject = new JSONObject();
+ jobject.put(GET_INPUT, input.getName());
ComponentInstanceInput inputValue = new ComponentInstanceInput(oldInput, jobject.toJSONString(), null);
Integer index = counterRes.left().value();
@@ -1125,13 +1266,6 @@ public class InputsOperation extends AbstractOperation implements IInputsOperati
}
ComponentInstanceInput inputValueData = eitherStatus.left().value();
- // ComponentInstanceInput propertyValueResult =
- // buildResourceInstanceInput(propertyValueData,
- // inputValue);
- // log.debug("The returned ResourceInstanceProperty is "
- // + propertyValueResult);
-
- String inputName = input.getName();
input.setSchema(oldInputEither.left().value().getSchema());
input.setDefaultValue(oldInput.getDefaultValue());
input.setConstraints(oldInput.getConstraints());
@@ -1147,13 +1281,13 @@ public class InputsOperation extends AbstractOperation implements IInputsOperati
return Either.right(validateAndUpdateProperty);
}
- Either<InputsData, TitanOperationStatus> addPropertyToGraph = addInputToGraph(inputName, input, resourceId, nodeType);
+ Either<InputsData, TitanOperationStatus> addPropertyToGraph = addInputToGraph(serviceInputName, input, resourceId, nodeType);
if (addPropertyToGraph.isRight()) {
return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(addPropertyToGraph.right().value()));
}
InputDefinition createdInputyDefinition = convertInputDataToInputDefinition(addPropertyToGraph.left().value());
- createdInputyDefinition.setName(inputName);
+ createdInputyDefinition.setName(serviceInputName);
createdInputyDefinition.setParentUniqueId(resourceId);
Map<String, Object> props = new HashMap<String, Object>();
@@ -1178,7 +1312,275 @@ public class InputsOperation extends AbstractOperation implements IInputsOperati
}
}
+ Map<String, List<ComponentInstancePropInput>> newInputsPropsMap = componentInsInputs.getComponentInstanceProperties();
+ if (newInputsPropsMap != null && !newInputsPropsMap.isEmpty()) {
+ Either<List<InputDefinition>, StorageOperationStatus> result = createInputsFromProperty(resourceId, nodeType, dataTypes, resList, newInputsPropsMap);
+
+ if (result.isRight()) {
+ log.debug("Failed to create inputs of resource for id {} error {}", resourceId, result.right().value());
+ return result;
+ }
+ resList = result.left().value();
+
+ }
return Either.left(resList);
}
+ private Either<List<InputDefinition>, StorageOperationStatus> createInputsFromProperty(String resourceId, NodeTypeEnum nodeType, Map<String, DataTypeDefinition> dataTypes, List<InputDefinition> resList, Map<String, List<ComponentInstancePropInput>> newInputsPropsMap) {
+ for (Entry<String, List<ComponentInstancePropInput>> entry : newInputsPropsMap.entrySet()) {
+ String compInstId = entry.getKey();
+ List<ComponentInstancePropInput> properties = entry.getValue();
+
+ Either<TitanVertex, TitanOperationStatus> ciVertexEither = titanGenericDao.getVertexByProperty(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), compInstId);
+ if (ciVertexEither.isRight()) {
+ log.debug("Failed to fetch vertex of resource instance for id {} error {}", compInstId, ciVertexEither.right().value());
+ return Either.right( DaoStatusConverter.convertTitanStatusToStorageStatus(ciVertexEither.right().value()));
+ }
+ TitanVertex ciVertex = ciVertexEither.left().value();
+
+
+ //String originType = (String) titanGenericDao.getProperty(originVertex, GraphPropertiesDictionary.LABEL.getProperty());
+ String compInstname = (String) titanGenericDao.getProperty(ciVertex, GraphPropertiesDictionary.NORMALIZED_NAME.getProperty());
+ String inputName = compInstname;
+
+ if (properties != null && !properties.isEmpty()) {
+ for (ComponentInstancePropInput propInput : properties) {
+ Either<InputDefinition, StorageOperationStatus> createInputRes = createInputForComponentInstance(resourceId, nodeType, dataTypes, compInstId, inputName, propInput);
+
+ if (createInputRes.isRight()) {
+ log.debug("Failed to create input of resource instance for id {} error {}", compInstId, createInputRes.right().value());
+ return Either.right(createInputRes.right().value());
+ }
+
+ resList.add(createInputRes.left().value());
+
+ }
+ }
+
+ }
+ return Either.left(resList);
+ }
+
+ private Either<InputDefinition, StorageOperationStatus> createInputForComponentInstance(String resourceId, NodeTypeEnum nodeType, Map<String, DataTypeDefinition> dataTypes, String compInstId, String inputName, ComponentInstancePropInput propInput) {
+ String propertiesName = propInput.getPropertiesName() ;
+ PropertyDefinition selectedProp = propInput.getInput();
+ String[] parsedPropNames = propInput.getParsedPropNames();
+ if(parsedPropNames != null){
+ for(String str: parsedPropNames){
+ inputName += "_" + str;
+ }
+ } else {
+ inputName += "_" + propInput.getName();
+ }
+
+ InputDefinition input = null;
+ ComponentInstanceProperty prop = propInput;
+
+ if(propertiesName != null && !propertiesName.isEmpty() && selectedProp != null){
+ input = new InputDefinition(selectedProp);
+ }else{
+ input = new InputDefinition(prop);
+ input.setName(inputName + "_" + prop.getName());
+
+ }
+ input.setName(inputName);
+
+ JSONObject jobject = new JSONObject();
+
+
+ if(prop.getValueUniqueUid() == null || prop.getValueUniqueUid().isEmpty()){
+ if(propertiesName != null && !propertiesName.isEmpty() && selectedProp != null){
+
+ jobject = createJSONValueForProperty(parsedPropNames.length -1, parsedPropNames, jobject, inputName);
+ prop.setValue(jobject.toJSONString());
+
+ }else{
+
+ jobject.put(GET_INPUT, input.getName());
+ prop.setValue(jobject.toJSONString());
+
+
+ }
+ Either<Integer, StorageOperationStatus> increaseCounterRes = componentInstanceOperation.increaseAndGetResourceInstanceSpecificCounter(compInstId, GraphPropertiesDictionary.PROPERTY_COUNTER, true);
+ if (increaseCounterRes.isRight()) {
+ log.debug("Failed to increase resource property counter {} to resource instance {}", prop, compInstId);
+
+ return Either.right( increaseCounterRes.right().value());
+ }
+ Integer index = increaseCounterRes.left().value();
+ Either<ComponentInstanceProperty, StorageOperationStatus> result = componentInstanceOperation.addPropertyValueToResourceInstance(prop, compInstId, false, index, true);
+ if (result.isRight()) {
+ log.debug("Failed to add property value {} to resource instance {}", prop, compInstId);
+ return Either.right( result.right().value());
+ }
+ prop = result.left().value();
+
+ }else{
+
+ String value = prop.getValue();
+ if(value != null){
+ Object objValue = new Yaml().load(value);
+ if( objValue instanceof Map || objValue instanceof List ){
+ if(propertiesName == null ||propertiesName.isEmpty()){
+ jobject.put(GET_INPUT, input.getName());
+ prop.setValue(jobject.toJSONString());
+ prop.setRules(null);
+
+ }else{
+ Map<String, Object> mappedToscaTemplate = (Map<String, Object>) objValue;
+ createInputValue(mappedToscaTemplate, 1, parsedPropNames, inputName);
+ Gson gson = new Gson();
+ String json = gson.toJson(mappedToscaTemplate);
+ prop.setValue(json);
+ prop.setRules(null);
+ }
+
+ }else{
+ jobject.put(GET_INPUT, input.getName());
+ prop.setValue(jobject.toJSONString());
+ prop.setRules(null);
+ }
+ }else{
+ jobject.put(GET_INPUT, input.getName());
+ prop.setValue(jobject.toJSONString());
+ prop.setRules(null);
+ }
+
+ Either<PropertyValueData, TitanOperationStatus> eitherStatus = componentInstanceOperation.updatePropertyOfResourceInstance(prop, compInstId, false);
+
+ if (eitherStatus.isRight()) {
+ log.error("Failed to add property value {} to resource instance {} in Graph. status is {}", prop, compInstId, eitherStatus.right().value().name());
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(eitherStatus.right().value()));
+
+ } else {
+ PropertyValueData propertyValueData = eitherStatus.left().value();
+
+ prop = propertyOperation.buildResourceInstanceProperty(propertyValueData, prop);
+
+ log.debug("The returned ResourceInstanceProperty is {}", prop);
+
+ Either<String, TitanOperationStatus> findDefaultValue = propertyOperation.findDefaultValueFromSecondPosition(prop.getPath(), propertyValueData.getUniqueId(), prop.getDefaultValue());
+ if (findDefaultValue.isRight()) {
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(findDefaultValue.right().value()));
+
+ }
+ String defaultValue = findDefaultValue.left().value();
+ prop.setDefaultValue(defaultValue);
+ log.debug("The returned default value in ResourceInstanceProperty is {}", defaultValue);
+
+ prop.setComponentInstanceId(compInstId);
+
+
+
+ }
+
+
+ }
+
+ StorageOperationStatus validateAndUpdateProperty = validateAndUpdateProperty(input, dataTypes);
+ if (validateAndUpdateProperty != StorageOperationStatus.OK) {
+ log.error("Property {} is invalid. Status is {}", input, validateAndUpdateProperty);
+ return Either.right(validateAndUpdateProperty);
+ }
+
+ Either<InputsData, TitanOperationStatus> addPropertyToGraph = addInputToGraph(input.getName(), input, resourceId, nodeType);
+
+ if (addPropertyToGraph.isRight()) {
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(addPropertyToGraph.right().value()));
+ }
+ InputDefinition createdInputyDefinition = convertInputDataToInputDefinition(addPropertyToGraph.left().value());
+ createdInputyDefinition.setName(input.getName());
+ createdInputyDefinition.setParentUniqueId(resourceId);
+
+ TitanOperationStatus status = associatePropertyToInput(compInstId, createdInputyDefinition.getUniqueId(), prop, null);
+ if (status != TitanOperationStatus.OK) {
+ log.debug("Failed to associate input {} tp property value{} ", createdInputyDefinition.getName(), prop.getValueUniqueUid());
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
+ }
+
+ return Either.left(createdInputyDefinition);
+
+ }
+
+ private JSONObject createJSONValueForProperty (int i, String [] parsedPropNames, JSONObject ooj, String inputName){
+
+ while(i >= 1){
+ if( i == parsedPropNames.length -1){
+ JSONObject jobProp = new JSONObject();
+ jobProp.put(GET_INPUT, inputName);
+ ooj.put(parsedPropNames[i], jobProp);
+ i--;
+ return createJSONValueForProperty (i, parsedPropNames, ooj, inputName);
+ }else{
+ JSONObject res = new JSONObject();
+ res.put(parsedPropNames[i], ooj);
+ i --;
+ res = createJSONValueForProperty (i, parsedPropNames, res, inputName);
+ return res;
+ }
+ }
+
+ return ooj;
+ }
+
+ public void resetInputName(Map<String, Object> lhm1, String inputName){
+ for (Map.Entry<String, Object> entry : lhm1.entrySet()) {
+ String key = entry.getKey();
+ Object value = entry.getValue();
+ if (value instanceof String && ((String) value).equalsIgnoreCase(inputName) && key.equals(GET_INPUT)) {
+ value = "";
+ lhm1.remove(key);
+ } else if (value instanceof Map) {
+ Map<String, Object> subMap = (Map<String, Object>)value;
+ resetInputName(subMap, inputName);
+ } else {
+ continue;
+ }
+
+ }
+ }
+
+ private Map<String, Object> createInputValue(Map<String, Object> lhm1, int index, String[] inputNames, String inputName){
+ while(index < inputNames.length){
+ if(lhm1.containsKey(inputNames[index])){
+ Object value = lhm1.get(inputNames[index]);
+ if (value instanceof Map){
+ if(index == inputNames.length -1){
+ ((Map) value).put(GET_INPUT, inputName);
+ return ((Map) value);
+
+ }else{
+ index++;
+ return createInputValue((Map)value, index, inputNames, inputName);
+ }
+ }else{
+ Map<String, Object> jobProp = new HashMap<>();
+ if(index == inputNames.length -1){
+ jobProp.put(GET_INPUT, inputName);
+ lhm1.put(inputNames[index], jobProp);
+ return lhm1;
+ }else{
+ lhm1.put(inputNames[index], jobProp);
+ index++;
+ return createInputValue(jobProp, index, inputNames, inputName);
+ }
+ }
+ }else{
+ Map<String, Object> jobProp = new HashMap<>();
+ lhm1.put(inputNames[index], jobProp);
+ if(index == inputNames.length -1){
+ jobProp.put(GET_INPUT, inputName);
+ return jobProp;
+ }else{
+ index++;
+ return createInputValue(jobProp, index, inputNames, inputName);
+ }
+ }
+ }
+ return lhm1;
+ }
+
+
+
+
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/InterfaceLifecycleOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/InterfaceLifecycleOperation.java
index 0d29c18a95..a7c883b14e 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/InterfaceLifecycleOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/InterfaceLifecycleOperation.java
@@ -27,12 +27,7 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
-import com.thinkaurelius.titan.core.TitanTransaction;
-import com.thinkaurelius.titan.core.TitanVertex;
-
-import org.apache.cassandra.transport.Event.StatusChange;
import org.apache.commons.lang3.tuple.ImmutablePair;
-import org.openecomp.sdc.be.dao.api.ActionStatus;
import org.openecomp.sdc.be.dao.graph.datatype.GraphEdge;
import org.openecomp.sdc.be.dao.graph.datatype.GraphNode;
import org.openecomp.sdc.be.dao.graph.datatype.GraphRelation;
@@ -56,6 +51,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
+import com.thinkaurelius.titan.core.TitanVertex;
+
import fj.data.Either;
@Component("interface-operation")
@@ -74,45 +71,40 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
private TitanGenericDao titanGenericDao;
@Override
- public Either<InterfaceDefinition, StorageOperationStatus> addInterfaceToResource(InterfaceDefinition interf,
- String resourceId, String interfaceName) {
+ public Either<InterfaceDefinition, StorageOperationStatus> addInterfaceToResource(InterfaceDefinition interf, String resourceId, String interfaceName) {
return addInterfaceToResource(interf, resourceId, interfaceName, false);
}
@Override
- public Either<InterfaceDefinition, StorageOperationStatus> addInterfaceToResource(InterfaceDefinition interf,
- String resourceId, String interfaceName, boolean inTransaction) {
+ public Either<InterfaceDefinition, StorageOperationStatus> addInterfaceToResource(InterfaceDefinition interf, String resourceId, String interfaceName, boolean inTransaction) {
return createInterfaceOnResource(interf, resourceId, interfaceName, true, inTransaction);
}
- private Either<OperationData, TitanOperationStatus> addOperationToGraph(InterfaceDefinition interf, String opName,
- Operation op, InterfaceData interfaceData) {
+ private Either<OperationData, TitanOperationStatus> addOperationToGraph(InterfaceDefinition interf, String opName, Operation op, InterfaceData interfaceData) {
op.setUniqueId(UniqueIdBuilder.buildPropertyUniqueId((String) interfaceData.getUniqueId(), opName));
OperationData operationData = new OperationData(op);
log.debug("Before adding operation to graph {}", operationData);
- Either<OperationData, TitanOperationStatus> createOpNodeResult = titanGenericDao.createNode(operationData,
- OperationData.class);
+ Either<OperationData, TitanOperationStatus> createOpNodeResult = titanGenericDao.createNode(operationData, OperationData.class);
log.debug("After adding operation to graph {}", operationData);
if (createOpNodeResult.isRight()) {
TitanOperationStatus opStatus = createOpNodeResult.right().value();
- log.error("Failed to add operation {} to graph. Status is {}", opName, opStatus);
+ log.error("Failed to add operation {} to graph. status is {}", opName, opStatus);
return Either.right(opStatus);
}
Map<String, Object> props = new HashMap<String, Object>();
props.put(GraphPropertiesDictionary.NAME.getProperty(), opName);
- Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(interfaceData,
- operationData, GraphEdgeLabels.INTERFACE_OPERATION, props);
+ Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(interfaceData, operationData, GraphEdgeLabels.INTERFACE_OPERATION, props);
if (createRelResult.isRight()) {
TitanOperationStatus operationStatus = createOpNodeResult.right().value();
- log.error("Failed to associate operation {} to property {} in graph. Status is {}", interfaceData.getUniqueId(), opName, operationStatus);
+ log.error("Failed to associate operation {} to property {} in graph. status is {}", interfaceData.getUniqueId(), opName, operationStatus);
return Either.right(operationStatus);
}
@@ -121,11 +113,9 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
}
- private Either<TitanVertex, TitanOperationStatus> addOperationToGraph(InterfaceDefinition interf, String opName,
- Operation op, TitanVertex interfaceVertex) {
+ private Either<TitanVertex, TitanOperationStatus> addOperationToGraph(InterfaceDefinition interf, String opName, Operation op, TitanVertex interfaceVertex) {
- String interfaceId = (String) titanGenericDao.getProperty(interfaceVertex,
- GraphPropertiesDictionary.UNIQUE_ID.getProperty());
+ String interfaceId = (String) titanGenericDao.getProperty(interfaceVertex, GraphPropertiesDictionary.UNIQUE_ID.getProperty());
op.setUniqueId(UniqueIdBuilder.buildPropertyUniqueId(interfaceId, opName));
OperationData operationData = new OperationData(op);
@@ -141,12 +131,10 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
Map<String, Object> props = new HashMap<String, Object>();
props.put(GraphPropertiesDictionary.NAME.getProperty(), opName);
TitanVertex operationVertex = createOpNodeResult.left().value();
- TitanOperationStatus createRelResult = titanGenericDao.createEdge(interfaceVertex, operationVertex,
- GraphEdgeLabels.INTERFACE_OPERATION, props);
+ TitanOperationStatus createRelResult = titanGenericDao.createEdge(interfaceVertex, operationVertex, GraphEdgeLabels.INTERFACE_OPERATION, props);
if (!createRelResult.equals(TitanOperationStatus.OK)) {
- log.error("Failed to associate operation {} to property {} in graph. status is {}", interfaceId, opName,
- createRelResult);
+ log.error("Failed to associate operation {} to property {} in graph. status is {}", interfaceId, opName, createRelResult);
return Either.right(createRelResult);
}
@@ -173,8 +161,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
}
- private Either<InterfaceData, TitanOperationStatus> addInterfaceToGraph(InterfaceDefinition interfaceInfo,
- String interfaceName, String resourceId) {
+ private Either<InterfaceData, TitanOperationStatus> addInterfaceToGraph(InterfaceDefinition interfaceInfo, String interfaceName, String resourceId) {
InterfaceData interfaceData = new InterfaceData(interfaceInfo);
@@ -185,8 +172,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
interfaceInfo.setUniqueId(UniqueIdBuilder.buildPropertyUniqueId(resourceId, interfaceNameSplitted));
- Either<InterfaceData, TitanOperationStatus> existInterface = titanGenericDao
- .getNode(interfaceData.getUniqueIdKey(), interfaceData.getUniqueId(), InterfaceData.class);
+ Either<InterfaceData, TitanOperationStatus> existInterface = titanGenericDao.getNode(interfaceData.getUniqueIdKey(), interfaceData.getUniqueId(), InterfaceData.class);
if (existInterface.isRight()) {
@@ -197,8 +183,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
}
}
- private Either<TitanVertex, TitanOperationStatus> addInterfaceToGraph(InterfaceDefinition interfaceInfo,
- String interfaceName, String resourceId, TitanVertex metadataVertex) {
+ private Either<TitanVertex, TitanOperationStatus> addInterfaceToGraph(InterfaceDefinition interfaceInfo, String interfaceName, String resourceId, TitanVertex metadataVertex) {
InterfaceData interfaceData = new InterfaceData(interfaceInfo);
@@ -206,8 +191,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
interfaceInfo.setUniqueId(UniqueIdBuilder.buildPropertyUniqueId(resourceId, interfaceNameSplitted));
- Either<TitanVertex, TitanOperationStatus> existInterface = titanGenericDao
- .getVertexByProperty(interfaceData.getUniqueIdKey(), interfaceData.getUniqueId());
+ Either<TitanVertex, TitanOperationStatus> existInterface = titanGenericDao.getVertexByProperty(interfaceData.getUniqueIdKey(), interfaceData.getUniqueId());
if (existInterface.isRight()) {
@@ -218,26 +202,23 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
}
}
- private Either<InterfaceData, TitanOperationStatus> createInterfaceNodeAndRelation(String interfaceName,
- String resourceId, InterfaceData interfaceData, ResourceMetadataData resourceData) {
+ private Either<InterfaceData, TitanOperationStatus> createInterfaceNodeAndRelation(String interfaceName, String resourceId, InterfaceData interfaceData, ResourceMetadataData resourceData) {
log.debug("Before adding interface to graph {}", interfaceData);
- Either<InterfaceData, TitanOperationStatus> createNodeResult = titanGenericDao.createNode(interfaceData,
- InterfaceData.class);
+ Either<InterfaceData, TitanOperationStatus> createNodeResult = titanGenericDao.createNode(interfaceData, InterfaceData.class);
log.debug("After adding property to graph {}", interfaceData);
if (createNodeResult.isRight()) {
TitanOperationStatus operationStatus = createNodeResult.right().value();
- log.error("Failed to add interface {} to graph. Status is {}", interfaceName, operationStatus);
+ log.error("Failed to add interface {} to graph. status is {}", interfaceName, operationStatus);
return Either.right(operationStatus);
}
Map<String, Object> props = new HashMap<String, Object>();
props.put(GraphPropertiesDictionary.NAME.getProperty(), interfaceName);
- Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(resourceData,
- interfaceData, GraphEdgeLabels.INTERFACE, props);
+ Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(resourceData, interfaceData, GraphEdgeLabels.INTERFACE, props);
if (createRelResult.isRight()) {
TitanOperationStatus operationStatus = createNodeResult.right().value();
- log.error("Failed to associate resource {} to property {} in graph. Status is {}", resourceId, interfaceName, operationStatus);
+ log.error("Failed to associate resource {} to property {} in graph. status is {}", resourceId, interfaceName, operationStatus);
return Either.right(operationStatus);
}
@@ -245,8 +226,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
return Either.left(createNodeResult.left().value());
}
- private Either<TitanVertex, TitanOperationStatus> createInterfaceNodeAndRelation(String interfaceName,
- String resourceId, InterfaceData interfaceData, TitanVertex metadataVertex) {
+ private Either<TitanVertex, TitanOperationStatus> createInterfaceNodeAndRelation(String interfaceName, String resourceId, InterfaceData interfaceData, TitanVertex metadataVertex) {
log.debug("Before adding interface to graph {}", interfaceData);
Either<TitanVertex, TitanOperationStatus> createNodeResult = titanGenericDao.createNode(interfaceData);
@@ -259,35 +239,30 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
Map<String, Object> props = new HashMap<String, Object>();
props.put(GraphPropertiesDictionary.NAME.getProperty(), interfaceName);
TitanVertex interfaceVertex = createNodeResult.left().value();
- TitanOperationStatus createRelResult = titanGenericDao.createEdge(metadataVertex, interfaceVertex,
- GraphEdgeLabels.INTERFACE, props);
+ TitanOperationStatus createRelResult = titanGenericDao.createEdge(metadataVertex, interfaceVertex, GraphEdgeLabels.INTERFACE, props);
if (!createRelResult.equals(TitanOperationStatus.OK)) {
- log.error("Failed to associate resource {} to property {} in graph. status is {}", resourceId,
- interfaceName, createRelResult);
+ log.error("Failed to associate resource {} to property {} in graph. status is {}", resourceId, interfaceName, createRelResult);
}
return Either.left(interfaceVertex);
}
- private Either<OperationData, TitanOperationStatus> createOperationNodeAndRelation(String operationName,
- OperationData operationData, InterfaceData interfaceData) {
+ private Either<OperationData, TitanOperationStatus> createOperationNodeAndRelation(String operationName, OperationData operationData, InterfaceData interfaceData) {
log.debug("Before adding operation to graph {}", operationData);
- Either<OperationData, TitanOperationStatus> createNodeResult = titanGenericDao.createNode(operationData,
- OperationData.class);
+ Either<OperationData, TitanOperationStatus> createNodeResult = titanGenericDao.createNode(operationData, OperationData.class);
log.debug("After adding operation to graph {}", interfaceData);
if (createNodeResult.isRight()) {
TitanOperationStatus operationStatus = createNodeResult.right().value();
- log.error("Failed to add interfoperationce {} to graph. Status is {}", operationName, operationStatus);
+ log.error("Failed to add interfoperationce {} to graph. status is {}", operationName, operationStatus);
return Either.right(operationStatus);
}
Map<String, Object> props = new HashMap<String, Object>();
props.put(GraphPropertiesDictionary.NAME.getProperty(), operationName);
- Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(interfaceData,
- operationData, GraphEdgeLabels.INTERFACE_OPERATION, props);
+ Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(interfaceData, operationData, GraphEdgeLabels.INTERFACE_OPERATION, props);
if (createRelResult.isRight()) {
TitanOperationStatus operationStatus = createNodeResult.right().value();
- log.error("Failed to associate operation {} to interface {} in graph. Status is {}", operationName, interfaceData.getUniqueId(), operationStatus);
+ log.error("Failed to associate operation {} to interface {} in graph. status is {}", operationName, interfaceData.getUniqueId(), operationStatus);
return Either.right(operationStatus);
}
@@ -307,7 +282,8 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
// * InterfaceData propertyData = getResult.left().value(); return
// * Either.left(convertPropertyDataToPropertyDefinition(propertyData)); }
// * else { TitanOperationStatus titanStatus = getResult.right().value();
- // * log.debug("Node with id {} was not found in the graph. Status: {}", propertyId, titanStatus);
+ // * log.debug("Node with id " + propertyId +
+ // * " was not found in the graph. status: " + titanStatus);
// * StorageOperationStatus storageOperationStatus =
// * DaoStatusConverter.convertTitanStatusToStorageStatus(titanStatus);
// * return Either.right(storageOperationStatus); }
@@ -323,14 +299,12 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
// }
@Override
- public Either<Map<String, InterfaceDefinition>, StorageOperationStatus> getAllInterfacesOfResource(
- String resourceIdn, boolean recursively) {
+ public Either<Map<String, InterfaceDefinition>, StorageOperationStatus> getAllInterfacesOfResource(String resourceIdn, boolean recursively) {
return getAllInterfacesOfResource(resourceIdn, recursively, false);
}
@Override
- public Either<Map<String, InterfaceDefinition>, StorageOperationStatus> getAllInterfacesOfResource(
- String resourceId, boolean recursively, boolean inTransaction) {
+ public Either<Map<String, InterfaceDefinition>, StorageOperationStatus> getAllInterfacesOfResource(String resourceId, boolean recursively, boolean inTransaction) {
Either<Map<String, InterfaceDefinition>, StorageOperationStatus> result = null;
Map<String, InterfaceDefinition> interfaces = new HashMap<String, InterfaceDefinition>();
@@ -348,7 +322,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
findInterfacesRes = findAllInterfacesNotRecursively(resourceId, interfaces);
}
if (!findInterfacesRes.equals(TitanOperationStatus.OK)) {
- log.error("Failed to get all interfaces of resource {}. Status is {}", resourceId, findInterfacesRes);
+ log.error("Failed to get all interfaces of resource {}. status is {}", resourceId, findInterfacesRes);
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(findInterfacesRes));
return result;
}
@@ -367,12 +341,10 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
}
}
- private TitanOperationStatus findAllInterfacesNotRecursively(String resourceId,
- Map<String, InterfaceDefinition> interfaces) {
+ private TitanOperationStatus findAllInterfacesNotRecursively(String resourceId, Map<String, InterfaceDefinition> interfaces) {
- Either<List<ImmutablePair<InterfaceData, GraphEdge>>, TitanOperationStatus> interfaceNodes = titanGenericDao
- .getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Resource), resourceId,
- GraphEdgeLabels.INTERFACE, NodeTypeEnum.Interface, InterfaceData.class);
+ Either<List<ImmutablePair<InterfaceData, GraphEdge>>, TitanOperationStatus> interfaceNodes = titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Resource), resourceId, GraphEdgeLabels.INTERFACE,
+ NodeTypeEnum.Interface, InterfaceData.class);
if (interfaceNodes.isRight()) {
TitanOperationStatus status = interfaceNodes.right().value();
@@ -384,15 +356,13 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
if (interfaceList != null) {
for (ImmutablePair<InterfaceData, GraphEdge> interfacePair : interfaceList) {
String interfaceUniqueId = (String) interfacePair.getKey().getUniqueId();
- Either<String, TitanOperationStatus> interfaceNameRes = getPropertyValueFromEdge(
- interfacePair.getValue(), GraphPropertiesDictionary.NAME);
+ Either<String, TitanOperationStatus> interfaceNameRes = getPropertyValueFromEdge(interfacePair.getValue(), GraphPropertiesDictionary.NAME);
if (interfaceNameRes.isRight()) {
log.error("The requirement name is missing on the edge of requirement {}", interfaceUniqueId);
return interfaceNameRes.right().value();
}
String interfaceName = interfaceNameRes.left().value();
- Either<InterfaceDefinition, TitanOperationStatus> interfaceDefRes = getNonRecursiveInterface(
- interfacePair.getKey());
+ Either<InterfaceDefinition, TitanOperationStatus> interfaceDefRes = getNonRecursiveInterface(interfacePair.getKey());
if (interfaceDefRes.isRight()) {
TitanOperationStatus status = interfaceDefRes.right().value();
log.error("Failed to get interface actions of interface {}", interfaceUniqueId);
@@ -401,7 +371,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
InterfaceDefinition interfaceDefinition = interfaceDefRes.left().value();
if (true == interfaces.containsKey(interfaceName)) {
- log.debug("The interface {} was already defined in derived resource. add not overriden operations", interfaceName);
+ log.debug("The interface {} was already defined in dervied resource. add not overriden operations", interfaceName);
InterfaceDefinition existInterface = interfaces.get(interfaceName);
addMissingOperationsToInterface(interfaceDefinition, existInterface);
} else {
@@ -414,17 +384,15 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
return TitanOperationStatus.OK;
}
- public TitanOperationStatus findAllInterfacesRecursively(String resourceId,
- Map<String, InterfaceDefinition> interfaces) {
+ public TitanOperationStatus findAllInterfacesRecursively(String resourceId, Map<String, InterfaceDefinition> interfaces) {
TitanOperationStatus findAllInterfacesNotRecursively = findAllInterfacesNotRecursively(resourceId, interfaces);
if (!findAllInterfacesNotRecursively.equals(TitanOperationStatus.OK)) {
- log.error("failed to get interfaces for resource {}. Status is {}", resourceId, findAllInterfacesNotRecursively);
+ log.error("failed to get interfaces for resource {}. status is {}", resourceId, findAllInterfacesNotRecursively);
}
- Either<ImmutablePair<ResourceMetadataData, GraphEdge>, TitanOperationStatus> parentNodes = titanGenericDao
- .getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Resource), resourceId,
- GraphEdgeLabels.DERIVED_FROM, NodeTypeEnum.Resource, ResourceMetadataData.class);
+ Either<ImmutablePair<ResourceMetadataData, GraphEdge>, TitanOperationStatus> parentNodes = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Resource), resourceId, GraphEdgeLabels.DERIVED_FROM, NodeTypeEnum.Resource,
+ ResourceMetadataData.class);
if (parentNodes.isRight()) {
TitanOperationStatus parentNodesStatus = parentNodes.right().value();
@@ -432,7 +400,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
log.debug("Finish to lookup for parnet interfaces");
return TitanOperationStatus.OK;
} else {
- log.error("Failed to find parent interfaces of resource {}. Status is {}", resourceId, parentNodesStatus);
+ log.error("Failed to find parent interfaces of resource {}. status is {}", resourceId, parentNodesStatus);
return parentNodesStatus;
}
}
@@ -448,8 +416,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
return TitanOperationStatus.OK;
}
- private Either<String, TitanOperationStatus> getPropertyValueFromEdge(GraphEdge edge,
- GraphPropertiesDictionary property) {
+ private Either<String, TitanOperationStatus> getPropertyValueFromEdge(GraphEdge edge, GraphPropertiesDictionary property) {
Map<String, Object> edgeProps = edge.getProperties();
String interfaceName = null;
if (edgeProps != null) {
@@ -469,9 +436,8 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
InterfaceDefinition interfaceDefinition = new InterfaceDefinition(interfaceData.getInterfaceDataDefinition());
String interfaceId = interfaceData.getUniqueId();
- Either<List<ImmutablePair<OperationData, GraphEdge>>, TitanOperationStatus> operationsRes = titanGenericDao
- .getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), interfaceId,
- GraphEdgeLabels.INTERFACE_OPERATION, NodeTypeEnum.InterfaceOperation, OperationData.class);
+ Either<List<ImmutablePair<OperationData, GraphEdge>>, TitanOperationStatus> operationsRes = titanGenericDao.getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), interfaceId, GraphEdgeLabels.INTERFACE_OPERATION,
+ NodeTypeEnum.InterfaceOperation, OperationData.class);
if (operationsRes.isRight()) {
TitanOperationStatus status = operationsRes.right().value();
@@ -486,8 +452,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
if (operationList != null && !operationList.isEmpty()) {
for (ImmutablePair<OperationData, GraphEdge> operationPair : operationList) {
Operation operation = new Operation(operationPair.getKey().getOperationDataDefinition());
- Either<String, TitanOperationStatus> operationNameRes = getPropertyValueFromEdge(
- operationPair.getValue(), GraphPropertiesDictionary.NAME);
+ Either<String, TitanOperationStatus> operationNameRes = getPropertyValueFromEdge(operationPair.getValue(), GraphPropertiesDictionary.NAME);
if (operationNameRes.isRight()) {
log.error("The operation name is missing on the edge of operation {}", operationPair.getKey().getUniqueId());
return Either.right(operationNameRes.right().value());
@@ -504,11 +469,9 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
private StorageOperationStatus findOperationImplementation(Operation operation) {
String operationId = operation.getUniqueId();
- Either<Map<String, ArtifactDefinition>, StorageOperationStatus> artifactsRes = artifactOperation
- .getArtifacts(operationId, NodeTypeEnum.InterfaceOperation, true);
+ Either<Map<String, ArtifactDefinition>, StorageOperationStatus> artifactsRes = artifactOperation.getArtifacts(operationId, NodeTypeEnum.InterfaceOperation, true);
if (artifactsRes.isRight() || artifactsRes.left().value() == null) {
- log.error("failed to get artifact from graph for operation id {}. status is {}", operationId,
- artifactsRes.right().value());
+ log.error("failed to get artifact from graph for operation id {}. status is {}", operationId, artifactsRes.right().value());
return artifactsRes.right().value();
} else {
Map<String, ArtifactDefinition> artifacts = artifactsRes.left().value();
@@ -521,10 +484,9 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
return StorageOperationStatus.OK;
}
- private StorageOperationStatus addMissingOperationsToInterface(InterfaceDefinition interfaceDefinition,
- InterfaceDefinition existInterface) {
- Map<String, Operation> existOperations = existInterface.getOperations();
- Map<String, Operation> operations = interfaceDefinition.getOperations();
+ private StorageOperationStatus addMissingOperationsToInterface(InterfaceDefinition interfaceDefinition, InterfaceDefinition existInterface) {
+ Map<String, Operation> existOperations = existInterface.getOperationsMap();
+ Map<String, Operation> operations = interfaceDefinition.getOperationsMap();
if (operations != null && !operations.isEmpty()) {
Set<Entry<String, Operation>> operationsSet = operations.entrySet();
for (Entry<String, Operation> operation : operationsSet) {
@@ -537,29 +499,22 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
}
@Override
- public Either<Operation, StorageOperationStatus> updateInterfaceOperation(String resourceId, String interfaceName,
- String operationName, Operation interf) {
+ public Either<Operation, StorageOperationStatus> updateInterfaceOperation(String resourceId, String interfaceName, String operationName, Operation interf) {
return updateInterfaceOperation(resourceId, interfaceName, operationName, interf, false);
}
@Override
- public Either<Operation, StorageOperationStatus> updateInterfaceOperation(String resourceId, String interfaceName,
- String operationName, Operation operation, boolean inTransaction) {
- Either<Operation, StorageOperationStatus> status = updateOperationOnGraph(operation, resourceId, interfaceName,
- operationName);
+ public Either<Operation, StorageOperationStatus> updateInterfaceOperation(String resourceId, String interfaceName, String operationName, Operation operation, boolean inTransaction) {
+ Either<Operation, StorageOperationStatus> status = updateOperationOnGraph(operation, resourceId, interfaceName, operationName);
/*
- * if (status.isRight()) { if (false == inTransaction) {
- * titanGenericDao.rollback(); } log.error("Failed to update operation "
- * + operationName + " of interfaceName " + interfaceName +
- * " of resource" + resourceId); return Either.right(DaoStatusConverter
- * .convertTitanStatusToStorageStatus(status.right().value())); } else {
- * if (false == inTransaction) { titanGenericDao.commit(); }
- * OperationData operationData = status.left().value();
+ * if (status.isRight()) { if (false == inTransaction) { titanGenericDao.rollback(); }
+ * log.error("Failed to update operation {} of interfaceName {} of resource {}", operationName, interfaceName, resourceId);
+ * return
+ * Either.right(DaoStatusConverter .convertTitanStatusToStorageStatus(status.right().value())); } else { if (false == inTransaction) { titanGenericDao.commit(); } OperationData operationData = status.left().value();
*
- * Operation operationDefResult =
- * convertOperationDataToOperation(operationData);
+ * Operation operationDefResult = convertOperationDataToOperation(operationData);
*
*
* log.debug("The returned OperationDefintion is {}", operationDefResult); return Either.left(operationDefResult); }
@@ -567,26 +522,16 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
return status;
}
- private Either<Operation, StorageOperationStatus> updateOperationOnGraph(Operation operation, String resourceId,
- String interfaceName, String operationName) {
+ private Either<Operation, StorageOperationStatus> updateOperationOnGraph(Operation operation, String resourceId, String interfaceName, String operationName) {
- Either<List<ImmutablePair<InterfaceData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao
- .getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), resourceId,
- GraphEdgeLabels.INTERFACE, NodeTypeEnum.Interface, InterfaceData.class);
+ Either<List<ImmutablePair<InterfaceData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao.getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), resourceId, GraphEdgeLabels.INTERFACE, NodeTypeEnum.Interface,
+ InterfaceData.class);
if (childrenNodes.isRight()) {
/*
- * InterfaceDefinition intDef = new InterfaceDefinition();
- * intDef.setType(interfaceName); Map<String, Operation> opMap = new
- * HashMap<String, Operation>(); opMap.put(operationName,
- * operation); intDef.setOperations(opMap);
- * Either<InterfaceDefinition, StorageOperationStatus> statusRes =
- * this .createInterfaceOnResource(intDef, resourceId,
- * interfaceName, true); if (statusRes.isRight()) return
- * Either.right(statusRes.right().value()); else {
- * InterfaceDefinition newDef = statusRes.left().value(); Operation
- * res = newDef.getOperations().get(operationName); return
- * Either.left(res); }
+ * InterfaceDefinition intDef = new InterfaceDefinition(); intDef.setType(interfaceName); Map<String, Operation> opMap = new HashMap<String, Operation>(); opMap.put(operationName, operation); intDef.setOperations(opMap);
+ * Either<InterfaceDefinition, StorageOperationStatus> statusRes = this .createInterfaceOnResource(intDef, resourceId, interfaceName, true); if (statusRes.isRight()) return Either.right(statusRes.right().value()); else {
+ * InterfaceDefinition newDef = statusRes.left().value(); Operation res = newDef.getOperations().get(operationName); return Either.left(res); }
*/
return updateOperationFromParentNode(operation, resourceId, interfaceName, operationName);
@@ -597,8 +542,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
}
- private Either<Operation, StorageOperationStatus> updateExistingOperation(String resourceId, Operation operation,
- String interfaceName, String operationName,
+ private Either<Operation, StorageOperationStatus> updateExistingOperation(String resourceId, Operation operation, String interfaceName, String operationName,
Either<List<ImmutablePair<InterfaceData, GraphEdge>>, TitanOperationStatus> childrenNodes) {
Operation newOperation = null;
StorageOperationStatus storageOperationStatus = StorageOperationStatus.GENERAL_ERROR;
@@ -610,14 +554,11 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
InterfaceData interfaceData = interfaceDataNode.getKey();
if (interfaceEdgeProp.get(GraphPropertiesDictionary.NAME.getProperty()).equals(interfaceName)) {
- Either<List<ImmutablePair<OperationData, GraphEdge>>, TitanOperationStatus> operationRes = titanGenericDao
- .getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(),
- (String) interfaceDataNode.getLeft().getUniqueId(), GraphEdgeLabels.INTERFACE_OPERATION,
- NodeTypeEnum.InterfaceOperation, OperationData.class);
+ Either<List<ImmutablePair<OperationData, GraphEdge>>, TitanOperationStatus> operationRes = titanGenericDao.getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), (String) interfaceDataNode.getLeft().getUniqueId(),
+ GraphEdgeLabels.INTERFACE_OPERATION, NodeTypeEnum.InterfaceOperation, OperationData.class);
if (operationRes.isRight()) {
- log.error("Failed to find operation {} on interface {}", operationName, interfaceName);
- return Either
- .right(DaoStatusConverter.convertTitanStatusToStorageStatus(operationRes.right().value()));
+ log.error("Failed to find operation {} on interface {}", operationName, interfaceName);
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(operationRes.right().value()));
} else {
List<ImmutablePair<OperationData, GraphEdge>> operations = operationRes.left().value();
for (ImmutablePair<OperationData, GraphEdge> operationPairEdge : operations) {
@@ -625,25 +566,18 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
OperationData opData = operationPairEdge.getLeft();
Map<String, Object> opEdgeProp = opEdge.getProperties();
if (opEdgeProp.get(GraphPropertiesDictionary.NAME.getProperty()).equals(operationName)) {
- ArtifactDefinition artifact = operation.getImplementation();
- Either<ImmutablePair<ArtifactData, GraphEdge>, TitanOperationStatus> artifactRes = titanGenericDao
- .getChild(GraphPropertiesDictionary.UNIQUE_ID.getProperty(),
- (String) opData.getUniqueId(), GraphEdgeLabels.ARTIFACT_REF,
- NodeTypeEnum.ArtifactRef, ArtifactData.class);
+ ArtifactDefinition artifact = operation.getImplementationArtifact();
+ Either<ImmutablePair<ArtifactData, GraphEdge>, TitanOperationStatus> artifactRes = titanGenericDao.getChild(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), (String) opData.getUniqueId(), GraphEdgeLabels.ARTIFACT_REF,
+ NodeTypeEnum.ArtifactRef, ArtifactData.class);
Either<ArtifactDefinition, StorageOperationStatus> artStatus;
if (artifactRes.isRight()) {
- artStatus = artifactOperation.addArifactToComponent(artifact,
- (String) operationPairEdge.getLeft().getUniqueId(),
- NodeTypeEnum.InterfaceOperation, true, true);
+ artStatus = artifactOperation.addArifactToComponent(artifact, (String) operationPairEdge.getLeft().getUniqueId(), NodeTypeEnum.InterfaceOperation, true, true);
} else {
- artStatus = artifactOperation.updateArifactOnResource(artifact,
- (String) operationPairEdge.getLeft().getUniqueId(),
- (String) artifactRes.left().value().getLeft().getUniqueId(),
- NodeTypeEnum.InterfaceOperation, true);
+ artStatus = artifactOperation.updateArifactOnResource(artifact, (String) operationPairEdge.getLeft().getUniqueId(), (String) artifactRes.left().value().getLeft().getUniqueId(), NodeTypeEnum.InterfaceOperation, true);
}
if (artStatus.isRight()) {
titanGenericDao.rollback();
- log.error("Failed to add artifact {}", operationName, interfaceName);
+ log.error("Failed to add artifact {} to interface {}", operationName, interfaceName);
return Either.right(artStatus.right().value());
} else {
newOperation = this.convertOperationDataToOperation(opData);
@@ -655,23 +589,18 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
}
if (newOperation == null) {
- Either<InterfaceData, TitanOperationStatus> parentInterfaceStatus = findInterfaceOnParentNode(
- resourceId, interfaceName);
+ Either<InterfaceData, TitanOperationStatus> parentInterfaceStatus = findInterfaceOnParentNode(resourceId, interfaceName);
if (parentInterfaceStatus.isRight()) {
log.debug("Interface {} not exist", interfaceName);
- return Either.right(DaoStatusConverter
- .convertTitanStatusToStorageStatus(parentInterfaceStatus.right().value()));
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(parentInterfaceStatus.right().value()));
}
InterfaceData parentInterfaceData = parentInterfaceStatus.left().value();
- Either<List<ImmutablePair<OperationData, GraphEdge>>, TitanOperationStatus> opRes = titanGenericDao
- .getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(),
- (String) parentInterfaceData.getUniqueId(), GraphEdgeLabels.INTERFACE_OPERATION,
- NodeTypeEnum.InterfaceOperation, OperationData.class);
+ Either<List<ImmutablePair<OperationData, GraphEdge>>, TitanOperationStatus> opRes = titanGenericDao.getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), (String) parentInterfaceData.getUniqueId(),
+ GraphEdgeLabels.INTERFACE_OPERATION, NodeTypeEnum.InterfaceOperation, OperationData.class);
if (opRes.isRight()) {
- log.error("Failed to find operation {} on interface", operationName, interfaceName);
- return Either.right(
- DaoStatusConverter.convertTitanStatusToStorageStatus(operationRes.right().value()));
+ log.error("Failed to find operation {} on interface {}", operationName, interfaceName);
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(operationRes.right().value()));
} else {
List<ImmutablePair<OperationData, GraphEdge>> parentOperations = opRes.left().value();
@@ -679,10 +608,8 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
GraphEdge opEdge = operationPairEdge.getRight();
OperationData opData = operationPairEdge.getLeft();
Map<String, Object> opEdgeProp = opEdge.getProperties();
- if (opEdgeProp.get(GraphPropertiesDictionary.NAME.getProperty())
- .equals(operationName)) {
- return copyAndCreateNewOperation(operation, interfaceName, operationName, null,
- interfaceData, operationRes, opData);
+ if (opEdgeProp.get(GraphPropertiesDictionary.NAME.getProperty()).equals(operationName)) {
+ return copyAndCreateNewOperation(operation, interfaceName, operationName, null, interfaceData, operationRes, opData);
}
}
}
@@ -703,26 +630,20 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
return Either.left(newOperation);
}
- private Either<Operation, StorageOperationStatus> copyAndCreateNewOperation(Operation operation,
- String interfaceName, String operationName, Operation newOperation, InterfaceData interfaceData,
- Either<List<ImmutablePair<OperationData, GraphEdge>>, TitanOperationStatus> operationRes,
- OperationData opData) {
+ private Either<Operation, StorageOperationStatus> copyAndCreateNewOperation(Operation operation, String interfaceName, String operationName, Operation newOperation, InterfaceData interfaceData,
+ Either<List<ImmutablePair<OperationData, GraphEdge>>, TitanOperationStatus> operationRes, OperationData opData) {
OperationDataDefinition opDataInfo = opData.getOperationDataDefinition();
OperationDataDefinition newOperationInfo = new OperationDataDefinition(opDataInfo);
- newOperationInfo.setUniqueId(
- UniqueIdBuilder.buildPropertyUniqueId(interfaceData.getUniqueId(), operationName.toLowerCase()));
+ newOperationInfo.setUniqueId(UniqueIdBuilder.buildPropertyUniqueId(interfaceData.getUniqueId(), operationName.toLowerCase()));
OperationData newopData = new OperationData(newOperationInfo);
- Either<OperationData, TitanOperationStatus> operationStatus = createOperationNodeAndRelation(operationName,
- newopData, interfaceData);
+ Either<OperationData, TitanOperationStatus> operationStatus = createOperationNodeAndRelation(operationName, newopData, interfaceData);
if (operationStatus.isRight()) {
- log.error("Failed to create operation {} on interface {}", operationName, interfaceName);
+ log.error("Failed to create operation {} on interface {}", operationName, interfaceName);
return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(operationRes.right().value()));
}
- ArtifactDefinition artifact = operation.getImplementation();
+ ArtifactDefinition artifact = operation.getImplementationArtifact();
if (artifact != null) {
- Either<ArtifactDefinition, StorageOperationStatus> artStatus = artifactOperation.addArifactToComponent(
- artifact, (String) operationStatus.left().value().getUniqueId(), NodeTypeEnum.InterfaceOperation,
- true, true);
+ Either<ArtifactDefinition, StorageOperationStatus> artStatus = artifactOperation.addArifactToComponent(artifact, (String) operationStatus.left().value().getUniqueId(), NodeTypeEnum.InterfaceOperation, true, true);
if (artStatus.isRight()) {
titanGenericDao.rollback();
log.error("Failed to add artifact {} to interface {}", operationName, interfaceName);
@@ -735,17 +656,14 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
return Either.left(newOperation);
}
- private Either<Operation, StorageOperationStatus> updateOperationFromParentNode(Operation operation,
- String resourceId, String interfaceName, String operationName) {
+ private Either<Operation, StorageOperationStatus> updateOperationFromParentNode(Operation operation, String resourceId, String interfaceName, String operationName) {
// Operation newOperation = null;
ResourceMetadataData resourceData = new ResourceMetadataData();
resourceData.getMetadataDataDefinition().setUniqueId(resourceId);
- Either<InterfaceData, TitanOperationStatus> parentInterfaceStatus = findInterfaceOnParentNode(resourceId,
- interfaceName);
+ Either<InterfaceData, TitanOperationStatus> parentInterfaceStatus = findInterfaceOnParentNode(resourceId, interfaceName);
if (parentInterfaceStatus.isRight()) {
log.debug("Interface {} not exist", interfaceName);
- return Either
- .right(DaoStatusConverter.convertTitanStatusToStorageStatus(parentInterfaceStatus.right().value()));
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(parentInterfaceStatus.right().value()));
}
InterfaceData interfaceData = parentInterfaceStatus.left().value();
@@ -756,28 +674,24 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
newInterfaceInfo.setUniqueId(UniqueIdBuilder.buildPropertyUniqueId(resourceId, interfaceNameSplitted));
InterfaceData updatedInterfaceData = new InterfaceData(newInterfaceInfo);
- Either<InterfaceData, TitanOperationStatus> createStatus = createInterfaceNodeAndRelation(interfaceName,
- resourceId, updatedInterfaceData, resourceData);
+ Either<InterfaceData, TitanOperationStatus> createStatus = createInterfaceNodeAndRelation(interfaceName, resourceId, updatedInterfaceData, resourceData);
if (createStatus.isRight()) {
- log.debug("failed to create interface node {} on resource {}", interfaceName, resourceId);
+ log.debug("failed to create interface node {} on resource {}", interfaceName, resourceId);
return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(createStatus.right().value()));
}
InterfaceData newInterfaceNode = createStatus.left().value();
- Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(newInterfaceNode,
- interfaceData, GraphEdgeLabels.DERIVED_FROM, null);
+ Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(newInterfaceNode, interfaceData, GraphEdgeLabels.DERIVED_FROM, null);
if (createRelResult.isRight()) {
TitanOperationStatus operationStatus = createRelResult.right().value();
- log.error("Failed to associate interface {} to interface {} in graph. Status is {}", interfaceData.getUniqueId(), newInterfaceNode.getUniqueId(), operationStatus);
+ log.error("Failed to associate interface {} to interface {} in graph. status is {}", interfaceData.getUniqueId(), newInterfaceNode.getUniqueId(), operationStatus);
return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(operationStatus));
}
- Either<List<ImmutablePair<OperationData, GraphEdge>>, TitanOperationStatus> operationRes = titanGenericDao
- .getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(),
- (String) interfaceData.getUniqueId(), GraphEdgeLabels.INTERFACE_OPERATION,
- NodeTypeEnum.InterfaceOperation, OperationData.class);
+ Either<List<ImmutablePair<OperationData, GraphEdge>>, TitanOperationStatus> operationRes = titanGenericDao.getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), (String) interfaceData.getUniqueId(),
+ GraphEdgeLabels.INTERFACE_OPERATION, NodeTypeEnum.InterfaceOperation, OperationData.class);
if (operationRes.isRight()) {
- log.error("Failed to find operation {} on interface {}", operationName, interfaceName);
+ log.error("Failed to find operation {} on interface {}", operationName, interfaceName);
return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(operationRes.right().value()));
} else {
@@ -802,25 +716,20 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
// return Either.left(newOperation);
}
- private Either<InterfaceData, TitanOperationStatus> findInterfaceOnParentNode(String resourceId,
- String interfaceName) {
+ private Either<InterfaceData, TitanOperationStatus> findInterfaceOnParentNode(String resourceId, String interfaceName) {
- Either<ImmutablePair<ResourceMetadataData, GraphEdge>, TitanOperationStatus> parentRes = titanGenericDao
- .getChild(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), resourceId, GraphEdgeLabels.DERIVED_FROM,
- NodeTypeEnum.Resource, ResourceMetadataData.class);
+ Either<ImmutablePair<ResourceMetadataData, GraphEdge>, TitanOperationStatus> parentRes = titanGenericDao.getChild(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), resourceId, GraphEdgeLabels.DERIVED_FROM, NodeTypeEnum.Resource,
+ ResourceMetadataData.class);
if (parentRes.isRight()) {
- log.debug("interface {} not found", interfaceName);
+ log.debug("interface {} not found ", interfaceName);
return Either.right(parentRes.right().value());
}
ImmutablePair<ResourceMetadataData, GraphEdge> parenNode = parentRes.left().value();
- Either<List<ImmutablePair<InterfaceData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao
- .getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(),
- parenNode.getKey().getMetadataDataDefinition().getUniqueId(), GraphEdgeLabels.INTERFACE,
- NodeTypeEnum.Interface, InterfaceData.class);
+ Either<List<ImmutablePair<InterfaceData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao.getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), parenNode.getKey().getMetadataDataDefinition().getUniqueId(),
+ GraphEdgeLabels.INTERFACE, NodeTypeEnum.Interface, InterfaceData.class);
if (childrenNodes.isRight()) {
- return findInterfaceOnParentNode(parenNode.getKey().getMetadataDataDefinition().getUniqueId(),
- interfaceName);
+ return findInterfaceOnParentNode(parenNode.getKey().getMetadataDataDefinition().getUniqueId(), interfaceName);
} else {
for (ImmutablePair<InterfaceData, GraphEdge> interfaceDataNode : childrenNodes.left().value()) {
@@ -833,15 +742,13 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
}
}
- return findInterfaceOnParentNode(parenNode.getKey().getMetadataDataDefinition().getUniqueId(),
- interfaceName);
+ return findInterfaceOnParentNode(parenNode.getKey().getMetadataDataDefinition().getUniqueId(), interfaceName);
}
}
@Override
- public Either<InterfaceDefinition, StorageOperationStatus> createInterfaceOnResource(InterfaceDefinition interf,
- String resourceId, String interfaceName, boolean failIfExist, boolean inTransaction) {
+ public Either<InterfaceDefinition, StorageOperationStatus> createInterfaceOnResource(InterfaceDefinition interf, String resourceId, String interfaceName, boolean failIfExist, boolean inTransaction) {
Either<InterfaceData, TitanOperationStatus> status = addInterfaceToGraph(interf, interfaceName, resourceId);
@@ -857,15 +764,14 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
InterfaceData interfaceData = status.left().value();
InterfaceDefinition interfaceDefResult = convertInterfaceDataToInterfaceDefinition(interfaceData);
- Map<String, Operation> operations = interf.getOperations();
+ Map<String, Operation> operations = interf.getOperationsMap();
if (operations != null && !operations.isEmpty()) {
Set<String> opNames = operations.keySet();
Map<String, Operation> newOperations = new HashMap<String, Operation>();
for (String operationName : opNames) {
Operation op = operations.get(operationName);
- Either<OperationData, TitanOperationStatus> opStatus = addOperationToGraph(interf, operationName,
- op, interfaceData);
+ Either<OperationData, TitanOperationStatus> opStatus = addOperationToGraph(interf, operationName, op, interfaceData);
if (status.isRight()) {
titanGenericDao.rollback();
log.error("Failed to add operation {} to interface {}", operationName, interfaceName);
@@ -876,11 +782,9 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
OperationData opData = opStatus.left().value();
Operation newOperation = this.convertOperationDataToOperation(opData);
- ArtifactDefinition art = op.getImplementation();
+ ArtifactDefinition art = op.getImplementationArtifact();
if (art != null) {
- Either<ArtifactDefinition, StorageOperationStatus> artRes = artifactOperation
- .addArifactToComponent(art, (String) opData.getUniqueId(),
- NodeTypeEnum.InterfaceOperation, failIfExist, true);
+ Either<ArtifactDefinition, StorageOperationStatus> artRes = artifactOperation.addArifactToComponent(art, (String) opData.getUniqueId(), NodeTypeEnum.InterfaceOperation, failIfExist, true);
if (artRes.isRight()) {
titanGenericDao.rollback();
log.error("Failed to add artifact {} to interface {}", operationName, interfaceName);
@@ -891,7 +795,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
}
}
}
- interfaceDefResult.setOperations(newOperations);
+ interfaceDefResult.setOperationsMap(newOperations);
}
log.debug("The returned InterfaceDefintion is {}", interfaceDefResult);
return Either.left(interfaceDefResult);
@@ -900,11 +804,9 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
}
@Override
- public StorageOperationStatus createInterfaceOnResource(InterfaceDefinition interf, String resourceId,
- String interfaceName, boolean failIfExist, boolean inTransaction, TitanVertex metadataVertex) {
+ public StorageOperationStatus createInterfaceOnResource(InterfaceDefinition interf, String resourceId, String interfaceName, boolean failIfExist, boolean inTransaction, TitanVertex metadataVertex) {
- Either<TitanVertex, TitanOperationStatus> interfaceResult = addInterfaceToGraph(interf, interfaceName,
- resourceId, metadataVertex);
+ Either<TitanVertex, TitanOperationStatus> interfaceResult = addInterfaceToGraph(interf, interfaceName, resourceId, metadataVertex);
if (interfaceResult.isRight()) {
if (false == inTransaction) {
@@ -921,14 +823,13 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
// InterfaceDefinition interfaceDefResult =
// convertInterfaceDataToInterfaceDefinition(interfaceData);
- Map<String, Operation> operations = interf.getOperations();
+ Map<String, Operation> operations = interf.getOperationsMap();
if (operations != null && !operations.isEmpty()) {
Set<String> opNames = operations.keySet();
for (String operationName : opNames) {
Operation op = operations.get(operationName);
- Either<TitanVertex, TitanOperationStatus> operationResult = addOperationToGraph(interf,
- operationName, op, interfaceVertex);
+ Either<TitanVertex, TitanOperationStatus> operationResult = addOperationToGraph(interf, operationName, op, interfaceVertex);
if (operationResult.isRight()) {
if (false == inTransaction) {
titanGenericDao.rollback();
@@ -941,12 +842,10 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
}
TitanVertex operationVertex = operationResult.left().value();
- ArtifactDefinition art = op.getImplementation();
+ ArtifactDefinition art = op.getImplementationArtifact();
if (art != null) {
- String opId = (String) titanGenericDao.getProperty(operationVertex,
- GraphPropertiesDictionary.UNIQUE_ID.getProperty());
- StorageOperationStatus artRes = artifactOperation.addArifactToComponent(art, opId,
- NodeTypeEnum.InterfaceOperation, failIfExist, operationVertex);
+ String opId = (String) titanGenericDao.getProperty(operationVertex, GraphPropertiesDictionary.UNIQUE_ID.getProperty());
+ StorageOperationStatus artRes = artifactOperation.addArifactToComponent(art, opId, NodeTypeEnum.InterfaceOperation, failIfExist, operationVertex);
if (!artRes.equals(StorageOperationStatus.OK)) {
if (false == inTransaction) {
titanGenericDao.rollback();
@@ -964,14 +863,12 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
}
@Override
- public Either<Operation, StorageOperationStatus> deleteInterfaceOperation(String resourceId, String interfaceName,
- String operationId) {
+ public Either<Operation, StorageOperationStatus> deleteInterfaceOperation(String resourceId, String interfaceName, String operationId) {
return deleteInterfaceOperation(resourceId, interfaceName, operationId, false);
}
@Override
- public Either<Operation, StorageOperationStatus> deleteInterfaceOperation(String resourceId, String interfaceName,
- String operationId, boolean inTransaction) {
+ public Either<Operation, StorageOperationStatus> deleteInterfaceOperation(String resourceId, String interfaceName, String operationId, boolean inTransaction) {
Either<Operation, TitanOperationStatus> status = removeOperationOnGraph(resourceId, interfaceName, operationId);
if (status.isRight()) {
@@ -993,17 +890,15 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
}
@Override
- public Either<InterfaceDefinition, StorageOperationStatus> deleteInterfaceOfResourceOnGraph(String resourceId,
- InterfaceDefinition interfaceDef, boolean inTransaction) {
+ public Either<InterfaceDefinition, StorageOperationStatus> deleteInterfaceOfResourceOnGraph(String resourceId, InterfaceDefinition interfaceDef, boolean inTransaction) {
- Map<String, Operation> operations = interfaceDef.getOperations();
+ Map<String, Operation> operations = interfaceDef.getOperationsMap();
String interfaceNameSplitted = getShortInterfaceName(interfaceDef);
if (operations != null) {
for (Entry<String, Operation> entry : operations.entrySet()) {
Operation op = entry.getValue();
- Either<Operation, StorageOperationStatus> removeOperationFromResource = deleteInterfaceOperation(
- resourceId, interfaceNameSplitted, op.getUniqueId(), true);
+ Either<Operation, StorageOperationStatus> removeOperationFromResource = deleteInterfaceOperation(resourceId, interfaceNameSplitted, op.getUniqueId(), true);
if (removeOperationFromResource.isRight()) {
if (false == inTransaction) {
titanGenericDao.rollback();
@@ -1017,13 +912,11 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
}
- private Either<Operation, TitanOperationStatus> removeOperationOnGraph(String resourceId, String interfaceName,
- String operationId) {
+ private Either<Operation, TitanOperationStatus> removeOperationOnGraph(String resourceId, String interfaceName, String operationId) {
log.debug("Before deleting operation from graph {}", operationId);
- Either<List<ImmutablePair<InterfaceData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao
- .getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), resourceId,
- GraphEdgeLabels.INTERFACE, NodeTypeEnum.Interface, InterfaceData.class);
+ Either<List<ImmutablePair<InterfaceData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao.getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), resourceId, GraphEdgeLabels.INTERFACE, NodeTypeEnum.Interface,
+ InterfaceData.class);
if (childrenNodes.isRight()) {
log.debug("Not found interface {}", interfaceName);
@@ -1038,12 +931,10 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
String interfaceSplitedName = splitType(interfaceName);
if (interfaceEdgeProp.get(GraphPropertiesDictionary.NAME.getProperty()).equals(interfaceSplitedName)) {
- Either<List<ImmutablePair<OperationData, GraphEdge>>, TitanOperationStatus> operationRes = titanGenericDao
- .getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(),
- (String) interfaceDataNode.getLeft().getUniqueId(), GraphEdgeLabels.INTERFACE_OPERATION,
- NodeTypeEnum.InterfaceOperation, OperationData.class);
+ Either<List<ImmutablePair<OperationData, GraphEdge>>, TitanOperationStatus> operationRes = titanGenericDao.getChildrenNodes(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), (String) interfaceDataNode.getLeft().getUniqueId(),
+ GraphEdgeLabels.INTERFACE_OPERATION, NodeTypeEnum.InterfaceOperation, OperationData.class);
if (operationRes.isRight()) {
- log.error("Failed to find operation {}", operationId, interfaceName);
+ log.error("Failed to find operation {} on interface {}", operationId, interfaceName);
return Either.right(operationRes.right().value());
}
List<ImmutablePair<OperationData, GraphEdge>> operations = operationRes.left().value();
@@ -1053,24 +944,18 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
opData = operationPairEdge.getLeft();
if (opData.getUniqueId().equals(operationId)) {
- Either<ImmutablePair<ArtifactData, GraphEdge>, TitanOperationStatus> artifactRes = titanGenericDao
- .getChild(GraphPropertiesDictionary.UNIQUE_ID.getProperty(),
- (String) operationPairEdge.getLeft().getUniqueId(),
- GraphEdgeLabels.ARTIFACT_REF, NodeTypeEnum.ArtifactRef, ArtifactData.class);
+ Either<ImmutablePair<ArtifactData, GraphEdge>, TitanOperationStatus> artifactRes = titanGenericDao.getChild(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), (String) operationPairEdge.getLeft().getUniqueId(),
+ GraphEdgeLabels.ARTIFACT_REF, NodeTypeEnum.ArtifactRef, ArtifactData.class);
Either<ArtifactDefinition, StorageOperationStatus> arStatus = null;
if (artifactRes.isLeft()) {
ArtifactData arData = artifactRes.left().value().getKey();
- arStatus = artifactOperation.removeArifactFromResource(
- (String) operationPairEdge.getLeft().getUniqueId(), (String) arData.getUniqueId(),
- NodeTypeEnum.InterfaceOperation, true, true);
+ arStatus = artifactOperation.removeArifactFromResource((String) operationPairEdge.getLeft().getUniqueId(), (String) arData.getUniqueId(), NodeTypeEnum.InterfaceOperation, true, true);
if (arStatus.isRight()) {
log.debug("failed to delete artifact {}", arData.getUniqueId());
return Either.right(TitanOperationStatus.INVALID_ID);
}
}
- Either<OperationData, TitanOperationStatus> deleteOpStatus = titanGenericDao.deleteNode(
- UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.InterfaceOperation), opData.getUniqueId(),
- OperationData.class);
+ Either<OperationData, TitanOperationStatus> deleteOpStatus = titanGenericDao.deleteNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.InterfaceOperation), opData.getUniqueId(), OperationData.class);
if (deleteOpStatus.isRight()) {
log.debug("failed to delete operation {}", opData.getUniqueId());
return Either.right(TitanOperationStatus.INVALID_ID);
@@ -1081,9 +966,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
operation.setImplementation(arStatus.left().value());
}
if (operations.size() <= 1) {
- Either<InterfaceData, TitanOperationStatus> deleteInterfaceStatus = titanGenericDao
- .deleteNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Interface),
- interfaceDataNode.left.getUniqueId(), InterfaceData.class);
+ Either<InterfaceData, TitanOperationStatus> deleteInterfaceStatus = titanGenericDao.deleteNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Interface), interfaceDataNode.left.getUniqueId(), InterfaceData.class);
if (deleteInterfaceStatus.isRight()) {
log.debug("failed to delete interface {}", interfaceDataNode.left.getUniqueId());
return Either.right(TitanOperationStatus.INVALID_ID);
@@ -1100,8 +983,6 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
log.debug("Not found operation {}", interfaceName);
return Either.right(TitanOperationStatus.INVALID_ID);
- // }
-
}
private String splitType(String interfaceName) {
@@ -1131,16 +1012,14 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
}
@Override
- public Either<InterfaceDefinition, StorageOperationStatus> createInterfaceType(InterfaceDefinition interf,
- boolean inTransaction) {
+ public Either<InterfaceDefinition, StorageOperationStatus> createInterfaceType(InterfaceDefinition interf, boolean inTransaction) {
Either<InterfaceDefinition, StorageOperationStatus> result = null;
try {
InterfaceData interfaceData = new InterfaceData(interf);
interf.setUniqueId(interf.getType().toLowerCase());
- Either<InterfaceData, TitanOperationStatus> existInterface = titanGenericDao
- .getNode(interfaceData.getUniqueIdKey(), interfaceData.getUniqueId(), InterfaceData.class);
+ Either<InterfaceData, TitanOperationStatus> existInterface = titanGenericDao.getNode(interfaceData.getUniqueIdKey(), interfaceData.getUniqueId(), InterfaceData.class);
if (existInterface.isLeft()) {
// already exist
@@ -1150,32 +1029,29 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
}
log.debug("Before adding interface type to graph {}", interfaceData);
- Either<InterfaceData, TitanOperationStatus> createNodeResult = titanGenericDao.createNode(interfaceData,
- InterfaceData.class);
+ Either<InterfaceData, TitanOperationStatus> createNodeResult = titanGenericDao.createNode(interfaceData, InterfaceData.class);
log.debug("After adding property type to graph {}", interfaceData);
if (createNodeResult.isRight()) {
TitanOperationStatus operationStatus = createNodeResult.right().value();
- log.error("Failed to add interface {} to graph. Status is {}", interf.getType(), operationStatus);
+ log.error("Failed to add interface {} to graph. status is {}", interf.getType(), operationStatus);
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(operationStatus));
return result;
}
InterfaceDefinition interfaceDefResult = convertInterfaceDataToInterfaceDefinition(interfaceData);
- Map<String, Operation> operations = interf.getOperations();
+ Map<String, Operation> operations = interf.getOperationsMap();
if (operations != null && !operations.isEmpty()) {
Map<String, Operation> newOperations = new HashMap<String, Operation>();
for (Map.Entry<String, Operation> operation : operations.entrySet()) {
- Either<OperationData, TitanOperationStatus> opStatus = addOperationToGraph(interf,
- operation.getKey(), operation.getValue(), interfaceData);
+ Either<OperationData, TitanOperationStatus> opStatus = addOperationToGraph(interf, operation.getKey(), operation.getValue(), interfaceData);
if (opStatus.isRight()) {
titanGenericDao.rollback();
log.error("Failed to add operation {} to interface {}", operation.getKey(), interf.getType());
- result = Either
- .right(DaoStatusConverter.convertTitanStatusToStorageStatus(opStatus.right().value()));
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(opStatus.right().value()));
return result;
} else {
OperationData opData = opStatus.left().value();
@@ -1183,7 +1059,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
newOperations.put(operation.getKey(), newOperation);
}
}
- interfaceDefResult.setOperations(newOperations);
+ interfaceDefResult.setOperationsMap(newOperations);
}
result = Either.left(interfaceDefResult);
return result;
@@ -1203,26 +1079,22 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
@Override
public Either<InterfaceDefinition, StorageOperationStatus> getInterface(String interfaceId) {
- Either<InterfaceData, TitanOperationStatus> getResult = titanGenericDao
- .getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Interface), interfaceId, InterfaceData.class);
+ Either<InterfaceData, TitanOperationStatus> getResult = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Interface), interfaceId, InterfaceData.class);
if (getResult.isLeft()) {
InterfaceData interfaceData = getResult.left().value();
return Either.left(convertInterfaceDataToInterfaceDefinition(interfaceData));
} else {
TitanOperationStatus titanStatus = getResult.right().value();
- log.debug("Node with id {} was not found in the graph. Status: {}", interfaceId, titanStatus);
- StorageOperationStatus storageOperationStatus = DaoStatusConverter
- .convertTitanStatusToStorageStatus(titanStatus);
+ log.debug("Node with id {} was not found in the graph. status: {}", interfaceId, titanStatus);
+ StorageOperationStatus storageOperationStatus = DaoStatusConverter.convertTitanStatusToStorageStatus(titanStatus);
return Either.right(storageOperationStatus);
}
}
@Override
- public StorageOperationStatus associateInterfaceToNode(GraphNode node, InterfaceDefinition interfaceDefinition,
- TitanVertex metadataVertex) {
+ public StorageOperationStatus associateInterfaceToNode(GraphNode node, InterfaceDefinition interfaceDefinition, TitanVertex metadataVertex) {
- Either<TitanVertex, TitanOperationStatus> interfaceData = titanGenericDao.getVertexByProperty(
- UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Interface), interfaceDefinition.getUniqueId());
+ Either<TitanVertex, TitanOperationStatus> interfaceData = titanGenericDao.getVertexByProperty(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Interface), interfaceDefinition.getUniqueId());
if (interfaceData.isRight()) {
return DaoStatusConverter.convertTitanStatusToStorageStatus(interfaceData.right().value());
}
@@ -1232,8 +1104,7 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
String interfaceName = getShortInterfaceName(interfaceDefinition);
properties.put(GraphPropertiesDictionary.NAME.getProperty(), interfaceName.toLowerCase());
- TitanOperationStatus createRelation = titanGenericDao.createEdge(metadataVertex, interfaceData.left().value(),
- GraphEdgeLabels.INTERFACE, properties);
+ TitanOperationStatus createRelation = titanGenericDao.createEdge(metadataVertex, interfaceData.left().value(), GraphEdgeLabels.INTERFACE, properties);
if (!createRelation.equals(TitanOperationStatus.OK)) {
return DaoStatusConverter.convertTitanStatusToStorageStatus(createRelation);
}
@@ -1260,19 +1131,15 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
}
@Override
- public Either<Operation, StorageOperationStatus> getSpecificOperation(String resourceId, String interfaceType,
- String operationName) {
- log.trace("Getting operation, resourceId {}, interfaceType {}, operationName {}", resourceId, interfaceType,
- operationName);
- Either<Map<String, InterfaceDefinition>, StorageOperationStatus> allInterfacesOfResource = getAllInterfacesOfResource(
- resourceId, false);
- if (allInterfacesOfResource.isRight() || allInterfacesOfResource.left().value() == null
- || allInterfacesOfResource.left().value().get(interfaceType) == null) {
+ public Either<Operation, StorageOperationStatus> getSpecificOperation(String resourceId, String interfaceType, String operationName) {
+ log.trace("Getting operation, resourceId {}, interfaceType {}, operationName {}", resourceId, interfaceType, operationName);
+ Either<Map<String, InterfaceDefinition>, StorageOperationStatus> allInterfacesOfResource = getAllInterfacesOfResource(resourceId, false);
+ if (allInterfacesOfResource.isRight() || allInterfacesOfResource.left().value() == null || allInterfacesOfResource.left().value().get(interfaceType) == null) {
log.debug("Couldn't find interface definition of type {} for resource id {}", interfaceType, resourceId);
return Either.right(allInterfacesOfResource.right().value());
}
InterfaceDefinition interfaceDefinition = allInterfacesOfResource.left().value().get(interfaceType);
- Map<String, Operation> operations = interfaceDefinition.getOperations();
+ Map<String, Operation> operations = interfaceDefinition.getOperationsMap();
if (operations == null || operations.get(operationName) == null) {
log.debug("Couldn't find operation for operation name {}, interface type {}", operationName, interfaceType);
return Either.right(StorageOperationStatus.GENERAL_ERROR);
@@ -1281,24 +1148,19 @@ public class InterfaceLifecycleOperation implements IInterfaceLifecycleOperation
}
@Override
- public Either<InterfaceDefinition, StorageOperationStatus> dissociateInterfaceFromNode(GraphNode node,
- InterfaceDefinition interfaceDefinition) {
+ public Either<InterfaceDefinition, StorageOperationStatus> dissociateInterfaceFromNode(GraphNode node, InterfaceDefinition interfaceDefinition) {
- Either<InterfaceData, TitanOperationStatus> interfaceData = titanGenericDao.getNode(
- UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Interface), interfaceDefinition.getUniqueId(),
- InterfaceData.class);
+ Either<InterfaceData, TitanOperationStatus> interfaceData = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Interface), interfaceDefinition.getUniqueId(), InterfaceData.class);
if (interfaceData.isRight()) {
log.debug("Couldn't find interface {}", interfaceDefinition);
return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(interfaceData.right().value()));
}
InterfaceData value = interfaceData.left().value();
- Either<GraphRelation, TitanOperationStatus> deleteRelation = titanGenericDao.deleteRelation(node, value,
- GraphEdgeLabels.INTERFACE);
+ Either<GraphRelation, TitanOperationStatus> deleteRelation = titanGenericDao.deleteRelation(node, value, GraphEdgeLabels.INTERFACE);
if (deleteRelation.isRight()) {
TitanOperationStatus status = deleteRelation.right().value();
- log.debug("Couldn't dissociate interface between node {} to node {}. Status is {}", node.getUniqueId(),
- value.getUniqueId(), status);
+ log.debug("Couldn't dissociate interface between node {} to node {}. Status is {}", node.getUniqueId(), value.getUniqueId(), status);
return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/LifecycleOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/LifecycleOperation.java
index 863975893c..2537891bbd 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/LifecycleOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/LifecycleOperation.java
@@ -116,15 +116,12 @@ public class LifecycleOperation implements ILifecycleOperation {
}
@Override
- public Either<User, StorageOperationStatus> getComponentOwner(String resourceId, NodeTypeEnum nodeType,
- boolean inTransaction) {
+ public Either<User, StorageOperationStatus> getComponentOwner(String resourceId, NodeTypeEnum nodeType, boolean inTransaction) {
Either<User, StorageOperationStatus> result = Either.right(StorageOperationStatus.GENERAL_ERROR);
try {
- Either<ImmutablePair<UserData, GraphEdge>, TitanOperationStatus> parentNode = titanGenericDao.getParentNode(
- UniqueIdBuilder.getKeyByNodeType(nodeType), resourceId, GraphEdgeLabels.STATE, NodeTypeEnum.User,
- UserData.class);
+ Either<ImmutablePair<UserData, GraphEdge>, TitanOperationStatus> parentNode = titanGenericDao.getParentNode(UniqueIdBuilder.getKeyByNodeType(nodeType), resourceId, GraphEdgeLabels.STATE, NodeTypeEnum.User, UserData.class);
if (parentNode.isRight()) {
return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(parentNode.right().value()));
@@ -144,8 +141,7 @@ public class LifecycleOperation implements ILifecycleOperation {
}
@Override
- public Either<? extends Component, StorageOperationStatus> checkoutComponent(NodeTypeEnum nodeType,
- Component component, User modifier, User currentOwner, boolean inTransaction) {
+ public Either<? extends Component, StorageOperationStatus> checkoutComponent(NodeTypeEnum nodeType, Component component, User modifier, User currentOwner, boolean inTransaction) {
Either<? extends Component, StorageOperationStatus> result = null;
try {
@@ -153,17 +149,14 @@ public class LifecycleOperation implements ILifecycleOperation {
if (!component.getLifecycleState().equals(LifecycleStateEnum.CERTIFIED)) {
component.setHighestVersion(false);
ComponentOperation componentOperation = getComponentOperation(nodeType);
- Either<? extends Component, StorageOperationStatus> updateComponent = componentOperation
- .updateComponent(component, inTransaction, titanGenericDao, component.getClass(), nodeType);
+ Either<? extends Component, StorageOperationStatus> updateComponent = componentOperation.updateComponent(component, inTransaction, titanGenericDao, component.getClass(), nodeType);
if (updateComponent.isRight()) {
StorageOperationStatus error = updateComponent.right().value();
- log.debug("Couldn't set lifecycle for component {} to state {}, error: {}", component.getUniqueId(),
- LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, error);
+ log.debug("Couldn't set lifecycle for component {} to state {}, error: {}", component.getUniqueId(), LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, error);
return Either.right(error);
}
- StorageOperationStatus changeStateToLastState = changeStateRelation(nodeType, component.getUniqueId(),
- currentOwner, GraphEdgeLabels.STATE, GraphEdgeLabels.LAST_STATE);
+ StorageOperationStatus changeStateToLastState = changeStateRelation(nodeType, component.getUniqueId(), currentOwner, GraphEdgeLabels.STATE, GraphEdgeLabels.LAST_STATE);
if (!changeStateToLastState.equals(StorageOperationStatus.OK)) {
result = Either.right(changeStateToLastState);
return result;
@@ -173,8 +166,7 @@ public class LifecycleOperation implements ILifecycleOperation {
// clone the component
result = cloneComponentForCheckout(component, nodeType, modifier);
if (result.isRight()) {
- log.debug("Couldn't set lifecycle for component {} to state {}, error: {}", component.getUniqueId(),
- LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, result.right().value());
+ log.debug("Couldn't set lifecycle for component {} to state {}, error: {}", component.getUniqueId(), LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, result.right().value());
return result;
}
@@ -193,8 +185,7 @@ public class LifecycleOperation implements ILifecycleOperation {
return result;
}
- private Either<? extends Component, StorageOperationStatus> cloneComponentForCertified(Component component,
- User modifier, Integer majorVersion) {
+ private Either<? extends Component, StorageOperationStatus> cloneComponentForCertified(Component component, User modifier, Integer majorVersion) {
// set new version
String certifiedVersion = (majorVersion + 1) + VERSION_DELIMETER + "0";
@@ -205,15 +196,13 @@ public class LifecycleOperation implements ILifecycleOperation {
component.setHighestVersion(true);
ComponentOperation componentOperation = getComponentOperation(component.getComponentType().getNodeType());
- Either<? extends Component, StorageOperationStatus> cloneComponentResult = componentOperation
- .cloneComponent(component, certifiedVersion, LifecycleStateEnum.CERTIFIED, true);
+ Either<? extends Component, StorageOperationStatus> cloneComponentResult = componentOperation.cloneComponent(component, certifiedVersion, LifecycleStateEnum.CERTIFIED, true);
return cloneComponentResult;
}
@Override
- public Either<? extends Component, StorageOperationStatus> undoCheckout(NodeTypeEnum nodeType, Component component,
- User modifier, User currentOwner, boolean inTransaction) {
+ public Either<? extends Component, StorageOperationStatus> undoCheckout(NodeTypeEnum nodeType, Component component, User modifier, User currentOwner, boolean inTransaction) {
Either<? extends Component, StorageOperationStatus> result = null;
ComponentOperation componentOperation = getComponentOperation(nodeType);
@@ -226,8 +215,7 @@ public class LifecycleOperation implements ILifecycleOperation {
String previousVersion = versionParts[0] + VERSION_DELIMETER + minorVersion;
if (!previousVersion.equals("0.0")) {
- Either<? extends Component, StorageOperationStatus> updateOldResourceResult = updateOldComponentBeforeUndoCheckout(
- componentOperation, prevComponent, component, previousVersion, nodeType, true);
+ Either<? extends Component, StorageOperationStatus> updateOldResourceResult = updateOldComponentBeforeUndoCheckout(componentOperation, prevComponent, component, previousVersion, nodeType, true);
if (updateOldResourceResult.isRight()) {
result = updateOldResourceResult;
return result;
@@ -236,8 +224,7 @@ public class LifecycleOperation implements ILifecycleOperation {
}
// delete the component
- Either<? extends Component, StorageOperationStatus> deleteResourceResult = componentOperation
- .deleteComponent(component.getUniqueId(), true);
+ Either<? extends Component, StorageOperationStatus> deleteResourceResult = componentOperation.deleteComponent(component.getUniqueId(), true);
if (deleteResourceResult.isRight()) {
result = deleteResourceResult;
return result;
@@ -262,23 +249,19 @@ public class LifecycleOperation implements ILifecycleOperation {
}
@Override
- public Either<? extends Component, StorageOperationStatus> checkinComponent(NodeTypeEnum nodeType,
- Component component, User modifier, User owner, boolean inTransaction) {
+ public Either<? extends Component, StorageOperationStatus> checkinComponent(NodeTypeEnum nodeType, Component component, User modifier, User owner, boolean inTransaction) {
Either<? extends Component, StorageOperationStatus> result = null;
try {
- StorageOperationStatus updateCheckinInGraph = updateCheckinInGraph(nodeType, component.getUniqueId(),
- component.getLifecycleState(), modifier, owner);
+ StorageOperationStatus updateCheckinInGraph = updateCheckinInGraph(nodeType, component.getUniqueId(), component.getLifecycleState(), modifier, owner);
if (!updateCheckinInGraph.equals(StorageOperationStatus.OK)) {
- log.error("failed to update state of resource {}. status={}", component.getUniqueId(),
- updateCheckinInGraph);
+ log.error("failed to update state of resource {}. status={}", component.getUniqueId(), updateCheckinInGraph);
return Either.right(updateCheckinInGraph);
}
LifecycleStateEnum state = LifecycleStateEnum.NOT_CERTIFIED_CHECKIN;
ComponentParametersView componentParametersView = buildFilterForFetchComponentAfterChangeState();
result = updateComponentMD(component, modifier, state, nodeType, componentParametersView);
if (result.isRight()) {
- log.debug("Couldn't set lifecycle for component {} to state {}, error: {}", component.getUniqueId(),
- state, result.right().value());
+ log.debug("Couldn't set lifecycle for component {} to state {}, error: {}", component.getUniqueId(), state, result.right().value());
}
return result;
@@ -306,8 +289,7 @@ public class LifecycleOperation implements ILifecycleOperation {
return componentParametersView;
}
- private StorageOperationStatus updateCheckinInGraph(NodeTypeEnum componentType, String componentId,
- LifecycleStateEnum state, User modifier, User owner) {
+ private StorageOperationStatus updateCheckinInGraph(NodeTypeEnum componentType, String componentId, LifecycleStateEnum state, User modifier, User owner) {
// check if we cancel rfc
if (state.equals(LifecycleStateEnum.READY_FOR_CERTIFICATION)) {
@@ -316,8 +298,7 @@ public class LifecycleOperation implements ILifecycleOperation {
Map<String, Object> props = new HashMap<String, Object>();
props.put(GraphPropertiesDictionary.STATE.getProperty(), LifecycleStateEnum.NOT_CERTIFIED_CHECKIN);
UniqueIdData resourceData = new UniqueIdData(componentType, componentId);
- Either<GraphRelation, TitanOperationStatus> deleteResult = titanGenericDao
- .deleteIncomingRelationByCriteria(resourceData, GraphEdgeLabels.LAST_STATE, props);
+ Either<GraphRelation, TitanOperationStatus> deleteResult = titanGenericDao.deleteIncomingRelationByCriteria(resourceData, GraphEdgeLabels.LAST_STATE, props);
if (deleteResult.isRight()) {
log.debug("failed to update last state relation");
return StorageOperationStatus.INCONSISTENCY;
@@ -325,8 +306,7 @@ public class LifecycleOperation implements ILifecycleOperation {
}
// remove CHECKOUT relation
- StorageOperationStatus removeUserToResourceRelation = removeUserToResourceRelation(componentType,
- owner.getUserId(), componentId, GraphEdgeLabels.STATE);
+ StorageOperationStatus removeUserToResourceRelation = removeUserToResourceRelation(componentType, owner.getUserId(), componentId, GraphEdgeLabels.STATE);
if (!removeUserToResourceRelation.equals(StorageOperationStatus.OK)) {
return removeUserToResourceRelation;
}
@@ -334,8 +314,7 @@ public class LifecycleOperation implements ILifecycleOperation {
// create CHECKIN relation
Map<String, Object> props = new HashMap<String, Object>();
props.put(GraphPropertiesDictionary.STATE.getProperty(), LifecycleStateEnum.NOT_CERTIFIED_CHECKIN);
- StorageOperationStatus createUserToResourceRelation = createUserToResourceRelation(componentType,
- modifier.getUserId(), componentId, GraphEdgeLabels.STATE, props);
+ StorageOperationStatus createUserToResourceRelation = createUserToResourceRelation(componentType, modifier.getUserId(), componentId, GraphEdgeLabels.STATE, props);
if (!createUserToResourceRelation.equals(StorageOperationStatus.OK)) {
return createUserToResourceRelation;
}
@@ -344,15 +323,12 @@ public class LifecycleOperation implements ILifecycleOperation {
}
@Override
- public Either<? extends Component, StorageOperationStatus> requestCertificationComponent(NodeTypeEnum nodeType,
- Component component, User modifier, User owner, boolean inTransaction) {
+ public Either<? extends Component, StorageOperationStatus> requestCertificationComponent(NodeTypeEnum nodeType, Component component, User modifier, User owner, boolean inTransaction) {
Either<? extends Component, StorageOperationStatus> result = null;
try {
- StorageOperationStatus updateRfcOnGraph = updateRfcOnGraph(nodeType, component.getUniqueId(),
- component.getLifecycleState(), modifier, owner);
+ StorageOperationStatus updateRfcOnGraph = updateRfcOnGraph(nodeType, component.getUniqueId(), component.getLifecycleState(), modifier, owner);
if (!updateRfcOnGraph.equals(StorageOperationStatus.OK)) {
- log.error("failed to update state of resource {}. status={}", component.getUniqueId(),
- updateRfcOnGraph);
+ log.error("failed to update state of resource {}. status={}", component.getUniqueId(), updateRfcOnGraph);
return Either.right(updateRfcOnGraph);
}
@@ -362,8 +338,7 @@ public class LifecycleOperation implements ILifecycleOperation {
result = updateComponentMD(component, modifier, state, nodeType, componentParametersView);
if (result.isRight()) {
- log.debug("Couldn't set lifecycle for component {} to state {}, error: {}", component.getUniqueId(),
- state, result.right().value());
+ log.debug("Couldn't set lifecycle for component {} to state {}, error: {}", component.getUniqueId(), state, result.right().value());
return result;
}
return result;
@@ -381,15 +356,13 @@ public class LifecycleOperation implements ILifecycleOperation {
}
}
- private StorageOperationStatus updateRfcOnGraph(NodeTypeEnum componentType, String componentId,
- LifecycleStateEnum state, User modifier, User owner) {
+ private StorageOperationStatus updateRfcOnGraph(NodeTypeEnum componentType, String componentId, LifecycleStateEnum state, User modifier, User owner) {
if (state.equals(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT)) {
// if this is atomic checkin + RFC: create checkin relation
// remove CHECKOUT relation
- StorageOperationStatus relationStatus = removeUserToResourceRelation(componentType, owner.getUserId(),
- componentId, GraphEdgeLabels.STATE);
+ StorageOperationStatus relationStatus = removeUserToResourceRelation(componentType, owner.getUserId(), componentId, GraphEdgeLabels.STATE);
if (!relationStatus.equals(StorageOperationStatus.OK)) {
return relationStatus;
}
@@ -397,14 +370,12 @@ public class LifecycleOperation implements ILifecycleOperation {
// create CHECKIN relation
Map<String, Object> props = new HashMap<String, Object>();
props.put(GraphPropertiesDictionary.STATE.getProperty(), LifecycleStateEnum.NOT_CERTIFIED_CHECKIN);
- relationStatus = createUserToResourceRelation(componentType, modifier.getUserId(), componentId,
- GraphEdgeLabels.LAST_STATE, props);
+ relationStatus = createUserToResourceRelation(componentType, modifier.getUserId(), componentId, GraphEdgeLabels.LAST_STATE, props);
if (!relationStatus.equals(StorageOperationStatus.OK)) {
return relationStatus;
}
} else {
- StorageOperationStatus changeStatus = changeRelationLabel(componentType, componentId, owner,
- GraphEdgeLabels.STATE, GraphEdgeLabels.LAST_STATE);
+ StorageOperationStatus changeStatus = changeRelationLabel(componentType, componentId, owner, GraphEdgeLabels.STATE, GraphEdgeLabels.LAST_STATE);
if (!changeStatus.equals(StorageOperationStatus.OK)) {
return changeStatus;
}
@@ -413,21 +384,18 @@ public class LifecycleOperation implements ILifecycleOperation {
// create RFC relation
Map<String, Object> props = new HashMap<String, Object>();
props.put(GraphPropertiesDictionary.STATE.getProperty(), LifecycleStateEnum.READY_FOR_CERTIFICATION);
- StorageOperationStatus changeRelationLabel = createUserToResourceRelation(componentType, modifier.getUserId(),
- componentId, GraphEdgeLabels.STATE, props);
+ StorageOperationStatus changeRelationLabel = createUserToResourceRelation(componentType, modifier.getUserId(), componentId, GraphEdgeLabels.STATE, props);
if (!changeRelationLabel.equals(StorageOperationStatus.OK)) {
return changeRelationLabel;
}
return StorageOperationStatus.OK;
}
- private StorageOperationStatus changeRelationLabel(NodeTypeEnum componentType, String componentId, User owner,
- GraphEdgeLabels prevLabel, GraphEdgeLabels toLabel) {
+ private StorageOperationStatus changeRelationLabel(NodeTypeEnum componentType, String componentId, User owner, GraphEdgeLabels prevLabel, GraphEdgeLabels toLabel) {
UniqueIdData resourceV = new UniqueIdData(componentType, componentId);
UserData userV = new UserData();
userV.setUserId(owner.getUserId());
- Either<GraphRelation, TitanOperationStatus> replaceRelationLabelResult = titanGenericDao
- .replaceRelationLabel(userV, resourceV, prevLabel, toLabel);
+ Either<GraphRelation, TitanOperationStatus> replaceRelationLabelResult = titanGenericDao.replaceRelationLabel(userV, resourceV, prevLabel, toLabel);
if (replaceRelationLabelResult.isRight()) {
log.error("failed to replace label from last state to state");
return DaoStatusConverter.convertTitanStatusToStorageStatus(replaceRelationLabelResult.right().value());
@@ -436,12 +404,10 @@ public class LifecycleOperation implements ILifecycleOperation {
}
@Override
- public Either<? extends Component, StorageOperationStatus> startComponentCertification(NodeTypeEnum nodeType,
- Component component, User modifier, User owner, boolean inTransaction) {
+ public Either<? extends Component, StorageOperationStatus> startComponentCertification(NodeTypeEnum nodeType, Component component, User modifier, User owner, boolean inTransaction) {
Either<? extends Component, StorageOperationStatus> result = null;
try {
- StorageOperationStatus updateOnGraph = updateStartCertificationOnGraph(nodeType, component.getUniqueId(),
- modifier, owner);
+ StorageOperationStatus updateOnGraph = updateStartCertificationOnGraph(nodeType, component.getUniqueId(), modifier, owner);
if (!updateOnGraph.equals(StorageOperationStatus.OK)) {
log.error("failed to update state of resource {}. status={}", component.getUniqueId(), updateOnGraph);
return Either.right(updateOnGraph);
@@ -452,8 +418,7 @@ public class LifecycleOperation implements ILifecycleOperation {
result = updateComponentMD(component, modifier, state, nodeType, componentParametersView);
if (result.isRight()) {
- log.debug("Couldn't set lifecycle for component {} to state {}, error: {}", component.getUniqueId(),
- state, result.right().value());
+ log.debug("Couldn't set lifecycle for component {} to state {}, error: {}", component.getUniqueId(), state, result.right().value());
}
return result;
@@ -470,10 +435,8 @@ public class LifecycleOperation implements ILifecycleOperation {
}
}
- private StorageOperationStatus updateStartCertificationOnGraph(NodeTypeEnum componentType, String componentId,
- User modifier, User owner) {
- StorageOperationStatus changeRelationLabel = changeRelationLabel(componentType, componentId, owner,
- GraphEdgeLabels.STATE, GraphEdgeLabels.LAST_STATE);
+ private StorageOperationStatus updateStartCertificationOnGraph(NodeTypeEnum componentType, String componentId, User modifier, User owner) {
+ StorageOperationStatus changeRelationLabel = changeRelationLabel(componentType, componentId, owner, GraphEdgeLabels.STATE, GraphEdgeLabels.LAST_STATE);
if (!changeRelationLabel.equals(StorageOperationStatus.OK)) {
return changeRelationLabel;
}
@@ -481,8 +444,7 @@ public class LifecycleOperation implements ILifecycleOperation {
Map<String, Object> props = new HashMap<String, Object>();
props.put(GraphPropertiesDictionary.STATE.getProperty(), LifecycleStateEnum.CERTIFICATION_IN_PROGRESS);
- StorageOperationStatus createUserToResourceRelation = createUserToResourceRelation(componentType,
- modifier.getUserId(), componentId, GraphEdgeLabels.STATE, props);
+ StorageOperationStatus createUserToResourceRelation = createUserToResourceRelation(componentType, modifier.getUserId(), componentId, GraphEdgeLabels.STATE, props);
if (!createUserToResourceRelation.equals(StorageOperationStatus.OK)) {
return createUserToResourceRelation;
}
@@ -490,8 +452,7 @@ public class LifecycleOperation implements ILifecycleOperation {
}
@Override
- public Either<? extends Component, StorageOperationStatus> certifyComponent(NodeTypeEnum nodeType,
- Component component, User modifier, User currentOwner, boolean inTransaction) {
+ public Either<? extends Component, StorageOperationStatus> certifyComponent(NodeTypeEnum nodeType, Component component, User modifier, User currentOwner, boolean inTransaction) {
Either<? extends Component, StorageOperationStatus> result = null;
try {
@@ -509,8 +470,7 @@ public class LifecycleOperation implements ILifecycleOperation {
}
// clone the resource
- Either<? extends Component, StorageOperationStatus> createResourceResult = Either
- .right(StorageOperationStatus.GENERAL_ERROR);
+ Either<? extends Component, StorageOperationStatus> createResourceResult = Either.right(StorageOperationStatus.GENERAL_ERROR);
switch (nodeType) {
case Service:
case Resource:
@@ -531,8 +491,7 @@ public class LifecycleOperation implements ILifecycleOperation {
Component certifiedResource = createResourceResult.left().value();
// add rfc relation to preserve follower information
- StorageOperationStatus addRfcRelation = addRfcRelationToCertfiedComponent(nodeType, resourceIdBeforeCertify,
- certifiedResource.getUniqueId());
+ StorageOperationStatus addRfcRelation = addRfcRelationToCertfiedComponent(nodeType, resourceIdBeforeCertify, certifiedResource.getUniqueId());
if (!addRfcRelation.equals(StorageOperationStatus.OK)) {
result = Either.right(addRfcRelation);
return result;
@@ -556,15 +515,13 @@ public class LifecycleOperation implements ILifecycleOperation {
}
@Override
- public Either<Boolean, StorageOperationStatus> deleteOldComponentVersions(NodeTypeEnum nodeType,
- String componentName, String uuid, boolean inTransaction) {
+ public Either<Boolean, StorageOperationStatus> deleteOldComponentVersions(NodeTypeEnum nodeType, String componentName, String uuid, boolean inTransaction) {
Either<Boolean, StorageOperationStatus> result = null;
ComponentOperation componentOperation = getComponentOperation(nodeType);
try {
- Either<List<Component>, StorageOperationStatus> oldVersionsToDelete = getComponentTempVersions(nodeType,
- uuid);
+ Either<List<Component>, StorageOperationStatus> oldVersionsToDelete = getComponentTempVersions(nodeType, uuid);
if (oldVersionsToDelete.isRight()) {
result = Either.right(oldVersionsToDelete.right().value());
@@ -573,8 +530,7 @@ public class LifecycleOperation implements ILifecycleOperation {
for (Component resourceToDelete : oldVersionsToDelete.left().value()) {
- Either<Component, StorageOperationStatus> updateResource = componentOperation
- .markComponentToDelete(resourceToDelete, inTransaction);
+ Either<Component, StorageOperationStatus> updateResource = componentOperation.markComponentToDelete(resourceToDelete, inTransaction);
if (updateResource.isRight()) {
result = Either.right(updateResource.right().value());
return result;
@@ -596,26 +552,22 @@ public class LifecycleOperation implements ILifecycleOperation {
}
}
- private StorageOperationStatus addRfcRelationToCertfiedComponent(NodeTypeEnum componentType,
- String resourceIdBeforeCertify, String uniqueId) {
+ private StorageOperationStatus addRfcRelationToCertfiedComponent(NodeTypeEnum componentType, String resourceIdBeforeCertify, String uniqueId) {
// get user of certification request
UniqueIdData componentV = new UniqueIdData(componentType, resourceIdBeforeCertify);
Map<String, Object> props = new HashMap<String, Object>();
props.put(GraphPropertiesDictionary.STATE.getProperty(), LifecycleStateEnum.READY_FOR_CERTIFICATION);
- Either<GraphRelation, TitanOperationStatus> rfcRelationResponse = titanGenericDao
- .getIncomingRelationByCriteria(componentV, GraphEdgeLabels.LAST_STATE, props);
+ Either<GraphRelation, TitanOperationStatus> rfcRelationResponse = titanGenericDao.getIncomingRelationByCriteria(componentV, GraphEdgeLabels.LAST_STATE, props);
if (rfcRelationResponse.isRight()) {
TitanOperationStatus status = rfcRelationResponse.right().value();
log.error("failed to find rfc relation for component {}. status=", resourceIdBeforeCertify, status);
return DaoStatusConverter.convertTitanStatusToStorageStatus(status);
}
GraphRelation rfcRelation = rfcRelationResponse.left().value();
- rfcRelation.setTo(
- new RelationEndPoint(componentType, GraphPropertiesDictionary.UNIQUE_ID.getProperty(), uniqueId));
+ rfcRelation.setTo(new RelationEndPoint(componentType, GraphPropertiesDictionary.UNIQUE_ID.getProperty(), uniqueId));
- Either<GraphRelation, TitanOperationStatus> createRelationResponse = titanGenericDao
- .createRelation(rfcRelation);
+ Either<GraphRelation, TitanOperationStatus> createRelationResponse = titanGenericDao.createRelation(rfcRelation);
if (createRelationResponse.isRight()) {
TitanOperationStatus status = createRelationResponse.right().value();
log.error("failed to create rfc relation for component {}. status=", uniqueId, status);
@@ -635,9 +587,7 @@ public class LifecycleOperation implements ILifecycleOperation {
additionalQueryParams = new HashMap<String, Object>();
additionalQueryParams.put(GraphPropertiesDictionary.RESOURCE_TYPE.getProperty(), resourceType.name());
}
- Either<? extends Component, StorageOperationStatus> getLastCertifiedResponse = componentOperation
- .getComponentByNameAndVersion(component.getName(), majorVersion + VERSION_DELIMETER + "0",
- additionalQueryParams, true);
+ Either<? extends Component, StorageOperationStatus> getLastCertifiedResponse = componentOperation.getComponentByNameAndVersion(component.getName(), majorVersion + VERSION_DELIMETER + "0", additionalQueryParams, true);
if (getLastCertifiedResponse.isRight()) {
log.error("failed to update last certified resource. status={}", getLastCertifiedResponse.right().value());
@@ -646,8 +596,7 @@ public class LifecycleOperation implements ILifecycleOperation {
Component lastCertified = getLastCertifiedResponse.left().value();
lastCertified.setHighestVersion(false);
- Either<Component, StorageOperationStatus> updateResource = componentOperation.updateComponent(lastCertified,
- true);
+ Either<Component, StorageOperationStatus> updateResource = componentOperation.updateComponent(lastCertified, true);
if (updateResource.isRight()) {
log.error("failed to update last certified resource. status={}", updateResource.right().value());
return updateResource.right().value();
@@ -655,8 +604,7 @@ public class LifecycleOperation implements ILifecycleOperation {
return StorageOperationStatus.OK;
}
- private Either<Component, StorageOperationStatus> cloneComponentForCheckout(Component component,
- NodeTypeEnum nodeType, User modifier) {
+ private Either<Component, StorageOperationStatus> cloneComponentForCheckout(Component component, NodeTypeEnum nodeType, User modifier) {
ComponentOperation componentOperation = getComponentOperation(nodeType);
String prevId = component.getUniqueId();
@@ -686,8 +634,7 @@ public class LifecycleOperation implements ILifecycleOperation {
additionalQueryParams.put(GraphPropertiesDictionary.RESOURCE_TYPE.getProperty(), resourceType.name());
}
String name = component.getComponentMetadataDefinition().getMetadataDataDefinition().getName();
- Either<Component, StorageOperationStatus> alreadyExistResult = componentOperation
- .getComponentByNameAndVersion(name, version, additionalQueryParams, true);
+ Either<Component, StorageOperationStatus> alreadyExistResult = componentOperation.getComponentByNameAndVersion(name, version, additionalQueryParams, true);
if (alreadyExistResult.isLeft()) {
log.debug("Component with name {} and version {} already exist", name, version);
return Either.right(StorageOperationStatus.ENTITY_ALREADY_EXISTS);
@@ -696,14 +643,11 @@ public class LifecycleOperation implements ILifecycleOperation {
StorageOperationStatus storageOperationStatus = alreadyExistResult.right().value();
if (storageOperationStatus != StorageOperationStatus.NOT_FOUND) {
- log.debug(
- "Unexpected error when checking if component with name {} and version {} already exist, error: {}",
- name, version, storageOperationStatus);
+ log.debug("Unexpected error when checking if component with name {} and version {} already exist, error: {}", name, version, storageOperationStatus);
return Either.right(storageOperationStatus);
}
- Either<Component, StorageOperationStatus> cloneComponentResponse = componentOperation.cloneComponent(component,
- version, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, true);
+ Either<Component, StorageOperationStatus> cloneComponentResponse = componentOperation.cloneComponent(component, version, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, true);
return cloneComponentResponse;
}
@@ -720,8 +664,7 @@ public class LifecycleOperation implements ILifecycleOperation {
return Either.left(newVersion);
}
- private StorageOperationStatus setRelationForCancelCertification(LifecycleStateEnum nextState,
- NodeTypeEnum componentType, String componentId) {
+ private StorageOperationStatus setRelationForCancelCertification(LifecycleStateEnum nextState, NodeTypeEnum componentType, String componentId) {
StorageOperationStatus result = StorageOperationStatus.GENERAL_ERROR;
Map<String, Object> props = new HashMap<String, Object>();
@@ -730,8 +673,7 @@ public class LifecycleOperation implements ILifecycleOperation {
// delete relation CERTIFICATION_IN_PROGRESS
props.put(GraphPropertiesDictionary.STATE.getProperty(), LifecycleStateEnum.CERTIFICATION_IN_PROGRESS);
- Either<GraphRelation, TitanOperationStatus> deleteResult = titanGenericDao
- .deleteIncomingRelationByCriteria(componentData, GraphEdgeLabels.STATE, props);
+ Either<GraphRelation, TitanOperationStatus> deleteResult = titanGenericDao.deleteIncomingRelationByCriteria(componentData, GraphEdgeLabels.STATE, props);
if (deleteResult.isRight()) {
log.debug("failed to update last state relation");
result = StorageOperationStatus.INCONSISTENCY;
@@ -741,8 +683,7 @@ public class LifecycleOperation implements ILifecycleOperation {
// delete relation READY_FOR_CERTIFICATION (LAST_STATE)
props.put(GraphPropertiesDictionary.STATE.getProperty(), nextState);
- deleteResult = titanGenericDao.deleteIncomingRelationByCriteria(componentData, GraphEdgeLabels.LAST_STATE,
- props);
+ deleteResult = titanGenericDao.deleteIncomingRelationByCriteria(componentData, GraphEdgeLabels.LAST_STATE, props);
if (deleteResult.isRight()) {
log.debug("failed to update last state relation");
result = StorageOperationStatus.INCONSISTENCY;
@@ -753,8 +694,7 @@ public class LifecycleOperation implements ILifecycleOperation {
// create relation READY_FOR_CERTIFICATION (STATE)
UserData user = new UserData();
user.setUserId((String) origRelation.getFrom().getIdValue());
- Either<GraphRelation, TitanOperationStatus> createRelationResult = titanGenericDao.createRelation(user,
- componentData, GraphEdgeLabels.STATE, origRelation.toGraphMap());
+ Either<GraphRelation, TitanOperationStatus> createRelationResult = titanGenericDao.createRelation(user, componentData, GraphEdgeLabels.STATE, origRelation.toGraphMap());
if (createRelationResult.isRight()) {
log.error("failed to update last state relation. status={}", createRelationResult.right().value());
@@ -764,8 +704,7 @@ public class LifecycleOperation implements ILifecycleOperation {
return StorageOperationStatus.OK;
}
- private StorageOperationStatus setRelationForFailCertification(LifecycleStateEnum nextState,
- NodeTypeEnum componentType, String componentId) {
+ private StorageOperationStatus setRelationForFailCertification(LifecycleStateEnum nextState, NodeTypeEnum componentType, String componentId) {
StorageOperationStatus result = null;
Map<String, Object> props = new HashMap<String, Object>();
@@ -774,8 +713,7 @@ public class LifecycleOperation implements ILifecycleOperation {
// delete relation CERTIFICATION_IN_PROGRESS
props.put(GraphPropertiesDictionary.STATE.getProperty(), LifecycleStateEnum.CERTIFICATION_IN_PROGRESS);
- Either<GraphRelation, TitanOperationStatus> deleteResult = titanGenericDao
- .deleteIncomingRelationByCriteria(componentData, GraphEdgeLabels.STATE, props);
+ Either<GraphRelation, TitanOperationStatus> deleteResult = titanGenericDao.deleteIncomingRelationByCriteria(componentData, GraphEdgeLabels.STATE, props);
if (deleteResult.isRight()) {
log.debug("failed to update last state relation");
result = StorageOperationStatus.INCONSISTENCY;
@@ -785,8 +723,7 @@ public class LifecycleOperation implements ILifecycleOperation {
// delete relation READY_FOR_CERTIFICATION
props.put(GraphPropertiesDictionary.STATE.getProperty(), LifecycleStateEnum.READY_FOR_CERTIFICATION);
- deleteResult = titanGenericDao.deleteIncomingRelationByCriteria(componentData, GraphEdgeLabels.LAST_STATE,
- props);
+ deleteResult = titanGenericDao.deleteIncomingRelationByCriteria(componentData, GraphEdgeLabels.LAST_STATE, props);
if (deleteResult.isRight()) {
log.debug("failed to update last state relation");
result = StorageOperationStatus.INCONSISTENCY;
@@ -795,8 +732,7 @@ public class LifecycleOperation implements ILifecycleOperation {
// delete relation NOT_CERTIFIED_CHECKIN (in order to change to STATE)
props.put(GraphPropertiesDictionary.STATE.getProperty(), LifecycleStateEnum.NOT_CERTIFIED_CHECKIN);
- deleteResult = titanGenericDao.deleteIncomingRelationByCriteria(componentData, GraphEdgeLabels.LAST_STATE,
- props);
+ deleteResult = titanGenericDao.deleteIncomingRelationByCriteria(componentData, GraphEdgeLabels.LAST_STATE, props);
if (deleteResult.isRight()) {
log.debug("failed to update last state relation");
result = StorageOperationStatus.INCONSISTENCY;
@@ -807,14 +743,31 @@ public class LifecycleOperation implements ILifecycleOperation {
GraphRelation origRelation = deleteResult.left().value();
UserData user = new UserData();
user.setUserId((String) origRelation.getFrom().getIdValue());
- Either<GraphRelation, TitanOperationStatus> createRelationResult = titanGenericDao.createRelation(user,
- componentData, GraphEdgeLabels.STATE, origRelation.toGraphMap());
+ Either<GraphRelation, TitanOperationStatus> createRelationResult = titanGenericDao.createRelation(user, componentData, GraphEdgeLabels.STATE, origRelation.toGraphMap());
if (createRelationResult.isRight()) {
log.debug("failed to update last state relation");
result = StorageOperationStatus.INCONSISTENCY;
return result;
}
+
+ // delete relation LAST_MODIFIER (in order to change tester to designer)
+ deleteResult = titanGenericDao.deleteIncomingRelationByCriteria(componentData, GraphEdgeLabels.LAST_MODIFIER, null);
+ if (deleteResult.isRight()) {
+ log.debug("failed to update last modifier relation");
+ result = StorageOperationStatus.INCONSISTENCY;
+ return result;
+ }
+
+ // create new LAST_MODIFIER relation
+ origRelation = deleteResult.left().value();
+ createRelationResult = titanGenericDao.createRelation(user, componentData, GraphEdgeLabels.LAST_MODIFIER, origRelation.toGraphMap());
+ if (createRelationResult.isRight()) {
+ log.debug("failed to update last state relation");
+ result = StorageOperationStatus.INCONSISTENCY;
+ return result;
+ }
+
return StorageOperationStatus.OK;
}
@@ -826,9 +779,7 @@ public class LifecycleOperation implements ILifecycleOperation {
* @param nextState
* @return
*/
- private Either<Component, StorageOperationStatus> updateComponentMD(Component component, User modifier,
- LifecycleStateEnum nextState, NodeTypeEnum nodeType,
- ComponentParametersView returnedComponentParametersViewFilter) {
+ private Either<Component, StorageOperationStatus> updateComponentMD(Component component, User modifier, LifecycleStateEnum nextState, NodeTypeEnum nodeType, ComponentParametersView returnedComponentParametersViewFilter) {
if (returnedComponentParametersViewFilter == null) {
returnedComponentParametersViewFilter = new ComponentParametersView();
@@ -849,34 +800,28 @@ public class LifecycleOperation implements ILifecycleOperation {
}
log.debug("updateComponentMD::getAndUpdateMetadata start");
// get service MD
- Either<ComponentMetadataData, TitanOperationStatus> componentDataResult = titanGenericDao.getNode(
- UniqueIdBuilder.getKeyByNodeType(nodeType), component.getUniqueId(), ComponentMetadataData.class);
+ Either<ComponentMetadataData, TitanOperationStatus> componentDataResult = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(nodeType), component.getUniqueId(), ComponentMetadataData.class);
if (componentDataResult.isRight()) {
log.debug("failed to get service data from graph");
- return Either
- .right(DaoStatusConverter.convertTitanStatusToStorageStatus(componentDataResult.right().value()));
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(componentDataResult.right().value()));
}
// set state on resource
ComponentMetadataData componentData = componentDataResult.left().value();
componentData.getMetadataDataDefinition().setState(nextState.name());
component.setLifecycleState(nextState);
- Either<ComponentMetadataData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(componentData,
- ComponentMetadataData.class);
+ Either<ComponentMetadataData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(componentData, ComponentMetadataData.class);
log.debug("updateComponentMD::getAndUpdateMetadata end");
if (updateNode.isRight()) {
- log.error("Failed to update component " + component.getUniqueId() + ". status is "
- + updateNode.right().value());
+ log.error("Failed to update component {}. status is {}", component.getUniqueId(), updateNode.right().value());
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(updateNode.right().value()));
return result;
}
log.debug("updateComponentMD::getAndUpdateMetadata start");
- Either<Object, StorageOperationStatus> serviceAfterChange = componentOperation
- .getComponent(component.getUniqueId(), returnedComponentParametersViewFilter, true);
+ Either<Object, StorageOperationStatus> serviceAfterChange = componentOperation.getComponent(component.getUniqueId(), returnedComponentParametersViewFilter, true);
log.debug("updateComponentMD::getAndUpdateMetadata end");
if (serviceAfterChange.isRight()) {
- log.error("Failed to get component " + component.getUniqueId() + " after change. status is "
- + updateNode.right().value());
+ log.error("Failed to get component {} after change. status is {}", component.getUniqueId(), updateNode.right().value());
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(updateNode.right().value()));
return result;
}
@@ -891,8 +836,7 @@ public class LifecycleOperation implements ILifecycleOperation {
* @param nextState
* @return
*/
- private Either<Resource, StorageOperationStatus> updateResourceMD(Resource resource, User modifier,
- LifecycleStateEnum nextState) {
+ private Either<Resource, StorageOperationStatus> updateResourceMD(Resource resource, User modifier, LifecycleStateEnum nextState) {
Either<Resource, StorageOperationStatus> result;
resource.setLastUpdateDate(null);
@@ -904,33 +848,27 @@ public class LifecycleOperation implements ILifecycleOperation {
return result;
}
// get resource MD
- Either<ResourceMetadataData, TitanOperationStatus> resourceDataResult = titanGenericDao.getNode(
- UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Resource), resource.getUniqueId(),
- ResourceMetadataData.class);
+ Either<ResourceMetadataData, TitanOperationStatus> resourceDataResult = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Resource), resource.getUniqueId(), ResourceMetadataData.class);
if (resourceDataResult.isRight()) {
log.debug("failed to get resource data from graph");
- return Either
- .right(DaoStatusConverter.convertTitanStatusToStorageStatus(resourceDataResult.right().value()));
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(resourceDataResult.right().value()));
}
// set state on resource
ResourceMetadataData resourceData = resourceDataResult.left().value();
resourceData.getMetadataDataDefinition().setState(nextState.name());
resource.setLifecycleState(nextState);
- Either<ResourceMetadataData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(resourceData,
- ResourceMetadataData.class);
+ Either<ResourceMetadataData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(resourceData, ResourceMetadataData.class);
if (updateNode.isRight()) {
- log.error("Failed to update resource " + resource.getUniqueId() + ". status is "
- + updateNode.right().value());
+ log.error("Failed to update resource {}. status is {}", resource.getUniqueId(), updateNode.right().value());
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(updateNode.right().value()));
return result;
}
return Either.left(resource);
}
- private Either<List<Component>, StorageOperationStatus> getComponentTempVersions(NodeTypeEnum nodeType,
- String uuid) {
+ private Either<List<Component>, StorageOperationStatus> getComponentTempVersions(NodeTypeEnum nodeType, String uuid) {
Either<List<Component>, StorageOperationStatus> result = Either.right(StorageOperationStatus.GENERAL_ERROR);
List<Component> componentList = new ArrayList<Component>();
@@ -941,8 +879,7 @@ public class LifecycleOperation implements ILifecycleOperation {
createOldVersionsCriteria(nodeType, uuid, hasProps, hasNotProps);
- Either<List<ComponentMetadataData>, TitanOperationStatus> getByCriteria = titanGenericDao
- .getByCriteria(nodeType, hasProps, hasNotProps, ComponentMetadataData.class);
+ Either<List<ComponentMetadataData>, TitanOperationStatus> getByCriteria = titanGenericDao.getByCriteria(nodeType, hasProps, hasNotProps, ComponentMetadataData.class);
if (getByCriteria.isRight()) {
log.error("failed to get old versions for component, type:{}, id: {}", nodeType, uuid);
@@ -952,8 +889,7 @@ public class LifecycleOperation implements ILifecycleOperation {
List<ComponentMetadataData> oldVersionComponents = getByCriteria.left().value();
for (ComponentMetadataData component : oldVersionComponents) {
- Either<Component, StorageOperationStatus> resourceRes = componentOperation
- .getComponent(component.getMetadataDataDefinition().getUniqueId(), true);
+ Either<Component, StorageOperationStatus> resourceRes = componentOperation.getComponent(component.getMetadataDataDefinition().getUniqueId(), true);
if (resourceRes.isRight()) {
result = Either.right(resourceRes.right().value());
return result;
@@ -965,17 +901,31 @@ public class LifecycleOperation implements ILifecycleOperation {
return result;
}
- private void createOldVersionsCriteria(NodeTypeEnum nodeType, String uuid, Map<String, Object> hasProps,
- Map<String, Object> hasNotProps) {
+ /*
+ * private Either<List<Service>, StorageOperationStatus> getServiceTempVersions(NodeTypeEnum nodeType, String uuid) {
+ *
+ * Either<List<Service>, StorageOperationStatus> result = Either.right(StorageOperationStatus.GENERAL_ERROR); List<Service> resourceList = new ArrayList<Service>();
+ *
+ * Map<String, Object> hasProps = new HashMap<String, Object>(); Map<String, Object> hasNotProps = new HashMap<String, Object>();
+ *
+ * createOldVersionsCriteria(nodeType, uuid, hasProps, hasNotProps);
+ *
+ * Either<List<ServiceMetadataData>, TitanOperationStatus> getByCriteria = titanGenericDao.getByCriteria(NodeTypeEnum.Service, hasProps, hasNotProps, ServiceMetadataData.class);
+ *
+ * if (getByCriteria.isRight()) { log.error("failed to get old versions for {}", uuid); result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus( getByCriteria.right().value())); return result; }
+ *
+ * List<ServiceMetadataData> oldVersionResources = getByCriteria.left().value(); for (ServiceMetadataData resource : oldVersionResources) { Either<Service, StorageOperationStatus> resourceRes = serviceOperation.getService((String)
+ * resource.getUniqueId(), true); if (resourceRes.isRight()) { result = Either.right(resourceRes.right().value()); return result; } else { resourceList.add(resourceRes.left().value()); } } result = Either.left(resourceList); return result; }
+ */
+ private void createOldVersionsCriteria(NodeTypeEnum nodeType, String uuid, Map<String, Object> hasProps, Map<String, Object> hasNotProps) {
hasProps.put(GraphPropertiesDictionary.UUID.getProperty(), uuid);
hasProps.put(GraphPropertiesDictionary.LABEL.getProperty(), nodeType.name().toLowerCase());
hasNotProps.put(GraphPropertiesDictionary.STATE.getProperty(), LifecycleStateEnum.CERTIFIED.name());
}
- private Either<? extends Component, StorageOperationStatus> updateOldComponentBeforeUndoCheckout(
- ComponentOperation componentOperation, Component prevComponent, Component currentComponent,
- String previousVersion, NodeTypeEnum nodeType, boolean inTransaction) {
+ private Either<? extends Component, StorageOperationStatus> updateOldComponentBeforeUndoCheckout(ComponentOperation componentOperation, Component prevComponent, Component currentComponent, String previousVersion, NodeTypeEnum nodeType,
+ boolean inTransaction) {
log.debug("update previous version of component");
Map<String, Object> additionalQueryParams = new HashMap<String, Object>();
@@ -985,31 +935,25 @@ public class LifecycleOperation implements ILifecycleOperation {
additionalQueryParams.put(GraphPropertiesDictionary.RESOURCE_TYPE.getProperty(), resourceType.name());
}
- ComponentMetadataDataDefinition metadataDataDefinition = currentComponent.getComponentMetadataDefinition()
- .getMetadataDataDefinition();
- Either<? extends Component, StorageOperationStatus> getOlderCompResult = componentOperation
- .getComponentByNameAndVersion(metadataDataDefinition.getName(), previousVersion, additionalQueryParams,
- true);
+ ComponentMetadataDataDefinition metadataDataDefinition = currentComponent.getComponentMetadataDefinition().getMetadataDataDefinition();
+ Either<? extends Component, StorageOperationStatus> getOlderCompResult = componentOperation.getComponentByNameAndVersion(metadataDataDefinition.getName(), previousVersion, additionalQueryParams, true);
// if previous version exist - set it as current version
if (getOlderCompResult.isRight()) {
if (StorageOperationStatus.NOT_FOUND.equals(getOlderCompResult.right().value())) {
- log.debug("No components by name and version : {} {}", metadataDataDefinition.getName(), previousVersion);
+ log.debug("No components by name and version: {} - {}", metadataDataDefinition.getName(), previousVersion);
log.debug("Name may have changed, since the version isn't certified try to fetch by UUID {}", metadataDataDefinition.getUUID());
additionalQueryParams.clear();
- additionalQueryParams.put(GraphPropertiesDictionary.UUID.getProperty(),
- metadataDataDefinition.getUUID());
+ additionalQueryParams.put(GraphPropertiesDictionary.UUID.getProperty(), metadataDataDefinition.getUUID());
additionalQueryParams.put(GraphPropertiesDictionary.VERSION.getProperty(), previousVersion);
- Either<List<ComponentMetadataData>, TitanOperationStatus> byUUID = titanGenericDao
- .getByCriteria(nodeType, additionalQueryParams, ComponentMetadataData.class);
+ Either<List<ComponentMetadataData>, TitanOperationStatus> byUUID = titanGenericDao.getByCriteria(nodeType, additionalQueryParams, ComponentMetadataData.class);
if (byUUID.isRight()) {
log.debug("Failed to fetch by UUID {}", metadataDataDefinition.getUUID());
return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(byUUID.right().value()));
}
String prevVersionId = (String) byUUID.left().value().get(0).getUniqueId();
- Either<? extends Component, StorageOperationStatus> component = componentOperation
- .getComponent(prevVersionId, inTransaction);
+ Either<? extends Component, StorageOperationStatus> component = componentOperation.getComponent(prevVersionId, inTransaction);
if (component.isRight()) {
log.debug("Failed to fetch previous component by ID {}", prevVersionId);
return Either.right(component.right().value());
@@ -1029,8 +973,7 @@ public class LifecycleOperation implements ILifecycleOperation {
}
prevComponent.setHighestVersion(true);
- Either<Component, StorageOperationStatus> updateCompResult = componentOperation.updateComponent(prevComponent,
- inTransaction);
+ Either<Component, StorageOperationStatus> updateCompResult = componentOperation.updateComponent(prevComponent, inTransaction);
if (updateCompResult.isRight()) {
log.debug("failed to update prev version of component");
return updateCompResult;
@@ -1038,8 +981,7 @@ public class LifecycleOperation implements ILifecycleOperation {
User user = new User();
user.setUserId(prevComponent.getLastUpdaterUserId());
- StorageOperationStatus changeStateRelation = changeStateRelation(nodeType, prevComponent.getUniqueId(), user,
- GraphEdgeLabels.LAST_STATE, GraphEdgeLabels.STATE);
+ StorageOperationStatus changeStateRelation = changeStateRelation(nodeType, prevComponent.getUniqueId(), user, GraphEdgeLabels.LAST_STATE, GraphEdgeLabels.STATE);
if (!changeStateRelation.equals(StorageOperationStatus.OK)) {
return Either.right(changeStateRelation);
}
@@ -1047,13 +989,11 @@ public class LifecycleOperation implements ILifecycleOperation {
return Either.left(prevComponent);
}
- private StorageOperationStatus changeStateRelation(NodeTypeEnum nodeType, String componentId, User currentOwner,
- GraphEdgeLabels from, GraphEdgeLabels to) {
+ private StorageOperationStatus changeStateRelation(NodeTypeEnum nodeType, String componentId, User currentOwner, GraphEdgeLabels from, GraphEdgeLabels to) {
UniqueIdData componentData = new UniqueIdData(nodeType, componentId);
UserData userData = new UserData();
userData.setUserId(currentOwner.getUserId());
- Either<GraphRelation, TitanOperationStatus> replaceRelationLabelResult = titanGenericDao
- .replaceRelationLabel(userData, componentData, from, to);
+ Either<GraphRelation, TitanOperationStatus> replaceRelationLabelResult = titanGenericDao.replaceRelationLabel(userData, componentData, from, to);
if (replaceRelationLabelResult.isRight()) {
TitanOperationStatus titanStatus = replaceRelationLabelResult.right().value();
log.error("failed to replace label from {} to {}. status = {}", from, to, titanStatus);
@@ -1066,15 +1006,13 @@ public class LifecycleOperation implements ILifecycleOperation {
return StorageOperationStatus.OK;
}
- private StorageOperationStatus removeUserToResourceRelation(NodeTypeEnum componentType, String idFrom, String idTo,
- GraphEdgeLabels label) {
+ private StorageOperationStatus removeUserToResourceRelation(NodeTypeEnum componentType, String idFrom, String idTo, GraphEdgeLabels label) {
UniqueIdData componentV = new UniqueIdData(componentType, idTo);
UserData userV = new UserData();
userV.setUserId(idFrom);
// delete relation
- Either<GraphRelation, TitanOperationStatus> deleteRelationResult = titanGenericDao.deleteRelation(userV,
- componentV, label);
+ Either<GraphRelation, TitanOperationStatus> deleteRelationResult = titanGenericDao.deleteRelation(userV, componentV, label);
if (deleteRelationResult.isRight()) {
log.error("failed to delete relation. status={}", deleteRelationResult.right().value());
return DaoStatusConverter.convertTitanStatusToStorageStatus(deleteRelationResult.right().value());
@@ -1082,15 +1020,13 @@ public class LifecycleOperation implements ILifecycleOperation {
return StorageOperationStatus.OK;
}
- private StorageOperationStatus createUserToResourceRelation(NodeTypeEnum componentType, String idFrom, String idTo,
- GraphEdgeLabels label, Map<String, Object> props) {
+ private StorageOperationStatus createUserToResourceRelation(NodeTypeEnum componentType, String idFrom, String idTo, GraphEdgeLabels label, Map<String, Object> props) {
UniqueIdData componentV = new UniqueIdData(componentType, idTo);
UserData userV = new UserData();
userV.setUserId(idFrom);
// create relation
- Either<GraphRelation, TitanOperationStatus> createRelationResult = titanGenericDao.createRelation(userV,
- componentV, label, props);
+ Either<GraphRelation, TitanOperationStatus> createRelationResult = titanGenericDao.createRelation(userV, componentV, label, props);
if (createRelationResult.isRight()) {
log.error("failed to create relation. status={}", createRelationResult.right().value());
return DaoStatusConverter.convertTitanStatusToStorageStatus(createRelationResult.right().value());
@@ -1099,8 +1035,7 @@ public class LifecycleOperation implements ILifecycleOperation {
}
@Override
- public Either<? extends Component, StorageOperationStatus> cancelOrFailCertification(NodeTypeEnum nodeType,
- Component component, User modifier, User owner, LifecycleStateEnum nextState, boolean inTransaction) {
+ public Either<? extends Component, StorageOperationStatus> cancelOrFailCertification(NodeTypeEnum nodeType, Component component, User modifier, User owner, LifecycleStateEnum nextState, boolean inTransaction) {
Either<? extends Component, StorageOperationStatus> result = Either.right(StorageOperationStatus.GENERAL_ERROR);
try {
@@ -1108,8 +1043,7 @@ public class LifecycleOperation implements ILifecycleOperation {
ComponentParametersView componentParametersView = buildFilterForFetchComponentAfterChangeState();
result = updateComponentMD(component, modifier, nextState, nodeType, componentParametersView);
if (result.isRight()) {
- log.debug("Couldn't set lifecycle for component {} to state {}, error: {}", component.getUniqueId(),
- nextState, result.right().value());
+ log.debug("Couldn't set lifecycle for component {} to state {}, error: {}", component.getUniqueId(), nextState, result.right().value());
return result;
}
StorageOperationStatus status = StorageOperationStatus.OK;
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/OnboardingClient.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/OnboardingClient.java
index a7f8275064..033d5c268b 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/OnboardingClient.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/OnboardingClient.java
@@ -91,7 +91,6 @@ public class OnboardingClient {
}
- // Mock returning a file from the file system until we have API from onboarding
public Either<Map<String, byte[]>, StorageOperationStatus> getMockCsar(String csarUuid) {
File dir = new File("/var/tmp/mockCsar");
FileFilter fileFilter = new WildcardFileFilter("*.csar");
@@ -169,7 +168,7 @@ public class OnboardingClient {
/**
* Build the url for download CSAR
*
- * E.g., http://1.2.3.4:8181/onboarding-api/v1.0/vendor-software-products/packages/
+ * E.g., http://0.0.0.0:8181/onboarding-api/v1.0/vendor-software-products/packages/
*
* @return
*/
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/PolicyTypeOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/PolicyTypeOperation.java
index d085c242e8..796fc8dd34 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/PolicyTypeOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/PolicyTypeOperation.java
@@ -64,8 +64,7 @@ public class PolicyTypeOperation extends AbstractOperation implements IPolicyTyp
return getLatestPolicyTypeByType(policyTypeName, false);
}
- private Either<PolicyTypeDefinition, StorageOperationStatus> getLatestPolicyTypeByType(String type,
- boolean inTransaction) {
+ private Either<PolicyTypeDefinition, StorageOperationStatus> getLatestPolicyTypeByType(String type, boolean inTransaction) {
Map<String, Object> mapCriteria = new HashMap<>();
mapCriteria.put(GraphPropertiesDictionary.TYPE.getProperty(), type);
mapCriteria.put(GraphPropertiesDictionary.IS_HIGHEST_VERSION.getProperty(), true);
@@ -79,8 +78,7 @@ public class PolicyTypeOperation extends AbstractOperation implements IPolicyTyp
}
@Override
- public Either<PolicyTypeDefinition, StorageOperationStatus> addPolicyType(PolicyTypeDefinition policyTypeDef,
- boolean inTransaction) {
+ public Either<PolicyTypeDefinition, StorageOperationStatus> addPolicyType(PolicyTypeDefinition policyTypeDef, boolean inTransaction) {
Either<PolicyTypeDefinition, StorageOperationStatus> result = null;
@@ -89,10 +87,8 @@ public class PolicyTypeOperation extends AbstractOperation implements IPolicyTyp
Either<PolicyTypeData, TitanOperationStatus> eitherStatus = addPolicyTypeToGraph(policyTypeDef);
if (eitherStatus.isRight()) {
- BeEcompErrorManager.getInstance().logBeFailedCreateNodeError(CREATE_FLOW_CONTEXT,
- policyTypeDef.getType(), eitherStatus.right().value().name());
- result = Either
- .right(DaoStatusConverter.convertTitanStatusToStorageStatus(eitherStatus.right().value()));
+ BeEcompErrorManager.getInstance().logBeFailedCreateNodeError(CREATE_FLOW_CONTEXT, policyTypeDef.getType(), eitherStatus.right().value().name());
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(eitherStatus.right().value()));
} else {
PolicyTypeData policyTypeData = eitherStatus.left().value();
@@ -101,8 +97,7 @@ public class PolicyTypeOperation extends AbstractOperation implements IPolicyTyp
Either<PolicyTypeDefinition, StorageOperationStatus> policyTypeRes = this.getPolicyType(uniqueId, true);
if (policyTypeRes.isRight()) {
- BeEcompErrorManager.getInstance().logBeFailedRetrieveNodeError(GET_FLOW_CONTEXT,
- policyTypeDef.getType(), eitherStatus.right().value().name());
+ BeEcompErrorManager.getInstance().logBeFailedRetrieveNodeError(GET_FLOW_CONTEXT, policyTypeDef.getType(), eitherStatus.right().value().name());
}
result = policyTypeRes;
@@ -126,20 +121,18 @@ public class PolicyTypeOperation extends AbstractOperation implements IPolicyTyp
log.debug("Before adding policy type to graph. policyTypeData = {}", policyTypeData);
- Either<PolicyTypeData, TitanOperationStatus> eitherPolicyTypeData = titanGenericDao.createNode(policyTypeData,
- PolicyTypeData.class);
+ Either<PolicyTypeData, TitanOperationStatus> eitherPolicyTypeData = titanGenericDao.createNode(policyTypeData, PolicyTypeData.class);
log.debug("After adding policy type to graph. status is = {}", eitherPolicyTypeData);
if (eitherPolicyTypeData.isRight()) {
TitanOperationStatus operationStatus = eitherPolicyTypeData.right().value();
- log.error("Failed to add policy type {} to graph. Status is {}", policyTypeDef.getType(), operationStatus);
+ log.error("Failed to add policy type {} to graph. status is {}", policyTypeDef.getType(), operationStatus);
return Either.right(operationStatus);
}
PolicyTypeData resultCTD = eitherPolicyTypeData.left().value();
List<PropertyDefinition> properties = policyTypeDef.getProperties();
- Either<Map<String, PropertyData>, TitanOperationStatus> addPropertiesToPolicyType = propertyOperation
- .addPropertiesToElementType(resultCTD.getUniqueId(), NodeTypeEnum.PolicyType, properties);
+ Either<Map<String, PropertyData>, TitanOperationStatus> addPropertiesToPolicyType = propertyOperation.addPropertiesToElementType(resultCTD.getUniqueId(), NodeTypeEnum.PolicyType, properties);
if (addPropertiesToPolicyType.isRight()) {
log.error("Failed add properties {} to policy {}", properties, policyTypeDef.getType());
return Either.right(addPropertiesToPolicyType.right().value());
@@ -148,8 +141,7 @@ public class PolicyTypeOperation extends AbstractOperation implements IPolicyTyp
return Either.left(eitherPolicyTypeData.left().value());
}
- public Either<PolicyTypeDefinition, StorageOperationStatus> getPolicyTypeByCriteria(String type,
- Map<String, Object> properties, boolean inTransaction) {
+ public Either<PolicyTypeDefinition, StorageOperationStatus> getPolicyTypeByCriteria(String type, Map<String, Object> properties, boolean inTransaction) {
Either<PolicyTypeDefinition, StorageOperationStatus> result = null;
try {
if (type == null || type.isEmpty()) {
@@ -158,14 +150,11 @@ public class PolicyTypeOperation extends AbstractOperation implements IPolicyTyp
return result;
}
- Either<List<PolicyTypeData>, TitanOperationStatus> eitherPolicyData = titanGenericDao
- .getByCriteria(NodeTypeEnum.PolicyType, properties, PolicyTypeData.class);
+ Either<List<PolicyTypeData>, TitanOperationStatus> eitherPolicyData = titanGenericDao.getByCriteria(NodeTypeEnum.PolicyType, properties, PolicyTypeData.class);
if (eitherPolicyData.isRight()) {
- result = Either
- .right(DaoStatusConverter.convertTitanStatusToStorageStatus(eitherPolicyData.right().value()));
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(eitherPolicyData.right().value()));
} else {
- PolicyTypeDataDefinition dataDefinition = eitherPolicyData.left().value().stream()
- .map(e -> e.getPolicyTypeDataDefinition()).findFirst().get();
+ PolicyTypeDataDefinition dataDefinition = eitherPolicyData.left().value().stream().map(e -> e.getPolicyTypeDataDefinition()).findFirst().get();
result = getPolicyType(dataDefinition.getUniqueId(), inTransaction);
}
@@ -178,8 +167,7 @@ public class PolicyTypeOperation extends AbstractOperation implements IPolicyTyp
@Override
public Either<PolicyTypeDefinition, StorageOperationStatus> getPolicyType(String uniqueId, boolean inTransaction) {
- Function<String, Either<PolicyTypeDefinition, TitanOperationStatus>> policyTypeGetter = uId -> getPolicyTypeByUid(
- uId);
+ Function<String, Either<PolicyTypeDefinition, TitanOperationStatus>> policyTypeGetter = uId -> getPolicyTypeByUid(uId);
return getElementType(policyTypeGetter, uniqueId, inTransaction);
}
@@ -187,21 +175,18 @@ public class PolicyTypeOperation extends AbstractOperation implements IPolicyTyp
private Either<PolicyTypeDefinition, TitanOperationStatus> getPolicyTypeByUid(String uniqueId) {
Either<PolicyTypeDefinition, TitanOperationStatus> result = null;
- Either<PolicyTypeData, TitanOperationStatus> eitherPolicyTypeData = titanGenericDao
- .getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.PolicyType), uniqueId, PolicyTypeData.class);
+ Either<PolicyTypeData, TitanOperationStatus> eitherPolicyTypeData = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.PolicyType), uniqueId, PolicyTypeData.class);
if (eitherPolicyTypeData.isRight()) {
TitanOperationStatus status = eitherPolicyTypeData.right().value();
- log.debug("Policy type {} cannot be found in graph. Status is {}", uniqueId, status);
+ log.debug("Policy type {} cannot be found in graph. status is {}", uniqueId, status);
return Either.right(status);
}
PolicyTypeData policyTypeData = eitherPolicyTypeData.left().value();
- PolicyTypeDefinition policyTypeDefinition = new PolicyTypeDefinition(
- policyTypeData.getPolicyTypeDataDefinition());
+ PolicyTypeDefinition policyTypeDefinition = new PolicyTypeDefinition(policyTypeData.getPolicyTypeDataDefinition());
- TitanOperationStatus propertiesStatus = propertyOperation.fillProperties(uniqueId,
- propList -> policyTypeDefinition.setProperties(propList));
+ TitanOperationStatus propertiesStatus = propertyOperation.fillProperties(uniqueId, propList -> policyTypeDefinition.setProperties(propList));
if (propertiesStatus != TitanOperationStatus.OK) {
log.error("Failed to fetch properties of policy type {}", uniqueId);
return Either.right(propertiesStatus);
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ProductOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ProductOperation.java
index 2a8192421b..3d4fba36df 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ProductOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ProductOperation.java
@@ -94,10 +94,8 @@ public class ProductOperation extends ComponentOperation implements IProductOper
@SuppressWarnings("unchecked")
@Override
- protected <T> Either<T, StorageOperationStatus> getComponentByNameAndVersion(String name, String version,
- Map<String, Object> additionalParams, boolean inTransaction) {
- return (Either<T, StorageOperationStatus>) getByNamesAndVersion(GraphPropertiesDictionary.NAME.getProperty(),
- name, version, additionalParams, inTransaction);
+ protected <T> Either<T, StorageOperationStatus> getComponentByNameAndVersion(String name, String version, Map<String, Object> additionalParams, boolean inTransaction) {
+ return (Either<T, StorageOperationStatus>) getByNamesAndVersion(GraphPropertiesDictionary.NAME.getProperty(), name, version, additionalParams, inTransaction);
}
@Override
@@ -106,14 +104,12 @@ public class ProductOperation extends ComponentOperation implements IProductOper
}
@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) {
return getFilteredComponents(filters, inTransaction, NodeTypeEnum.Product);
}
private Product convertProductDataToProduct(ProductMetadataData productData) {
- ProductMetadataDefinition productMetadataDefinition = new ProductMetadataDefinition(
- (ProductMetadataDataDefinition) productData.getMetadataDataDefinition());
+ ProductMetadataDefinition productMetadataDefinition = new ProductMetadataDefinition((ProductMetadataDataDefinition) productData.getMetadataDataDefinition());
Product product = new Product(productMetadataDefinition);
@@ -123,28 +119,24 @@ public class ProductOperation extends ComponentOperation implements IProductOper
@SuppressWarnings("unchecked")
@Override
public <T> Either<T, StorageOperationStatus> updateComponent(T component, boolean inTransaction) {
- return (Either<T, StorageOperationStatus>) updateComponent((Component) component, inTransaction,
- titanGenericDao, Product.class, NodeTypeEnum.Product);
+ return (Either<T, StorageOperationStatus>) updateComponent((Component) component, inTransaction, titanGenericDao, Product.class, NodeTypeEnum.Product);
}
@SuppressWarnings("unchecked")
@Override
public Either<Component, StorageOperationStatus> deleteComponent(String id, boolean inTransaction) {
- return (Either<Component, StorageOperationStatus>) (Either<?, StorageOperationStatus>) deleteProduct(id,
- inTransaction);
+ return (Either<Component, StorageOperationStatus>) (Either<?, StorageOperationStatus>) deleteProduct(id, inTransaction);
}
@Override
- public Either<List<ArtifactDefinition>, StorageOperationStatus> getAdditionalArtifacts(String resourceId,
- boolean recursively, boolean inTransaction) {
+ public Either<List<ArtifactDefinition>, StorageOperationStatus> getAdditionalArtifacts(String resourceId, boolean recursively, boolean inTransaction) {
// TODO Auto-generated method stub
return null;
}
@SuppressWarnings("unchecked")
@Override
- public <T extends org.openecomp.sdc.be.model.Component> Either<T, StorageOperationStatus> getComponent(String id,
- Class<T> clazz) {
+ public <T extends org.openecomp.sdc.be.model.Component> Either<T, StorageOperationStatus> getComponent(String id, Class<T> clazz) {
return (Either<T, StorageOperationStatus>) getProduct(id, false);
}
@@ -160,16 +152,14 @@ public class ProductOperation extends ComponentOperation implements IProductOper
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<ProductMetadataData, TitanOperationStatus> productNode = titanGenericDao.getNode(
- UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Product), productId, ProductMetadataData.class);
+ Either<ProductMetadataData, TitanOperationStatus> productNode = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Product), productId, ProductMetadataData.class);
if (productNode.isRight()) {
TitanOperationStatus status = productNode.right().value();
- log.error("Failed to find product {}. Status is {}", productId, status);
+ log.error("Failed to find product {}. status is {}", productId, status);
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
return result;
}
@@ -177,29 +167,27 @@ public class ProductOperation extends ComponentOperation implements IProductOper
Either<Product, StorageOperationStatus> productRes = getProduct(productId, true);
if (productRes.isRight()) {
StorageOperationStatus status = productRes.right().value();
- log.error("Failed to find product {}", productId, status);
+ log.error("Failed to find product {}.status is {}", productId, status);
result = Either.right(status);
return result;
}
Product product = productRes.left().value();
- Either<List<ComponentInstance>, StorageOperationStatus> deleteAllInstancesRes = componentInstanceOperation
- .deleteAllComponentInstances(productId, NodeTypeEnum.Product, true);
- log.debug("After deleting instances under product {}. Result is {}", productId, deleteAllInstancesRes);
+ Either<List<ComponentInstance>, StorageOperationStatus> deleteAllInstancesRes = componentInstanceOperation.deleteAllComponentInstances(productId, NodeTypeEnum.Product, true);
+ log.debug("After deleting instances under product {}.Result is {}", productId, deleteAllInstancesRes);
if (deleteAllInstancesRes.isRight()) {
StorageOperationStatus status = deleteAllInstancesRes.right().value();
if (status != StorageOperationStatus.NOT_FOUND) {
- log.error("Failed to delete instances under product {}. Status is {}", productId, status);
+ log.error("Failed to delete instances under product {}.status is {}", productId, status);
result = Either.right(status);
return result;
}
}
- Either<ProductMetadataData, TitanOperationStatus> deleteProductNodeRes = titanGenericDao
- .deleteNode(productNode.left().value(), ProductMetadataData.class);
+ Either<ProductMetadataData, TitanOperationStatus> deleteProductNodeRes = titanGenericDao.deleteNode(productNode.left().value(), ProductMetadataData.class);
if (deleteProductNodeRes.isRight()) {
TitanOperationStatus status = deleteProductNodeRes.right().value();
- log.error("Failed to delete product node {}. Status is {}", productId, status);
+ log.error("Failed to delete product node {}. status is {}", productId, status);
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
return result;
}
@@ -230,47 +218,20 @@ public class ProductOperation extends ComponentOperation implements IProductOper
/*
* Map<String, Object> propertiesToMatch = new HashMap<>();
*
- * propertiesToMatch.put(GraphPropertiesDictionary.STATE.getProperty
- * (), LifecycleStateEnum.CERTIFIED.name());
- * Either<List<ProductMetadataData>, TitanOperationStatus>
- * lastVersionNodes = getLastVersion(NodeTypeEnum.Product,
- * propertiesToMatch, ProductMetadataData.class); if
- * (lastVersionNodes.isRight() && lastVersionNodes.right().value()
- * != TitanOperationStatus.NOT_FOUND) { return
- * Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus
- * (lastVersionNodes.right().value())); } List<ProductMetadataData>
- * notCertifiedHighest = (lastVersionNodes.isLeft() ?
- * lastVersionNodes.left().value() : new
- * ArrayList<ProductMetadataData>());
+ * propertiesToMatch.put(GraphPropertiesDictionary.STATE.getProperty (), LifecycleStateEnum.CERTIFIED.name()); Either<List<ProductMetadataData>, TitanOperationStatus> lastVersionNodes = getLastVersion(NodeTypeEnum.Product,
+ * propertiesToMatch, ProductMetadataData.class); if (lastVersionNodes.isRight() && lastVersionNodes.right().value() != TitanOperationStatus.NOT_FOUND) { return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus
+ * (lastVersionNodes.right().value())); } List<ProductMetadataData> notCertifiedHighest = (lastVersionNodes.isLeft() ? lastVersionNodes.left().value() : new ArrayList<ProductMetadataData>());
*
- * propertiesToMatch.put(GraphPropertiesDictionary.
- * IS_HIGHEST_VERSION.getProperty(), true);
- * Either<List<ProductMetadataData>, TitanOperationStatus>
- * componentsNodes =
- * titanGenericDao.getByCriteria(NodeTypeEnum.Product,
- * propertiesToMatch, ProductMetadataData.class); if
- * (componentsNodes.isRight() && componentsNodes.right().value() !=
- * TitanOperationStatus.NOT_FOUND) { return
- * Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus
- * (componentsNodes.right().value())); } List<ProductMetadataData>
- * certifiedHighest = (componentsNodes.isLeft() ?
- * componentsNodes.left().value() : new
- * ArrayList<ProductMetadataData>()); Set<String> names = new
- * HashSet<String>(); for (ProductMetadataData data :
- * notCertifiedHighest) { String name =
- * data.getMetadataDataDefinition().getName(); names.add(name); }
+ * propertiesToMatch.put(GraphPropertiesDictionary. IS_HIGHEST_VERSION.getProperty(), true); Either<List<ProductMetadataData>, TitanOperationStatus> componentsNodes = titanGenericDao.getByCriteria(NodeTypeEnum.Product, propertiesToMatch,
+ * ProductMetadataData.class); if (componentsNodes.isRight() && componentsNodes.right().value() != TitanOperationStatus.NOT_FOUND) { return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus
+ * (componentsNodes.right().value())); } List<ProductMetadataData> certifiedHighest = (componentsNodes.isLeft() ? componentsNodes.left().value() : new ArrayList<ProductMetadataData>()); Set<String> names = new HashSet<String>(); for
+ * (ProductMetadataData data : notCertifiedHighest) { String name = data.getMetadataDataDefinition().getName(); names.add(name); }
*
- * for (ProductMetadataData data : certifiedHighest) { String
- * productName = data.getMetadataDataDefinition().getName(); if
- * (!names.contains(productName)) { notCertifiedHighest.add(data); }
- * }
+ * for (ProductMetadataData data : certifiedHighest) { String productName = data.getMetadataDataDefinition().getName(); if (!names.contains(productName)) { notCertifiedHighest.add(data); } }
*/
- Either<List<ProductMetadataData>, TitanOperationStatus> listOfHighestComponents = this
- .getListOfHighestComponents(NodeTypeEnum.Product, ProductMetadataData.class);
- if (listOfHighestComponents.isRight()
- && listOfHighestComponents.right().value() != TitanOperationStatus.NOT_FOUND) {
- return Either.right(
- DaoStatusConverter.convertTitanStatusToStorageStatus(listOfHighestComponents.right().value()));
+ Either<List<ProductMetadataData>, TitanOperationStatus> listOfHighestComponents = this.getListOfHighestComponents(NodeTypeEnum.Product, ProductMetadataData.class);
+ if (listOfHighestComponents.isRight() && listOfHighestComponents.right().value() != TitanOperationStatus.NOT_FOUND) {
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(listOfHighestComponents.right().value()));
}
List<ProductMetadataData> notCertifiedHighest = listOfHighestComponents.left().value();
@@ -282,42 +243,30 @@ public class ProductOperation extends ComponentOperation implements IProductOper
// 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.PRODUCT);
+ Either<ImmutablePair<List<Component>, Set<String>>, ActionStatus> componentsFromCacheForCatalog = this.getComponentsFromCacheForCatalog(components, ComponentTypeEnum.PRODUCT);
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((Product) 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 products metadata from cache took {} ms",
- (endFetchAllFromCache - startFetchAllFromCache));
+ log.debug("Fetch all catalog products metadata from cache took {} ms", (endFetchAllFromCache - startFetchAllFromCache));
log.debug("The number of products added to catalog from cache is {}", result.size());
- log.debug("The number of products needed to be fetch as light component is {}",
- notCertifiedHighest.size());
+ log.debug("The number of products needed to be fetch as light component is {}", notCertifiedHighest.size());
for (ProductMetadataData data : notCertifiedHighest) {
- Either<Product, StorageOperationStatus> component = getLightComponent(
- data.getMetadataDataDefinition().getUniqueId(), inTransaction);
+ Either<Product, StorageOperationStatus> component = getLightComponent(data.getMetadataDataDefinition().getUniqueId(), inTransaction);
if (component.isRight()) {
- log.debug("Failed to get product for id = {}, error : {}. skip product", data.getUniqueId(),
- component.right().value());
+ log.debug("Failed to get product for id = {}, error : {}. skip product", data.getUniqueId(), component.right().value());
} else {
// get all versions
Product product = component.left().value();
@@ -332,7 +281,7 @@ public class ProductOperation extends ComponentOperation implements IProductOper
if (false == inTransaction) {
titanGenericDao.commit();
}
- log.debug("Fetch all catalog products took {} ms", (System.currentTimeMillis() - start));
+ log.debug("Fetch all catalog products took {} ms", System.currentTimeMillis() - start);
}
}
@@ -383,34 +332,29 @@ public class ProductOperation extends ComponentOperation implements IProductOper
}
log.trace("Finding groupings for product {}", uniqueId);
- Either<List<GroupingData>, StorageOperationStatus> findGroupingsForComponent = findGroupingsForComponent(
- NodeTypeEnum.ProductGrouping, product);
+ Either<List<GroupingData>, StorageOperationStatus> findGroupingsForComponent = findGroupingsForComponent(NodeTypeEnum.ProductGrouping, product);
if (findGroupingsForComponent.isRight()) {
return Either.right(findGroupingsForComponent.right().value());
}
List<GroupingData> groupingDataToAssociate = findGroupingsForComponent.left().value();
log.debug("try to create product node on graph for id {}", uniqueId);
- Either<ProductMetadataData, TitanOperationStatus> createNode = titanGenericDao.createNode(productData,
- ProductMetadataData.class);
+ Either<ProductMetadataData, TitanOperationStatus> createNode = titanGenericDao.createNode(productData, ProductMetadataData.class);
if (createNode.isRight()) {
TitanOperationStatus status = createNode.right().value();
- log.error("Error returned after creating product data node {}. Status returned is {}", productData,
- status);
+ log.error("Error returned after creating product data node {}. Status returned is {}", productData, status);
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
return result;
}
log.debug("product node created on graph for id {}", productData.getUniqueId());
- TitanOperationStatus associateMetadata = associateMetadataToComponent(productData, creatorUserData,
- updaterUserData, null, null);
+ TitanOperationStatus associateMetadata = associateMetadataToComponent(productData, creatorUserData, updaterUserData, null, null);
if (associateMetadata != TitanOperationStatus.OK) {
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(associateMetadata));
return result;
}
- TitanOperationStatus associateCategories = associateCategoriesToProduct(productData,
- groupingDataToAssociate);
+ TitanOperationStatus associateCategories = associateCategoriesToProduct(productData, groupingDataToAssociate);
if (associateCategories != TitanOperationStatus.OK) {
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(associateCategories));
return result;
@@ -442,14 +386,11 @@ public class ProductOperation extends ComponentOperation implements IProductOper
}
}
- private TitanOperationStatus associateCategoriesToProduct(ProductMetadataData productData,
- List<GroupingData> groupingDataToAssociate) {
+ private TitanOperationStatus associateCategoriesToProduct(ProductMetadataData productData, List<GroupingData> groupingDataToAssociate) {
for (GroupingData groupingData : groupingDataToAssociate) {
GraphEdgeLabels groupingLabel = GraphEdgeLabels.CATEGORIZED_TO;
- Either<GraphRelation, TitanOperationStatus> result = titanGenericDao.createRelation(productData,
- groupingData, groupingLabel, null);
- log.debug("After associating grouping {} to product {}. Edge type is {}", groupingData, productData,
- groupingLabel);
+ Either<GraphRelation, TitanOperationStatus> result = titanGenericDao.createRelation(productData, groupingData, groupingLabel, null);
+ log.debug("After associating grouping {} to product {}. Edge type is {}", groupingData, productData, groupingLabel);
if (result.isRight()) {
return result.right().value();
}
@@ -458,14 +399,11 @@ public class ProductOperation extends ComponentOperation implements IProductOper
return TitanOperationStatus.OK;
}
- private TitanOperationStatus dissociateCategoriesFromProduct(ProductMetadataData productData,
- List<GroupingData> groupingDataToDissociate) {
+ private TitanOperationStatus dissociateCategoriesFromProduct(ProductMetadataData productData, List<GroupingData> groupingDataToDissociate) {
for (GroupingData groupingData : groupingDataToDissociate) {
GraphEdgeLabels groupingLabel = GraphEdgeLabels.CATEGORIZED_TO;
- Either<GraphRelation, TitanOperationStatus> result = titanGenericDao.deleteRelation(productData,
- groupingData, groupingLabel);
- log.debug("After dissociating grouping {} from product {}. Edge type is {}", groupingData, productData,
- groupingLabel);
+ Either<GraphRelation, TitanOperationStatus> result = titanGenericDao.deleteRelation(productData, groupingData, groupingLabel);
+ log.debug("After dissociating grouping {} from product {}. Edge type is {}", groupingData, productData, groupingLabel);
if (result.isRight()) {
return result.right().value();
}
@@ -479,8 +417,7 @@ public class ProductOperation extends ComponentOperation implements IProductOper
return getProduct(uniqueId, componentParametersView, inTransaction);
}
- private Either<Product, StorageOperationStatus> getProduct(String uniqueId,
- ComponentParametersView componentParametersView, boolean inTransaction) {
+ private Either<Product, StorageOperationStatus> getProduct(String uniqueId, ComponentParametersView componentParametersView, boolean inTransaction) {
Product product = null;
Either<Product, StorageOperationStatus> result = null;
try {
@@ -488,8 +425,7 @@ public class ProductOperation extends ComponentOperation implements IProductOper
NodeTypeEnum productNodeType = NodeTypeEnum.Product;
NodeTypeEnum compInstNodeType = NodeTypeEnum.Service;
- Either<ProductMetadataData, StorageOperationStatus> getComponentByLabel = getComponentByLabelAndId(uniqueId,
- productNodeType, ProductMetadataData.class);
+ Either<ProductMetadataData, StorageOperationStatus> getComponentByLabel = getComponentByLabelAndId(uniqueId, productNodeType, ProductMetadataData.class);
if (getComponentByLabel.isRight()) {
result = Either.right(getComponentByLabel.right().value());
return result;
@@ -499,12 +435,10 @@ public class ProductOperation extends ComponentOperation implements IProductOper
// 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<Product, ActionStatus> componentFromCacheIfUpToDate = this.getComponentFromCacheIfUpToDate(uniqueId,
- productData, componentParametersView, Product.class, ComponentTypeEnum.PRODUCT);
+ Either<Product, ActionStatus> componentFromCacheIfUpToDate = this.getComponentFromCacheIfUpToDate(uniqueId, productData, componentParametersView, Product.class, ComponentTypeEnum.PRODUCT);
if (componentFromCacheIfUpToDate.isLeft()) {
Product cachedProduct = componentFromCacheIfUpToDate.left().value();
- log.debug("Product {} with uid {} was fetched from cache.", cachedProduct.getName(),
- cachedProduct.getUniqueId());
+ log.debug("Product {} with uid {} was fetched from cache.", cachedProduct.getName(), cachedProduct.getUniqueId());
return Either.left(cachedProduct);
}
@@ -533,9 +467,7 @@ public class ProductOperation extends ComponentOperation implements IProductOper
}
}
- 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, product, productNodeType, compInstNodeType);
if (status != TitanOperationStatus.OK) {
@@ -545,7 +477,7 @@ public class ProductOperation extends ComponentOperation implements IProductOper
}
}
if (false == componentParametersView.isIgnoreComponentInstancesProperties()) {
- status = setComponentInstancesPropertiesFromGraph(uniqueId, product);
+ status = setComponentInstancesPropertiesFromGraph(product);
if (status != TitanOperationStatus.OK) {
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
return result;
@@ -683,8 +615,7 @@ public class ProductOperation extends ComponentOperation implements IProductOper
// }
private TitanOperationStatus setAllVersions(Product product) {
- Either<Map<String, String>, TitanOperationStatus> res = getVersionList(NodeTypeEnum.Product,
- product.getVersion(), product, ProductMetadataData.class);
+ Either<Map<String, String>, TitanOperationStatus> res = getVersionList(NodeTypeEnum.Product, product.getVersion(), product, ProductMetadataData.class);
if (res.isRight()) {
return res.right().value();
}
@@ -692,8 +623,7 @@ public class ProductOperation extends ComponentOperation implements IProductOper
return TitanOperationStatus.OK;
}
- private Either<Product, StorageOperationStatus> sendError(TitanOperationStatus status,
- StorageOperationStatus statusIfNotFound) {
+ private Either<Product, StorageOperationStatus> sendError(TitanOperationStatus status, StorageOperationStatus statusIfNotFound) {
Either<Product, StorageOperationStatus> result;
if (status == TitanOperationStatus.NOT_FOUND) {
result = Either.right(statusIfNotFound);
@@ -708,9 +638,8 @@ public class ProductOperation extends ComponentOperation implements IProductOper
TitanOperationStatus setComponentCategoriesFromGraph(Component component) {
Product product = (Product) component;
// Building the cat->subcat->grouping triples
- Either<List<ImmutablePair<GroupingData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao
- .getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Product), product.getUniqueId(),
- GraphEdgeLabels.CATEGORIZED_TO, NodeTypeEnum.ProductGrouping, GroupingData.class);
+ Either<List<ImmutablePair<GroupingData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Product), product.getUniqueId(), GraphEdgeLabels.CATEGORIZED_TO,
+ NodeTypeEnum.ProductGrouping, GroupingData.class);
if (childrenNodes.isRight()) {
if (childrenNodes.right().value() != TitanOperationStatus.NOT_FOUND) {
log.debug("Error when finding groupings for this product, error {}", childrenNodes.right().value());
@@ -725,19 +654,15 @@ public class ProductOperation extends ComponentOperation implements IProductOper
List<ImmutablePair<GroupingData, GraphEdge>> valueList = childrenNodes.left().value();
for (ImmutablePair<GroupingData, GraphEdge> groupPair : valueList) {
GroupingData groupingData = groupPair.getLeft();
- Either<ImmutablePair<SubCategoryData, GraphEdge>, TitanOperationStatus> parentSubCat = titanGenericDao
- .getParentNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ProductGrouping),
- (String) groupingData.getUniqueId(), GraphEdgeLabels.GROUPING,
- NodeTypeEnum.ProductSubcategory, SubCategoryData.class);
+ Either<ImmutablePair<SubCategoryData, GraphEdge>, TitanOperationStatus> parentSubCat = titanGenericDao.getParentNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ProductGrouping), (String) groupingData.getUniqueId(),
+ GraphEdgeLabels.GROUPING, NodeTypeEnum.ProductSubcategory, SubCategoryData.class);
if (parentSubCat.isRight()) {
log.debug("Cannot find subcategory for grouping {}", groupingData.getUniqueId());
return parentSubCat.right().value();
}
SubCategoryData subCatData = parentSubCat.left().value().getLeft();
- Either<ImmutablePair<CategoryData, GraphEdge>, TitanOperationStatus> parentCat = titanGenericDao
- .getParentNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ProductSubcategory),
- (String) subCatData.getUniqueId(), GraphEdgeLabels.SUB_CATEGORY,
- NodeTypeEnum.ProductCategory, CategoryData.class);
+ Either<ImmutablePair<CategoryData, GraphEdge>, TitanOperationStatus> parentCat = titanGenericDao.getParentNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ProductSubcategory), (String) subCatData.getUniqueId(),
+ GraphEdgeLabels.SUB_CATEGORY, NodeTypeEnum.ProductCategory, CategoryData.class);
if (parentCat.isRight()) {
log.debug("Cannot find category for subcategory {}", subCatData.getUniqueId());
return parentCat.right().value();
@@ -752,11 +677,7 @@ public class ProductOperation extends ComponentOperation implements IProductOper
SubCategoryDefinition subDef = new SubCategoryDefinition(subDefinition);
GroupingDefinition groupingDef = new GroupingDefinition(groupingDefinition);
- if (log.isDebugEnabled()) {
- log.debug("Found category {} -> subcategory {} -> grouping {} for product {}",
- categoryDefinition.getUniqueId(), subCatData.getUniqueId(), groupingData.getUniqueId(),
- product.getUniqueId());
- }
+ log.debug("Found category {} -> subcategory {} -> grouping {} for product {}", categoryDefinition.getUniqueId(), subCatData.getUniqueId(), groupingData.getUniqueId(), product.getUniqueId());
Map<SubCategoryDefinition, List<GroupingDefinition>> subMap = categoriesDataStructure.get(categoryDef);
if (subMap == null) {
subMap = new HashMap<>();
@@ -773,14 +694,12 @@ public class ProductOperation extends ComponentOperation implements IProductOper
return TitanOperationStatus.OK;
}
- private void convertToCategoriesList(Product product,
- Map<CategoryDefinition, Map<SubCategoryDefinition, List<GroupingDefinition>>> categoriesDataStructure) {
+ private void convertToCategoriesList(Product product, Map<CategoryDefinition, Map<SubCategoryDefinition, List<GroupingDefinition>>> categoriesDataStructure) {
List<CategoryDefinition> categoryDataList = product.getCategories();
if (categoryDataList == null) {
categoryDataList = new ArrayList<CategoryDefinition>();
}
- for (Entry<CategoryDefinition, Map<SubCategoryDefinition, List<GroupingDefinition>>> triple : categoriesDataStructure
- .entrySet()) {
+ for (Entry<CategoryDefinition, Map<SubCategoryDefinition, List<GroupingDefinition>>> triple : categoriesDataStructure.entrySet()) {
CategoryDefinition categoryDefinition = triple.getKey();
List<SubCategoryDefinition> subList = new ArrayList<>();
categoryDefinition.setSubcategories(subList);
@@ -795,13 +714,11 @@ public class ProductOperation extends ComponentOperation implements IProductOper
categoryDataList.add(categoryDefinition);
}
product.setCategories(categoryDataList);
- log.debug("Fetched categories for product {}, categories: {}", product.getUniqueId(),
- Arrays.toString(categoryDataList.toArray()));
+ log.debug("Fetched categories for product {}, categories: {}", product.getUniqueId(), Arrays.toString(categoryDataList.toArray()));
}
private ProductMetadataData getProductMetadataDataFromProduct(Product product) {
- ProductMetadataData productMetadata = new ProductMetadataData(
- (ProductMetadataDataDefinition) product.getComponentMetadataDefinition().getMetadataDataDefinition());
+ ProductMetadataData productMetadata = new ProductMetadataData((ProductMetadataDataDefinition) product.getComponentMetadataDefinition().getMetadataDataDefinition());
return productMetadata;
}
@@ -820,14 +737,11 @@ public class ProductOperation extends ComponentOperation implements IProductOper
@SuppressWarnings("unchecked")
@Override
- public <T> Either<T, StorageOperationStatus> cloneComponent(T other, String version,
- LifecycleStateEnum targetLifecycle, boolean inTransaction) {
- return (Either<T, StorageOperationStatus>) cloneProduct((Product) other, version, targetLifecycle,
- inTransaction);
+ public <T> Either<T, StorageOperationStatus> cloneComponent(T other, String version, LifecycleStateEnum targetLifecycle, boolean inTransaction) {
+ return (Either<T, StorageOperationStatus>) cloneProduct((Product) other, version, targetLifecycle, inTransaction);
}
- private Either<Product, StorageOperationStatus> cloneProduct(Product other, String version,
- LifecycleStateEnum targetLifecycle, boolean inTransaction) {
+ private Either<Product, StorageOperationStatus> cloneProduct(Product other, String version, LifecycleStateEnum targetLifecycle, boolean inTransaction) {
Either<Product, StorageOperationStatus> result = null;
try {
@@ -835,12 +749,10 @@ public class ProductOperation extends ComponentOperation implements IProductOper
other.setVersion(version);
other.setUniqueId(null);
- Either<Integer, StorageOperationStatus> counterStatus = getComponentInstanceCoutner(origProductId,
- NodeTypeEnum.Product);
+ Either<Integer, StorageOperationStatus> counterStatus = getComponentInstanceCoutner(origProductId, NodeTypeEnum.Product);
if (counterStatus.isRight()) {
StorageOperationStatus status = counterStatus.right().value();
- log.error("failed to get resource instance counter on product {}. status={}", origProductId,
- counterStatus);
+ log.error("failed to get resource instance counter on product {}. status={}", origProductId, counterStatus);
result = Either.right(status);
return result;
}
@@ -861,12 +773,10 @@ public class ProductOperation extends ComponentOperation implements IProductOper
return result;
}
- Either<Integer, StorageOperationStatus> setResourceInstanceCounter = setComponentInstanceCounter(
- product.getUniqueId(), NodeTypeEnum.Product, counterStatus.left().value(), inTransaction);
+ Either<Integer, StorageOperationStatus> setResourceInstanceCounter = setComponentInstanceCounter(product.getUniqueId(), NodeTypeEnum.Product, counterStatus.left().value(), inTransaction);
if (setResourceInstanceCounter.isRight()) {
StorageOperationStatus status = setResourceInstanceCounter.right().value();
- log.error("failed to set resource instance counter on product {}. status={}", product.getUniqueId(),
- setResourceInstanceCounter);
+ log.error("failed to set resource instance counter on product {}. status={}", product.getUniqueId(), setResourceInstanceCounter);
result = Either.right(status);
return result;
}
@@ -896,8 +806,7 @@ public class ProductOperation extends ComponentOperation implements IProductOper
}
}
- private Either<Product, StorageOperationStatus> getByNamesAndVersion(String nameKey, String nameValue,
- String version, Map<String, Object> additionalParams, boolean inTransaction) {
+ private Either<Product, 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);
@@ -906,8 +815,7 @@ public class ProductOperation extends ComponentOperation implements IProductOper
props.putAll(additionalParams);
}
- Either<List<ProductMetadataData>, TitanOperationStatus> byCriteria = titanGenericDao
- .getByCriteria(NodeTypeEnum.Product, props, ProductMetadataData.class);
+ Either<List<ProductMetadataData>, TitanOperationStatus> byCriteria = titanGenericDao.getByCriteria(NodeTypeEnum.Product, props, ProductMetadataData.class);
if (byCriteria.isRight()) {
return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(byCriteria.right().value()));
@@ -919,11 +827,9 @@ public class ProductOperation extends ComponentOperation implements IProductOper
return Either.right(StorageOperationStatus.GENERAL_ERROR);
}
ProductMetadataData productData = dataList.get(0);
- Either<Product, StorageOperationStatus> product = getProduct(
- productData.getMetadataDataDefinition().getUniqueId(), inTransaction);
+ Either<Product, StorageOperationStatus> product = getProduct(productData.getMetadataDataDefinition().getUniqueId(), inTransaction);
if (product.isRight()) {
- log.debug("Failed to fetch product, name {} id {}", productData.getMetadataDataDefinition().getName(),
- productData.getMetadataDataDefinition().getUniqueId());
+ log.debug("Failed to fetch product, name {} id {}", productData.getMetadataDataDefinition().getName(), productData.getMetadataDataDefinition().getUniqueId());
}
return product;
}
@@ -936,49 +842,42 @@ public class ProductOperation extends ComponentOperation implements IProductOper
}
@Override
- protected <T extends org.openecomp.sdc.be.model.Component> StorageOperationStatus updateDerived(
- org.openecomp.sdc.be.model.Component component, org.openecomp.sdc.be.model.Component currentComponent,
- ComponentMetadataData componentData, Class<T> clazz) {
+ protected <T extends org.openecomp.sdc.be.model.Component> StorageOperationStatus updateDerived(org.openecomp.sdc.be.model.Component component, org.openecomp.sdc.be.model.Component currentComponent, ComponentMetadataData componentData,
+ Class<T> clazz) {
log.debug("Derived class isn't supported for product");
return StorageOperationStatus.OK;
}
@Override
- public Either<Integer, StorageOperationStatus> increaseAndGetComponentInstanceCounter(String componentId,
- boolean inTransaction) {
+ public Either<Integer, StorageOperationStatus> increaseAndGetComponentInstanceCounter(String componentId, boolean inTransaction) {
return increaseAndGetComponentInstanceCounter(componentId, NodeTypeEnum.Product, inTransaction);
}
@Override
- protected StorageOperationStatus validateCategories(Component currentComponent, Component component,
- ComponentMetadataData componentData, NodeTypeEnum type) {
+ protected StorageOperationStatus validateCategories(Component currentComponent, Component component, ComponentMetadataData componentData, NodeTypeEnum type) {
// As agreed with Ella, update categories - delete old and create new
StorageOperationStatus status = StorageOperationStatus.OK;
List<CategoryDefinition> newcategories = component.getCategories();
List<CategoryDefinition> currentcategories = currentComponent.getCategories();
if (newcategories != null) {
if (currentcategories != null && !currentcategories.isEmpty()) {
- Either<List<GroupingData>, StorageOperationStatus> findGroupingsForComponent = findGroupingsForComponent(
- NodeTypeEnum.ProductGrouping, currentComponent);
+ Either<List<GroupingData>, StorageOperationStatus> findGroupingsForComponent = findGroupingsForComponent(NodeTypeEnum.ProductGrouping, currentComponent);
if (findGroupingsForComponent.isRight()) {
status = findGroupingsForComponent.right().value();
}
List<GroupingData> groupingDataToDissociate = findGroupingsForComponent.left().value();
- TitanOperationStatus titanStatus = dissociateCategoriesFromProduct((ProductMetadataData) componentData,
- groupingDataToDissociate);
+ TitanOperationStatus titanStatus = dissociateCategoriesFromProduct((ProductMetadataData) componentData, groupingDataToDissociate);
if (titanStatus != TitanOperationStatus.OK) {
status = DaoStatusConverter.convertTitanStatusToStorageStatus(titanStatus);
}
}
if (!newcategories.isEmpty()) {
- Either<List<GroupingData>, StorageOperationStatus> findGroupingsForComponent = findGroupingsForComponent(
- NodeTypeEnum.ProductGrouping, component);
+ Either<List<GroupingData>, StorageOperationStatus> findGroupingsForComponent = findGroupingsForComponent(NodeTypeEnum.ProductGrouping, component);
if (findGroupingsForComponent.isRight()) {
status = findGroupingsForComponent.right().value();
}
List<GroupingData> groupingDataToAssociate = findGroupingsForComponent.left().value();
- TitanOperationStatus titanStatus = associateCategoriesToProduct((ProductMetadataData) componentData,
- groupingDataToAssociate);
+ TitanOperationStatus titanStatus = associateCategoriesToProduct((ProductMetadataData) componentData, groupingDataToAssociate);
if (titanStatus != TitanOperationStatus.OK) {
status = DaoStatusConverter.convertTitanStatusToStorageStatus(titanStatus);
}
@@ -987,11 +886,10 @@ public class ProductOperation extends ComponentOperation implements IProductOper
return status;
}
+ @Override
@SuppressWarnings("unchecked")
- public Either<List<Product>, StorageOperationStatus> getFollowed(String userId,
- Set<LifecycleStateEnum> lifecycleStates, Set<LifecycleStateEnum> lastStateStates, boolean inTransaction) {
- return (Either<List<Product>, StorageOperationStatus>) (Either<?, StorageOperationStatus>) getFollowedComponent(
- userId, lifecycleStates, lastStateStates, inTransaction, titanGenericDao, NodeTypeEnum.Product);
+ public Either<List<Product>, StorageOperationStatus> getFollowed(String userId, Set<LifecycleStateEnum> lifecycleStates, Set<LifecycleStateEnum> lastStateStates, boolean inTransaction) {
+ return (Either<List<Product>, StorageOperationStatus>) (Either<?, StorageOperationStatus>) getFollowedComponent(userId, lifecycleStates, lastStateStates, inTransaction, titanGenericDao, NodeTypeEnum.Product);
}
@Override
@@ -1011,11 +909,9 @@ public class ProductOperation extends ComponentOperation implements IProductOper
@SuppressWarnings("unchecked")
@Override
- public Either<Component, StorageOperationStatus> markComponentToDelete(Component componentToDelete,
- boolean inTransaction) {
+ public Either<Component, StorageOperationStatus> markComponentToDelete(Component componentToDelete, boolean inTransaction) {
// markComponentToDelete is not defined yet for products
- return (Either<Component, StorageOperationStatus>) (Either<?, StorageOperationStatus>) deleteProduct(
- componentToDelete.getUniqueId(), inTransaction);
+ return (Either<Component, StorageOperationStatus>) (Either<?, StorageOperationStatus>) deleteProduct(componentToDelete.getUniqueId(), inTransaction);
}
@Override
@@ -1040,28 +936,22 @@ public class ProductOperation extends ComponentOperation implements IProductOper
return Either.left(new ArrayList<>());
}
- public Either<Product, StorageOperationStatus> getProductByNameAndVersion(String productName, String productVersion,
- boolean inTransaction) {
- return getByNamesAndVersion(GraphPropertiesDictionary.NORMALIZED_NAME.getProperty(),
- ValidationUtils.normaliseComponentName(productName), productVersion, null, inTransaction);
+ public Either<Product, StorageOperationStatus> getProductByNameAndVersion(String productName, String productVersion, boolean inTransaction) {
+ return getByNamesAndVersion(GraphPropertiesDictionary.NORMALIZED_NAME.getProperty(), ValidationUtils.normaliseComponentName(productName), productVersion, null, inTransaction);
}
@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) {
return (Either<T, StorageOperationStatus>) getProduct(id, false);
}
- public Either<Product, StorageOperationStatus> updateProduct(Product product, boolean inTransaction,
- ComponentParametersView filterResultView) {
- return (Either<Product, StorageOperationStatus>) updateComponentFilterResult(product, inTransaction,
- titanGenericDao, product.getClass(), NodeTypeEnum.Service, filterResultView);
+ public Either<Product, StorageOperationStatus> updateProduct(Product product, boolean inTransaction, ComponentParametersView filterResultView) {
+ return (Either<Product, StorageOperationStatus>) updateComponentFilterResult(product, inTransaction, titanGenericDao, product.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>) updateProduct((Product) component, inTransaction, filterResultView);
}
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/PropertyOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/PropertyOperation.java
index 7d775b3b3d..9b900b0ae2 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/PropertyOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/PropertyOperation.java
@@ -32,14 +32,11 @@ import java.util.Map.Entry;
import java.util.Set;
import java.util.StringJoiner;
import java.util.function.Consumer;
-import java.util.function.Supplier;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
-import com.thinkaurelius.titan.core.TitanTransaction;
-import com.thinkaurelius.titan.core.TitanVertex;
-
+import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.tinkerpop.gremlin.structure.Edge;
import org.codehaus.jackson.JsonNode;
@@ -60,7 +57,6 @@ import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
import org.openecomp.sdc.be.datatypes.elements.PropertyRule;
import org.openecomp.sdc.be.datatypes.elements.SchemaDefinition;
import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
-import org.openecomp.sdc.be.model.ComponentInstanceInput;
import org.openecomp.sdc.be.model.ComponentInstanceProperty;
import org.openecomp.sdc.be.model.DataTypeDefinition;
import org.openecomp.sdc.be.model.IComplexDefaultValue;
@@ -69,7 +65,6 @@ import org.openecomp.sdc.be.model.PropertyDefinition;
import org.openecomp.sdc.be.model.operations.api.IPropertyOperation;
import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
import org.openecomp.sdc.be.model.tosca.ToscaPropertyType;
-import org.openecomp.sdc.be.model.tosca.ToscaType;
import org.openecomp.sdc.be.model.tosca.constraints.ConstraintType;
import org.openecomp.sdc.be.model.tosca.constraints.GreaterOrEqualConstraint;
import org.openecomp.sdc.be.model.tosca.constraints.GreaterThanConstraint;
@@ -79,22 +74,18 @@ import org.openecomp.sdc.be.model.tosca.constraints.LessThanConstraint;
import org.openecomp.sdc.be.model.tosca.constraints.MinLengthConstraint;
import org.openecomp.sdc.be.model.tosca.constraints.ValidValuesConstraint;
import org.openecomp.sdc.be.model.tosca.converters.PropertyValueConverter;
-import org.openecomp.sdc.be.model.tosca.validators.DataTypeValidatorConverter;
import org.openecomp.sdc.be.model.tosca.validators.PropertyTypeValidator;
import org.openecomp.sdc.be.resources.data.ComponentInstanceData;
import org.openecomp.sdc.be.resources.data.DataTypeData;
-import org.openecomp.sdc.be.resources.data.InputValueData;
import org.openecomp.sdc.be.resources.data.PropertyData;
import org.openecomp.sdc.be.resources.data.PropertyValueData;
import org.openecomp.sdc.be.resources.data.ResourceMetadataData;
import org.openecomp.sdc.be.resources.data.UniqueIdData;
-import org.openecomp.sdc.common.api.Constants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
import com.google.gson.JsonArray;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
@@ -104,13 +95,15 @@ import com.google.gson.JsonParseException;
import com.google.gson.JsonParser;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
-import com.google.gson.reflect.TypeToken;
+import com.thinkaurelius.titan.core.TitanVertex;
import fj.data.Either;
@Component("property-operation")
public class PropertyOperation extends AbstractOperation implements IPropertyOperation {
+ private TitanGenericDao titanGenericDao;
+
public static void main(String[] args) {
List<Pattern> buildFunctionPatterns = buildFunctionPatterns();
@@ -126,10 +119,9 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
}
- public static final String PROPERTY = "property";
-
- public PropertyOperation() {
+ public PropertyOperation(@Qualifier("titan-generic-dao") TitanGenericDao titanGenericDao) {
super();
+ this.titanGenericDao = titanGenericDao;
}
private static Logger log = LoggerFactory.getLogger(PropertyOperation.class.getName());
@@ -165,7 +157,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
@Override
public Either<PropertyDefinition, StorageOperationStatus> getPropertyOfResource(String propertyName, String resourceId) {
- String propertyId = UniqueIdBuilder.buildPropertyUniqueId(resourceId, propertyName);
+ String propertyId = UniqueIdBuilder.buildComponentPropertyUniqueId(resourceId, propertyName);
Either<PropertyData, TitanOperationStatus> getResult = this.titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Property), propertyId, PropertyData.class);
if (getResult.isLeft()) {
@@ -173,7 +165,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
return Either.left(convertPropertyDataToPropertyDefinition(propertyData, propertyName, resourceId));
} else {
TitanOperationStatus titanStatus = getResult.right().value();
- log.debug("Node with id {} was not found in the graph. Status: {}", propertyId, titanStatus);
+ log.debug("Node with id {} was not found in the graph. status: {}", propertyId, titanStatus);
StorageOperationStatus storageOperationStatus = DaoStatusConverter.convertTitanStatusToStorageStatus(titanStatus);
return Either.right(storageOperationStatus);
}
@@ -192,10 +184,12 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
*
* Either<PropertyData, TitanOperationStatus> status = addPropertyToGraph(propertyName, propertyDefinition, resourceId);
*
- * if (status.isRight()) { titanGenericDao.rollback(); log.error("Failed to add property " + propertyName + " to resource " + resourceId); return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status. right().value())); } else
+ * if (status.isRight()) { titanGenericDao.rollback();
+ * log.error("Failed to add property {} to resource {}, propertyName, resourceId);
+ * return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status. right().value())); } else
* { titanGenericDao.commit(); PropertyData propertyData = status.left().value();
*
- * PropertyDefinition propertyDefResult = convertPropertyDataToPropertyDefinition(propertyData, propertyName, resourceId); log.debug("The returned PropertyDefintion is {}", propertyDefinition); return Either.left(propertyDefResult); }
+ * PropertyDefinition propertyDefResult = convertPropertyDataToPropertyDefinition(propertyData, propertyName, resourceId); log.debug("The returned PropertyDefintion is " + propertyDefinition); return Either.left(propertyDefResult); }
*
*
* }
@@ -244,7 +238,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
PropertyDefinition propertyDefResult = new PropertyDefinition(propertyDataResult.getPropertyDataDefinition());
propertyDefResult.setConstraints(convertConstraints(propertyDataResult.getConstraints()));
propertyDefResult.setName(propertyName);
- propertyDefResult.setParentUniqueId(resourceId);
+// propertyDefResult.setParentUniqueId(resourceId);
return propertyDefResult;
}
@@ -545,7 +539,9 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
*
* ImmutablePair<JsonElement, Boolean> validateResult = dataTypeValidatorConverter.validateAndUpdate(value, dataTypeDefinition, allDataTypes);
*
- * if (validateResult.right.booleanValue() == false) { log.debug("The value {} of property from type {} is invalid", value, propertyType); return Either.right(false); }
+ * if (validateResult.right.booleanValue() == false) {
+ * log.debug("The value {} of property from type {} is invalid", value, propertyType);
+ * return Either.right(false); }
*
* JsonElement jsonElement = validateResult.left;
*
@@ -555,9 +551,9 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
*
* }
*
- * log.trace("After validating property type " + propertyType);
+ * log.trace("After validating property type {}", propertyType);
*
- * boolean isValidProperty = isValidValue(type, value, innerType); if (false == isValidProperty) { log.debug("The value {} of property from type {} is invalid", value, type); return Either.right(false); }
+ * boolean isValidProperty = isValidValue(type, value, innerType); if (false == isValidProperty) { log.debug("The value " + value + " of property from type " + type + " is invalid"); return Either.right(false); }
*
*
* Object convertedValue = value; if (false == isEmptyValue(value)) { PropertyValueConverter converter = type.getConverter(); convertedValue = converter.convert(value, null); }
@@ -572,7 +568,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
List<PropertyConstraint> constraints = propertyDefinition.getConstraints();
- propertyDefinition.setUniqueId(UniqueIdBuilder.buildPropertyUniqueId(resourceId, propertyName));
+ propertyDefinition.setUniqueId(UniqueIdBuilder.buildComponentPropertyUniqueId(resourceId, propertyName));
PropertyData propertyData = new PropertyData(propertyDefinition, convertConstraintsToString(constraints));
log.debug("Before adding property to graph {}", propertyData);
@@ -580,7 +576,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
log.debug("After adding property to graph {}", propertyData);
if (createNodeResult.isRight()) {
TitanOperationStatus operationStatus = createNodeResult.right().value();
- log.error("Failed to add property {} to graph. Status is {}", propertyName, operationStatus);
+ log.error("Failed to add property {} to graph. status is {}", propertyName, operationStatus);
return Either.right(operationStatus);
}
@@ -589,7 +585,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(resourceData, propertyData, GraphEdgeLabels.PROPERTY, props);
if (createRelResult.isRight()) {
TitanOperationStatus operationStatus = createNodeResult.right().value();
- log.error("Failed to associate resource {} to property {} in graph. Status is {}", resourceId, propertyName, operationStatus);
+ log.error("Failed to associate resource {} to property {} in graph. status is {}", resourceId, propertyName, operationStatus);
return Either.right(operationStatus);
}
@@ -601,7 +597,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
List<PropertyConstraint> constraints = propertyDefinition.getConstraints();
- propertyDefinition.setUniqueId(UniqueIdBuilder.buildPropertyUniqueId(resourceId, propertyName));
+ propertyDefinition.setUniqueId(UniqueIdBuilder.buildComponentPropertyUniqueId(resourceId, propertyName));
PropertyData propertyData = new PropertyData(propertyDefinition, convertConstraintsToString(constraints));
log.debug("Before adding property to graph {}", propertyData);
@@ -609,7 +605,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
log.debug("After adding property to graph {}", propertyData);
if (createNodeResult.isRight()) {
TitanOperationStatus operationStatus = createNodeResult.right().value();
- log.error("Failed to add property {} to graph. status is {}", propertyName, operationStatus);
+ log.error("Failed to add property {} to graph. status is ", propertyName, operationStatus);
return operationStatus;
}
@@ -731,7 +727,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
log.debug("After adding property to graph {}", propertyData);
if (createNodeResult.isRight()) {
TitanOperationStatus operationStatus = createNodeResult.right().value();
- log.error("Failed to add property {} to graph. Status is {}", propertyName, operationStatus);
+ log.error("Failed to add property {} to graph. status is {}", propertyName, operationStatus);
return Either.right(operationStatus);
}
@@ -739,11 +735,11 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
props.put(GraphPropertiesDictionary.NAME.getProperty(), propertyName);
UniqueIdData uniqueIdData = new UniqueIdData(nodeType, uniqueId);
- log.debug("Before associating {} to property {}.", uniqueIdData, propertyName);
+ log.debug("Before associating {} to property {}", uniqueIdData, propertyName);
Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(uniqueIdData, propertyData, GraphEdgeLabels.PROPERTY, props);
if (createRelResult.isRight()) {
TitanOperationStatus operationStatus = createNodeResult.right().value();
- log.error("Failed to associate resource {} to property {} in graph. Status is {}", uniqueId, propertyName, operationStatus);
+ log.error("Failed to associate resource {} to property {} in graph. status is {}", uniqueId, propertyName, operationStatus);
return Either.right(operationStatus);
}
@@ -830,7 +826,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
String propertyUid = propertyDefinition.getUniqueId();
Either<PropertyData, TitanOperationStatus> deletePropertyRes = deletePropertyFromGraph(propertyUid);
if (deletePropertyRes.isRight()) {
- log.error("Failed to delete property with id " + propertyUid);
+ log.error("Failed to delete property with id {}", propertyUid);
TitanOperationStatus status = deletePropertyRes.right().value();
if (status == TitanOperationStatus.NOT_FOUND) {
status = TitanOperationStatus.INVALID_ID;
@@ -887,8 +883,10 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
log.debug("Property {} is associated to node {}", propertyName, uniqueId);
PropertyData propertyData = immutablePair.getKey();
PropertyDefinition propertyDefinition = this.convertPropertyDataToPropertyDefinition(propertyData, propertyName, uniqueId);
-
- properties.add(propertyDefinition);
+ //Adds parent property to List if it hasn't been overrided in one of the children
+ if(!properties.stream().filter(p -> p.getName().equals(propertyDefinition.getName())).findAny().isPresent()){
+ properties.add(propertyDefinition);
+ }
if (log.isTraceEnabled())
log.trace("findPropertiesOfNode - property {} associated to node {}", propertyDefinition, uniqueId);
@@ -898,24 +896,28 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
return TitanOperationStatus.OK;
}
-
- public boolean isPropertyExist(List<PropertyDefinition> properties, String resourceUid, String propertyName) {
-
- if (properties == null) {
- return false;
- }
-
- for (PropertyDefinition propertyDefinition : properties) {
- String parentUniqueId = propertyDefinition.getParentUniqueId();
- String name = propertyDefinition.getName();
-
- if (parentUniqueId.equals(resourceUid) && name.equals(propertyName)) {
- return true;
+/**
+ * Checks existence of a property with the same name belonging to the same resource
+ * or existence of property with the same name and different type (including derived from hierarchy)
+ * @param properties
+ * @param resourceUid
+ * @param propertyName
+ * @param propertyType
+ * @return
+ */
+ public boolean isPropertyExist(List<PropertyDefinition> properties, String resourceUid, String propertyName, String propertyType) {
+ boolean result = false;
+ if (!CollectionUtils.isEmpty(properties)) {
+ for (PropertyDefinition propertyDefinition : properties) {
+
+ if ( propertyDefinition.getName().equals(propertyName) &&
+ (propertyDefinition.getParentUniqueId().equals(resourceUid) || !propertyDefinition.getType().equals(propertyType)) ) {
+ result = true;
+ break;
+ }
}
}
-
- return false;
-
+ return result;
}
/**
@@ -947,7 +949,9 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
* "Failed to update property value on instance. Status is " + updatePropertyOfResourceInstance.right().value(), ErrorSeverity.ERROR); return Either.right(updatePropertyOfResourceInstance.right().value()); } return
* Either.left(updatePropertyOfResourceInstance.left().value()); }
*
- * if (isPropertyValueExists.getLeft() != TitanOperationStatus.NOT_FOUND) { log.debug("After finding property value of {} on component instance {}", propertyId, resourceInstanceId); return Either.right(isPropertyValueExists.getLeft()); }
+ * if (isPropertyValueExists.getLeft() != TitanOperationStatus.NOT_FOUND) {
+ * log.debug("After finding property value of {} on componenet instance {}", propertyId, resourceInstanceId);
+ * return Either.right(isPropertyValueExists.getLeft()); }
*
* String propertyType = propertyData.getPropertyDataDefinition().getType(); String value = resourceInstanceProperty.getValue(); Either<Object, Boolean> isValid = validateAndUpdatePropertyValue(propertyType, value);
*
@@ -961,7 +965,8 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
* logBeInvalidValueError("Add property value", pair.getLeft(), resourceInstanceProperty.getName(), propertyType); return Either.right(TitanOperationStatus.ILLEGAL_ARGUMENT); } addRulesToNewPropertyValue(propertyValueData,
* resourceInstanceProperty, resourceInstanceId);
*
- * log.debug("Before adding property value to graph {}", propertyValueData); Either<PropertyValueData, TitanOperationStatus> createNodeResult = titanGenericDao .createNode(propertyValueData, PropertyValueData.class);
+ * log.debug("Before adding property value to graph {}", propertyValueData);
+ * Either<PropertyValueData, TitanOperationStatus> createNodeResult = titanGenericDao .createNode(propertyValueData, PropertyValueData.class);
* log.debug("After adding property value to graph {}", propertyValueData);
*
* Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao .createRelation(propertyValueData, propertyData, GraphEdgeLabels.PROPERTY_IMPL, null);
@@ -1108,7 +1113,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
* Either<Object, Boolean> isValid = validateAndUpdatePropertyValue(propertyType, value);
*
* String newValue = value; if (isValid.isRight()) { Boolean res = isValid.right().value(); if (res == false) { return Either.right(TitanOperationStatus.ILLEGAL_ARGUMENT); } } else { Object object = isValid.left().value(); if (object != null) {
- * newValue = object.toString(); } } PropertyValueData propertyValueData = findPropertyValueRes.left().value(); log.debug("Going to update property value from {} to {}", propertyValueData.getValue(), newValue);
+ * newValue = object.toString(); } } PropertyValueData propertyValueData = findPropertyValueRes.left().value(); log.debug("Going to update property value from " + propertyValueData.getValue() + " to " + newValue);
* propertyValueData.setValue(newValue);
*
* ImmutablePair<String, Boolean> pair = validateAndUpdateRules(propertyType, resourceInstanceProperty.getRules()); if (pair.getRight() != null && pair.getRight() == false) { BeEcompErrorManager.getInstance().
@@ -1220,7 +1225,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
*
* ComponentInstanceProperty propertyValueResult = buildResourceInstanceProperty( propertyValueData, resourceInstanceProperty);
*
- * log.debug("The returned ResourceInstanceProperty is {}", propertyValueResult); result = Either.left(propertyValueResult); return result; } }
+ * log.debug("The returned ResourceInstanceProperty is {}", propertyValueResult); result = Either.left(propertyValueResult); return result; } }
*
* finally { if (false == inTransaction) { if (result == null || result.isRight()) { log.error("Going to execute rollback on graph."); titanGenericDao.rollback(); } else { log.debug("Going to execute commit on graph."); titanGenericDao.commit();
* } } }
@@ -1238,7 +1243,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
*
* ComponentInstanceProperty propertyValueResult = buildResourceInstanceProperty( propertyValueData, resourceInstanceProperty);
*
- * log.debug("The returned ResourceInstanceProperty is {}", propertyValueResult); result = Either.left(propertyValueResult); return result; } }
+ * log.debug("The returned ResourceInstanceProperty is {}", propertyValueResult); result = Either.left(propertyValueResult); return result; } }
*
* finally { if (false == inTransaction) { if (result == null || result.isRight()) { log.error("Going to execute rollback on graph."); titanGenericDao.rollback(); } else { log.debug("Going to execute commit on graph."); titanGenericDao.commit();
* } } }
@@ -1306,7 +1311,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
propertyValueResult.setUniqueId(resourceInstanceId);
propertyValueResult.setValue(propertyValueData.getValue());
- log.debug("The returned ResourceInstanceProperty is {}", propertyValueResult);
+ log.debug("The returned ResourceInstanceProperty is {}", propertyValueResult);
result = Either.left(propertyValueResult);
return result;
}
@@ -1425,7 +1430,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
if (innerToscaType == null) {
DataTypeDefinition dataTypeDefinition = dataTypes.get(innerType);
if (dataTypeDefinition == null) {
- log.debug("The inner type {} is not a data type", innerType);
+ log.debug("The inner type {} is not a data type.", innerType);
return new ImmutablePair<String, Boolean>(innerType, false);
} else {
log.debug("The inner type {} is a data type. Data type definition is {}", innerType, dataTypeDefinition);
@@ -1438,7 +1443,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
private boolean isValidComplexValue(DataTypeDefinition foundDt, String value, Map<String, DataTypeDefinition> dataTypes) {
/*
* Either<Map<String, DataTypeDefinition>, TitanOperationStatus> allDataTypesRes = getAllDataTypes(); if (allDataTypesRes.isRight()) { TitanOperationStatus status = allDataTypesRes.right().value();
- * log.debug("Failed to fetch data types from graph. Status is {}", status); return false; }
+ * return false; }
*
* Map<String, DataTypeDefinition> allDataTypes = allDataTypesRes.left().value();
*/
@@ -1483,10 +1488,6 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
public Either<List<ComponentInstanceProperty>, TitanOperationStatus> getAllPropertiesOfResourceInstanceOnlyPropertyDefId(String resourceInstanceUid, NodeTypeEnum instanceNodeType) {
- // Either<ComponentInstanceData, TitanOperationStatus>
- // findResInstanceRes =
- // titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(instanceNodeType),
- // resourceInstanceUid, ComponentInstanceData.class);
Either<TitanVertex, TitanOperationStatus> findResInstanceRes = titanGenericDao.getVertexByProperty(UniqueIdBuilder.getKeyByNodeType(instanceNodeType), resourceInstanceUid);
if (findResInstanceRes.isRight()) {
@@ -1497,11 +1498,6 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
return Either.right(status);
}
- // Either<List<ImmutablePair<PropertyValueData, GraphEdge>>,
- // TitanOperationStatus> propertyImplNodes =
- // titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(instanceNodeType),
- // resourceInstanceUid, GraphEdgeLabels.PROPERTY_VALUE,
- // NodeTypeEnum.PropertyValue, PropertyValueData.class);
Either<List<ImmutablePair<TitanVertex, Edge>>, TitanOperationStatus> propertyImplNodes = titanGenericDao.getChildrenVertecies(UniqueIdBuilder.getKeyByNodeType(instanceNodeType), resourceInstanceUid, GraphEdgeLabels.PROPERTY_VALUE);
if (propertyImplNodes.isRight()) {
@@ -1558,7 +1554,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
*/
public Either<String, TitanOperationStatus> findDefaultValueFromSecondPosition(List<String> pathOfComponentInstances, String propertyUniqueId, String defaultValue) {
- log.trace("In find default value: path=" + pathOfComponentInstances + "propertyUniqId=" + propertyUniqueId + "defaultValue=" + defaultValue);
+ log.trace("In find default value: path= {} propertyUniqId={} defaultValue= {}", pathOfComponentInstances, propertyUniqueId, defaultValue);
if (pathOfComponentInstances == null || pathOfComponentInstances.size() < 2) {
return Either.left(defaultValue);
@@ -1583,7 +1579,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
}
ComponentInstanceProperty foundCompInstanceProperty = fetchByPropertyUid(propertyValuesResult.left().value(), propertyUniqueId);
- log.trace("After finding the component instance property on {}. {}", compInstanceId, foundCompInstanceProperty);
+ log.trace("After finding the component instance property on{} . {}", compInstanceId, foundCompInstanceProperty);
if (foundCompInstanceProperty == null) {
continue;
@@ -1695,7 +1691,9 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
Matcher matcher = pattern.matcher(stringForMatch);
if (matcher.matches()) {
- log.trace("{} matches the rule {}", stringForMatch, patternStr);
+ if (log.isTraceEnabled()) {
+ log.trace("{} matches the rule {}", stringForMatch, patternStr);
+ }
propertyRule = rule;
break;
}
@@ -1752,14 +1750,14 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
if (numberOfMatches == 1) {
instanceProperty.setValue(value);
if (log.isDebugEnabled()) {
- log.debug("Set the value of property " + propertyUniqueId + " " + instanceProperty.getName() + " on path " + pathOfInstances + " to be " + value);
+ log.debug("Set the value of property {} {} on path {} to be {}", propertyUniqueId, instanceProperty.getName(), pathOfInstances, value);
}
} else if (numberOfMatches == 2) {
// In case of another property value match, then use the
// value to be the default value of the property.
instanceProperty.setDefaultValue(value);
if (log.isDebugEnabled()) {
- log.debug("Set the default value of property " + propertyUniqueId + " " + instanceProperty.getName() + " on path " + pathOfInstances + " to be " + value);
+ log.debug("Set the default value of property {} {} on path {} to be {}", propertyUniqueId, instanceProperty.getName(), pathOfInstances, value);
}
break;
}
@@ -1820,19 +1818,19 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
*/
private Either<DataTypeData, TitanOperationStatus> addDataTypeToGraph(DataTypeDefinition dataTypeDefinition) {
- log.debug("Got data type " + dataTypeDefinition);
+ log.debug("Got data type {}", dataTypeDefinition);
String dtUniqueId = UniqueIdBuilder.buildDataTypeUid(dataTypeDefinition.getName());
DataTypeData dataTypeData = buildDataTypeData(dataTypeDefinition, dtUniqueId);
- log.debug("Before adding data type to graph. dataTypeData = " + dataTypeData);
+ log.debug("Before adding data type to graph. dataTypeData = {}", dataTypeData);
Either<DataTypeData, TitanOperationStatus> createDataTypeResult = titanGenericDao.createNode(dataTypeData, DataTypeData.class);
log.debug("After adding data type to graph. status is = {}", createDataTypeResult);
if (createDataTypeResult.isRight()) {
TitanOperationStatus operationStatus = createDataTypeResult.right().value();
- log.debug("Failed to data type " + dataTypeDefinition.getName() + " to graph. status is " + operationStatus);
+ log.debug("Failed to data type {} to graph. status is {}", dataTypeDefinition.getName(), operationStatus);
BeEcompErrorManager.getInstance().logBeFailedAddingNodeTypeError("AddDataType", NodeTypeEnum.DataType.getName());
return Either.right(operationStatus);
}
@@ -1841,19 +1839,19 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
List<PropertyDefinition> properties = dataTypeDefinition.getProperties();
Either<Map<String, PropertyData>, TitanOperationStatus> addPropertiesToDataType = addPropertiesToDataType(resultCTD.getUniqueId(), properties);
if (addPropertiesToDataType.isRight()) {
- log.debug("Failed add properties " + properties + " to data type " + dataTypeDefinition.getName());
+ log.debug("Failed add properties {} to data type {}", properties, dataTypeDefinition.getName());
return Either.right(addPropertiesToDataType.right().value());
}
String derivedFrom = dataTypeDefinition.getDerivedFromName();
if (derivedFrom != null) {
- log.debug("Before creating relation between data type " + dtUniqueId + " to its parent " + derivedFrom);
+ log.debug("Before creating relation between data type {} to its parent {}", dtUniqueId, derivedFrom);
UniqueIdData from = new UniqueIdData(NodeTypeEnum.DataType, dtUniqueId);
String deriveFromUid = UniqueIdBuilder.buildDataTypeUid(derivedFrom);
UniqueIdData to = new UniqueIdData(NodeTypeEnum.DataType, deriveFromUid);
Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(from, to, GraphEdgeLabels.DERIVED_FROM, null);
- log.debug("After create relation between capability type " + dtUniqueId + " to its parent " + derivedFrom + ". status is " + createRelation);
+ log.debug("After create relation between capability type {} to its parent {}. status is {}", dtUniqueId, derivedFrom, createRelation);
if (createRelation.isRight()) {
return Either.right(createRelation.right().value());
}
@@ -1898,19 +1896,19 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
String propertyType = propertyDefinition.getType();
Either<Boolean, TitanOperationStatus> validPropertyType = isValidPropertyType(propertyType);
if (validPropertyType.isRight()) {
- log.debug("Data type " + uniqueId + " contains invalid property type " + propertyType);
+ log.debug("Data type {} contains invalid property type {}", uniqueId, propertyType);
return Either.right(validPropertyType.right().value());
}
Boolean isValid = validPropertyType.left().value();
if (isValid == null || isValid.booleanValue() == false) {
- log.debug("Data type " + uniqueId + " contains invalid property type " + propertyType);
+ log.debug("Data type {} contains invalid property type {}", uniqueId, propertyType);
return Either.right(TitanOperationStatus.INVALID_TYPE);
}
Either<PropertyData, TitanOperationStatus> addPropertyToNodeType = this.addPropertyToNodeType(propertyName, propertyDefinition, NodeTypeEnum.DataType, uniqueId);
if (addPropertyToNodeType.isRight()) {
TitanOperationStatus operationStatus = addPropertyToNodeType.right().value();
- log.debug("Failed to associate data type " + uniqueId + " to property " + propertyName + " in graph. status is " + operationStatus);
+ log.debug("Failed to associate data type {} to property {} in graph. status is {}", uniqueId, propertyName, operationStatus);
BeEcompErrorManager.getInstance().logInternalFlowError("AddPropertyToDataType", "Failed to associate property to data type. Status is " + operationStatus, ErrorSeverity.ERROR);
return Either.right(operationStatus);
}
@@ -1925,7 +1923,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
Either<DataTypeData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(dataTypeData, DataTypeData.class);
if (updateNode.isRight()) {
TitanOperationStatus operationStatus = updateNode.right().value();
- log.debug("Failed to update modification time data type " + uniqueId + " from graph. status is " + operationStatus);
+ log.debug("Failed to update modification time data type {} from graph. status is {}", uniqueId, operationStatus);
BeEcompErrorManager.getInstance().logInternalFlowError("AddPropertyToDataType", "Failed to fetch data type. Status is " + operationStatus, ErrorSeverity.ERROR);
return Either.right(operationStatus);
} else {
@@ -1952,7 +1950,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
if (dataTypesRes.isRight()) {
TitanOperationStatus status = dataTypesRes.right().value();
- log.debug("Data type " + uniqueId + " cannot be found in graph. status is " + status);
+ log.debug("Data type {} cannot be found in graph. status is {}", uniqueId, status);
return Either.right(status);
}
@@ -1961,17 +1959,17 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
TitanOperationStatus propertiesStatus = fillProperties(uniqueId, dataTypeDefinition);
if (propertiesStatus != TitanOperationStatus.OK) {
- log.error("Failed to fetch properties of data type " + uniqueId);
+ log.error("Failed to fetch properties of data type {}", uniqueId);
return Either.right(propertiesStatus);
}
Either<ImmutablePair<DataTypeData, GraphEdge>, TitanOperationStatus> parentNode = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.DataType), uniqueId, GraphEdgeLabels.DERIVED_FROM, NodeTypeEnum.DataType,
DataTypeData.class);
- log.debug("After retrieving DERIVED_FROM node of " + uniqueId + ". status is " + parentNode);
+ log.debug("After retrieving DERIVED_FROM node of {}. status is {}", uniqueId, parentNode);
if (parentNode.isRight()) {
TitanOperationStatus titanOperationStatus = parentNode.right().value();
if (titanOperationStatus != TitanOperationStatus.NOT_FOUND) {
- log.error("Failed to find the parent data type of data type " + uniqueId + ". status is " + titanOperationStatus);
+ log.error("Failed to find the parent data type of data type {}. status is {}", uniqueId, titanOperationStatus);
result = Either.right(titanOperationStatus);
return result;
}
@@ -2002,7 +2000,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
Either<Map<String, PropertyDefinition>, TitanOperationStatus> findPropertiesOfNode = this.findPropertiesOfNode(NodeTypeEnum.DataType, uniqueId);
if (findPropertiesOfNode.isRight()) {
TitanOperationStatus titanOperationStatus = findPropertiesOfNode.right().value();
- log.debug("After looking for properties of vertex " + uniqueId + ". status is " + titanOperationStatus);
+ log.debug("After looking for properties of vertex {}. status is {}", uniqueId, titanOperationStatus);
if (TitanOperationStatus.NOT_FOUND.equals(titanOperationStatus)) {
return TitanOperationStatus.OK;
} else {
@@ -2044,7 +2042,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
DataTypeData capabilityTypeData = eitherStatus.left().value();
DataTypeDefinition dataTypeDefResult = convertDTDataToDTDefinition(capabilityTypeData);
- log.debug("The returned CapabilityTypeDefinition is " + dataTypeDefResult);
+ log.debug("The returned CapabilityTypeDefinition is {}", dataTypeDefResult);
result = Either.left(dataTypeDefResult);
return result;
}
@@ -2079,7 +2077,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
if (ctResult.isRight()) {
TitanOperationStatus status = ctResult.right().value();
if (status != TitanOperationStatus.NOT_FOUND) {
- log.error("Failed to retrieve information on capability type " + name + "status is " + status);
+ log.error("Failed to retrieve information on capability type {} status is {}", name, status);
}
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(ctResult.right().value()));
return result;
@@ -2124,7 +2122,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
if (ctResult.isRight()) {
TitanOperationStatus status = ctResult.right().value();
if (status != TitanOperationStatus.NOT_FOUND) {
- log.error("Failed to retrieve information on capability type " + name + "status is " + status);
+ log.error("Failed to retrieve information on capability type {} status is {}", name, status);
}
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(ctResult.right().value()));
return result;
@@ -2153,7 +2151,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
if (dataTypesRes.isRight()) {
TitanOperationStatus status = dataTypesRes.right().value();
- log.debug("Data type " + uniqueId + " cannot be found in graph. status is " + status);
+ log.debug("Data type {} cannot be found in graph. status is {}", uniqueId, status);
return Either.right(status);
}
@@ -2162,7 +2160,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
TitanOperationStatus propertiesStatus = fillProperties(uniqueId, dataTypeDefinition);
if (propertiesStatus != TitanOperationStatus.OK) {
- log.error("Failed to fetch properties of data type " + uniqueId);
+ log.error("Failed to fetch properties of data type {}", uniqueId);
return Either.right(propertiesStatus);
}
@@ -2184,7 +2182,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
* @return
*/
protected DataTypeDefinition convertDTDataToDTDefinition(DataTypeData dataTypeData) {
- log.debug("The object returned after create data type is " + dataTypeData);
+ log.debug("The object returned after create data type is {}", dataTypeData);
DataTypeDefinition dataTypeDefResult = new DataTypeDefinition(dataTypeData.getDataTypeDataDefinition());
@@ -2206,7 +2204,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
}
}
- private Either<Boolean, TitanOperationStatus> isDefinedInDataTypes(String propertyType) {
+ public Either<Boolean, TitanOperationStatus> isDefinedInDataTypes(String propertyType) {
String dataTypeUid = UniqueIdBuilder.buildDataTypeUid(propertyType);
Either<DataTypeDefinition, TitanOperationStatus> dataTypeByUid = getDataTypeByUid(dataTypeUid);
@@ -2253,14 +2251,14 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
List<DataTypeData> list = getAllDataTypes.left().value();
if (list != null) {
- log.trace("Number of data types to load is " + list.size());
+ log.trace("Number of data types to load is {}" , list.size());
List<String> collect = list.stream().map(p -> p.getDataTypeDataDefinition().getName()).collect(Collectors.toList());
- log.trace("The data types to load are " + collect);
+ log.trace("The data types to load are {}" , collect);
for (DataTypeData dataTypeData : list) {
- log.trace("Going to fetch data type " + dataTypeData.getDataTypeDataDefinition().getName() + ". uid is " + dataTypeData.getUniqueId());
+ log.trace("Going to fetch data type {}. uid is {}", dataTypeData.getDataTypeDataDefinition().getName(), dataTypeData.getUniqueId());
Either<DataTypeDefinition, TitanOperationStatus> dataTypeByUid = this.getAndAddDataTypeByUid(dataTypeData.getUniqueId(), dataTypes);
if (dataTypeByUid.isRight()) {
TitanOperationStatus status = dataTypeByUid.right().value();
@@ -2274,12 +2272,12 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
if (log.isTraceEnabled()) {
if (result.isRight()) {
- log.trace("After fetching all data types " + result);
+ log.trace("After fetching all data types {}" , result);
} else {
Map<String, DataTypeDefinition> map = result.left().value();
if (map != null) {
String types = map.keySet().stream().collect(Collectors.joining(",", "[", "]"));
- log.trace("After fetching all data types " + types);
+ log.trace("After fetching all data types {} " , types);
}
}
}
@@ -2305,7 +2303,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
if (dataTypesRes.isRight()) {
TitanOperationStatus status = dataTypesRes.right().value();
- log.debug("Data type " + uniqueId + " cannot be found in graph. status is " + status);
+ log.debug("Data type {} cannot be found in graph. status is {}", uniqueId, status);
return Either.right(status);
}
@@ -2314,7 +2312,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
TitanOperationStatus propertiesStatus = fillProperties(uniqueId, dataTypeDefinition);
if (propertiesStatus != TitanOperationStatus.OK) {
- log.error("Failed to fetch properties of data type " + uniqueId);
+ log.error("Failed to fetch properties of data type {}", uniqueId);
return Either.right(propertiesStatus);
}
@@ -2331,11 +2329,11 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
Either<ImmutablePair<DataTypeData, GraphEdge>, TitanOperationStatus> parentNode = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.DataType), uniqueId, GraphEdgeLabels.DERIVED_FROM, NodeTypeEnum.DataType,
DataTypeData.class);
- log.debug("After retrieving DERIVED_FROM node of " + uniqueId + ". status is " + parentNode);
+ log.debug("After retrieving DERIVED_FROM node of {}. status is {}", uniqueId, parentNode);
if (parentNode.isRight()) {
TitanOperationStatus titanOperationStatus = parentNode.right().value();
if (titanOperationStatus != TitanOperationStatus.NOT_FOUND) {
- log.error("Failed to find the parent data type of data type " + uniqueId + ". status is " + titanOperationStatus);
+ log.error("Failed to find the parent data type of data type {}. status is {}", uniqueId, titanOperationStatus);
result = Either.right(titanOperationStatus);
return result;
}
@@ -2436,7 +2434,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
Either<Map<String, PropertyDefinition>, TitanOperationStatus> findPropertiesOfNode = this.findPropertiesOfNode(NodeTypeEnum.GroupType, uniqueId);
if (findPropertiesOfNode.isRight()) {
TitanOperationStatus titanOperationStatus = findPropertiesOfNode.right().value();
- log.debug("After looking for properties of vertex " + uniqueId + ". status is " + titanOperationStatus);
+ log.debug("After looking for properties of vertex {}. status is {}", uniqueId, titanOperationStatus);
if (TitanOperationStatus.NOT_FOUND.equals(titanOperationStatus)) {
return TitanOperationStatus.OK;
} else {
@@ -2461,7 +2459,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
*
* @param uniqueId
* @param propertiesMap
- * TODO
+ *
* @return
*/
protected Either<Map<String, PropertyData>, TitanOperationStatus> addPropertiesToElementType(String uniqueId, NodeTypeEnum nodeType, Map<String, PropertyDefinition> propertiesMap) {
@@ -2477,7 +2475,7 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
if (addPropertyToNodeType.isRight()) {
TitanOperationStatus operationStatus = addPropertyToNodeType.right().value();
- log.error("Failed to associate " + nodeType.getName() + " " + uniqueId + " to property " + propertyName + " in graph. status is " + operationStatus);
+ log.error("Failed to associate {} {} to property {} in graph. status is {}", nodeType.getName(), uniqueId, propertyName, operationStatus);
return Either.right(operationStatus);
}
propertiesData.put(propertyName, addPropertyToNodeType.left().value());
@@ -2556,14 +2554,14 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
List<PropertyDefinition> propertiesToAdd = new ArrayList<>();
if (isPropertyOmitted(newProperties, oldProperties, dataTypeName) || isPropertyTypeChanged(dataTypeName, newProperties, oldProperties, propertiesToAdd) || isDerivedFromNameChanged(dataTypeName, newDerivedFromName, oldDerivedFromName)) {
- log.debug("The new data type " + dataTypeName + " is invalid.");
+ log.debug("The new data type {} is invalid.", dataTypeName);
result = Either.right(StorageOperationStatus.CANNOT_UPDATE_EXISTING_ENTITY);
return result;
}
if (propertiesToAdd == null || propertiesToAdd.isEmpty()) {
- log.debug("No new properties has been defined in the new data type " + newDataTypeDefinition);
+ log.debug("No new properties has been defined in the new data type {}", newDataTypeDefinition);
result = Either.right(StorageOperationStatus.OK);
return result;
}
@@ -2606,15 +2604,6 @@ public class PropertyOperation extends AbstractOperation implements IPropertyOpe
private String getDerivedFromName(DataTypeDefinition dataTypeDefinition) {
String derivedFromName = dataTypeDefinition.getDerivedFromName();
- // if (derivedFromName == null) {
- // DataTypeDefinition derivedFrom = dataTypeDefinition.getDerivedFrom();
- // if (derivedFrom != null) {
- // log.debug("Dervied from is taken from definition");
- // derivedFromName = derivedFrom.getName();
- // }
- // } else {
- // log.debug("Dervied from is taken from field derivedFromName");
- // }
return derivedFromName;
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/RequirementOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/RequirementOperation.java
index e8892ad333..a2fe3d61d3 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/RequirementOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/RequirementOperation.java
@@ -95,10 +95,9 @@ public class RequirementOperation implements IRequirementOperation {
}
protected CapabilityTypeDefinition convertCTDataToCTDefinition(CapabilityTypeData capabilityTypeData) {
- log.debug("The object returned after create capability is " + capabilityTypeData);
+ log.debug("The object returned after create capability is {}", capabilityTypeData);
- CapabilityTypeDefinition capabilityTypeDefResult = new CapabilityTypeDefinition(
- capabilityTypeData.getCapabilityTypeDataDefinition());
+ CapabilityTypeDefinition capabilityTypeDefResult = new CapabilityTypeDefinition(capabilityTypeData.getCapabilityTypeDataDefinition());
return capabilityTypeDefResult;
}
@@ -117,14 +116,12 @@ public class RequirementOperation implements IRequirementOperation {
}
@Override
- public Either<RequirementDefinition, StorageOperationStatus> addRequirementToResource(String reqName,
- RequirementDefinition reqDefinition, String resourceId) {
+ public Either<RequirementDefinition, StorageOperationStatus> addRequirementToResource(String reqName, RequirementDefinition reqDefinition, String resourceId) {
return addRequirementToResource(reqName, reqDefinition, resourceId, false);
}
- private Either<GraphRelation, TitanOperationStatus> associateRequirementToRelationshipType(RequirementData reqData,
- RequirementDefinition reqDefinition) {
+ private Either<GraphRelation, TitanOperationStatus> associateRequirementToRelationshipType(RequirementData reqData, RequirementDefinition reqDefinition) {
String relationship = reqDefinition.getRelationship();
@@ -133,8 +130,7 @@ public class RequirementOperation implements IRequirementOperation {
return Either.right(TitanOperationStatus.NOT_FOUND);
}
UniqueIdData uniqueIdData = new UniqueIdData(NodeTypeEnum.RelationshipType, relationship);
- Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(reqData,
- uniqueIdData, GraphEdgeLabels.RELATIONSHIP_TYPE, null);
+ Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(reqData, uniqueIdData, GraphEdgeLabels.RELATIONSHIP_TYPE, null);
return createRelation;
@@ -147,32 +143,26 @@ public class RequirementOperation implements IRequirementOperation {
* @param reqDefinition
* @return
*/
- private Either<GraphRelation, TitanOperationStatus> associateRequirementToCapabilityType(RequirementData reqData,
- RequirementDefinition reqDefinition) {
+ private Either<GraphRelation, TitanOperationStatus> associateRequirementToCapabilityType(RequirementData reqData, RequirementDefinition reqDefinition) {
String capability = reqDefinition.getCapability();
UniqueIdData uniqueIdData = new UniqueIdData(NodeTypeEnum.CapabilityType, capability);
- Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(reqData,
- uniqueIdData, GraphEdgeLabels.CAPABILITY_TYPE, null);
+ Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(reqData, uniqueIdData, GraphEdgeLabels.CAPABILITY_TYPE, null);
- log.debug("After associating requirementData " + reqData + " to capability " + capability + ". status is "
- + createRelation);
+ log.debug("After associating requirementData {} to capability {}. status is {}", reqData, capability, createRelation);
return createRelation;
}
- private TitanOperationStatus associateRequirementToCapabilityType(TitanVertex reqData,
- RequirementDefinition reqDefinition) {
+ private TitanOperationStatus associateRequirementToCapabilityType(TitanVertex reqData, RequirementDefinition reqDefinition) {
String capability = reqDefinition.getCapability();
UniqueIdData uniqueIdData = new UniqueIdData(NodeTypeEnum.CapabilityType, capability);
- TitanOperationStatus createRelation = titanGenericDao.createEdge(reqData, uniqueIdData,
- GraphEdgeLabels.CAPABILITY_TYPE, null);
+ TitanOperationStatus createRelation = titanGenericDao.createEdge(reqData, uniqueIdData, GraphEdgeLabels.CAPABILITY_TYPE, null);
- log.debug("After associating requirementData {} to capability {}. status is {}" + reqData, capability,
- createRelation);
+ log.debug("After associating requirementData {} to capability {}. status is {}", reqData, capability, createRelation);
return createRelation;
}
@@ -185,18 +175,14 @@ public class RequirementOperation implements IRequirementOperation {
* @param capabilityName
* @return
*/
- private Either<GraphRelation, TitanOperationStatus> associateRequirementImplToCapabilityInst(
- RequirementImplData reqImplData, CapabilityInstData capabilityInstData, String capabilityName) {
+ private Either<GraphRelation, TitanOperationStatus> associateRequirementImplToCapabilityInst(RequirementImplData reqImplData, CapabilityInstData capabilityInstData, String capabilityName) {
Map<String, Object> props = new HashMap<String, Object>();
props.put(GraphPropertiesDictionary.NAME.getProperty(), capabilityName);
- log.debug(
- "Before associating requirement impl " + reqImplData + " to capability instance " + capabilityInstData);
- Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(reqImplData,
- capabilityInstData, GraphEdgeLabels.CAPABILITY_INST, props);
- log.debug("After associating requirement impl " + reqImplData + " to capability instance " + capabilityInstData
- + ".status is " + createRelation);
+ log.debug("Before associating requirement impl {} to capability instance {}", reqImplData, capabilityInstData);
+ Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(reqImplData, capabilityInstData, GraphEdgeLabels.CAPABILITY_INST, props);
+ log.debug("After associating requirement impl {} to capability instance {}.status is {}", reqImplData, capabilityInstData, createRelation);
return createRelation;
@@ -210,8 +196,7 @@ public class RequirementOperation implements IRequirementOperation {
* @param reqDefinition
* @return
*/
- private Either<RequirementData, TitanOperationStatus> addRequirementData(String resourceId, String reqName,
- RequirementDefinition reqDefinition) {
+ private Either<RequirementData, TitanOperationStatus> addRequirementData(String resourceId, String reqName, RequirementDefinition reqDefinition) {
ResourceMetadataData resourceData = new ResourceMetadataData();
resourceData.getMetadataDataDefinition().setUniqueId(resourceId);
@@ -219,19 +204,16 @@ public class RequirementOperation implements IRequirementOperation {
RequirementData requirementData = buildRequirementData(resourceId, reqName, reqDefinition);
log.debug("Before adding requirement data to graph {}", requirementData);
- Either<RequirementData, TitanOperationStatus> createNodeResult = titanGenericDao.createNode(requirementData,
- RequirementData.class);
+ Either<RequirementData, TitanOperationStatus> createNodeResult = titanGenericDao.createNode(requirementData, RequirementData.class);
log.debug("After adding requirement to graph {}", requirementData);
if (createNodeResult.isRight()) {
TitanOperationStatus operationStatus = createNodeResult.right().value();
- log.error("Failed to add requirement " + reqName + " [ " + requirementData + " ] " + " to graph. status is "
- + operationStatus);
+ log.error("Failed to add requirement {} [{}] to graph. status is {}", reqName, requirementData, operationStatus);
return Either.right(operationStatus);
}
- TitanOperationStatus status = associateResourceDataToRequirementData(resourceId, reqName, resourceData,
- requirementData);
+ TitanOperationStatus status = associateResourceDataToRequirementData(resourceId, reqName, resourceData, requirementData);
if (status != TitanOperationStatus.OK) {
return Either.right(status);
}
@@ -240,8 +222,7 @@ public class RequirementOperation implements IRequirementOperation {
}
- private Either<TitanVertex, TitanOperationStatus> addRequirementData(TitanVertex vertex, String resourceId,
- String reqName, RequirementDefinition reqDefinition) {
+ private Either<TitanVertex, TitanOperationStatus> addRequirementData(TitanVertex vertex, String resourceId, String reqName, RequirementDefinition reqDefinition) {
RequirementData requirementData = buildRequirementData(resourceId, reqName, reqDefinition);
@@ -251,13 +232,11 @@ public class RequirementOperation implements IRequirementOperation {
log.debug("After adding requirement to graph {}", requirementData);
if (createNodeResult.isRight()) {
TitanOperationStatus operationStatus = createNodeResult.right().value();
- log.error("Failed to add requirement " + reqName + " [ " + requirementData + " ] " + " to graph. status is "
- + operationStatus);
+ log.error("Failed to add requirement {} [{}] to graph. status is {}", reqName, requirementData, operationStatus);
return Either.right(operationStatus);
}
- TitanOperationStatus status = associateResourceDataToRequirementData(resourceId, reqName, vertex,
- createNodeResult.left().value());
+ TitanOperationStatus status = associateResourceDataToRequirementData(resourceId, reqName, vertex, createNodeResult.left().value());
if (!status.equals(TitanOperationStatus.OK)) {
return Either.right(status);
}
@@ -265,8 +244,7 @@ public class RequirementOperation implements IRequirementOperation {
}
/**
- * Asssociate resource node to requirement node with REQUIREMENT label and
- * requirement name as property on the edge.
+ * Asssociate resource node to requirement node with REQUIREMENT label and requirement name as property on the edge.
*
* @param resourceId
* @param reqName
@@ -274,39 +252,32 @@ public class RequirementOperation implements IRequirementOperation {
* @param requirementData
* @return
*/
- private TitanOperationStatus associateResourceDataToRequirementData(String resourceId, String reqName,
- ResourceMetadataData resourceData, RequirementData requirementData) {
+ private TitanOperationStatus associateResourceDataToRequirementData(String resourceId, String reqName, ResourceMetadataData resourceData, RequirementData requirementData) {
Map<String, Object> props = new HashMap<String, Object>();
props.put(GraphPropertiesDictionary.NAME.getProperty(), reqName);
- Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(resourceData,
- requirementData, GraphEdgeLabels.REQUIREMENT, props);
- log.debug("After creatin edge between resource " + resourceId + " to requirement " + requirementData);
+ Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(resourceData, requirementData, GraphEdgeLabels.REQUIREMENT, props);
+ log.debug("After creatin edge between resource {} to requirement {}", resourceId, requirementData);
if (createRelResult.isRight()) {
TitanOperationStatus operationStatus = createRelResult.right().value();
- log.error("Failed to associate resource " + resourceId + " to requirement " + reqName + "[ "
- + requirementData + "] in graph. status is " + operationStatus);
+ log.error("Failed to associate resource {} to requirement {} [ {} ] in graph. status is {}", resourceId, reqName, requirementData, operationStatus);
}
return TitanOperationStatus.OK;
}
- private TitanOperationStatus associateResourceDataToRequirementData(String resourceId, String reqName,
- TitanVertex resourceVertex, TitanVertex requirementVertex) {
+ private TitanOperationStatus associateResourceDataToRequirementData(String resourceId, String reqName, TitanVertex resourceVertex, TitanVertex requirementVertex) {
Map<String, Object> props = new HashMap<String, Object>();
props.put(GraphPropertiesDictionary.NAME.getProperty(), reqName);
- TitanOperationStatus createRelResult = titanGenericDao.createEdge(resourceVertex, requirementVertex,
- GraphEdgeLabels.REQUIREMENT, props);
+ TitanOperationStatus createRelResult = titanGenericDao.createEdge(resourceVertex, requirementVertex, GraphEdgeLabels.REQUIREMENT, props);
log.debug("After creatin edge between resource {} to requirement {}", resourceId, requirementVertex);
if (!createRelResult.equals(TitanOperationStatus.OK)) {
- log.error("Failed to associate resource {} to requirement {} in graph. status is " + resourceId, reqName,
- createRelResult);
+ log.error("Failed to associate resource {} to requirement {} in graph. status is {}", resourceId, reqName, createRelResult);
}
return TitanOperationStatus.OK;
}
- private RequirementData buildRequirementData(String resourceId, String reqName,
- RequirementDefinition reqDefinition) {
+ private RequirementData buildRequirementData(String resourceId, String reqName, RequirementDefinition reqDefinition) {
RequirementData requirementData = new RequirementData();
requirementData.setNode(reqDefinition.getNode());
@@ -322,8 +293,7 @@ public class RequirementOperation implements IRequirementOperation {
}
/**
- * build requirement impl node associate it to resource, requirement &
- * implementation resource
+ * build requirement impl node associate it to resource, requirement & implementation resource
*
* [RESOURCE] --> [REQUIREMENT IMPL] --> [ RESOURCE IMPL ] | V [REQUIREMENT]
*
@@ -334,47 +304,37 @@ public class RequirementOperation implements IRequirementOperation {
* @param reqImplDefinition
* @return
*/
- private Either<RequirementImplData, TitanOperationStatus> addRequirementImplData(NodeTypeEnum resourceLabel,
- String resourceId, String reqName, String requirementUid, RequirementImplDef reqImplDefinition) {
+ private Either<RequirementImplData, TitanOperationStatus> addRequirementImplData(NodeTypeEnum resourceLabel, String resourceId, String reqName, String requirementUid, RequirementImplDef reqImplDefinition) {
RequirementImplData requirementImplData = buildRequirementImplData(resourceId, reqName, reqImplDefinition);
- log.debug("Before adding requirement impl data to graph " + requirementImplData);
- Either<RequirementImplData, TitanOperationStatus> createNodeResult = titanGenericDao
- .createNode(requirementImplData, RequirementImplData.class);
- log.debug("After adding requirement to graph " + requirementImplData + ". status is " + createNodeResult);
+ log.debug("Before adding requirement impl data to graph {}", requirementImplData);
+ Either<RequirementImplData, TitanOperationStatus> createNodeResult = titanGenericDao.createNode(requirementImplData, RequirementImplData.class);
+ log.debug("After adding requirement to graph {}. status is {}", requirementImplData, createNodeResult);
if (createNodeResult.isRight()) {
TitanOperationStatus operationStatus = createNodeResult.right().value();
- log.error("Failed to add requirement " + reqName + " [ " + requirementImplData + " ] "
- + " to graph. status is " + operationStatus);
+ log.error("Failed to add requirement {} [ {} ] to graph. status is {}", reqName, requirementImplData, operationStatus);
return Either.right(operationStatus);
}
- Either<GraphRelation, TitanOperationStatus> createRelResult = associateReqImplRoResource(resourceLabel,
- resourceId, reqName, requirementImplData);
+ Either<GraphRelation, TitanOperationStatus> createRelResult = associateReqImplRoResource(resourceLabel, resourceId, reqName, requirementImplData);
if (createRelResult.isRight()) {
TitanOperationStatus operationStatus = createRelResult.right().value();
- log.error("Failed to associate resource " + resourceId + " to requirement impl " + requirementImplData
- + "[ " + requirementImplData + "] in graph. status is " + operationStatus);
+ log.error("Failed to associate resource {} to requirement impl {} [ {} ] in graph. status is {}", resourceId, requirementImplData, requirementImplData, operationStatus);
return Either.right(operationStatus);
}
- Either<GraphRelation, TitanOperationStatus> associateToResourceImpl = associateReqImplToImplResource(
- requirementImplData, reqImplDefinition.getNodeId());
+ Either<GraphRelation, TitanOperationStatus> associateToResourceImpl = associateReqImplToImplResource(requirementImplData, reqImplDefinition.getNodeId());
if (associateToResourceImpl.isRight()) {
TitanOperationStatus operationStatus = associateToResourceImpl.right().value();
- log.error("Failed to associate requirement impl " + requirementImplData + " to resource impl "
- + reqImplDefinition.getNodeId() + "[ " + requirementImplData + "] in graph. status is "
- + operationStatus);
+ log.error("Failed to associate requirement impl {} to resource impl {} [ {} ] in graph. status is {}", requirementImplData, reqImplDefinition.getNodeId(), requirementImplData, operationStatus);
return Either.right(operationStatus);
}
- Either<GraphRelation, TitanOperationStatus> associateToRequirement = associateReqImplToRequirement(
- requirementImplData, requirementUid);
+ Either<GraphRelation, TitanOperationStatus> associateToRequirement = associateReqImplToRequirement(requirementImplData, requirementUid);
if (associateToRequirement.isRight()) {
TitanOperationStatus operationStatus = associateToRequirement.right().value();
- log.error("Failed to associate requirement impl " + requirementImplData + " to requirement " + reqName
- + " in graph. status is " + operationStatus);
+ log.error("Failed to associate requirement impl {} to requirement {} in graph. status is {}", requirementImplData, reqName, operationStatus);
return Either.right(operationStatus);
}
@@ -382,8 +342,7 @@ public class RequirementOperation implements IRequirementOperation {
}
- private RequirementImplData buildRequirementImplData(String resourceId, String reqName,
- RequirementImplDef reqImplDefinition) {
+ private RequirementImplData buildRequirementImplData(String resourceId, String reqName, RequirementImplDef reqImplDefinition) {
String reqImplUid = UniqueIdBuilder.buildRequirementImplUid(resourceId, reqName);
RequirementImplData requirementImplData = new RequirementImplData();
requirementImplData.setName(reqName);
@@ -400,53 +359,43 @@ public class RequirementOperation implements IRequirementOperation {
}
/**
- * associate requirement impl node to the source requirement. The source
- * requirement maybe belongs to one of parents.
+ * associate requirement impl node to the source requirement. The source requirement maybe belongs to one of parents.
*
* @param requirementImplData
* @param requirementUid
* @return
*/
- private Either<GraphRelation, TitanOperationStatus> associateReqImplToRequirement(
- RequirementImplData requirementImplData, String requirementUid) {
+ private Either<GraphRelation, TitanOperationStatus> associateReqImplToRequirement(RequirementImplData requirementImplData, String requirementUid) {
UniqueIdData to = new UniqueIdData(NodeTypeEnum.Requirement, requirementUid);
- log.debug("Before creating edge between requirement impl " + requirementImplData + " to requirement "
- + requirementUid);
- Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao
- .createRelation(requirementImplData, to, GraphEdgeLabels.IMPLEMENTATION_OF, null);
- log.debug("Before creating edge between requirement impl " + requirementImplData + " to requirement "
- + requirementUid + ". status is " + createRelResult);
+ log.debug("Before creating edge between requirement impl {} to requirement {}", requirementImplData, requirementUid);
+ Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(requirementImplData, to, GraphEdgeLabels.IMPLEMENTATION_OF, null);
+ log.debug("Before creating edge between requirement impl {} to requirement {}. status is {}", requirementImplData, requirementUid, createRelResult);
return createRelResult;
}
/**
- * Associate requirement impl node to the node which supply this
- * requirement.
+ * Associate requirement impl node to the node which supply this requirement.
*
* @param requirementImplData
* @param nodeId
* @return
*/
- private Either<GraphRelation, TitanOperationStatus> associateReqImplToImplResource(
- RequirementImplData requirementImplData, String nodeId) {
+ private Either<GraphRelation, TitanOperationStatus> associateReqImplToImplResource(RequirementImplData requirementImplData, String nodeId) {
UniqueIdData nodeImpl = new UniqueIdData(NodeTypeEnum.Resource, nodeId);
Map<String, Object> props = new HashMap<String, Object>();
props.put(GraphPropertiesDictionary.NAME.getProperty(), nodeId);
- log.debug("Before creating edge between requirement impl " + requirementImplData + " to node impl " + nodeId);
- Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao
- .createRelation(requirementImplData, nodeImpl, GraphEdgeLabels.NODE_IMPL, props);
- log.debug("After creating edge between requirement " + requirementImplData + " to node impl " + nodeId
- + ". status is " + createRelResult);
+ log.debug("Before creating edge between requirement impl {} to node impl {}", requirementImplData, nodeId);
+ Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(requirementImplData, nodeImpl, GraphEdgeLabels.NODE_IMPL, props);
+ log.debug("After creating edge between requirement {} to node impl {}. status is {}", requirementImplData, nodeId, createRelResult);
return createRelResult;
}
/**
- * create an edge between the requirement impl node to the implementation
- * resource.
+ * create an edge between the requirement impl node to the implementation resource.
*
* @param resourceLabel
* @param resourceId
@@ -454,18 +403,14 @@ public class RequirementOperation implements IRequirementOperation {
* @param requirementImplData
* @return
*/
- private Either<GraphRelation, TitanOperationStatus> associateReqImplRoResource(NodeTypeEnum resourceLabel,
- String resourceId, String reqName, RequirementImplData requirementImplData) {
+ private Either<GraphRelation, TitanOperationStatus> associateReqImplRoResource(NodeTypeEnum resourceLabel, String resourceId, String reqName, RequirementImplData requirementImplData) {
UniqueIdData resource = new UniqueIdData(resourceLabel, resourceId);
Map<String, Object> props = new HashMap<String, Object>();
props.put(GraphPropertiesDictionary.NAME.getProperty(), reqName);
- log.debug(
- "Before creating edge between resource " + resourceId + " to requirement impl " + requirementImplData);
- Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(resource,
- requirementImplData, GraphEdgeLabels.REQUIREMENT_IMPL, props);
- log.debug("After creating edge between to requirement impl " + requirementImplData + " to resource " + resource
- + ". status is " + createRelResult);
+ log.debug("Before creating edge between resource {} to requirement impl {}", resourceId, requirementImplData);
+ Either<GraphRelation, TitanOperationStatus> createRelResult = titanGenericDao.createRelation(resource, requirementImplData, GraphEdgeLabels.REQUIREMENT_IMPL, props);
+ log.debug("After creating edge between to requirement impl {} to resource {}. status is {}", requirementImplData, resource, createRelResult);
return createRelResult;
}
@@ -476,65 +421,46 @@ public class RequirementOperation implements IRequirementOperation {
}
@Override
- public Either<RequirementDefinition, StorageOperationStatus> addRequirementToResource(String reqName,
- RequirementDefinition reqDefinition, String resourceId, boolean inTransaction) {
+ public Either<RequirementDefinition, StorageOperationStatus> addRequirementToResource(String reqName, RequirementDefinition reqDefinition, String resourceId, boolean inTransaction) {
Either<RequirementDefinition, StorageOperationStatus> result = null;
try {
- log.debug("Going to add requirement " + reqName + " to resource " + resourceId
- + ". requirement definition is " + reqDefinition);
+ log.debug("Going to add requirement {} to resource {}. requirement definition is {}", reqName, resourceId, reqDefinition);
validateNodeExists(reqDefinition.getNode());
// 1. add requirement node in graph and associate it to the resource
log.debug("Going to add requirement node in graph and associate it to the resource");
- Either<RequirementData, TitanOperationStatus> addRequirementData = addRequirementData(resourceId, reqName,
- reqDefinition);
+ Either<RequirementData, TitanOperationStatus> addRequirementData = addRequirementData(resourceId, reqName, reqDefinition);
if (addRequirementData.isRight()) {
- log.error("Failed to add requirement " + reqName + " node to graph. status is " + addRequirementData);
- result = Either.right(
- DaoStatusConverter.convertTitanStatusToStorageStatus(addRequirementData.right().value()));
+ log.error("Failed to add requirement {} node to graph. status is {}", reqName, addRequirementData);
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(addRequirementData.right().value()));
return result;
}
RequirementData requirementData = addRequirementData.left().value();
log.debug("Going to associate the requirement to the appriopriate capability type");
- Either<GraphRelation, TitanOperationStatus> associateReqToCapabilityType = associateRequirementToCapabilityType(
- requirementData, reqDefinition);
+ Either<GraphRelation, TitanOperationStatus> associateReqToCapabilityType = associateRequirementToCapabilityType(requirementData, reqDefinition);
if (associateReqToCapabilityType.isRight()) {
- log.error("Failed to associate requirement data node " + requirementData
- + " to the capability type node " + reqDefinition.getCapability());
- result = Either.right(DaoStatusConverter
- .convertTitanStatusToStorageStatus(associateReqToCapabilityType.right().value()));
+ log.error("Failed to associate requirement data node {} to the capability type node {}", requirementData, reqDefinition.getCapability());
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(associateReqToCapabilityType.right().value()));
return result;
}
// TODO: esofer associate requirement to the relationship type
/*
- * Either<GraphRelation, TitanOperationStatus>
- * associateReqToRelshipType =
- * associateRequirementToRelationshipType( requirementData,
- * reqDefinition);
+ * Either<GraphRelation, TitanOperationStatus> associateReqToRelshipType = associateRequirementToRelationshipType( requirementData, reqDefinition);
*
- * if (associateReqToRelshipType.isRight() &&
- * associateReqToRelshipType.right().value() !=
- * TitanOperationStatus.NOT_FOUND) {
- * log.error("Failed to associate requirement data node " +
- * requirementData + " to the relationship type node " +
- * reqDefinition.getRelationship()); result = Either
- * .right(TitanStatusConverter
- * .convertTitanStatusToStorageStatus(associateReqToRelshipType
- * .right().value())); return result; }
+ * if (associateReqToRelshipType.isRight() && associateReqToRelshipType.right().value() != TitanOperationStatus.NOT_FOUND) { log.error("Failed to associate requirement data node " + requirementData + " to the relationship type node " +
+ * reqDefinition.getRelationship()); result = Either .right(TitanStatusConverter .convertTitanStatusToStorageStatus(associateReqToRelshipType .right().value())); return result; }
*/
- log.debug("Going to fetch the requirement " + reqName + " from graph");
- Either<RequirementDefinition, TitanOperationStatus> requirementDefinitionRes = getRequirement(
- requirementData.getUniqueId());
+ log.debug("Going to fetch the requirement {} from graph", reqName);
+ Either<RequirementDefinition, TitanOperationStatus> requirementDefinitionRes = getRequirement(requirementData.getUniqueId());
if (requirementDefinitionRes.isRight()) {
- result = Either.right(
- DaoStatusConverter.convertTitanStatusToStorageStatus(requirementDefinitionRes.right().value()));
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(requirementDefinitionRes.right().value()));
return result;
}
@@ -557,34 +483,28 @@ public class RequirementOperation implements IRequirementOperation {
}
@Override
- public StorageOperationStatus addRequirementToResource(TitanVertex metadataVertex, String reqName,
- RequirementDefinition reqDefinition, String resourceId, boolean inTransaction) {
+ public StorageOperationStatus addRequirementToResource(TitanVertex metadataVertex, String reqName, RequirementDefinition reqDefinition, String resourceId, boolean inTransaction) {
StorageOperationStatus result = StorageOperationStatus.OK;
try {
- log.debug("Going to add requirement {} to resource . requirement definition is ", reqName, resourceId,
- reqDefinition);
+ log.debug("Going to add requirement {} to resource . requirement definition is ", reqName, resourceId, reqDefinition);
validateNodeExists(reqDefinition.getNode());
// 1. add requirement node in graph and associate it to the resource
log.debug("Going to add requirement node in graph and associate it to the resource");
- Either<TitanVertex, TitanOperationStatus> addRequirementData = addRequirementData(metadataVertex,
- resourceId, reqName, reqDefinition);
+ Either<TitanVertex, TitanOperationStatus> addRequirementData = addRequirementData(metadataVertex, resourceId, reqName, reqDefinition);
if (addRequirementData.isRight()) {
- log.error("Failed to add requirement {} node to graph. status is {}", reqName,
- addRequirementData.right().value());
+ log.error("Failed to add requirement {} node to graph. status is {}", reqName, addRequirementData.right().value());
result = DaoStatusConverter.convertTitanStatusToStorageStatus(addRequirementData.right().value());
return result;
}
log.debug("Going to associate the requirement to the appriopriate capability type");
- TitanOperationStatus associateReqToCapabilityType = associateRequirementToCapabilityType(
- addRequirementData.left().value(), reqDefinition);
+ TitanOperationStatus associateReqToCapabilityType = associateRequirementToCapabilityType(addRequirementData.left().value(), reqDefinition);
if (!associateReqToCapabilityType.equals(TitanOperationStatus.OK)) {
- log.error("Failed to associate requirement data node {} to the capability type node {}" + reqDefinition,
- reqDefinition.getCapability());
+ log.error("Failed to associate requirement data node {} to the capability type node {}", reqDefinition.getCapability(), reqDefinition);
result = DaoStatusConverter.convertTitanStatusToStorageStatus(associateReqToCapabilityType);
return result;
}
@@ -614,22 +534,19 @@ public class RequirementOperation implements IRequirementOperation {
public Either<RequirementDefinition, TitanOperationStatus> getRequirement(String uniqueId) {
log.debug("Going to fetch the requirement {} from graph.", uniqueId);
- Either<RequirementData, TitanOperationStatus> reqDataResult = titanGenericDao
- .getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Requirement), uniqueId, RequirementData.class);
+ Either<RequirementData, TitanOperationStatus> reqDataResult = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Requirement), uniqueId, RequirementData.class);
if (reqDataResult.isRight()) {
- log.error("Failed to find requirement node in graph " + uniqueId + ". status is " + reqDataResult);
+ log.error("Failed to find requirement node in graph {}. status is {}", uniqueId, reqDataResult);
return Either.right(reqDataResult.right().value());
}
log.debug("Going to fetch the capability type associate to requirement {}", uniqueId);
- Either<ImmutablePair<CapabilityTypeData, GraphEdge>, TitanOperationStatus> capabilityTypeRes = titanGenericDao
- .getChild(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), uniqueId, GraphEdgeLabels.CAPABILITY_TYPE,
- NodeTypeEnum.CapabilityType, CapabilityTypeData.class);
+ Either<ImmutablePair<CapabilityTypeData, GraphEdge>, TitanOperationStatus> capabilityTypeRes = titanGenericDao.getChild(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), uniqueId, GraphEdgeLabels.CAPABILITY_TYPE, NodeTypeEnum.CapabilityType,
+ CapabilityTypeData.class);
if (capabilityTypeRes.isRight()) {
- log.error("Cannot find the capability of a given requirement " + uniqueId + ". status is "
- + capabilityTypeRes);
+ log.error("Cannot find the capability of a given requirement {}. status is {}", uniqueId, capabilityTypeRes);
return Either.right(capabilityTypeRes.right().value());
}
@@ -639,37 +556,23 @@ public class RequirementOperation implements IRequirementOperation {
// TODO: esofer add relationship as edge
/*
- * Either<List<ImmutablePair<RelationshipTypeData, GraphEdge>>,
- * TitanOperationStatus> relationshipRes = titanGenericDao
- * .getChildrenNodes( GraphPropertiesDictionary.UNIQUE_ID.getProperty(),
- * uniqueId, GraphEdgeLabels.RELATIONSHIP_TYPE,
+ * Either<List<ImmutablePair<RelationshipTypeData, GraphEdge>>, TitanOperationStatus> relationshipRes = titanGenericDao .getChildrenNodes( GraphPropertiesDictionary.UNIQUE_ID.getProperty(), uniqueId, GraphEdgeLabels.RELATIONSHIP_TYPE,
* NodeTypeEnum.RelationshipType, RelationshipTypeData.class);
*
- * if (relationshipRes.isRight() && relationshipRes.right().value() !=
- * TitanOperationStatus.NOT_FOUND) {
- * log.error("Cannot find the capability of a given requirement " +
- * uniqueId + ". status is " + capabilityTypesRes); return
- * Either.right(relationshipRes.right().value()); }
+ * if (relationshipRes.isRight() && relationshipRes.right().value() != TitanOperationStatus.NOT_FOUND) {
+ * return Either.right(relationshipRes.right().value()); }
*
- * String relationshipType = null; if (relationshipRes.isLeft()) {
- * List<ImmutablePair<RelationshipTypeData, GraphEdge>> rstPairs =
- * relationshipRes .left().value(); if (rstPairs == null || true ==
- * rstPairs.isEmpty()) { log.error(
- * "Cannot find the capability of a given requirement " + uniqueId);
- * return Either.right(TitanOperationStatus.NOT_FOUND); }
+ * String relationshipType = null; if (relationshipRes.isLeft()) { List<ImmutablePair<RelationshipTypeData, GraphEdge>> rstPairs = relationshipRes .left().value(); if (rstPairs == null || true == rstPairs.isEmpty()) { log.error(
+ * "Cannot find the capability of a given requirement " + uniqueId); return Either.right(TitanOperationStatus.NOT_FOUND); }
*
- * ImmutablePair<RelationshipTypeData, GraphEdge> relationship =
- * rstPairs .get(0); relationshipType = relationship.getKey().getType();
- * }
+ * ImmutablePair<RelationshipTypeData, GraphEdge> relationship = rstPairs .get(0); relationshipType = relationship.getKey().getType(); }
*/
log.debug("Going to fetch the capability type associate to requirement {}", uniqueId);
- Either<ImmutablePair<ResourceMetadataData, GraphEdge>, TitanOperationStatus> parentNode = titanGenericDao
- .getParentNode(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), uniqueId, GraphEdgeLabels.REQUIREMENT,
- NodeTypeEnum.Resource, ResourceMetadataData.class);
+ Either<ImmutablePair<ResourceMetadataData, GraphEdge>, TitanOperationStatus> parentNode = titanGenericDao.getParentNode(GraphPropertiesDictionary.UNIQUE_ID.getProperty(), uniqueId, GraphEdgeLabels.REQUIREMENT, NodeTypeEnum.Resource,
+ ResourceMetadataData.class);
if (parentNode.isRight()) {
- log.error("Cannot find the parent resource for a given requirement " + uniqueId + ". status is "
- + parentNode.right().value());
+ log.error("Cannot find the parent resource for a given requirement {}. status is {}", uniqueId, parentNode.right().value());
return Either.right(parentNode.right().value());
}
@@ -689,15 +592,13 @@ public class RequirementOperation implements IRequirementOperation {
}
@Override
- public Either<RequirementDefinition, StorageOperationStatus> getRequirementOfResource(String reqName,
- String resourceId) {
+ public Either<RequirementDefinition, StorageOperationStatus> getRequirementOfResource(String reqName, String resourceId) {
return getRequirementOfResource(reqName, resourceId, false);
}
@Override
- public Either<RequirementDefinition, StorageOperationStatus> getRequirementOfResource(String reqName,
- String resourceId, boolean inTransaction) {
+ public Either<RequirementDefinition, StorageOperationStatus> getRequirementOfResource(String reqName, String resourceId, boolean inTransaction) {
Either<RequirementDefinition, StorageOperationStatus> result = null;
@@ -706,9 +607,8 @@ public class RequirementOperation implements IRequirementOperation {
Either<RequirementDefinition, TitanOperationStatus> requirementRes = getRequirement(reqUniqueId);
if (requirementRes.isRight()) {
- log.debug("Failed to retrieve requirement " + reqName + " associated to resource " + resourceId);
- result = Either
- .right(DaoStatusConverter.convertTitanStatusToStorageStatus(requirementRes.right().value()));
+ log.debug("Failed to retrieve requirement {} associated to resource {}", reqName, resourceId);
+ result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(requirementRes.right().value()));
} else {
result = Either.left(requirementRes.left().value());
}
@@ -730,16 +630,14 @@ public class RequirementOperation implements IRequirementOperation {
}
@Override
- public Either<RequirementDefinition, StorageOperationStatus> addRequirementImplToResource(String reqName,
- RequirementImplDef reqDefinition, String resourceId, String parentReqUniqueId) {
+ public Either<RequirementDefinition, StorageOperationStatus> addRequirementImplToResource(String reqName, RequirementImplDef reqDefinition, String resourceId, String parentReqUniqueId) {
return addRequirementImplToResource(reqName, reqDefinition, resourceId, parentReqUniqueId, false);
}
@Override
- public Either<RequirementDefinition, StorageOperationStatus> addRequirementImplToResource(String reqName,
- RequirementImplDef reqImplDefinition, String resourceId, String parentReqUniqueId, boolean inTransaction) {
+ public Either<RequirementDefinition, StorageOperationStatus> addRequirementImplToResource(String reqName, RequirementImplDef reqImplDefinition, String resourceId, String parentReqUniqueId, boolean inTransaction) {
Either<RequirementDefinition, StorageOperationStatus> result = null;
@@ -748,11 +646,10 @@ public class RequirementOperation implements IRequirementOperation {
// find the requirement defined at the resource itself or under one
// of its parents
Either<RequirementDefinition, TitanOperationStatus> findReq = getRequirement(parentReqUniqueId);
- log.debug("After looking for requirement " + parentReqUniqueId + ". status is " + findReq);
+ log.debug("After looking for requirement {}. status is {}", parentReqUniqueId, findReq);
if (findReq.isRight()) {
TitanOperationStatus status = findReq.right().value();
- log.error("The requirment " + parentReqUniqueId + " was not found in the graph. status is "
- + findReq.right().value());
+ log.error("The requirment {} was not found in the graph. status is {}", parentReqUniqueId, findReq.right().value());
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
return result;
}
@@ -765,27 +662,22 @@ public class RequirementOperation implements IRequirementOperation {
checkNodeIdImplementsRequirementNode(nodeIdImpl, reqNode);
- Either<RequirementImplData, TitanOperationStatus> addRequirementImplData = addRequirementImplData(
- NodeTypeEnum.Resource, resourceId, reqName, parentReqUniqueId, reqImplDefinition);
+ Either<RequirementImplData, TitanOperationStatus> addRequirementImplData = addRequirementImplData(NodeTypeEnum.Resource, resourceId, reqName, parentReqUniqueId, reqImplDefinition);
if (addRequirementImplData.isRight()) {
TitanOperationStatus status = addRequirementImplData.right().value();
- log.error("Failed to add requirement data impl node in the graph. status is "
- + addRequirementImplData.right().value());
+ log.error("Failed to add requirement data impl node in the graph. status is {}", addRequirementImplData.right().value());
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
return result;
}
RequirementImplData requirementImplData = addRequirementImplData.left().value();
- log.debug("Add the properties of the capabilities of the target node " + nodeIdImpl
- + " to the requirement impl node " + requirementImplData.getUniqueId() + " in graph.");
- Map<String, CapabiltyInstance> requirementPropertiesPerCapability = reqImplDefinition
- .getRequirementProperties();
- TitanOperationStatus addPropsResult = addCapabilityPropertiesToReqImpl(requirementImplData, reqCapability,
- nodeIdImpl, requirementPropertiesPerCapability);
+ log.debug("Add the properties of the capabilities of the target node {} to the requirement impl node {} in graph.", nodeIdImpl, requirementImplData.getUniqueId());
+ Map<String, CapabiltyInstance> requirementPropertiesPerCapability = reqImplDefinition.getRequirementProperties();
+ TitanOperationStatus addPropsResult = addCapabilityPropertiesToReqImpl(requirementImplData, reqCapability, nodeIdImpl, requirementPropertiesPerCapability);
if (addPropsResult != TitanOperationStatus.OK) {
- log.error("Failed to add capabilities properties to Requirement impl " + requirementImplData);
+ log.error("Failed to add capabilities properties to Requirement impl {}", requirementImplData);
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(addPropsResult));
return result;
}
@@ -807,15 +699,13 @@ public class RequirementOperation implements IRequirementOperation {
return result;
}
- private Either<RequirementImplDef, TitanOperationStatus> getRequirementImplOfResource(String reqName,
- String resourceId) {
+ private Either<RequirementImplDef, TitanOperationStatus> getRequirementImplOfResource(String reqName, String resourceId) {
RequirementImplDef requirementImplDef = new RequirementImplDef();
- Either<List<ImmutablePair<RequirementImplData, GraphEdge>>, TitanOperationStatus> reqImplNodesRes = titanGenericDao
- .getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Resource), resourceId,
- GraphEdgeLabels.REQUIREMENT_IMPL, NodeTypeEnum.RequirementImpl, RequirementImplData.class);
- log.debug("After looking for requirement impl edge of resource " + resourceId);
+ Either<List<ImmutablePair<RequirementImplData, GraphEdge>>, TitanOperationStatus> reqImplNodesRes = titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Resource), resourceId, GraphEdgeLabels.REQUIREMENT_IMPL,
+ NodeTypeEnum.RequirementImpl, RequirementImplData.class);
+ log.debug("After looking for requirement impl edge of resource {}", resourceId);
if (reqImplNodesRes.isRight()) {
TitanOperationStatus status = reqImplNodesRes.right().value();
return Either.right(status);
@@ -832,15 +722,12 @@ public class RequirementOperation implements IRequirementOperation {
requirementImplDef.setUniqueId(requirementImplData.getUniqueId());
- Either<ImmutablePair<ResourceMetadataData, GraphEdge>, TitanOperationStatus> nodeImplRes = titanGenericDao
- .getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.RequirementImpl),
- requirementImplData.getUniqueId(), GraphEdgeLabels.NODE_IMPL, NodeTypeEnum.Resource,
- ResourceMetadataData.class);
+ Either<ImmutablePair<ResourceMetadataData, GraphEdge>, TitanOperationStatus> nodeImplRes = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.RequirementImpl), requirementImplData.getUniqueId(),
+ GraphEdgeLabels.NODE_IMPL, NodeTypeEnum.Resource, ResourceMetadataData.class);
if (nodeImplRes.isRight()) {
TitanOperationStatus status = nodeImplRes.right().value();
- log.debug("No implementation resource was found under requirement impl "
- + requirementImplData.getUniqueId() + ". status is " + status);
+ log.debug("No implementation resource was found under requirement impl {}. status is {}", requirementImplData.getUniqueId(), status);
return Either.right(status);
}
@@ -854,14 +741,11 @@ public class RequirementOperation implements IRequirementOperation {
requirementImplDef.setPoint(point);
}
- Either<List<ImmutablePair<CapabilityInstData, GraphEdge>>, TitanOperationStatus> capaInstDataRes = titanGenericDao
- .getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.RequirementImpl),
- requirementImplData.getUniqueId(), GraphEdgeLabels.CAPABILITY_INST,
- NodeTypeEnum.CapabilityInst, CapabilityInstData.class);
+ Either<List<ImmutablePair<CapabilityInstData, GraphEdge>>, TitanOperationStatus> capaInstDataRes = titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.RequirementImpl), requirementImplData.getUniqueId(),
+ GraphEdgeLabels.CAPABILITY_INST, NodeTypeEnum.CapabilityInst, CapabilityInstData.class);
if (capaInstDataRes.isRight()) {
TitanOperationStatus status = capaInstDataRes.right().value();
- log.debug("No capability instance was found under requirement impl "
- + requirementImplData.getUniqueId() + ". status is " + status);
+ log.debug("No capability instance was found under requirement impl {}. status is {}", requirementImplData.getUniqueId(), status);
return Either.right(status);
}
@@ -874,14 +758,12 @@ public class RequirementOperation implements IRequirementOperation {
GraphEdge edge = capabilityInst.getValue();
Map<String, Object> properties = edge.getProperties();
if (properties == null) {
- log.error("Cannot find the property " + GraphPropertiesDictionary.NAME.getProperty()
- + " on the edge " + edge);
+ log.error("Cannot find the property {} on the edge {}", GraphPropertiesDictionary.NAME.getProperty(), edge);
return Either.right(TitanOperationStatus.INVALID_ELEMENT);
}
String capabilityName = (String) properties.get(GraphPropertiesDictionary.NAME.getProperty());
if (capabilityName == null) {
- log.error("Cannot find the property " + GraphPropertiesDictionary.NAME.getProperty()
- + " on the edge " + edge);
+ log.error("Cannot find the property {} on the edge {}", GraphPropertiesDictionary.NAME.getProperty(), edge);
return Either.right(TitanOperationStatus.INVALID_ELEMENT);
}
@@ -896,30 +778,25 @@ public class RequirementOperation implements IRequirementOperation {
// capabiltyInstance.setProperties(actualValues);
requirementProperties.put(capabilityName, capabiltyInstance);
- Either<List<ImmutablePair<PropertyValueData, GraphEdge>>, TitanOperationStatus> propertyValueNodesRes = titanGenericDao
- .getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.CapabilityInst),
- capabilityInstData.getUniqueId(), GraphEdgeLabels.PROPERTY_VALUE,
- NodeTypeEnum.PropertyValue, PropertyValueData.class);
+ Either<List<ImmutablePair<PropertyValueData, GraphEdge>>, TitanOperationStatus> propertyValueNodesRes = titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.CapabilityInst),
+ capabilityInstData.getUniqueId(), GraphEdgeLabels.PROPERTY_VALUE, NodeTypeEnum.PropertyValue, PropertyValueData.class);
if (propertyValueNodesRes.isRight()) {
TitanOperationStatus status = propertyValueNodesRes.right().value();
if (status != TitanOperationStatus.NOT_FOUND) {
- log.error("Failed to find the property values of capability instance " + capabilityInstData
- + ". status is " + status);
+ log.error("Failed to find the property values of capability instance {}. status is {}", capabilityInstData, status);
return Either.right(status);
}
} else {
- List<ImmutablePair<PropertyValueData, GraphEdge>> propertyValueNodes = propertyValueNodesRes
- .left().value();
+ List<ImmutablePair<PropertyValueData, GraphEdge>> propertyValueNodes = propertyValueNodesRes.left().value();
if (propertyValueNodes != null) {
Map<String, String> actualValues = new HashMap<String, String>();
- TitanOperationStatus fillPropertiesResult = fillPropertiesMapFromNodes(propertyValueNodes,
- actualValues);
+ TitanOperationStatus fillPropertiesResult = fillPropertiesMapFromNodes(propertyValueNodes, actualValues);
if (fillPropertiesResult != TitanOperationStatus.OK) {
- log.error("Failed to fetch properties of capability " + capabilityName);
+ log.error("Failed to fetch properties of capability {}", capabilityName);
return Either.right(fillPropertiesResult);
}
@@ -940,7 +817,7 @@ public class RequirementOperation implements IRequirementOperation {
}
if (false == found) {
- log.debug("Cannot find requirement impl under resource " + resourceId);
+ log.debug("Cannot find requirement impl under resource {}", resourceId);
return Either.right(TitanOperationStatus.NOT_FOUND);
}
@@ -965,22 +842,19 @@ public class RequirementOperation implements IRequirementOperation {
}
- private TitanOperationStatus fillPropertiesMapFromNodes(
- List<ImmutablePair<PropertyValueData, GraphEdge>> propertyValueNodes, Map<String, String> actualValues) {
+ private TitanOperationStatus fillPropertiesMapFromNodes(List<ImmutablePair<PropertyValueData, GraphEdge>> propertyValueNodes, Map<String, String> actualValues) {
if (propertyValueNodes != null) {
for (ImmutablePair<PropertyValueData, GraphEdge> propertyValuePair : propertyValueNodes) {
PropertyValueData propertyValueData = propertyValuePair.getKey();
GraphEdge propertyValueEdge = propertyValuePair.getValue();
Map<String, Object> propertyEdgeProps = propertyValueEdge.getProperties();
if (propertyEdgeProps == null) {
- log.error("Cannot find the property " + GraphPropertiesDictionary.NAME.getProperty()
- + " on the edge " + propertyValueEdge);
+ log.error("Cannot find the property {} on the edge {}", GraphPropertiesDictionary.NAME.getProperty(), propertyValueEdge);
return TitanOperationStatus.INVALID_ELEMENT;
}
String paramName = (String) propertyEdgeProps.get(GraphPropertiesDictionary.NAME.getProperty());
if (paramName == null) {
- log.error("Cannot find the property " + GraphPropertiesDictionary.NAME.getProperty()
- + " on the edge " + propertyValueEdge);
+ log.error("Cannot find the property {} on the edge {}", GraphPropertiesDictionary.NAME.getProperty(), propertyValueEdge);
return TitanOperationStatus.INVALID_ELEMENT;
}
actualValues.put(paramName, propertyValueData.getValue());
@@ -989,18 +863,16 @@ public class RequirementOperation implements IRequirementOperation {
return TitanOperationStatus.OK;
}
- private TitanOperationStatus addCapabilityPropertiesToReqImpl(RequirementImplData reqImplData, String reqCapability,
- String nodeIdImpl, Map<String, CapabiltyInstance> propertiesValuePerCapability) {
+ private TitanOperationStatus addCapabilityPropertiesToReqImpl(RequirementImplData reqImplData, String reqCapability, String nodeIdImpl, Map<String, CapabiltyInstance> propertiesValuePerCapability) {
TitanOperationStatus result = null;
- Either<List<ImmutablePair<CapabilityData, GraphEdge>>, TitanOperationStatus> allCapabilities = capabilityOperation
- .getAllCapabilitiesPairs(nodeIdImpl);
- log.trace("Atter looking for the capabilities of resource " + nodeIdImpl + ". result is " + allCapabilities);
+ Either<List<ImmutablePair<CapabilityData, GraphEdge>>, TitanOperationStatus> allCapabilities = capabilityOperation.getAllCapabilitiesPairs(nodeIdImpl);
+ log.trace("Atter looking for the capabilities of resource {}. result is {}", nodeIdImpl, allCapabilities);
if (allCapabilities.isRight()) {
TitanOperationStatus status = allCapabilities.right().value();
if (status != TitanOperationStatus.NOT_FOUND) {
- log.error("Failed to find capabilities of resource " + nodeIdImpl + ". status is " + status);
+ log.error("Failed to find capabilities of resource {}. status is {}", nodeIdImpl, status);
return status;
}
} else {
@@ -1014,37 +886,32 @@ public class RequirementOperation implements IRequirementOperation {
GraphEdge graphEdge = entry.getValue();
- Either<String, TitanOperationStatus> capabilityNameResult = findCapabilityName(capabilityData,
- graphEdge);
+ Either<String, TitanOperationStatus> capabilityNameResult = findCapabilityName(capabilityData, graphEdge);
if (capabilityNameResult.isRight()) {
TitanOperationStatus status = capabilityNameResult.right().value();
- log.error(
- "Failed to find capability name from the edge associated to capability " + capabilityData);
+ log.error("Failed to find capability name from the edge associated to capability {}", capabilityData);
return status;
}
String capabilityName = capabilityNameResult.left().value();
- log.debug("Going to set properties of capability " + capabilityName);
+ log.debug("Going to set properties of capability {}", capabilityName);
String cabilityDataUid = capabilityData.getUniqueId();
- Either<CapabilityTypeData, TitanOperationStatus> ctDataResult = capabilityOperation
- .getCapabilityTypeOfCapability(cabilityDataUid);
+ Either<CapabilityTypeData, TitanOperationStatus> ctDataResult = capabilityOperation.getCapabilityTypeOfCapability(cabilityDataUid);
if (ctDataResult.isRight()) {
- log.error("Cannot find capability type of capbility " + cabilityDataUid + ". status is "
- + ctDataResult);
+ log.error("Cannot find capability type of capbility {}. status is {}", cabilityDataUid, ctDataResult);
TitanOperationStatus status = ctDataResult.right().value();
return status;
}
CapabilityTypeData capabilityTypeData = ctDataResult.left().value();
- Either<Map<String, PropertyDefinition>, TitanOperationStatus> propertiesStatus = findPropertiesOfCapability(
- capabilityTypeData);
+ Either<Map<String, PropertyDefinition>, TitanOperationStatus> propertiesStatus = findPropertiesOfCapability(capabilityTypeData);
if (propertiesStatus.isRight()) {
TitanOperationStatus status = propertiesStatus.right().value();
- log.error("Failed to fetch properties definitions from capability. status is " + status);
+ log.error("Failed to fetch properties definitions from capability. status is {}", status);
return status;
}
@@ -1055,43 +922,35 @@ public class RequirementOperation implements IRequirementOperation {
capabiltyInstance = propertiesValuePerCapability.get(capabilityName);
}
- Either<CapabilityInstData, TitanOperationStatus> createCapabilityInstanceNode = createCapabilityInstanceNode(
- capabilityName, reqImplData);
+ Either<CapabilityInstData, TitanOperationStatus> createCapabilityInstanceNode = createCapabilityInstanceNode(capabilityName, reqImplData);
if (createCapabilityInstanceNode.isRight()) {
TitanOperationStatus status = createCapabilityInstanceNode.right().value();
- log.error("Failed to create capability instance node (" + capabilityName + ") in graph. status is "
- + status);
+ log.error("Failed to create capability instance node ({}) in graph. status is {}", capabilityName, status);
return status;
}
CapabilityInstData capabilityInstData = createCapabilityInstanceNode.left().value();
- Either<List<GraphRelation>, TitanOperationStatus> instanceProperties = addPropertiesToCapabilityInstance(
- properties, capabiltyInstance, capabilityInstData);
+ Either<List<GraphRelation>, TitanOperationStatus> instanceProperties = addPropertiesToCapabilityInstance(properties, capabiltyInstance, capabilityInstData);
if (instanceProperties.isRight()) {
TitanOperationStatus status = instanceProperties.right().value();
- log.debug("Failed to add properties to capability instance. status is " + status);
+ log.debug("Failed to add properties to capability instance. status is {}", status);
return status;
}
- Either<GraphRelation, TitanOperationStatus> associateCapabilityInstToCapabilityType = associateCapabilityInstToCapabilityType(
- capabilityInstData, capabilityTypeData);
+ Either<GraphRelation, TitanOperationStatus> associateCapabilityInstToCapabilityType = associateCapabilityInstToCapabilityType(capabilityInstData, capabilityTypeData);
if (associateCapabilityInstToCapabilityType.isRight()) {
TitanOperationStatus status = associateCapabilityInstToCapabilityType.right().value();
- log.error("Failed to associate capability instance " + capabilityInstData
- + " to capability type node " + capabilityTypeData + " in graph. status is " + status);
+ log.error("Failed to associate capability instance {} to capability type node {} in graph. status is {}", capabilityInstData, capabilityTypeData, status);
return status;
}
- Either<GraphRelation, TitanOperationStatus> associateCapabilityInst = associateRequirementImplToCapabilityInst(
- reqImplData, capabilityInstData, capabilityName);
+ Either<GraphRelation, TitanOperationStatus> associateCapabilityInst = associateRequirementImplToCapabilityInst(reqImplData, capabilityInstData, capabilityName);
if (associateCapabilityInst.isRight()) {
TitanOperationStatus status = associateCapabilityInst.right().value();
- log.error("Failed to associate requirement impl " + reqImplData + " to capability instance node "
- + capabilityInstData + " of capability " + capabilityName + ") in graph. status is "
- + status);
+ log.error("Failed to associate requirement impl {} to capability instance node {} of capability {}) in graph. status is {}", reqImplData, capabilityInstData, capabilityName, status);
return status;
}
@@ -1102,16 +961,13 @@ public class RequirementOperation implements IRequirementOperation {
return result;
}
- private Either<Map<String, PropertyDefinition>, TitanOperationStatus> findPropertiesOfCapability(
- CapabilityTypeData capabilityTypeData) {
+ private Either<Map<String, PropertyDefinition>, TitanOperationStatus> findPropertiesOfCapability(CapabilityTypeData capabilityTypeData) {
String capabilityTypeUid = capabilityTypeData.getUniqueId();
- Either<CapabilityTypeDefinition, TitanOperationStatus> capabilityTypeResult = capabilityTypeOperation
- .getCapabilityTypeByUid(capabilityTypeUid);
+ Either<CapabilityTypeDefinition, TitanOperationStatus> capabilityTypeResult = capabilityTypeOperation.getCapabilityTypeByUid(capabilityTypeUid);
if (capabilityTypeResult.isRight()) {
- log.error("Failed to find capabilityType " + capabilityTypeUid + " in the graph. status is "
- + capabilityTypeResult);
+ log.error("Failed to find capabilityType {} in the graph. status is {}", capabilityTypeUid, capabilityTypeResult);
return Either.right(capabilityTypeResult.right().value());
}
@@ -1121,44 +977,37 @@ public class RequirementOperation implements IRequirementOperation {
return Either.left(properties);
}
- private Either<String, TitanOperationStatus> findCapabilityName(CapabilityData capabilityData,
- GraphEdge graphEdge) {
+ private Either<String, TitanOperationStatus> findCapabilityName(CapabilityData capabilityData, GraphEdge graphEdge) {
Map<String, Object> edgeProps = graphEdge.getProperties();
String capabilityName = (String) edgeProps.get(GraphPropertiesDictionary.NAME.getProperty());
if (capabilityName == null) {
- log.debug("Cannot find the name of the capability associated to node " + capabilityData);
+ log.debug("Cannot find the name of the capability associated to node {}", capabilityData);
return Either.right(TitanOperationStatus.NOT_FOUND);
}
return Either.left(capabilityName);
}
- private Either<GraphRelation, TitanOperationStatus> associateCapabilityInstToCapabilityType(
- CapabilityInstData capabilityInstData, CapabilityTypeData capabilityTypeData) {
+ private Either<GraphRelation, TitanOperationStatus> associateCapabilityInstToCapabilityType(CapabilityInstData capabilityInstData, CapabilityTypeData capabilityTypeData) {
- Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(capabilityInstData,
- capabilityTypeData, GraphEdgeLabels.INSTANCE_OF, null);
+ Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(capabilityInstData, capabilityTypeData, GraphEdgeLabels.INSTANCE_OF, null);
return createRelation;
}
/**
- * add property value node with default value of override value and
- * associate it to the capability instance node
+ * add property value node with default value of override value and associate it to the capability instance node
*
* @param properties
* - properties definition. old also default value
* @param capabilityInstance
* - hold also properties new value(if exists)
* @param capabilityInstData
- * - the graph node which we associate the properties value node
- * to.
+ * - the graph node which we associate the properties value node to.
* @return
*/
- private Either<List<GraphRelation>, TitanOperationStatus> addPropertiesToCapabilityInstance(
- Map<String, PropertyDefinition> properties, CapabiltyInstance capabilityInstance,
- CapabilityInstData capabilityInstData) {
+ private Either<List<GraphRelation>, TitanOperationStatus> addPropertiesToCapabilityInstance(Map<String, PropertyDefinition> properties, CapabiltyInstance capabilityInstance, CapabilityInstData capabilityInstData) {
List<GraphRelation> relationsResult = new ArrayList<GraphRelation>();
@@ -1171,31 +1020,24 @@ public class RequirementOperation implements IRequirementOperation {
String propertyValue = setPropertyValue(capabilityInstance, paramName, propertyDefinition);
- PropertyValueData propertyValueData = buildPropertyValueData(capabilityInstData.getUniqueId(),
- paramName, propertyValue);
+ PropertyValueData propertyValueData = buildPropertyValueData(capabilityInstData.getUniqueId(), paramName, propertyValue);
- log.debug("Before creating property value data node " + propertyValueData + " in graph.");
- Either<PropertyValueData, TitanOperationStatus> createNode = titanGenericDao
- .createNode(propertyValueData, PropertyValueData.class);
- log.debug("Before creating property value data node " + propertyValueData + " in graph. status is "
- + createNode);
+ log.debug("Before creating property value data node {} in graph.", propertyValueData);
+ Either<PropertyValueData, TitanOperationStatus> createNode = titanGenericDao.createNode(propertyValueData, PropertyValueData.class);
+ log.debug("Before creating property value data node {} in graph. status is {}", propertyValueData, createNode);
if (createNode.isRight()) {
TitanOperationStatus status = createNode.right().value();
- log.error("Failed to create property value node in graph " + propertyValueData + ". status is "
- + status);
+ log.error("Failed to create property value node in graph {}. status is {}", propertyValueData, status);
return Either.right(status);
}
PropertyValueData propertyValueDataCreated = createNode.left().value();
- Either<GraphRelation, TitanOperationStatus> createRelation = associateCapabilityInstToPropertyValue(
- capabilityInstData, paramName, propertyValueDataCreated);
+ Either<GraphRelation, TitanOperationStatus> createRelation = associateCapabilityInstToPropertyValue(capabilityInstData, paramName, propertyValueDataCreated);
if (createRelation.isRight()) {
TitanOperationStatus status = createNode.right().value();
- log.error("Failed to create relation between capability instance "
- + capabilityInstData.getUniqueId() + " to property value "
- + propertyValueDataCreated.getUniqueId() + " in graph. status is " + status);
+ log.error("Failed to create relation between capability instance {} to property value {} in graph. status is {}", capabilityInstData.getUniqueId(), propertyValueDataCreated.getUniqueId(), status);
return Either.right(status);
}
@@ -1207,23 +1049,18 @@ public class RequirementOperation implements IRequirementOperation {
return Either.left(relationsResult);
}
- private Either<GraphRelation, TitanOperationStatus> associateCapabilityInstToPropertyValue(
- CapabilityInstData capabilityInstData, String paramName, PropertyValueData propertyValueDataCreated) {
+ private Either<GraphRelation, TitanOperationStatus> associateCapabilityInstToPropertyValue(CapabilityInstData capabilityInstData, String paramName, PropertyValueData propertyValueDataCreated) {
Map<String, Object> edgeProps = new HashMap<String, Object>();
edgeProps.put(GraphPropertiesDictionary.NAME.getProperty(), paramName);
- log.debug("Begin creating relation between capability instance " + capabilityInstData + " to property value "
- + propertyValueDataCreated + " in graph.");
- Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(capabilityInstData,
- propertyValueDataCreated, GraphEdgeLabels.PROPERTY_VALUE, edgeProps);
- log.debug("After creating relation between capability instance " + capabilityInstData + " to property value "
- + propertyValueDataCreated + " in graph. status is " + createRelation);
+ log.debug("Begin creating relation between capability instance {} to property value {} in graph.", capabilityInstData, propertyValueDataCreated);
+ Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(capabilityInstData, propertyValueDataCreated, GraphEdgeLabels.PROPERTY_VALUE, edgeProps);
+ log.debug("After creating relation between capability instance {} to property value {} in graph. status is {}", capabilityInstData, propertyValueDataCreated, createRelation);
return createRelation;
}
- private String setPropertyValue(CapabiltyInstance capabilityInstance, String paramName,
- PropertyDefinition propertyDefinition) {
+ private String setPropertyValue(CapabiltyInstance capabilityInstance, String paramName, PropertyDefinition propertyDefinition) {
String propertyValue = NA;
if (propertyDefinition.getDefaultValue() != null) {
propertyValue = propertyDefinition.getDefaultValue();
@@ -1245,8 +1082,7 @@ public class RequirementOperation implements IRequirementOperation {
return paramName + EQUAL_SIGN + paramValue;
}
- private PropertyValueData buildPropertyValueData(String capabilityInstDataUid, String paramName,
- String propertyValue) {
+ private PropertyValueData buildPropertyValueData(String capabilityInstDataUid, String paramName, String propertyValue) {
PropertyValueData propertyValueData = new PropertyValueData();
propertyValueData.setValue(propertyValue);
String uid = UniqueIdBuilder.buildPropertyValueUniqueId(capabilityInstDataUid, paramName);
@@ -1257,8 +1093,7 @@ public class RequirementOperation implements IRequirementOperation {
return propertyValueData;
}
- private Either<CapabilityInstData, TitanOperationStatus> createCapabilityInstanceNode(String capabilityName,
- RequirementImplData reqImplData) {
+ private Either<CapabilityInstData, TitanOperationStatus> createCapabilityInstanceNode(String capabilityName, RequirementImplData reqImplData) {
CapabilityInstData capabilityInstData = new CapabilityInstData();
String uniqueId = UniqueIdBuilder.buildCapabilityInstanceUid(reqImplData.getUniqueId(), capabilityName);
@@ -1269,11 +1104,9 @@ public class RequirementOperation implements IRequirementOperation {
capabilityInstData.setCreationTime(creationDate);
capabilityInstData.setModificationTime(creationDate);
- log.debug("Before creating capability instance node in graph " + capabilityInstData);
- Either<CapabilityInstData, TitanOperationStatus> createNode = titanGenericDao.createNode(capabilityInstData,
- CapabilityInstData.class);
- log.debug(
- "After creating capability instance node in graph " + capabilityInstData + ". status is " + createNode);
+ log.debug("Before creating capability instance node in graph {}", capabilityInstData);
+ Either<CapabilityInstData, TitanOperationStatus> createNode = titanGenericDao.createNode(capabilityInstData, CapabilityInstData.class);
+ log.debug("After creating capability instance node in graph {}. status is {}", capabilityInstData, createNode);
return createNode;
}
@@ -1283,14 +1116,12 @@ public class RequirementOperation implements IRequirementOperation {
}
- private void checkImplNodeContainsReqCapability(String reqCapability,
- List<ImmutablePair<CapabilityData, GraphEdge>> capabilitiesValue) {
+ private void checkImplNodeContainsReqCapability(String reqCapability, List<ImmutablePair<CapabilityData, GraphEdge>> capabilitiesValue) {
// TODO Auto-generated method stub
}
- public Either<Map<String, List<RequirementDefinition>>, StorageOperationStatus> getAllRequirementsOfResourceOnly(
- String resourceId, boolean inTransaction) {
+ public Either<Map<String, List<RequirementDefinition>>, StorageOperationStatus> getAllRequirementsOfResourceOnly(String resourceId, boolean inTransaction) {
Either<Map<String, List<RequirementDefinition>>, StorageOperationStatus> result = null;
@@ -1298,11 +1129,10 @@ public class RequirementOperation implements IRequirementOperation {
Map<String, RequirementDefinition> requirements = new HashMap<String, RequirementDefinition>();
Set<String> caseInsensitiveReqNames = new HashSet<>();
- TitanOperationStatus status = findAllRequirementsNonRecursive(resourceId, requirements,
- caseInsensitiveReqNames);
+ TitanOperationStatus status = findAllRequirementsNonRecursive(resourceId, requirements, caseInsensitiveReqNames);
if (status != TitanOperationStatus.OK) {
- log.error("Failed to get all requirements of resource " + resourceId + ". status is " + status);
+ log.error("Failed to get all requirements of resource {}. status is {}", resourceId, status);
return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
} else {
// TODO handle requirementImpl
@@ -1332,7 +1162,7 @@ public class RequirementOperation implements IRequirementOperation {
TitanOperationStatus status = findAllRequirementsRecursively(resourceId, requirements, caseInsensitiveReqNames);
if (status != TitanOperationStatus.OK) {
- log.error("Failed to get all requirements of resource " + resourceId + ". status is " + status);
+ log.error("Failed to get all requirements of resource {}. status is {}", resourceId, status);
return Either.right(status);
} else {
log.debug("The requirements returned for resource {} are {}", resourceId, requirements);
@@ -1340,17 +1170,14 @@ public class RequirementOperation implements IRequirementOperation {
if (requirements != null) {
for (Entry<String, RequirementDefinition> entry : requirements.entrySet()) {
String reqName = entry.getKey();
- Either<RequirementImplDef, TitanOperationStatus> reqImplRes = this
- .getRequirementImplOfResource(reqName, resourceId);
+ Either<RequirementImplDef, TitanOperationStatus> reqImplRes = this.getRequirementImplOfResource(reqName, resourceId);
if (reqImplRes.isRight()) {
TitanOperationStatus reqImplResStatus = reqImplRes.right().value();
if (reqImplResStatus == TitanOperationStatus.NOT_FOUND) {
- log.debug("Cannot find implementation of requirement {} under resource {}", reqName,
- resourceId);
+ log.debug("Cannot find implementation of requirement {} under resource {}", reqName, resourceId);
} else {
- log.error("Cannot find implementation of requirement {} under resource {}", reqName,
- resourceId);
+ log.error("Cannot find implementation of requirement {} under resource {}", reqName, resourceId);
return Either.right(reqImplResStatus);
}
} else {
@@ -1361,8 +1188,7 @@ public class RequirementOperation implements IRequirementOperation {
}
}
}
- log.debug("The requirements returned for resource {} after fetching requirement impl are {}", resourceId,
- requirements);
+ log.debug("The requirements returned for resource {} after fetching requirement impl are {}", resourceId, requirements);
result = Either.left(requirements);
@@ -1372,15 +1198,13 @@ public class RequirementOperation implements IRequirementOperation {
}
@Override
- public Either<Map<String, RequirementDefinition>, StorageOperationStatus> getAllResourceRequirements(
- String resourceId, boolean inTransaction) {
+ public Either<Map<String, RequirementDefinition>, StorageOperationStatus> getAllResourceRequirements(String resourceId, boolean inTransaction) {
Either<Map<String, RequirementDefinition>, StorageOperationStatus> result = null;
try {
- Either<Map<String, RequirementDefinition>, TitanOperationStatus> internalResult = getResourceRequirements(
- resourceId);
+ Either<Map<String, RequirementDefinition>, TitanOperationStatus> internalResult = getResourceRequirements(resourceId);
if (internalResult.isRight()) {
TitanOperationStatus status = internalResult.right().value();
if (status != TitanOperationStatus.NOT_FOUND) {
@@ -1394,67 +1218,8 @@ public class RequirementOperation implements IRequirementOperation {
result = Either.left(value);
return result;
-
- // Map<String, RequirementDefinition> requirements = new
- // HashMap<String, RequirementDefinition>();
- // TitanOperationStatus status = findAllRequirementsRecursively(
- // resourceId, requirements);
- // if (status != TitanOperationStatus.OK) {
- // log.error("Failed to get all requirements of resource "
- // + resourceId + ". status is " + status);
- // return Either.right(TitanStatusConverter
- // .convertTitanStatusToStorageStatus(status));
- // } else {
- // log.debug("The requirements returned for resource "
- // + resourceId + " are " + requirements);
- //
- // if (requirements != null) {
- // for (Entry<String, RequirementDefinition> entry : requirements
- // .entrySet()) {
- // String reqName = entry.getKey();
- // Either<RequirementImplDef, TitanOperationStatus> reqImplRes =
- // this
- // .getRequirementImplOfResource(reqName,
- // resourceId);
- // if (reqImplRes.isRight()) {
- //
- // TitanOperationStatus reqImplResStatus = reqImplRes
- // .right().value();
- // if (reqImplResStatus == TitanOperationStatus.NOT_FOUND) {
- // log.warn("Cannot find implementation of requirement "
- // + reqName
- // + " under resource "
- // + resourceId);
- // } else {
- // log.error("Cannot find implementation of requirement "
- // + reqName
- // + " under resource "
- // + resourceId);
- // return Either
- // .right(TitanStatusConverter
- // .convertTitanStatusToStorageStatus(reqImplResStatus));
- // }
- // } else {
- // RequirementDefinition requirementDefinition = entry
- // .getValue();
- // RequirementImplDef requirementImplDef = reqImplRes
- // .left().value();
- // requirementDefinition
- // .setRequirementImpl(requirementImplDef);
- // }
- // }
- // }
- // log.debug("The requirements returned for resource "
- // + resourceId + " after fetching requirement impl are "
- // + requirements);
- //
- // result = Either.left(requirements);
- //
- // return result;
- // }
-
} finally {
- if (false == inTransaction) {
+ if (!inTransaction) {
if (result == null || result.isRight()) {
log.error("Going to execute rollback on graph.");
titanGenericDao.rollback();
@@ -1467,26 +1232,21 @@ public class RequirementOperation implements IRequirementOperation {
}
- public Either<Map<String, RequirementDefinition>, StorageOperationStatus> getAllResourceRequirements(
- String resourceId) {
+ public Either<Map<String, RequirementDefinition>, StorageOperationStatus> getAllResourceRequirements(String resourceId) {
return getAllResourceRequirements(resourceId, false);
}
- public TitanOperationStatus findAllRequirementsRecursively(String resourceId,
- Map<String, RequirementDefinition> requirements, Set<String> caseInsensitiveReqNames) {
+ public TitanOperationStatus findAllRequirementsRecursively(String resourceId, Map<String, RequirementDefinition> requirements, Set<String> caseInsensitiveReqNames) {
- TitanOperationStatus nonRecursiveResult = findAllRequirementsNonRecursive(resourceId, requirements,
- caseInsensitiveReqNames);
- if (!nonRecursiveResult.equals(TitanOperationStatus.OK)
- && !nonRecursiveResult.equals(TitanOperationStatus.NOT_FOUND)) {
+ TitanOperationStatus nonRecursiveResult = findAllRequirementsNonRecursive(resourceId, requirements, caseInsensitiveReqNames);
+ if (!nonRecursiveResult.equals(TitanOperationStatus.OK) && !nonRecursiveResult.equals(TitanOperationStatus.NOT_FOUND)) {
return nonRecursiveResult;
}
- Either<ImmutablePair<ResourceMetadataData, GraphEdge>, TitanOperationStatus> parentNodes = titanGenericDao
- .getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Resource), resourceId,
- GraphEdgeLabels.DERIVED_FROM, NodeTypeEnum.Resource, ResourceMetadataData.class);
+ Either<ImmutablePair<ResourceMetadataData, GraphEdge>, TitanOperationStatus> parentNodes = titanGenericDao.getChild(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Resource), resourceId, GraphEdgeLabels.DERIVED_FROM, NodeTypeEnum.Resource,
+ ResourceMetadataData.class);
if (parentNodes.isRight()) {
TitanOperationStatus parentNodesStatus = parentNodes.right().value();
@@ -1494,15 +1254,13 @@ public class RequirementOperation implements IRequirementOperation {
log.debug("Finish to lookup for parnet requirements");
return TitanOperationStatus.OK;
} else {
- log.error("Failed to find parent requirements of resource {} . status is {}", resourceId,
- parentNodesStatus);
+ log.error("Failed to find parent requirements of resource {} . status is {}", resourceId, parentNodesStatus);
return parentNodesStatus;
}
}
ImmutablePair<ResourceMetadataData, GraphEdge> parnetNodePair = parentNodes.left().value();
String parentUniqueId = parnetNodePair.getKey().getMetadataDataDefinition().getUniqueId();
- TitanOperationStatus addParentReqStatus = findAllRequirementsRecursively(parentUniqueId, requirements,
- caseInsensitiveReqNames);
+ TitanOperationStatus addParentReqStatus = findAllRequirementsRecursively(parentUniqueId, requirements, caseInsensitiveReqNames);
if (addParentReqStatus != TitanOperationStatus.OK) {
log.error("Failed to fetch all requirements of resource {}", parentUniqueId);
@@ -1512,11 +1270,9 @@ public class RequirementOperation implements IRequirementOperation {
return TitanOperationStatus.OK;
}
- private TitanOperationStatus findAllRequirementsNonRecursive(String resourceId,
- Map<String, RequirementDefinition> requirements, Set<String> caseInsensitiveReqNames) {
- Either<List<ImmutablePair<RequirementData, GraphEdge>>, TitanOperationStatus> requirementNodes = titanGenericDao
- .getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Resource), resourceId,
- GraphEdgeLabels.REQUIREMENT, NodeTypeEnum.Requirement, RequirementData.class);
+ private TitanOperationStatus findAllRequirementsNonRecursive(String resourceId, Map<String, RequirementDefinition> requirements, Set<String> caseInsensitiveReqNames) {
+ Either<List<ImmutablePair<RequirementData, GraphEdge>>, TitanOperationStatus> requirementNodes = titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Resource), resourceId, GraphEdgeLabels.REQUIREMENT,
+ NodeTypeEnum.Requirement, RequirementData.class);
if (requirementNodes.isRight()) {
TitanOperationStatus status = requirementNodes.right().value();
@@ -1533,18 +1289,17 @@ public class RequirementOperation implements IRequirementOperation {
if (edgeProps != null) {
reqName = (String) edgeProps.get(GraphPropertiesDictionary.NAME.getProperty());
if (reqName == null) {
- log.error("The requirement name is missing on the edge of requirement " + reqUniqueId);
+ log.error("The requirement name is missing on the edge of requirement {}", reqUniqueId);
return TitanOperationStatus.INVALID_ELEMENT;
}
} else {
- log.error("The requirement name is missing on the edge of requirement " + reqUniqueId);
+ log.error("The requirement name is missing on the edge of requirement {}", reqUniqueId);
return TitanOperationStatus.INVALID_ELEMENT;
}
- Either<RequirementDefinition, TitanOperationStatus> requirementDefRes = this
- .getRequirement(reqUniqueId);
+ Either<RequirementDefinition, TitanOperationStatus> requirementDefRes = this.getRequirement(reqUniqueId);
if (requirementDefRes.isRight()) {
TitanOperationStatus status = requirementDefRes.right().value();
- log.error("Failed to get requirement properties of requirement " + reqUniqueId);
+ log.error("Failed to get requirement properties of requirement {}", reqUniqueId);
return status;
}
@@ -1552,9 +1307,7 @@ public class RequirementOperation implements IRequirementOperation {
requirementDefinition.setName(reqName);
// US631462
if (caseInsensitiveReqNames.contains(reqName.toLowerCase())) {
- log.debug(
- "The requirement {} was already defined in derived resource (case insensitive). Ignore {} from resource {}",
- reqName, reqName, resourceId);
+ log.debug("The requirement {} was already defined in derived resource (case insensitive). Ignore {} from resource {}", reqName, reqName, resourceId);
} else {
requirements.put(reqName, requirementDefinition);
caseInsensitiveReqNames.add(reqName.toLowerCase());
@@ -1567,12 +1320,10 @@ public class RequirementOperation implements IRequirementOperation {
}
public StorageOperationStatus deleteRequirementFromGraph(String requirementId) {
- log.debug("Before deleting requirement from graph " + requirementId);
- Either<RequirementData, TitanOperationStatus> deleteNodeStatus = titanGenericDao.deleteNode(
- UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Requirement), requirementId, RequirementData.class);
+ log.debug("Before deleting requirement from graph {}", requirementId);
+ Either<RequirementData, TitanOperationStatus> deleteNodeStatus = titanGenericDao.deleteNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Requirement), requirementId, RequirementData.class);
if (deleteNodeStatus.isRight()) {
- log.error("failed to delete requirement with id {}. status={}", requirementId,
- deleteNodeStatus.right().value());
+ log.error("failed to delete requirement with id {}. status={}", requirementId, deleteNodeStatus.right().value());
return DaoStatusConverter.convertTitanStatusToStorageStatus(deleteNodeStatus.right().value());
}
return StorageOperationStatus.OK;
@@ -1584,18 +1335,16 @@ public class RequirementOperation implements IRequirementOperation {
}
- public Either<Map<String, RequirementDefinition>, StorageOperationStatus> deleteAllRequirements(String resourceId,
- boolean inTransaction) {
+ public Either<Map<String, RequirementDefinition>, StorageOperationStatus> deleteAllRequirements(String resourceId, boolean inTransaction) {
Either<Map<String, RequirementDefinition>, StorageOperationStatus> result = null;
try {
- Either<Map<String, RequirementDefinition>, TitanOperationStatus> deleteAllRes = deleteAllRequirementsOfResource(
- resourceId);
+ Either<Map<String, RequirementDefinition>, TitanOperationStatus> deleteAllRes = deleteAllRequirementsOfResource(resourceId);
if (deleteAllRes.isRight()) {
TitanOperationStatus status = deleteAllRes.right().value();
if (status != TitanOperationStatus.NOT_FOUND) {
- log.error("Failed to delete requirements of resource " + resourceId + ". status is " + status);
+ log.error("Failed to delete requirements of resource {}. status is {}", resourceId, status);
}
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
return result;
@@ -1620,13 +1369,11 @@ public class RequirementOperation implements IRequirementOperation {
}
- public Either<Map<String, RequirementDefinition>, TitanOperationStatus> deleteAllRequirementsOfResource(
- String resourceId) {
+ public Either<Map<String, RequirementDefinition>, TitanOperationStatus> deleteAllRequirementsOfResource(String resourceId) {
Map<String, RequirementDefinition> requirements = new HashMap<String, RequirementDefinition>();
Set<String> caseInsensitiveReqNames = new HashSet<>();
- TitanOperationStatus requirementsRes = findAllRequirementsNonRecursive(resourceId, requirements,
- caseInsensitiveReqNames);
+ TitanOperationStatus requirementsRes = findAllRequirementsNonRecursive(resourceId, requirements, caseInsensitiveReqNames);
if (requirementsRes != TitanOperationStatus.OK) {
return Either.right(requirementsRes);
}
@@ -1640,11 +1387,10 @@ public class RequirementOperation implements IRequirementOperation {
String requirementUid = requirementDefinition.getUniqueId();
- Either<RequirementData, TitanOperationStatus> deleteNodeRes = titanGenericDao.deleteNode(
- UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Requirement), requirementUid, RequirementData.class);
+ Either<RequirementData, TitanOperationStatus> deleteNodeRes = titanGenericDao.deleteNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Requirement), requirementUid, RequirementData.class);
if (deleteNodeRes.isRight()) {
TitanOperationStatus status = deleteNodeRes.right().value();
- log.error("Failed to delete requirement " + requirementUid + " of resource " + resourceId);
+ log.error("Failed to delete requirement {} of resource ", requirementUid, resourceId);
return Either.right(status);
}
}
@@ -1653,8 +1399,7 @@ public class RequirementOperation implements IRequirementOperation {
}
- public Map<String, List<RequirementDefinition>> convertRequirementMap(
- Map<String, RequirementDefinition> requirementMap, String ownerId, String ownerName) {
+ public Map<String, List<RequirementDefinition>> convertRequirementMap(Map<String, RequirementDefinition> requirementMap, String ownerId, String ownerName) {
Map<String, List<RequirementDefinition>> typeToRequirementMap = new HashMap<String, List<RequirementDefinition>>();
requirementMap.forEach((reqName, requirement) -> {
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ResourceOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ResourceOperation.java
index 22c693d8b3..4dce650f18 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ResourceOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ResourceOperation.java
@@ -21,6 +21,7 @@
package org.openecomp.sdc.be.model.operations.impl;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -33,6 +34,8 @@ import java.util.function.Predicate;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.tinkerpop.gremlin.structure.Vertex;
import org.openecomp.sdc.be.config.BeEcompErrorManager;
@@ -79,14 +82,19 @@ import org.openecomp.sdc.be.model.operations.api.IAttributeOperation;
import org.openecomp.sdc.be.model.operations.api.IElementOperation;
import org.openecomp.sdc.be.model.operations.api.IResourceOperation;
import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
+import org.openecomp.sdc.be.model.operations.migration.MigrationErrorInformer;
import org.openecomp.sdc.be.model.operations.utils.GraphDeleteUtil;
import org.openecomp.sdc.be.resources.data.ComponentMetadataData;
+import org.openecomp.sdc.be.resources.data.PropertyData;
import org.openecomp.sdc.be.resources.data.ResourceMetadataData;
import org.openecomp.sdc.be.resources.data.TagData;
import org.openecomp.sdc.be.resources.data.UniqueIdData;
import org.openecomp.sdc.be.resources.data.UserData;
import org.openecomp.sdc.be.resources.data.category.CategoryData;
import org.openecomp.sdc.be.resources.data.category.SubCategoryData;
+import org.openecomp.sdc.common.api.ArtifactTypeEnum;
+import org.openecomp.sdc.common.datastructure.Wrapper;
+import org.openecomp.sdc.common.util.PairUtils;
import org.openecomp.sdc.common.util.ValidationUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -97,9 +105,11 @@ import com.google.gson.GsonBuilder;
import com.thinkaurelius.titan.core.TitanGraph;
import com.thinkaurelius.titan.core.TitanVertex;
+import fj.Function;
import fj.data.Either;
@org.springframework.stereotype.Component("resource-operation")
+@Deprecated
public class ResourceOperation extends ComponentOperation implements IResourceOperation {
public ResourceOperation() {
@@ -139,8 +149,8 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
private GraphDeleteUtil graphDeleteUtil = new GraphDeleteUtil();
- private static Pattern uuidNewVersion = Pattern.compile("^\\d{1,}.1");
- private static Pattern uuidNormativeNewVersion = Pattern.compile("^\\d{1,}.0");
+ public static Pattern uuidNewVersion = Pattern.compile("^\\d{1,}.1");
+ public static Pattern uuidNormativeNewVersion = Pattern.compile("^\\d{1,}.0");
@Override
public Either<Resource, StorageOperationStatus> createResource(Resource resource) {
@@ -169,19 +179,18 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
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);
}
TitanVertex creatorVertex = findUser.left().value();
TitanVertex updaterVertex = creatorVertex;
-
String updaterUserId = resource.getLastUpdaterUserId();
if (updaterUserId != null && !updaterUserId.equals(userId)) {
findUser = findUserVertex(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 {
updaterVertex = findUser.left().value();
@@ -232,8 +241,8 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
result = Either.right(associateCategory);
return result;
}
-
- TitanOperationStatus associateProperties = associatePropertiesToResource(metadataVertex, resourceUniqueId, resource.getProperties());
+
+ TitanOperationStatus associateProperties = associatePropertiesToResource(metadataVertex, resourceUniqueId, resource.getProperties(), derivedResources);
if (associateProperties != TitanOperationStatus.OK) {
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(associateProperties));
return result;
@@ -302,13 +311,13 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
result = this.getResource(resourceUniqueId, true);
if (result.isRight()) {
- log.error("Cannot get full resource from the graph. status is " + result.right().value());
+ log.error("Cannot get full resource 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("Resource retrieved is " + json);
+ log.debug("Resource retrieved is {}", json);
}
return result;
@@ -335,7 +344,7 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
Either<CategoryData, StorageOperationStatus> categoryResult = elementOperation.getNewCategoryData(categoryName, NodeTypeEnum.ResourceNewCategory, CategoryData.class);
if (categoryResult.isRight()) {
StorageOperationStatus status = categoryResult.right().value();
- 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 categoryResult.right().value();
}
categoryData = categoryResult.left().value();
@@ -343,16 +352,16 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
Either<List<ImmutablePair<SubCategoryData, GraphEdge>>, TitanOperationStatus> childrenNodes = titanGenericDao.getChildrenNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ResourceNewCategory), (String) categoryData.getUniqueId(),
GraphEdgeLabels.SUB_CATEGORY, NodeTypeEnum.ResourceSubcategory, SubCategoryData.class);
if (childrenNodes.isRight()) {
- log.debug("Faield to fetch sub categories for resource category" + categoryData.getCategoryDataDefinition().getName());
+ log.debug("Faield to fetch sub categories for resource category {}", categoryData.getCategoryDataDefinition().getName());
return DaoStatusConverter.convertTitanStatusToStorageStatus(childrenNodes.right().value());
}
for (ImmutablePair<SubCategoryData, GraphEdge> pair : childrenNodes.left().value()) {
SubCategoryData subcategoryData = pair.left;
if (subcategoryData.getSubCategoryDataDefinition().getName().equals(subcategoryName)) {
Either<GraphRelation, TitanOperationStatus> result = titanGenericDao.createRelation(resourceData, subcategoryData, GraphEdgeLabels.CATEGORY, null);
- log.debug("After associating resource " + resourceData.getUniqueId() + " to subcategory " + subcategoryData + ". Edge type is " + GraphEdgeLabels.CATEGORY);
+ log.debug("After associating resource {} to subcategory {}. Edge type is {}", resourceData.getUniqueId(), subcategoryData, GraphEdgeLabels.CATEGORY);
if (result.isRight()) {
- log.error("Faield to associate resource " + resourceData.getUniqueId() + " to category " + categoryData + ". Edge type is " + GraphEdgeLabels.CATEGORY);
+ log.error("Faield to associate resource {} to category {}. Edge type is {}", resourceData.getUniqueId(), categoryData, GraphEdgeLabels.CATEGORY);
return DaoStatusConverter.convertTitanStatusToStorageStatus(result.right().value());
}
@@ -492,15 +501,34 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
StorageOperationStatus status = StorageOperationStatus.OK;
if (artifacts != null) {
+ Map<ArtifactDefinition, ArtifactDefinition> heatEnvMap = new HashMap<ArtifactDefinition, ArtifactDefinition>();
for (Entry<String, ArtifactDefinition> entry : artifacts.entrySet()) {
ArtifactDefinition artifactDefinition = entry.getValue();
- status = artifactOperation.addArifactToComponent(artifactDefinition, resourceId, NodeTypeEnum.Resource, false, metadataVertex);
+
+ ArtifactTypeEnum artifactType = ArtifactTypeEnum.findType(artifactDefinition.getArtifactType());
+ if(artifactType != ArtifactTypeEnum.HEAT_ENV){
+ status = artifactOperation.addArifactToComponent(artifactDefinition, resourceId, NodeTypeEnum.Resource, false, metadataVertex);
+ }else{
+ Optional<ArtifactDefinition> op = artifacts.values().stream().filter(p -> p.getUniqueId().equals(artifactDefinition.getGeneratedFromId())).findAny();
+ if(op.isPresent()){
+ heatEnvMap.put(artifactDefinition, op.get());
+ }
+
+
+ }
if (!status.equals(StorageOperationStatus.OK)) {
return status;
}
}
+ for(Entry<ArtifactDefinition, ArtifactDefinition> entry : heatEnvMap.entrySet()){
+ Either<ArtifactDefinition, StorageOperationStatus> addHeatEnvArtifact = artifactOperation.addHeatEnvArtifact(entry.getKey(), entry.getValue(), resourceId, NodeTypeEnum.Resource, false);
+ if (addHeatEnvArtifact.isRight()) {
+ log.debug("failed to create heat env artifact on resource instance");
+ return addHeatEnvArtifact.right().value();
+ }
+ }
}
return status;
@@ -539,7 +567,7 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
}
}
- private TitanOperationStatus associatePropertiesToResource(TitanVertex metadatVertex, String resourceId, List<PropertyDefinition> properties) {
+ private TitanOperationStatus associatePropertiesToResource(TitanVertex metadatVertex, String resourceId, List<PropertyDefinition> properties, List<ResourceMetadataData> derivedResources) {
Either<Map<String, DataTypeDefinition>, TitanOperationStatus> allDataTypes = applicationDataTypeCache.getAll();
if (allDataTypes.isRight()) {
@@ -547,21 +575,82 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
log.debug("Cannot find any data type. Status is {}.", status);
return status;
}
-
+
Map<String, PropertyDefinition> convertedProperties = new HashMap<>();
if (properties != null) {
for (PropertyDefinition propertyDefinition : properties) {
convertedProperties.put(propertyDefinition.getName(), propertyDefinition);
}
- TitanOperationStatus operationStatus = propertyOperation.addPropertiesToGraph(metadatVertex, convertedProperties, allDataTypes.left().value(), resourceId);
- return operationStatus;
+
+ Either<Map<String, PropertyDefinition>, TitanOperationStatus> getPropertiesOfAllDerivedFromRes = getPropertiesOfAllDerivedFrom(derivedResources);
+
+ if(getPropertiesOfAllDerivedFromRes.isRight()){
+ TitanOperationStatus status = getPropertiesOfAllDerivedFromRes.right().value();
+ log.debug("Cannot fetch properties of all derived from resources. Status is {}.", status);
+ return status;
+ }
+
+ Map<String, PropertyDefinition> allDerivedFromProperties = getPropertiesOfAllDerivedFromRes.left().value();
+
+ TitanOperationStatus validatePropertyNamesUniqunessStatus = validatePropertyNamesUniquness(properties, allDerivedFromProperties);
+
+ if(validatePropertyNamesUniqunessStatus != TitanOperationStatus.OK){
+ return validatePropertyNamesUniqunessStatus;
+ }
+
+ return propertyOperation.addPropertiesToGraph(metadatVertex, convertedProperties, allDataTypes.left().value(), resourceId);
}
return TitanOperationStatus.OK;
}
+ private TitanOperationStatus validatePropertyNamesUniquness(List<PropertyDefinition> properties, Map<String, PropertyDefinition> allDerivedFromProperties) {
+
+ TitanOperationStatus result = TitanOperationStatus.OK;
+ Optional<PropertyDefinition> propertyOptional= properties.stream()
+ //filters out properties with the same name and different type
+ .filter(prop -> allDerivedFromProperties.containsKey(prop.getName()) && !prop.getType().equals(allDerivedFromProperties.get(prop.getName()).getType()))
+ //Searches for any matching value
+ .findAny();
+ if(propertyOptional.isPresent()){
+ log.error("Property with name {} and type {} already exists in derived from resource. ", propertyOptional.get().getName(), allDerivedFromProperties.get( propertyOptional.get().getName()).getType());
+ result = TitanOperationStatus.ALREADY_EXIST;
+ }
+ return result;
+ }
+
+ private Either<Map<String, PropertyDefinition>, TitanOperationStatus> getPropertiesOfAllDerivedFrom(List<ResourceMetadataData> derivedResources) {
+ Map<String, PropertyDefinition> allDerivedProperties = new HashMap<>();
+ Either<Map<String, PropertyDefinition>, TitanOperationStatus> getPropertiesOfAllDerivedFromRes = Either.left(allDerivedProperties);
+ String currResourceName = null ;
+ if(!CollectionUtils.isEmpty(derivedResources)){
+ try{
+ for(int i = derivedResources.size() - 1; i >= 0 ; --i){
+ ResourceMetadataData currDerivedResource = derivedResources.get(i);
+ currResourceName = currDerivedResource.getMetadataDataDefinition().getName();
+ Either<List<ImmutablePair<PropertyData, GraphEdge>>, TitanOperationStatus> res =
+ titanGenericDao.getChildrenNodes( currDerivedResource.getUniqueIdKey(), (String)currDerivedResource.getUniqueId(), GraphEdgeLabels.PROPERTY, NodeTypeEnum.Property, PropertyData.class);
+ if(res.isRight() && res.right().value() != TitanOperationStatus.NOT_FOUND){
+ getPropertiesOfAllDerivedFromRes = Either.right(res.right().value());
+ break;
+ }else if(res.isLeft()){
+ allDerivedProperties.putAll(res.left().value().stream()
+ //Maps PropertyData converted to PropertyDefinition
+ .map(pair-> propertyOperation.convertPropertyDataToPropertyDefinition(pair.getLeft(), (String)pair.getRight().getProperties().get(GraphPropertiesDictionary.NAME.getProperty()), (String)currDerivedResource.getUniqueId()))
+ //and collects it to a map
+ .collect(Collectors.toMap(entry->entry.getName(), entry->entry)));
+ }
+ }
+ }
+ catch(Exception e){
+ log.error("Exception occured during fetch properties of resource {}. ", currResourceName);
+ }
+ }
+ return getPropertiesOfAllDerivedFromRes;
+ }
+
private TitanOperationStatus associateAttributesToResource(TitanVertex metadataVertex, List<AttributeDefinition> attributes, String resourceId) {
TitanOperationStatus operationStatus = TitanOperationStatus.OK;
@@ -605,7 +694,7 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
// TODO Evg : need to change too..
if (derivedResources != null) {
for (ResourceMetadataData derivedResource : derivedResources) {
- log.debug("After associating resource " + resourceData.getUniqueId() + " to parent resource " + derivedResource.getUniqueId() + ". Edge type is " + GraphEdgeLabels.DERIVED_FROM);
+ log.debug("After associating resource {} to parent resource {}. Edge type is {}", resourceData.getUniqueId(), derivedResource.getUniqueId(), GraphEdgeLabels.DERIVED_FROM);
Either<GraphRelation, TitanOperationStatus> createRelationResult = titanGenericDao.createRelation(resourceData, derivedResource, GraphEdgeLabels.DERIVED_FROM, null);
if (createRelationResult.isRight()) {
log.error("Failed to associate resource {} to derived ", resourceData.getUniqueId());
@@ -636,26 +725,27 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
List<ResourceMetadataData> resources = null;
if (getParentResources.isRight()) {
/*
- * log.debug( "Cannot find parent resource by tosca resource name" + parentResource + " in the graph. Try to find by name"); Map<String, Object> propertiesWithResourceNameToMatch = new HashMap<String, Object>();
+ * log.debug( "Cannot find parent resource by tosca resource name {} in the graph. Try to find by name", parentResource);
+ * Map<String, Object> propertiesWithResourceNameToMatch = new HashMap<String, Object>();
* propertiesWithResourceNameToMatch.put( GraphPropertiesDictionary.STATE.getProperty(), LifecycleStateEnum.CERTIFIED.name()); propertiesWithResourceNameToMatch.put( GraphPropertiesDictionary.NAME.getProperty(), parentResource);
* propertiesWithResourceNameToMatch.put( GraphPropertiesDictionary.IS_HIGHEST_VERSION.getProperty( ), true);
*
* getParentResources = titanGenericDao.getByCriteria(NodeTypeEnum.Resource, propertiesWithResourceNameToMatch, ResourceData.class); if (getParentResources.isRight()) { log.error(
* "Cannot find parent resource by tosca resource name" + parentResource + " in the graph."); return Either.right(StorageOperationStatus. PARENT_RESOURCE_NOT_FOUND); }else{ resources = getParentResources.left().value();
- *
+ * hea
* }
*/
- log.error("Cannot find parent resource by tosca resource name" + parentResource + " in the graph.");
+ log.error("Cannot find parent resource by tosca resource name {} in the graph.", parentResource);
return Either.right(StorageOperationStatus.PARENT_RESOURCE_NOT_FOUND);
} else {
resources = getParentResources.left().value();
if (resources == null || resources.size() == 0) {
- log.error("Cannot find parent resource by tosc name" + parentResource + " in the graph. resources size is empty");
+ log.error("Cannot find parent resource by tosc name {} in the graph. resources size is empty", parentResource);
return Either.right(StorageOperationStatus.PARENT_RESOURCE_NOT_FOUND);
} else {
if (resources.size() > 1) {
- log.error("Multiple parent resources called " + parentResource + " found in the graph.");
+ log.error("Multiple parent resources called {} found in the graph.", parentResource);
return Either.right(StorageOperationStatus.MULTIPLE_PARENT_RESOURCE_FOUND);
}
ResourceMetadataData parentResourceData = resources.get(0);
@@ -714,133 +804,6 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
return getResource(uniqueId, componentParametersView, inTransaction);
}
- // public Either<Resource, StorageOperationStatus> getResource(String
- // uniqueId, boolean inTransaction) {
- //
- // Resource resource = null;
- // try {
- //
- // NodeTypeEnum resourceNodeType = NodeTypeEnum.Resource;
- // NodeTypeEnum compInstNodeType = NodeTypeEnum.Resource;
- //
- // Either<ResourceMetadataData, StorageOperationStatus>
- // componentByLabelAndId = getComponentByLabelAndId(uniqueId,
- // resourceNodeType, ResourceMetadataData.class);
- // if (componentByLabelAndId.isRight()) {
- // return Either.right(componentByLabelAndId.right().value());
- // }
- // ResourceMetadataData resourceData = componentByLabelAndId.left().value();
- // resource = convertResourceDataToResource(resourceData);
- //
- // TitanOperationStatus status = setResourceCreatorFromGraph(resource,
- // uniqueId);
- // if (status != TitanOperationStatus.OK) {
- // return
- // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- // }
- //
- // status = setResourceLastModifierFromGraph(resource, uniqueId);
- // if (status != TitanOperationStatus.OK) {
- // return
- // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- // }
- //
- // status = setResourcePropertiesFromGraph(uniqueId, resource);
- // if (status != TitanOperationStatus.OK) {
- // return
- // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- // }
- //
- // status = setResourceAttributesFromGraph(uniqueId, resource);
- // if (status != TitanOperationStatus.OK) {
- // return
- // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- // }
- //
- // status = setResourceDerivedFromGraph(uniqueId, resource);
- // if (status != TitanOperationStatus.OK) {
- // return
- // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- // }
- //
- // status = setComponentCategoriesFromGraph(resource);
- // if (status != TitanOperationStatus.OK) {
- // return
- // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- // }
- //
- // status = setComponentInstancesFromGraph(uniqueId, resource,
- // resourceNodeType, compInstNodeType);
- // if (status != TitanOperationStatus.OK) {
- // return
- // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- //
- // }
- //
- // StorageOperationStatus setRequirementsStatus =
- // setResourceRequirementsFromGraph(uniqueId, resource, true);
- // if (setRequirementsStatus != StorageOperationStatus.OK) {
- // log.error("Failed to set requirement of resource " + uniqueId + ". status
- // is " + setRequirementsStatus);
- // return Either.right(setRequirementsStatus);
- // }
- //
- // StorageOperationStatus storageStatus =
- // setResourceCapabilitiesFromGraph(uniqueId, resource);
- // if (storageStatus != StorageOperationStatus.OK) {
- // return Either.right(storageStatus);
- // }
- //
- // storageStatus = setArtifactFromGraph(uniqueId, resource);
- // if (storageStatus != StorageOperationStatus.OK) {
- // return Either.right(storageStatus);
- // }
- //
- // status = setComponentInstancesAttributesFromGraph(uniqueId, resource);
- // if (status != TitanOperationStatus.OK) {
- // return
- // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- //
- // }
- //
- // status = setComponentInstancesPropertiesFromGraph(uniqueId, resource);
- // if (status != TitanOperationStatus.OK) {
- // return
- // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- //
- // }
- //
- // storageStatus = setResourceInterfacesFromGraph(uniqueId, resource);
- // if (storageStatus != StorageOperationStatus.OK) {
- // return Either.right(storageStatus);
- // }
- //
- // storageStatus = setResourceAdditionalInformationFromGraph(uniqueId,
- // resource);
- // if (storageStatus != StorageOperationStatus.OK) {
- // return Either.right(storageStatus);
- // }
- // status = setAllVersions(resource);
- // if (status != TitanOperationStatus.OK) {
- // return
- // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- // }
- //
- // status = setGroupsFromGraph(uniqueId, resource, NodeTypeEnum.Resource);
- // if (status != TitanOperationStatus.OK) {
- // return
- // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- // }
- //
- // } finally {
- // if (false == inTransaction) {
- // titanGenericDao.commit();
- // }
- // }
- //
- // return Either.left(resource);
- // }
-
private TitanOperationStatus setComponentInstancesAttributesFromGraph(String uniqueId, Resource component) {
Map<String, List<ComponentInstanceAttribute>> resourceInstancesAttributes = new HashMap<>();
TitanOperationStatus status = TitanOperationStatus.OK;
@@ -863,114 +826,6 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
}
- // public Either<Resource, StorageOperationStatus> getResource_tx(String
- // uniqueId, boolean inTransaction) {
- //
- // Resource resource = null;
- // try {
- //
- // NodeTypeEnum resourceNodeType = NodeTypeEnum.Resource;
- // NodeTypeEnum compInstNodeType = NodeTypeEnum.Resource;
- //
- // Either<ResourceMetadataData, StorageOperationStatus>
- // componentByLabelAndId = getComponentByLabelAndId_tx(uniqueId,
- // resourceNodeType, ResourceMetadataData.class);
- // if (componentByLabelAndId.isRight()) {
- // return Either.right(componentByLabelAndId.right().value());
- // }
- // ResourceMetadataData resourceData = componentByLabelAndId.left().value();
- // resource = convertResourceDataToResource(resourceData);
- //
- // TitanOperationStatus status = setResourceCreatorFromGraph(resource,
- // uniqueId);
- // if (status != TitanOperationStatus.OK) {
- // return
- // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- // }
- //
- // status = setResourceLastModifierFromGraph(resource, uniqueId);
- // if (status != TitanOperationStatus.OK) {
- // return
- // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- // }
- //
- // status = setResourcePropertiesFromGraph(uniqueId, resource);
- // if (status != TitanOperationStatus.OK) {
- // return
- // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- // }
- //
- // status = setResourceDerivedFromGraph(uniqueId, resource);
- // if (status != TitanOperationStatus.OK) {
- // return
- // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- // }
- //
- // status = setComponentCategoriesFromGraph(resource);
- // if (status != TitanOperationStatus.OK) {
- // return
- // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- // }
- //
- // status = setComponentInstancesFromGraph(uniqueId, resource,
- // resourceNodeType, compInstNodeType);
- // if (status != TitanOperationStatus.OK) {
- // return
- // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- //
- // }
- //
- // StorageOperationStatus setRequirementsStatus =
- // setResourceRequirementsFromGraph(uniqueId, resource, true);
- // if (setRequirementsStatus != StorageOperationStatus.OK) {
- // log.error("Failed to set requirement of resource " + uniqueId + ". status
- // is " + setRequirementsStatus);
- // return Either.right(setRequirementsStatus);
- // }
- //
- // StorageOperationStatus storageStatus =
- // setResourceCapabilitiesFromGraph(uniqueId, resource);
- // if (storageStatus != StorageOperationStatus.OK) {
- // return Either.right(storageStatus);
- // }
- //
- // storageStatus = setArtifactFromGraph(uniqueId, resource);
- // if (storageStatus != StorageOperationStatus.OK) {
- // return Either.right(storageStatus);
- // }
- //
- // status = setComponentInstancesPropertiesFromGraph(uniqueId, resource);
- // if (status != TitanOperationStatus.OK) {
- // return
- // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- //
- // }
- //
- // storageStatus = setResourceInterfacesFromGraph(uniqueId, resource);
- // if (storageStatus != StorageOperationStatus.OK) {
- // return Either.right(storageStatus);
- // }
- //
- // storageStatus = setResourceAdditionalInformationFromGraph(uniqueId,
- // resource);
- // if (storageStatus != StorageOperationStatus.OK) {
- // return Either.right(storageStatus);
- // }
- // status = setAllVersions(resource);
- // if (status != TitanOperationStatus.OK) {
- // return
- // Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
- // }
- //
- // } finally {
- // if (false == inTransaction) {
- // titanGenericDao.commit();
- // }
- // }
- //
- // return Either.left(resource);
- // }
-
private StorageOperationStatus setResourceAdditionalInformationFromGraph(String uniqueId, Resource resource) {
List<AdditionalInformationDefinition> additionalInformation = new ArrayList<>();
@@ -1019,7 +874,11 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
}
} else {
Map<String, CapabilityDefinition> capabilities = result.left().value();
- if (capabilities == null || capabilities.isEmpty()) {
+ if (capabilities != null && !capabilities.isEmpty() && resource.getResourceType().equals(ResourceTypeEnum.VF)) {
+ log.error(String.format("VF %s has direct capabilities.!!!!!!!!!!!!!", resource.getName()));
+ MigrationErrorInformer.addMalformedVF(resource.getUniqueId());
+ }
+ if (capabilities == null || capabilities.isEmpty() || resource.getResourceType().equals(ResourceTypeEnum.VF)) {
Either<Map<String, List<CapabilityDefinition>>, TitanOperationStatus> eitherCapabilities = super.getCapabilities(resource, NodeTypeEnum.Resource, true);
if (eitherCapabilities.isLeft()) {
retStatus = StorageOperationStatus.OK;
@@ -1086,7 +945,11 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
}
} else {
Map<String, RequirementDefinition> requirements = result.left().value();
- if (requirements == null || requirements.isEmpty()) {
+ if (requirements != null && !requirements.isEmpty() && resource.getResourceType().equals(ResourceTypeEnum.VF)) {
+ log.error(String.format("VF %s has direct requirements.!!!!!!!!!!!!!", resource.getName()));
+ MigrationErrorInformer.addMalformedVF(resource.getUniqueId());
+ }
+ if (requirements == null || requirements.isEmpty() || resource.getResourceType() == ResourceTypeEnum.VF) {
Either<Map<String, List<RequirementDefinition>>, TitanOperationStatus> eitherCapabilities = super.getRequirements(resource, NodeTypeEnum.Resource, true);
if (eitherCapabilities.isLeft()) {
retStatus = StorageOperationStatus.OK;
@@ -1197,10 +1060,8 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
log.debug("Found parent node {}", value);
UserData userData = value.getKey();
- if (log.isDebugEnabled()) {
+ if (log.isDebugEnabled())
log.debug("Build resource : set last modifier userId to {}", userData.getUserId());
- }
-
String fullName = buildFullName(userData);
if (log.isDebugEnabled())
log.debug("Build resource : set last modifier full name to {}", fullName);
@@ -1222,9 +1083,8 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
if (log.isDebugEnabled())
log.debug("Found parent node {}", value);
UserData userData = value.getKey();
- if (log.isDebugEnabled()) {
+ if (log.isDebugEnabled())
log.debug("Build resource : set creator userId to {}", userData.getUserId());
- }
String fullName = buildFullName(userData);
if (log.isDebugEnabled())
log.debug("Build resource : set creator full name to {}", fullName);
@@ -1310,7 +1170,7 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
propertiesToMatch.put(GraphPropertiesDictionary.NAME.getProperty(), resourceName);
Either<List<ResourceMetadataData>, TitanOperationStatus> getParentResources = titanGenericDao.getByCriteria(NodeTypeEnum.Resource, propertiesToMatch, ResourceMetadataData.class);
- log.debug("result after searching for resources called " + resourceName + " is " + getParentResources);
+ log.debug("result after searching for resources called {} is {}", resourceName, getParentResources);
if (getParentResources.isRight()) {
TitanOperationStatus titanStatus = getParentResources.right().value();
if (titanStatus == TitanOperationStatus.NOT_FOUND) {
@@ -1321,7 +1181,7 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
} else {
List<ResourceMetadataData> value = getParentResources.left().value();
int numberOFResources = (value == null ? 0 : value.size());
- log.debug("The number of resources returned after searching for resource called " + resourceName + " is " + numberOFResources);
+ log.debug("The number of resources returned after searching for resource called {} is {}", resourceName, numberOFResources);
return Either.left(numberOFResources);
}
}
@@ -1418,67 +1278,67 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
if (iterator != null && iterator.hasNext()) {
Vertex rootVertex = iterator.next();
TitanOperationStatus deleteChildrenNodes = graphDeleteUtil.deleteChildrenNodes(rootVertex, GraphEdgeLabels.PROPERTY);
- log.debug("After deleting properties nodes in the graph. status is " + deleteChildrenNodes);
+ log.debug("After deleting properties nodes in the graph. status is {}", deleteChildrenNodes);
if (deleteChildrenNodes != TitanOperationStatus.OK) {
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(deleteChildrenNodes));
return result;
}
StorageOperationStatus removeInterfacesFromResource = removeInterfacesFromResource(resource);
- log.debug("After deleting interfaces nodes in the graph. status is " + removeInterfacesFromResource);
+ log.debug("After deleting interfaces nodes in the graph. status is {}", removeInterfacesFromResource);
if (!removeInterfacesFromResource.equals(StorageOperationStatus.OK)) {
result = Either.right(removeInterfacesFromResource);
return result;
}
StorageOperationStatus removeArtifactsFromResource = removeArtifactsFromResource(resource);
- log.debug("After deleting artifacts nodes in the graph. status is " + removeArtifactsFromResource);
+ log.debug("After deleting artifacts nodes in the graph. status is {}", removeArtifactsFromResource);
if (!removeArtifactsFromResource.equals(StorageOperationStatus.OK)) {
result = Either.right(removeArtifactsFromResource);
return result;
}
StorageOperationStatus removeCapabilitiesFromResource = removeCapabilitiesFromResource(resource);
- log.debug("After deleting capabilities nodes in the graph. status is " + removeCapabilitiesFromResource);
+ log.debug("After deleting capabilities nodes in the graph. status is {}", removeCapabilitiesFromResource);
if (!removeCapabilitiesFromResource.equals(StorageOperationStatus.OK)) {
result = Either.right(removeCapabilitiesFromResource);
return result;
}
StorageOperationStatus removeRequirementsFromResource = removeRequirementsFromResource(resource);
- log.debug("After deleting requirements nodes in the graph. status is " + removeRequirementsFromResource);
+ log.debug("After deleting requirements nodes in the graph. status is {}", removeRequirementsFromResource);
if (!removeRequirementsFromResource.equals(StorageOperationStatus.OK)) {
result = Either.right(removeRequirementsFromResource);
return result;
}
StorageOperationStatus removeRIsFromResource = removeResourceInstanceFromResource(resource);
- log.debug("After deleting resource instance nodes in the graph. status is " + removeRIsFromResource);
+ log.debug("After deleting resource instance nodes in the graph. status is {}", removeRIsFromResource);
if (!removeRIsFromResource.equals(StorageOperationStatus.OK)) {
result = Either.right(removeRIsFromResource);
return result;
}
StorageOperationStatus removeAttributesFromResource = removeAttributesFromResource(resource);
- log.debug("After deleting requirements nodes in the graph. status is " + removeRequirementsFromResource);
+ log.debug("After deleting requirements nodes in the graph. status is {}", removeRequirementsFromResource);
if (removeAttributesFromResource != StorageOperationStatus.OK) {
result = Either.right(removeAttributesFromResource);
return result;
}
StorageOperationStatus removeInputsFromResource = removeInputsFromComponent(NodeTypeEnum.Resource, resource);
- 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;
}
StorageOperationStatus removeAdditionalInformationFromResource = super.deleteAdditionalInformation(NodeTypeEnum.Resource, resource.getUniqueId());
- log.debug("After deleting additional information node in the graph. status is " + removeAdditionalInformationFromResource);
+ log.debug("After deleting additional information node in the graph. status is {}", removeAdditionalInformationFromResource);
if (!removeAdditionalInformationFromResource.equals(StorageOperationStatus.OK)) {
result = Either.right(removeAdditionalInformationFromResource);
return result;
}
StorageOperationStatus removeGroupsFromResource = super.deleteGroups(NodeTypeEnum.Resource, resource.getUniqueId());
- log.debug("After deleting group nodes in the graph. status is " + removeGroupsFromResource);
+ log.debug("After deleting group nodes in the graph. status is {}", removeGroupsFromResource);
if (!removeGroupsFromResource.equals(StorageOperationStatus.OK)) {
result = Either.right(removeGroupsFromResource);
return result;
@@ -1698,12 +1558,12 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
categoryRelation.setFrom(relationEndPoint);
Either<GraphRelation, TitanOperationStatus> deleteOutgoingRelation = titanGenericDao.deleteOutgoingRelation(categoryRelation);
if (deleteOutgoingRelation.isRight()) {
- log.error("Failed to delete category from resource " + resourceData.getUniqueId() + ". Edge type is " + GraphEdgeLabels.CATEGORY);
+ log.error("Failed to delete category from resource {}. Edge type is {}", resourceData.getUniqueId(), GraphEdgeLabels.CATEGORY);
result = DaoStatusConverter.convertTitanStatusToStorageStatus(deleteOutgoingRelation.right().value());
return result;
}
- log.debug("After removing edge from graph " + deleteOutgoingRelation);
+ log.debug("After removing edge from graph {}", deleteOutgoingRelation);
return assosiateMetadataToCategory(resource, resourceData);
}
@@ -1718,15 +1578,15 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
lastModifierRelation.setTo(relationEndPoint);
Either<GraphRelation, TitanOperationStatus> deleteIncomingRelation = titanGenericDao.deleteIncomingRelation(lastModifierRelation);
if (deleteIncomingRelation.isRight()) {
- log.error("Failed to delete user from resource " + resourceData.getUniqueId() + ". Edge type is " + GraphEdgeLabels.LAST_MODIFIER);
+ log.error("Failed to delete user from resource {}. Edge type is {}", resourceData.getUniqueId(),GraphEdgeLabels.LAST_MODIFIER);
result = DaoStatusConverter.convertTitanStatusToStorageStatus(deleteIncomingRelation.right().value());
return result;
}
Either<GraphRelation, TitanOperationStatus> createRelation = titanGenericDao.createRelation(modifierUserData, resourceData, GraphEdgeLabels.LAST_MODIFIER, null);
- log.debug("After associating user " + modifierUserData + " to resource " + resourceData.getUniqueId() + ". Edge type is " + GraphEdgeLabels.LAST_MODIFIER);
+ log.debug("After associating user {} to resource {}. Edge type is {}", modifierUserData, resourceData.getUniqueId(), GraphEdgeLabels.LAST_MODIFIER);
if (createRelation.isRight()) {
- log.error("Failed to associate user " + modifierUserData + " to resource " + resourceData.getUniqueId() + ". Edge type is " + GraphEdgeLabels.LAST_MODIFIER);
+ log.error("Failed to associate user {} to resource {}. Edge type is {}", modifierUserData, resourceData.getUniqueId(), GraphEdgeLabels.LAST_MODIFIER);
result = DaoStatusConverter.convertTitanStatusToStorageStatus(createRelation.right().value());
return result;
}
@@ -1783,6 +1643,30 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
public Either<Boolean, StorageOperationStatus> validateToscaResourceNameExists(String templateName) {
return validateToscaResourceNameUniqueness(templateName, titanGenericDao);
}
+
+ //Tal G for US815447
+ public Either<Boolean, StorageOperationStatus> validateToscaResourceNameExtends(String templateNameCurrent, String templateNameExtends) {
+
+ String currentTemplateNameChecked = templateNameExtends;
+
+ while(currentTemplateNameChecked != null && !currentTemplateNameChecked.equalsIgnoreCase(templateNameCurrent)){
+ Either<Resource, StorageOperationStatus> latestByToscaResourceName = getLatestByToscaResourceName(currentTemplateNameChecked, true);
+
+ if(latestByToscaResourceName.isRight()){
+ return latestByToscaResourceName.right().value() == StorageOperationStatus.NOT_FOUND ? Either.left(false) : Either.right(latestByToscaResourceName.right().value());
+ }
+
+ Resource value = latestByToscaResourceName.left().value();
+
+ if(value.getDerivedFrom() != null){
+ currentTemplateNameChecked = value.getDerivedFrom().get(0);
+ } else {
+ currentTemplateNameChecked = null;
+ }
+ }
+
+ return (currentTemplateNameChecked != null && currentTemplateNameChecked.equalsIgnoreCase(templateNameCurrent)) ? Either.left(true) : Either.left(false);
+ }
public Either<List<ArtifactDefinition>, StorageOperationStatus> getAdditionalArtifacts(String resourceId, boolean recursively, boolean inTransaction) {
List<ArtifactDefinition> artifacts = new ArrayList<>();
@@ -1798,12 +1682,12 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
for (Entry<String, InterfaceDefinition> entry : interfaces.entrySet()) {
InterfaceDefinition interfaceDefinition = entry.getValue();
- Map<String, Operation> operations = interfaceDefinition.getOperations();
+ Map<String, Operation> operations = interfaceDefinition.getOperationsMap();
if (operations != null && !operations.isEmpty()) {
for (Entry<String, Operation> opEntry : operations.entrySet()) {
Operation operation = opEntry.getValue();
- ArtifactDefinition artifactDefinition = operation.getImplementation();
+ ArtifactDefinition artifactDefinition = operation.getImplementationArtifact();
if (artifactDefinition != null) {
artifacts.add(artifactDefinition);
}
@@ -1825,6 +1709,13 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
return (Either<T, StorageOperationStatus>) getResource(id, inTransaction);
}
+ // @Override
+ // public <T> Either<T, StorageOperationStatus> getComponent_tx(String id,
+ // boolean inTransaction) {
+ // return (Either<T, StorageOperationStatus>) getResource_tx(id,
+ // inTransaction);
+ // }
+
private Optional<ImmutablePair<SubCategoryData, GraphEdge>> validateCategoryHierarcy(List<ImmutablePair<SubCategoryData, GraphEdge>> childNodes, String subCategoryName) {
Predicate<ImmutablePair<SubCategoryData, GraphEdge>> matchName = p -> p.getLeft().getSubCategoryDataDefinition().getName().equals(subCategoryName);
return childNodes.stream().filter(matchName).findAny();
@@ -1850,8 +1741,9 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
String subCategoryName = filters.get(FilterKeyEnum.SUB_CATEGORY);
String categoryName = filters.get(FilterKeyEnum.CATEGORY);
+ ResourceTypeEnum resourceType = ResourceTypeEnum.getType( filters.get(FilterKeyEnum.RESOURCE_TYPE));
Either<List<ImmutablePair<SubCategoryData, GraphEdge>>, StorageOperationStatus> subcategories = null;
- Optional<ImmutablePair<SubCategoryData, GraphEdge>> subCategoryData = null;
+ Optional<ImmutablePair<SubCategoryData, GraphEdge>> subCategoryData;
if (categoryName != null) {
subcategories = getAllSubCategories(categoryName);
@@ -1867,20 +1759,59 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
return Either.right(StorageOperationStatus.MATCH_NOT_FOUND);
}
return fetchByCategoryOrSubCategoryUid((String) subCategoryData.get().getLeft().getUniqueId(), NodeTypeEnum.ResourceSubcategory, GraphEdgeLabels.SUB_CATEGORY.getProperty(), NodeTypeEnum.Resource, inTransaction,
- ResourceMetadataData.class);
+ ResourceMetadataData.class, resourceType);
}
- return fetchByCategoryOrSubCategoryName(subCategoryName, NodeTypeEnum.ResourceSubcategory, GraphEdgeLabels.SUB_CATEGORY.getProperty(), NodeTypeEnum.Resource, inTransaction, ResourceMetadataData.class);
+ return fetchByCategoryOrSubCategoryName(subCategoryName, NodeTypeEnum.ResourceSubcategory, GraphEdgeLabels.SUB_CATEGORY.getProperty(), NodeTypeEnum.Resource, inTransaction, ResourceMetadataData.class, resourceType);
}
- return fetchByMainCategory(subcategories.left().value(), inTransaction);
+ if(subcategories != null){
+ return fetchByMainCategory(subcategories.left().value(), inTransaction, resourceType);
+ }
+ return fetchByResourceType(NodeTypeEnum.Resource, filters.get(FilterKeyEnum.RESOURCE_TYPE), ResourceMetadataData.class, inTransaction);
}
- private <T> Either<List<T>, StorageOperationStatus> fetchByMainCategory(List<ImmutablePair<SubCategoryData, GraphEdge>> subcategories, boolean inTransaction) {
+ @SuppressWarnings("unchecked")
+ private <T, S extends ComponentMetadataData> Either<List<T>, StorageOperationStatus> fetchByResourceType(NodeTypeEnum nodeType, String resourceType,
+ Class<S> clazz, boolean inTransaction) {
+ List<T> components = null;
+ TitanOperationStatus status;
+ Wrapper<StorageOperationStatus> statusWrapper = new Wrapper<>();
+ Either<List<T>, StorageOperationStatus> result;
+ try {
+ Map<String, Object> props = new HashMap<>();
+ props.put(GraphPropertiesDictionary.RESOURCE_TYPE.getProperty(), resourceType);
+ props.put(GraphPropertiesDictionary.IS_HIGHEST_VERSION.getProperty(), true);
+ Either<List<S>, TitanOperationStatus> getResources = titanGenericDao.getByCriteria(nodeType, props, clazz);
+ if (getResources.isRight()) {
+ status = getResources.right().value();
+ if(status != TitanOperationStatus.NOT_FOUND){
+ statusWrapper.setInnerElement(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
+ }else{
+ components = new ArrayList<>();
+ }
+ }else{
+ components = getResources.left().value().stream().
+ map(c->(T)convertComponentMetadataDataToComponent(c)).collect(Collectors.toList());
+ }
+ if(!statusWrapper.isEmpty()){
+ result = Either.right(statusWrapper.getInnerElement());
+ }else{
+ result = Either.left(components);
+ }
+ return result;
+ } finally {
+ if (!inTransaction) {
+ titanGenericDao.commit();
+ }
+ }
+ }
+
+ private <T> Either<List<T>, StorageOperationStatus> fetchByMainCategory(List<ImmutablePair<SubCategoryData, GraphEdge>> subcategories, boolean inTransaction, ResourceTypeEnum resourceType) {
List<T> components = new ArrayList<>();
for (ImmutablePair<SubCategoryData, GraphEdge> subCategory : subcategories) {
Either<List<T>, StorageOperationStatus> fetched = fetchByCategoryOrSubCategoryUid((String) subCategory.getLeft().getUniqueId(), NodeTypeEnum.ResourceSubcategory, GraphEdgeLabels.SUB_CATEGORY.getProperty(), NodeTypeEnum.Resource,
- inTransaction, ResourceMetadataData.class);
+ inTransaction, ResourceMetadataData.class, resourceType);
if (fetched.isRight()) {
// return fetched;
continue;
@@ -1906,6 +1837,52 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
return getComponentCatalogData(NodeTypeEnum.Resource, propertiesToMatch, Resource.class, ResourceMetadataData.class, inTransaction);
}
+ @Override
+ public Either<List<Resource>, StorageOperationStatus> getAllDerivedResources(Resource resource) {
+ try {
+ Either<List<ImmutablePair<ResourceMetadataData, GraphEdge>>, TitanOperationStatus> childrenNodes = getDerivingChildren(resource);
+ return childrenNodes.either((childrenPairs) -> convertToResources(PairUtils.leftSequence(childrenPairs)),
+ (status) -> Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status)));
+ } finally {
+ titanGenericDao.commit();
+ }
+ }
+
+ @Override
+ public Either<List<Resource>, StorageOperationStatus> getRootResources() {
+ Map<String, Object> rootToscaResource = new HashMap<>();
+ rootToscaResource.put(GraphPropertiesDictionary.TOSCA_RESOURCE_NAME.getProperty(), Resource.ROOT_RESOURCE);
+ return getResourceListByCriteria(rootToscaResource, false);
+ }
+
+ @Override
+ public Either<List<Resource>, StorageOperationStatus> getVFResources() {
+ Map<String, Object> rootToscaResource = new HashMap<>();
+ rootToscaResource.put(GraphPropertiesDictionary.RESOURCE_TYPE.getProperty(), ResourceTypeEnum.VF);
+ return getResourceListByCriteria(rootToscaResource, false);
+ }
+
+ @Override
+ public Either<List<Resource>, StorageOperationStatus> getAll() {
+ Either<List<Resource>, StorageOperationStatus> resourceListByCriteria = getResourceListByCriteria(new HashMap<>(), false);
+ if (resourceListByCriteria.isRight() && resourceListByCriteria.right().value() == StorageOperationStatus.NOT_FOUND) {
+ return Either.left(Collections.emptyList());
+ }
+ return resourceListByCriteria;
+ }
+
+
+ private Either<List<ImmutablePair<ResourceMetadataData, GraphEdge>>, TitanOperationStatus> getDerivingChildren(Resource resource) {
+ return titanGenericDao.getParentNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Resource), resource.getUniqueId(), GraphEdgeLabels.DERIVED_FROM, NodeTypeEnum.Resource, ResourceMetadataData.class);
+ }
+
+ private Either<List<Resource>, StorageOperationStatus> convertToResources(List<ResourceMetadataData> resourcesMetaData) {
+ List<Either<Resource, StorageOperationStatus>> resources = resourcesMetaData.stream()
+ .map(resourceMetaData -> this.getResource(resourceMetaData.getMetadataDataDefinition().getUniqueId()))
+ .collect(Collectors.toList());
+ return Either.sequenceLeft(fj.data.List.iterableList(resources)).bimap(fj.data.List::toJavaList, Function.identity());
+ }
+
protected TitanOperationStatus findResourcesPathRecursively(String resourceId, List<ResourceMetadataData> resourcesPathList) {
Either<ResourceMetadataData, TitanOperationStatus> nodeRes = this.titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.Resource), resourceId, ResourceMetadataData.class);
@@ -2106,7 +2083,7 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
}
long endFetchAllFromCache = System.currentTimeMillis();
- log.debug("Fetch all catalog resources metadata from cache took " + (endFetchAllFromCache - startFetchAllFromCache) + " ms");
+ log.debug("Fetch all catalog resources metadata from cache took {} ms", (endFetchAllFromCache - startFetchAllFromCache));
long startFetchFromGraph = System.currentTimeMillis();
log.debug("The number of resources needed to be fetch as light component is {}", notCertifiedHighest.size());
@@ -2115,13 +2092,13 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
log.trace("Fetch catalog resource non cached {} {}", uniqueId, data.getMetadataDataDefinition().getName());
Either<Resource, StorageOperationStatus> component = getLightComponent(uniqueId, 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());
}
}
long endFetchFromGraph = System.currentTimeMillis();
- log.debug("Fetch catalog resources from graph took " + (endFetchFromGraph - startFetchFromGraph) + " ms");
+ log.debug("Fetch catalog resources from graph took {} ms", (endFetchFromGraph - startFetchFromGraph));
return Either.left(result);
@@ -2141,7 +2118,7 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
return getResourceCatalogDataLatestCertifiedAndNonCertified(inTransaction, propertiesToMatch);
}
- private Either<List<Resource>, StorageOperationStatus> getResourceCatalogDataLatestCertifiedAndNonCertified(boolean inTransaction, Map<String, Object> otherToMatch) {
+ public Either<List<Resource>, StorageOperationStatus> getResourceCatalogDataLatestCertifiedAndNonCertified(boolean inTransaction, Map<String, Object> otherToMatch) {
Map<String, Object> propertiesToMatch = new HashMap<>();
if (otherToMatch != null) {
@@ -2169,7 +2146,7 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
for (ResourceMetadataData data : listOfHighest) {
Either<Resource, 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());
}
@@ -2193,7 +2170,7 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
if (resource.isLeft()) {
resources.add(resource.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.getUniqueId(), data.getMetadataDataDefinition().getName());
}
}
return Either.left(resources);
@@ -2253,16 +2230,11 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
}
List<ResourceMetadataData> 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);
- // return Either.right(StorageOperationStatus.GENERAL_ERROR);
- // }
for (ResourceMetadataData resourceData : dataList) {
// ResourceMetadataData resourceData = dataList.get(0);
Either<Resource, StorageOperationStatus> resource = getResource(resourceData.getMetadataDataDefinition().getUniqueId(), inTransaction);
if (resource.isRight()) {
- log.debug("Failed to fetch resource for name = " + resourceData.getMetadataDataDefinition().getName() + " and id = " + resourceData.getUniqueId());
+ log.debug("Failed to fetch resource for name = {} and id = {}", resourceData.getMetadataDataDefinition().getName(), resourceData.getUniqueId());
return Either.right(resource.right().value());
}
resourcesList.add(resource.left().value());
@@ -2287,7 +2259,7 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
}
List<Resource> resourcesList = byNamesAndVersion.left().value();
if (resourcesList.size() > 1) {
- log.debug("More that one instance of resource for name =" + name + " and version = " + version);
+ log.debug("More that one instance of resource for name = {} and version = {}", name, version);
return Either.right(StorageOperationStatus.GENERAL_ERROR);
}
return Either.left(resourcesList.get(0));
@@ -2345,7 +2317,7 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
try {
- log.debug("In updateResource. received resource = " + (resource == null ? null : resource.toString()));
+ log.debug("In updateResource. received resource = {}", (resource == null ? null : resource.toString()));
if (resource == null) {
log.error("Resource object is null");
result = Either.right(StorageOperationStatus.BAD_REQUEST);
@@ -2355,7 +2327,7 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
ResourceMetadataData resourceData = new ResourceMetadataData();
resourceData.getMetadataDataDefinition().setUniqueId(resource.getUniqueId());
resourceData.getMetadataDataDefinition().setHighestVersion(resource.isHighestVersion());
- log.debug("After converting resource to ResourceData. ResourceData = " + resourceData);
+ log.debug("After converting resource to ResourceData. ResourceData = {}", resourceData);
if (resourceData.getUniqueId() == null) {
log.error("Resource id is missing in the request.");
@@ -2365,14 +2337,14 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
Either<ResourceMetadataData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(resourceData, ResourceMetadataData.class);
if (updateNode.isRight()) {
- log.error("Failed to update resource " + resource.getUniqueId() + ". status is " + updateNode.right().value());
+ log.error("Failed to update resource {}. status is {}", resource.getUniqueId(), updateNode.right().value());
result = Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(updateNode.right().value()));
return result;
}
Either<Resource, StorageOperationStatus> updatedResource = getResource(resource.getUniqueId(), true);
if (updatedResource.isRight()) {
- log.error("Resource id is missing in the request. status is " + updatedResource.right().value());
+ log.error("Resource id is missing in the request. status is {}", updatedResource.right().value());
result = Either.right(StorageOperationStatus.BAD_REQUEST);
return result;
}
@@ -2382,7 +2354,7 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
if (log.isDebugEnabled()) {
String json = prettyJson.toJson(result.left().value());
- log.debug("Resource retrieved after update is " + json);
+ log.debug("Resource retrieved after update is {}", json);
}
return result;
@@ -2430,7 +2402,7 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
for (ResourceMetadataData resourceData : resourceDataList) {
Either<Resource, StorageOperationStatus> resource = getResource(resourceData.getMetadataDataDefinition().getUniqueId());
if (resource.isRight()) {
- log.debug("Failed to fetch resource for id = " + resourceData.getUniqueId() + " error is " + resource.right().value());
+ log.debug("Failed to fetch resource for id = {} error is {}", resourceData.getUniqueId(), resource.right().value());
return Either.right(resource.right().value());
}
result.add(resource.left().value());
@@ -2539,20 +2511,21 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
}
other.setVersion(version);
other.setUniqueId(null);
-
+
List<InputDefinition> inputs = other.getInputs();
Map<String, List<ComponentInstanceProperty>> inputsPropMap = new HashMap<String, List<ComponentInstanceProperty>>();
-
- if (inputs != null) {
- for (InputDefinition input : inputs) {
-
- Either<List<ComponentInstanceProperty>, TitanOperationStatus> inputPropStatus = inputOperation.getComponentInstancePropertiesByInputId(input.getUniqueId());
- if (inputPropStatus.isLeft()) {
- if (inputPropStatus.left().value() != null)
+
+ if(inputs != null){
+ for(InputDefinition input: inputs){
+
+ Either<List<ComponentInstanceProperty>, TitanOperationStatus> inputPropStatus = inputOperation.getComponentInstancePropertiesByInputId(input.getUniqueId());
+ if(inputPropStatus.isLeft()){
+ if(inputPropStatus.left().value() != null)
inputsPropMap.put(input.getName(), inputPropStatus.left().value());
-
+
}
-
+
+
}
}
@@ -2607,15 +2580,10 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
result = this.getResource(resource.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());
}
- if (log.isDebugEnabled()) {
- String json = prettyJson.toJson(result.left().value());
- // log.debug("Resource retrieved is {}", json);
- }
-
return result;
} finally {
if (false == inTransaction) {
@@ -2713,13 +2681,13 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
SubCategoryDefinition currSubcategory = currentCategory.getSubcategories().get(0);
SubCategoryDefinition newSubcategory = newCategory.getSubcategories().get(0);
if (newSubcategory.getName() != null && false == newSubcategory.getName().equals(currSubcategory.getName())) {
- log.debug("Going to update the category of the resource from " + currentCategory + " to " + newCategory);
+ log.debug("Going to update the category of the resource from {} to {}", currentCategory, newCategory);
categoryWasChanged = true;
}
}
if (categoryWasChanged) {
status = moveCategoryEdge((Resource) component, (ResourceMetadataData) componentData, newCategory);
- log.debug("Going to update the category of the resource from " + currentCategory + " to " + newCategory + ". status is " + status);
+ log.debug("Going to update the category of the resource from {} to {}. status is {}", currentCategory, newCategory, status);
}
return status;
}
@@ -2810,7 +2778,12 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
List<ResourceMetadataData> resourceMetadataDataList = null;
Either<List<ResourceMetadataData>, TitanOperationStatus> byCsar = titanGenericDao.getByCriteria(NodeTypeEnum.Resource, props, ResourceMetadataData.class);
if (byCsar.isRight()) {
- if (TitanOperationStatus.NOT_FOUND.equals(byCsar.right().value())) {
+ if (TitanOperationStatus.NOT_FOUND == byCsar.right().value()) {
+ //Fix Defect DE256036
+ if( StringUtils.isEmpty(systemName)){
+ return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(TitanOperationStatus.NOT_FOUND));
+ }
+
props.clear();
props.put(GraphPropertiesDictionary.IS_HIGHEST_VERSION.getProperty(), true);
props.put(GraphPropertiesDictionary.SYSTEM_NAME.getProperty(), systemName);
@@ -2820,7 +2793,7 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(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());
+ log.debug("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();
@@ -2850,7 +2823,7 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
} else {
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());
+ log.debug("getLatestResourceByCsarOrName - getByCriteria(by csar) must return only 2 latest version, but was returned - {}", byCsar.left().value().size());
return Either.right(StorageOperationStatus.GENERAL_ERROR);
}
if (resourceMetadataDataList.size() == 1) {
@@ -2889,7 +2862,7 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
return Either.left(byCsar.left().value());
}
- private Either<Resource, StorageOperationStatus> getResource(String uniqueId, ComponentParametersView componentParametersView, boolean inTransaction) {
+ public Either<Resource, StorageOperationStatus> getResource(String uniqueId, ComponentParametersView componentParametersView, boolean inTransaction) {
Resource resource = null;
try {
@@ -2971,7 +2944,7 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
if (false == componentParametersView.isIgnoreRequirements()) {
StorageOperationStatus setRequirementsStatus = setResourceRequirementsFromGraph(uniqueId, resource, true);
if (setRequirementsStatus != StorageOperationStatus.OK) {
- log.error("Failed to set requirement of resource " + uniqueId + ". status is " + setRequirementsStatus);
+ log.error("Failed to set requirement of resource {}. status is {}", uniqueId, setRequirementsStatus);
return Either.right(setRequirementsStatus);
}
}
@@ -2979,7 +2952,7 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
if (false == componentParametersView.isIgnoreInputs()) {
status = setComponentInputsFromGraph(uniqueId, resource, 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));
}
@@ -3008,7 +2981,7 @@ public class ResourceOperation extends ComponentOperation implements IResourceOp
}
if (false == componentParametersView.isIgnoreComponentInstancesProperties()) {
- status = setComponentInstancesPropertiesFromGraph(uniqueId, resource);
+ status = setComponentInstancesPropertiesFromGraph(resource);
if (status != TitanOperationStatus.OK) {
return Either.right(DaoStatusConverter.convertTitanStatusToStorageStatus(status));
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);
}
+
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ToscaDefinitionPathCalculatorImpl.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ToscaDefinitionPathCalculatorImpl.java
new file mode 100644
index 0000000000..01a730a052
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/ToscaDefinitionPathCalculatorImpl.java
@@ -0,0 +1,27 @@
+package org.openecomp.sdc.be.model.operations.impl;
+
+import org.openecomp.sdc.be.dao.graph.datatype.GraphEdge;
+import org.openecomp.sdc.be.dao.neo4j.GraphEdgePropertiesDictionary;
+import org.openecomp.sdc.be.model.ComponentInstance;
+import org.openecomp.sdc.be.model.operations.api.ToscaDefinitionPathCalculator;
+import org.springframework.stereotype.Component;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+@Component("tosca-path-calculator")
+public class ToscaDefinitionPathCalculatorImpl implements ToscaDefinitionPathCalculator {
+
+ @Override
+ public List<String> calculateToscaDefinitionPath(ComponentInstance componentInstance, GraphEdge edge) {
+ String ownerId = getCapReqOwner(edge);
+ String instanceId = componentInstance.getUniqueId();
+ return ownerId.equals(instanceId) ? Collections.singletonList(instanceId) : Arrays.asList(instanceId, ownerId);
+ }
+
+ private String getCapReqOwner(GraphEdge edge) {
+ String ownerIdKey = GraphEdgePropertiesDictionary.OWNER_ID.getProperty();
+ return (String)edge.getProperties().get(ownerIdKey);
+ }
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/UniqueIdBuilder.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/UniqueIdBuilder.java
index c4bcf6d907..eb5d8f6797 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/UniqueIdBuilder.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/UniqueIdBuilder.java
@@ -24,22 +24,24 @@ import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
+import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum;
import org.openecomp.sdc.be.dao.neo4j.GraphPropertiesDictionary;
import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
import org.openecomp.sdc.be.resources.data.ResourceCategoryData;
import org.openecomp.sdc.be.resources.data.ServiceCategoryData;
import org.openecomp.sdc.be.resources.data.TagData;
import org.openecomp.sdc.be.resources.data.UserData;
+import org.openecomp.sdc.common.util.ValidationUtils;
public class UniqueIdBuilder {
private static String DOT = ".";
private static final String HEAT_PARAM_PREFIX = "heat_";
-
+
public static String buildPropertyUniqueId(String resourceId, String propertyName) {
return resourceId + DOT + propertyName;
}
-
+
public static String buildHeatParameterUniqueId(String resourceId, String propertyName) {
return resourceId + DOT + HEAT_PARAM_PREFIX + propertyName;
}
@@ -103,7 +105,9 @@ public class UniqueIdBuilder {
public static String buildAttributeUid(String resourceId, String attName) {
return NodeTypeEnum.Attribute.getName() + DOT + resourceId + DOT + attName;
}
-
+ public static String buildArtifactUid(String parentId, String label) {
+ return parentId + DOT + label;
+ }
public static String buildRequirementUid(String resourceId, String reqName) {
return resourceId + DOT + reqName;
}
@@ -125,9 +129,8 @@ public class UniqueIdBuilder {
public static String buildPropertyValueUniqueId(String parentId, String paramName) {
return NodeTypeEnum.PropertyValue.getName() + DOT + parentId + DOT + paramName;
}
-
- public static String buildArtifactByInterfaceUniqueId(String resourceId, String interfaceName, String operation,
- String artifactLabel) {
+
+ public static String buildArtifactByInterfaceUniqueId(String resourceId, String interfaceName, String operation, String artifactLabel) {
return resourceId + DOT + interfaceName + DOT + operation + DOT + artifactLabel;
}
@@ -141,8 +144,7 @@ public class UniqueIdBuilder {
// return resourceId + DOT + interfaceName + DOT +operation + DOT +
// artifactLabel;
// }
- public static String buildArtifactByInterfaceUniqueIdAndRsrcId(String resourceId, String interfaceName,
- String operation, String artifactLabel) {
+ public static String buildArtifactByInterfaceUniqueIdAndRsrcId(String resourceId, String interfaceName, String operation, String artifactLabel) {
return resourceId + DOT + interfaceName + DOT + operation + DOT + artifactLabel;
}
@@ -183,6 +185,9 @@ public class UniqueIdBuilder {
public static String buildCategoryUid(String categoryName, NodeTypeEnum type) {
return type.getName() + DOT + categoryName;
}
+ public static String buildComponentCategoryUid(String categoryName, VertexTypeEnum type) {
+ return type.getName() + DOT + ValidationUtils.normalizeCategoryName4Uniqueness(categoryName);
+ }
public static String buildSubCategoryUid(String categoryUid, String subCategoryName) {
return categoryUid + DOT + subCategoryName;
@@ -195,6 +200,10 @@ public class UniqueIdBuilder {
public static String buildResourceInstancePropertyValueUid(String resourceInstanceUniqueId, Integer index) {
return resourceInstanceUniqueId + DOT + "property" + DOT + index;
}
+
+ public static String buildComponentPropertyUniqueId(String resourceId, String propertyName) {
+ return NodeTypeEnum.Property.getName() + DOT + resourceId + DOT + propertyName;
+ }
public static String buildResourceInstanceAttributeValueUid(String resourceInstanceUniqueId, Integer index) {
return resourceInstanceUniqueId + DOT + "attribute" + DOT + index;
@@ -236,7 +245,7 @@ public class UniqueIdBuilder {
return groupUniqueId + DOT + "property" + DOT + index;
}
-
+
public static String buildUserFunctionalMenuUid(String userId) {
return userId + DOT + "functionalmenu";
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/UserAdminOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/UserAdminOperation.java
index 85bb56f39f..7c45f8f384 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/UserAdminOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/UserAdminOperation.java
@@ -20,11 +20,8 @@
package org.openecomp.sdc.be.model.operations.impl;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
+import com.thinkaurelius.titan.core.TitanVertex;
+import fj.data.Either;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.tinkerpop.gremlin.structure.Direction;
import org.apache.tinkerpop.gremlin.structure.Edge;
@@ -47,20 +44,24 @@ import org.openecomp.sdc.common.datastructure.Wrapper;
import org.openecomp.sdc.common.util.MethodActivationStatusEnum;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
-import com.thinkaurelius.titan.core.TitanVertex;
-
-import fj.data.Either;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
@Component("user-operation")
public class UserAdminOperation implements IUserAdminOperation {
- @javax.annotation.Resource
private TitanGenericDao titanGenericDao;
- public UserAdminOperation() {
+ public UserAdminOperation(@Qualifier("titan-generic-dao") TitanGenericDao titanGenericDao) {
super();
+ this.titanGenericDao = titanGenericDao;
+
}
private static Logger log = LoggerFactory.getLogger(UserAdminOperation.class.getName());
@@ -132,8 +133,7 @@ public class UserAdminOperation implements IUserAdminOperation {
}
}
- private void validateUserExists(Wrapper<Either<User, ActionStatus>> resultWrapper, Wrapper<UserData> userWrapper,
- String id) {
+ private void validateUserExists(Wrapper<Either<User, ActionStatus>> resultWrapper, Wrapper<UserData> userWrapper, String id) {
Either<User, ActionStatus> result;
if (id == null) {
log.info("User userId is empty");
@@ -142,19 +142,10 @@ public class UserAdminOperation implements IUserAdminOperation {
return;
}
id = id.toLowerCase();
- Either<UserData, TitanOperationStatus> either = titanGenericDao
- .getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.User), id, UserData.class);
+ Either<UserData, TitanOperationStatus> either = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.User), id, UserData.class);
if (either.isRight()) {
- if (either.right().value() == TitanOperationStatus.NOT_FOUND) {
- log.debug("User with userId {} not found", id);
- result = Either.right(ActionStatus.USER_NOT_FOUND);
- resultWrapper.setInnerElement(result);
- } else {
- log.debug("Problem get User with userId {}. Reason - {}", id, either.right().value().name());
- result = Either.right(ActionStatus.GENERAL_ERROR);
- resultWrapper.setInnerElement(result);
- }
+ resultWrapper.setInnerElement(getUserNotFoundError(id, either.right().value()));
} else {
userWrapper.setInnerElement(either.left().value());
}
@@ -168,10 +159,10 @@ public class UserAdminOperation implements IUserAdminOperation {
UserData userData = convertToUserData(user);
result = titanGenericDao.createNode(userData, UserData.class);
if (result.isRight()) {
- log.debug("Problem while saving User {}. Reason - {}", userData.toString(), result.right().value().name());
+ log.debug("Problem while saving User {}. Reason - {}",userData.toString(),result.right().value().name());
return Either.right(StorageOperationStatus.GENERAL_ERROR);
}
- log.debug("User {} saved successfully", userData.toString());
+ log.debug("User {} saved successfully",userData.toString());
return Either.left(convertToUser(result.left().value()));
} finally {
@@ -194,10 +185,10 @@ public class UserAdminOperation implements IUserAdminOperation {
UserData userData = convertToUserData(user);
result = titanGenericDao.updateNode(userData, UserData.class);
if (result.isRight()) {
- log.debug("Problem while updating User {}. Reason - {}", userData.toString(), result.right().value().name());
+ log.debug("Problem while updating User {}. Reason - {}",userData.toString(),result.right().value().name());
return Either.right(StorageOperationStatus.GENERAL_ERROR);
}
- log.debug("User {} updated successfully", userData.toString());
+ log.debug("User {} updated successfully",userData.toString());
return Either.left(convertToUser(result.left().value()));
} finally {
@@ -229,10 +220,9 @@ public class UserAdminOperation implements IUserAdminOperation {
@Override
public Either<User, ActionStatus> deleteUserData(String id) {
Either<User, ActionStatus> result;
- Either<UserData, TitanOperationStatus> eitherGet = titanGenericDao
- .getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.User), id, UserData.class);
+ Either<UserData, TitanOperationStatus> eitherGet = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.User), id, UserData.class);
if (eitherGet.isRight()) {
- log.debug("Problem while retriving user with userId {}", id);
+ log.debug("Problem while retriving user with userId {}",id);
if (eitherGet.right().value() == TitanOperationStatus.NOT_FOUND) {
result = Either.right(ActionStatus.USER_NOT_FOUND);
} else {
@@ -264,11 +254,11 @@ public class UserAdminOperation implements IUserAdminOperation {
private void deleteUser(Wrapper<Either<User, ActionStatus>> resultWrapper, UserData userData) {
Either<UserData, TitanOperationStatus> eitherDelete = titanGenericDao.deleteNode(userData, UserData.class);
if (eitherDelete.isRight()) {
- log.debug("Problem while deleting User {}. Reason - {}", userData.toString(), eitherDelete.right().value().name());
+ log.debug("Problem while deleting User {}. Reason - {}",userData.toString(),eitherDelete.right().value().name());
Either<User, ActionStatus> result = Either.right(ActionStatus.GENERAL_ERROR);
resultWrapper.setInnerElement(result);
} else {
- log.debug("User {} deleted successfully", userData.toString());
+ log.debug("User {} deleted successfully",userData.toString());
Either<User, ActionStatus> result = Either.left(convertToUser(eitherDelete.left().value()));
resultWrapper.setInnerElement(result);
}
@@ -277,10 +267,9 @@ public class UserAdminOperation implements IUserAdminOperation {
private void validateUserHasNoConnections(Wrapper<Either<User, ActionStatus>> resultWrapper, UserData userData) {
if (resultWrapper.isEmpty()) {
- Either<List<Edge>, TitanOperationStatus> edgesForNode = titanGenericDao.getEdgesForNode(userData,
- Direction.BOTH);
+ Either<List<Edge>, TitanOperationStatus> edgesForNode = titanGenericDao.getEdgesForNode(userData, Direction.BOTH);
if (edgesForNode.isRight()) {
- log.debug("Problem while deleting User {}. Reason - {}", userData.toString(), edgesForNode.right().value().name());
+ log.debug("Problem while deleting User {}. Reason - {}",userData.toString(),edgesForNode.right().value().name());
Either<User, ActionStatus> result = Either.right(ActionStatus.GENERAL_ERROR);
resultWrapper.setInnerElement(result);
} else {
@@ -293,35 +282,31 @@ public class UserAdminOperation implements IUserAdminOperation {
}
}
- public Either<List<Edge>, StorageOperationStatus> getUserPandingTasksList(User user,
- Map<String, Object> properties) {
+ public Either<List<Edge>, StorageOperationStatus> getUserPandingTasksList(User user, Map<String, Object> properties) {
UserData userData = convertToUserData(user);
- Either<TitanVertex, TitanOperationStatus> vertexUser = titanGenericDao
- .getVertexByProperty(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.User), user.getUserId());
+ Either<TitanVertex, TitanOperationStatus> vertexUser = titanGenericDao.getVertexByProperty(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.User), user.getUserId());
if (vertexUser.isRight()) {
- log.debug("Problem while deleting User {}. Reason - {}", userData.toString(), vertexUser.right().value().name());
+ log.debug("Problem while deleting User {}. Reason - {}",userData.toString(),vertexUser.right().value().name());
return Either.right(StorageOperationStatus.GENERAL_ERROR);
}
List<Edge> pandingTasks = new ArrayList<>();
- Either<List<Edge>, TitanOperationStatus> edges = titanGenericDao
- .getOutgoingEdgesByCriteria(vertexUser.left().value(), GraphEdgeLabels.STATE, properties);
+ Either<List<Edge>, TitanOperationStatus> edges = titanGenericDao.getOutgoingEdgesByCriteria(vertexUser.left().value(), GraphEdgeLabels.STATE, properties);
if (edges.isRight() || edges.left().value() == null) {
if (edges.right().value() == TitanOperationStatus.NOT_FOUND) {
return Either.left(pandingTasks);
} else {
- log.debug("Problem while deleting User {}", userData.toString(), edges.right().value().name());
+ log.debug("Problem while deleting User {}. Reason - ",userData.toString(),edges.right().value().name());
return Either.right(StorageOperationStatus.GENERAL_ERROR);
}
}
for (Edge edge : edges.left().value()) {
Vertex componentVertex = edge.inVertex();
- VertexProperty<Object> property = componentVertex
- .property(GraphPropertiesDictionary.IS_DELETED.getProperty());
+ VertexProperty<Object> property = componentVertex.property(GraphPropertiesDictionary.IS_DELETED.getProperty());
if (!property.isPresent()) {
pandingTasks.add(edge);
} else {
@@ -347,35 +332,64 @@ public class UserAdminOperation implements IUserAdminOperation {
propertiesToMatch.put(GraphPropertiesDictionary.USER_STATUS.getProperty(), status);
}
- Either<List<UserData>, TitanOperationStatus> userNodes = titanGenericDao.getByCriteria(NodeTypeEnum.User,
- propertiesToMatch, UserData.class);
+ Either<List<UserData>, TitanOperationStatus> userNodes = titanGenericDao.getByCriteria(NodeTypeEnum.User, propertiesToMatch, UserData.class);
titanGenericDao.commit();
- if (userNodes.isRight()) {
- // in case of NOT_FOUND from Titan return empty list
- if (userNodes.right().value().equals(TitanOperationStatus.NOT_FOUND)) {
- return Either.left(result);
- } else {
- log.error("Problem while getting all users with role {}. Reason - {}", role, userNodes.right().value().name());
- return Either.right(ActionStatus.GENERAL_ERROR);
- }
- } else {
- List<UserData> userDataList = userNodes.left().value();
- if (userDataList != null) {
- for (UserData userData : userDataList) {
- User user = convertToUser(userData);
- result.add(user);
- }
- return Either.left(result);
- }
- log.debug("No users were found with role {}", role);
- return Either.left(result);
- }
+ return convertToUsers(role, userNodes);
} finally {
titanGenericDao.commit();
}
}
+ private Either<List<User>, ActionStatus> convertToUsers(String role, Either<List<UserData>, TitanOperationStatus> userNodes) {
+
+ if (userNodes.isRight()) {
+ // in case of NOT_FOUND from Titan return empty list
+ if (userNodes.right().value().equals(TitanOperationStatus.NOT_FOUND)) {
+ return Either.left(Collections.emptyList());
+ } else {
+ log.error("Problem while getting all users with role {}. Reason - {}", role, userNodes.right().value().name());
+ return Either.right(ActionStatus.GENERAL_ERROR);
+ }
+ } else {
+ List<UserData> userDataList = userNodes.left().value();
+ if (userDataList != null) {
+ return Either.left(convertToUsers(userDataList));
+ }
+ log.debug("No users were found with role {}", role);
+ return Either.left(Collections.emptyList());
+ }
+ }
+
+ private List<User> convertToUsers(List<UserData> usersData) {
+ List<User> result = new ArrayList<>();
+ for (UserData userData : usersData) {
+ User user = convertToUser(userData);
+ result.add(user);
+ }
+ return result;
+ }
+
+ @Override
+ public Either<List<User>, ActionStatus> getAllUsers() {
+ try {
+ Either<List<UserData>, TitanOperationStatus> userNodes = titanGenericDao.getAll(NodeTypeEnum.User, UserData.class);
+ return convertToUsers("", userNodes);
+ } finally {
+ titanGenericDao.commit();
+ }
+ }
+
+ private Either<User, ActionStatus> getUserNotFoundError(String uid, TitanOperationStatus status) {
+ if (status == TitanOperationStatus.NOT_FOUND) {
+ log.debug("User with userId {} not found", uid);
+ return Either.right(ActionStatus.USER_NOT_FOUND);
+ } else {
+ log.debug("Problem get User with userId {}. Reason - {}", uid, status.name());
+ return Either.right(ActionStatus.GENERAL_ERROR);
+ }
+ }
+
protected User convertToUser(UserData userData) {
User user = new User();
user.setUserId(userData.getUserId());
@@ -403,6 +417,7 @@ public class UserAdminOperation implements IUserAdminOperation {
return userData;
}
+ @Override
public Either<ImmutablePair<User, FunctionalMenuInfo>, ActionStatus> getUserDataWithFunctionalMenu(String userId) {
Either<User, ActionStatus> userData = getUserData(userId, true, true);
@@ -424,8 +439,7 @@ public class UserAdminOperation implements IUserAdminOperation {
functionalMenuInfo.setFunctionalMenu(userFunctionalMenuData.getFunctionalMenu());
}
- ImmutablePair<User, FunctionalMenuInfo> result = new ImmutablePair<User, FunctionalMenuInfo>(user,
- functionalMenuInfo);
+ ImmutablePair<User, FunctionalMenuInfo> result = new ImmutablePair<User, FunctionalMenuInfo>(user, functionalMenuInfo);
return Either.left(result);
}
@@ -441,8 +455,7 @@ public class UserAdminOperation implements IUserAdminOperation {
userId = userId.toLowerCase();
String uid = UniqueIdBuilder.buildUserFunctionalMenuUid(userId);
- Either<UserFunctionalMenuData, TitanOperationStatus> either = titanGenericDao.getNode(
- UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.UserFunctionalMenu), uid, UserFunctionalMenuData.class);
+ Either<UserFunctionalMenuData, TitanOperationStatus> either = titanGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.UserFunctionalMenu), uid, UserFunctionalMenuData.class);
return either;
}
@@ -457,8 +470,7 @@ public class UserAdminOperation implements IUserAdminOperation {
String uid = UniqueIdBuilder.buildUserFunctionalMenuUid(userId);
UserFunctionalMenuData functionalMenuData = new UserFunctionalMenuData(newFunctionalMenu, uid);
- Either<UserFunctionalMenuData, TitanOperationStatus> createNode = titanGenericDao
- .createNode(functionalMenuData, UserFunctionalMenuData.class);
+ Either<UserFunctionalMenuData, TitanOperationStatus> createNode = titanGenericDao.createNode(functionalMenuData, UserFunctionalMenuData.class);
if (createNode.isRight()) {
return Either.right(createNode.right().value());
@@ -473,8 +485,7 @@ public class UserAdminOperation implements IUserAdminOperation {
} else {
UserFunctionalMenuData userFunctionalMenuData = functionalMenu.left().value();
userFunctionalMenuData.setFunctionalMenu(newFunctionalMenu);
- Either<UserFunctionalMenuData, TitanOperationStatus> updateNode = titanGenericDao
- .updateNode(userFunctionalMenuData, UserFunctionalMenuData.class);
+ Either<UserFunctionalMenuData, TitanOperationStatus> updateNode = titanGenericDao.updateNode(userFunctionalMenuData, UserFunctionalMenuData.class);
if (updateNode.isRight()) {
return Either.right(updateNode.right().value());
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/migration/MigrationErrorInformer.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/migration/MigrationErrorInformer.java
new file mode 100644
index 0000000000..952c0672cc
--- /dev/null
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/migration/MigrationErrorInformer.java
@@ -0,0 +1,39 @@
+package org.openecomp.sdc.be.model.operations.migration;
+
+import org.apache.commons.lang3.StringUtils;
+import org.openecomp.sdc.be.model.Component;
+import org.openecomp.sdc.be.model.ComponentInstance;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+/**
+ * to be moved with all operations to the migration project
+ */
+@Deprecated
+public class MigrationErrorInformer {
+
+ private static Logger log = LoggerFactory.getLogger(MigrationErrorInformer.class);
+ private static Set<String> malformedVFs = new HashSet<>();
+
+ public static void addMalformedVF(String vfId) {
+ malformedVFs.add(vfId);
+ }
+
+ public static void logIfServiceUsingMalformedVfs(Component service) {
+ List<ComponentInstance> componentInstances = service.getComponentInstances();
+ if (componentInstances != null && !componentInstances.isEmpty() && !malformedVFs.isEmpty()) {
+ Set<String> serviceInstances = componentInstances.stream().map(ComponentInstance::getComponentUid).collect(Collectors.toSet());
+ serviceInstances.retainAll(malformedVFs);
+ if (!serviceInstances.isEmpty()) {
+ log.error(String.format("Service %s is using malformed VFs: %s", service.getUniqueId(), StringUtils.join(serviceInstances, ',')));
+ }
+ }
+ }
+
+
+}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/utils/ComponentValidationUtils.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/utils/ComponentValidationUtils.java
index fd6563ac4f..fe5d79a266 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/utils/ComponentValidationUtils.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/utils/ComponentValidationUtils.java
@@ -20,11 +20,12 @@
package org.openecomp.sdc.be.model.operations.utils;
+import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum;
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.Service;
-import org.openecomp.sdc.be.model.operations.api.IComponentOperation;
+import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
import org.openecomp.sdc.be.model.operations.api.IResourceOperation;
import org.openecomp.sdc.be.model.operations.api.IServiceOperation;
import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
@@ -56,52 +57,26 @@ public class ComponentValidationUtils {
return true;
}
- public static boolean canWorkOnResource(String resourceId, IResourceOperation resourceOperation,
- String userId) {
- Either<Resource, StorageOperationStatus> getResourceResult = resourceOperation.getLightComponent(resourceId,
- false);
-
- if (getResourceResult.isRight()) {
- log.debug("Failed to retrive resource, resource id {}", resourceId);
- return false;
- }
- Resource resource = getResourceResult.left().value();
-
- return canWorkOnResource(resource, userId);
-
- }
-
- public static boolean canWorkOnService(String serviceId, IServiceOperation serviceOperation, String userId) {
- Either<Service, StorageOperationStatus> getResourceResult = serviceOperation.getLightComponent(serviceId,
- false);
-
- if (getResourceResult.isRight()) {
- log.debug("Failed to retrieve service, service id {}", serviceId);
- return false;
- }
- Service service = getResourceResult.left().value();
-
- return canWorkOnComponent(service, userId);
-
- }
-
- public static boolean canWorkOnComponent(String componentId, IComponentOperation componentOperation,
- String userId) {
- Either<Component, StorageOperationStatus> getResourceResult = componentOperation.getLightComponent(componentId,
- false);
+ public static boolean canWorkOnComponent(String componentId, ToscaOperationFacade toscaOperationFacade, String userId) {
+
+ Either<Component, StorageOperationStatus> getResourceResult = toscaOperationFacade.getToscaElement(componentId, JsonParseFlagEnum.ParseMetadata);
if (getResourceResult.isRight()) {
log.debug("Failed to retrieve component, component id {}", componentId);
return false;
}
- Component service = getResourceResult.left().value();
+ Component component = getResourceResult.left().value();
- return canWorkOnComponent(service, userId);
+ return canWorkOnComponent(component, userId);
}
-
+
public static boolean canWorkOnComponent(Component component, String userId) {
+ return canWorkOnComponent(component.getLifecycleState(), component.getLastUpdaterUserId(), userId);
+ }
+
+ private static boolean canWorkOnComponent(LifecycleStateEnum lifecycleState, String lastUpdaterUserId, String userId) {
// verify resource is checked-out
- if (component.getLifecycleState() != LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT) {
+ if (lifecycleState != LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT) {
log.debug("resource is not checked-out");
return false;
}
@@ -113,7 +88,7 @@ public class ComponentValidationUtils {
}
// verify resource last update user is the current user
- if (!userId.equals(component.getLastUpdaterUserId())) {
+ if (!userId.equals(lastUpdaterUserId)) {
log.debug("resource last updater userId is not {}", userId);
return false;
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/utils/GraphDeleteUtil.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/utils/GraphDeleteUtil.java
index 1d78252de2..1671b2d98b 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/utils/GraphDeleteUtil.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/utils/GraphDeleteUtil.java
@@ -58,41 +58,16 @@ public class GraphDeleteUtil {
Map<String, Object> properties = null;
if (log.isDebugEnabled()) {
properties = getProperties(incomingVertex);
- log.debug("Going to delete vertex {}", properties);
+ log.debug("Going to delete vertex {}",properties);
}
incomingVertex.remove();
if (log.isDebugEnabled()) {
- log.debug("After deleting vertex {}", properties);
+ log.debug("After deleting vertex {}",properties);
}
}
}
- //
- // if (edgesCreatorIterable != null) {
- // for (Edge edge : edgesCreatorIterable) {
- //
- // Vertex incomingVertex = edge.getVertex(Direction.IN);
- // Iterable<Edge> outEdges = incomingVertex.getEdges(Direction.OUT);
- // if (outEdges != null) {
- // if (outEdges.iterator().hasNext()) {
- // return TitanOperationStatus.CANNOT_DELETE_NON_LEAF_NODE;
- // } else {
- // Map<String, Object> properties = null;
- // if (log.isDebugEnabled()) {
- // properties = ElementHelper.getProperties(incomingVertex);
- // log.debug("Going to delete vertex {}", properties);
- // }
- // incomingVertex.remove();
- // if (log.isDebugEnabled()) {
- // log.debug("After deleting vertex {}", properties);
- // }
- // }
- // }
- //
- // }
- // }
-
return TitanOperationStatus.OK;
}