diff options
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/be/components/validation/PolicyUtils.java')
-rw-r--r-- | catalog-be/src/main/java/org/openecomp/sdc/be/components/validation/PolicyUtils.java | 117 |
1 files changed, 43 insertions, 74 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/validation/PolicyUtils.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/validation/PolicyUtils.java index c1af08308e..80747b5991 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/validation/PolicyUtils.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/validation/PolicyUtils.java @@ -1,12 +1,6 @@ package org.openecomp.sdc.be.components.validation; -import java.util.Collections; -import java.util.Map; -import java.util.Optional; -import java.util.Set; - -import org.apache.commons.collections.MapUtils; -import org.apache.commons.lang3.StringUtils; +import fj.data.Either; import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; @@ -15,18 +9,26 @@ import org.openecomp.sdc.be.model.Component; import org.openecomp.sdc.be.model.PolicyDefinition; import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.common.api.Constants; +import org.openecomp.sdc.common.log.wrappers.Logger; import org.openecomp.sdc.common.util.ValidationUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import fj.data.Either; +import java.util.Collections; +import java.util.Map; +import java.util.Optional; +import java.util.Set; + +import static org.apache.commons.collections.MapUtils.isEmpty; +import static org.apache.commons.collections.MapUtils.isNotEmpty; +import static org.apache.commons.lang3.StringUtils.isEmpty; +import static org.apache.commons.lang3.StringUtils.isNotEmpty; +import static org.openecomp.sdc.common.api.Constants.GROUP_POLICY_NAME_DELIMETER; /** * Provides specific functionality for policy */ public class PolicyUtils { - private static final Logger log = LoggerFactory.getLogger(PolicyUtils.class); + private static final Logger log = Logger.getLogger(PolicyUtils.class); private PolicyUtils() { // No instances allowed @@ -40,7 +42,7 @@ public class PolicyUtils { */ public static int getNextPolicyCounter(Map<String, PolicyDefinition> policies) { int nextCounter = 0; - if (MapUtils.isNotEmpty(policies)) { + if (isNotEmpty(policies)) { int nextCounterFromIds = policies.values() .stream() .map(p -> extractNextPolicyCounterFromUniqueId(p.getUniqueId())) @@ -72,13 +74,12 @@ public class PolicyUtils { /** * Retrieves the set of the excluded policy types for the specified component * - * @param the component * @return the set of the policies */ public static Set<String> getExcludedPolicyTypesByComponent(Component component) { - if (MapUtils.isEmpty(ConfigurationManager.getConfigurationManager() - .getConfiguration() - .getExcludedPolicyTypesMapping())) { + if (isEmpty(ConfigurationManager.getConfigurationManager() + .getConfiguration() + .getExcludedPolicyTypesMapping())) { return Collections.emptySet(); } if (component.getComponentType() == ComponentTypeEnum.SERVICE) { @@ -95,7 +96,7 @@ public class PolicyUtils { private static int extractNextPolicyCounterFromUniqueId(String uniqueId) { int counter = 0; - if (StringUtils.isNotEmpty(uniqueId)) { + if (isNotEmpty(uniqueId)) { counter = extractNextPolicyCounter(uniqueId, uniqueId.lastIndexOf(Constants.POLICY_UID_POSTFIX)); } return counter; @@ -103,7 +104,7 @@ public class PolicyUtils { private static int extractNextPolicyCounterFromName(String policyName) { int counter = 0; - if (StringUtils.isNotEmpty(policyName)) { + if (isNotEmpty(policyName)) { counter = extractNextPolicyCounter(policyName, policyName.length()); } return counter; @@ -112,11 +113,12 @@ public class PolicyUtils { private static int extractNextPolicyCounter(String policyName, int endIndex) { int counter = 0; try { - counter = Integer.valueOf(policyName.substring(policyName.lastIndexOf(Constants.GROUP_POLICY_NAME_DELIMETER) + Constants.GROUP_POLICY_NAME_DELIMETER - .length(), endIndex)) + 1; + int beginIndex = policyName.lastIndexOf(GROUP_POLICY_NAME_DELIMETER) + GROUP_POLICY_NAME_DELIMETER.length(); + String counterStr = policyName.substring(beginIndex, endIndex); + counter = Integer.valueOf(counterStr) + 1; } catch (NumberFormatException | IndexOutOfBoundsException e) { - log.error("The exception {} occurred upon extraction counter from the srting value {}. ", e, policyName); + log.error("#extractNextPolicyCounter - An error occurred when attempting to extract counter from policy name [{}]. ", policyName, e); } return counter; } @@ -126,85 +128,52 @@ public class PolicyUtils { } private static void validateImmutablePolicyFields(PolicyDefinition receivedPolicy, PolicyDefinition validPolicy) { - boolean isUpdatedField = isUpdatedField(receivedPolicy.getUniqueId(), validPolicy.getUniqueId()); - if (isUpdatedField) { - logImmutableFieldUpdateWarning(receivedPolicy.getUniqueId(), validPolicy.getUniqueId(), JsonPresentationFields.UNIQUE_ID); - } - isUpdatedField = isUpdatedField(receivedPolicy.getComponentName(), validPolicy.getComponentName()); - if (isUpdatedField) { - logImmutableFieldUpdateWarning(receivedPolicy.getComponentName(), validPolicy.getComponentName(), JsonPresentationFields.CI_COMPONENT_NAME); - } - isUpdatedField = isUpdatedField(receivedPolicy.getDerivedFrom(), validPolicy.getDerivedFrom()); - if (isUpdatedField) { - logImmutableFieldUpdateWarning(receivedPolicy.getDerivedFrom(), validPolicy.getDerivedFrom(), JsonPresentationFields.DERIVED_FROM); - } - isUpdatedField = isUpdatedField(receivedPolicy.getDescription(), validPolicy.getDescription()); - if (isUpdatedField) { - logImmutableFieldUpdateWarning(receivedPolicy.getDescription(), validPolicy.getDescription(), JsonPresentationFields.DESCRIPTION); - } - isUpdatedField = isUpdatedField(receivedPolicy.getInvariantName(), validPolicy.getInvariantName()); - if (isUpdatedField) { - logImmutableFieldUpdateWarning(receivedPolicy.getInvariantName(), validPolicy.getInvariantName(), JsonPresentationFields.CI_INVARIANT_NAME); - } - isUpdatedField = isUpdatedField(receivedPolicy.getInvariantUUID(), validPolicy.getInvariantUUID()); - if (isUpdatedField) { - logImmutableFieldUpdateWarning(receivedPolicy.getInvariantUUID(), validPolicy.getInvariantUUID(), JsonPresentationFields.INVARIANT_UUID); - } - isUpdatedField = isUpdatedField(receivedPolicy.getPolicyTypeName(), validPolicy.getPolicyTypeName()); - if (isUpdatedField) { - logImmutableFieldUpdateWarning(receivedPolicy.getPolicyTypeName(), validPolicy.getPolicyTypeName(), JsonPresentationFields.TYPE); - } - isUpdatedField = isUpdatedField(receivedPolicy.getPolicyTypeUid(), validPolicy.getPolicyTypeUid()); - if (isUpdatedField) { - logImmutableFieldUpdateWarning(receivedPolicy.getPolicyTypeUid(), validPolicy.getPolicyTypeUid(), JsonPresentationFields.TYPE_UNIQUE_ID); - } - isUpdatedField = isUpdatedField(receivedPolicy.getPolicyUUID(), validPolicy.getPolicyUUID()); - if (isUpdatedField) { - logImmutableFieldUpdateWarning(receivedPolicy.getPolicyUUID(), validPolicy.getPolicyUUID(), JsonPresentationFields.UUID); - } - isUpdatedField = isUpdatedField(receivedPolicy.getVersion(), validPolicy.getVersion()); - if (isUpdatedField) { - logImmutableFieldUpdateWarning(receivedPolicy.getVersion(), validPolicy.getVersion(), JsonPresentationFields.VERSION); - } - isUpdatedField = isUpdatedField(receivedPolicy.getIsFromCsar().toString(), validPolicy.getIsFromCsar() - .toString()); - if (isUpdatedField) { - logImmutableFieldUpdateWarning(receivedPolicy.getIsFromCsar().toString(), validPolicy.getIsFromCsar() - .toString(), JsonPresentationFields.IS_FROM_CSAR); - } + logImmutableFieldUpdateWarning(receivedPolicy.getUniqueId(), validPolicy.getUniqueId(), JsonPresentationFields.UNIQUE_ID); + logImmutableFieldUpdateWarning(receivedPolicy.getComponentName(), validPolicy.getComponentName(), JsonPresentationFields.CI_COMPONENT_NAME); + logImmutableFieldUpdateWarning(receivedPolicy.getDerivedFrom(), validPolicy.getDerivedFrom(), JsonPresentationFields.DERIVED_FROM); + logImmutableFieldUpdateWarning(receivedPolicy.getDescription(), validPolicy.getDescription(), JsonPresentationFields.DESCRIPTION); + logImmutableFieldUpdateWarning(receivedPolicy.getInvariantName(), validPolicy.getInvariantName(), JsonPresentationFields.CI_INVARIANT_NAME); + logImmutableFieldUpdateWarning(receivedPolicy.getInvariantUUID(), validPolicy.getInvariantUUID(), JsonPresentationFields.INVARIANT_UUID); + logImmutableFieldUpdateWarning(receivedPolicy.getPolicyTypeName(), validPolicy.getPolicyTypeName(), JsonPresentationFields.TYPE); + logImmutableFieldUpdateWarning(receivedPolicy.getPolicyTypeUid(), validPolicy.getPolicyTypeUid(), JsonPresentationFields.TYPE_UNIQUE_ID); + logImmutableFieldUpdateWarning(receivedPolicy.getPolicyUUID(), validPolicy.getPolicyUUID(), JsonPresentationFields.UUID); + logImmutableFieldUpdateWarning(receivedPolicy.getVersion(), validPolicy.getVersion(), JsonPresentationFields.VERSION); + logImmutableFieldUpdateWarning(receivedPolicy.getIsFromCsar().toString(), validPolicy.getIsFromCsar().toString(), JsonPresentationFields.IS_FROM_CSAR); } private static boolean isUpdatedField(String oldField, String newField) { boolean isUpdatedField = false; - if (StringUtils.isEmpty(oldField) && StringUtils.isNotEmpty(newField)) { + if (isEmpty(oldField) && isNotEmpty(newField)) { isUpdatedField = true; } - if (StringUtils.isNotEmpty(oldField) && StringUtils.isNotEmpty(newField) && !oldField.equals(newField)) { + else if (isNotEmpty(oldField) && isNotEmpty(newField) && !oldField.equals(newField)) { isUpdatedField = true; } return isUpdatedField; } private static void logImmutableFieldUpdateWarning(String oldValue, String newValue, JsonPresentationFields field) { - log.warn("Update of the field {} of a policy not allowed. The change will be ignored. The old value is {} , the new value is {}. ", field, oldValue, newValue); + if (isUpdatedField(oldValue, newValue)) { + log.warn("#logImmutableFieldUpdateWarning - Update of the field {} of a policy not allowed. The change will be ignored. The old value is {} , the new value is {}. ", field, oldValue, newValue); + } } private static Either<PolicyDefinition, ActionStatus> validateUpdatePolicyName(PolicyDefinition receivedPolicy, PolicyDefinition validPolicy, Map<String, PolicyDefinition> policies) { Either<PolicyDefinition, ActionStatus> result = null; Optional<PolicyDefinition> sameNamePolicy = Optional.empty(); - if (StringUtils.isEmpty(receivedPolicy.getName()) || !ValidationUtils.POLICY_NAME_PATTERN.matcher(receivedPolicy + if (isEmpty(receivedPolicy.getName()) || !ValidationUtils.POLICY_NAME_PATTERN.matcher(receivedPolicy .getName()).matches()) { - log.error("Failed to validate the name {} of the policy {}. ", receivedPolicy.getName(), receivedPolicy.getUniqueId()); + log.error("#validateUpdatePolicyName - Failed to validate the name {} of the policy {}. ", receivedPolicy.getName(), receivedPolicy.getUniqueId()); result = Either.right(ActionStatus.INVALID_POLICY_NAME); } - if (result == null && MapUtils.isNotEmpty(policies)) { + if (result == null && isNotEmpty(policies)) { sameNamePolicy = policies.values() .stream() .filter(p -> p.getName().equals(receivedPolicy.getName())) .findFirst(); } if (sameNamePolicy.isPresent()) { - log.error("Failed to validate the name {} of the policy {}. The policy {} with the same name already exists. ", receivedPolicy + log.error("#validateUpdatePolicyName - Failed to validate the name {} of the policy {}. The policy {} with the same name already exists. ", receivedPolicy .getName(), receivedPolicy.getUniqueId(), sameNamePolicy.get().getUniqueId()); result = Either.right(ActionStatus.POLICY_NAME_ALREADY_EXIST); } |