summaryrefslogtreecommitdiffstats
path: root/catalog-be/src/main/java/org
diff options
context:
space:
mode:
authorMichaelMorris <michael.morris@est.tech>2020-02-08 22:55:49 +0000
committerOfir Sonsino <ofir.sonsino@intl.att.com>2020-02-18 16:06:37 +0000
commit580e536e8b86a50789031f56a0e20a4985d738a0 (patch)
tree9f47a6e10f55482ca590e1ff7b963dc0245421bc /catalog-be/src/main/java/org
parent4aa20bc42b7bd98dde15f7594084669eb92412c2 (diff)
Backend extensibility
Issue-ID: SDC-2761 Change-Id: I9287e0255fdda8da61cafc4b761190c8992b9aff Signed-off-by: MichaelMorris <michael.morris@est.tech>
Diffstat (limited to 'catalog-be/src/main/java/org')
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/plugins/CsarEntryGenerator.java39
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/tosca/CsarUtils.java14
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/config/CatalogBESpringConfig.java1
3 files changed, 54 insertions, 0 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/plugins/CsarEntryGenerator.java b/catalog-be/src/main/java/org/openecomp/sdc/be/plugins/CsarEntryGenerator.java
new file mode 100644
index 0000000000..856d53f7cd
--- /dev/null
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/plugins/CsarEntryGenerator.java
@@ -0,0 +1,39 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2020 Nordix Foundation. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+package org.openecomp.sdc.be.plugins;
+
+import java.util.Map;
+
+import org.openecomp.sdc.be.model.Component;
+
+/**
+ * Implementations of this interface shall generate entries to be included in a csar.
+ */
+public interface CsarEntryGenerator {
+
+ /**
+ * Generate entries to be included in a csar.
+ *
+ * @param component the component the csar is based on
+ * @return Map of name to contents for entries to be included in the csar
+ */
+ Map<String, byte[]> generateCsarEntries(final Component component);
+
+}
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/CsarUtils.java b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/CsarUtils.java
index 80bee80d06..2721fda2c5 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/CsarUtils.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/CsarUtils.java
@@ -51,6 +51,7 @@ import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade
import org.openecomp.sdc.be.model.jsonjanusgraph.utils.ModelConverter;
import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
import org.openecomp.sdc.be.model.operations.impl.DaoStatusConverter;
+import org.openecomp.sdc.be.plugins.CsarEntryGenerator;
import org.openecomp.sdc.be.resources.data.DAOArtifactData;
import org.openecomp.sdc.be.resources.data.SdcSchemaFilesData;
import org.openecomp.sdc.be.tosca.model.ToscaTemplate;
@@ -108,6 +109,9 @@ public class CsarUtils {
private ToscaExportHandler toscaExportUtils;
@Autowired
protected ToscaOperationFacade toscaOperationFacade;
+
+ @Autowired(required = false)
+ private List<CsarEntryGenerator> generators;
private static final String CONFORMANCE_LEVEL = ConfigurationManager.getConfigurationManager().getConfiguration().getToscaConformanceLevel();
private static final String SDC_VERSION = ExternalConfiguration.getAppVersion();
@@ -303,6 +307,16 @@ public class CsarUtils {
return Either.right(collectedComponentCsarDefinition.right().value());
}
+ if (generators != null) {
+ for (CsarEntryGenerator generator: generators) {
+ log.debug("Invoking CsarEntryGenerator: {}", generator.getClass().getName());
+ for (Entry<String, byte[]> pluginGeneratedFile : generator.generateCsarEntries(component).entrySet()) {
+ zip.putNextEntry(new ZipEntry(pluginGeneratedFile.getKey()));
+ zip.write(pluginGeneratedFile.getValue());
+ }
+ }
+ }
+
return writeAllFilesToCsar(component, collectedComponentCsarDefinition.left().value(), zip, isInCertificationRequest);
}
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/config/CatalogBESpringConfig.java b/catalog-be/src/main/java/org/openecomp/sdc/config/CatalogBESpringConfig.java
index 7e5535d688..2f72b771e1 100644
--- a/catalog-be/src/main/java/org/openecomp/sdc/config/CatalogBESpringConfig.java
+++ b/catalog-be/src/main/java/org/openecomp/sdc/config/CatalogBESpringConfig.java
@@ -60,6 +60,7 @@ import org.springframework.core.annotation.Order;
"org.openecomp.sdc.be.externalapi.servlet",
"org.openecomp.sdc.be.servlets",
"org.openecomp.sdc.be.filters",
+ "org.openecomp.sdc.be.plugins",
"org.openecomp.sdc.be.togglz"
})
public class CatalogBESpringConfig {