Clamp uses new Loop implementation by default
Change-Id: I274a946af91f6b06d3aa53b8127c94010274e353
Issue-ID: CLAMP-354
Signed-off-by: Krysiak Adam <adam.krysiak@nokia.com>
diff --git a/src/main/java/org/onap/clamp/clds/config/spring/CldsSdcControllerConfiguration.java b/src/main/java/org/onap/clamp/clds/config/spring/CldsSdcControllerConfiguration.java
index 92b0272..bee0d4c 100644
--- a/src/main/java/org/onap/clamp/clds/config/spring/CldsSdcControllerConfiguration.java
+++ b/src/main/java/org/onap/clamp/clds/config/spring/CldsSdcControllerConfiguration.java
@@ -39,23 +39,27 @@
import org.onap.clamp.clds.sdc.controller.SdcSingleController;
import org.onap.clamp.clds.sdc.controller.SdcSingleControllerStatus;
import org.onap.clamp.clds.sdc.controller.installer.CsarInstaller;
-import org.onap.clamp.clds.sdc.controller.installer.CsarInstallerImpl;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.scheduling.annotation.Scheduled;
@Configuration
+@ComponentScan(basePackages = "org.onap.clamp.clds")
@Profile("clamp-sdc-controller")
public class CldsSdcControllerConfiguration {
private static final EELFLogger logger = EELFManager.getInstance().getLogger(CldsSdcControllerConfiguration.class);
private List<SdcSingleController> sdcControllersList = new ArrayList<>();
- @Autowired
- private ClampProperties clampProp;
- @Autowired
- protected CsarInstaller csarInstaller;
+ private final ClampProperties clampProp;
+ private final CsarInstaller csarInstaller;
+
+ public CldsSdcControllerConfiguration(ClampProperties clampProp, @Qualifier("oldModelInstaller") CsarInstaller csarInstaller) {
+ this.clampProp = clampProp;
+ this.csarInstaller = csarInstaller;
+ }
/**
* Loads SDC controllers configuration.
diff --git a/src/main/java/org/onap/clamp/clds/config/spring/SdcControllerConfiguration.java b/src/main/java/org/onap/clamp/clds/config/spring/SdcControllerConfiguration.java
index 55b90cc..8b8ee93 100644
--- a/src/main/java/org/onap/clamp/clds/config/spring/SdcControllerConfiguration.java
+++ b/src/main/java/org/onap/clamp/clds/config/spring/SdcControllerConfiguration.java
@@ -25,36 +25,39 @@
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
-
import java.util.ArrayList;
import java.util.List;
-
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
-
import org.onap.clamp.clds.config.ClampProperties;
import org.onap.clamp.clds.config.sdc.SdcControllersConfiguration;
import org.onap.clamp.clds.exception.sdc.controller.SdcControllerException;
import org.onap.clamp.clds.sdc.controller.SdcSingleController;
import org.onap.clamp.clds.sdc.controller.SdcSingleControllerStatus;
import org.onap.clamp.clds.sdc.controller.installer.CsarInstaller;
-import org.onap.clamp.loop.CsarInstallerImpl;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.scheduling.annotation.Scheduled;
@Configuration
+@ComponentScan(basePackages = {"org.onap.clamp.loop", "org.onap.clamp.clds.config"})
@Profile("clamp-sdc-controller-new")
public class SdcControllerConfiguration {
private static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcControllerConfiguration.class);
private List<SdcSingleController> sdcControllersList = new ArrayList<>();
+ private final ClampProperties clampProp;
+ private final CsarInstaller csarInstaller;
+
@Autowired
- private ClampProperties clampProp;
- @Autowired
- protected CsarInstaller csarInstaller;
+ public SdcControllerConfiguration(ClampProperties clampProp, @Qualifier("loopInstaller") CsarInstaller csarInstaller) {
+ this.clampProp = clampProp;
+ this.csarInstaller = csarInstaller;
+ }
/**
* Loads SDC controller configuration.
@@ -101,11 +104,6 @@
});
}
- @Bean(name = "csarInstaller")
- public CsarInstaller getCsarInstaller() {
- return new CsarInstallerImpl();
- }
-
@Bean(name = "sdcControllersConfiguration")
public SdcControllersConfiguration getSdcControllersConfiguration() {
return new SdcControllersConfiguration();
diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java
index 5a21a1f..7ef217b 100644
--- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java
+++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java
@@ -132,7 +132,7 @@
Enumeration<? extends ZipEntry> entries = zipFile.entries();
while (entries.hasMoreElements()) {
ZipEntry entry = entries.nextElement();
- if (entry.getName().contains(BLUEPRINT_TYPE)) {
+ if (!entry.isDirectory() && entry.getName().contains(BLUEPRINT_TYPE)) {
BlueprintArtifact blueprintArtifact = new BlueprintArtifact();
blueprintArtifact.setBlueprintArtifactName(
entry.getName().substring(entry.getName().lastIndexOf('/') + 1, entry.getName().length()));
diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstaller.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstaller.java
index 12a761d..a1f8897 100644
--- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstaller.java
+++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstaller.java
@@ -27,6 +27,7 @@
import org.onap.clamp.clds.exception.sdc.controller.SdcArtifactInstallerException;
public interface CsarInstaller {
+ String TEMPLATE_NAME_PREFIX = "DCAE-Designer-Template-";
boolean isCsarAlreadyDeployed(CsarHandler csar) throws SdcArtifactInstallerException;
diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java
index 6dc4183..6c41e9c 100644
--- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java
+++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java
@@ -56,6 +56,7 @@
import org.onap.clamp.clds.util.JsonUtils;
import org.onap.clamp.clds.util.drawing.SvgFacade;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
@@ -68,6 +69,7 @@
* received from SDC in DB.
*/
@Component
+@Qualifier("oldModelInstaller")
public class CsarInstallerImpl implements CsarInstaller {
private static final EELFLogger logger = EELFManager.getInstance().getLogger(CsarInstallerImpl.class);
diff --git a/src/main/java/org/onap/clamp/clds/service/CldsService.java b/src/main/java/org/onap/clamp/clds/service/CldsService.java
index bf7c502..e81cc15 100644
--- a/src/main/java/org/onap/clamp/clds/service/CldsService.java
+++ b/src/main/java/org/onap/clamp/clds/service/CldsService.java
@@ -26,7 +26,6 @@
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
-
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
@@ -35,11 +34,9 @@
import java.util.Date;
import java.util.List;
import java.util.UUID;
-
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.BadRequestException;
import javax.xml.transform.TransformerException;
-
import org.apache.camel.Produce;
import org.json.simple.parser.ParseException;
import org.onap.clamp.clds.camel.CamelProxy;
@@ -59,7 +56,7 @@
import org.onap.clamp.clds.model.ValueItem;
import org.onap.clamp.clds.model.properties.ModelProperties;
import org.onap.clamp.clds.model.sdc.SdcServiceInfo;
-import org.onap.clamp.clds.sdc.controller.installer.CsarInstallerImpl;
+import org.onap.clamp.clds.sdc.controller.installer.CsarInstaller;
import org.onap.clamp.clds.transform.XslTransformer;
import org.onap.clamp.clds.util.JsonUtils;
import org.onap.clamp.clds.util.LoggingUtils;
@@ -295,7 +292,7 @@
try {
// Method to call dcae inventory and invoke insert event method
if (cldsModel.canDcaeInventoryCall()
- && !cldsModel.getTemplateName().startsWith(CsarInstallerImpl.TEMPLATE_NAME_PREFIX)) {
+ && !cldsModel.getTemplateName().startsWith(CsarInstaller.TEMPLATE_NAME_PREFIX)) {
dcaeInventoryServices.setEventInventory(cldsModel, getUserId());
}
// This is a blocking call
diff --git a/src/main/java/org/onap/clamp/loop/CsarInstallerImpl.java b/src/main/java/org/onap/clamp/loop/LoopCsarInstaller.java
similarity index 94%
rename from src/main/java/org/onap/clamp/loop/CsarInstallerImpl.java
rename to src/main/java/org/onap/clamp/loop/LoopCsarInstaller.java
index f407aa9..0124aa7 100644
--- a/src/main/java/org/onap/clamp/loop/CsarInstallerImpl.java
+++ b/src/main/java/org/onap/clamp/loop/LoopCsarInstaller.java
@@ -51,9 +51,12 @@
import org.onap.clamp.policy.Policy;
import org.onap.clamp.policy.microservice.MicroServicePolicy;
import org.onap.clamp.policy.operational.OperationalPolicy;
+import org.onap.sdc.tosca.parser.api.ISdcCsarHelper;
import org.onap.sdc.tosca.parser.enums.SdcTypes;
import org.onap.sdc.toscaparser.api.NodeTemplate;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.yaml.snakeyaml.Yaml;
@@ -63,10 +66,11 @@
* There is no state kept by the bean. It's used to deploy the csar/notification
* received from SDC in DB.
*/
-public class CsarInstallerImpl implements CsarInstaller {
+@Component
+@Qualifier("loopInstaller")
+public class LoopCsarInstaller implements CsarInstaller {
- private static final EELFLogger logger = EELFManager.getInstance().getLogger(CsarInstallerImpl.class);
- public static final String TEMPLATE_NAME_PREFIX = "DCAE-Designer-Template-";
+ private static final EELFLogger logger = EELFManager.getInstance().getLogger(LoopCsarInstaller.class);
public static final String CONTROL_NAME_PREFIX = "ClosedLoop-";
public static final String GET_INPUT_BLUEPRINT_PARAM = "get_input";
// This will be used later as the policy scope
@@ -182,13 +186,14 @@
private JsonObject createModelPropertiesJson(CsarHandler csar) {
JsonObject modelProperties = new JsonObject();
Gson gson = new Gson();
+ ISdcCsarHelper csarHelper = csar.getSdcCsarHelper();
modelProperties.add("serviceDetails",
- gson.fromJson(gson.toJson(csar.getSdcCsarHelper().getServiceMetadataAllProperties()), JsonObject.class));
+ gson.fromJson(gson.toJson(csarHelper.getServiceMetadataAllProperties()), JsonObject.class));
JsonObject resourcesProp = new JsonObject();
for (SdcTypes type : SdcTypes.values()) {
JsonObject resourcesPropByType = new JsonObject();
- for (NodeTemplate nodeTemplate : csar.getSdcCsarHelper().getServiceNodeTemplateBySdcType(type)) {
+ for (NodeTemplate nodeTemplate : csarHelper.getServiceNodeTemplateBySdcType(type)) {
resourcesPropByType.add(nodeTemplate.getName(), JsonUtils.GSON_JPA_MODEL
.fromJson(new Gson().toJson(nodeTemplate.getMetaData().getAllProperties()), JsonObject.class));
}
diff --git a/src/main/resources/application-noaaf.properties b/src/main/resources/application-noaaf.properties
index 56ad7e8..89bd8a5 100644
--- a/src/main/resources/application-noaaf.properties
+++ b/src/main/resources/application-noaaf.properties
@@ -55,7 +55,7 @@
server.servlet.context-path=/
#Modified engine-rest applicationpath
-spring.profiles.active=clamp-default,clamp-default-user,clamp-sdc-controller
+spring.profiles.active=clamp-default,clamp-default-user,clamp-sdc-controller-new
spring.http.converters.preferred-json-mapper=gson
#The max number of active threads in this pool
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 6401202..3835056 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -5,6 +5,8 @@
# Copyright (C) 2017-2019 AT&T Intellectual Property. All rights
# reserved.
# ================================================================================
+# Modifications copyright (c) 2019 Nokia
+# ================================================================================\
# 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
@@ -72,7 +74,7 @@
server.servlet.context-path=/
#Modified engine-rest applicationpath
-spring.profiles.active=clamp-default,clamp-aaf-authentication,clamp-sdc-controller
+spring.profiles.active=clamp-default,clamp-aaf-authentication,clamp-sdc-controller-new
spring.http.converters.preferred-json-mapper=gson
#The max number of active threads in this pool
diff --git a/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java b/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java
index d3a823f..36d4eb8 100644
--- a/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java
+++ b/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java
@@ -5,6 +5,8 @@
* Copyright (C) 2018 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
+ * Modifications copyright (c) 2019 Nokia
+ * ===================================================================
* 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
@@ -60,6 +62,7 @@
import org.onap.sdc.toscaparser.api.elements.Metadata;
import org.skyscreamer.jsonassert.JSONAssert;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner;
@@ -74,8 +77,11 @@
private static final String INVARIANT_RESOURCE2_UUID = "023a3f0d-1161-45ff-b4cf-8918a8ccf3ad";
private static final String RESOURCE_INSTANCE_NAME_RESOURCE1 = "ResourceInstanceName1";
private static final String RESOURCE_INSTANCE_NAME_RESOURCE2 = "ResourceInstanceName2";
+
@Autowired
+ @Qualifier("oldModelInstaller")
private CsarInstaller csarInstaller;
+
@Autowired
private CldsDao cldsDao;
diff --git a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImplTest.java b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/LoopCsarInstallerTest.java
similarity index 99%
rename from src/test/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImplTest.java
rename to src/test/java/org/onap/clamp/clds/sdc/controller/installer/LoopCsarInstallerTest.java
index 17e27d5..e462455 100644
--- a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImplTest.java
+++ b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/LoopCsarInstallerTest.java
@@ -53,7 +53,7 @@
import org.springframework.core.io.Resource;
@RunWith(MockitoJUnitRunner.class)
-public class CsarInstallerImplTest {
+public class LoopCsarInstallerTest {
@Mock
private CsarHandler csarHandler;
diff --git a/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java b/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java
index 0cadef9..883945e 100644
--- a/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java
+++ b/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java
@@ -5,6 +5,8 @@
* Copyright (C) 2019 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
+ * Modifications copyright (c) 2019 Nokia
+ * ===================================================================
* 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
@@ -56,6 +58,7 @@
import org.onap.sdc.tosca.parser.impl.SdcToscaParserFactory;
import org.onap.sdc.toscaparser.api.elements.Metadata;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.ActiveProfiles;
@@ -77,6 +80,7 @@
private LoopsRepository loopsRepo;
@Autowired
+ @Qualifier("loopInstaller")
private CsarInstaller csarInstaller;
private BlueprintArtifact buildFakeBuildprintArtifact(String instanceName, String invariantResourceUuid,