summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsebdet <sebastien.determe@intl.att.com>2019-05-09 16:50:17 +0200
committersebdet <sebastien.determe@intl.att.com>2019-05-09 17:05:36 +0200
commitaa7fd8ddced2e3218fa85e131e1eff59ff33e22f (patch)
tree4ee111943c0b1054c647d576c371c440ea724017
parentce3e2f425911b6a4cc68e61b482bcd73a2cff8a4 (diff)
Generate Random UUID for DCAE
Generate random UUI for DCAE deployment during deploy action Issue-ID: CLAMP-376 Change-Id: Idfc1959891738f0142d2c20e1f43f1ad45d8eaa7 Signed-off-by: sebdet <sebastien.determe@intl.att.com>
-rw-r--r--src/main/java/org/onap/clamp/loop/LoopOperation.java74
-rw-r--r--src/main/resources/clds/camel/rest/clamp-api-v2.xml4
-rw-r--r--src/main/resources/clds/camel/routes/flexible-flow.xml12
-rw-r--r--src/test/java/org/onap/clamp/loop/LoopOperationTestItCase.java23
4 files changed, 66 insertions, 47 deletions
diff --git a/src/main/java/org/onap/clamp/loop/LoopOperation.java b/src/main/java/org/onap/clamp/loop/LoopOperation.java
index 518830aa0..172b77c28 100644
--- a/src/main/java/org/onap/clamp/loop/LoopOperation.java
+++ b/src/main/java/org/onap/clamp/loop/LoopOperation.java
@@ -30,6 +30,7 @@ import com.google.gson.JsonObject;
import java.io.IOException;
import java.util.Iterator;
import java.util.Set;
+import java.util.UUID;
import org.apache.camel.Exchange;
import org.apache.camel.Message;
@@ -52,8 +53,7 @@ public class LoopOperation {
private static final String DCAE_STATUS_FIELD = "status";
private static final String DCAE_SERVICETYPE_ID = "serviceTypeId";
private static final String DCAE_INPUTS = "inputs";
- private static final String DCAE_DEPLOYMENT_PREFIX = "closedLoop_";
- private static final String DCAE_DEPLOYMENT_SUFIX = "_deploymentId";
+ private static final String DCAE_DEPLOYMENT_PREFIX = "CLAMP_";
private static final String DEPLOYMENT_PARA = "dcaeDeployParameters";
private final LoopService loopService;
@@ -63,8 +63,11 @@ public class LoopOperation {
/**
* The constructor.
- * @param loopService The loop service
- * @param refProp The clamp properties
+ *
+ * @param loopService
+ * The loop service
+ * @param refProp
+ * The clamp properties
*/
@Autowired
public LoopOperation(LoopService loopService) {
@@ -74,9 +77,11 @@ public class LoopOperation {
/**
* Get the payload used to send the deploy closed loop request.
*
- * @param loop The loop
+ * @param loop
+ * The loop
* @return The payload used to send deploy closed loop request
- * @throws IOException IOException
+ * @throws IOException
+ * IOException
*/
public String getDeployPayload(Loop loop) throws IOException {
JsonObject globalProp = loop.getGlobalPropertiesJson();
@@ -98,9 +103,11 @@ public class LoopOperation {
/**
* Get the deployment id.
*
- * @param loop The loop
+ * @param loop
+ * The loop
* @return The deployment id
- * @throws IOException IOException
+ * @throws IOException
+ * IOException
*/
public String getDeploymentId(Loop loop) {
// Set the deploymentId if not present yet
@@ -109,7 +116,7 @@ public class LoopOperation {
if (loop.getDcaeDeploymentId() != null && !loop.getDcaeDeploymentId().isEmpty()) {
deploymentId = loop.getDcaeDeploymentId();
} else {
- deploymentId = DCAE_DEPLOYMENT_PREFIX + loop.getName() + DCAE_DEPLOYMENT_SUFIX;
+ deploymentId = DCAE_DEPLOYMENT_PREFIX + UUID.randomUUID();
}
return deploymentId;
}
@@ -117,10 +124,14 @@ public class LoopOperation {
/**
* Update the loop info.
*
- * @param camelExchange The camel exchange
- * @param loop The loop
- * @param deploymentId The deployment id
- * @throws ParseException The parse exception
+ * @param camelExchange
+ * The camel exchange
+ * @param loop
+ * The loop
+ * @param deploymentId
+ * The deployment id
+ * @throws ParseException
+ * The parse exception
*/
public void updateLoopInfo(Exchange camelExchange, Loop loop, String deploymentId) throws ParseException {
Message in = camelExchange.getIn();
@@ -133,8 +144,9 @@ public class LoopOperation {
JSONObject linksObj = (JSONObject) jsonObj.get(DCAE_LINK_FIELD);
String statusUrl = (String) linksObj.get(DCAE_STATUS_FIELD);
- // use http4 instead of http, because camel http4 component is used to do the http call
- String newStatusUrl = statusUrl.replaceAll("http:", "http4:");
+ // use http4 instead of http, because camel http4 component is used to do the
+ // http call
+ String newStatusUrl = statusUrl.replaceAll("http:", "http4:").replaceAll("https:", "https4:");
loop.setDcaeDeploymentId(deploymentId);
loop.setDcaeDeploymentStatusUrl(newStatusUrl);
@@ -144,9 +156,11 @@ public class LoopOperation {
/**
* Get the Closed Loop status based on the reply from Policy.
*
- * @param statusCode The status code
+ * @param statusCode
+ * The status code
* @return The state based on policy response
- * @throws ParseException The parse exception
+ * @throws ParseException
+ * The parse exception
*/
public String analysePolicyResponse(int statusCode) {
if (statusCode == 200) {
@@ -160,11 +174,12 @@ public class LoopOperation {
/**
* Get the name of the first Operational policy.
*
- * @param loop The closed loop
+ * @param loop
+ * The closed loop
* @return The name of the first operational policy
*/
public String getOperationalPolicyName(Loop loop) {
- Set<OperationalPolicy> opSet = (Set<OperationalPolicy>)loop.getOperationalPolicies();
+ Set<OperationalPolicy> opSet = loop.getOperationalPolicies();
Iterator<OperationalPolicy> iterator = opSet.iterator();
while (iterator.hasNext()) {
OperationalPolicy policy = iterator.next();
@@ -176,9 +191,11 @@ public class LoopOperation {
/**
* Get the Closed Loop status based on the reply from DCAE.
*
- * @param camelExchange The camel exchange
+ * @param camelExchange
+ * The camel exchange
* @return The state based on DCAE response
- * @throws ParseException The parse exception
+ * @throws ParseException
+ * The parse exception
*/
public String analyseDcaeResponse(Exchange camelExchange, Integer statusCode) throws ParseException {
if (statusCode == null) {
@@ -212,12 +229,17 @@ public class LoopOperation {
}
/**
- * Update the status of the closed loop based on the response from Policy and DCAE.
+ * Update the status of the closed loop based on the response from Policy and
+ * DCAE.
*
- * @param loop The closed loop
- * @param policyState The state get from Policy
- * @param dcaeState The state get from DCAE
- * @throws ParseException The parse exception
+ * @param loop
+ * The closed loop
+ * @param policyState
+ * The state get from Policy
+ * @param dcaeState
+ * The state get from DCAE
+ * @throws ParseException
+ * The parse exception
*/
public LoopState updateLoopStatus(Loop loop, TempLoopState policyState, TempLoopState dcaeState) {
LoopState clState = LoopState.IN_ERROR;
diff --git a/src/main/resources/clds/camel/rest/clamp-api-v2.xml b/src/main/resources/clds/camel/rest/clamp-api-v2.xml
index 7e0c891ee..692e342d7 100644
--- a/src/main/resources/clds/camel/rest/clamp-api-v2.xml
+++ b/src/main/resources/clds/camel/rest/clamp-api-v2.xml
@@ -216,7 +216,7 @@
<simple> ${exchangeProperty[policyStatus]} == 'SUBMITTED' and
${exchangeProperty[dcaeStatus]} == 'NOT_DEPLOYED'
</simple>
- <to uri="direct:deploy-closedloop" />
+ <to uri="direct:deploy-loop" />
</when>
<otherwise>
<log
@@ -268,7 +268,7 @@
<when>
<simple> ${exchangeProperty[dcaeStatus]} == 'DEPLOYED'
</simple>
- <to uri="direct:undeploy-closedloop" />
+ <to uri="direct:undeploy-loop" />
</when>
<otherwise>
<log
diff --git a/src/main/resources/clds/camel/routes/flexible-flow.xml b/src/main/resources/clds/camel/routes/flexible-flow.xml
index 920e1e549..790a1679b 100644
--- a/src/main/resources/clds/camel/routes/flexible-flow.xml
+++ b/src/main/resources/clds/camel/routes/flexible-flow.xml
@@ -489,8 +489,8 @@
</doFinally>
</doTry>
</route>
- <route id="deploy-closedloop">
- <from uri="direct:deploy-closedloop" />
+ <route id="deploy-loop">
+ <from uri="direct:deploy-loop" />
<doTry>
<log
loggingLevel="INFO"
@@ -535,19 +535,19 @@
<to
uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
<setProperty propertyName="logMessage">
- <simple>Deploy closed loop status</simple>
+ <simple>Deploy closed loop status (id:${exchangeProperty[deploymentId]})</simple>
</setProperty>
<to uri="direct:dump-loop-log-http-response" />
</doFinally>
</doTry>
</route>
- <route id="undeploy-closedloop">
- <from uri="direct:undeploy-closedloop" />
+ <route id="undeploy-loop">
+ <from uri="direct:undeploy-loop" />
<doTry>
<log
loggingLevel="INFO"
- message="UNdeploy the closed loop: ${exchangeProperty[loopObject].getName()} : ${exchangeProperty[loopObject].getDcaeDeploymentId()}" />
+ message="Undeploy the closed loop: ${exchangeProperty[loopObject].getName()} : ${exchangeProperty[loopObject].getDcaeDeploymentId()}" />
<to
uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Undeploy closed loop')" />
diff --git a/src/test/java/org/onap/clamp/loop/LoopOperationTestItCase.java b/src/test/java/org/onap/clamp/loop/LoopOperationTestItCase.java
index 93274788d..a2c97e0c0 100644
--- a/src/test/java/org/onap/clamp/loop/LoopOperationTestItCase.java
+++ b/src/test/java/org/onap/clamp/loop/LoopOperationTestItCase.java
@@ -55,15 +55,12 @@ public class LoopOperationTestItCase {
LoopService loopService;
private Loop createTestLoop() {
- String yaml = "imports:\n"
- + " - \"http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\"\n"
- + "node_templates:\n"
- + " docker_service_host:\n"
- + " type: dcae.nodes.SelectedDockerHost";
+ String yaml = "imports:\n" + " - \"http://www.getcloudify.org/spec/cloudify/3.4/types.yaml\"\n"
+ + "node_templates:\n" + " docker_service_host:\n" + " type: dcae.nodes.SelectedDockerHost";
Loop loopTest = new Loop("ControlLoopTest", yaml, "<xml></xml>");
- loopTest.setGlobalPropertiesJson(new Gson().fromJson("{\"dcaeDeployParameters\":"
- + "{\"policy_id\": \"name\"}}", JsonObject.class));
+ loopTest.setGlobalPropertiesJson(
+ new Gson().fromJson("{\"dcaeDeployParameters\":" + "{\"policy_id\": \"name\"}}", JsonObject.class));
loopTest.setLastComputedState(LoopState.DESIGN);
loopTest.setDcaeDeploymentId("123456789");
loopTest.setDcaeDeploymentStatusUrl("http4://localhost:8085");
@@ -71,14 +68,13 @@ public class LoopOperationTestItCase {
MicroServicePolicy microServicePolicy = new MicroServicePolicy("configPolicyTest", "",
"tosca_definitions_version: tosca_simple_yaml_1_0_0", true,
- gson.fromJson("{\"configtype\":\"json\"}", JsonObject.class), new HashSet<>());
+ gson.fromJson("{\"configtype\":\"json\"}", JsonObject.class), new HashSet<>());
microServicePolicy.setProperties(new Gson().fromJson("{\"param1\":\"value1\"}", JsonObject.class));
loopTest.addMicroServicePolicy(microServicePolicy);
return loopTest;
}
-
@Test
public void testAnalysePolicyResponse() {
LoopOperation loopOp = new LoopOperation(loopService);
@@ -102,7 +98,7 @@ public class LoopOperationTestItCase {
assertThat(opName1).isNull();
OperationalPolicy opPolicy1 = new OperationalPolicy("OperationalPolicyTest1", null,
- gson.fromJson("{\"type\":\"Operational\"}", JsonObject.class));
+ gson.fromJson("{\"type\":\"Operational\"}", JsonObject.class));
loop.addOperationalPolicy(opPolicy1);
String opName2 = loopOp.getOperationalPolicyName(loop);
assertThat(opName2).isEqualTo("OperationalPolicyTest1");
@@ -212,7 +208,7 @@ public class LoopOperationTestItCase {
loopOp.updateLoopInfo(camelExchange, loop, "testNewId");
Loop newLoop = loopService.getLoop(loop.getName());
- String newDeployId = newLoop.getDcaeDeploymentId();
+ String newDeployId = newLoop.getDcaeDeploymentId();
String newDeploymentStatusUrl = newLoop.getDcaeDeploymentStatusUrl();
assertThat(newDeployId).isEqualTo("testNewId");
@@ -228,11 +224,12 @@ public class LoopOperationTestItCase {
loop.setDcaeDeploymentId(null);
String deploymentId2 = loopOp.getDeploymentId(loop);
- assertThat(deploymentId2).isEqualTo("closedLoop_ControlLoopTest_deploymentId");
+ assertThat(deploymentId2).startsWith("CLAMP_");
loop.setDcaeDeploymentId("");
String deploymentId3 = loopOp.getDeploymentId(loop);
- assertThat(deploymentId3).isEqualTo("closedLoop_ControlLoopTest_deploymentId");
+ assertThat(deploymentId3).startsWith("CLAMP_");
+ assertThat(deploymentId3).isNotEqualTo(deploymentId2);
}
@Test