summaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/onap/clamp/clds/client/PolicyClient.java41
-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.java18
-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/exception/TcaRequestFormatterException.java63
-rw-r--r--src/main/java/org/onap/clamp/clds/model/prop/ModelProperties.java2
-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/resources/META-INF/resources/designer/partials/portfolios/tca_properties.html240
-rw-r--r--src/main/resources/clds/clds-reference.properties17
-rw-r--r--src/main/resources/clds/globalClds.properties2
13 files changed, 438 insertions, 447 deletions
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 391e39556..7aa1330f2 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/TcaPolicyDelegate.java b/src/main/java/org/onap/clamp/clds/client/TcaPolicyDelegate.java
index 9debcc2a6..7de126831 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 c5e26f30a..32846ed01 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;
@@ -89,25 +88,14 @@ public class SdcReq {
String updatedBlueprint = "";
Tca tca = prop.getType(Tca.class);
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);
- }
-
+ updatedBlueprint = TcaRequestFormatter.updatedBlueprintWithConfiguration(refProp, prop, yamlvalue);
+ }
logger.info("value of blueprint:" + updatedBlueprint);
return updatedBlueprint;
}
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/TcaMPolicyReq.java b/src/main/java/org/onap/clamp/clds/client/req/TcaMPolicyReq.java
deleted file mode 100644
index f31062893..000000000
--- 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 000000000..3fbf87397
--- /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/exception/TcaRequestFormatterException.java b/src/main/java/org/onap/clamp/clds/exception/TcaRequestFormatterException.java
new file mode 100644
index 000000000..055b47ff8
--- /dev/null
+++ b/src/main/java/org/onap/clamp/clds/exception/TcaRequestFormatterException.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.exception;
+
+/**
+ * New exception to capture TcaRequestFormatterException errors.
+ *
+ */
+public class TcaRequestFormatterException extends RuntimeException {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 169875373143236667L;
+
+ /**
+ * 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 TcaRequestFormatterException(String message, Throwable e) {
+ super(message, e);
+ }
+
+ /**
+ * 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/ModelProperties.java b/src/main/java/org/onap/clamp/clds/model/prop/ModelProperties.java
index b9effc57a..7111f1dd5 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
@@ -135,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/Tca.java b/src/main/java/org/onap/clamp/clds/model/prop/Tca.java
index f7bbac0de..4fd6b595d 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 f104b0917..79da2db06 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 39369f171..43bdb5c1b 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/resources/META-INF/resources/designer/partials/portfolios/tca_properties.html b/src/main/resources/META-INF/resources/designer/partials/portfolios/tca_properties.html
index 7305fd91a..546909ab2 100644
--- a/src/main/resources/META-INF/resources/designer/partials/portfolios/tca_properties.html
+++ b/src/main/resources/META-INF/resources/designer/partials/portfolios/tca_properties.html
@@ -70,17 +70,22 @@
}
#tcaEditHolder{
- height:260px;
background-color: #f5f5f5;
- padding:10px 0px;
+ padding:10px 10px;
margin: 15px 15px 0 0;
float: right;
}
+
+
+#tcaEditHolder #properties_tab>div+div {
+ margin-top: 10px;
+}
+
.tcaErr{
display:none;
text-align:center;
margin-bottom:20px;
- color:red;"
+ color:red;
}
.tcaParentItems {
@@ -155,12 +160,6 @@
<div style="height: 10px"></div>
<div class="panel panel-default" id="panelHolder">
- <div class="panel-heading">
- <ul id="nav_Tabs" class="nav nav-tabs">
- <li class><a id="add_one_more" href="#desc_tab"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span></a></li>
- </ul>
- </div>
-
<span id="formSpan" style="display:none;">
<div class="panel-body">
@@ -179,19 +178,6 @@
<input class="form-control" onkeydown="return false;" type="text" id="tuuid" name="tuuid"></input>
</div>
</div>
-
- <div class="col-sm-8 form-group" style="display:none;">
- <label class="col-sm-3"> NF Code </label>
- <div class="col-sm-9" style="padding:0px;">
- <input class="form-control" onkeydown="return false;" type="text" id="tnfc" name="tnfc"></input>
- </div>
- </div>
-
- <div class="col-sm-3 form-group">
- <label class="col-sm-8"> Enable </label>
- <input class="col-sm-4" type="checkbox" style="height:21px;
- width:21px; margin:6px;" checked="checked" id="tcaEnab" name="tcaEnab"></input>
- </div>
</div>
<div class="row">
<div class="col-sm-8 form-group">
@@ -200,6 +186,12 @@
<select name="tcaPol" id="tcaPol" enableFilter="true"></select>
</div>
</div>
+ <div class="col-sm-8 form-group">
+ <label class="col-sm-3">EventName</label>
+ <div class="col-sm-9" style="padding:0px;">
+ <select name="eventName" id="eventName" enableFilter="true"></select>
+ </div>
+ </div>
<div class="col-sm-8 form-group" style="display:none;">
<label class="col-sm-3"> Policy ID </label>
@@ -207,27 +199,7 @@
<input class="form-control" onkeydown="return false;" type="text" id="tcaPolId" name="tcaPolId"></input>
</div>
</div>
-
- <div class="col-sm-3 form-group">
- <label class="col-sm-8">Max Intervals</label>
- <input class="col-sm-4 form-control" style="width:80%" type="text" maxlength="3"
- id="tcaInt" onkeypress="return isNumberKey(event)" name="tcaInt"></input>
- </div>
- </div>
- <div class="row">
- <div class="col-sm-8 form-group">
- <label class="col-sm-3"> Severity </label>
- <div class="col-sm-9" style="padding:0px;">
- <select name="tcaSev" id="tcaSev" enableFilter="false">
- </select>
- </div>
- </div>
-
- <div class="col-sm-3 form-group">
- <label class="col-sm-8">Min Violations</label>
- <input class="col-sm-4 form-control" style="width:80%" type="text" maxlength="3"
- id="tcaVio" onkeypress="return isNumberKey(event)" name="tcaVio"></input>
- </div>
+
</div>
</form>
@@ -250,26 +222,38 @@
<div id="tcaEditHolder" class="panel panel-default col-sm-6">
<div class="tab-content">
- <div id="properties_tab" style="padding:10px;" class="form-horizontal">
- <div style="margin-bottom:20px;">
+ <div id="properties_tab" class="form-vertical">
+ <div>
<label class="control-label">Metric</label>
<div>
<select id="fieldPathM" name="fieldPathM"></select>
</div>
</div>
- <div style="margin-bottom:20px;">
+ <div>
<label class="control-label">Operator</label>
<div>
<select id="operator" name="operator"></select>
</div>
</div>
- <div style="margin-bottom:20px;">
+ <div>
<label class="control-label">Threshold</label>
<div>
<input type="text" maxlength="10" class="form-control" name="threshold"
onkeypress="return isNumberKey(event)" id="threshold"></input>
</div>
</div>
+ <div>
+ <label class="control-label">Control Loop Schema</label>
+ <div>
+ <select id="controlLoopSchema" name="controlLoopSchema"></select>
+ </div>
+ </div>
+ <div>
+ <label class="control-label">Closed Loop Event Status</label>
+ <div>
+ <select id="closedLoopEventStatus" name="closedLoopEventStatus"></select>
+ </div>
+ </div>
</div>
</div>
</div>
@@ -289,7 +273,16 @@
class="btn btn-primary">Cancel</button>
</div>
- <script>
+ <script language="javascript">
+ // helper that make jquery objects visibles or invisible
+ // to use instead of show to keep placeholder size correct
+ jQuery.fn.visible = function() {
+ return this.css('visibility', 'visible');
+ };
+ jQuery.fn.invisible = function() {
+ return this.css('visibility', 'hidden');
+ };
+
var generateTUUID = function(count){
var d = new Date().getTime();
var tuuid = 'xxxxxxxx-xxxx-txxx-xxxx-xxxxxxxxxxxx'.replace(/[x]/g, function(c){
@@ -298,30 +291,17 @@
return (c == 'x' ? r : (r*0x3|0*8)).toString(16);
});
$("#formId" + count + " #tuuid").val(tuuid);
- }
-
- $("#add_one_more").click(function(event) {
- event.preventDefault();
- if ($("#nav_Tabs li.active").length>0){
- var oldCount = $("#nav_Tabs li.active").find("a").attr("id").slice(-1);
- if (($('#formId'+oldCount+' #tcaTable .highlight').length > 0 ) &&
- (!($('#formId'+oldCount+' #threshold').val()) || !($('#formId'+oldCount+' #fieldPathM').val())) ) {
- $('#formId'+oldCount+' #tcaError').show();
- return;
- } else {
- $('#formId'+oldCount+' .tcaErr').hide();
- if ($('#formId'+oldCount+' #tcaTable .highlight').length > 0){
- $('#formId'+oldCount+' #tcaTable .highlight td').text(
- $('#formId'+oldCount+' #fieldPathM').val() + ' ' +
- $('#formId'+oldCount+' #operator').val() + ' ' +
- $('#formId'+oldCount+' #threshold').val());
- }
- $("#formId"+oldCount+" #tcaTable .highlight").removeClass("highlight")
- }
- }
- var count = add_one_more();
- generateTUUID(count);
- })
+ };
+
+
+ var propertiesToString = function(formIdNum) {
+ return $('#formId'+formIdNum+' #fieldPathM').find(':selected').text() + ' ' +
+ $('#formId'+formIdNum+' #operator').val() + ' ' +
+ $('#formId'+formIdNum+' #threshold').val() + ' ' +
+ $('#formId'+formIdNum+' #controlLoopSchema').val() + ' ' +
+ $('#formId'+formIdNum+' #closedLoopEventStatus').val();
+ };
+
loadPropertyWindow("tca");
//load dropdown with policy options
@@ -340,79 +320,54 @@
}
}
}
-
+
+ var fieldPathMLabel2Value = function(label) {
+ return Object.keys(defaults_props['tca']['fieldPathM']).find(key => defaults_props['tca']['fieldPathM'][key] == label)
+ }
+ var fieldPathMValue2Label = function(value) {
+ return defaults_props['tca']['fieldPathM'][value];
+ }
+
setASDCFields();
-
- //load metrics dropdown
- if (elementMap["global"]){
- for (var i = 0; i < (elementMap["global"].length); i++){
- if ((elementMap["global"][i]["name"]) == "vf"){
- var vfSel = elementMap["global"][i]["value"];
- if (vf_Services["shared"]["byVf"][vfSel]["kpi"]){
- $.each((vf_Services["shared"]["byVf"][vfSel]["kpi"]), function(val, text) {
- $('#fieldPathM').append(
- $('<option></option>').val(val).html(text)
- );
- });
- }
- break;
- };
- };
- };
-
+
var arr = elementMap[lastElementSelected];
-
+
if (arr !== undefined) {
for (var x in arr){
var num = add_one_more();
- var setCheck = true;
for (var i=0; i< arr[x].length; i++){
- if (arr[x][i].name=='tcaEnab'){
- $("#formId" + num + " #tcaEnab").prop("checked","true");
- setCheck = false;
- }
if (arr[x][i].hasOwnProperty('serviceConfigurations')){
for (var j=0; j<arr[x][i]["serviceConfigurations"].length; j++){
$("#formId" + num + " #tcaTable").prepend("<tr><td>"
- +arr[x][i]["serviceConfigurations"][j][0]+" "
- //+(defaults_props['tca']['operator']).getKey(arr[x][i]["serviceConfigurations"][j][1])+" "
- +(Object.keys(defaults_props['tca']['operator']).find(key => defaults_props['tca']['operator'][key] == (arr[x][i]["serviceConfigurations"][j][1])))+ " "
- +arr[x][i]["serviceConfigurations"][j][2]+"</td></tr>");
+ +fieldPathMValue2Label(arr[x][i]["serviceConfigurations"][j][0])+ " "
+ +(Object.keys(defaults_props['tca']['operator']).find(key => defaults_props['tca']['operator'][key] == (arr[x][i]["serviceConfigurations"][j][1])))+ " "
+ +arr[x][i]["serviceConfigurations"][j][2]+" "
+ +arr[x][i]["serviceConfigurations"][j][3]+" "
+ +arr[x][i]["serviceConfigurations"][j][4]+"</td></tr>");
}
} else {
$("#formId" + num + " #"+arr[x][i].name).val(arr[x][i].value);
}
}
- if (setCheck){
- $("#formId" + num + " #tcaEnab").prop("checked",false);
- }
$('#go_properties_tab'+num).text($('#formId' +num+ ' #tname').val());
- $("#formId"+num + " #properties_tab").hide();
+ $("#formId"+num + " #properties_tab").invisible();
}
- }
+ } else {
+ var count = add_one_more();
+ generateTUUID(count);
+ }
$("#savePropsBtn").click(function(event) {
- var num = $('#nav_Tabs .active a').attr('id').slice(-1);
- var tabs = [];
- $('#nav_Tabs li:not(:last)').each(function(){
- tabs.push($(this).text());
- });
- var nonunique = uniquet(tabs);
+ var num = 1
if (($('#formId'+num+' #tcaTable .highlight').length > 0 ) &&
(!($('#formId'+num+' #threshold').val()) || !($('#formId'+num+' #fieldPathM').val())) ) {
$('#formId'+num+' #tcaError').show();
return;
- } else if (nonunique){
- $('#formId'+num+' #tcaUnique').show();
- return;
} else {
$('#formId'+num+' .tcaErr').hide();
if ($('#formId'+num+' #tcaTable .highlight').length > 0){
- $('#formId'+num+' #tcaTable .highlight td').text(
- $('#formId'+num+' #fieldPathM').val() + ' ' +
- $('#formId'+num+' #operator').val() + ' ' +
- $('#formId'+num+' #threshold').val());
+ $('#formId'+num+' #tcaTable .highlight td').text(propertiesToString(num));
}
var saveP = {};
$('.formId').each(function(){
@@ -420,23 +375,11 @@
var header = $(this).find('.tcaParentItems').serializeArray();
var sconf = {};
var sconfa = [];
- var checkNF = true;
$('#formId' +count+' #tcaTable tr').each(function(){
$('td', this).each(function(){
var splitTd = $(this).text().split(' ');
+ splitTd[0]=fieldPathMLabel2Value(splitTd[0]);
splitTd[1]=defaults_props['tca']['operator'][splitTd[1]];
- var checkByKpi = vf_Services["shared"]["byKpi"][splitTd[0].replace(/\s/g, "")];
- if (checkByKpi["fieldPath"]){
- splitTd.push(Object.keys(vf_Services["shared"]["byKpi"][splitTd[0].replace(/\s/g, "")]["fieldPath"])[0]);
- };
- if ((checkByKpi["nfNamingCode"]) && (checkNF)){
- $.grep(header, function(e,i){
- if (e.name == "tnfc"){
- header[i]["value"] = (Object.keys(checkByKpi["nfNamingCode"])[0]);
- }
- });
- checkNF = false;
- }
sconfa.push(splitTd);
});
@@ -505,7 +448,7 @@
$("#add_one_more").parent().before(' <li class="active"><a id="go_properties_tab'+count+'">New_Set</a><button id="tab_close'+count+'" type="button" class="close tab-close-popup" aria-hidden="true" style="margin-top: -30px;margin-right: 5px">&times;</button></li>');
$("#formId"+count).append(form);
- $('#formId'+count+ ' #properties_tab').hide();
+ $('#formId'+count+ ' #properties_tab').invisible();
$(".formId").not($("#formId"+count)).css("display","none");
addCustListen(count);
setMultiSelect();
@@ -531,10 +474,7 @@
} else {
$('#formId'+oldCount+' .tcaErr').hide();
if ($('#formId'+oldCount+' #tcaTable .highlight').length > 0){
- $('#formId'+oldCount+' #tcaTable .highlight td').text(
- $('#formId'+oldCount+' #fieldPathM').val() + ' ' +
- $('#formId'+oldCount+' #operator').val() + ' ' +
- $('#formId'+oldCount+' #threshold').val());
+ $('#formId'+oldCount+' #tcaTable .highlight td').text(propertiesToString(oldCount));
}
$("#formId"+oldCount+" #tcaTable .highlight").removeClass("highlight")
}
@@ -559,19 +499,18 @@
} else {
$('#formId'+count+' .tcaErr').hide();
if ($('#formId'+count+' #tcaTable .highlight').length > 0){
- $('#formId'+count+' #tcaTable .highlight td').text(
- $('#formId'+count+' #fieldPathM').val() + ' ' +
- $('#formId'+count+' #operator').val() + ' ' +
- $('#formId'+count+' #threshold').val());
+ $('#formId'+count+' #tcaTable .highlight td').text(propertiesToString(num));
}
//$('#formId'+count+' #tcaTable .highlight').text();
$(this).addClass('highlight').siblings().removeClass('highlight');
var str = $(this).text().split(' ');
- $('#formId'+count + ' #properties_tab').show();
- if (str.length == 3){
- $('#formId'+count+' #fieldPathM').val(str[0]).multiselect('refresh');
+ $('#formId'+count + ' #properties_tab').visible();
+ if (str.length == 5){
+ $('#formId'+count+' #fieldPathM').val(fieldPathMLabel2Value(str[0])).multiselect('refresh');
$('#formId'+count+' #operator').val(str[1]).multiselect('refresh');
$('#formId'+count+' #threshold').val(str[2]);
+ $('#formId'+count+' #controlLoopSchema').val(str[3]).multiselect('refresh');
+ $('#formId'+count+' #closedLoopEventStatus').val(str[4]).multiselect('refresh');
}
if ((!(readOnly||readMOnly)) && ($('#formId'+count + ' #deleteThresh').prop('disabled'))) {
@@ -582,7 +521,7 @@
$('#formId'+count+' #deleteThresh').on('click', function(){
$('#formId'+num+' .tcaErr').hide();
- $('#formId'+count+ ' #properties_tab').hide();
+ $('#formId'+count+ ' #properties_tab').invisible();
$('#formId'+count+ ' #tcaTable .highlight').remove();
$('#formId'+count+ ' #deleteThresh').prop('disabled', true);
});
@@ -595,12 +534,9 @@
} else {
$('#formId'+count+' .tcaErr').hide();
if ($('#formId'+count+' #tcaTable .highlight').length > 0){
- $('#formId'+count+' #tcaTable .highlight td').text(
- $('#formId'+count+' #fieldPathM').val() + ' ' +
- $('#formId'+count+' #operator').val() + ' ' +
- $('#formId'+count+' #threshold').val());
+ $('#formId'+count+' #tcaTable .highlight td').text(propertiesToString(count));
}
- $('#formId'+count+ ' #properties_tab').show();
+ $('#formId'+count+ ' #properties_tab').visible();
if (('#formId'+count+' #tcaTable .highlight').length > 0 ){
$('#formId'+count+' #tcaTable tr.highlight').removeClass('highlight');
}
@@ -608,7 +544,9 @@
$('#formId'+count+' #fieldPathM').prop("selectedIndex", 0).multiselect('refresh');
$('#formId'+count+' #operator').prop("selectedIndex", 0).multiselect('refresh');
$('#formId'+count+' #threshold').val("");
-
+ $('#formId'+count+' #controlLoopSchema').prop("selectedIndex", 0).multiselect('refresh');
+ $('#formId'+count+' #closedLoopEventStatus').prop("selectedIndex", 0).multiselect('refresh');
+
if ($('#formId'+count + ' #deleteThresh').prop('disabled')) {
$('#formId'+count + ' #deleteThresh').prop('disabled', false);
}
diff --git a/src/main/resources/clds/clds-reference.properties b/src/main/resources/clds/clds-reference.properties
index d404e4e37..00d2f61a2 100644
--- a/src/main/resources/clds/clds-reference.properties
+++ b/src/main/resources/clds/clds-reference.properties
@@ -38,17 +38,18 @@ sdc.decode.service_ids={}
#
# General Policy request properties
#
-policy.ecomp.name=DCAE
+policy.onap.name=DCAE
policy.pdp.group=default
policy.ms.type=MicroService
policy.ms.policyNamePrefix=Config_MS_
policy.op.type=BRMS_Param
policy.op.policyNamePrefix=Config_BRMS_Param_
-#
+
# TCA MicroService Policy request build properties
#
-tca.template={"service":"MThresholdCrossingConfiguration","location":"Edge","uuid":"TestUUID","policyName":"???","description":"from clds","configName":"MThresholdCrossingConfiguration","templateVersion":"5.2.0.1","priority":"4","version":"5.2.0.1","policyScope":"resource=F5,service=vSCP,type=configuration,closedLoopControlName=vSCP_F5_Firewall_d925ed73-8231-4d02-9545-db4e101f88f8","content":{"$class": "com.att.ecomp.dcae.clamp.common.MThresholdCrossingConfiguration","domain":"measurementsForVfScaling","policyScope":"pnf=eNodeB;type=configuration","policyName":"policy.dcae.configuration","policyVersion":"1.0.0","subscriberContentType": "application/json","subscriberConsumerId": "c13","subscriberConsumerGroup": "OpenDCAE-c13","subscriberTimeoutMS": "-1","subscriberMessageLimit": "-1","subscriberPollingInterval": "20000","publisherContentType": "application/json","publisherMaxBatchSize": "10","publisherMaxRecoveryQueueSize": "100000","publisherPollingInterval": "20000","publisherAlertWindowingTime": "86400","signatures":[]}}
-tca.signature.template={"nfNamingCode":"ENBE","target":"common_id","targetType":"eNodeB","useCaseName":"???","signatureName":"???","signatureUuid":"???","closedLoopControlName":"???","severity":"???","version":"1.0.2","maxInterval":1200,"minMessageViolations":4,"thresholds":[]}
+tca.template={"cdap-tca-hi-lo_policy": {"domain": "measurementsForVfScaling","metricsPerEventName": [{"eventName": "???","policyScope": "DCAE","policyName": "???","policyVersion": "v0.0.1","thresholds": []}]}}
+tca.thresholds.template={"closedLoopControlName": "???", "controlLoopSchema": "VM","version": "1.0.2","fieldPath": "?????", "thresholdValue": 0,"direction": "???","severity": "MAJOR", "closedLoopEventStatus": "???"}
+
#
#
# Operational Policy request build properties
@@ -73,9 +74,9 @@ op.eNodeB.limit=2
op.eNodeB.period=10s
#
# Sdc service properties
-sdc.catalog.url=http://sdc.api.simpledemo.openecomp.org:8080/sdc/v1/catalog/
-sdc.hostUrl=http://sdc.api.simpledemo.openecomp.org:8080
-sdc.serviceUrl=http://sdc.api.simpledemo.openecomp.org:8080/sdc/v1/catalog/services
+sdc.catalog.url=http://sdc.api.simpledemo.openecomp.org:8080/sdc/v1/catalog/
+sdc.hostUrl=http://sdc.api.simpledemo.openecomp.org:8080
+sdc.serviceUrl=http://sdc.api.simpledemo.openecomp.org:8080/sdc/v1/catalog/services
sdc.serviceUsername=test
sdc.servicePassword=123456
sdc.artifactLabel=blueprintclampcockpit
@@ -94,7 +95,7 @@ ui.alarm.default={"Reports a transient alarm condition when an incoming CDR cann
action.test.override=false
# if action.insert.test.event is true, then insert event even if the action is set to test
action.insert.test.event=false
-CLDS_SERVICE_CACHE_MAX_SECONDS=5
+CLDS_SERVICE_CACHE_MAX_SECONDS=300
#DCAE Inventory Url Properties
DCAE_INVENTORY_URL = https://dcae.api.simpledemo.openecomp.org:8080
diff --git a/src/main/resources/clds/globalClds.properties b/src/main/resources/clds/globalClds.properties
index ac4f0cf30..d21afbcf7 100644
--- a/src/main/resources/clds/globalClds.properties
+++ b/src/main/resources/clds/globalClds.properties
@@ -21,4 +21,4 @@
# ECOMP is a trademark and service mark of AT&T Intellectual Property.
###
-globalCldsProps ={"tca":{"tname":"New_Set","tcaInt":"1","tcaVio":"1","tcaSev":{"NORMAL":"NORMAL","CRITICAL":"CRITICAL","MAJOR":"MAJOR","MINOR":"MINOR","WARNING":"WARNING"},"fieldPath":{"FIELDPATH_test_1":"FIELDPATH_test_1","FIELDPATH_test_2":"FIELDPATH_test_2"},"operator":{">":"GREATER","=":"EQUAL","<":"LESS"},"opsPolicy":{"POLICY_test_X":"POLICY_test_X","POLICY_test_Y":"POLICY_test_Y"}},"global":{"actionSet":{"vnfRecipe":"VNF", "enbRecipe":"eNodeB"},"location":{"SNDGCA64":"San Diego SAN3","ALPRGAED":"Alpharetta PDK1","LSLEILAA":"Lisle DPA3","MDTWNJC1":"FTL_C_location1","MDTWNJC2":"FTL_C_location2","MDTWNJ21":"FTL_L_location1","MDTWNJ22":"FTL_L_location2","RDM2WAGPLCP":"ISTFTL_location","RDM3":"RDM3WAGPLCP"}},"policy":{"pname":"0","timeout":345,"vnfRecipe":{"":"","restart":"Restart","rebuild":"Rebuild","migrate":"Migrate","healthCheck":"Health Check"},"enbRecipe":{"":"","reset":"Reset"},"maxRetries":"3","retryTimeLimit":180,"resource":{"vCTS":"vCTS","v3CDB":"v3CDB","vUDR":"vUDR","vCOM":"vCOM","vRAR":"vRAR","vLCS":"vLCS","vUDR-BE":"vUDR-BE","vDBE":"vDBE"},"parentPolicyConditions":{"Failure_Retries":"Failure: Max Retries Exceeded","Failure_Timeout":"Failure: Time Limit Exceeded","Failure_Guard":"Failure: Guard","Failure_Exception":"Failure: Exception","Failure":"Failure: Other","Success":"Success"}},"shared":{"byService":{"":{"vf":{"":""},"location":{"":""},"alarmCondition":{"":""}}},"byVf":{"":{"vfc":{"":""}}}}} \ No newline at end of file
+globalCldsProps ={"tca":{"tname":"New_Set","tcaInt":"1","tcaVio":"1","eventName":{"vCPEvGMUXPacketLoss":"vCPEvGMUXPacketLoss","vLoadBalancer":"vLoadBalancer","vFirewallBroadcastPackets":"vFirewallBroadcastPackets"},"fieldPathM":{"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated":"receivedBroadcastPacketsAccumulated","$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta":"receivedDiscardedPacketsDelta"},"operator":{">":"GREATER",">=":"GREATER_OR_EQUAL","=":"EQUAL","<=":"LESS_OR_EQUAL","<":"LESS"},"opsPolicy":{"POLICY_test_X":"POLICY_test_X","POLICY_test_Y":"POLICY_test_Y"},"controlLoopSchema":{"":"","VM":"VM","VNF":"VNF"},"closedLoopEventStatus":{"":"","ONSET":"ONSET","ABATED":"ABATED"}},"global":{"actionSet":{"vnfRecipe":"VNF", "enbRecipe":"eNodeB"},"location":{"SNDGCA64":"San Diego SAN3","ALPRGAED":"Alpharetta PDK1","LSLEILAA":"Lisle DPA3","MDTWNJC1":"FTL_C_location1","MDTWNJC2":"FTL_C_location2","MDTWNJ21":"FTL_L_location1","MDTWNJ22":"FTL_L_location2","RDM2WAGPLCP":"ISTFTL_location","RDM3":"RDM3WAGPLCP"}},"policy":{"pname":"0","timeout":345,"vnfRecipe":{"":"","restart":"Restart","rebuild":"Rebuild","migrate":"Migrate","healthCheck":"Health Check"},"enbRecipe":{"":"","reset":"Reset"},"maxRetries":"3","retryTimeLimit":180,"resource":{"vCTS":"vCTS","v3CDB":"v3CDB","vUDR":"vUDR","vCOM":"vCOM","vRAR":"vRAR","vLCS":"vLCS","vUDR-BE":"vUDR-BE","vDBE":"vDBE"},"parentPolicyConditions":{"Failure_Retries":"Failure: Max Retries Exceeded","Failure_Timeout":"Failure: Time Limit Exceeded","Failure_Guard":"Failure: Guard","Failure_Exception":"Failure: Exception","Failure":"Failure: Other","Success":"Success"}},"shared":{"byService":{"":{"vf":{"":""},"location":{"":""},"alarmCondition":{"":""}}},"byVf":{"":{"vfc":{"":""}}}}}