From b9a6531c7a5cfc5a9a544a21fe8c47914be9699b Mon Sep 17 00:00:00 2001 From: sebdet Date: Tue, 28 Jan 2020 16:28:21 +0100 Subject: Change the Csar installer Change the csar installer so that it installs a loop template instead of a loop object Issue-ID: CLAMP-592 Change-Id: I757f6411ce959573fcb3a82e48359a1a44f87410 Signed-off-by: sebdet --- .../org/onap/clamp/loop/CsarInstallerItCase.java | 75 +++++++++++---------- .../org/onap/clamp/loop/DcaeComponentTest.java | 2 +- .../org/onap/clamp/loop/DeployFlowTestItCase.java | 76 ++++++++++------------ .../onap/clamp/loop/LoopControllerTestItCase.java | 2 +- .../onap/clamp/loop/LoopLogServiceTestItCase.java | 4 +- .../onap/clamp/loop/LoopRepositoriesItCase.java | 4 +- .../org/onap/clamp/loop/LoopServiceTestItCase.java | 3 +- .../java/org/onap/clamp/loop/LoopToJsonTest.java | 3 +- .../onap/clamp/loop/PolicyModelServiceItCase.java | 9 ++- 9 files changed, 88 insertions(+), 90 deletions(-) (limited to 'src/test/java') diff --git a/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java b/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java index 2ebea7b17..70adf3eef 100644 --- a/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java +++ b/src/test/java/org/onap/clamp/loop/CsarInstallerItCase.java @@ -51,7 +51,11 @@ import org.onap.clamp.clds.sdc.controller.installer.CsarHandler; import org.onap.clamp.clds.util.JsonUtils; import org.onap.clamp.clds.util.ResourceFileUtil; import org.onap.clamp.loop.service.ServiceRepository; -import org.onap.clamp.policy.microservice.MicroServicePolicy; +import org.onap.clamp.loop.template.LoopTemplate; +import org.onap.clamp.loop.template.LoopTemplateLoopElementModel; +import org.onap.clamp.loop.template.LoopTemplatesRepository; +import org.onap.clamp.loop.template.PolicyModelId; +import org.onap.clamp.loop.template.PolicyModelsRepository; import org.onap.sdc.api.notification.IArtifactInfo; import org.onap.sdc.api.notification.INotificationData; import org.onap.sdc.api.notification.IResourceInstance; @@ -80,11 +84,14 @@ public class CsarInstallerItCase { private static final String RESOURCE_INSTANCE_NAME_RESOURCE2 = "ResourceInstanceName2"; @Autowired - private LoopsRepository loopsRepo; + private LoopTemplatesRepository loopTemplatesRepo; @Autowired ServiceRepository serviceRepository; + @Autowired + PolicyModelsRepository policyModelsRepository; + @Autowired @Qualifier("csarInstaller") private CsarInstaller csarInstaller; @@ -189,42 +196,44 @@ public class CsarInstallerItCase { String generatedName = RandomStringUtils.randomAlphanumeric(5); CsarHandler csar = buildFakeCsarHandler(generatedName); csarInstaller.installTheCsar(csar); - assertThat(serviceRepository - .existsById("63cac700-ab9a-4115-a74f-7eac85e3fce0")).isTrue(); - assertThat(loopsRepo - .existsById(Loop.generateLoopName(generatedName, "1.0", RESOURCE_INSTANCE_NAME_RESOURCE1, "tca.yaml"))) - .isTrue(); - assertThat(loopsRepo.existsById( - Loop.generateLoopName(generatedName, "1.0", RESOURCE_INSTANCE_NAME_RESOURCE1, "tca_3.yaml"))).isTrue(); - assertThat(loopsRepo.existsById( - Loop.generateLoopName(generatedName, "1.0", RESOURCE_INSTANCE_NAME_RESOURCE2, "tca_2.yaml"))).isTrue(); + assertThat(serviceRepository.existsById("63cac700-ab9a-4115-a74f-7eac85e3fce0")).isTrue(); + assertThat(loopTemplatesRepo.existsById(LoopTemplate.generateLoopTemplateName(generatedName, "1.0", + RESOURCE_INSTANCE_NAME_RESOURCE1, "tca.yaml"))).isTrue(); + assertThat(loopTemplatesRepo.existsById(LoopTemplate.generateLoopTemplateName(generatedName, "1.0", + RESOURCE_INSTANCE_NAME_RESOURCE1, "tca_3.yaml"))).isTrue(); + assertThat(loopTemplatesRepo.existsById(LoopTemplate.generateLoopTemplateName(generatedName, "1.0", + RESOURCE_INSTANCE_NAME_RESOURCE2, "tca_2.yaml"))).isTrue(); // Verify now that policy and json representation, global properties are well // set - Loop loop = loopsRepo - .findById(Loop.generateLoopName(generatedName, "1.0", RESOURCE_INSTANCE_NAME_RESOURCE1, "tca.yaml")) - .get(); - assertThat(loop.getSvgRepresentation()).startsWith(""); + Loop loopTest = new Loop("ControlLoopTest", ""); loopTest.setGlobalPropertiesJson( new Gson().fromJson("{\"dcaeDeployParameters\":" + "{\"policy_id\": \"name\"}}", JsonObject.class)); loopTest.setLastComputedState(LoopState.DESIGN); diff --git a/src/test/java/org/onap/clamp/loop/DeployFlowTestItCase.java b/src/test/java/org/onap/clamp/loop/DeployFlowTestItCase.java index d7c2edadc..e23dcf186 100644 --- a/src/test/java/org/onap/clamp/loop/DeployFlowTestItCase.java +++ b/src/test/java/org/onap/clamp/loop/DeployFlowTestItCase.java @@ -47,7 +47,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; - @RunWith(SpringRunner.class) @SpringBootTest(classes = Application.class) public class DeployFlowTestItCase { @@ -63,7 +62,7 @@ public class DeployFlowTestItCase { @Transactional public void deployWithSingleBlueprintTest() throws JsonSyntaxException, IOException { Loop loopTest = createLoop("ControlLoopTest", "", "yamlcontent", "{\"testname\":\"testvalue\"}", - "UUID-blueprint"); + "UUID-blueprint"); LoopTemplate template = new LoopTemplate(); template.setName("templateName"); template.setBlueprint("yamlcontent"); @@ -73,11 +72,10 @@ public class DeployFlowTestItCase { "{\"param1\":\"value1\"}", true); loopTest.addMicroServicePolicy(microServicePolicy); loopService.saveOrUpdateLoop(loopTest); - Exchange myCamelExchange = ExchangeBuilder.anExchange(camelContext) - .withProperty("loopObject", loopTest).build(); + Exchange myCamelExchange = ExchangeBuilder.anExchange(camelContext).withProperty("loopObject", loopTest) + .build(); - camelContext.createProducerTemplate() - .send("direct:deploy-loop", myCamelExchange); + camelContext.createProducerTemplate().send("direct:deploy-loop", myCamelExchange); Loop loopAfterTest = loopService.getLoop("ControlLoopTest"); assertThat(loopAfterTest.getDcaeDeploymentStatusUrl()).isNotNull(); @@ -88,26 +86,23 @@ public class DeployFlowTestItCase { @Transactional public void deployWithMultipleBlueprintTest() throws JsonSyntaxException, IOException { Loop loopTest2 = createLoop("ControlLoopTest2", "", "yamlcontent", "{\"dcaeDeployParameters\": {" - + "\"microService1\": {\"location_id\": \"\", \"policy_id\": \"TCA_h2NMX_v1_0_ResourceInstanceName1_tca\"}," - + "\"microService2\": {\"location_id\": \"\", \"policy_id\": \"TCA_h2NMX_v1_0_ResourceInstanceName2_tca\"}" - + "}}", "UUID-blueprint"); + + "\"microService1\": {\"location_id\": \"\", \"policy_id\": \"TCA_h2NMX_v1_0_ResourceInstanceName1_tca\"}," + + "\"microService2\": {\"location_id\": \"\", \"policy_id\": \"TCA_h2NMX_v1_0_ResourceInstanceName2_tca\"}" + + "}}", "UUID-blueprint"); LoopTemplate template = new LoopTemplate(); template.setName("templateName"); loopTest2.setLoopTemplate(template); - MicroServicePolicy microServicePolicy1 = getMicroServicePolicy("microService1", "", - "{\"configtype\":\"json\"}", "tosca_definitions_version: tosca_simple_yaml_1_0_0", - "{\"param1\":\"value1\"}", true); - MicroServicePolicy microServicePolicy2 = getMicroServicePolicy("microService2", "", - "{\"configtype\":\"json\"}", "tosca_definitions_version: tosca_simple_yaml_1_0_0", - "{\"param1\":\"value1\"}", true); + MicroServicePolicy microServicePolicy1 = getMicroServicePolicy("microService1", "", "{\"configtype\":\"json\"}", + "tosca_definitions_version: tosca_simple_yaml_1_0_0", "{\"param1\":\"value1\"}", true); + MicroServicePolicy microServicePolicy2 = getMicroServicePolicy("microService2", "", "{\"configtype\":\"json\"}", + "tosca_definitions_version: tosca_simple_yaml_1_0_0", "{\"param1\":\"value1\"}", true); loopTest2.addMicroServicePolicy(microServicePolicy1); loopTest2.addMicroServicePolicy(microServicePolicy2); loopService.saveOrUpdateLoop(loopTest2); - Exchange myCamelExchange = ExchangeBuilder.anExchange(camelContext) - .withProperty("loopObject", loopTest2).build(); + Exchange myCamelExchange = ExchangeBuilder.anExchange(camelContext).withProperty("loopObject", loopTest2) + .build(); - camelContext.createProducerTemplate() - .send("direct:deploy-loop", myCamelExchange); + camelContext.createProducerTemplate().send("direct:deploy-loop", myCamelExchange); Loop loopAfterTest = loopService.getLoop("ControlLoopTest2"); Set policyList = loopAfterTest.getMicroServicePolicies(); @@ -123,7 +118,7 @@ public class DeployFlowTestItCase { @Transactional public void undeployWithSingleBlueprintTest() throws JsonSyntaxException, IOException { Loop loopTest = createLoop("ControlLoopTest", "", "yamlcontent", "{\"testname\":\"testvalue\"}", - "UUID-blueprint"); + "UUID-blueprint"); LoopTemplate template = new LoopTemplate(); template.setName("templateName"); template.setBlueprint("yamlcontent"); @@ -135,11 +130,10 @@ public class DeployFlowTestItCase { "{\"param1\":\"value1\"}", true); loopTest.addMicroServicePolicy(microServicePolicy); loopService.saveOrUpdateLoop(loopTest); - Exchange myCamelExchange = ExchangeBuilder.anExchange(camelContext) - .withProperty("loopObject", loopTest).build(); + Exchange myCamelExchange = ExchangeBuilder.anExchange(camelContext).withProperty("loopObject", loopTest) + .build(); - camelContext.createProducerTemplate() - .send("direct:undeploy-loop", myCamelExchange); + camelContext.createProducerTemplate().send("direct:undeploy-loop", myCamelExchange); Loop loopAfterTest = loopService.getLoop("ControlLoopTest"); assertThat(loopAfterTest.getDcaeDeploymentStatusUrl().contains("/uninstall")).isTrue(); @@ -149,26 +143,25 @@ public class DeployFlowTestItCase { @Transactional public void undeployWithMultipleBlueprintTest() throws JsonSyntaxException, IOException { Loop loopTest2 = createLoop("ControlLoopTest2", "", "yamlcontent", "{\"dcaeDeployParameters\": {" - + "\"microService1\": {\"location_id\": \"\", \"policy_id\": \"TCA_h2NMX_v1_0_ResourceInstanceName1_tca\"}," - + "\"microService2\": {\"location_id\": \"\", \"policy_id\": \"TCA_h2NMX_v1_0_ResourceInstanceName2_tca\"}" - + "}}", "UUID-blueprint"); + + "\"microService1\": {\"location_id\": \"\", \"policy_id\": \"TCA_h2NMX_v1_0_ResourceInstanceName1_tca\"}," + + "\"microService2\": {\"location_id\": \"\", \"policy_id\": \"TCA_h2NMX_v1_0_ResourceInstanceName2_tca\"}" + + "}}", "UUID-blueprint"); LoopTemplate template = new LoopTemplate(); template.setName("templateName"); loopTest2.setLoopTemplate(template); - MicroServicePolicy microServicePolicy1 = getMicroServicePolicy("microService1", "", - "{\"configtype\":\"json\"}", "tosca_definitions_version: tosca_simple_yaml_1_0_0", - "{\"param1\":\"value1\"}", true, "testDeploymentId1", "testDeploymentStatusUrl1"); - MicroServicePolicy microServicePolicy2 = getMicroServicePolicy("microService2", "", - "{\"configtype\":\"json\"}", "tosca_definitions_version: tosca_simple_yaml_1_0_0", - "{\"param1\":\"value1\"}", true, "testDeploymentId2", "testDeploymentStatusUrl2"); + MicroServicePolicy microServicePolicy1 = getMicroServicePolicy("microService1", "", "{\"configtype\":\"json\"}", + "tosca_definitions_version: tosca_simple_yaml_1_0_0", "{\"param1\":\"value1\"}", true, + "testDeploymentId1", "testDeploymentStatusUrl1"); + MicroServicePolicy microServicePolicy2 = getMicroServicePolicy("microService2", "", "{\"configtype\":\"json\"}", + "tosca_definitions_version: tosca_simple_yaml_1_0_0", "{\"param1\":\"value1\"}", true, + "testDeploymentId2", "testDeploymentStatusUrl2"); loopTest2.addMicroServicePolicy(microServicePolicy1); loopTest2.addMicroServicePolicy(microServicePolicy2); loopService.saveOrUpdateLoop(loopTest2); - Exchange myCamelExchange = ExchangeBuilder.anExchange(camelContext) - .withProperty("loopObject", loopTest2).build(); + Exchange myCamelExchange = ExchangeBuilder.anExchange(camelContext).withProperty("loopObject", loopTest2) + .build(); - camelContext.createProducerTemplate() - .send("direct:undeploy-loop", myCamelExchange); + camelContext.createProducerTemplate().send("direct:undeploy-loop", myCamelExchange); Loop loopAfterTest = loopService.getLoop("ControlLoopTest2"); Set policyList = loopAfterTest.getMicroServicePolicies(); @@ -181,7 +174,7 @@ public class DeployFlowTestItCase { private Loop createLoop(String name, String svgRepresentation, String blueprint, String globalPropertiesJson, String dcaeBlueprintId) throws JsonSyntaxException, IOException { - Loop loop = new Loop(name, blueprint, svgRepresentation); + Loop loop = new Loop(name, svgRepresentation); loop.setGlobalPropertiesJson(new Gson().fromJson(globalPropertiesJson, JsonObject.class)); loop.setLastComputedState(LoopState.DESIGN); loop.setDcaeBlueprintId(dcaeBlueprintId); @@ -197,9 +190,10 @@ public class DeployFlowTestItCase { } private MicroServicePolicy getMicroServicePolicy(String name, String modelType, String jsonRepresentation, - String policyTosca, String jsonProperties, boolean shared, String deploymengId, String deploymentStatusUrl) { - MicroServicePolicy microService = getMicroServicePolicy(name, modelType, jsonRepresentation, - policyTosca, jsonProperties, shared); + String policyTosca, String jsonProperties, boolean shared, String deploymengId, + String deploymentStatusUrl) { + MicroServicePolicy microService = getMicroServicePolicy(name, modelType, jsonRepresentation, policyTosca, + jsonProperties, shared); microService.setDcaeDeploymentId(deploymengId); microService.setDcaeDeploymentStatusUrl(deploymentStatusUrl); diff --git a/src/test/java/org/onap/clamp/loop/LoopControllerTestItCase.java b/src/test/java/org/onap/clamp/loop/LoopControllerTestItCase.java index a41b5c251..ad37bcc88 100644 --- a/src/test/java/org/onap/clamp/loop/LoopControllerTestItCase.java +++ b/src/test/java/org/onap/clamp/loop/LoopControllerTestItCase.java @@ -72,7 +72,7 @@ public class LoopControllerTestItCase { } private Loop createTestLoop(String loopName, String loopBlueprint, String loopSvg) { - return new Loop(loopName, loopBlueprint, loopSvg); + return new Loop(loopName, loopSvg); } @Test diff --git a/src/test/java/org/onap/clamp/loop/LoopLogServiceTestItCase.java b/src/test/java/org/onap/clamp/loop/LoopLogServiceTestItCase.java index c172a9a07..15b9cb43a 100644 --- a/src/test/java/org/onap/clamp/loop/LoopLogServiceTestItCase.java +++ b/src/test/java/org/onap/clamp/loop/LoopLogServiceTestItCase.java @@ -62,7 +62,7 @@ public class LoopLogServiceTestItCase { LoopLogService loopLogService; private void saveTestLoopToDb() { - Loop testLoop = new Loop(EXAMPLE_LOOP_NAME, BLUEPRINT, SVG_REPRESENTATION); + Loop testLoop = new Loop(EXAMPLE_LOOP_NAME, SVG_REPRESENTATION); testLoop.setGlobalPropertiesJson(JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class)); loopService.saveOrUpdateLoop(testLoop); } @@ -88,7 +88,7 @@ public class LoopLogServiceTestItCase { log.setLogComponent(CLAMP_COMPONENT); log.setLogType(LogType.INFO); log.setMessage(SAMPLE_LOG_MESSAGE); - Loop testLoop = new Loop(EXAMPLE_LOOP_NAME, BLUEPRINT, SVG_REPRESENTATION); + Loop testLoop = new Loop(EXAMPLE_LOOP_NAME, SVG_REPRESENTATION); log.setLoop(testLoop); assertThat(log.getMessage()).isEqualTo(SAMPLE_LOG_MESSAGE); assertThat(log.getLogType()).isEqualTo(LogType.INFO); diff --git a/src/test/java/org/onap/clamp/loop/LoopRepositoriesItCase.java b/src/test/java/org/onap/clamp/loop/LoopRepositoriesItCase.java index e0c112cb5..891d23b46 100644 --- a/src/test/java/org/onap/clamp/loop/LoopRepositoriesItCase.java +++ b/src/test/java/org/onap/clamp/loop/LoopRepositoriesItCase.java @@ -121,7 +121,6 @@ public class LoopRepositoriesItCase { Loop loop = new Loop(); loop.setName(name); loop.setSvgRepresentation(svgRepresentation); - loop.setBlueprint(blueprint); loop.setGlobalPropertiesJson(new Gson().fromJson(globalPropertiesJson, JsonObject.class)); loop.setLastComputedState(LoopState.DESIGN); loop.setDcaeDeploymentId(dcaeId); @@ -215,11 +214,10 @@ public class LoopRepositoriesItCase { // Attempt an update ((LoopLog) loopInDbRetrieved.getLoopLogs().toArray()[0]).setLogInstant(Instant.now()); - loopInDbRetrieved.setBlueprint("yaml2"); + loopInDbRetrieved.setSvgRepresentation(""); Loop loopInDbRetrievedUpdated = loopRepository.saveAndFlush(loopInDbRetrieved); // Loop loopInDbRetrievedUpdated = // loopRepository.findById(loopTest.getName()).get(); - assertThat(loopInDbRetrievedUpdated.getBlueprint()).isEqualTo("yaml2"); assertThat((LoopLog) loopInDbRetrievedUpdated.getLoopLogs().toArray()[0]) .isEqualToComparingFieldByField(loopInDbRetrieved.getLoopLogs().toArray()[0]); // UpdatedDate should have been changed diff --git a/src/test/java/org/onap/clamp/loop/LoopServiceTestItCase.java b/src/test/java/org/onap/clamp/loop/LoopServiceTestItCase.java index 338aaa3eb..615826eda 100644 --- a/src/test/java/org/onap/clamp/loop/LoopServiceTestItCase.java +++ b/src/test/java/org/onap/clamp/loop/LoopServiceTestItCase.java @@ -87,7 +87,6 @@ public class LoopServiceTestItCase { assertThat(actualLoop).isNotNull(); assertThat(actualLoop).isEqualTo(loopsRepository.findById(actualLoop.getName()).get()); assertThat(actualLoop.getName()).isEqualTo(EXAMPLE_LOOP_NAME); - assertThat(actualLoop.getBlueprint()).isEqualTo(loopBlueprint); assertThat(actualLoop.getSvgRepresentation()).isEqualTo(loopSvg); assertThat(actualLoop.getGlobalPropertiesJson().getAsJsonPrimitive("testName").getAsString()) .isEqualTo("testValue"); @@ -354,6 +353,6 @@ public class LoopServiceTestItCase { } private Loop createTestLoop(String loopName, String loopBlueprint, String loopSvg) { - return new Loop(loopName, loopBlueprint, loopSvg); + return new Loop(loopName, loopSvg); } } \ No newline at end of file diff --git a/src/test/java/org/onap/clamp/loop/LoopToJsonTest.java b/src/test/java/org/onap/clamp/loop/LoopToJsonTest.java index af8f2271b..052b97124 100644 --- a/src/test/java/org/onap/clamp/loop/LoopToJsonTest.java +++ b/src/test/java/org/onap/clamp/loop/LoopToJsonTest.java @@ -61,7 +61,7 @@ public class LoopToJsonTest { private Loop getLoop(String name, String svgRepresentation, String blueprint, String globalPropertiesJson, String dcaeId, String dcaeUrl, String dcaeBlueprintId) throws JsonSyntaxException, IOException { - Loop loop = new Loop(name, blueprint, svgRepresentation); + Loop loop = new Loop(name, svgRepresentation); loop.setGlobalPropertiesJson(new Gson().fromJson(globalPropertiesJson, JsonObject.class)); loop.setLastComputedState(LoopState.DESIGN); loop.setDcaeDeploymentId(dcaeId); @@ -134,7 +134,6 @@ public class LoopToJsonTest { assertThat(loopTestDeserialized.getComponent("POLICY").getState()).isEqualToComparingOnlyGivenFields( loopTest.getComponent("POLICY").getState(), "stateName", "description"); // svg and blueprint not exposed so wont be deserialized - assertThat(loopTestDeserialized.getBlueprint()).isEqualTo(null); assertThat(loopTestDeserialized.getSvgRepresentation()).isEqualTo(null); assertThat(loopTestDeserialized.getOperationalPolicies()).containsExactly(opPolicy); diff --git a/src/test/java/org/onap/clamp/loop/PolicyModelServiceItCase.java b/src/test/java/org/onap/clamp/loop/PolicyModelServiceItCase.java index 39468a1c7..f8c1d8662 100644 --- a/src/test/java/org/onap/clamp/loop/PolicyModelServiceItCase.java +++ b/src/test/java/org/onap/clamp/loop/PolicyModelServiceItCase.java @@ -111,8 +111,7 @@ public class PolicyModelServiceItCase { policyModelsService.saveOrUpdatePolicyModel(policyModel2); List policyModelTypesList = policyModelsService.getAllPolicyModelTypes(); - assertThat(policyModelTypesList).containsOnly(policyModel1.getPolicyModelType(), - policyModel2.getPolicyModelType()); + assertThat(policyModelTypesList).contains(policyModel1.getPolicyModelType(), policyModel2.getPolicyModelType()); } @Test @@ -125,7 +124,7 @@ public class PolicyModelServiceItCase { "VARIANT", "user"); policyModelsService.saveOrUpdatePolicyModel(policyModel2); - assertThat(policyModelsService.getAllPolicyModels()).containsOnly(policyModel1, policyModel2); + assertThat(policyModelsService.getAllPolicyModels()).contains(policyModel1, policyModel2); } @Test @@ -138,7 +137,7 @@ public class PolicyModelServiceItCase { "VARIANT", "user"); policyModelsService.saveOrUpdatePolicyModel(policyModel2); - assertThat(policyModelsService.getAllPolicyModelsByType(POLICY_MODEL_TYPE_2)).containsOnly(policyModel1, + assertThat(policyModelsService.getAllPolicyModelsByType(POLICY_MODEL_TYPE_2)).contains(policyModel1, policyModel2); } @@ -154,6 +153,6 @@ public class PolicyModelServiceItCase { SortedSet sortedSet = new TreeSet<>(); policyModelsService.getAllPolicyModels().forEach(sortedSet::add); - assertThat(sortedSet).containsExactly(policyModel2, policyModel1); + assertThat(sortedSet).contains(policyModel2, policyModel1); } } -- cgit 1.2.3-korg