X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=catalog-be%2Fsrc%2Fmain%2Fjava%2Forg%2Fopenecomp%2Fsdc%2Fbe%2Fcomponents%2Flifecycle%2FLifeCycleTransition.java;h=9f1f060448f5b9d95d2ddd12337e00125212f92a;hb=c469756a1092194adedd590d35f0f1f8feac3a36;hp=0057f615bff16a367358c39f2706fa7a765866cd;hpb=5b593496b8f1b8e8be8d7d2dbcc223332e65a49b;p=sdc.git diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/lifecycle/LifeCycleTransition.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/lifecycle/LifeCycleTransition.java index 0057f615bf..9f1f060448 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/lifecycle/LifeCycleTransition.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/lifecycle/LifeCycleTransition.java @@ -7,9 +7,9 @@ * 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. @@ -17,15 +17,17 @@ * limitations under the License. * ============LICENSE_END========================================================= */ - package org.openecomp.sdc.be.components.lifecycle; import fj.data.Either; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import org.openecomp.sdc.be.components.impl.ComponentBusinessLogic; import org.openecomp.sdc.be.components.lifecycle.LifecycleChangeInfoWithAction.LifecycleChanceActionEnum; import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.dao.api.ActionStatus; -import org.openecomp.sdc.be.dao.jsongraph.TitanDao; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphDao; import org.openecomp.sdc.be.datatypes.components.ResourceMetadataDataDefinition; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; @@ -34,41 +36,35 @@ 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.User; -import org.openecomp.sdc.be.model.jsontitan.operations.ToscaElementLifecycleOperation; -import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaElementLifecycleOperation; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; import org.openecomp.sdc.be.user.Role; import org.openecomp.sdc.exception.ResponseFormat; import org.springframework.beans.factory.annotation.Autowired; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - public abstract class LifeCycleTransition { protected ConfigurationManager configurationManager; @Autowired protected ToscaElementLifecycleOperation lifeCycleOperation; @Autowired - protected TitanDao titanDao; + protected JanusGraphDao janusGraphDao; protected ComponentsUtils componentUtils; - protected Map> authorizedRoles; protected Map> resourceAuthorizedRoles; - ToscaOperationFacade toscaOperationFacade; - protected LifeCycleTransition(ComponentsUtils componentUtils, ToscaElementLifecycleOperation lifecycleOperation2, ToscaOperationFacade toscaOperationFacade, TitanDao titanDao) { - + protected LifeCycleTransition(ComponentsUtils componentUtils, ToscaElementLifecycleOperation lifecycleOperation2, + ToscaOperationFacade toscaOperationFacade, JanusGraphDao janusGraphDao) { this.configurationManager = ConfigurationManager.getConfigurationManager(); this.lifeCycleOperation = lifecycleOperation2; this.componentUtils = componentUtils; this.authorizedRoles = new HashMap<>(); this.resourceAuthorizedRoles = new HashMap<>(); this.toscaOperationFacade = toscaOperationFacade; - this.titanDao = titanDao; + this.janusGraphDao = janusGraphDao; } public abstract LifeCycleTransitionEnum getName(); @@ -107,53 +103,62 @@ public abstract class LifeCycleTransition { this.resourceAuthorizedRoles.put(resourceType, authorizedRoles); } - public abstract Either changeState(ComponentTypeEnum componentType, Component component, ComponentBusinessLogic componentBl, User modifier, User owner, boolean needLock, boolean inTransaction); - - public abstract Either validateBeforeTransition(Component component, ComponentTypeEnum componentType, User modifier, User owner, LifecycleStateEnum oldState, LifecycleChangeInfoWithAction lifecycleChangeInfo); + public abstract Either changeState(ComponentTypeEnum componentType, Component component, + ComponentBusinessLogic componentBl, User modifier, User owner, + boolean needLock, boolean inTransaction); - public Either validateBeforeTransition(Component component, ComponentTypeEnum componentType, User modifier, User owner, LifecycleStateEnum oldState) { + public abstract Either validateBeforeTransition(Component component, ComponentTypeEnum componentType, User modifier, + User owner, LifecycleStateEnum oldState, + LifecycleChangeInfoWithAction lifecycleChangeInfo); + public Either validateBeforeTransition(Component component, ComponentTypeEnum componentType, User modifier, User owner, + LifecycleStateEnum oldState) { return this.validateBeforeTransition(component, componentType, modifier, owner, oldState, null); } protected Either getComponentOwner(Component component, ComponentTypeEnum componentType) { - Either resourceOwnerResult = getLifeCycleOperation().getToscaElementOwner(component.getUniqueId()); if (resourceOwnerResult.isRight()) { - ResponseFormat responseFormat = componentUtils.getResponseFormatByComponent(componentUtils.convertFromStorageResponse(resourceOwnerResult.right().value()), component, componentType); + ResponseFormat responseFormat = componentUtils + .getResponseFormatByComponent(componentUtils.convertFromStorageResponse(resourceOwnerResult.right().value()), component, + componentType); return Either.right(responseFormat); } return Either.left(resourceOwnerResult.left().value()); } - protected Either userRoleValidation(User modifier,Component component, ComponentTypeEnum componentType, LifecycleChangeInfoWithAction lifecycleChangeInfo) { - + protected Either userRoleValidation(User modifier, Component component, ComponentTypeEnum componentType, + LifecycleChangeInfoWithAction lifecycleChangeInfo) { // validate user + //first check the user for the component and then for the resource - if (getAuthorizedRoles(componentType).contains(Role.valueOf(modifier.getRole())) || userResourceRoleValidation(component,componentType,modifier)) { + if (getAuthorizedRoles(componentType).contains(Role.valueOf(modifier.getRole())) || userResourceRoleValidation(component, componentType, + modifier)) { return Either.left(true); } // this is only used in 2 cases - //1. when creating vfc/cp when import vf from csar - when we - // create resources from node type, we create need to change the state - // to certified + + //1. when creating vfc/cp when import vf from CSAR - when we + // create resources from node type, we create need to change the state to certified + //2. certification flow upno upgrade migration - if (lifecycleChangeInfo != null && lifecycleChangeInfo.getAction() != null && (lifecycleChangeInfo.getAction() == LifecycleChanceActionEnum.CREATE_FROM_CSAR|| lifecycleChangeInfo.getAction() == LifecycleChanceActionEnum.UPGRADE_MIGRATION)) { + if (lifecycleChangeInfo != null && lifecycleChangeInfo.getAction() != null && ( + lifecycleChangeInfo.getAction() == LifecycleChanceActionEnum.CREATE_FROM_CSAR + || lifecycleChangeInfo.getAction() == LifecycleChanceActionEnum.UPGRADE_MIGRATION)) { return Either.left(true); } - - ResponseFormat responseFormat = componentUtils.getResponseFormat(ActionStatus.RESTRICTED_OPERATION); - return Either.right(responseFormat); + return Either.right(componentUtils.getResponseFormat(ActionStatus.RESTRICTED_OPERATION)); } protected boolean userResourceRoleValidation(Component component, ComponentTypeEnum componentType, User modifier) { - if (componentType.equals(ComponentTypeEnum.RESOURCE)){ - ResourceTypeEnum resourceType = ((ResourceMetadataDataDefinition)component.getComponentMetadataDefinition().getMetadataDataDefinition()).getResourceType(); - if (getResourceAuthorizedRoles(resourceType)!=null && getResourceAuthorizedRoles(resourceType).contains(Role.valueOf(modifier.getRole()))) { + if (componentType.equals(ComponentTypeEnum.RESOURCE)) { + ResourceTypeEnum resourceType = ((ResourceMetadataDataDefinition) component.getComponentMetadataDefinition().getMetadataDataDefinition()) + .getResourceType(); + if (getResourceAuthorizedRoles(resourceType) != null && getResourceAuthorizedRoles(resourceType) + .contains(Role.valueOf(modifier.getRole()))) { return true; } } return false; } - }