diff options
author | Eylon Malin <eylon.malin@intl.att.com> | 2019-11-21 09:31:36 +0200 |
---|---|---|
committer | Eylon Malin <eylon.malin@intl.att.com> | 2019-11-21 15:48:02 +0200 |
commit | c1777f478aa421c35667a99fd2199569bc9e4a8a (patch) | |
tree | 9332e0d0e6454a7799d6b3d20857b52ad82094db /vid-app-common/src/main | |
parent | f7312c11d3aef1684bf211b34092e094336d4b22 (diff) |
VidNotionBuilder can use configuration file to identify macro services
Issue-ID: VID-701
Change-Id: I23c89ed500d6d1663b07fa909b16eda30e63e36c
Signed-off-by: Eylon Malin <eylon.malin@intl.att.com>
Diffstat (limited to 'vid-app-common/src/main')
-rw-r--r-- | vid-app-common/src/main/java/org/onap/vid/asdc/parser/VidNotionsBuilder.java | 31 | ||||
-rw-r--r-- | vid-app-common/src/main/resources/macro_services_by_invariant_uuid.json | 1 |
2 files changed, 32 insertions, 0 deletions
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<UUID> invariantToMacro; //map of service type that are always macro services, and their relevant featureFlag private static final Map<VidNotions.ModelCategory, Features> macroServicesByModelCategory = ImmutableMap.of( @@ -52,6 +61,19 @@ public class VidNotionsBuilder { public VidNotionsBuilder(FeatureManager featureManager) { this.featureManager = featureManager; + invariantToMacro = loadInvariantMacroUUIDsFromFile(); + } + + @NotNull + private Set<UUID> 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 @@ +[] |