diff options
author | xg353y <xg353y@intl.att.com> | 2017-10-05 18:04:24 +0200 |
---|---|---|
committer | xg353y <xg353y@intl.att.com> | 2017-10-06 11:14:26 +0200 |
commit | e00f654909c75400cb881ed648a75d09767502cc (patch) | |
tree | 183fc49a4e6c2d9a9b09dd2f44d8f676cd1ffdac | |
parent | f696add81ddfb39e6c6cdf77871fdcc19cb2b419 (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
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" } ] |