aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/org/onap/clamp
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/onap/clamp')
-rw-r--r--src/main/java/org/onap/clamp/clds/client/DcaeInventoryServices.java4
-rw-r--r--src/main/java/org/onap/clamp/clds/client/PolicyClient.java41
-rw-r--r--src/main/java/org/onap/clamp/clds/client/StringMatchPolicyDelegate.java74
-rw-r--r--src/main/java/org/onap/clamp/clds/client/StringMatchPolicyDeleteDelegate.java62
-rw-r--r--src/main/java/org/onap/clamp/clds/client/TcaPolicyDelegate.java16
-rw-r--r--src/main/java/org/onap/clamp/clds/client/req/SdcReq.java79
-rw-r--r--src/main/java/org/onap/clamp/clds/client/req/StringMatchPolicyReq.java139
-rw-r--r--src/main/java/org/onap/clamp/clds/client/req/TcaMPolicyReq.java121
-rw-r--r--src/main/java/org/onap/clamp/clds/client/req/TcaRequestFormatter.java166
-rw-r--r--src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java12
-rw-r--r--src/main/java/org/onap/clamp/clds/exception/TcaRequestFormatterException.java (renamed from src/main/java/org/onap/clamp/clds/model/prop/Collector.java)63
-rw-r--r--src/main/java/org/onap/clamp/clds/model/prop/AbstractModelElement.java4
-rw-r--r--src/main/java/org/onap/clamp/clds/model/prop/ModelBpmn.java13
-rw-r--r--src/main/java/org/onap/clamp/clds/model/prop/ModelBpmnEntry.java5
-rw-r--r--src/main/java/org/onap/clamp/clds/model/prop/ModelProperties.java5
-rw-r--r--src/main/java/org/onap/clamp/clds/model/prop/ResourceGroup.java2
-rw-r--r--src/main/java/org/onap/clamp/clds/model/prop/ServiceConfiguration.java4
-rw-r--r--src/main/java/org/onap/clamp/clds/model/prop/StringMatch.java98
-rw-r--r--src/main/java/org/onap/clamp/clds/model/prop/Tca.java31
-rw-r--r--src/main/java/org/onap/clamp/clds/model/prop/TcaItem.java98
-rw-r--r--src/main/java/org/onap/clamp/clds/model/prop/TcaThreshold.java (renamed from src/main/java/org/onap/clamp/clds/model/prop/TcaThreshhold.java)70
-rw-r--r--src/main/java/org/onap/clamp/clds/service/CldsTemplateService.java10
22 files changed, 331 insertions, 786 deletions
diff --git a/src/main/java/org/onap/clamp/clds/client/DcaeInventoryServices.java b/src/main/java/org/onap/clamp/clds/client/DcaeInventoryServices.java
index 192dcdb9..8f80e07c 100644
--- a/src/main/java/org/onap/clamp/clds/client/DcaeInventoryServices.java
+++ b/src/main/java/org/onap/clamp/clds/client/DcaeInventoryServices.java
@@ -101,7 +101,7 @@ public class DcaeInventoryServices {
String serviceUuid = sdcCatalogServices.getServiceUuidFromServiceInvariantId(invariantServiceUuid);
String resourceUuid = "";
if (resourceUuidList != null && !resourceUuidList.isEmpty()) {
- resourceUuid = resourceUuidList.get(0).toString();
+ resourceUuid = resourceUuidList.get(0);
}
/* Invemtory service url is called in this method */
isDcaeInfoAvailable = getDcaeInformation(artifactName, serviceUuid, resourceUuid);
@@ -215,7 +215,7 @@ public class DcaeInventoryServices {
JSONArray itemsArray = (JSONArray) jsonObj.get("items");
JSONObject dcaeServiceType0 = (JSONObject) itemsArray.get(0);
daceInventoryResponse = dcaeServiceType0.toString();
- logger.info(daceInventoryResponse.toString());
+ logger.info(daceInventoryResponse);
}
LoggingUtils.setTimeContext(startTime, new Date());
metricsLogger.info("getDcaeInformation complete: number services returned=" + numServices);
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 391e3955..7aa1330f 100644
--- a/src/main/java/org/onap/clamp/clds/client/PolicyClient.java
+++ b/src/main/java/org/onap/clamp/clds/client/PolicyClient.java
@@ -140,7 +140,7 @@ public class PolicyClient {
// Set Policy Type
policyParameters.setPolicyConfigType(PolicyConfigType.MicroService);
- policyParameters.setEcompName(refProp.getStringValue("policy.ecomp.name"));
+ policyParameters.setEcompName(refProp.getStringValue("policy.onap.name"));
policyParameters.setPolicyName(prop.getCurrentPolicyScopeAndPolicyName());
policyParameters.setConfigBody(policyJson);
@@ -177,7 +177,7 @@ public class PolicyClient {
// Set Policy Type
policyParameters.setPolicyConfigType(PolicyConfigType.Base);
- policyParameters.setEcompName(refProp.getStringValue("policy.ecomp.name"));
+ policyParameters.setEcompName(refProp.getStringValue("policy.onap.name"));
policyParameters.setPolicyName(prop.getCurrentPolicyScopeAndPolicyName());
policyParameters.setConfigBody(configBody);
@@ -197,6 +197,43 @@ public class PolicyClient {
}
/**
+ * Perform send of Microservice policy in OTHER type.
+ *
+ * @param configBody
+ * The config policy string body
+ * @param prop
+ * The ModelProperties
+ * @param policyRequestUuid
+ * The policy request UUID
+ * @return The answer from policy call
+ */
+ public String sendMicroServiceInOther(String configBody, ModelProperties prop, String policyRequestUuid) {
+
+ PolicyParameters policyParameters = new PolicyParameters();
+
+ // Set Policy Type
+ policyParameters.setPolicyConfigType(PolicyConfigType.MicroService);
+ policyParameters.setEcompName(refProp.getStringValue("policy.onap.name"));
+ policyParameters.setPolicyName(prop.getCurrentPolicyScopeAndPolicyName());
+
+ policyParameters.setConfigBody(configBody);
+ policyParameters.setConfigBodyType(PolicyType.OTHER);
+
+ policyParameters.setRequestID(UUID.fromString(policyRequestUuid));
+ String policyNamePrefix = refProp.getStringValue("policy.ms.policyNamePrefix");
+
+ // Adding this line to clear the policy id from policy name while
+ // pushing to policy engine
+ prop.setPolicyUniqueId("");
+
+ String rtnMsg = send(policyParameters, prop, policyNamePrefix);
+ String policyType = refProp.getStringValue("policy.ms.type");
+ push(policyType, prop);
+
+ return rtnMsg;
+ }
+
+ /**
* Perform send of policy.
*
* @param policyParameters
diff --git a/src/main/java/org/onap/clamp/clds/client/StringMatchPolicyDelegate.java b/src/main/java/org/onap/clamp/clds/client/StringMatchPolicyDelegate.java
deleted file mode 100644
index d149137b..00000000
--- a/src/main/java/org/onap/clamp/clds/client/StringMatchPolicyDelegate.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*-
- * ============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.client;
-
-import java.util.UUID;
-
-import org.camunda.bpm.engine.delegate.DelegateExecution;
-import org.camunda.bpm.engine.delegate.JavaDelegate;
-import org.onap.clamp.clds.client.req.StringMatchPolicyReq;
-import org.onap.clamp.clds.model.prop.ModelProperties;
-import org.onap.clamp.clds.model.prop.StringMatch;
-import org.onap.clamp.clds.model.refprop.RefProp;
-import org.springframework.beans.factory.annotation.Autowired;
-
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-
-/**
- * Send String Match info to policy api.
- */
-public class StringMatchPolicyDelegate implements JavaDelegate {
- protected static final EELFLogger logger = EELFManager.getInstance()
- .getLogger(StringMatchPolicyDelegate.class);
- protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
-
- @Autowired
- private PolicyClient policyClient;
-
- @Autowired
- private RefProp refProp;
-
- /**
- * Perform activity. Send String Match info to policy api.
- *
- * @param execution
- */
- @Override
- public void execute(DelegateExecution execution) throws Exception {
- String stringMatchPolicyRequestUuid = UUID.randomUUID().toString();
- execution.setVariable("stringMatchPolicyRequestUuid", stringMatchPolicyRequestUuid);
-
- ModelProperties prop = ModelProperties.create(execution);
- StringMatch stringMatch = prop.getType(StringMatch.class);
- if (stringMatch.isFound()) {
- String policyJson = StringMatchPolicyReq.format(refProp, prop);
- String responseMessage = policyClient.sendMicroServiceInJson(policyJson, prop, stringMatchPolicyRequestUuid);
- if (responseMessage != null) {
- execution.setVariable("stringMatchPolicyResponseMessage", responseMessage.getBytes());
- }
- }
- }
-
-}
diff --git a/src/main/java/org/onap/clamp/clds/client/StringMatchPolicyDeleteDelegate.java b/src/main/java/org/onap/clamp/clds/client/StringMatchPolicyDeleteDelegate.java
deleted file mode 100644
index 5bda8d36..00000000
--- a/src/main/java/org/onap/clamp/clds/client/StringMatchPolicyDeleteDelegate.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*-
- * ============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.client;
-
-import org.camunda.bpm.engine.delegate.DelegateExecution;
-import org.camunda.bpm.engine.delegate.JavaDelegate;
-import org.onap.clamp.clds.model.prop.ModelProperties;
-import org.onap.clamp.clds.model.prop.StringMatch;
-import org.springframework.beans.factory.annotation.Autowired;
-
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-
-/**
- * Delete String Match Policy via policy api.
- */
-public class StringMatchPolicyDeleteDelegate implements JavaDelegate {
- protected static final EELFLogger logger = EELFManager.getInstance()
- .getLogger(StringMatchPolicyDeleteDelegate.class);
- protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
-
- @Autowired
- private PolicyClient policyClient;
-
- /**
- * Perform activity. Delete String Match Policy via policy api.
- *
- * @param execution
- */
- @Override
- public void execute(DelegateExecution execution) throws Exception {
- ModelProperties prop = ModelProperties.create(execution);
- StringMatch stringMatch = prop.getType(StringMatch.class);
- if (stringMatch.isFound()) {
- prop.setCurrentModelElementId(stringMatch.getId());
-
- policyClient.deleteMicrosService(prop);
- }
- }
-
-}
diff --git a/src/main/java/org/onap/clamp/clds/client/TcaPolicyDelegate.java b/src/main/java/org/onap/clamp/clds/client/TcaPolicyDelegate.java
index 9debcc2a..7de12683 100644
--- a/src/main/java/org/onap/clamp/clds/client/TcaPolicyDelegate.java
+++ b/src/main/java/org/onap/clamp/clds/client/TcaPolicyDelegate.java
@@ -23,19 +23,19 @@
package org.onap.clamp.clds.client;
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+
import java.util.UUID;
import org.camunda.bpm.engine.delegate.DelegateExecution;
import org.camunda.bpm.engine.delegate.JavaDelegate;
-import org.onap.clamp.clds.client.req.TcaMPolicyReq;
+import org.onap.clamp.clds.client.req.TcaRequestFormatter;
import org.onap.clamp.clds.model.prop.ModelProperties;
import org.onap.clamp.clds.model.prop.Tca;
import org.onap.clamp.clds.model.refprop.RefProp;
import org.springframework.beans.factory.annotation.Autowired;
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-
/**
* Send Tca info to policy api.
*
@@ -46,10 +46,10 @@ public class TcaPolicyDelegate implements JavaDelegate {
protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
@Autowired
- private RefProp refProp;
+ private RefProp refProp;
@Autowired
- PolicyClient policyClient;
+ PolicyClient policyClient;
/**
* Perform activity. Send Tca info to policy api.
@@ -64,8 +64,8 @@ public class TcaPolicyDelegate implements JavaDelegate {
ModelProperties prop = ModelProperties.create(execution);
Tca tca = prop.getType(Tca.class);
if (tca.isFound()) {
- String policyJson = TcaMPolicyReq.formatTca(refProp, prop);
- String responseMessage = policyClient.sendMicroServiceInJson(policyJson, prop, tcaPolicyRequestUuid);
+ String policyJson = TcaRequestFormatter.createPolicyJson(refProp, prop);
+ String responseMessage = policyClient.sendMicroServiceInOther(policyJson, prop, tcaPolicyRequestUuid);
if (responseMessage != null) {
execution.setVariable("tcaPolicyResponseMessage", responseMessage.getBytes());
}
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 f8351ca5..32846ed0 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
@@ -26,7 +26,6 @@ package org.onap.clamp.clds.client.req;
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
import com.fasterxml.jackson.core.JsonParseException;
-import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -50,7 +49,6 @@ import org.onap.clamp.clds.model.CldsSdcResource;
import org.onap.clamp.clds.model.CldsSdcServiceDetail;
import org.onap.clamp.clds.model.prop.Global;
import org.onap.clamp.clds.model.prop.ModelProperties;
-import org.onap.clamp.clds.model.prop.StringMatch;
import org.onap.clamp.clds.model.prop.Tca;
import org.onap.clamp.clds.model.refprop.RefProp;
@@ -88,85 +86,16 @@ public class SdcReq {
String yamlvalue = getYamlvalue(docText);
String updatedBlueprint = "";
- StringMatch stringMatch = prop.getType(StringMatch.class);
Tca tca = prop.getType(Tca.class);
- if (stringMatch.isFound()) {
- prop.setCurrentModelElementId(stringMatch.getId());
- ObjectMapper objectMapper = new ObjectMapper();
- ObjectNode serviceConfigurations = objectMapper.createObjectNode();
-
- StringMatchPolicyReq.appendServiceConfigurations(refProp, service, serviceConfigurations, stringMatch,
- prop);
- logger.info("Value of serviceConfigurations:" + serviceConfigurations);
- ObjectNode servConfNode = (ObjectNode) serviceConfigurations.get("serviceConfigurations");
-
- // get updated blueprint by attaching service Conf from
- // globalProperties
- updatedBlueprint = getUpdatedBlueprintWithServiceConf(refProp, prop, yamlvalue, servConfNode);
- } else if (tca.isFound()) {
- prop.setCurrentModelElementId(tca.getId());
- ObjectNode rootNode = (ObjectNode) refProp.getJsonTemplate("tca.template", service);
- ObjectNode content = rootNode.with("content");
- TcaMPolicyReq.appendSignatures(refProp, service, content, tca, prop);
- logger.info("Value of content:" + content);
- // ObjectNode servConfNode =
- // (ObjectNode)signatures.get("signatures");
-
- // get updated blueprint by attaching service Conf from
- // globalProperties
- updatedBlueprint = getUpdatedBlueprintWithConfiguration(refProp, prop, yamlvalue, content);
- }
-
+ if (tca.isFound()) {
+ updatedBlueprint = TcaRequestFormatter.updatedBlueprintWithConfiguration(refProp, prop, yamlvalue);
+ }
logger.info("value of blueprint:" + updatedBlueprint);
return updatedBlueprint;
}
- private static String getUpdatedBlueprintWithServiceConf(RefProp refProp, ModelProperties prop, String yamlValue,
- ObjectNode serviceConf) throws IOException {
- Yaml yaml = new Yaml();
-
- // Serialiaze Yaml file
- Map<String, Map> loadedYaml = (Map<String, Map>) yaml.load(yamlValue);
- // Get node templates information from Yaml
- Map<String, Map> nodeTemplates = loadedYaml.get("node_templates");
- logger.info("value of NodeTemplates:" + nodeTemplates);
-
- // Get StringMatch Object information from node templates of Yaml
- Map<String, Map> smObject = nodeTemplates.get("SM");
- logger.info("value of StringMatch:" + smObject);
-
- // Get Properties Object information from stringmatch of Yaml
- Map<String, String> propsObject = smObject.get("properties");
- logger.info("value of PropsObject:" + propsObject);
-
- String deploymentJsonObject = propsObject.get("deployment_JSON");
- logger.info("value of deploymentJson:" + deploymentJsonObject);
-
- ObjectMapper mapper = new ObjectMapper();
- ObjectNode deployJsonNode = (ObjectNode) mapper.readTree(deploymentJsonObject);
- ObjectNode configurationObjectNode = (ObjectNode) deployJsonNode.get("configuration");
-
- // "policyName":"example_model06.ClosedLoop_FRWL_SIG_0538e6f2_8c1b_4656_9999_3501b3c59ad7_StringMatch_",
- String policyNamePrefix = refProp.getStringValue("policy.ms.policyNamePrefix");
- String policyName = prop.getCurrentPolicyScopeAndFullPolicyName(policyNamePrefix);
- configurationObjectNode.put("policyName", policyName);
-
- // "closedLoopControlName":"ClosedLoop-FRWL-SIG-0538e6f2-8c1b-4656-9999-3501b3c59ad7",
- configurationObjectNode.put("closedLoopControlName", prop.getControlName());
- configurationObjectNode.put("messageReaderConsumerGroup", prop.getModelName());
- configurationObjectNode.set("serviceConfigurations", serviceConf);
- propsObject.put("deployment_JSON", deployJsonNode.toString());
- String blueprint = yaml.dump(loadedYaml);
- logger.info("value of updated Yaml File:" + blueprint);
-
- blueprint = yaml.dump(loadedYaml);
- logger.info("value of updated Yaml File:" + blueprint);
-
- return blueprint;
- }
-
private static String getUpdatedBlueprintWithConfiguration(RefProp refProp, ModelProperties prop, String yamlValue,
- ObjectNode serviceConf) throws JsonProcessingException, IOException {
+ ObjectNode serviceConf) throws IOException {
String blueprint = "";
Yaml yaml = new Yaml();
// Serialiaze Yaml file
diff --git a/src/main/java/org/onap/clamp/clds/client/req/StringMatchPolicyReq.java b/src/main/java/org/onap/clamp/clds/client/req/StringMatchPolicyReq.java
deleted file mode 100644
index 5884c3dd..00000000
--- a/src/main/java/org/onap/clamp/clds/client/req/StringMatchPolicyReq.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*-
- * ============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.client.req;
-
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.Map.Entry;
-
-import org.onap.clamp.clds.model.prop.Global;
-import org.onap.clamp.clds.model.prop.ModelProperties;
-import org.onap.clamp.clds.model.prop.ResourceGroup;
-import org.onap.clamp.clds.model.prop.ServiceConfiguration;
-import org.onap.clamp.clds.model.prop.StringMatch;
-import org.onap.clamp.clds.model.refprop.RefProp;
-
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-import com.fasterxml.jackson.databind.node.ArrayNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-/**
- * Construct a Policy for String Match Micro Service request given CLDS objects.
- */
-public class StringMatchPolicyReq {
- protected static final EELFLogger logger = EELFManager.getInstance().getLogger(StringMatchPolicyReq.class);
- protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
-
- /**
- * Format Policy String Match request.
- *
- * @param refProp
- * @param prop
- * @return
- * @throws IOException
- */
- public static String format(RefProp refProp, ModelProperties prop) throws IOException {
- Global global = prop.getGlobal();
- String service = global.getService();
-
- StringMatch sm = prop.getType(StringMatch.class);
- prop.setCurrentModelElementId(sm.getId());
- ObjectNode rootNode = (ObjectNode) refProp.getJsonTemplate("sm.template", service);
- rootNode.put("policyName", prop.getCurrentPolicyScopeAndPolicyName());
- ObjectNode content = rootNode.with("content");
- appendServiceConfigurations(refProp, service, content, sm, prop);
-
- String stringMatchPolicyReq = rootNode.toString();
- logger.info("stringMatchPolicyReq=" + stringMatchPolicyReq);
- return stringMatchPolicyReq;
- }
-
- /**
- * Add serviceConfigurations to json
- *
- * @param appendToNode
- * @param sm
- * @throws IOException
- */
- public static void appendServiceConfigurations(RefProp refProp, String service, ObjectNode appendToNode,
- StringMatch sm, ModelProperties prop) throws IOException {
- // "serviceConfigurations":{
- ObjectNode scNodes = appendToNode.with("serviceConfigurations");
-
- int index = 0;
- if (sm != null && sm.getResourceGroups() != null) {
- for (ResourceGroup resourceGroup : sm.getResourceGroups()) {
- Iterator<ServiceConfiguration> scItr = resourceGroup.getServiceConfigurations().iterator();
-
- while (scItr.hasNext()) {
- ServiceConfiguration sc = scItr.next();
-
- // "ItemX":{
- index++;
- String keyValue = "Item" + index;
- ObjectNode scNode = (ObjectNode) refProp.getJsonTemplate("sm.sc.template", service);
- scNodes.set(keyValue, scNode);
-
- // "rulegroup":"abc",
- String rulegroupInd = refProp.getStringValue("sm.rulegroup", service);
- String groupNumber = resourceGroup.getGroupNumber();
- if (rulegroupInd != null && rulegroupInd.equalsIgnoreCase("true") && groupNumber != null
- && groupNumber.length() > 0) {
- scNode.put("rulegroup", groupNumber);
- }
-
- // "closedLoopControlName":
- prop.setPolicyUniqueId(resourceGroup.getPolicyId());
- scNode.put("closedLoopControlName", prop.getControlNameAndPolicyUniqueId());
-
- // "aaiMatchingFields" : ["VM_NAME"],
- JsonUtil.addArrayField(scNode, "aaiMatchingFields", sc.getaaiMatchingFields());
- // "aaiSendFields" : ["VMID", "TenantID"],
- JsonUtil.addArrayField(scNode, "aaiSendFields", sc.getaaiSendFields());
-
- // "stringSet": [
- ArrayNode ssNode = scNode.putArray("stringSet");
-
- for (Entry<String, String> entry : sc.getStringSet().entrySet()) {
- // exclude eventSourceType
- if (!entry.getKey().equals("eventSourceType")) {
- ssNode.add(entry.getKey());
- ssNode.add(entry.getValue());
- }
- }
-
- // timeWindow": "0",
- scNode.put("timeWindow", sc.getTimeWindow());
- // "ageLimit": "3600",
- scNode.put("ageLimit", sc.getAgeLimit());
- // "createClosedLoopEventId" : "Initial",
- scNode.put("createClosedLoopEventId", sc.getCreateClosedLoopEventId());
- // "outputEventName": "OnSet"
- scNode.put("outputEventName", sc.getOutputEventName());
- }
- }
- }
- }
-}
diff --git a/src/main/java/org/onap/clamp/clds/client/req/TcaMPolicyReq.java b/src/main/java/org/onap/clamp/clds/client/req/TcaMPolicyReq.java
deleted file mode 100644
index f3106289..00000000
--- a/src/main/java/org/onap/clamp/clds/client/req/TcaMPolicyReq.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*-
- * ============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.client.req;
-
-import java.io.IOException;
-import java.util.Iterator;
-
-import org.onap.clamp.clds.model.prop.Global;
-import org.onap.clamp.clds.model.prop.ModelProperties;
-import org.onap.clamp.clds.model.prop.Tca;
-import org.onap.clamp.clds.model.prop.TcaItem;
-import org.onap.clamp.clds.model.prop.TcaThreshhold;
-import org.onap.clamp.clds.model.refprop.RefProp;
-
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-import com.fasterxml.jackson.core.JsonParseException;
-import com.fasterxml.jackson.databind.JsonMappingException;
-import com.fasterxml.jackson.databind.node.ArrayNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-/**
- * Construct a Policy for Tca/MTca Service request given CLDS objects.
- *
- *
- */
-public class TcaMPolicyReq {
- protected static final EELFLogger logger = EELFManager.getInstance().getLogger(TcaMPolicyReq.class);
- protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
-
- /**
- * Format Tca Policy request
- *
- * @param refProp
- * @param prop
- * @return
- * @throws JsonParseException
- * @throws JsonMappingException
- * @throws IOException
- */
- public static String formatTca(RefProp refProp, ModelProperties prop)
- throws JsonParseException, JsonMappingException, IOException {
- Global global = prop.getGlobal();
- String service = global.getService();
-
- Tca tca = prop.getType(Tca.class);
- prop.setCurrentModelElementId(tca.getId());
- ObjectNode rootNode = (ObjectNode) refProp.getJsonTemplate("tca.template", service);
- rootNode.put("policyName", prop.getCurrentPolicyScopeAndPolicyName());
- ObjectNode content = rootNode.with("content");
- appendSignatures(refProp, service, content, tca, prop);
-
- String tcaPolicyReq = rootNode.toString();
- logger.info("tcaPolicyReq=" + tcaPolicyReq);
- return tcaPolicyReq;
- }
-
- /**
- * Add appendSignatures to json
- *
- * @param refProp
- * @param service
- * @param appendToNode
- * @param tca
- * @param prop
- * @throws JsonParseException
- * @throws JsonMappingException
- * @throws IOException
- */
- public static void appendSignatures(RefProp refProp, String service, ObjectNode appendToNode, Tca tca,
- ModelProperties prop) throws JsonParseException, JsonMappingException, IOException {
- // "signatures":{
- ArrayNode tcaNodes = appendToNode.withArray("signatures");
- for (TcaItem tcaItem : tca.getTcaItems()) {
- ObjectNode tcaNode = (ObjectNode) refProp.getJsonTemplate("tca.signature.template", service);
- tcaNode.put("useCaseName", tcaItem.getTcaName());
- tcaNode.put("signatureName", tcaItem.getTcaName() + "_" + tcaItem.getTcaUuId());
- tcaNode.put("signatureUuid", tcaItem.getTcaUuId());
- prop.setPolicyUniqueId(tcaItem.getPolicyId());
- tcaNode.put("closedLoopControlName", prop.getControlNameAndPolicyUniqueId());
- tcaNode.put("severity", tcaItem.getSeverity());
- tcaNode.put("maxInterval", tcaItem.getInterval());
- tcaNode.put("minMessageViolations", tcaItem.getViolations());
-
- tcaNodes.add(tcaNode);
- Iterator<TcaThreshhold> scItr = tcaItem.getTcaThreshholds().iterator();
- while (scItr.hasNext()) {
- TcaThreshhold tcaThreshhold = scItr.next();
- // "thresholds": [
- ArrayNode thNodes = tcaNode.withArray("thresholds");
- ObjectNode thNode = thNodes.addObject();
- thNode.put("fieldPath", tcaThreshhold.getFieldPath());
- thNode.put("thresholdName", tcaThreshhold.getMetric());
- thNode.put("thresholdValue", tcaThreshhold.getThreshhold());
- thNode.put("direction", tcaThreshhold.getOperator());
- }
- }
- }
-
-} \ No newline at end of file
diff --git a/src/main/java/org/onap/clamp/clds/client/req/TcaRequestFormatter.java b/src/main/java/org/onap/clamp/clds/client/req/TcaRequestFormatter.java
new file mode 100644
index 00000000..3fbf8739
--- /dev/null
+++ b/src/main/java/org/onap/clamp/clds/client/req/TcaRequestFormatter.java
@@ -0,0 +1,166 @@
+/*-
+ * ============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.client.req;
+
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.fasterxml.jackson.dataformat.yaml.snakeyaml.Yaml;
+
+import java.util.Map;
+
+import org.onap.clamp.clds.exception.TcaRequestFormatterException;
+import org.onap.clamp.clds.model.prop.ModelProperties;
+import org.onap.clamp.clds.model.prop.Tca;
+import org.onap.clamp.clds.model.prop.TcaItem;
+import org.onap.clamp.clds.model.prop.TcaThreshold;
+import org.onap.clamp.clds.model.refprop.RefProp;
+
+/**
+ * Construct the requests for TCA policy and SDC.
+ *
+ */
+public class TcaRequestFormatter {
+ protected static final EELFLogger logger = EELFManager.getInstance().getLogger(TcaRequestFormatter.class);
+ protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
+
+ /**
+ * Hide the default constructor.
+ */
+ private TcaRequestFormatter() {
+
+ }
+
+ /**
+ * Format Tca Policy JSON request.
+ *
+ * @param refProp
+ * The refProp generally created by Spring, it's an access on the
+ * clds-references.properties file
+ * @param modelProperties
+ * The Model Prop created from BPMN JSON and BPMN properties JSON
+ * @return The Json string containing that should be sent to policy
+ */
+ public static String createPolicyJson(RefProp refProp, ModelProperties modelProperties) {
+ try {
+ String service = modelProperties.getGlobal().getService();
+
+ Tca tca = modelProperties.getType(Tca.class);
+ modelProperties.setCurrentModelElementId(tca.getId());
+ ObjectNode rootNode = (ObjectNode) refProp.getJsonTemplate("tca.template", service);
+ ((ObjectNode) rootNode.get("cdap-tca-hi-lo_policy").get("metricsPerEventName").get(0)).put("policyName",
+ modelProperties.getCurrentPolicyScopeAndPolicyName());
+ ((ObjectNode) rootNode.get("cdap-tca-hi-lo_policy").get("metricsPerEventName").get(0)).put("eventName",
+ tca.getTcaItem().getEventName());
+
+ ObjectNode thresholdsParent = ((ObjectNode) rootNode.get("cdap-tca-hi-lo_policy").get("metricsPerEventName")
+ .get(0));
+
+ addThresholds(refProp, service, thresholdsParent, tca.getTcaItem(), modelProperties);
+
+ String tcaPolicyReq = rootNode.toString();
+ logger.info("tcaPolicyReq=" + tcaPolicyReq);
+ return tcaPolicyReq;
+ } catch (Exception e) {
+ throw new TcaRequestFormatterException("Exception caught when attempting to create the policy JSON", e);
+ }
+ }
+
+ /**
+ * Add threshold values to the existing policy JSON.
+ *
+ * @param refProp
+ * The refProp generally created by Spring, it's an access on the
+ * clds-references.properties file
+ * @param service
+ * The Service value extracted from Global section of the Bpmn
+ * Properties JSON
+ * @param appendToNode
+ * The JSON structure from where the thresholds section must be
+ * added
+ * @param tcaItem
+ * The TCA item contained in the Tca object
+ * @param modelProperties
+ * The Model Properties created from BPMN JSON and BPMN
+ * properties JSON
+ */
+ private static void addThresholds(RefProp refProp, String service, ObjectNode appendToNode, TcaItem tcaItem,
+ ModelProperties modelProperties) {
+ try {
+ ArrayNode tcaNodes = appendToNode.withArray("thresholds");
+ ObjectNode tcaNode = (ObjectNode) refProp.getJsonTemplate("tca.thresholds.template", service);
+
+ for (TcaThreshold tcaThreshold : tcaItem.getTcaThresholds()) {
+ tcaNode.put("controlLoopSchema", tcaThreshold.getControlLoopSchema());
+ tcaNode.put("closedLoopControlName", modelProperties.getControlNameAndPolicyUniqueId());
+ tcaNode.put("fieldPath", tcaThreshold.getFieldPath());
+ tcaNode.put("thresholdValue", tcaThreshold.getThreshold());
+ tcaNode.put("direction", tcaThreshold.getOperator());
+ tcaNode.put("closedLoopEventStatus", tcaThreshold.getClosedLoopEventStatus());
+ tcaNodes.add(tcaNode);
+ }
+ } catch (Exception e) {
+ throw new TcaRequestFormatterException("Exception caught when attempting to create the thresholds JSON", e);
+ }
+ }
+
+ /**
+ * This method updates the blueprint that is received in the UI with the TCA
+ * Json.
+ *
+ * @param refProp
+ * * The refProp generally created by Spring, it's an access on
+ * the clds-references.properties file
+ * @param modelProperties
+ * The Model Prop created from BPMN JSON and BPMN properties JSON
+ * @param yamlValue
+ * The yaml string received from the UI
+ * @return The updated YAML as a string
+ */
+ public static String updatedBlueprintWithConfiguration(RefProp refProp, ModelProperties modelProperties,
+ String yamlValue) {
+ try {
+ String jsonPolicy = createPolicyJson(refProp, modelProperties);
+
+ logger.info("Yaml that will be updated:" + yamlValue);
+ Yaml yaml = new Yaml();
+
+ Map<String, Object> loadedYaml = (Map<String, Object>) yaml.load(yamlValue);
+
+ Map<String, Object> nodeTemplates = (Map<String, Object>) loadedYaml.get("node_templates");
+ Map<String, Object> tcaObject = (Map<String, Object>) nodeTemplates.get("tca_tca");
+ Map<String, Object> propsObject = (Map<String, Object>) tcaObject.get("properties");
+ Map<String, Object> appPreferences = (Map<String, Object>) propsObject.get("app_preferences");
+ appPreferences.put("tca_policy", jsonPolicy);
+
+ String blueprint = yaml.dump(loadedYaml);
+ logger.info("Yaml updated:" + blueprint);
+
+ return blueprint;
+ } catch (Exception e) {
+ throw new TcaRequestFormatterException("Exception caught when attempting to update the blueprint", e);
+ }
+ }
+} \ No newline at end of file
diff --git a/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java b/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java
index a6baa969..6b7d337e 100644
--- a/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java
+++ b/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java
@@ -42,8 +42,6 @@ import org.onap.clamp.clds.client.OperationalPolicyDeleteDelegate;
import org.onap.clamp.clds.client.PolicyClient;
import org.onap.clamp.clds.client.SdcCatalogServices;
import org.onap.clamp.clds.client.SdcSendReqDelegate;
-import org.onap.clamp.clds.client.StringMatchPolicyDelegate;
-import org.onap.clamp.clds.client.StringMatchPolicyDeleteDelegate;
import org.onap.clamp.clds.client.TcaPolicyDelegate;
import org.onap.clamp.clds.client.TcaPolicyDeleteDelegate;
import org.onap.clamp.clds.dao.CldsDao;
@@ -128,16 +126,6 @@ public class CldsConfiguration {
return new OperationalPolicyDeleteDelegate();
}
- @Bean(name = "stringMatchPolicyDelegate")
- public StringMatchPolicyDelegate getStringMatchPolicyDelegate() {
- return new StringMatchPolicyDelegate();
- }
-
- @Bean(name = "stringMatchPolicyDeleteDelegate")
- public StringMatchPolicyDeleteDelegate getStringMatchPolicyDeleteDelegate() {
- return new StringMatchPolicyDeleteDelegate();
- }
-
@Bean(name = "sdcCatalogServices")
public SdcCatalogServices getSdcCatalogServices() {
return new SdcCatalogServices();
diff --git a/src/main/java/org/onap/clamp/clds/model/prop/Collector.java b/src/main/java/org/onap/clamp/clds/exception/TcaRequestFormatterException.java
index be30f3ec..055b47ff 100644
--- a/src/main/java/org/onap/clamp/clds/model/prop/Collector.java
+++ b/src/main/java/org/onap/clamp/clds/exception/TcaRequestFormatterException.java
@@ -5,50 +5,59 @@
* 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.
+ * 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
+ *
+ * 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.model.prop;
-
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-import com.fasterxml.jackson.databind.JsonNode;
+package org.onap.clamp.clds.exception;
/**
- * Parse Collector json properties.
+ * New exception to capture TcaRequestFormatterException errors.
+ *
*/
-public class Collector extends AbstractModelElement {
- protected static final EELFLogger logger = EELFManager.getInstance().getLogger(Collector.class);
- protected static final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger();
+public class TcaRequestFormatterException extends RuntimeException {
- private static final String TYPE_COLLECTOR = "collector";
+ /**
+ *
+ */
+ private static final long serialVersionUID = 169875373143236667L;
/**
- * Parse Collector given json node.
- *
- * @param modelBpmn
- * @param modelJson
+ * This constructor can be used to create a new
+ * TcaRequestFormatterException.
+ *
+ * @param message
+ * A string message detailing the problem
+ * @param e
+ * The exception sent by the code
*/
- public Collector(ModelProperties modelProp, ModelBpmn modelBpmn, JsonNode modelJson) {
- super(TYPE_COLLECTOR, modelProp, modelBpmn, modelJson);
- topicPublishes = getValueByName("topicPublishes");
+ public TcaRequestFormatterException(String message, Throwable e) {
+ super(message, e);
}
- public static final String getType() {
- return TYPE_COLLECTOR;
+ /**
+ * This constructor can be used to create a new
+ * TcaRequestFormatterException. Use this constructor only if you are
+ * creating a new exception stack, not if an exception was already raised by
+ * another code.
+ *
+ * @param message
+ * A string message detailing the problem
+ */
+ public TcaRequestFormatterException(String message) {
+ super(message);
}
}
diff --git a/src/main/java/org/onap/clamp/clds/model/prop/AbstractModelElement.java b/src/main/java/org/onap/clamp/clds/model/prop/AbstractModelElement.java
index 7038dc6c..9ced0199 100644
--- a/src/main/java/org/onap/clamp/clds/model/prop/AbstractModelElement.java
+++ b/src/main/java/org/onap/clamp/clds/model/prop/AbstractModelElement.java
@@ -33,7 +33,7 @@ import java.util.List;
/**
* Provide base ModelElement functionality. Perform base parsing of properties
- * for a ModelElement (such as, Collector, StringMatch, Policy, Tca, Holmes,
+ * for a ModelElement (such as, VesCollector, Policy, Tca, Holmes,
* ...)
*/
public abstract class AbstractModelElement {
@@ -54,7 +54,7 @@ public abstract class AbstractModelElement {
/**
* Perform base parsing of properties for a ModelElement (such as,
- * Collector, StringMatch, Policy and Tca)
+ * VesCollector, Policy and Tca)
*
* @param type
* @param modelProp
diff --git a/src/main/java/org/onap/clamp/clds/model/prop/ModelBpmn.java b/src/main/java/org/onap/clamp/clds/model/prop/ModelBpmn.java
index ae7028dc..f3d344a7 100644
--- a/src/main/java/org/onap/clamp/clds/model/prop/ModelBpmn.java
+++ b/src/main/java/org/onap/clamp/clds/model/prop/ModelBpmn.java
@@ -45,9 +45,8 @@ import org.onap.clamp.clds.service.CldsService;
/**
* Parse Model BPMN properties.
* <p>
- * Example json: {"collector":[{"id":"Collector_11r50j1",
- * "from":"StartEvent_1"}],"stringMatch":[{"id":"StringMatch_0h6cbdv"}],"policy"
- * :[{"id":"Policy_0oxeocn", "from":"StringMatch_0h6cbdv"}]}
+ * Example json: {"policy"
+ * :[{"id":"Policy_0oxeocn", "from":"StartEvent_1"}]}
*/
public class ModelBpmn {
protected static final EELFLogger logger = EELFManager.getInstance()
@@ -77,7 +76,7 @@ public class ModelBpmn {
ObjectMapper objectMapper = new ObjectMapper();
ObjectNode root = objectMapper.readValue(modelBpmnPropText, ObjectNode.class);
// iterate over each entry like:
- // "collector":[{"id":"Collector_11r50j1","from":"StartEvent_1"}]
+ // "Policy":[{"id":"Policy","from":"StartEvent_1"}]
Iterator<Entry<String, JsonNode>> entryItr = root.fields();
List<String> bpmnElementIdList = new ArrayList<>();
while (entryItr.hasNext()) {
@@ -86,7 +85,7 @@ public class ModelBpmn {
String type = entry.getKey();
ArrayNode arrayNode = (ArrayNode) entry.getValue();
// process each id/from object, like:
- // {"id":"Collector_11r50j1","from":"StartEvent_1"}
+ // {"id":"Policy","from":"StartEvent_1"}
for (JsonNode anArrayNode : arrayNode) {
ObjectNode node = (ObjectNode) anArrayNode;
String id = node.get("id").asText();
@@ -123,11 +122,11 @@ public class ModelBpmn {
}
/**
- * This method verifies if the ModelElement Type (collector, holmes, tca,
+ * This method verifies if the ModelElement Type (holmes, tca,
* ...) is in the list.
*
* @param type
- * A model Element type (tca, collector, ...)
+ * A model Element type (tca, ...)
* @return true if the element is found or false otherwise
*/
public boolean isModelElementTypeInList(String type) {
diff --git a/src/main/java/org/onap/clamp/clds/model/prop/ModelBpmnEntry.java b/src/main/java/org/onap/clamp/clds/model/prop/ModelBpmnEntry.java
index 210795be..dc668229 100644
--- a/src/main/java/org/onap/clamp/clds/model/prop/ModelBpmnEntry.java
+++ b/src/main/java/org/onap/clamp/clds/model/prop/ModelBpmnEntry.java
@@ -29,9 +29,8 @@ import com.att.eelf.configuration.EELFManager;
/**
* Model BPMN property entry
* <p>
- * Example json: {"collector":[{"id":"Collector_11r50j1",
- * "from":"StartEvent_1"}],"stringMatch":[{"id":"StringMatch_0h6cbdv"],"policy":
- * [{"id":"Policy_0oxeocn", "from":"StringMatch_0h6cbdv"}]}
+ * Example json: {"policy":
+ * [{"id":"Policy_0oxeocn", "from":"StartEvent_1"}]}
*/
public class ModelBpmnEntry {
protected static final EELFLogger logger = EELFManager.getInstance().getLogger(ModelBpmnEntry.class);
diff --git a/src/main/java/org/onap/clamp/clds/model/prop/ModelProperties.java b/src/main/java/org/onap/clamp/clds/model/prop/ModelProperties.java
index dc0de326..7111f1dd 100644
--- a/src/main/java/org/onap/clamp/clds/model/prop/ModelProperties.java
+++ b/src/main/java/org/onap/clamp/clds/model/prop/ModelProperties.java
@@ -72,10 +72,9 @@ public class ModelProperties {
static {
synchronized (lock) {
- modelElementClasses.put(Collector.class, Collector.getType());
modelElementClasses.put(Policy.class, Policy.getType());
- modelElementClasses.put(StringMatch.class, StringMatch.getType());
modelElementClasses.put(Tca.class, Tca.getType());
+ modelElementClasses.put(Holmes.class, Holmes.getType());
}
}
@@ -136,7 +135,7 @@ public class ModelProperties {
.newInstance(this, modelBpmn, modelJson)));
} catch (InstantiationException | NoSuchMethodException | IllegalAccessException
| InvocationTargetException e) {
- logger.warn("Unable to instantiate a ModelElement, exception follows: " + e);
+ logger.warn("Unable to instantiate a ModelElement, exception follows: ", e);
}
});
}
diff --git a/src/main/java/org/onap/clamp/clds/model/prop/ResourceGroup.java b/src/main/java/org/onap/clamp/clds/model/prop/ResourceGroup.java
index 7395ced0..8b2dbeb8 100644
--- a/src/main/java/org/onap/clamp/clds/model/prop/ResourceGroup.java
+++ b/src/main/java/org/onap/clamp/clds/model/prop/ResourceGroup.java
@@ -35,7 +35,7 @@ import java.util.List;
* Parse Resource Group json properties.
*
* Example json:
- * {"StringMatch_0aji7go":{"Group1":[{"name":"rgname","value":"1493749598520"},{
+ * {"TCA_0aji7go":{"Group1":[{"name":"rgname","value":"1493749598520"},{
* "name":"rgfriendlyname","value":"Group1"},{"name":"policyName","value":
* "Policy1"},{"name":"policyId","value":"1"},{"serviceConfigurations":[[{"name"
* :"aaiMatchingFields","value":["complex.city","vserver.vserver-name"]},{"name"
diff --git a/src/main/java/org/onap/clamp/clds/model/prop/ServiceConfiguration.java b/src/main/java/org/onap/clamp/clds/model/prop/ServiceConfiguration.java
index f15d7019..418afbb9 100644
--- a/src/main/java/org/onap/clamp/clds/model/prop/ServiceConfiguration.java
+++ b/src/main/java/org/onap/clamp/clds/model/prop/ServiceConfiguration.java
@@ -33,10 +33,10 @@ import com.att.eelf.configuration.EELFManager;
import com.fasterxml.jackson.databind.JsonNode;
/**
- * Parse serviceConfigurations from StringMatch json properties.
+ * Parse serviceConfigurations from Tca json properties.
* <p>
* Example json:
- * {"StringMatch_0aji7go":{"Group1":[{"name":"rgname","value":"1493749598520"},{
+ * {"Tca_0aji7go":{"Group1":[{"name":"rgname","value":"1493749598520"},{
* "name":"rgfriendlyname","value":"Group1"},{"name":"policyName","value":
* "Policy1"},{"name":"policyId","value":"1"},{"serviceConfigurations":[[{"name"
* :"aaiMatchingFields","value":["complex.city","vserver.vserver-name"]},{"name"
diff --git a/src/main/java/org/onap/clamp/clds/model/prop/StringMatch.java b/src/main/java/org/onap/clamp/clds/model/prop/StringMatch.java
deleted file mode 100644
index b74e7d13..00000000
--- a/src/main/java/org/onap/clamp/clds/model/prop/StringMatch.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*-
- * ============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.model.prop;
-
-import com.fasterxml.jackson.databind.JsonNode;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * Parse StringMatch json properties.
- * <p>
- * Example json:
- * {"StringMatch_0aji7go":{"Group1":[{"name":"rgname","value":"1493749598520"},{
- * "name":"rgfriendlyname","value":"Group1"},{"name":"policyName","value":
- * "Policy1"},{"name":"policyId","value":"1"},{"serviceConfigurations":[[{"name"
- * :"aaiMatchingFields","value":["complex.city","vserver.vserver-name"]},{"name"
- * :"aaiSendFields","value":["complex.city","vserver.vserver-name"]},{"name":
- * "eventSeverity","value":["OK"]},{"name":"eventSourceType","value":[""]},{
- * "name":"timeWindow","value":["100"]},{"name":"ageLimit","value":["100"]},{
- * "name":"createClosedLoopEventId","value":["Initial"]},{"name":
- * "outputEventName","value":["ONSET"]}]]}],"Group2":[{"name":"rgname","value":
- * "1493749665149"},{"name":"rgfriendlyname","value":"Group2"},{"name":
- * "policyName","value":"Policy2"},{"name":"policyId","value":"2"},{
- * "serviceConfigurations":[[{"name":"aaiMatchingFields","value":[
- * "cloud-region.identity-url","vserver.vserver-name"]},{"name":"aaiSendFields",
- * "value":["cloud-region.identity-url","vserver.vserver-name"]},{"name":
- * "eventSeverity","value":["NORMAL"]},{"name":"eventSourceType","value":[""]},{
- * "name":"timeWindow","value":["1000"]},{"name":"ageLimit","value":["1000"]},{
- * "name":"createClosedLoopEventId","value":["Initial"]},{"name":
- * "outputEventName","value":["ONSET"]}],[{"name":"aaiMatchingFields","value":[
- * "generic-vnf.vnf-name","vserver.vserver-name"]},{"name":"aaiSendFields",
- * "value":["generic-vnf.vnf-name","vserver.vserver-name"]},{"name":
- * "eventSeverity","value":["CRITICAL"]},{"name":"eventSourceType","value":[""]}
- * ,{"name":"timeWindow","value":["3000"]},{"name":"ageLimit","value":["3000"]},
- * {"name":"createClosedLoopEventId","value":["Initial"]},{"name":
- * "outputEventName","value":["ABATED"]}]]}]}}
- *
- */
-public class StringMatch extends AbstractModelElement {
-
- private List<ResourceGroup> resourceGroups;
-
- private static final String TYPE_STRING_MATCH = "stringMatch";
-
- /**
- * Parse StringMatch given json node.
- *
- * @param modelBpmn
- * @param modelJson
- */
- public StringMatch(ModelProperties modelProp, ModelBpmn modelBpmn, JsonNode modelJson) {
- super(TYPE_STRING_MATCH, modelProp, modelBpmn, modelJson);
-
- // process Server_Configurations
- if (modelElementJsonNode != null) {
- Iterator<JsonNode> itr = modelElementJsonNode.elements();
- resourceGroups = new ArrayList<>();
- while (itr.hasNext()) {
- resourceGroups.add(new ResourceGroup(itr.next()));
- }
- }
- }
-
- /**
- * @return the resourceGroups
- */
- public List<ResourceGroup> getResourceGroups() {
- return resourceGroups;
- }
-
- public static final String getType() {
- return TYPE_STRING_MATCH;
- }
-
-}
diff --git a/src/main/java/org/onap/clamp/clds/model/prop/Tca.java b/src/main/java/org/onap/clamp/clds/model/prop/Tca.java
index f7bbac0d..4fd6b595 100644
--- a/src/main/java/org/onap/clamp/clds/model/prop/Tca.java
+++ b/src/main/java/org/onap/clamp/clds/model/prop/Tca.java
@@ -27,25 +27,8 @@ import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
import com.fasterxml.jackson.databind.JsonNode;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
/**
- * Parse Tca json properties.
- *
- * Example json:
- * {"TCA_0lm6cix":{"Narra":[{"name":"tname","value":"Narra"},{"name":"tcaEnab",
- * "value":"on"},{"name":"tcaPol","value":"Polcicy1"},{"name":"tcaPolId","value"
- * :"1"},{"name":"tcaInt","value":"1"},{"name":"tcaSev","value":"Critical"},{
- * "name":"tcaVio","value":"1"},{"serviceConfigurations":[["FIELDPATH_test_1",
- * ">","4"],["FIELDPATH_test_1","=","5"]]}],"Srini":[{"name":"tname","value":
- * "Srini"},{"name":"tcaEnab","value":"on"},{"name":"tcaPol","value":"Policy1"},
- * {"name":"tcaPolId","value":"1"},{"name":"tcaInt","value":"1"},{"name":
- * "tcaSev","value":"Major"},{"name":"tcaVio","value":"1"},{
- * "serviceConfigurations":[["FIELDPATH_test_2","=","3"],["FIELDPATH_test_1",">"
- * ,"2"]]}]}}
- *
+ * Parse ONAP Tca json properties.
*
*/
public class Tca extends AbstractModelElement {
@@ -53,7 +36,7 @@ public class Tca extends AbstractModelElement {
protected static final EELFLogger logger = EELFManager.getInstance().getLogger(Tca.class);
protected static final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger();
- private List<TcaItem> tcaItems;
+ private TcaItem tcaItem;
private static final String TYPE_TCA = "tca";
@@ -69,16 +52,12 @@ public class Tca extends AbstractModelElement {
// process Server_Configurations
if (modelElementJsonNode != null) {
- Iterator<JsonNode> itr = modelElementJsonNode.elements();
- tcaItems = new ArrayList<>();
- while (itr.hasNext()) {
- tcaItems.add(new TcaItem(itr.next()));
- }
+ tcaItem = new TcaItem(modelElementJsonNode.elements().next());
}
}
- public List<TcaItem> getTcaItems() {
- return tcaItems;
+ public TcaItem getTcaItem() {
+ return tcaItem;
}
public static final String getType() {
diff --git a/src/main/java/org/onap/clamp/clds/model/prop/TcaItem.java b/src/main/java/org/onap/clamp/clds/model/prop/TcaItem.java
index f104b091..79da2db0 100644
--- a/src/main/java/org/onap/clamp/clds/model/prop/TcaItem.java
+++ b/src/main/java/org/onap/clamp/clds/model/prop/TcaItem.java
@@ -23,45 +23,28 @@
package org.onap.clamp.clds.model.prop;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
import com.fasterxml.jackson.databind.JsonNode;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
/**
- * Parse Tca Item json properties.
- *
- * Example json:
- * {"TCA_0lm6cix":{"Narra":[{"name":"tname","value":"Narra"},{"name":"tcaEnab",
- * "value":"on"},{"name":"tcaPol","value":"Polcicy1"},{"name":"tcaPolId","value"
- * :"1"},{"name":"tcaInt","value":"1"},{"name":"tcaSev","value":"Critical"},{
- * "name":"tcaVio","value":"1"},{"serviceConfigurations":[["FIELDPATH_test_1",
- * ">","4"],["FIELDPATH_test_1","=","5"]]}],"Srini":[{"name":"tname","value":
- * "Srini"},{"name":"tcaEnab","value":"on"},{"name":"tcaPol","value":"Policy1"},
- * {"name":"tcaPolId","value":"1"},{"name":"tcaInt","value":"1"},{"name":
- * "tcaSev","value":"Major"},{"name":"tcaVio","value":"1"},{
- * "serviceConfigurations":[["FIELDPATH_test_2","=","3"],["FIELDPATH_test_1",">"
- * ,"2"]]}]}}
- *
+ * Parse ONAP Tca Item json properties.
*
*/
public class TcaItem {
- protected static final EELFLogger logger = EELFManager.getInstance().getLogger(TcaItem.class);
+ protected static final EELFLogger logger = EELFManager.getInstance().getLogger(TcaItem.class);
protected static final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger();
- private String tcaName;
- private String tcaUuId;
- private String nfNamingCode;
- private String tcaEnable;
- private String policyId;
- private Integer interval;
- private String severity;
- private Integer violations;
- private List<TcaThreshhold> tcaThreshholds;
+ private String tcaName;
+ private String tcaUuId;
+ private String policyId;
+ private String eventName;
+ private List<TcaThreshold> tcaThresholds;
/**
* Parse Tca Item given json node
@@ -72,23 +55,14 @@ public class TcaItem {
tcaName = AbstractModelElement.getValueByName(node, "tname");
tcaUuId = AbstractModelElement.getValueByName(node, "tuuid");
- nfNamingCode = AbstractModelElement.getValueByName(node, "tnfc");
- tcaEnable = AbstractModelElement.getValueByName(node, "tcaEnab");
policyId = AbstractModelElement.getValueByName(node, "tcaPolId");
- if (AbstractModelElement.getValueByName(node, "tcaInt") != null) {
- interval = Integer.valueOf(AbstractModelElement.getValueByName(node, "tcaInt"));
- }
- severity = AbstractModelElement.getValueByName(node, "tcaSev");
- if (AbstractModelElement.getValueByName(node, "tcaVio") != null) {
- violations = Integer.valueOf(AbstractModelElement.getValueByName(node, "tcaVio"));
- }
-
+ eventName = AbstractModelElement.getValueByName(node, "eventName");
// process service Configurations
JsonNode serviceConfigurationsNode = node.get(node.size() - 1).get("serviceConfigurations");
Iterator<JsonNode> itr = serviceConfigurationsNode.elements();
- tcaThreshholds = new ArrayList<TcaThreshhold>();
+ tcaThresholds = new ArrayList<>();
while (itr.hasNext()) {
- tcaThreshholds.add(new TcaThreshhold(itr.next()));
+ tcaThresholds.add(new TcaThreshold(itr.next()));
}
}
@@ -108,22 +82,6 @@ public class TcaItem {
this.tcaUuId = tcaUuId;
}
- public String getNfNamingCode() {
- return nfNamingCode;
- }
-
- public void setNfNamingCode(String nfNamingCode) {
- this.nfNamingCode = nfNamingCode;
- }
-
- public String getTcaEnable() {
- return tcaEnable;
- }
-
- public void setTcaEnable(String tcaEnable) {
- this.tcaEnable = tcaEnable;
- }
-
public String getPolicyId() {
return policyId;
}
@@ -132,32 +90,16 @@ public class TcaItem {
this.policyId = policyId;
}
- public Integer getInterval() {
- return interval;
- }
-
- public void setInterval(Integer interval) {
- this.interval = interval;
- }
-
- public String getSeverity() {
- return severity;
- }
-
- public void setSeverity(String severity) {
- this.severity = severity;
- }
-
- public Integer getViolations() {
- return violations;
+ public List<TcaThreshold> getTcaThresholds() {
+ return tcaThresholds;
}
- public void setViolations(Integer violations) {
- this.violations = violations;
+ public String getEventName() {
+ return eventName;
}
- public List<TcaThreshhold> getTcaThreshholds() {
- return tcaThreshholds;
+ public void setEventName(String eventName) {
+ this.eventName = eventName;
}
}
diff --git a/src/main/java/org/onap/clamp/clds/model/prop/TcaThreshhold.java b/src/main/java/org/onap/clamp/clds/model/prop/TcaThreshold.java
index 39369f17..43bdb5c1 100644
--- a/src/main/java/org/onap/clamp/clds/model/prop/TcaThreshhold.java
+++ b/src/main/java/org/onap/clamp/clds/model/prop/TcaThreshold.java
@@ -28,59 +28,42 @@ import com.att.eelf.configuration.EELFManager;
import com.fasterxml.jackson.databind.JsonNode;
/**
- * Parse Tca Threshhold json properties.
- *
- * Example json:
- * {"TCA_0lm6cix":{"Narra":[{"name":"tname","value":"Narra"},{"name":"tcaEnab",
- * "value":"on"},{"name":"tcaPol","value":"Polcicy1"},{"name":"tcaPolId","value"
- * :"1"},{"name":"tcaInt","value":"1"},{"name":"tcaSev","value":"Critical"},{
- * "name":"tcaVio","value":"1"},{"serviceConfigurations":[["FIELDPATH_test_1",
- * ">","4"],["FIELDPATH_test_1","=","5"]]}],"Srini":[{"name":"tname","value":
- * "Srini"},{"name":"tcaEnab","value":"on"},{"name":"tcaPol","value":"Policy1"},
- * {"name":"tcaPolId","value":"1"},{"name":"tcaInt","value":"1"},{"name":
- * "tcaSev","value":"Major"},{"name":"tcaVio","value":"1"},{
- * "serviceConfigurations":[["FIELDPATH_test_2","=","3"],["FIELDPATH_test_1",">"
- * ,"2"]]}]}}
- *
+ * Parse ONAP Tca Threshold json properties.
*
*/
-public class TcaThreshhold {
+public class TcaThreshold {
- protected static final EELFLogger logger = EELFManager.getInstance().getLogger(TcaThreshhold.class);
+ protected static final EELFLogger logger = EELFManager.getInstance().getLogger(TcaThreshold.class);
protected static final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger();
- private String metric;
- private String fieldPath;
- private String operator;
- private Integer threshhold;
+ private String fieldPath;
+ private String operator;
+ private Integer threshold;
+ private String closedLoopEventStatus;
+ private String controlLoopSchema;
/**
* Parse Tca Threshhold given json node
*
* @param node
*/
- public TcaThreshhold(JsonNode node) {
+ public TcaThreshold(JsonNode node) {
if (node.get(0) != null) {
- metric = node.get(0).asText();
+ fieldPath = node.get(0).asText();
}
if (node.get(1) != null) {
operator = node.get(1).asText();
}
if (node.get(2) != null) {
- threshhold = Integer.valueOf(node.get(2).asText());
+ threshold = Integer.valueOf(node.get(2).asText());
}
if (node.get(3) != null) {
- fieldPath = node.get(3).asText();
+ controlLoopSchema = node.get(3).asText();
+ }
+ if (node.get(4) != null) {
+ closedLoopEventStatus = node.get(4).asText();
}
- }
-
- public String getMetric() {
- return metric;
- }
-
- public void setMetric(String metric) {
- this.metric = metric;
}
public String getFieldPath() {
@@ -99,12 +82,27 @@ public class TcaThreshhold {
this.operator = operator;
}
- public Integer getThreshhold() {
- return threshhold;
+ public Integer getThreshold() {
+ return threshold;
}
- public void setThreshhold(Integer threshhold) {
- this.threshhold = threshhold;
+ public void setThreshold(Integer threshold) {
+ this.threshold = threshold;
}
+ public String getClosedLoopEventStatus() {
+ return closedLoopEventStatus;
+ }
+
+ public void setClosedLoopEventStatus(String closedLoopEventStatus) {
+ this.closedLoopEventStatus = closedLoopEventStatus;
+ }
+
+ public String getControlLoopSchema() {
+ return controlLoopSchema;
+ }
+
+ public void setControlLoopSchema(String controlLoopSchema) {
+ this.controlLoopSchema = controlLoopSchema;
+ }
}
diff --git a/src/main/java/org/onap/clamp/clds/service/CldsTemplateService.java b/src/main/java/org/onap/clamp/clds/service/CldsTemplateService.java
index e6e7325a..e29b1887 100644
--- a/src/main/java/org/onap/clamp/clds/service/CldsTemplateService.java
+++ b/src/main/java/org/onap/clamp/clds/service/CldsTemplateService.java
@@ -65,8 +65,6 @@ import org.springframework.beans.factory.annotation.Value;
@Path("/cldsTempate")
public class CldsTemplateService extends SecureServiceBase {
- private static final String COLLECTOR_KEY = "Collector";
- private static final String STRING_MATCH_KEY = "StringMatch";
private static final String POLICY_KEY = "Policy";
@Value("${CLDS_PERMISSION_TYPE_TEMPLATE:permission-type-template}")
@@ -314,16 +312,12 @@ public class CldsTemplateService extends SecureServiceBase {
if (keyPropName != null && keyPropName.equalsIgnoreCase(currElementId)) {
ArrayNode arrayNode = (ArrayNode) entry.getValue();
// process each id/from object, like:
- // {"id":"Collector_11r50j1", "from":"StartEvent_1"}
+ // {"id":"Policy_11r50j1", "from":"StartEvent_1"}
for (JsonNode anArrayNode : arrayNode) {
ObjectNode node = (ObjectNode) anArrayNode;
String valueNode = node.get("value").asText();
logger.info("value of node:" + valueNode);
- if (keyPropName.startsWith(COLLECTOR_KEY)) {
- valueNode = COLLECTOR_KEY + "_" + valueNode;
- } else if (keyPropName.startsWith(STRING_MATCH_KEY)) {
- valueNode = STRING_MATCH_KEY + "_" + valueNode;
- } else if (keyPropName.startsWith(POLICY_KEY)) {
+ if (keyPropName.startsWith(POLICY_KEY)) {
valueNode = POLICY_KEY + "_" + valueNode;
}
bpmnIoIdsMap.put(keyPropName, valueNode);