X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=catalog-be%2Fsrc%2Fmain%2Fjava%2Forg%2Fopenecomp%2Fsdc%2Fbe%2Fcomponents%2Fimpl%2FPolicyTypeBusinessLogic.java;h=c74520f8253610b2eed1a26de63fe091822b826e;hb=b4aaa6d004c4643e593fc789bbe9776a6226315d;hp=6154061056fc4aeb9629e6be5da8a509e83511a9;hpb=0c274e9356fc77c53340828b0ec18869dad71631;p=sdc.git diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/PolicyTypeBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/PolicyTypeBusinessLogic.java index 6154061056..c74520f825 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/PolicyTypeBusinessLogic.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/PolicyTypeBusinessLogic.java @@ -22,8 +22,10 @@ package org.openecomp.sdc.be.components.impl; import fj.data.Either; import org.apache.commons.lang.StringUtils; +import org.openecomp.sdc.be.components.impl.exceptions.ByActionStatusComponentException; import org.openecomp.sdc.be.components.validation.UserValidations; import org.openecomp.sdc.be.config.ConfigurationManager; +import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.model.PolicyTypeDefinition; @@ -63,6 +65,12 @@ public class PolicyTypeBusinessLogic { return getPolicyTypes(excludedPolicyTypes); } + public PolicyTypeDefinition getLatestPolicyTypeByType(String policyTypeName) { + return policyTypeOperation.getLatestPolicyTypeByType(policyTypeName) + .left() + .on(e -> failOnPolicyType(e, policyTypeName)); + } + public Set getExcludedPolicyTypes(String internalComponentType) { if (StringUtils.isEmpty(internalComponentType)) { return emptySet(); @@ -80,4 +88,13 @@ public class PolicyTypeBusinessLogic { log.debug("error when trying to fetch policy types: {}", err); return componentsUtils.convertToResponseFormatOrNotFoundErrorToEmptyList(err); } + + private PolicyTypeDefinition failOnPolicyType(StorageOperationStatus status, String policyType) { + janusGraphDao.rollback(); + if (status == StorageOperationStatus.INVALID_ID) { + throw new ByActionStatusComponentException(ActionStatus.POLICY_TYPE_IS_INVALID, policyType); + } else { + throw new ByActionStatusComponentException(ActionStatus.GENERAL_ERROR); + } + } }