package org.openecomp.sdc.be.components.lifecycle;
import fj.data.Either;
+import org.openecomp.sdc.be.catalog.enums.ChangeTypeEnum;
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.JanusGraphDao;
import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
+import org.openecomp.sdc.be.facade.operations.CatalogOperation;
import org.openecomp.sdc.be.impl.ComponentsUtils;
import org.openecomp.sdc.be.model.Component;
import org.openecomp.sdc.be.model.LifeCycleTransitionEnum;
public class UndoCheckoutTransition extends LifeCycleTransition {
private static final Logger log = Logger.getLogger(CheckoutTransition.class);
+ private CatalogOperation catalogOperations;
+
public UndoCheckoutTransition(ComponentsUtils componentUtils, ToscaElementLifecycleOperation lifecycleOperation, ToscaOperationFacade toscaOperationFacade, JanusGraphDao janusGraphDao) {
super(componentUtils, lifecycleOperation, toscaOperationFacade, janusGraphDao);
return AuditingActionEnum.UNDO_CHECKOUT_RESOURCE;
}
+ void setCatalogOperations(CatalogOperation catalogOperations) {
+ this.catalogOperations = catalogOperations;
+ }
+
@Override
public Either<Boolean, ResponseFormat> validateBeforeTransition(Component component, ComponentTypeEnum componentType, User modifier, User owner, LifecycleStateEnum oldState, LifecycleChangeInfoWithAction lifecycleChangeInfo) {
String componentName = component.getComponentMetadataDefinition().getMetadataDataDefinition().getName();
result = Either.right(responseFormat);
}
else {
- result = Either.left(ModelConverter.convertFromToscaElement(undoCheckoutResourceResult.left().value()));
+ ToscaElement element = undoCheckoutResourceResult.left().value();
+ if(element == null){
+ catalogOperations.updateCatalog(ChangeTypeEnum.DELETE, component);
+ result = Either.left(null);
+ }
+ else{
+ result = Either.left(ModelConverter.convertFromToscaElement(element));
+ }
}
} finally {
if (result == null || result.isRight()) {
}
return result;
}
+
}