summaryrefslogtreecommitdiffstats
path: root/catalog-be/src/main/java/org/openecomp/sdc/be/components/lifecycle/CertificationChangeTransition.java
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/be/components/lifecycle/CertificationChangeTransition.java')
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/components/lifecycle/CertificationChangeTransition.java75
1 files changed, 30 insertions, 45 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/lifecycle/CertificationChangeTransition.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/lifecycle/CertificationChangeTransition.java
index 445b3a9750..0e0f6f9464 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/lifecycle/CertificationChangeTransition.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/lifecycle/CertificationChangeTransition.java
@@ -21,27 +21,25 @@
package org.openecomp.sdc.be.components.lifecycle;
import java.util.Arrays;
-import java.util.List;
-
import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic;
import org.openecomp.sdc.be.components.impl.ComponentBusinessLogic;
import org.openecomp.sdc.be.config.BeEcompErrorManager;
import org.openecomp.sdc.be.dao.api.ActionStatus;
+import org.openecomp.sdc.be.dao.jsongraph.TitanDao;
import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
-import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
+import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
import org.openecomp.sdc.be.impl.ComponentsUtils;
-import org.openecomp.sdc.be.model.ArtifactDefinition;
import org.openecomp.sdc.be.model.Component;
import org.openecomp.sdc.be.model.LifeCycleTransitionEnum;
import org.openecomp.sdc.be.model.LifecycleStateEnum;
-import org.openecomp.sdc.be.model.Resource;
import org.openecomp.sdc.be.model.User;
-import org.openecomp.sdc.be.model.operations.api.ILifecycleOperation;
+import org.openecomp.sdc.be.model.jsontitan.datamodel.ToscaElement;
+import org.openecomp.sdc.be.model.jsontitan.operations.ToscaElementLifecycleOperation;
+import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
+import org.openecomp.sdc.be.model.jsontitan.utils.ModelConverter;
import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
-import org.openecomp.sdc.be.model.operations.impl.ResourceOperation;
import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
import org.openecomp.sdc.be.user.Role;
-import org.openecomp.sdc.common.config.EcompErrorName;
import org.openecomp.sdc.exception.ResponseFormat;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -57,8 +55,8 @@ public class CertificationChangeTransition extends LifeCycleTransition {
private AuditingActionEnum auditingAction;
private ArtifactsBusinessLogic artifactsManager;
- public CertificationChangeTransition(LifeCycleTransitionEnum name, ComponentsUtils componentUtils, ILifecycleOperation lifecycleOperation) {
- super(componentUtils, lifecycleOperation);
+ public CertificationChangeTransition(LifeCycleTransitionEnum name, ComponentsUtils componentUtils, ToscaElementLifecycleOperation lifecycleOperation, ToscaOperationFacade toscaOperationFacade, TitanDao titanDao) {
+ super(componentUtils, lifecycleOperation, toscaOperationFacade, titanDao);
this.name = name;
@@ -67,7 +65,11 @@ public class CertificationChangeTransition extends LifeCycleTransition {
addAuthorizedRoles(ComponentTypeEnum.RESOURCE, Arrays.asList(certificationChangeRoles));
addAuthorizedRoles(ComponentTypeEnum.SERVICE, Arrays.asList(certificationChangeRoles));
// TODO to be later defined for product
-
+
+ //additional authorized roles for resource type
+ Role[] resourceRoles = { Role.DESIGNER};
+ addResouceAuthorizedRoles(ResourceTypeEnum.VFCMT, Arrays.asList(resourceRoles));
+
switch (this.name) {
case CERTIFY:
this.auditingAction = AuditingActionEnum.CERTIFICATION_SUCCESS_RESOURCE;
@@ -106,7 +108,6 @@ public class CertificationChangeTransition extends LifeCycleTransition {
}
private ResponseFormat formatCertificationError(Component component, StorageOperationStatus response, ComponentTypeEnum componentType) {
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeDaoSystemError, "Change LifecycleState - Certify failed on graph");
BeEcompErrorManager.getInstance().logBeDaoSystemError("Change LifecycleState - Certify failed on graph");
log.debug("certification change failed on graph");
@@ -118,20 +119,24 @@ public class CertificationChangeTransition extends LifeCycleTransition {
@Override
public Either<Boolean, ResponseFormat> validateBeforeTransition(Component component, ComponentTypeEnum componentType, User modifier, User owner, LifecycleStateEnum oldState, LifecycleChangeInfoWithAction lifecycleChangeInfo) {
String componentName = component.getComponentMetadataDefinition().getMetadataDataDefinition().getName();
- log.debug("validate before certification change. resource name={}, oldState={}, owner userId={}", componentName, oldState, owner.getUserId());
+ log.info("validate before certification change. resource name={}, oldState={}, owner userId={}", componentName, oldState, owner.getUserId());
// validate user
- Either<Boolean, ResponseFormat> userValidationResponse = userRoleValidation(modifier, componentType, lifecycleChangeInfo);
- if (userValidationResponse.isRight()) {
+ Either<Boolean, ResponseFormat> userValidationResponse = userRoleValidation(modifier,component, componentType, lifecycleChangeInfo);
+ if (userValidationResponse.isRight()) {
+ log.error("userRoleValidation failed");
return userValidationResponse;
}
if (!oldState.equals(LifecycleStateEnum.CERTIFICATION_IN_PROGRESS)) {
+ log.error("oldState={} should be={}",oldState,ActionStatus.COMPONENT_NOT_READY_FOR_CERTIFICATION);
ResponseFormat error = componentUtils.getResponseFormat(ActionStatus.COMPONENT_NOT_READY_FOR_CERTIFICATION, componentName, componentType.name().toLowerCase());
- return Either.right(error);
+ return Either.right(error);
}
if (oldState.equals(LifecycleStateEnum.CERTIFICATION_IN_PROGRESS) && !modifier.equals(owner) && !modifier.getRole().equals(Role.ADMIN.name())) {
+ log.error("oldState={} should not be={}",oldState,ActionStatus.COMPONENT_IN_CERT_IN_PROGRESS_STATE);
+ log.error("&& modifier({})!={} && modifier.role({})!={}",modifier,owner);
ResponseFormat error = componentUtils.getResponseFormat(ActionStatus.COMPONENT_IN_CERT_IN_PROGRESS_STATE, componentName, componentType.name().toLowerCase(), owner.getFirstName(), owner.getLastName(), owner.getUserId());
return Either.right(error);
}
@@ -144,14 +149,13 @@ public class CertificationChangeTransition extends LifeCycleTransition {
log.info("start performing certification change for resource {}", component.getUniqueId());
Either<? extends Component, ResponseFormat> result = null;
- NodeTypeEnum nodeType = componentType.getNodeType();
try {
- Either<? extends Component, StorageOperationStatus> certificationChangeResult = Either.right(StorageOperationStatus.GENERAL_ERROR);
+ Either<ToscaElement, StorageOperationStatus> certificationChangeResult = Either.right(StorageOperationStatus.GENERAL_ERROR);
if (nextState.equals(LifecycleStateEnum.CERTIFIED)) {
- certificationChangeResult = lifeCycleOperation.certifyComponent(nodeType, component, modifier, owner, true);
+ certificationChangeResult = lifeCycleOperation.certifyToscaElement(component.getUniqueId(), modifier.getUserId(), owner.getUserId());
} else {
- certificationChangeResult = lifeCycleOperation.cancelOrFailCertification(nodeType, component, modifier, owner, nextState, true);
+ certificationChangeResult = lifeCycleOperation.cancelOrFailCertification(component.getUniqueId(), modifier.getUserId(), owner.getUserId(), nextState);
}
if (certificationChangeResult.isRight()) {
@@ -159,51 +163,32 @@ public class CertificationChangeTransition extends LifeCycleTransition {
result = Either.right(responseFormat);
return result;
}
-
+
if (nextState.equals(LifecycleStateEnum.CERTIFIED)) {
- Either<Boolean, StorageOperationStatus> deleteOldComponentVersions = lifeCycleOperation.deleteOldComponentVersions(nodeType, component.getComponentMetadataDefinition().getMetadataDataDefinition().getName(),
- component.getComponentMetadataDefinition().getMetadataDataDefinition().getUUID(), true);
+ Either<Boolean, StorageOperationStatus> deleteOldComponentVersions = lifeCycleOperation.deleteOldToscaElementVersions(ModelConverter.getVertexType(component), componentType, component.getComponentMetadataDefinition().getMetadataDataDefinition().getName(),
+ component.getComponentMetadataDefinition().getMetadataDataDefinition().getUUID());
if (deleteOldComponentVersions.isRight()) {
ResponseFormat responseFormat = formatCertificationError(component, deleteOldComponentVersions.right().value(), componentType);
result = Either.right(responseFormat);
- return result;
}
}
- result = Either.left(certificationChangeResult.left().value());
+ result = Either.left(ModelConverter.convertFromToscaElement(certificationChangeResult.left().value()));
return result;
} finally {
if (result == null || result.isRight()) {
- BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeDaoSystemError, "Change LifecycleState");
BeEcompErrorManager.getInstance().logBeDaoSystemError("Change LifecycleState");
if (inTransaction == false) {
log.debug("operation failed. do rollback");
- lifeCycleOperation.getResourceOperation().getTitanGenericDao().rollback();
+ titanDao.rollback();
}
} else {
if (inTransaction == false) {
log.debug("operation success. do commit");
- lifeCycleOperation.getResourceOperation().getTitanGenericDao().commit();
+ titanDao.commit();
}
}
}
}
-
- public StorageOperationStatus deleteOldVersion(List<ArtifactDefinition> artifactsToDelete, Resource resourceToDelete) {
- ResourceOperation resourceOperation = lifeCycleOperation.getResourceOperation();
-
- Either<List<ArtifactDefinition>, StorageOperationStatus> artifactsRes = resourceOperation.getComponentArtifactsForDelete(resourceToDelete.getUniqueId(), NodeTypeEnum.Resource, true);
- if (artifactsRes.isRight()) {
- return artifactsRes.right().value();
- }
- Either<Resource, StorageOperationStatus> deleteResourceRes = resourceOperation.deleteResource(resourceToDelete.getUniqueId(), true);
- if (deleteResourceRes.isRight()) {
- return deleteResourceRes.right().value();
- }
- artifactsToDelete.addAll(artifactsRes.left().value());
-
- return StorageOperationStatus.OK;
- }
-
}