summaryrefslogtreecommitdiffstats
path: root/src/test
diff options
context:
space:
mode:
authorxuegao <xg353y@intl.att.com>2020-01-27 15:21:59 +0100
committerSébastien Determe <sebastien.determe@intl.att.com>2020-01-30 11:51:18 +0000
commite0a8ab9bd315aecde32e0163c9d233ec29df9d51 (patch)
tree04c6afc93739642f8b02f2dfe55fcf37a5e652fd /src/test
parent1274833bdb3ef9eac728564bd9b1b687bf9f1727 (diff)
Update undeploy-loop flow
Update the undploy-loop flow to support the multiple blueprint deployment Issue-ID: CLAMP-627 Change-Id: Ic4187179e2ef2f574f8cc836eebc3608b8aee899 Signed-off-by: xuegao <xg353y@intl.att.com>
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/org/onap/clamp/loop/DeployFlowTestItCase.java70
-rw-r--r--src/test/resources/clds/camel/routes/dcae-flows.xml191
2 files changed, 176 insertions, 85 deletions
diff --git a/src/test/java/org/onap/clamp/loop/DeployFlowTestItCase.java b/src/test/java/org/onap/clamp/loop/DeployFlowTestItCase.java
index 3499babd..d7c2edad 100644
--- a/src/test/java/org/onap/clamp/loop/DeployFlowTestItCase.java
+++ b/src/test/java/org/onap/clamp/loop/DeployFlowTestItCase.java
@@ -119,6 +119,66 @@ public class DeployFlowTestItCase {
assertThat(loopAfterTest.getDcaeDeploymentId()).isNull();
}
+ @Test
+ @Transactional
+ public void undeployWithSingleBlueprintTest() throws JsonSyntaxException, IOException {
+ Loop loopTest = createLoop("ControlLoopTest", "<xml></xml>", "yamlcontent", "{\"testname\":\"testvalue\"}",
+ "UUID-blueprint");
+ LoopTemplate template = new LoopTemplate();
+ template.setName("templateName");
+ template.setBlueprint("yamlcontent");
+ loopTest.setLoopTemplate(template);
+ loopTest.setDcaeDeploymentId("testDeploymentId");
+ loopTest.setDcaeDeploymentStatusUrl("testUrl");
+ MicroServicePolicy microServicePolicy = getMicroServicePolicy("configPolicyTest", "",
+ "{\"configtype\":\"json\"}", "tosca_definitions_version: tosca_simple_yaml_1_0_0",
+ "{\"param1\":\"value1\"}", true);
+ loopTest.addMicroServicePolicy(microServicePolicy);
+ loopService.saveOrUpdateLoop(loopTest);
+ Exchange myCamelExchange = ExchangeBuilder.anExchange(camelContext)
+ .withProperty("loopObject", loopTest).build();
+
+ camelContext.createProducerTemplate()
+ .send("direct:undeploy-loop", myCamelExchange);
+
+ Loop loopAfterTest = loopService.getLoop("ControlLoopTest");
+ assertThat(loopAfterTest.getDcaeDeploymentStatusUrl().contains("/uninstall")).isTrue();
+ }
+
+ @Test
+ @Transactional
+ public void undeployWithMultipleBlueprintTest() throws JsonSyntaxException, IOException {
+ Loop loopTest2 = createLoop("ControlLoopTest2", "<xml></xml>", "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");
+ 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");
+ loopTest2.addMicroServicePolicy(microServicePolicy1);
+ loopTest2.addMicroServicePolicy(microServicePolicy2);
+ loopService.saveOrUpdateLoop(loopTest2);
+ Exchange myCamelExchange = ExchangeBuilder.anExchange(camelContext)
+ .withProperty("loopObject", loopTest2).build();
+
+ camelContext.createProducerTemplate()
+ .send("direct:undeploy-loop", myCamelExchange);
+
+ Loop loopAfterTest = loopService.getLoop("ControlLoopTest2");
+ Set<MicroServicePolicy> policyList = loopAfterTest.getMicroServicePolicies();
+ for (MicroServicePolicy policy : policyList) {
+ assertThat(policy.getDcaeDeploymentStatusUrl().contains("/uninstall")).isTrue();
+ }
+ assertThat(loopAfterTest.getDcaeDeploymentStatusUrl()).isNull();
+ assertThat(loopAfterTest.getDcaeDeploymentId()).isNull();
+ }
+
private Loop createLoop(String name, String svgRepresentation, String blueprint, String globalPropertiesJson,
String dcaeBlueprintId) throws JsonSyntaxException, IOException {
Loop loop = new Loop(name, blueprint, svgRepresentation);
@@ -135,4 +195,14 @@ public class DeployFlowTestItCase {
microService.setConfigurationsJson(new Gson().fromJson(jsonProperties, JsonObject.class));
return microService;
}
+
+ 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);
+
+ microService.setDcaeDeploymentId(deploymengId);
+ microService.setDcaeDeploymentStatusUrl(deploymentStatusUrl);
+ return microService;
+ }
}
diff --git a/src/test/resources/clds/camel/routes/dcae-flows.xml b/src/test/resources/clds/camel/routes/dcae-flows.xml
index 552f0212..48cda7a0 100644
--- a/src/test/resources/clds/camel/routes/dcae-flows.xml
+++ b/src/test/resources/clds/camel/routes/dcae-flows.xml
@@ -81,8 +81,9 @@
<constant>false</constant>
</handled>
<setProperty propertyName="logMessage">
- <simple>DEPLOY loop status
- (Dep-id:${exchangeProperty[dcaeDeploymentId]},
+ <simple>DEPLOY micro service failed
+ (MicroService name:${exchangeProperty[microServicePolicy].getName()}),
+ Dep-id:${exchangeProperty[dcaeDeploymentId]},
StatusUrl:${exchangeProperty[dcaeStatusUrl]})
</simple>
</setProperty>
@@ -98,88 +99,6 @@
</doFinally>
</doTry>
</route>
- <!--<route id="deploy-loop-multi-blueprint">
- <from uri="direct:deploy-loop-multi-blueprint" />
-
-
- <doTry>
- <split>
- <doTry>
- <simple>${exchangeProperty[loopObject].getMicroServicePolicies()}
- </simple>
- <setProperty propertyName="microServicePolicy">
- <simple>${body}</simple>
- </setProperty>
- <log
- loggingLevel="INFO"
- message="Processing Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}" />
- <setProperty propertyName="raiseHttpExceptionFlag">
- <simple resultType="java.lang.Boolean">false</simple>
- </setProperty>
- <setBody>
- <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
- method="getDeployPayload(${exchangeProperty[loopObject]},${exchangeProperty[microServicePolicy].getName())" />
- </setBody>
- <setProperty propertyName="dcaeDeploymentId">
- <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
- method="generateDeploymentId()" />
- </setProperty>
- <setHeader headerName="CamelHttpMethod">
- <constant>PUT</constant>
- </setHeader>
- <setHeader headerName="Content-Type">
- <constant>application/json</constant>
- </setHeader>
- <setHeader headerName="X-ONAP-RequestID">
- <simple>${exchangeProperty[X-ONAP-RequestID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-InvocationID">
- <simple>${exchangeProperty[X-ONAP-InvocationID]}
- </simple>
- </setHeader>
- <setHeader headerName="X-ONAP-PartnerName">
- <simple>${exchangeProperty[X-ONAP-PartnerName]}
- </simple>
- </setHeader>
- <log loggingLevel="INFO"
- message="Endpoint to deploy loop: {{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[dcaeDeploymentId]}"></log>
- <toD
- uri="{{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[dcaeDeploymentId]}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=300000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
- <convertBodyTo type="java.lang.String" />
- <setProperty propertyName="dcaeResponse">
- <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
- method="convertDcaeResponse(${body})" />
- </setProperty>
- <setProperty propertyName="dcaeStatusUrl">
- <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
- method="getStatusUrl(${exchangeProperty[dcaeResponse]})" />
- </setProperty>
- <to
- uri="bean:org.onap.clamp.loop.LoopService?method=updateDcaeDeploymentFields(${exchangeProperty[loopObject]},${exchangeProperty[microServicePolicy].getName(),${exchangeProperty[dcaeDeploymentId]},${exchangeProperty[dcaeStatusUrl]})" />
- <doFinally>
- <to uri="direct:reset-raise-http-exception-flag" />
- <setProperty propertyName="logMessage">
- <simple>DEPLOY loop status
- (Dep-id:${exchangeProperty[dcaeDeploymentId]},
- StatusUrl:${exchangeProperty[dcaeStatusUrl]})
- </simple>
- </setProperty>
- <setProperty propertyName="logComponent">
- <simple>DCAE</simple>
- </setProperty>
- <to uri="direct:dump-loop-log-http-response" />
- </doFinally>
- </doTry>
-
- </split>
- <doFinally>
- <to uri="direct:reset-raise-http-exception-flag" />
- <to
- uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
- </doFinally>
- </doTry>
- </route>-->
<route id="deploy-loop-single-blueprint">
<from uri="direct:deploy-loop-single-blueprint" />
<doTry>
@@ -249,6 +168,109 @@
</route>
<route id="undeploy-loop">
<from uri="direct:undeploy-loop" />
+ <choice>
+ <when>
+ <simple>${exchangeProperty['loopObject'].getLoopTemplate().getBlueprint()} != null
+ </simple>
+ <to uri="direct:undeploy-loop-single-blueprint" />
+ </when>
+ <when>
+ <simple>${exchangeProperty['loopObject'].getLoopTemplate().getBlueprint()} == null
+ </simple>
+ <to uri="direct:undeploy-loop-multi-blueprint" />
+ </when>
+ </choice>
+ </route>
+ <route id="undeploy-loop-multi-blueprint">
+ <from uri="direct:undeploy-loop-multi-blueprint" />
+ <doTry>
+ <log loggingLevel="INFO"
+ message="Undeploying the blueprints for loop: ${exchangeProperty[loopObject].getName()}" />
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Undeploying the loop with multiple blueprints')" />
+ <split>
+ <simple>${exchangeProperty[loopObject].getMicroServicePolicies()}
+ </simple>
+ <setProperty propertyName="microServicePolicy">
+ <simple>${body}</simple>
+ </setProperty>
+ <log
+ loggingLevel="INFO"
+ message="Processing Micro Service Policy: ${exchangeProperty[microServicePolicy].getName()}" />
+ <choice>
+ <when>
+ <simple>${exchangeProperty[microServicePolicy].getDcaeDeploymentId()} != null
+ </simple>
+ <setBody>
+ <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
+ method="getUndeployPayload(${exchangeProperty[microServicePolicy]})" />
+ </setBody>
+ <setHeader headerName="CamelHttpMethod">
+ <constant>DELETE</constant>
+ </setHeader>
+ <setHeader headerName="Content-Type">
+ <constant>application/json</constant>
+ </setHeader>
+ <setHeader headerName="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to undeploy loop: {{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[microServicePolicy].getDcaeDeploymentId()}"></log>
+ <toD
+ uri="{{clamp.config.dcae.deployment.url}}/dcae-deployments/${exchangeProperty[microServicePolicy].getDcaeDeploymentId()}?bridgeEndpoint=true&amp;useSystemProperties=true&amp;mapHttpMessageHeaders=false&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=300000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
+ <convertBodyTo type="java.lang.String" />
+ <setProperty propertyName="dcaeResponse">
+ <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
+ method="convertDcaeResponse(${body})" />
+ </setProperty>
+ <setProperty propertyName="dcaeStatusUrl">
+ <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
+ method="getStatusUrl(${exchangeProperty[dcaeResponse]})" />
+ </setProperty>
+ <to
+ uri="bean:org.onap.clamp.policy.microservice.MicroServicePolicyService?method=updateDcaeDeploymentFields(${exchangeProperty[microServicePolicy]},${exchangeProperty[microServicePolicy].getDcaeDeploymentId()},${exchangeProperty[dcaeStatusUrl]})" />
+ </when>
+ <otherwise>
+ <log loggingLevel="WARNING"
+ message="Cannot Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()}, the Deployment ID does not exist !" />
+ <to
+ uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Cannot Undeploy for the micro service: ${exchangeProperty[microServicePolicy].getName()}, the Deployment ID does not exist !','WARNING',${exchangeProperty[loopObject]})" />
+ </otherwise>
+ </choice>
+ </split>
+ <doCatch>
+ <exception>java.lang.Exception</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <setProperty propertyName="logMessage">
+ <simple>UNDEPLOY micro service failed
+ (MicroService name:${exchangeProperty[microServicePolicy].getName()})
+ </simple>
+ </setProperty>
+ <setProperty propertyName="logComponent">
+ <simple>DCAE</simple>
+ </setProperty>
+ <to uri="direct:dump-loop-log-http-response" />
+ </doCatch>
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag" />
+ <to
+ uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
+ </doFinally>
+ </doTry>
+ </route>
+ <route id="undeploy-loop-single-blueprint">
+ <from uri="direct:undeploy-loop-single-blueprint" />
<log loggingLevel="INFO"
message="Undeploying the loop: ${exchangeProperty[loopObject].getName()} : ${exchangeProperty[loopObject].getDcaeDeploymentId()}" />
<to
@@ -316,7 +338,6 @@
message="Cannot Undeploy for the loop: ${exchangeProperty[loopObject].getName()}, the Deployment ID does not exist !" />
<to
uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('Cannot Undeploy for the loop: ${exchangeProperty[loopObject].getName()}, the Deployment ID does not exist !','WARNING',${exchangeProperty[loopObject]})" />
-
</otherwise>
</choice>
</route>