Fixed issues found in integration testing
[so.git] / adapters / mso-vnfm-adapter / mso-vnfm-etsi-adapter / src / main / java / org / onap / so / adapters / vnfmadapter / extclients / SdcPackageProvider.java
index f1074bc..fd92910 100644 (file)
 
 package org.onap.so.adapters.vnfmadapter.extclients;
 
+import static com.google.common.base.Splitter.on;
+import static com.google.common.collect.Iterables.filter;
+import static com.google.common.io.ByteStreams.toByteArray;
+import static java.lang.String.format;
+import static org.apache.http.HttpHeaders.ACCEPT;
+import static org.apache.http.HttpHeaders.AUTHORIZATION;
+import static org.onap.so.adapters.vnfmadapter.NvfmAdapterUtils.abortOperation;
+import static org.onap.so.adapters.vnfmadapter.NvfmAdapterUtils.child;
+import static org.onap.so.adapters.vnfmadapter.NvfmAdapterUtils.childElement;
+import static org.onap.so.adapters.vnfmadapter.NvfmAdapterUtils.children;
+import static org.slf4j.LoggerFactory.getLogger;
+import static org.springframework.http.MediaType.APPLICATION_OCTET_STREAM_VALUE;
 import com.google.common.io.ByteStreams;
 import com.google.gson.Gson;
 import com.google.gson.JsonObject;
-import org.apache.commons.codec.binary.Base64;
-import org.apache.http.HttpEntity;
-import org.apache.http.client.methods.CloseableHttpResponse;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.HttpClients;
-import org.onap.so.utils.CryptoUtils;
-import org.slf4j.Logger;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
-import org.yaml.snakeyaml.Yaml;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
@@ -48,25 +49,24 @@ import java.util.NoSuchElementException;
 import java.util.Set;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
