Upload 01/20301/1
authortalio <tali.orenbach@amdocs.com>
Tue, 24 Oct 2017 08:19:16 +0000 (11:19 +0300)
committertalio <tali.orenbach@amdocs.com>
Tue, 24 Oct 2017 08:19:35 +0000 (11:19 +0300)
enable upload of files with zip or csar extensions in uppercase, and throwing an appropriate exception in case that the extension is invalid.

Issue - Id : SDC-526

Change-Id: I9e556ac41173132cc67d64cd8a9d332a061cc942
Signed-off-by: talio <tali.orenbach@amdocs.com>
openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/orchestration/OrchestrationUploadFactory.java
openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/dao/errors/OrchestrationTemplateFileExtensionErrorBuilder.java [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/VendorSoftwareProductErrorCodes.java

index 85f9266..99b311e 100644 (file)
@@ -3,9 +3,12 @@ package org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration;
 import org.openecomp.config.api.Configuration;
 import org.openecomp.config.api.ConfigurationManager;
 import org.openecomp.core.utilities.CommonMethods;
+import org.openecomp.sdc.common.errors.CoreException;
 import org.openecomp.sdc.datatypes.configuration.ImplementationConfiguration;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.errors.OrchestrationTemplateFileExtensionErrorBuilder;
 
 import java.util.Map;
+import java.util.Objects;
 import java.util.concurrent.ConcurrentHashMap;
 
 import static org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.OrchestrationUtil.ORCHESTRATION_CONFIG_NAMESPACE;
@@ -22,7 +25,14 @@ public class OrchestrationUploadFactory {
     }
 
     public static final OrchestrationTemplateFileHandler createOrchestrationTemplateFileHandler(String filePrefix) {
-        ImplementationConfiguration orchestrationTemplateFileHandler = fileHanlders.get(filePrefix);
+        String fileExtension = filePrefix.toLowerCase();
+        ImplementationConfiguration orchestrationTemplateFileHandler = fileHanlders.get(fileExtension);
+
+        if(Objects.isNull(orchestrationTemplateFileHandler)){
+            throw new CoreException(new OrchestrationTemplateFileExtensionErrorBuilder
+                ().build());
+        }
+
         return  CommonMethods.newInstance(orchestrationTemplateFileHandler.getImplementationClass(),
                         OrchestrationTemplateFileHandler.class);
     }
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/dao/errors/OrchestrationTemplateFileExtensionErrorBuilder.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/dao/errors/OrchestrationTemplateFileExtensionErrorBuilder.java
new file mode 100644 (file)
index 0000000..6545ca1
--- /dev/null
@@ -0,0 +1,22 @@
+package org.openecomp.sdc.vendorsoftwareproduct.dao.errors;
+
+import org.openecomp.sdc.common.errors.ErrorCategory;
+import org.openecomp.sdc.common.errors.ErrorCode;
+
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.INVALID_EXTENSION;
+
+public class OrchestrationTemplateFileExtensionErrorBuilder {
+  private static final String INVALID_EXTENSION_MSG = "Invalid file extension. Valid extensions " +
+      "are : zip, csar.";
+  private final ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+
+  public OrchestrationTemplateFileExtensionErrorBuilder(){
+    builder.withId(INVALID_EXTENSION);
+    builder.withCategory(ErrorCategory.APPLICATION);
+    builder.withMessage(String.format(INVALID_EXTENSION_MSG));
+  }
+
+  public ErrorCode build() {
+    return builder.build();
+  }
+}