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());
}
}
+ public static String formatHolmesConfigBody (ModelProperties prop, Holmes holmes) {
+ return prop.getControlName() + "$$$" + holmes.getCorrelationLogic();
+ }
}
/**
* 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();
policyParameters.setConfigBody(configBody);
policyParameters.setConfigBodyType(PolicyType.OTHER);
policyParameters.setConfigName("HolmesPolicy");
+ policyParameters.setPolicyName(configPolicyName);
policyParameters.setRequestID(UUID.fromString(policyRequestUuid));
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);
+ }
}
/**
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;
}
* 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 {
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 ...
super(TYPE_HOLMES, modelProp, modelBpmn, modelJson);
correlationLogic = this.getValueByName("correlationalLogic");
- operationalPolicy = this.getValueByName("operationalPolicy");
+ configPolicyName = this.getValueByName("configPolicyName");
}
public static final String getType() {
return correlationLogic;
}
- public String getOperationalPolicy() {
- return operationalPolicy;
+ public String getConfigPolicyName() {
+ return configPolicyName;
}
}
<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>
--- /dev/null
+/*-
+ * ============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));
+ }
+}
Holmes holmes = prop.getType(Holmes.class);
assertNotNull(holmes);
assertTrue(holmes.isFound());
- assertEquals("policy1", holmes.getOperationalPolicy());
+ assertEquals("configPolicy1", holmes.getConfigPolicyName());
assertEquals("blabla", holmes.getCorrelationLogic());
}
"value": "blabla"
},
{
- "name": "operationalPolicy",
- "value": "policy1"
+ "name": "configPolicyName",
+ "value": "configPolicy1"
}
],
"Policy_0honxgv": {
"value": "blabla"
},
{
- "name": "operationalPolicy",
+ "name": "configPolicyName",
"value": "policy1"
}
]