diff options
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property')
8 files changed, 25 insertions, 205 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/ComponentInstanceInputsMergeBL.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/ComponentInstanceInputsMergeBL.java deleted file mode 100644 index 4e49eef94c..0000000000 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/ComponentInstanceInputsMergeBL.java +++ /dev/null @@ -1,72 +0,0 @@ -package org.openecomp.sdc.be.components.merge.property; - -import java.util.Collections; -import java.util.List; -import java.util.Map; - -import org.openecomp.sdc.be.dao.api.ActionStatus; -import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.model.Component; -import org.openecomp.sdc.be.model.ComponentInstance; -import org.openecomp.sdc.be.model.ComponentInstanceInput; -import org.openecomp.sdc.be.model.InputDefinition; -import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade; -import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; - -import fj.data.Either; - -@org.springframework.stereotype.Component -public class ComponentInstanceInputsMergeBL { - - @javax.annotation.Resource - private ToscaOperationFacade toscaOperationFacade; - - @javax.annotation.Resource - private ComponentsUtils componentsUtils; - - @javax.annotation.Resource - private DataDefinitionsValuesMergingBusinessLogic propertyValuesMergingBusinessLogic; - - public ActionStatus mergeComponentInstancesInputs(Component oldComponent, Component newComponent) { - Map<String, List<ComponentInstanceInput>> componentInstancesInputs = newComponent.getComponentInstancesInputs(); - if (componentInstancesInputs == null) { - return ActionStatus.OK; - } - componentInstancesInputs.forEach((instanceId, instInputs) -> mergeOldInstanceInputsValues(oldComponent, newComponent, instanceId, instInputs)); - return updateComponentInstancesInputs(newComponent, componentInstancesInputs); - } - - public ActionStatus mergeComponentInstanceInputs(List<ComponentInstanceInput> oldInstProps, List<InputDefinition> oldInputs, Component newComponent, String instanceId) { - List<ComponentInstanceInput> newInstInput = newComponent.safeGetComponentInstanceInput(instanceId); - if (newInstInput == null) { - return ActionStatus.OK; - } - propertyValuesMergingBusinessLogic.mergeInstanceDataDefinitions(oldInstProps, oldInputs, newInstInput, newComponent.getInputs()); - return updateComponentInstanceInputs(newComponent, instanceId, newInstInput); - } - - private ActionStatus updateComponentInstanceInputs(Component newComponent, String instanceId, List<ComponentInstanceInput> newInstInput) { - StorageOperationStatus storageOperationStatus = toscaOperationFacade.updateComponentInstanceInputs(newComponent, instanceId, newInstInput); - if (storageOperationStatus != StorageOperationStatus.OK) { - return componentsUtils.convertFromStorageResponse(storageOperationStatus); - } - return ActionStatus.OK; - } - - private ActionStatus updateComponentInstancesInputs(Component component, Map<String, List<ComponentInstanceInput>> componentInstancesInputs) { - Either<Map<String, List<ComponentInstanceInput>>, StorageOperationStatus> mapStorageOperationStatusEither = toscaOperationFacade.updateComponentInstanceInputsToComponent(componentInstancesInputs, component.getUniqueId()); - if (mapStorageOperationStatusEither.isRight()) { - return componentsUtils.convertFromStorageResponse(mapStorageOperationStatusEither.right().value()); - } - return ActionStatus.OK; - } - - private void mergeOldInstanceInputsValues(Component oldComponent, Component newComponent, String instanceId, List<ComponentInstanceInput> instInputs) { - ComponentInstance currentCompInstance = newComponent.getComponentInstanceById(instanceId).get(); - List<ComponentInstanceInput> oldInstInputs = oldComponent == null ? Collections.emptyList() : oldComponent.safeGetComponentInstanceInputsByName(currentCompInstance.getName()); - List<InputDefinition> oldInputs = oldComponent == null ? Collections.emptyList() : oldComponent.getInputs(); - propertyValuesMergingBusinessLogic.mergeInstanceDataDefinitions(oldInstInputs, oldInputs, instInputs, newComponent.getInputs()); - } - - -} diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/ComponentInstancePropertiesMergeBL.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/ComponentInstancePropertiesMergeBL.java deleted file mode 100644 index 43e3ec624a..0000000000 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/ComponentInstancePropertiesMergeBL.java +++ /dev/null @@ -1,73 +0,0 @@ -package org.openecomp.sdc.be.components.merge.property; - -import java.util.Collections; -import java.util.List; -import java.util.Map; - -import org.openecomp.sdc.be.dao.api.ActionStatus; -import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.model.Component; -import org.openecomp.sdc.be.model.ComponentInstanceProperty; -import org.openecomp.sdc.be.model.InputDefinition; -import org.openecomp.sdc.be.model.Resource; -import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade; -import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; - -import fj.data.Either; - -@org.springframework.stereotype.Component -public class ComponentInstancePropertiesMergeBL { - - @javax.annotation.Resource - private ToscaOperationFacade toscaOperationFacade; - - @javax.annotation.Resource(name = "componentUtils") - private ComponentsUtils componentsUtils; - - @javax.annotation.Resource - private DataDefinitionsValuesMergingBusinessLogic propertyValuesMergingBusinessLogic; - - public ActionStatus mergeComponentInstancesProperties(Component oldComponent, Resource newResource) { - Map<String, List<ComponentInstanceProperty>> newInstProps = newResource.getComponentInstancesProperties(); - if (newInstProps == null) { - return ActionStatus.OK; - } - newInstProps.forEach((instanceId, newProps) -> mergeOldInstancePropertiesValues(oldComponent, newResource, instanceId, newProps) ); - return updateComponentInstancesProperties(newResource, newInstProps); - } - - - public ActionStatus mergeComponentInstanceProperties(List<ComponentInstanceProperty> oldInstProps, List<InputDefinition> oldInputs, Component newComponent, String instanceId) { - List<ComponentInstanceProperty> newInstProps = newComponent.safeGetComponentInstanceProperties(instanceId); - if (newInstProps == null) { - return ActionStatus.OK; - } - propertyValuesMergingBusinessLogic.mergeInstanceDataDefinitions(oldInstProps, oldInputs, newInstProps, newComponent.getInputs()); - return updateComponentInstanceProperties(newComponent, instanceId, newInstProps); - } - - private void mergeOldInstancePropertiesValues(Component oldComponent, Component newComponent, String instanceId, List<ComponentInstanceProperty> newProps) { - List<ComponentInstanceProperty> oldInstProperties = oldComponent == null ? Collections.emptyList() : oldComponent.safeGetComponentInstanceProperties(instanceId); - List<InputDefinition> oldInputs = oldComponent == null ? Collections.emptyList() : oldComponent.getInputs(); - propertyValuesMergingBusinessLogic.mergeInstanceDataDefinitions(oldInstProperties, oldInputs, newProps, newComponent.getInputs()); - } - - private ActionStatus updateComponentInstancesProperties(Component newComponent, Map<String, List<ComponentInstanceProperty>> newInstProps) { - Either<Map<String, List<ComponentInstanceProperty>>, StorageOperationStatus> mapStorageOperationStatusEither = toscaOperationFacade.updateComponentInstancePropsToComponent(newInstProps, newComponent.getUniqueId()); - if (mapStorageOperationStatusEither.isRight()) { - return componentsUtils.convertFromStorageResponse(mapStorageOperationStatusEither.right().value()); - } - return ActionStatus.OK; - } - - private ActionStatus updateComponentInstanceProperties(Component component, String instanceId, List<ComponentInstanceProperty> newInstProps) { - StorageOperationStatus storageOperationStatus = toscaOperationFacade.updateComponentInstanceProperties(component, instanceId, newInstProps); - if (storageOperationStatus != StorageOperationStatus.OK) { - return componentsUtils.convertFromStorageResponse(storageOperationStatus); - } - return ActionStatus.OK; - } - - - -} diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/DataDefinitionsValuesMergingBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/DataDefinitionsValuesMergingBusinessLogic.java index 96d3bce97e..139ac386a1 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/DataDefinitionsValuesMergingBusinessLogic.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/DataDefinitionsValuesMergingBusinessLogic.java @@ -1,11 +1,12 @@ package org.openecomp.sdc.be.components.merge.property; -import java.util.List; - import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition; import org.openecomp.sdc.be.model.InputDefinition; import org.springframework.stereotype.Component; +import java.util.Collections; +import java.util.List; + @Component public class DataDefinitionsValuesMergingBusinessLogic { @@ -30,6 +31,11 @@ public class DataDefinitionsValuesMergingBusinessLogic { } + public <T extends PropertyDataDefinition> void mergeInstanceDataDefinitions(List<T> oldInstanceDataDefinition, List<T> updatedInstanceDataDefinition) { + List<InputDefinition> emptyInputsList = Collections.emptyList(); + mergeInstanceDataDefinitions(oldInstanceDataDefinition, emptyInputsList, updatedInstanceDataDefinition, emptyInputsList); + } + private void mergeInstanceDefinition(MergePropertyData mergeData) { if (isSameType(mergeData.getOldProp(), mergeData.getNewProp())) { propertyValueMergeBL.mergePropertyValue(mergeData.getOldProp(), mergeData.getNewProp(), mergeData.getGetInputNamesToMerge()); diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/MergePropertyData.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/MergePropertyData.java index 63a7a1b3a0..df65c1161f 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/MergePropertyData.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/MergePropertyData.java @@ -1,10 +1,10 @@ package org.openecomp.sdc.be.components.merge.property; +import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition; + import java.util.ArrayList; import java.util.List; -import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition; - /** * A POJO which represents an instance property data definition (a {@link org.openecomp.sdc.be.model.ComponentInstanceProperty} or {@link org.openecomp.sdc.be.model.ComponentInstanceInput}) * that its value needs to be merged during an upgrade of a VSP. diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/PropertyDataValueMergeBusinessLogic.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/PropertyDataValueMergeBusinessLogic.java index 6b083596c7..318840d60a 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/PropertyDataValueMergeBusinessLogic.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/PropertyDataValueMergeBusinessLogic.java @@ -1,15 +1,7 @@ package org.openecomp.sdc.be.components.merge.property; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.stream.Collectors; - -import javax.annotation.Resource; - -import org.openecomp.sdc.be.components.impl.ImportUtils; +import com.google.gson.Gson; +import fj.data.Either; import org.openecomp.sdc.be.dao.titan.TitanOperationStatus; import org.openecomp.sdc.be.datatypes.elements.GetInputValueDataDefinition; import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition; @@ -22,9 +14,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; -import com.google.gson.Gson; - -import fj.data.Either; +import javax.annotation.Resource; +import java.util.*; +import java.util.stream.Collectors; @Component public class PropertyDataValueMergeBusinessLogic { @@ -88,39 +80,6 @@ public class PropertyDataValueMergeBusinessLogic { return propertyConvertor.convertToToscaObject(propertyType, propValue, innerType, dataTypes); } - - @SuppressWarnings("unchecked") - private Object removeUnwantedGetInputValues(Object val, List<String> getInputNamesToMerge) { - if (val instanceof Map) { - return removeUnwantedGetInputValues((Map<String, Object>) val, getInputNamesToMerge); - } - if (val instanceof List) { - return removeUnwantedGetInputValues((List<Object>)val, getInputNamesToMerge); - } - return val; - } - - private List<Object> removeUnwantedGetInputValues(List<Object> listVal, List<String> getInputNamesToMerge) { - return listVal.stream().map(val -> removeUnwantedGetInputValues(val, getInputNamesToMerge)).collect(Collectors.toList()); - } - - private Map<String, Object> removeUnwantedGetInputValues(Map<String, Object> val, List<String> getInputNamesToMerge) { - return val.entrySet().stream().filter(entry -> !isGetInputEntry(entry) || isGetInputToMerge(getInputNamesToMerge, entry)) - .collect(Collectors.toMap(Map.Entry::getKey, entry -> removeUnwantedGetInputValues(entry.getValue(), getInputNamesToMerge))); - } - - private boolean isGetInputToMerge(List<String> getInputNamesToMerge, Map.Entry<String, Object> entry) { - return getInputNamesToMerge.contains(retrieveGetInputInputName(entry.getValue())); - } - - private String retrieveGetInputInputName(Object getInputValue) { - return getInputValue instanceof List ? (String)((List) getInputValue).get(0) : (String)getInputValue; - } - - private boolean isGetInputEntry(Map.Entry<String, Object> oldValEntry) { - return oldValEntry.getKey().equals(ImportUtils.ToscaTagNamesEnum.GET_INPUT.getElementName()); - } - private boolean isEmptyValue(Object val) { return val == null || val instanceof Map && ((Map) val).isEmpty() || diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/PropertyInstanceMergeDataBuilder.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/PropertyInstanceMergeDataBuilder.java index 09f26a39ee..df3030567d 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/PropertyInstanceMergeDataBuilder.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/PropertyInstanceMergeDataBuilder.java @@ -1,15 +1,15 @@ package org.openecomp.sdc.be.components.merge.property; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - import org.openecomp.sdc.be.dao.utils.MapUtil; import org.openecomp.sdc.be.datatypes.elements.GetInputValueDataDefinition; import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition; import org.openecomp.sdc.be.model.InputDefinition; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + public class PropertyInstanceMergeDataBuilder { private final static PropertyInstanceMergeDataBuilder INSTANCE = new PropertyInstanceMergeDataBuilder(); diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/PropertyValueMerger.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/PropertyValueMerger.java index 88601bb521..9fcb864fe9 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/PropertyValueMerger.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/PropertyValueMerger.java @@ -1,13 +1,13 @@ package org.openecomp.sdc.be.components.merge.property; +import org.apache.commons.lang.StringUtils; +import org.openecomp.sdc.be.components.impl.ImportUtils; + import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import org.apache.commons.lang.StringUtils; -import org.openecomp.sdc.be.components.impl.ImportUtils; - public abstract class PropertyValueMerger { abstract Object merge(Object oldVal, Object newVal, List<String> someStrings); diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/ScalarPropertyValueMerger.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/ScalarPropertyValueMerger.java index 39381e7322..ce0ed0eed2 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/ScalarPropertyValueMerger.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/property/ScalarPropertyValueMerger.java @@ -1,9 +1,9 @@ package org.openecomp.sdc.be.components.merge.property; -import java.util.List; - import org.springframework.stereotype.Component; +import java.util.List; + @Component("scalar-prop-value-merger") public class ScalarPropertyValueMerger extends PropertyValueMerger { |