From 115b2ef065fa652b380093e4f2571e53c3f0bc19 Mon Sep 17 00:00:00 2001 From: "andre.schmid" Date: Fri, 25 Mar 2022 19:30:14 +0000 Subject: Fix package storage and reducer config reload The package storage configuration was not being reloaded when a configuration file change was made. Increases OrchestrationTemplateCandidateImpl coverage by testing the upload to the artifact storage. Issue-ID: SDC-3934 Change-Id: I533b3c3a92cdadb60a375890da85ee053364e8af Signed-off-by: andre.schmid --- .../OrchestrationTemplateCandidateImpl.java | 43 ++++++++++++---------- 1 file changed, 24 insertions(+), 19 deletions(-) (limited to 'openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/OrchestrationTemplateCandidateImpl.java') diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/OrchestrationTemplateCandidateImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/OrchestrationTemplateCandidateImpl.java index 93483f3de1..ec1e96e0bd 100644 --- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/OrchestrationTemplateCandidateImpl.java +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/OrchestrationTemplateCandidateImpl.java @@ -29,6 +29,7 @@ import static org.openecomp.sdc.common.errors.Messages.ERROR_HAS_OCCURRED_WHILE_ import static org.openecomp.sdc.common.errors.Messages.ERROR_HAS_OCCURRED_WHILE_REDUCING_THE_ARTIFACT_SIZE; import static org.openecomp.sdc.common.errors.Messages.NO_FILE_WAS_UPLOADED_OR_FILE_NOT_EXIST; import static org.openecomp.sdc.common.errors.Messages.PACKAGE_PROCESS_ERROR; +import static org.openecomp.sdc.common.errors.Messages.PACKAGE_REDUCER_NOT_CONFIGURED; import static org.openecomp.sdc.common.errors.Messages.UNEXPECTED_PROBLEM_HAPPENED_WHILE_GETTING; import static org.openecomp.sdcrests.vsp.rest.exception.OrchestrationTemplateCandidateUploadManagerExceptionSupplier.vspUploadAlreadyInProgress; @@ -103,21 +104,15 @@ public class OrchestrationTemplateCandidateImpl implements OrchestrationTemplate private final OrchestrationTemplateCandidateManager candidateManager; private final VendorSoftwareProductManager vendorSoftwareProductManager; private final ActivityLogManager activityLogManager; - private final ArtifactStorageManager artifactStorageManager; - private final StorageFactory storageFactory; - private final PackageSizeReducer packageSizeReducer; private final OrchestrationTemplateCandidateUploadManager orchestrationTemplateCandidateUploadManager; + private final StorageFactory storageFactory; @Autowired public OrchestrationTemplateCandidateImpl(final OrchestrationTemplateCandidateUploadManager orchestrationTemplateCandidateUploadManager) { this.candidateManager = OrchestrationTemplateCandidateManagerFactory.getInstance().createInterface(); this.vendorSoftwareProductManager = VspManagerFactory.getInstance().createInterface(); this.activityLogManager = ActivityLogManagerFactory.getInstance().createInterface(); - LOGGER.info("Instantiating artifactStorageManager"); this.storageFactory = new StorageFactory(); - this.artifactStorageManager = storageFactory.createArtifactStorageManager(); - LOGGER.info("Instantiating packageSizeReducer"); - this.packageSizeReducer = storageFactory.createPackageSizeReducer().orElse(null); this.orchestrationTemplateCandidateUploadManager = orchestrationTemplateCandidateUploadManager; } @@ -125,15 +120,12 @@ public class OrchestrationTemplateCandidateImpl implements OrchestrationTemplate public OrchestrationTemplateCandidateImpl(final OrchestrationTemplateCandidateManager candidateManager, final VendorSoftwareProductManager vendorSoftwareProductManager, final ActivityLogManager activityLogManager, - final ArtifactStorageManager artifactStorageManager, - final PackageSizeReducer packageSizeReducer, - final OrchestrationTemplateCandidateUploadManager orchestrationTemplateCandidateUploadManager) { + final OrchestrationTemplateCandidateUploadManager orchestrationTemplateCandidateUploadManager, + final StorageFactory storageFactory) { this.candidateManager = candidateManager; this.vendorSoftwareProductManager = vendorSoftwareProductManager; this.activityLogManager = activityLogManager; - this.artifactStorageManager = artifactStorageManager; - this.storageFactory = new StorageFactory(); - this.packageSizeReducer = packageSizeReducer; + this.storageFactory = storageFactory; this.orchestrationTemplateCandidateUploadManager = orchestrationTemplateCandidateUploadManager; } @@ -156,7 +148,7 @@ public class OrchestrationTemplateCandidateImpl implements OrchestrationTemplate ArtifactInfo artifactInfo = null; final ArtifactStorageManager artifactStorageManager = storageFactory.createArtifactStorageManager(); if (artifactStorageManager.isEnabled()) { - artifactInfo = handleArtifactStorage(vspId, versionId, filename, dataHandler); + artifactInfo = handleArtifactStorage(vspId, versionId, filename, dataHandler, artifactStorageManager); fileToUploadBytes = artifactInfo.getBytes(); } else { fileToUploadBytes = fileToUpload.getObject(byte[].class); @@ -215,7 +207,13 @@ public class OrchestrationTemplateCandidateImpl implements OrchestrationTemplate } private ArtifactInfo handleArtifactStorage(final String vspId, final String versionId, final String filename, - final DataHandler artifactDataHandler) { + final DataHandler artifactDataHandler, + final ArtifactStorageManager artifactStorageManager) { + final PackageSizeReducer packageSizeReducer = storageFactory.createPackageSizeReducer().orElse(null); + if (packageSizeReducer == null) { + throw new ArtifactStorageException(PACKAGE_REDUCER_NOT_CONFIGURED.getErrorMessage()); + } + final Path tempArtifactPath; try { final ArtifactStorageConfig storageConfiguration = artifactStorageManager.getStorageConfiguration(); @@ -239,15 +237,22 @@ public class OrchestrationTemplateCandidateImpl implements OrchestrationTemplate LOGGER.error("Package Size Reducer not configured", e); throw new ArtifactStorageException(ERROR_HAS_OCCURRED_WHILE_PERSISTING_THE_ARTIFACT.formatMessage(filename)); } + try { - LOGGER.debug("STARTED -> reducing '{}'", tempArtifactPath.toString()); + LOGGER.debug("STARTED -> reducing '{}'", tempArtifactPath); artifactInfo.setBytes(packageSizeReducer.reduce(tempArtifactPath)); - LOGGER.debug("FINISHED -> reducing '{}'", tempArtifactPath.toString()); + LOGGER.debug("FINISHED -> reducing '{}'", tempArtifactPath); + } catch (final Exception e) { + LOGGER.debug("ERROR -> reducing '{}'", tempArtifactPath, e); + throw new ArtifactStorageException(ERROR_HAS_OCCURRED_WHILE_REDUCING_THE_ARTIFACT_SIZE.formatMessage(filename), e); + } + + try { Files.delete(tempArtifactPath); } catch (final Exception e) { - LOGGER.error("Package Size Reducer not configured", e); - throw new ArtifactStorageException(ERROR_HAS_OCCURRED_WHILE_REDUCING_THE_ARTIFACT_SIZE.formatMessage(filename)); + LOGGER.warn("Could not delete temporary package at '{}'", tempArtifactPath, e); } + return artifactInfo; } -- cgit 1.2.3-korg