From c1777f478aa421c35667a99fd2199569bc9e4a8a Mon Sep 17 00:00:00 2001 From: Eylon Malin Date: Thu, 21 Nov 2019 09:31:36 +0200 Subject: VidNotionBuilder can use configuration file to identify macro services Issue-ID: VID-701 Change-Id: I23c89ed500d6d1663b07fa909b16eda30e63e36c Signed-off-by: Eylon Malin --- .../onap/vid/asdc/parser/VidNotionsBuilder.java | 31 ++++++++++++++++++++++ .../macro_services_by_invariant_uuid.json | 1 + 2 files changed, 32 insertions(+) create mode 100644 vid-app-common/src/main/resources/macro_services_by_invariant_uuid.json (limited to 'vid-app-common/src/main') diff --git a/vid-app-common/src/main/java/org/onap/vid/asdc/parser/VidNotionsBuilder.java b/vid-app-common/src/main/java/org/onap/vid/asdc/parser/VidNotionsBuilder.java index 76e911b4e..3f18a5ace 100644 --- a/vid-app-common/src/main/java/org/onap/vid/asdc/parser/VidNotionsBuilder.java +++ b/vid-app-common/src/main/java/org/onap/vid/asdc/parser/VidNotionsBuilder.java @@ -20,18 +20,26 @@ package org.onap.vid.asdc.parser; +import static java.util.stream.Collectors.toSet; import static org.apache.commons.lang3.StringUtils.equalsAnyIgnoreCase; import static org.apache.commons.lang3.StringUtils.equalsIgnoreCase; import static org.apache.commons.lang3.StringUtils.isEmpty; +import static org.onap.vid.utils.KotlinUtilsKt.JACKSON_OBJECT_MAPPER; import com.google.common.collect.ImmutableMap; +import java.io.IOException; import java.util.Map; +import java.util.Set; +import java.util.UUID; +import java.util.stream.Stream; import org.apache.commons.collections.MapUtils; import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.onap.sdc.tosca.parser.api.ISdcCsarHelper; import org.onap.sdc.toscaparser.api.NodeTemplate; import org.onap.sdc.toscaparser.api.elements.Metadata; +import org.onap.vid.exceptions.GenericUncheckedException; import org.onap.vid.model.ServiceModel; import org.onap.vid.model.VidNotions; import org.onap.vid.model.VidNotions.InstantiationUI; @@ -42,6 +50,7 @@ import org.togglz.core.manager.FeatureManager; public class VidNotionsBuilder { private final FeatureManager featureManager; + private final Set invariantToMacro; //map of service type that are always macro services, and their relevant featureFlag private static final Map macroServicesByModelCategory = ImmutableMap.of( @@ -52,6 +61,19 @@ public class VidNotionsBuilder { public VidNotionsBuilder(FeatureManager featureManager) { this.featureManager = featureManager; + invariantToMacro = loadInvariantMacroUUIDsFromFile(); + } + + @NotNull + private Set loadInvariantMacroUUIDsFromFile() { + try { + return Stream.of(JACKSON_OBJECT_MAPPER.readValue( + VidNotionsBuilder.class.getResource("/macro_services_by_invariant_uuid.json"), + String[].class + )).map(UUID::fromString).collect(toSet()); + } catch (IOException e) { + throw new GenericUncheckedException(e); + } } VidNotions buildVidNotions(ISdcCsarHelper csarHelper, ServiceModel serviceModel) { @@ -267,4 +289,13 @@ public class VidNotionsBuilder { ); } + + protected boolean isMacroByInvariantUuid(String uuid) { + try { + return invariantToMacro.contains(UUID.fromString(uuid)); + } + catch (IllegalArgumentException | NullPointerException e) { //not a uuid + return false; + } + } } diff --git a/vid-app-common/src/main/resources/macro_services_by_invariant_uuid.json b/vid-app-common/src/main/resources/macro_services_by_invariant_uuid.json new file mode 100644 index 000000000..fe51488c7 --- /dev/null +++ b/vid-app-common/src/main/resources/macro_services_by_invariant_uuid.json @@ -0,0 +1 @@ +[] -- cgit 1.2.3-korg