summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorxg353y <xg353y@intl.att.com>2017-10-05 18:04:24 +0200
committerxg353y <xg353y@intl.att.com>2017-10-06 11:14:26 +0200
commite00f654909c75400cb881ed648a75d09767502cc (patch)
tree183fc49a4e6c2d9a9b09dd2f44d8f676cd1ffdac
parentf696add81ddfb39e6c6cdf77871fdcc19cb2b419 (diff)
Update Holmes related feature
No blueprint need to be send to SDC; Add configuration policy name in holmes UI; Update the config body sent to Policy. Change-Id: I4bf5b0c32d64f4acf28ac6f24128e463e28e5779 Signed-off-by: xg353y <xg353y@intl.att.com> Issue-ID: CLAMP-27
-rw-r--r--src/main/java/org/onap/clamp/clds/client/HolmesPolicyDelegate.java5
-rw-r--r--src/main/java/org/onap/clamp/clds/client/PolicyClient.java7
-rw-r--r--src/main/java/org/onap/clamp/clds/client/SdcSendReqDelegate.java27
-rw-r--r--src/main/java/org/onap/clamp/clds/client/req/SdcReq.java4
-rw-r--r--src/main/java/org/onap/clamp/clds/model/prop/Holmes.java12
-rw-r--r--src/main/resources/META-INF/resources/designer/partials/portfolios/holmes_properties.html8
-rw-r--r--src/test/java/org/onap/clamp/clds/it/HolmesPolicyDelegateItCase.java63
-rw-r--r--src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java2
-rw-r--r--src/test/resources/example/model-properties/holmes/modelBpmnProperties.json4
-rw-r--r--src/test/resources/example/model-properties/modelBpmnProp.json2
10 files changed, 102 insertions, 32 deletions
diff --git a/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDelegate.java b/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDelegate.java
index c42a22c6..5e0d470e 100644
--- a/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDelegate.java
+++ b/src/main/java/org/onap/clamp/clds/client/HolmesPolicyDelegate.java
@@ -61,7 +61,7 @@ public class HolmesPolicyDelegate implements JavaDelegate {
ModelProperties prop = ModelProperties.create(execution);
Holmes holmes = prop.getType(Holmes.class);
if (holmes.isFound()) {
- String responseMessage = policyClient.sendBasePolicyInOther(holmes.getCorrelationLogic(), prop,
+ String responseMessage = policyClient.sendBasePolicyInOther(formatHolmesConfigBody(prop, holmes), holmes.getConfigPolicyName(), prop,
holmesPolicyRequestUuid);
if (responseMessage != null) {
execution.setVariable("holmesPolicyResponseMessage", responseMessage.getBytes());
@@ -69,4 +69,7 @@ public class HolmesPolicyDelegate implements JavaDelegate {
}
}
+ public static String formatHolmesConfigBody (ModelProperties prop, Holmes holmes) {
+ return prop.getControlName() + "$$$" + holmes.getCorrelationLogic();
+ }
}
diff --git a/src/main/java/org/onap/clamp/clds/client/PolicyClient.java b/src/main/java/org/onap/clamp/clds/client/PolicyClient.java
index 7aa1330f..d4f9014b 100644
--- a/src/main/java/org/onap/clamp/clds/client/PolicyClient.java
+++ b/src/main/java/org/onap/clamp/clds/client/PolicyClient.java
@@ -162,16 +162,18 @@ public class PolicyClient {
/**
* Perform send of base policy in OTHER type.
- *
+ *
* @param configBody
* The config policy string body
+ * @param configPolicyName
+ * The config policy name of the component that has been pre-deployed in DCAE
* @param prop
* The ModelProperties
* @param policyRequestUuid
* The policy request UUID
* @return The answer from policy call
*/
- public String sendBasePolicyInOther(String configBody, ModelProperties prop, String policyRequestUuid) {
+ public String sendBasePolicyInOther(String configBody, String configPolicyName, ModelProperties prop, String policyRequestUuid) {
PolicyParameters policyParameters = new PolicyParameters();
@@ -183,6 +185,7 @@ public class PolicyClient {
policyParameters.setConfigBody(configBody);
policyParameters.setConfigBodyType(PolicyType.OTHER);
policyParameters.setConfigName("HolmesPolicy");
+ policyParameters.setPolicyName(configPolicyName);
policyParameters.setRequestID(UUID.fromString(policyRequestUuid));
diff --git a/src/main/java/org/onap/clamp/clds/client/SdcSendReqDelegate.java b/src/main/java/org/onap/clamp/clds/client/SdcSendReqDelegate.java
index 0ffde932..2d327f5d 100644
--- a/src/main/java/org/onap/clamp/clds/client/SdcSendReqDelegate.java
+++ b/src/main/java/org/onap/clamp/clds/client/SdcSendReqDelegate.java
@@ -70,21 +70,24 @@ public class SdcSendReqDelegate implements JavaDelegate {
getSdcAttributes((String) execution.getVariable("controlName"));
ModelProperties prop = ModelProperties.create(execution);
String bluprintPayload = SdcReq.formatBlueprint(refProp, prop, docText);
- String formattedSdcReq = SdcReq.formatSdcReq(bluprintPayload, artifactName, artifactLabel, artifactType);
- if (formattedSdcReq != null) {
- execution.setVariable("formattedArtifactReq", formattedSdcReq.getBytes());
- }
- List<String> sdcReqUrlsList = SdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, execution);
+ // no need to upload blueprint for Holmes, thus blueprintPayload for Holmes is empty
+ if (!bluprintPayload.isEmpty()) {
+ String formattedSdcReq = SdcReq.formatSdcReq(bluprintPayload, artifactName, artifactLabel, artifactType);
+ if (formattedSdcReq != null) {
+ execution.setVariable("formattedArtifactReq", formattedSdcReq.getBytes());
+ }
+ List<String> sdcReqUrlsList = SdcReq.getSdcReqUrlsList(prop, baseUrl, sdcCatalogServices, execution);
- String sdcLocationsPayload = SdcReq.formatSdcLocationsReq(prop, artifactName);
- String locationArtifactName = (String) execution.getVariable("controlName") + "-location.json";
- String formattedSdcLocationReq = SdcReq.formatSdcReq(sdcLocationsPayload, locationArtifactName,
+ String sdcLocationsPayload = SdcReq.formatSdcLocationsReq(prop, artifactName);
+ String locationArtifactName = (String) execution.getVariable("controlName") + "-location.json";
+ String formattedSdcLocationReq = SdcReq.formatSdcReq(sdcLocationsPayload, locationArtifactName,
locationArtifactLabel, locationArtifactType);
- if (formattedSdcLocationReq != null) {
- execution.setVariable("formattedLocationReq", formattedSdcLocationReq.getBytes());
- }
- sdcCatalogServices.uploadToSdc(prop, userid, sdcReqUrlsList, formattedSdcReq, formattedSdcLocationReq,
+ if (formattedSdcLocationReq != null) {
+ execution.setVariable("formattedLocationReq", formattedSdcLocationReq.getBytes());
+ }
+ sdcCatalogServices.uploadToSdc(prop, userid, sdcReqUrlsList, formattedSdcReq, formattedSdcLocationReq,
artifactName, locationArtifactName);
+ }
}
/**
diff --git a/src/main/java/org/onap/clamp/clds/client/req/SdcReq.java b/src/main/java/org/onap/clamp/clds/client/req/SdcReq.java
index 32846ed0..9c3f2617 100644
--- a/src/main/java/org/onap/clamp/clds/client/req/SdcReq.java
+++ b/src/main/java/org/onap/clamp/clds/client/req/SdcReq.java
@@ -88,8 +88,8 @@ public class SdcReq {
String updatedBlueprint = "";
Tca tca = prop.getType(Tca.class);
if (tca.isFound()) {
- updatedBlueprint = TcaRequestFormatter.updatedBlueprintWithConfiguration(refProp, prop, yamlvalue);
- }
+ updatedBlueprint = TcaRequestFormatter.updatedBlueprintWithConfiguration(refProp, prop, yamlvalue);
+ }
logger.info("value of blueprint:" + updatedBlueprint);
return updatedBlueprint;
}
diff --git a/src/main/java/org/onap/clamp/clds/model/prop/Holmes.java b/src/main/java/org/onap/clamp/clds/model/prop/Holmes.java
index 4fa04075..bd47e8d7 100644
--- a/src/main/java/org/onap/clamp/clds/model/prop/Holmes.java
+++ b/src/main/java/org/onap/clamp/clds/model/prop/Holmes.java
@@ -29,7 +29,7 @@ import com.fasterxml.jackson.databind.JsonNode;
* Parse Holmes bpmn parameters json properties.
* <p>
* Example json:
- * [{"name":"correlationalLogic","value":"vcwx"},{"name":"operationalPolicy","value":"cccc"}]
+ * [{"name":"correlationalLogic","value":"vcwx"},{"name":"configPolicyName","value":"cccc"}]
*
*/
public class Holmes extends AbstractModelElement {
@@ -38,11 +38,11 @@ public class Holmes extends AbstractModelElement {
private String correlationLogic;
- private String operationalPolicy;
+ private String configPolicyName;
/**
* Default constructor for Holmes Element
- *
+ *
* @param modelProp
* The ModelProperties containing the all the info, like bpmn,
* bpmn params, etc ...
@@ -53,7 +53,7 @@ public class Holmes extends AbstractModelElement {
super(TYPE_HOLMES, modelProp, modelBpmn, modelJson);
correlationLogic = this.getValueByName("correlationalLogic");
- operationalPolicy = this.getValueByName("operationalPolicy");
+ configPolicyName = this.getValueByName("configPolicyName");
}
public static final String getType() {
@@ -64,8 +64,8 @@ public class Holmes extends AbstractModelElement {
return correlationLogic;
}
- public String getOperationalPolicy() {
- return operationalPolicy;
+ public String getConfigPolicyName() {
+ return configPolicyName;
}
}
diff --git a/src/main/resources/META-INF/resources/designer/partials/portfolios/holmes_properties.html b/src/main/resources/META-INF/resources/designer/partials/portfolios/holmes_properties.html
index 3c7607b9..71ca631c 100644
--- a/src/main/resources/META-INF/resources/designer/partials/portfolios/holmes_properties.html
+++ b/src/main/resources/META-INF/resources/designer/partials/portfolios/holmes_properties.html
@@ -43,12 +43,10 @@
<textarea class="form-control" focus="true" name="correlationalLogic" id="correlationalLogic" />
</div>
<div>
- <label for="operationalPolicy" class="col-sm-4 control-label">Operational policy</label>
+ <label for="configPolicyName" class="col-sm-4 control-label">Configuration Policy Name</label>
</div>
- <div class="col-sm-8">
- <select class="form-control" id="operationalPolicy" name="operationalPolicy" autofocus="autofocus" required ng-trim="true" enableFilter="true">
- <option ng-repeat="x in operationalPolicies" value="{{x}}">{{x}}</option>
- </select>
+ <div class="col-sm-8">
+ <textarea class="form-control" focus="true" name="configPolicyName" id="configPolicyName" />
</div>
</div>
</form>
diff --git a/src/test/java/org/onap/clamp/clds/it/HolmesPolicyDelegateItCase.java b/src/test/java/org/onap/clamp/clds/it/HolmesPolicyDelegateItCase.java
new file mode 100644
index 00000000..b45c2971
--- /dev/null
+++ b/src/test/java/org/onap/clamp/clds/it/HolmesPolicyDelegateItCase.java
@@ -0,0 +1,63 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. 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.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+
+package org.onap.clamp.clds.it;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertNotNull;
+
+import java.io.IOException;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.onap.clamp.clds.AbstractItCase;
+import org.onap.clamp.clds.client.HolmesPolicyDelegate;
+import org.onap.clamp.clds.model.prop.Holmes;
+import org.onap.clamp.clds.model.prop.ModelProperties;
+import org.onap.clamp.clds.util.ResourceFileUtil;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.TestPropertySource;
+import org.springframework.test.context.junit4.SpringRunner;
+
+/**
+ * Test Onap HolmesPolicyDelegate features.
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest
+@TestPropertySource(locations = "classpath:application-no-camunda.properties")
+public class HolmesPolicyDelegateItCase extends AbstractItCase {
+
+ @Test
+ public void testCreatePolicyJson() throws IOException {
+ String modelBpmnProp = ResourceFileUtil
+ .getResourceAsString("example/model-properties/holmes/modelBpmnProperties.json");
+ String modelBpmn = ResourceFileUtil.getResourceAsString("example/model-properties/holmes/modelBpmn.json");
+
+ ModelProperties prop = new ModelProperties("example-model-name", "ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf", null, true, modelBpmn,
+ modelBpmnProp);
+
+ Holmes holmes = prop.getType(Holmes.class);
+ String result = HolmesPolicyDelegate.formatHolmesConfigBody(prop, holmes);
+ assertTrue("ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf$$$blabla".equals(result));
+ }
+}
diff --git a/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java b/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java
index 45f39a42..9daa97c6 100644
--- a/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java
+++ b/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java
@@ -113,7 +113,7 @@ public class ModelPropertiesTest {
Holmes holmes = prop.getType(Holmes.class);
assertNotNull(holmes);
assertTrue(holmes.isFound());
- assertEquals("policy1", holmes.getOperationalPolicy());
+ assertEquals("configPolicy1", holmes.getConfigPolicyName());
assertEquals("blabla", holmes.getCorrelationLogic());
}
diff --git a/src/test/resources/example/model-properties/holmes/modelBpmnProperties.json b/src/test/resources/example/model-properties/holmes/modelBpmnProperties.json
index 14b3a8c2..cd76a128 100644
--- a/src/test/resources/example/model-properties/holmes/modelBpmnProperties.json
+++ b/src/test/resources/example/model-properties/holmes/modelBpmnProperties.json
@@ -5,8 +5,8 @@
"value": "blabla"
},
{
- "name": "operationalPolicy",
- "value": "policy1"
+ "name": "configPolicyName",
+ "value": "configPolicy1"
}
],
"Policy_0honxgv": {
diff --git a/src/test/resources/example/model-properties/modelBpmnProp.json b/src/test/resources/example/model-properties/modelBpmnProp.json
index a521ba7d..eacb1244 100644
--- a/src/test/resources/example/model-properties/modelBpmnProp.json
+++ b/src/test/resources/example/model-properties/modelBpmnProp.json
@@ -101,7 +101,7 @@
"value": "blabla"
},
{
- "name": "operationalPolicy",
+ "name": "configPolicyName",
"value": "policy1"
}
]