Use the ETSI config from package
[vfc/nfvo/driver/vnfm/svnfm.git] / nokiav2 / driver / src / main / java / org / onap / vfc / nfvo / driver / vnfm / svnfm / nokia / vnfm / CatalogManager.java
index aeeae42..0993c6e 100644 (file)
@@ -16,6 +16,7 @@
 
 package org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.vnfm;
 
+import com.google.common.base.Charsets;
 import com.google.common.io.ByteStreams;
 import com.nokia.cbam.catalog.v1.api.DefaultApi;
 import com.nokia.cbam.catalog.v1.model.CatalogAdapterVnfpackage;
@@ -36,6 +37,7 @@ import static com.google.common.collect.Iterables.filter;
 import static okhttp3.MediaType.parse;
 import static okhttp3.RequestBody.create;
 import static org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.util.CbamUtils.buildFatalFailure;
+import static org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.vnfm.LifecycleManager.ETSI_CONFIG;
 import static org.slf4j.LoggerFactory.getLogger;
 import static org.springframework.http.MediaType.APPLICATION_OCTET_STREAM;
 
@@ -50,6 +52,8 @@ public class CatalogManager {
      * The location of the CBAM package within the ONAP package
      */
     public static final String CBAM_PACKAGE_NAME_IN_ZIP = "Artifacts/Deployment/OTHER/cbam.package.zip";
+    public static final String ETSI_CONFIG_NAME_IN_ZIP = "Artifacts/Deployment/OTHER/" + ETSI_CONFIG +".json";
+
     private static final String TOSCA_META_PATH = "TOSCA-Metadata/TOSCA.meta";
     private static final String TOSCA_VNFD_KEY = "Entry-Definitions";
     private static Logger logger = getLogger(CatalogManager.class);
@@ -108,7 +112,7 @@ public class CatalogManager {
     public CatalogAdapterVnfpackage preparePackageInCbam(String vnfmId, String csarId) {
         String cbamVnfdId = packageProvider.getCbamVnfdId(csarId);
         DefaultApi cbamCatalogApi = cbamRestApiProvider.getCbamCatalogApi(vnfmId);
-        if (!isPackageReplicated(cbamVnfdId, cbamCatalogApi)) {
+            if (!isPackageReplicated(cbamVnfdId, cbamCatalogApi)) {
             try {
                 ByteArrayOutputStream cbamPackage = getFileInZip(new ByteArrayInputStream(packageProvider.getPackage(csarId)), CBAM_PACKAGE_NAME_IN_ZIP);
                 return cbamCatalogApi.create(create(parse(APPLICATION_OCTET_STREAM.toString()), cbamPackage.toByteArray())).blockingFirst();
@@ -127,6 +131,21 @@ public class CatalogManager {
         return queryPackageFromCBAM(cbamVnfdId, cbamCatalogApi);
     }
 
+    /**
+     * Download the ETSI configuration of the VNF
+     * @param csarId the CSAR identifier of the package in ONAP catalog
+     * @return the content of the ETSI configuration
+     */
+    public String getEtsiConfiguration(String csarId){
+        try {
+            ByteArrayOutputStream etsiConfig = getFileInZip(new ByteArrayInputStream(packageProvider.getPackage(csarId)), ETSI_CONFIG_NAME_IN_ZIP);
+            return new String(etsiConfig.toByteArray(), Charsets.UTF_8);
+        }
+        catch (Exception e){
+            throw buildFatalFailure(logger, "Unable to download the ETSI configuration file");
+        }
+    }
+
     /**
      * Gets the content of the VNFD from the CBAM package uploaded to CBAM
      *