-import static com.google.common.base.Splitter.on;
-import static com.google.common.collect.Iterables.filter;
-import static com.google.common.io.ByteStreams.toByteArray;
-import static java.lang.String.format;
-import static org.apache.http.HttpHeaders.ACCEPT;
-import static org.apache.http.HttpHeaders.AUTHORIZATION;
-import static org.onap.so.adapters.vnfmadapter.NvfmAdapterUtils.abortOperation;
-import static org.onap.so.adapters.vnfmadapter.NvfmAdapterUtils.child;
-import static org.onap.so.adapters.vnfmadapter.NvfmAdapterUtils.childElement;
-import static org.onap.so.adapters.vnfmadapter.NvfmAdapterUtils.children;
-import static org.slf4j.LoggerFactory.getLogger;
-import static org.springframework.http.MediaType.APPLICATION_OCTET_STREAM_VALUE;
+import org.apache.commons.codec.binary.Base64;
+import org.apache.http.HttpEntity;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.onap.so.utils.CryptoUtils;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+import org.yaml.snakeyaml.Yaml;
 
 @Component
 public class SdcPackageProvider {
-    private static final String GET_PACKAGE_URL = "%s/catalog/resources/%s/toscaModel";
+    private static final String GET_PACKAGE_URL = "%s/sdc/v1/catalog/resources/%s/toscaModel";
     @Value("${sdc.toscametapath:TOSCA-Metadata/TOSCA.meta}")
     private List<String> toscaMetaPaths;
-    private final String TOSCA_VNFD_KEY = "Entry-Definitions";
+    private static final String TOSCA_VNFD_KEY = "Entry-Definitions";
     private static Logger logger = getLogger(SdcPackageProvider.class);
 
     @Value("${sdc.username}")
@@ -78,7 +78,7 @@ public class SdcPackageProvider {
     @Value("${sdc.endpoint}")
     private String baseUrl;
 
-    public String getVnfdId(String csarId) {
+    public String getVnfdId(final String csarId) {
         return getVnfNodeProperty(csarId, "descriptor_id");
     }
 
@@ -96,7 +96,7 @@ public class SdcPackageProvider {
             for (final JsonObject child : children(nodeTemplates)) {
                 final String type = childElement(child, "type").getAsString();
                 String propertyValue = null;
-                if (type.equals("tosca.nodes.nfv.VNF")) {
+                if ("tosca.nodes.nfv.VNF".equals(type)) {
                     final JsonObject properties = child(child, "properties");
                     logger.debug("properties: " + properties.toString());
 
@@ -119,7 +119,7 @@ public class SdcPackageProvider {
         final JsonObject nodeTypes = child(root, "node_types");
         final JsonObject nodeType = child(nodeTypes, nodeTypeName);
 
-        if (childElement(nodeType, "derived_from").getAsString().equals("tosca.nodes.nfv.VNF")) {
+        if ("tosca.nodes.nfv.VNF".equals(childElement(nodeType, "derived_from").getAsString())) {
             final JsonObject properties = child(nodeType, "properties");
             logger.debug("properties: " + properties.toString());
             final JsonObject property = child(properties, propertyName);
@@ -130,34 +130,33 @@ public class SdcPackageProvider {
         return null;
     }
 
-    private byte[] getPackage(String csarId) {
+    private byte[] getPackage(final String csarId) {
         final String SERVICE_NAME = "vnfm-adapter";
         try (CloseableHttpClient client = HttpClients.createDefault()) {
-            HttpGet httpget = new HttpGet(format(GET_PACKAGE_URL, baseUrl, csarId));
+            final HttpGet httpget = new HttpGet(format(GET_PACKAGE_URL, baseUrl, csarId));
             httpget.setHeader(ACCEPT, APPLICATION_OCTET_STREAM_VALUE);
             httpget.setHeader("X-ECOMP-InstanceID", SERVICE_NAME);
             httpget.setHeader("X-FromAppId", SERVICE_NAME);
-            String auth = sdcUsername + ":" + CryptoUtils.decrypt(sdcPassword, sdcKey);
-            byte[] encodedAuth = Base64.encodeBase64(auth.getBytes(StandardCharsets.ISO_8859_1));
-            String authHeader = "Basic " + new String(encodedAuth);
+            final String auth = sdcUsername + ":" + CryptoUtils.decrypt(sdcPassword, sdcKey);
+            final byte[] encodedAuth = Base64.encodeBase64(auth.getBytes(StandardCharsets.ISO_8859_1));
+            final String authHeader = "Basic " + new String(encodedAuth);
             httpget.setHeader(AUTHORIZATION, authHeader);
             logger.debug("Fetching from SDC: " + httpget);
-            CloseableHttpResponse response = client.execute(httpget);
-            HttpEntity entity = response.getEntity();
-            InputStream is = entity.getContent();
-            byte[] bytes = toByteArray(is);
-            return bytes;
-        } catch (Exception e) {
+            final CloseableHttpResponse response = client.execute(httpget);
+            final HttpEntity entity = response.getEntity();
+            final InputStream is = entity.getContent();
+            return toByteArray(is);
+        } catch (final Exception e) {
             throw abortOperation("Unable to download " + csarId + " package from SDC", e);
         }
     }
 
-    private String getVnfdLocation(InputStream stream) throws IOException {
-        Iterator pathIterator = toscaMetaPaths.iterator();
+    private String getVnfdLocation(final InputStream stream) throws IOException {
+        final Iterator<String> pathIterator = toscaMetaPaths.iterator();
         while (pathIterator.hasNext()) {
-            String toscaMetadata = new String(getFileInZip(stream, pathIterator.next().toString()).toByteArray());
+            final String toscaMetadata = new String(getFileInZip(stream, pathIterator.next()).toByteArray());
             if (!toscaMetadata.isEmpty()) {
-                String toscaVnfdLine =
+                final String toscaVnfdLine =
                         filter(on("\n").split(toscaMetadata), line -> line.contains(TOSCA_VNFD_KEY)).iterator().next();
                 return toscaVnfdLine.replace(TOSCA_VNFD_KEY + ":", "").trim();
             }
@@ -165,20 +164,21 @@ public class SdcPackageProvider {
         throw abortOperation("Unable to find valid Tosca Path");
     }
 
-    private static ByteArrayOutputStream getFileInZip(InputStream zip, String path) throws IOException {
-        ZipInputStream zipInputStream = new ZipInputStream(zip);
-        ByteArrayOutputStream fileContent = getFileInZip(zipInputStream, path);
+    private static ByteArrayOutputStream getFileInZip(final InputStream zip, final String path) throws IOException {
+        final ZipInputStream zipInputStream = new ZipInputStream(zip);
+        final ByteArrayOutputStream fileContent = getFileInZip(zipInputStream, path);
         zipInputStream.close();
         return fileContent;
     }
 
-    private static ByteArrayOutputStream getFileInZip(ZipInputStream zipInputStream, String path) throws IOException {
+    private static ByteArrayOutputStream getFileInZip(final ZipInputStream zipInputStream, final String path)
+            throws IOException {
         ZipEntry zipEntry;
-        Set<String> items = new HashSet<>();
+        final Set<String> items = new HashSet<>();
         while ((zipEntry = zipInputStream.getNextEntry()) != null) {
             items.add(zipEntry.getName());
             if (zipEntry.getName().matches(path)) {
-                ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+                final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
                 ByteStreams.copy(zipInputStream, byteArrayOutputStream);
                 return byteArrayOutputStream;
             }
@@ -187,7 +187,7 @@ public class SdcPackageProvider {
         throw new NoSuchElementException("Unable to find the " + path + " in archive found: " + items);
     }
 
-    public String getFlavourId(String csarId) {
+    public String getFlavourId(final String csarId) {
         return getVnfNodeProperty(csarId, "flavour_id");
     }
 }