Refactor CsarUtil::writeComponentInterface 79/106979/4
authorFrancis Toth <francis.toth@yoppworks.com>
Fri, 1 May 2020 14:23:18 +0000 (10:23 -0400)
committerOfir Sonsino <ofir.sonsino@intl.att.com>
Mon, 11 May 2020 08:28:35 +0000 (08:28 +0000)
Signed-off-by: Francis Toth <francis.toth@yoppworks.com>
Change-Id: I6a40119540c18469db44e218984b4d4b92d3f4af
Issue-ID: SDC-2812

catalog-be/src/main/java/org/openecomp/sdc/be/tosca/CsarUtils.java

index 29c0c13..cba6b4f 100644 (file)
@@ -615,25 +615,29 @@ public class CsarUtils {
         return cc;
     }
 
-    private Either<ZipOutputStream, ResponseFormat> writeComponentInterface(Component component, ZipOutputStream zip,
-                       String fileName, boolean isAssociatedComponent) {
-               try {
-                       Either<ToscaRepresentation, ToscaError> componentInterface = toscaExportUtils
-                                       .exportComponentInterface(component, isAssociatedComponent);
-                       ToscaRepresentation componentInterfaceYaml = componentInterface.left().value();
-                       String mainYaml = componentInterfaceYaml.getMainYaml();
-                       String interfaceFileName = DEFINITIONS_PATH + ToscaExportHandler.getInterfaceFilename(fileName);
-
-                       zip.putNextEntry(new ZipEntry(interfaceFileName));
-                       zip.write(mainYaml.getBytes());
-
-               } catch (Exception e) {
-                       log.error("#writeComponentInterface - zip writing failed with error: ", e);
-                       return Either.right(componentsUtils.getResponseFormat(ActionStatus.GENERAL_ERROR));
-               }
+    private Either<ZipOutputStream, ResponseFormat> writeComponentInterface(
+        Component component,
+        ZipOutputStream zip,
+        String fileName,
+        boolean isAssociatedComponent
+    ) {
+        try {
+            Either<String, ToscaError> mainYaml = toscaExportUtils
+                .exportComponentInterface(component, isAssociatedComponent)
+                .left().map(ToscaRepresentation::getMainYaml);
+
+            // TODO: This should be done outside this function to keep this testable.
+            // We can probably achieve this once the other refactorings related to SDC-2812 are merged
+            String interfaceFileName = DEFINITIONS_PATH + ToscaExportHandler.getInterfaceFilename(fileName);
+            zip.putNextEntry(new ZipEntry(interfaceFileName));
+            zip.write(mainYaml.left().value().getBytes());
 
-               return Either.left(zip);
-       }
+        } catch (Exception e) {
+            log.error("#writeComponentInterface - zip writing failed with error: ", e);
+            return Either.right(componentsUtils.getResponseFormat(ActionStatus.GENERAL_ERROR));
+        }
+        return Either.left(zip);
+    }
 
     private Either<byte[], ActionStatus> getEntryData(String cassandraId, Component childComponent) {
         if (cassandraId == null || cassandraId.isEmpty()) {