From e00f654909c75400cb881ed648a75d09767502cc Mon Sep 17 00:00:00 2001 From: xg353y Date: Thu, 5 Oct 2017 18:04:24 +0200 Subject: [PATCH] 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 Issue-ID: CLAMP-27 --- .../clamp/clds/client/HolmesPolicyDelegate.java | 5 +- .../org/onap/clamp/clds/client/PolicyClient.java | 7 ++- .../onap/clamp/clds/client/SdcSendReqDelegate.java | 27 +++++----- .../org/onap/clamp/clds/client/req/SdcReq.java | 4 +- .../org/onap/clamp/clds/model/prop/Holmes.java | 12 ++--- .../partials/portfolios/holmes_properties.html | 8 ++- .../clamp/clds/it/HolmesPolicyDelegateItCase.java | 63 ++++++++++++++++++++++ .../clamp/clds/model/prop/ModelPropertiesTest.java | 2 +- .../holmes/modelBpmnProperties.json | 4 +- .../example/model-properties/modelBpmnProp.json | 2 +- 10 files changed, 102 insertions(+), 32 deletions(-) create mode 100644 src/test/java/org/onap/clamp/clds/it/HolmesPolicyDelegateItCase.java 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 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 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. *

* 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 @@