diff options
Diffstat (limited to 'src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java')
-rw-r--r-- | src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java index 1a99919ee..f2c75ef28 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java @@ -36,6 +36,7 @@ import java.util.Enumeration; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; @@ -68,6 +69,7 @@ public class CsarHandler { private INotificationData sdcNotification; public static final String RESOURCE_INSTANCE_NAME_PREFIX = "/Artifacts/Resources/"; public static final String RESOURCE_INSTANCE_NAME_SUFFIX = "/Deployment/"; + public static final String POLICY_DEFINITION_NAME_SUFFIX = "Definitions/policies.yml"; public CsarHandler(INotificationData iNotif, String controller, String clampCsarPath) throws CsarHandlerException { this.sdcNotification = iNotif; @@ -167,4 +169,17 @@ public class CsarHandler { public Map<String, BlueprintArtifact> getMapOfBlueprints() { return mapOfBlueprints; } + + Optional<String> getPolicyModelYaml() throws IOException { + String result = null; + try (ZipFile zipFile = new ZipFile(csarFilePath)) { + ZipEntry entry = zipFile.getEntry(POLICY_DEFINITION_NAME_SUFFIX); + if (entry != null) { + result = IOUtils.toString(zipFile.getInputStream(entry)); + } else{ + logger.info("Policy model not found inside the CSAR file: " + csarFilePath); + } + return Optional.ofNullable(result); + } + } } |