From 08b74c3652af3e0c8264e5971763f2d2845413b8 Mon Sep 17 00:00:00 2001 From: Alexey Sandler Date: Sun, 22 Dec 2019 14:50:48 +0200 Subject: Add Volume Groups count ability during summarizing. Issue-ID: VID-724 Signed-off-by: Alexey Sandler Change-Id: I0478469817f13609618c1597c654decac463474b --- .../AsyncInstantiationBusinessLogicImpl.java | 35 ++++++++++++++++++---- 1 file changed, 29 insertions(+), 6 deletions(-) (limited to 'vid-app-common/src/main/java/org/onap/vid/services/AsyncInstantiationBusinessLogicImpl.java') diff --git a/vid-app-common/src/main/java/org/onap/vid/services/AsyncInstantiationBusinessLogicImpl.java b/vid-app-common/src/main/java/org/onap/vid/services/AsyncInstantiationBusinessLogicImpl.java index c0ee7ea4f..787ad1262 100644 --- a/vid-app-common/src/main/java/org/onap/vid/services/AsyncInstantiationBusinessLogicImpl.java +++ b/vid-app-common/src/main/java/org/onap/vid/services/AsyncInstantiationBusinessLogicImpl.java @@ -20,11 +20,13 @@ package org.onap.vid.services; +import static com.google.common.collect.Streams.concat; import static java.util.function.Function.identity; import static java.util.stream.Collectors.counting; import static java.util.stream.Collectors.groupingBy; -import static java.util.stream.Stream.concat; +import static java.util.stream.Stream.empty; import static org.apache.commons.lang3.ObjectUtils.defaultIfNull; +import static org.apache.commons.lang3.StringUtils.isNotEmpty; import static org.onap.vid.controller.MsoController.SVC_INSTANCE_ID; import static org.onap.vid.controller.MsoController.VNF_INSTANCE_ID; import static org.onap.vid.utils.KotlinUtilsKt.JACKSON_OBJECT_MAPPER; @@ -41,7 +43,6 @@ import java.util.Objects; import java.util.UUID; import java.util.function.Consumer; import java.util.stream.Stream; -import org.apache.commons.lang3.StringUtils; import org.hibernate.SessionFactory; import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; import org.onap.vid.aai.AaiClientInterface; @@ -63,6 +64,7 @@ import org.onap.vid.model.ResourceInfo; import org.onap.vid.model.ServiceInfo; import org.onap.vid.model.serviceInstantiation.BaseResource; import org.onap.vid.model.serviceInstantiation.ServiceInstantiation; +import org.onap.vid.model.serviceInstantiation.VfModule; import org.onap.vid.mso.MsoBusinessLogicImpl; import org.onap.vid.mso.MsoProperties; import org.onap.vid.mso.MsoUtil; @@ -188,9 +190,8 @@ public class AsyncInstantiationBusinessLogicImpl implements public Map getSummarizedChildrenMap(ServiceInstantiation serviceInstantiation){ Stream existingTypesStream = allDeepChildResources(serviceInstantiation) - .map(BaseResource::getModelInfo) - .filter(Objects::nonNull) - .map(ModelInfo::getModelType); + .map(this::getModelTypes) + .flatMap(identity()); Map existingTypesCounters = existingTypesStream.collect(groupingBy(identity(), counting())); @@ -198,6 +199,28 @@ public class AsyncInstantiationBusinessLogicImpl implements return existingTypesCounters; } + private Stream getModelTypes(BaseResource resource) { + return concat( + Stream.of(resource) + .map(BaseResource::getModelInfo) + .filter(Objects::nonNull) + .map(ModelInfo::getModelType), + streamVolumeGroups(resource) + ); + } + + private Stream streamVolumeGroups(BaseResource resource) { + return hasVolumeGroup(resource) + ? Stream.of("volumeGroup") + : empty(); + } + + private boolean hasVolumeGroup(BaseResource resource) { + return + resource instanceof VfModule + && isNotEmpty(((VfModule) resource).getVolumeGroupInstanceName()); + } + private Stream allDeepChildResources(BaseResource resource) { return resource .getChildren() @@ -216,7 +239,7 @@ public class AsyncInstantiationBusinessLogicImpl implements private String getOptimisticUniqueServiceInstanceName(String instanceName) { - return StringUtils.isNotEmpty(instanceName) ? getUniqueNameFromDbOnly(instanceName) : instanceName; + return isNotEmpty(instanceName) ? getUniqueNameFromDbOnly(instanceName) : instanceName; } protected ServiceInfo createServiceInfo(String userId, ServiceInstantiation serviceInstantiation, UUID jobId, UUID templateId, Date createdBulkDate, String optimisticUniqueServiceInstanceName, ServiceInfo.ServiceAction serviceAction) { -- cgit 1.2.3-korg