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/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
-rw-r--r--src/main/resources/META-INF/resources/designer/css/app.css6
-rw-r--r--src/main/resources/META-INF/resources/designer/images/clds-string-match-icon.pngbin276 -> 0 bytes
-rw-r--r--src/main/resources/META-INF/resources/designer/index.js162
-rw-r--r--src/main/resources/META-INF/resources/designer/partials/portfolios/Collector_properties.html122
-rw-r--r--src/main/resources/META-INF/resources/designer/partials/portfolios/stringMatch_properties.html1019
-rw-r--r--src/main/resources/META-INF/resources/designer/partials/portfolios/tca_properties.html240
-rw-r--r--src/main/resources/META-INF/resources/designer/scripts/CldsModelService.js2
-rw-r--r--src/main/resources/META-INF/resources/designer/scripts/app.js114
-rw-r--r--src/main/resources/bpmn/clds-process-action.bpmn74
-rw-r--r--src/main/resources/clds/clds-reference.properties32
-rw-r--r--src/main/resources/clds/globalClds.properties2
-rw-r--r--src/main/resources/xsl/clds-bpmn-transformer.xsl16
34 files changed, 448 insertions, 2458 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 192dcdb91..8f80e07ca 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 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/StringMatchPolicyDelegate.java b/src/main/java/org/onap/clamp/clds/client/StringMatchPolicyDelegate.java
deleted file mode 100644
index d149137b6..000000000
--- 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 5bda8d361..000000000
--- 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 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 f8351ca5d..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;
@@ -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 5884c3dd2..000000000
--- 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 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/config/CldsConfiguration.java b/src/main/java/org/onap/clamp/clds/config/CldsConfiguration.java
index a6baa969e..6b7d337ec 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 be30f3ec2..055b47ff8 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 7038dc6cf..9ced01998 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 ae7028dcd..f3d344a79 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 210795be4..dc6682297 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 dc0de326b..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
@@ -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 7395ced00..8b2dbeb83 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 f15d70196..418afbb9f 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 b74e7d134..000000000
--- 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 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/java/org/onap/clamp/clds/service/CldsTemplateService.java b/src/main/java/org/onap/clamp/clds/service/CldsTemplateService.java
index e6e7325a9..e29b18879 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);
diff --git a/src/main/resources/META-INF/resources/designer/css/app.css b/src/main/resources/META-INF/resources/designer/css/app.css
index 333c96669..e387dc030 100644
--- a/src/main/resources/META-INF/resources/designer/css/app.css
+++ b/src/main/resources/META-INF/resources/designer/css/app.css
@@ -170,20 +170,18 @@ svg:not(:root) {
} /* '' */
.define-path:before{
- content: url('../images/DefinePath.png');
+ content: url('../images/DefinePath.png');
position:relative; /*or absolute*/
z-index:100000; /*a number that's more than the modal box*/
} /* '' */
-.define-decision:before{
+.define-decision:before{
content: url('../images/DefineDecision.png');
position:relative; /*or absolute*/
z-index:100000; /*a number that's more than the modal box*/
} /* '' */
.icon-initial-node:before{ content: url('../images/InitialProcess.png'); } /* '' */
-.icon-collector-node:before{ content: url('../images/clds-collector-icon.png'); } /* '' */
.icon-holmes-node:before{ content: url('../images/clds-holmes-icon.png'); } /* '' */
.icon-ves-collector-node:before{ content: url('../images/clds-ves-collector-icon.png'); } /* '' */
-.icon-stringmatch-node:before{ content: url('../images/clds-string-match-icon.png'); } /* '' */
.icon-tca-node:before{ content: url('../images/clds-tca-icon.png'); } /* '' */
.icon-policy-node:before{ content: url('../images/clds-policy-icon.png'); } /* '' */
.icon-goc-node:before{ content: url('../images/GOC.png'); } /* '' */
diff --git a/src/main/resources/META-INF/resources/designer/images/clds-string-match-icon.png b/src/main/resources/META-INF/resources/designer/images/clds-string-match-icon.png
deleted file mode 100644
index 6b00414fd..000000000
--- a/src/main/resources/META-INF/resources/designer/images/clds-string-match-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/main/resources/META-INF/resources/designer/index.js b/src/main/resources/META-INF/resources/designer/index.js
index 89a688aca..33b84e6fc 100644
--- a/src/main/resources/META-INF/resources/designer/index.js
+++ b/src/main/resources/META-INF/resources/designer/index.js
@@ -1450,58 +1450,6 @@ function visibility_model() {
},
- 'bpmn:Collector': function(p, element) {
- var lane = renderer('bpmn:Lane')(p, element, {
- fill: 'White'
- });
-
- var expandedPool = DiUtil.isExpanded(element);
-
- if (expandedPool) {
- drawLine(p, [{
- x: element.width,
- y: 80
- }, {
- x: element.width,
- y: 20
- }]);
-
- drawLine(p, [{
- x: 20,
- y: 0
- }, {
- x: 20,
- y: element.height
- }]);
- var text2 = getSemantic(element).name;
- if (text2 == undefined) {
- text2 = 'Collector';
- }
-
- renderLabel(p, text2, {
- box: element,
- align: 'center-middle'
- });
-
- } else {
- // Collapsed pool draw text inline
- var text2 = getSemantic(element).name;
- renderLabel(p, text2, {
- box: element,
- align: 'center-middle'
- });
- }
-
- var participantMultiplicity = !!(getSemantic(element).participantMultiplicity);
-
- if (participantMultiplicity) {
- renderer('ParticipantMultiplicityMarker')(p, element);
- }
-
- return lane;
-
-
- },
'bpmn:VesCollector': function(p, element) {
var lane = renderer('bpmn:Lane')(p, element, {
fill: 'White'
@@ -1626,52 +1574,6 @@ function visibility_model() {
return lane;
},
-
- 'bpmn:StringMatch': function(p, element) {
- var lane = renderer('bpmn:Lane')(p, element, {
- fill: 'White'
- });
-
- var expandedPool = DiUtil.isExpanded(element);
-
- if (expandedPool) {
-
- drawLine(p, [{
- x: 0,
- y: 20
- }, {
- x: element.width,
- y: 20
- }]);
- var text2 = getSemantic(element).name;
- if (text2 == undefined) {
- text2 = 'StringMatch';
- }
- renderLabel(p, text2, {
- box: element,
- align: 'center-middle'
- });
-
- } else {
- // Collapsed pool draw text inline
- var text2 = getSemantic(element).name;
- renderLabel(p, text2, {
- box: element,
- align: 'center-middle'
- });
- }
-
- var participantMultiplicity = !!(getSemantic(element).participantMultiplicity);
-
- if (participantMultiplicity) {
- renderer('ParticipantMultiplicityMarker')(p, element);
- }
-
- return lane;
-
-
- },
-
'bpmn:TCA': function(p, element) {
var lane = renderer('bpmn:Lane')(p, element, {
fill: 'White'
@@ -3838,39 +3740,6 @@ function visibility_model() {
if (bpmnElement.$instanceOf('bpmn:InitiateProcess')) {}
if (bpmnElement.$instanceOf('bpmn:StartEvent')) {}
- if (bpmnElement.$instanceOf('bpmn:Collector')) {
- assign(actions, {
- 'Properties': {
- group: 'clds',
- label: 'Edit Properties',
- className: 'clds-edit-properties',
- title: 'Properties',
- action: {
- click: function(event) {
- lastElementSelected = bpmnElement.id
- CollectorsWindow(bpmnElement);
- }
- }
- }
- });
-
- }
- if (bpmnElement.$instanceOf('bpmn:StringMatch')) {
- assign(actions, {
- 'Properties': {
- group: 'clds',
- label: 'Edit Properties',
- className: 'clds-edit-properties',
- title: 'Properties',
- action: {
- click: function(event) {
- lastElementSelected = bpmnElement.id
- StringMatchWindow(bpmnElement);
- }
- }
- }
- });
- }
if (bpmnElement.$instanceOf('bpmn:Holmes')) {
assign(actions, {
'Properties': {
@@ -5007,19 +4876,6 @@ function visibility_model() {
height: 80
};
}
- if (semantic.$instanceOf('bpmn:Collector')) {
- return {
- width: 120,
- height: 80
- };
- }
-
- if (semantic.$instanceOf('bpmn:StringMatch')) {
- return {
- width: 120,
- height: 80
- };
- }
if (semantic.$instanceOf('bpmn:VesCollector')) {
return {
width: 120,
@@ -6541,12 +6397,6 @@ function visibility_model() {
'create.start-event': createAction(
'bpmn:StartEvent', 'event', 'icon-start-event-none', "Start"
),
- 'create.collector': createAction(
- 'bpmn:Collector', 'event', 'icon-collector-node', 'Collector'
- ),
- 'create.String-Match': createAction(
- 'bpmn:StringMatch', 'event', 'icon-stringmatch-node', 'String Match'
- ),
'create.ves-collector': createAction(
'bpmn:VesCollector', 'event', 'icon-ves-collector-node', 'Ves Collector'
),
@@ -14382,18 +14232,6 @@ function visibility_model() {
"InteractionNode"
]
}, {
- "name": "Collector",
- "superClass": [
- "Activity",
- "InteractionNode"
- ]
- }, {
- "name": "StringMatch",
- "superClass": [
- "Activity",
- "InteractionNode"
- ]
- }, {
"name": "VesCollector",
"superClass": [
"Activity",
diff --git a/src/main/resources/META-INF/resources/designer/partials/portfolios/Collector_properties.html b/src/main/resources/META-INF/resources/designer/partials/portfolios/Collector_properties.html
deleted file mode 100644
index 7537f72aa..000000000
--- a/src/main/resources/META-INF/resources/designer/partials/portfolios/Collector_properties.html
+++ /dev/null
@@ -1,122 +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.
- -->
-
-<style>
- .fileUpload {
- position: relative;
- overflow: hidden;
- margin: 10px;
- }
- .fileUpload input.upload {
- position: absolute;
- top: 0;
- right: 0;
- margin: 0;
- padding: 0;
- font-size: 20px;
- cursor: pointer;
- opacity: 0;
- filter: alpha(opacity=0);
- float:left;
- }
- .fileDisplay {
-
- display: inline-block;
- overflow: hidden;
- float: right;
- margin-left: 0px;
- z-index: initial;
- text-align: center;
- margin-top: 17px;
- }
-
-
-</style>
-
-
-<div attribute-test="collectorproperties" id="configure-widgets" >
- <div attribute-test="cldsopentemplateh" class="modal-header">
- <button type="button" class="close" ng-click="close(false)" aria-hidden="true" style="margin-top: -3px">&times;</button>
- <h4>Collector</h4>
- </div>
- <div attribute-test="cldsopentemplateb" class="modal-body" style="height: 280px">
- <div style="height: 10px">
- </div>
- <form id="saveProps" class="form-horizontal">
-
- <div>
- <div class="form-group">
- <label for="schemaLocation" class="col-sm-4 control-label">Topic Publishes</label>
-
- <div class="col-sm-8">
- <select class="form-control" focus="true" name="topicPublishes" id="topicPublishes">
- <!-- <option value="volvo">volvo</option>
- <option value="saab">saab</option>
- <option value="opel">opel</option> -->
- </select>
- </div>
- </div>
-
-
- </div>
-
- </form>
-
- </div>
- <div class="modal-footer">
- <!--<button ng-click="reset()" class="btn btn-primary" style="float:left">Reset</button>-->
- <button id="savePropsBtn" class="btn btn-primary">Close</button>
- <button ng-click="close(true)" id="close_button" class="btn btn-primary">Cancel</button>
-
- </div>
- <script>
- loadPropertyWindow("collector");
- var el=elementMap[lastElementSelected];
- if(el!==undefined){
- for(var i=0;i<el.length;i++){
-
- $("#"+el[i].name).val(el[i].value);
- }
-
-
- }
- $("#saveProps").on('submit', function (event) {
- console.log("clicksaveprop");
- //alert("lol");
- //console.log($(this).serializeArray()[0].name);
- saveProperties($(this).serializeArray())
- event.preventDefault();
-
- $("#close_button").click();
-
- })
- $("#savePropsBtn").click(function (event) {
- console.log("savepropbtn");
- //alert($("#CProp_Target").val())
- //alert(las)
- $("#saveProps").submit();
- })
-</script>
-</div>
-
-
diff --git a/src/main/resources/META-INF/resources/designer/partials/portfolios/stringMatch_properties.html b/src/main/resources/META-INF/resources/designer/partials/portfolios/stringMatch_properties.html
deleted file mode 100644
index 49ac07d73..000000000
--- a/src/main/resources/META-INF/resources/designer/partials/portfolios/stringMatch_properties.html
+++ /dev/null
@@ -1,1019 +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.
- -->
-<style>
-#deleteStringMatch{
- height:34px;
- background-color:#dddd;
-}
-
-.disabled{
- background-color: #dddd;
-}
-.fileUpload {
- position: relative;
- overflow: hidden;
- margin: 10px;
-}
-
-.fileUpload input.upload {
- position: absolute;
- top: 0;
- right: 0;
- margin: 0;
- padding: 0;
- font-size: 20px;
- cursor: pointer;
- opacity: 0;
- filter: alpha(opacity = 0);
- float: left;
-}
-
-.fileDisplay {
- display: inline-block;
- overflow: hidden;
- float: right;
- margin-left: 0px;
- z-index: initial;
- text-align: center;
- margin-top: 17px;
-}
-
-.form-group {
-/* height:24px; */
-/* box-sizing:border-box; */
- margin-bottom:20px;
-}
-
-.modelSearchBox{
- position:absolute;
- padding: 25px 12px;
-}
-
-label{
- text-align:right;
- vertical-align:middle;
-}
-
-.leftStringMatchPanel{
- padding: 0 10px 0 0;
-}
-
-#createNewStringMatch{
- height:34px;
- width:120px; /*84*/
- background-color:#f2bfab;
-}
-
-.idError{
- color:red;
- padding:50px 0px;
- text-align:center;
- display:none;
-}
-
-#rgname{
- height:28px;
- margin-left:-5px;
-}
-
-.stringMatchPanel{
- background-color: #f5f5f5;
- padding: 10px 5px;
-}
-
-#stringMatchSearch{
- height: 33px;
- font-size: 12px;
- padding: 2px 2px 2px 30px;
- margin-bottom: 5px;
- width:100%;
-}
-#stringMatchTable{
- cursor: pointer;
- width:100%;
-}
-
-#stringMatchTable tr{
- border-bottom: 1px solid #ddd;
- border-collapse: collapse;
- text-align: left;
- font-size: 12px;
- font-weight: normal;
-}
-
-#stringMatchTable td{
- padding: 8px 10px;
-}
-
-#stringMatchTable tr.highlight{
- background-color: #f5f5f5;
- font-weight: bold;
- font-size: 13px;
-}
-
-#stringMatchTableHolder{
- height:200px;
- width: 100%;
- overflow:auto;
-}
-
-#timeout{
- height:28px;
- margin-left:10px;
-}
-
-</style>
-
-<script type="text/javascript">
- function disablefile() {
-
- document.getElementById("fileUpload").disabled = true;
-
- }
-
- function disableSVN() {
- var selectLength = document.querySelectorAll(".disabled-block-container .tab-close-popup");
- if(selectLength && selectLength.length>0){
- for(var i = 0; i< selectLength.length ; i++){
- selectLength[i].disabled = true;
- }
- }
-
- document.getElementById("schemaLocation").disabled = true;
- document.getElementById("userID").disabled = true;
- document.getElementById("password").disabled = true;
-
- }
-</script>
-
-
-<div attribute-test="stringMatchwindowproperties" id="configure-widgets" class="disabled-block-container">
- <div attribute-test="stringMatchwindowpropertiesh" class="modal-header">
- <button type="button" class="close" ng-click="close(false)"
- aria-hidden="true" style="margin-top: -3px">&times;</button>
- <h4>String Matching Micro Service</h4>
- </div>
-
-
- <div class="modal-body">
- <div attribute-test="stringMatchwindowpropertiesb" class="modal-body row">
-
- <div class="leftStringMatchPanel">
- <div class="panel panel-default">
- <i class="modelSearchBox"></i> <input type="text"
- id="stringMatchSearch" onkeyup="searchStringMatchList()"
- placeholder="Search ...">
- <div id="stringMatchTableHolder">
- <table id="stringMatchTable"></table>
- </div>
- </div>
- <div style="float: left">
- <button type="button" id="createNewStringMatch" class="btn btn-sm">New Group</button>
- </span>
- </div>
- <div style="float: right">
- <button type="button" id="deleteStringMatch" class="btn btn-sm glyphicon glyphicon-trash" disabled></button>
- </span>
- </div>
- <div id="repeatIdError" class="idError">Error: This Group name is already taken.</div>
- <div id="newIdError" class="idError">Error: Please rename your new Group.</div>
- </div>
-
- <div class="panel panel-default col-sm-9 stringMatchPanel"
- style="display: none;">
- <form id="topicPublish" class="form-horizontal">
- <div>
-<!-- As per the last minute new requirements for 1707 the ID needs to be hidden and we need to have a friendly name instead -->
- <div style="display: none;">
- <div class="form-group clearfix">
- <label class="col-sm-4 control-label">Resource Group Id</label>
- <div class="col-sm-8">
- <input class="form-control" id="rgname" name="rgname" readOnly> </input>
- </div>
- </div>
- </div>
-
- <div>
- <div class="form-group clearfix">
- <label class="col-sm-4 control-label">Resource Group</label>
- <div class="col-sm-8">
- <input class="form-control" maxlength="48" placeholder="Enter Unique Name" id="rgfriendlyname" name="rgfriendlyname"> </input>
- </div>
- </div>
- </div>
-
- <!--Policy's drop down box -->
- <div class="form-group clearfix">
- <label class="col-sm-4 control-label">Ops Policy:</label>
- <div class="col-sm-8">
- <select class="form-control" id="policyName" name="policyName"
- autofocus="autofocus" required ng-trim="true" enableFilter="true">
- <option ng-repeat="x in policyNames" value="{{x}}">{{x}}</option>
- </select>
- </div>
- </div>
-
- </div>
- </form>
-
- <div class="panel-heading" style="background-color: white;">
- <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>
- <div class="panel-body">
- <div class="tab-content">
- <div id="properties_tab" class="tab-pane fade in active"></div>
- </div>
- </div>
- </div>
-
- <span id="formSpan" style="display: none">
- <form class="saveProps" class="form-horizontal">
-
- <div>
- <div class="form-group clearfix">
- <label for="aaiMatchingFields" class="col-sm-4 control-label">AAI Fields Matching </label>
- <div class="col-sm-8">
- <select class="form-control" name="aaiMatchingFields" id="aaiMatchingFields" multiple size=2></select>
- </div>
-
- </div>
- <div class="form-group clearfix">
- <label for="aaiSendFields" class="col-sm-4 control-label">AAI Fields Send (Select Multiple)</label>
-
- <div class="col-sm-8 ">
- <select class="form-control" id="aaiSendFields"
- name="aaiSendFields" multiple size=2>
- </select>
-
- </div>
- </div>
-<!-- <div class="form-group clearfix"> -->
-<!-- <label for="groupNumber" class="col-sm-4 control-label"> -->
-<!-- Resource-Group</label> -->
-
-<!-- <div class="col-sm-8"> -->
-<!-- <input type="number" class="form-control" id="groupNumber" -->
-<!-- name="groupNumber" min="0"> </input> -->
-
-<!-- </div> -->
-<!-- </div> -->
- <div class="form-group clearfix">
- <label for="vfc" class="col-sm-4 control-label">Resource-VFC</label>
- <div class="col-sm-8">
- <select class="form-control" id="vfc" name="vfc" enableFilter="true">
-
- </select>
-
- </div>
- </div>
- <div class="form-group clearfix">
- <label for="alarmCondition" class="col-sm-4 control-label">Alarm Condition</label>
- <div class="col-sm-8">
- <select class="form-control" id="alarmCondition" name="alarmCondition" enableFilter="true">
-
- </select>
- </div>
- </div>
- <div class="form-group clearfix">
- <label for="eventSeverity" class="col-sm-4 control-label">Event Severity</label>
- <div class="col-sm-8">
- <select class="form-control" id="eventSeverity"
- name="eventSeverity" enableFilter="false"></select>
- </div>
- </div>
- <div class="form-group clearfix">
- <label for="eventSourceType" class="col-sm-4 control-label">
- Event Source Type</label>
- <div class="col-sm-8">
- <input type="text" class="form-control" id="eventSourceType"
- name="eventSourceType" readOnly></input>
- </div>
- </div>
-
- <div class="form-group clearfix">
- <label for="timeWindow" class="col-sm-4 control-label">
- Time Window</label>
-
- <div class="col-sm-8">
- <input type="text" maxlength="5" class="form-control"
- onkeypress="return isNumberKey(event)"
- id="timeWindow" name="timeWindow" />
- </div>
- </div>
- <div class="form-group clearfix">
- <label for="ageLimit" class="col-sm-4 control-label"> Age
- Limit</label>
-
- <div class="col-sm-8">
- <input type="text" maxlength="5" class="form-control" id="ageLimit"
- onkeypress="return isNumberKey(event)"
- name="ageLimit" />
- </div>
- </div>
- <div class="form-group clearfix">
- <label for="createClosedLoopEventId"
- class="col-sm-4 control-label"> Create CL Event ID</label>
- <div class="col-sm-8">
- <select class="form-control" id="createClosedLoopEventId"
- name="createClosedLoopEventId" enableFilter="false">
- </select>
-
- </div>
- </div>
-
- <div class="form-group clearfix">
- <label for="outputEventName" class="col-sm-4 control-label">
- Output Event Name</label>
-
- <div class="col-sm-8">
- <select class="form-control" id="outputEventName"
- name="outputEventName" enableFilter="true"></select>
-
- </div>
- </div>
- </div>
-
-
-
- </form>
- </span>
- </div>
- </div>
-
- <div attribute-test="stringMatchwindowpropertiesf" class="modal-footer">
- <!--<button ng-click="reset()" class="btn btn-primary" style="float:left">Reset</button>-->
- <button id="savePropsBtn" class="btn btn-primary">Close</button>
- <button ng-click="close(true)" id="close_button"
- class="btn btn-primary">Cancel</button>
- </div>
-
- <script>
-
- //Basically this method will add a new form. All forms share the same class. When you want one form to show(active form) the other forms get the
- // css attribute display:none
- $("#add_one_more").click(function(event) {
- event.preventDefault();
- num = add_one_more();
- setMultiSelect();
- addSelectListen(num);
- });
-
-
- //This method will load the existing Strin Match onto the screen
- loadPropertyWindow("string_match");
- setASDCFields();
-
- // By default, parentStringMatchConditions is disabled
- $("#parentStringMatchConditions").prop('disabled', 'disabled');
-
-
- var parent_stringMatch = {}
- var stringMatch_ids = {}
- var loadingId = false;
- var allSMatch = {};
- var vfc_temp=""
- var alarm_conditions_temp=""
- var event_severity_temp=""
- var event_type_source_temp=""
-
- //Grab saved values for dropdowns
- var obj = elementMap[lastElementSelected];
-
- if (!($.isEmptyObject(obj))) {
- allSMatch = jQuery.extend({}, obj);
- for ( var x in allSMatch) {
- $("#stringMatchTable").prepend(
- "<tr><td>" + x + "</td></tr>");
- }
- }
-
-
- //Load properties_tab for a chosen String Match
- function disperseConfig(stringMatchObj, id) {
- //remove old gui forms
- for (var i = 1; i < ($(".formId").length + 1); i++) {
- $("#go_properties_tab" + i).parent().remove();
- }
- $(".formId").remove();
-
- if (stringMatchObj !== undefined) {
- var el = stringMatchObj[id][4]['serviceConfigurations']
- for (var i = 0; i < el.length; i++) {
- loadingId = true;
- var num = add_one_more();
- loadingId = false;
- for (var j = 0; j < el[i].length; j++) {
- if (el[i][j]["stringSet"] !== undefined) {
- var ss = el[i][j]["stringSet"]
- for (var o = 0; o < ss.length; o++) {
- if(ss[o].hasOwnProperty("name")){
- if(ss[o].name==="alarmCondition"){
- alarm_conditions_temp=ss[o].value
- }else if(ss[o].name==="eventSeverity"){
- event_severity_temp=ss[o].value;
- }else if(ss[o].name==="eventSourceType"){
- event_type_source_temp=ss[o].value;
- }
- else
- $("#formId" + num + " #" + ss[o].name).val(ss[o].value);
- }
-
- }
- }else if(el[i][j].hasOwnProperty("name") && el[i][j].name==="vfc"){
- vfc_temp=el[i][j].value
- }
- else if (el[i][j].name === 'outputEventName' && el[i][j].value.toString() !== '') {
- $("#go_properties_tab" + num).text(el[i][j].value);
- $("#formId" + num + " #" + el[i][j].name).val(el[i][j].value);
- }
- else {
- if(el[i][j].hasOwnProperty("name")){
- $("#formId" + num + " #" + el[i][j].name).val(
- el[i][j].value);
- }
- }
- }
- set_vfc_alarm_event(num);
- vfc_temp="";
- alarm_conditions_temp="";
- event_severity_temp="";
- event_type_source_temp="";
-
- addSelectListen(num);
- }
-
- //Adding all the ids for parent String options
- for (var i = 1; i <= $(".formId").length; i++) {
- for (k in stringMatch_ids) {
- if ($("#formId" + i + " #_id").val() !== stringMatch_ids[k].toString() && $(k + " #recipe").val() !== undefined && $(k + " #recipe").val() !== "") {
- $("#formId" + i + " #parentStringMatch").append("<option value=\""+stringMatch_ids[k]+"\">"+ $(k + " #recipe").val()+ "</option>");
- }
- }
- }
-
- for (k in parent_stringMatch) {
- $("#formId" + k + " #parentStringMatch").val(parent_stringMatch[k]);
- // force the change event
- $("#formId" + k + " #parentStringMatch").change();
- }
-
- if (stringMatchObj[id][0]) {
- $("#" + stringMatchObj[id][0].name).val(stringMatchObj[id][0].value);
- }
-
- if (stringMatchObj[id][1]) {
- $("#" + stringMatchObj[id][1].name).val(stringMatchObj[id][1].value);
- }
-
- if (stringMatchObj[id][2]) {
- $("#" + stringMatchObj[id][2].name).val(stringMatchObj[id][2].value);
- }
- }
-
- setMultiSelect();
-
- if (readOnly||readMOnly){
- $('select[multiple] option').each(function() {
- var input = $('input[value="' + $(this).val() + '"]');
- input.prop('disabled', true);
- input.parent('li').addClass('disabled');
- });
- $('input[value="multiselect-all"]').prop('disabled', true).parent('li').addClass('disabled');
- }
- }
-
-
- //This is ensure there are no repeated keys in the map
- function noRepeats(form) {
- //triggered per String.
- var select = {};
- for (var i = 0; i < form.length; i++) {
- if (select[form[i].name] === undefined)
- select[form[i].name] = []
- select[form[i].name].push(form[i].value);
- }
- var arr = []
- for (s in select) {
- var f = {}
- f.name = s
- f.value = select[s]
- arr.push(f)
- }
- return arr
- }
-
- $("#savePropsBtn").click(function(event) {
- $(".idError").hide();
- if ($("#stringMatchTable .highlight td").html() !== $("#rgfriendlyname").val()){
- //repeated name
- if ($.inArray($("#rgfriendlyname").val(), Object.keys(allSMatch)) > -1){
- $("#repeatIdError").show();
- return;
- } else { //not repeated
- delete allSMatch[$("#stringMatchTable .highlight td").html()];
- }
- }
- /* //Saves edits
- if ($("#stringMatchTable .highlight").length > 0) {
- saveLastStringMatchLocally($("#stringMatchTable .highlight td").html());
- } */
- if ($("#rgfriendlyname").val().trim() == "New_Group"){
- $("#newIdError").show();
- return;
- }
- startNextItem();
- //Removes outdated (deleted) resource Groups by checking against left menu
- var finalSaveList = {};
- $("#stringMatchTable td").each(function() {
- var tableVal = $(this).text();
- if (tableVal in allSMatch) {
- finalSaveList[tableVal] = allSMatch[tableVal];
- }
- });
-
- saveProperties(finalSaveList);
- $("#close_button").click();
- })
-
- function add_one_more() {
- $("#nav_Tabs li").removeClass("active");
-
- //FormSpan contains a block of the form that is not being displayed. We will create clones of that and add them to tabs
- var form = $($("#formSpan").children()[0]).clone()
- var count = 0;
- //Each new tab will have the formId class attached to it. This way we can track how many forms we currently have out there and assign listeners to them
- if ($(".formId").length > 0) {
- var greatest = 0;
- var s = $(".formId");
- for (var i = 0; i < s.length; i++) {
- if (parseInt($(s[i]).attr("id").substring(6)) > greatest) {
- greatest = parseInt($(s[i]).attr("id").substring(6))
- }
- }
- count = greatest + 1;
- $("#properties_tab").append(
- ('<span class="formId" id="formId'+count+'"></span>'));
- } else {
- count++;
- $("#properties_tab").append(
- '<span class="formId" id="formId1"></span>');
- }
-
- //$(form).find("#stringMatchName").val("Recipe "+makid(2))
- //TODO change up how we auto assign stringMatchName. There could be the case where we do this and it will have repeats
- //alert($(form).find("#_id").val())
- //stringMatchNameChangeListener(form)
-
- $("#add_one_more")
- .parent()
- .before(
- ' <li class="active"><a id="go_properties_tab'+count+'">Condition</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").not($("#formId" + count)).css("display", "none")
- addCustListen(count)
- addTabListen(count)
-
- // This is for when the process is not loading from map but being created
- if (!loadingId) {
- var l = makeid()
- $(form).find("#_id").val(l)
- stringMatch_ids["#formId" + count] = l
- var answers = {}
-
- for (k in answers) {
- $(k).val(answers[k])
- }
- }
- return count;
- }
-
- function add_new_stringMatch(issueNewNames) {
- //remove old gui forms
- for (var i = 1; i < ($(".formId").length + 1); i++) {
- $("#go_properties_tab" + i).parent().remove();
- }
- $(".formId").remove();
-
- //Reset header
- var ms = new Date().getTime();
- var defSMatch = ms;
- $("#rgname").val(defSMatch);
-
- $("#rgfriendlyname").val("New_Group");
-
- $("#add_one_more").click();
- return defSMatch;
- }
-
- //listener will change the tab name to the recipe
- function addTabListen(count) {
- $("#formId" + count + " #recipe").on("change",function() {
- if ($("#formId" + count + " #recipe").val().toString() !== "") {
- $('#go_properties_tab' + count).text($("#formId" + count + " #recipe").val())
- } else
- $('#go_properties_tab' + count).text("String");
-
- var answers = {}
-
- for (var i = 1; i <= greatestIdNum(); i++) {
- if ($("#formId" + i).length > 0) {
-
- answers["#formId" + i + " #parentStringMatch"] = $("#formId" + i + " #parentStringMatch").val()
- $("#formId" + i + " #parentStringMatch").empty();
-
- for (k in stringMatch_ids) {
- if ($("#formId" + i + " #_id").val().toString() !== stringMatch_ids[k] && $(k + " #recipe").val() !== 'undefined' && $(k + " #recipe").val() !== "") {
- $("#formId" + i + " #parentStringMatch").append("<option value='"+stringMatch_ids[k]+"''> "+ $(k+ " #recipe").val()+ "</option>")
- }
- }
- $("#formId" + i + " #parentStringMatch").prepend("<option value=''></option>")
- }
- }
- for (k in answers) {
- $(k).val(answers[k])
- }
- })
-
- // disable parentStringMatchConditions when a parentStringMatch is not selected
- $("#formId" + count + " #parentStringMatch").on("change",function() {
- if ($("#formId" + count + " #parentStringMatch").val().toString() == "") {
- // deselect all options
- $("#formId"+ count+ " #parentStringMatchConditions option:selected").prop("selected", false);
- // disable the select box
- $("#formId"+ count+ " #parentStringMatchConditions").prop('disabled', 'disabled');
- } else {
- $("#formId"+ count+ " #parentStringMatchConditions").prop('disabled', false);
- }
- })
- }
-
- function addSelectListen(count) {
- var onSelectChange = function() {
- var opselected = this.selectedOptions[0].text;
-
- if (this.id=="outputEventName"){
- if(opselected!==""){
- var stringMatchCount = $(this).closest("[id^='formId']").attr("id").substring(6);
- $(this).closest(".stringMatchPanel").find("#go_properties_tab"+stringMatchCount).text(opselected);
- } else {
- $(this).closest("[id^='go_properties_tab']").text("Condition");
- }
- }
-
- if (this.id=="vfc"){
- var vfcCount = $(this).closest("[id^='formId']").attr("id").substring(6);
- if(opselected!==""){
- setAlarmConditions(opselected, vfcCount);
- setAlertDescription(opselected, vfcCount);
- } else {
- $(this).closest(".formId").find("#eventSourceType").val("");
- $(this).closest(".formId").find("#eventSeverity").val("");
- }
- }
-
- if (this.id=="alarmCondition"){
- var alarmCount = $(this).closest("[id^='formId']").attr("id").substring(6);
- if(opselected!==""){
- setEventSourceType(opselected.toString(), alarmCount, "alarm");
- } else {
- $(this).closest(".formId").find("#eventSourceType").val("");
- $(this).closest(".formId").find("#eventSeverity").val("");
- }
- }
-
- };
-
- $("#formId"+count+" select").each( function () {
- this.change = onSelectChange;
- });
- }
-
- function addCustListen(count) {
- $('#go_properties_tab' + count).click(function(event) {
- $("#nav_Tabs li").removeClass("active");
- $(this).parent().addClass("active");
- $("#formId" + count).css("display", "")
- $(".formId").not($("#formId" + count)).css("display", "none")
-
- })
- $('#tab_close' + count).click(function(event) {
-
- $(this).parent().remove();
- delete stringMatch_ids["#formId" + count + " #_id"]
- $("#formId" + count).remove();
- })
- }
-
- function setStringSet(form) {
- var arr = []
- var alarmCondition = {}
- var eventSeverity = {}
- var eventSourceType = {}
- for (var i = 0; i < form.length; i++) {
- if (form[i].name === "alarmCondition") {
- alarmCondition = form[i]
- } else if (form[i].name === "eventSeverity") {
- eventSeverity = form[i];
- } else if (form[i].name === "eventSourceType") {
- eventSourceType = form[i];
- } else {
-
- arr.push(form[i])
- }
-
- }
- var stringSet = {};
- stringSet['stringSet'] = []
- stringSet['stringSet'].push(alarmCondition);
- stringSet['stringSet'].push(eventSeverity);
- stringSet['stringSet'].push(eventSourceType);
- arr.push(stringSet)
-
- return arr;
- }
-
- //this will populate alarmcondition,vfc,eventtypesource if they are saved in elementmap
- function set_vfc_alarm_event (count){
- if(vfc_temp!=="" && vfc_temp!==undefined){
- $("#formId"+count+" #vfc").val(vfc_temp)
-
- if(alarm_conditions_temp!=="" && alarm_conditions_temp!==undefined){
- setAlarmConditions(vfc_temp,count)
- $("#formId"+count+" #alarmCondition").val(alarm_conditions_temp);
-
- if(event_severity_temp!=="" && event_severity_temp!==undefined){
- setEventSourceType(alarm_conditions_temp,count)
- $("#formId"+count+" #eventSeverity").val(event_severity_temp)
- if(event_type_source_temp!=="" && event_type_source_temp!==undefined){
- $("#formId"+count+" #eventSourceType").val(event_type_source_temp)
- }
- }
- if(event_type_source_temp!=="" && event_type_source_temp!==undefined){
- setEventSourceType(alarm_conditions_temp,count)
- $("#formId"+count+" #eventSourceType").val(event_type_source_temp)
- if(event_severity_temp!=="" && event_severity_temp!==undefined){
- $("#formId"+count+" #eventSeverity").val(event_severity_temp)
- }
- }
- }
- }
- }
-
- function setAlarmConditions(vfcID, count){
- var alarmCondition={}
-
- if($("#formId"+count+" #vfc").val()!==""){
- if(vf_Services['shared'] && vf_Services['shared']['byVfc'] && vf_Services['shared']['byVfc'][vfcID]){
- alarmCondition=vf_Services['shared']['byVfc'][vfcID]['alarmCondition']
- }
- }
-
- $("#formId"+count+" #alarmCondition").empty();
- $("#formId"+count+" #alarmCondition").append("<option value=\"\"></opton>");
- if(alarmCondition && _.keys(alarmCondition).length>0){
- for(key in alarmCondition){
- var safestring = $('<div>').text(key).html();
- $("#formId"+count+" #alarmCondition").append("<option value='"+safestring+"'>"+alarmCondition[key]+"</opton>");
- }
- $("#formId"+count+" #alarmCondition").multiselect("rebuild");
- }
- }
-
- function setEventSourceType(alarm, count){
- var eventSourceTypSeverity={}
- if($("#formId"+count+" #alarmCondition").val()!==""){
- if(vf_Services && vf_Services['shared'] && vf_Services['shared']['byAlarmCondition'] && vf_Services['shared']['byAlarmCondition'][alarm]){
- eventSourceTypSeverity=vf_Services['shared']['byAlarmCondition'][alarm]
- }
-
- }
-
- $("#formId"+count+" #eventSourceType").val(eventSourceTypSeverity.eventSourceType);
- $("#formId"+count+" #eventSeverity").val(eventSourceTypSeverity.eventSeverity);
- $("#formId"+count+" #eventSeverity").multiselect("rebuild");
- }
-
- function greatestIdNum() {
- var greatest = 0;
- var s = $(".formId");
- for (var i = 0; i < s.length; i++) {
- if (parseInt($(s[i]).attr("id").substring(6)) > greatest) {
- greatest = parseInt($(s[i]).attr("id").substring(6))
- }
- }
- return greatest;
- }
-
- //Generate random id for each String
- //Also made sure ids couldnt be repeated
- function makeid(num) {
-
- var text = "";
- var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
- if (num == null)
- num = 7;
- for (var i = 0; i < 7; i++)
- text += possible.charAt(Math.floor(Math.random()
- * possible.length));
- var hasValue = false;
- for (k in stringMatch_ids) {
- if (text === stringMatch_ids[k])
- hasValue = true
- }
- if (hasValue)
- return makeid(num);
- else
- return text
- }
-
- var ParentStringMatch = function(id, name) {
- this.id = id
- this.name = name
- }
-
- //String table search filter
- function searchStringMatchList() {
- var search = document.getElementById("stringMatchSearch");
- var row = document.getElementsByTagName("td");
- for (var i = 0; i < row.length; i++) {
- if (row[i].innerHTML.toUpperCase().indexOf(
- search.value.toUpperCase()) > -1) {
- row[i].style.display = "";
- } else {
- row[i].style.display = "none";
- }
- }
- }
-
- function saveLastStringMatchLocally(lastStringMatchId) {
- var polForm = []
-
- var properties = $(".saveProps").not("#formSpan .saveProps")
-
- var topicPublish = $("#topicPublish").serializeArray();
-
- for (var i = 0; i < topicPublish.length; i++) {
- polForm.push(topicPublish[i]);
- }
-
- //The below three lines are added to make sure resource group can be save correctly even if the policy is not present
- if (topicPublish.length == 2){
- var pname = {name:"policyName", value:""};
- polForm.push(pname);
- var pid = {name:"policyId", value:""};
- polForm.push(pid);
- }else{
- var selectedPName = topicPublish[2]["value"];
- var pid = {name:"policyId", value:allPolicies[selectedPName][1]["value"]};
- polForm.push(pid);
- }
-
- var d = {}
- d["serviceConfigurations"] = [];
- for (var i = 0; i < properties.length; i++) {
- var ser = $(properties[i]).serializeArray();
- var s = noRepeats(ser)
- var newSer = setStringSet(s);
- d["serviceConfigurations"].push(newSer);
- }
- polForm.push(d);
- allSMatch[lastStringMatchId] = polForm;
- }
-
- $("#deleteStringMatch").on('click', function() {
- $(".idError").hide();
- var deleteId = $("#stringMatchTable .highlight td").html();
- delete allSMatch.deleteId;
- $("#stringMatchTable .highlight").remove();
- $("#rgfriendlyname").val('');
- expandTable();
- });
-
- $('#stringMatchTable').on('click', 'tr', function(event) {
- $(".idError").hide();
- //edited name
- if ($("#stringMatchTable .highlight td").html() !== $("#rgfriendlyname").val()){
- //repeated name
- if ($.inArray($("#rgfriendlyname").val(), Object.keys(allSMatch)) > -1){
- $("#repeatIdError").show();
- return;
- } else { //not repeated
- $("#repeatIdError").hide();
- delete allSMatch[$("#stringMatchTable .highlight td").html()];
- }
- }
- if ($("#rgfriendlyname").val().trim() == "New_Group"){
- $("#newIdError").show();
- return;
- }
- if (!(readOnly||readMOnly)){
- startNextItem();
- } else {
- if ($("#stringMatchTable .highlight").length == 0){
- collapseTable();
- }
- }
-
- $(this).addClass('highlight').siblings().removeClass('highlight');
- disperseConfig(allSMatch, $(this).find("td").html());
- });
-
-
- $('#createNewStringMatch').on('click', function() {
- $(".idError").hide();
- //edited name
- if ($("#stringMatchTable .highlight td").html() !== $("#rgfriendlyname").val()){
- //repeated name
- if ($.inArray($("#rgfriendlyname").val(), Object.keys(allSMatch)) > -1){
- $("#repeatIdError").show();
- return;
- } else { //not repeated
- $("#repeatIdError").hide();
- delete allSMatch[$("#stringMatchTable .highlight td").html()];
- }
- }
- if ($("#rgfriendlyname").val().trim() == "New_Group"){
- $("#newIdError").show();
- return;
- }
- startNextItem();
- var defSMatch = add_new_stringMatch();
-
- if (("#stringMatchTable .highlight").length > 0) {
- $('#stringMatchTable tr.highlight').removeClass('highlight');
- }
- //$("#stringMatchTable").prepend("<tr class='highlight' id='" +defSMatch+ "''><td>"+ defSMatch + "</td></tr>");
- $("#stringMatchTable").prepend("<tr class='highlight'><td>New_Group</td></tr>");
-
- });
-
- function isNumberKey(event){
- var charCode = (event.which) ? event.which : event.keyCode
- if (charCode > 31 && (charCode < 48 || charCode > 57)){
- return false;
- }
- return true;
- };
-
- function startNextItem() {
- //save last item before transitioning
- var lastItem = $("#stringMatchTable .highlight");
-
-
- if (lastItem.length > 0) {
- saveLastStringMatchLocally($("#rgfriendlyname").val());
- //lastItem.attr("id", $("#rgfriendlyname").val());
- if($("#rgfriendlyname").val() != ''){
- lastItem.find("td").html($("#rgfriendlyname").val());
- }
- } else {
- collapseTable();
- }
-
- //allow deleting
- if ($("#deleteStringMatch").prop("disabled")) {
- $("#deleteStringMatch").prop("disabled", false);
- }
- }
-
- //Show table panel only
- function expandTable() {
- $(".stringMatchPanel").css("display", "none");
- $(".leftStringMatchPanel").removeClass("col-sm-3");
- $(".modelSearchBox").css("padding", "25px 12px");
- if (!($("#deleteStringMatch").prop("disabled"))) {
- $("#deleteStringMatch").prop("disabled", true);
- }
- }
-
- //Show both menus
- function collapseTable() {
- $(".leftStringMatchPanel").addClass("col-sm-3");
- $(".glyphicon-search").css("padding", "10px 12px");
- $(".stringMatchPanel").css("display", "unset");
- }
- </script>
-</div>
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/META-INF/resources/designer/scripts/CldsModelService.js b/src/main/resources/META-INF/resources/designer/scripts/CldsModelService.js
index b42b5bb56..195886c9f 100644
--- a/src/main/resources/META-INF/resources/designer/scripts/CldsModelService.js
+++ b/src/main/resources/META-INF/resources/designer/scripts/CldsModelService.js
@@ -30,10 +30,8 @@ app.service('cldsModelService', ['alertService', '$http', '$q', function(alertSe
}
mapping = {
- 'stringmatch': StringMatchWindow,
'tca': TCAWindow,
'policy': PolicyWindow,
- 'collector': CollectorsWindow,
'vescollector': VesCollectorWindow,
'holmes': HolmesWindow,
};
diff --git a/src/main/resources/META-INF/resources/designer/scripts/app.js b/src/main/resources/META-INF/resources/designer/scripts/app.js
index 555b31c55..f300bb092 100644
--- a/src/main/resources/META-INF/resources/designer/scripts/app.js
+++ b/src/main/resources/META-INF/resources/designer/scripts/app.js
@@ -1296,106 +1296,6 @@ var app = angular.module('clds-app', ['ngRoute',
// $modalInstance.close("closed");
});
};
- $scope.CollectorsWindow = function(collectorsWin) {
-
- if (isTemplate) {
- var dlg = dialogs
- .create(
- 'partials/portfolios/Template_model.html',
- 'ImportSchemaCtrl',
- collectorsWin, {
- closable: true,
- draggable: true
- }, {
- size: 'lg',
- keyboard: true,
- backdrop: 'static',
- windowClass: 'my-class'
- });
- dlg.result.then(function(name) {
-
- }, function() {
-
- // if(angular.equals($scope.name,''))
- // $scope.name = 'You did not enter in
- // your name!';
- });
- } else {
- var dlg = dialogs
- .create(
- 'partials/portfolios/Collector_properties.html',
- 'ImportSchemaCtrl', {
- closable: true,
- draggable: true
- }, {
- size: 'lg',
- keyboard: true,
- backdrop: 'static',
- windowClass: 'my-class'
- });
- dlg.result.then(function(name) {
-
- }, function() {
-
- // if(angular.equals($scope.name,''))
- // $scope.name = 'You did not enter in
- // your name!';
- });
-
- }
-
- };
- $scope.StringMatchWindow = function(stringMatch) {
-
- if (isTemplate) {
- var dlg = dialogs
- .create(
- 'partials/portfolios/Template_model.html',
- 'ImportSchemaCtrl',
- stringMatch, {
- closable: true,
- draggable: true
- }, {
- size: 'lg',
- keyboard: true,
- backdrop: 'static',
- windowClass: 'my-class'
- });
- dlg.result.then(function(name) {
-
- }, function() {
-
- // if(angular.equals($scope.name,''))
- // $scope.name = 'You did not enter in
- // your name!';
- });
- } else {
-
- var dlg = dialogs
- .create(
- 'partials/portfolios/stringMatch_properties.html',
- 'ImportSchemaCtrl', {
- closable: true,
- draggable: true
- }, {
- size: 'lg',
- keyboard: true,
- backdrop: 'static',
- windowClass: 'my-class'
- });
-
- dlg.result.then(function(name) {
-
- // $scope.name = name;
- }, function() {
-
- // if(angular.equals($scope.name,''))
- // $scope.name = 'You did not enter in
- // your name!';
- });
-
- }
- };
$scope.VesCollectorWindow = function(vesCollector) {
if (isTemplate) {
@@ -1677,13 +1577,6 @@ function importshema() {
}
-function CollectorsWindow(collectorsWin) {
-
- angular.element(document.getElementById('navbar')).scope()
- .CollectorsWindow(collectorsWin);
-
-}
-
function VesCollectorWindow(vesCollectorWin) {
angular.element(document.getElementById('navbar')).scope()
.VesCollectorWindow(vesCollectorWin);
@@ -1700,13 +1593,6 @@ function F5Window() {
}
-function StringMatchWindow(stringMatch) {
-
- angular.element(document.getElementById('navbar')).scope()
- .StringMatchWindow(stringMatch);
-
-}
-
function TCAWindow(tca) {
angular.element(document.getElementById('navbar')).scope().TCAWindow(tca);
diff --git a/src/main/resources/bpmn/clds-process-action.bpmn b/src/main/resources/bpmn/clds-process-action.bpmn
index 780162403..11edc0714 100644
--- a/src/main/resources/bpmn/clds-process-action.bpmn
+++ b/src/main/resources/bpmn/clds-process-action.bpmn
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="_-A31MBMpEea185sFktMJ7Q" targetNamespace="http://camunda.org/schema/1.0/bpmn" exporter="Camunda Modeler" exporterVersion="1.10.0" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
+<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="_-A31MBMpEea185sFktMJ7Q" targetNamespace="http://camunda.org/schema/1.0/bpmn" exporter="Camunda Modeler" exporterVersion="1.7.2" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
<bpmn2:collaboration id="_Collaboration_2">
<bpmn2:participant id="_Participant_2" name="Process Action" processRef="clds-process-action-wf" />
</bpmn2:collaboration>
@@ -14,18 +14,15 @@
<bpmn2:flowNodeRef>StartEvent_1</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>ServiceTask_0x8ypxf</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>sendTcaReqDistribute</bpmn2:flowNodeRef>
- <bpmn2:flowNodeRef>sendStringMatchingReqDistribute</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>sendHolmesReqDistribute</bpmn2:flowNodeRef>
</bpmn2:lane>
<bpmn2:lane id="Lane_5" name="Delete">
- <bpmn2:flowNodeRef>sendStringMatchingReqDelete</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>sendTcaReqDelete</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>sendOpPolicyReqDelete</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>sendHolmesReqDelete</bpmn2:flowNodeRef>
</bpmn2:lane>
<bpmn2:lane id="Lane_4" name="Update">
<bpmn2:flowNodeRef>sendOpPolicyReqUpdate</bpmn2:flowNodeRef>
- <bpmn2:flowNodeRef>sendStringMatchingReqUpdate</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>sendTcaReqUpdate</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>sendHolmesReqUpdate</bpmn2:flowNodeRef>
</bpmn2:lane>
@@ -79,7 +76,7 @@
<bpmn2:incoming>SequenceFlow_0ejpmee</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_28</bpmn2:outgoing>
</bpmn2:serviceTask>
- <bpmn2:sequenceFlow id="SequenceFlow_27" name="" sourceRef="ExclusiveGateway_2" targetRef="sendStringMatchingReqUpdate">
+ <bpmn2:sequenceFlow id="SequenceFlow_27" name="" sourceRef="ExclusiveGateway_2" targetRef="sendTcaReqUpdate">
<bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[${ actionCd == 'UPDATE' }]]></bpmn2:conditionExpression>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="SequenceFlow_28" name="" sourceRef="sendOpPolicyReqUpdate" targetRef="ExclusiveGateway_3" />
@@ -103,16 +100,11 @@
<bpmn2:outgoing>SequenceFlow_2</bpmn2:outgoing>
</bpmn2:startEvent>
<bpmn2:sequenceFlow id="SequenceFlow_2" name="" sourceRef="StartEvent_1" targetRef="ExclusiveGateway_2" />
- <bpmn2:serviceTask id="sendStringMatchingReqDelete" name="Send String Match Micro Service request to Policy [Delete]" camunda:delegateExpression="${stringMatchPolicyDeleteDelegate}">
- <bpmn2:incoming>SequenceFlow_15</bpmn2:incoming>
- <bpmn2:outgoing>SequenceFlow_23</bpmn2:outgoing>
- </bpmn2:serviceTask>
- <bpmn2:sequenceFlow id="SequenceFlow_23" name="" sourceRef="sendStringMatchingReqDelete" targetRef="sendTcaReqDelete" />
<bpmn2:sequenceFlow id="SequenceFlow_6" name="" sourceRef="sendOpPolicyReqDelete" targetRef="ExclusiveGateway_3" />
- <bpmn2:sequenceFlow id="SequenceFlow_15" name="" sourceRef="ExclusiveGateway_2" targetRef="sendStringMatchingReqDelete">
+ <bpmn2:sequenceFlow id="SequenceFlow_15" name="" sourceRef="ExclusiveGateway_2" targetRef="sendTcaReqDelete">
<bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[${ actionCd == 'DELETE' }]]></bpmn2:conditionExpression>
</bpmn2:sequenceFlow>
- <bpmn2:sequenceFlow id="SequenceFlow_0w39hon" sourceRef="ServiceTask_0x8ypxf" targetRef="sendStringMatchingReqDistribute" />
+ <bpmn2:sequenceFlow id="SequenceFlow_0w39hon" sourceRef="ServiceTask_0x8ypxf" targetRef="sendTcaReqDistribute" />
<bpmn2:sequenceFlow id="SequenceFlow_1xlfq66" sourceRef="ExclusiveGateway_2" targetRef="ServiceTask_0x8ypxf">
<bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[${ actionCd == 'SUBMIT' || actionCd == 'RESUBMIT' }]]></bpmn2:conditionExpression>
</bpmn2:sequenceFlow>
@@ -124,19 +116,14 @@
<bpmn2:sequenceFlow id="SequenceFlow_1rga27p" sourceRef="sendTcaReqDistribute" targetRef="sendHolmesReqDistribute" />
<bpmn2:sequenceFlow id="SequenceFlow_0tpegxf" sourceRef="sendTcaReqDelete" targetRef="sendHolmesReqDelete" />
<bpmn2:serviceTask id="sendTcaReqDelete" name="Send Tca Micro Service request to Policy [Delete]" camunda:delegateExpression="${tcaPolicyDeleteDelegate}">
- <bpmn2:incoming>SequenceFlow_23</bpmn2:incoming>
+ <bpmn2:incoming>SequenceFlow_15</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_0tpegxf</bpmn2:outgoing>
</bpmn2:serviceTask>
<bpmn2:sequenceFlow id="SequenceFlow_1kegg6u" sourceRef="sendTcaReqUpdate" targetRef="sendHolmesReqUpdate" />
<bpmn2:serviceTask id="sendTcaReqDistribute" name="Send Tca Micro Service request to Policy [Submit]" camunda:delegateExpression="${tcaPolicyDelegate}">
- <bpmn2:incoming>SequenceFlow_14</bpmn2:incoming>
- <bpmn2:outgoing>SequenceFlow_1rga27p</bpmn2:outgoing>
- </bpmn2:serviceTask>
- <bpmn2:serviceTask id="sendStringMatchingReqDistribute" name="Send String Match Micro Service request to Policy [Submit]" camunda:delegateExpression="${stringMatchPolicyDelegate}">
<bpmn2:incoming>SequenceFlow_0w39hon</bpmn2:incoming>
- <bpmn2:outgoing>SequenceFlow_14</bpmn2:outgoing>
+ <bpmn2:outgoing>SequenceFlow_1rga27p</bpmn2:outgoing>
</bpmn2:serviceTask>
- <bpmn2:sequenceFlow id="SequenceFlow_14" name="" sourceRef="sendStringMatchingReqDistribute" targetRef="sendTcaReqDistribute" />
<bpmn2:sequenceFlow id="SequenceFlow_1tu9g11" sourceRef="sendHolmesReqDistribute" targetRef="sendOpPolicyReqDistribute" />
<bpmn2:serviceTask id="sendHolmesReqDistribute" name="Send Holmes Micro Service request to Policy [Submit]" camunda:delegateExpression="${holmesPolicyDelegate}">
<bpmn2:incoming>SequenceFlow_1rga27p</bpmn2:incoming>
@@ -151,15 +138,10 @@
<bpmn2:outgoing>SequenceFlow_1mtizad</bpmn2:outgoing>
</bpmn2:serviceTask>
<bpmn2:sequenceFlow id="SequenceFlow_1mtizad" sourceRef="sendHolmesReqDelete" targetRef="sendOpPolicyReqDelete" />
- <bpmn2:serviceTask id="sendStringMatchingReqUpdate" name="Send String Match Micro Service request to Policy [Update]" camunda:delegateExpression="${stringMatchPolicyDelegate}">
- <bpmn2:incoming>SequenceFlow_27</bpmn2:incoming>
- <bpmn2:outgoing>SequenceFlow_26</bpmn2:outgoing>
- </bpmn2:serviceTask>
<bpmn2:serviceTask id="sendTcaReqUpdate" name="Send Tca Micro Service request to Policy [Update]" camunda:delegateExpression="${tcaPolicyDelegate}">
- <bpmn2:incoming>SequenceFlow_26</bpmn2:incoming>
+ <bpmn2:incoming>SequenceFlow_27</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_1kegg6u</bpmn2:outgoing>
</bpmn2:serviceTask>
- <bpmn2:sequenceFlow id="SequenceFlow_26" name="" sourceRef="sendStringMatchingReqUpdate" targetRef="sendTcaReqUpdate" />
<bpmn2:serviceTask id="sendHolmesReqUpdate" name="Send Holmes Micro Service request to Policy [Update]" camunda:delegateExpression="${holmesPolicyDelegate}">
<bpmn2:incoming>SequenceFlow_1kegg6u</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_0ejpmee</bpmn2:outgoing>
@@ -180,19 +162,9 @@
<dc:Bounds x="1338" y="257" width="0" height="0" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_8" bpmnElement="sendStringMatchingReqDistribute">
- <dc:Bounds x="400" y="89" width="100" height="80" />
- </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="_BPMNShape_ServiceTask_6" bpmnElement="sendOpPolicyReqDistribute">
<dc:Bounds x="912" y="89" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_14" bpmnElement="SequenceFlow_14" sourceElement="_BPMNShape_ScriptTask_8" targetElement="ServiceTask_1r1brt6_di">
- <di:waypoint xsi:type="dc:Point" x="500" y="129" />
- <di:waypoint xsi:type="dc:Point" x="546" y="129" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="624" y="192" width="90" height="6" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="_BPMNShape_ServiceTask_7" bpmnElement="insEvent">
<dc:Bounds x="1188" y="194" width="100" height="80" />
</bpmndi:BPMNShape>
@@ -249,39 +221,19 @@
<dc:Bounds x="1027" y="178.5" width="90" height="6" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
- <bpmndi:BPMNShape id="_BPMNShape_ServiceTask_11" bpmnElement="sendStringMatchingReqDelete">
- <dc:Bounds x="348" y="385" width="100" height="80" />
- </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="_BPMNShape_ServiceTask_12" bpmnElement="sendOpPolicyReqDelete">
<dc:Bounds x="831" y="385" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_23" bpmnElement="SequenceFlow_23" sourceElement="_BPMNShape_ServiceTask_11" targetElement="_BPMNShape_ServiceTask_12">
- <di:waypoint xsi:type="dc:Point" x="448" y="425" />
- <di:waypoint xsi:type="dc:Point" x="496" y="425" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="467" y="425" width="6" height="6" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="_BPMNShape_Lane_9" bpmnElement="Lane_4" isHorizontal="true">
<dc:Bounds x="30" y="484" width="1339" height="117" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNShape id="_BPMNShape_ServiceTask_14" bpmnElement="sendStringMatchingReqUpdate">
- <dc:Bounds x="350" y="500" width="100" height="80" />
- </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="_BPMNShape_ServiceTask_15" bpmnElement="sendOpPolicyReqUpdate">
<dc:Bounds x="912" y="500" width="100" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_26" bpmnElement="SequenceFlow_26" sourceElement="_BPMNShape_ServiceTask_14" targetElement="ServiceTask_08pqhb3_di">
- <di:waypoint xsi:type="dc:Point" x="450" y="540" />
- <di:waypoint xsi:type="dc:Point" x="496" y="540" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="580" y="540" width="90" height="6" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_27" bpmnElement="SequenceFlow_27" sourceElement="_BPMNShape_ExclusiveGateway_3" targetElement="_BPMNShape_ServiceTask_14">
+ <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_27" bpmnElement="SequenceFlow_27" sourceElement="_BPMNShape_ExclusiveGateway_3" targetElement="ServiceTask_08pqhb3_di">
<di:waypoint xsi:type="dc:Point" x="169" y="262" />
<di:waypoint xsi:type="dc:Point" x="169" y="540" />
- <di:waypoint xsi:type="dc:Point" x="350" y="540" />
+ <di:waypoint xsi:type="dc:Point" x="496" y="540" />
<bpmndi:BPMNLabel>
<dc:Bounds x="139" y="398" width="90" height="6" />
</bpmndi:BPMNLabel>
@@ -341,10 +293,10 @@
<dc:Bounds x="1028" y="501.5" width="90" height="6" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_15" bpmnElement="SequenceFlow_15" sourceElement="_BPMNShape_ExclusiveGateway_3" targetElement="_BPMNShape_ServiceTask_11">
+ <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_15" bpmnElement="SequenceFlow_15" sourceElement="_BPMNShape_ExclusiveGateway_3" targetElement="ServiceTask_0y2gwy4_di">
<di:waypoint xsi:type="dc:Point" x="169" y="262" />
<di:waypoint xsi:type="dc:Point" x="169" y="425" />
- <di:waypoint xsi:type="dc:Point" x="348" y="425" />
+ <di:waypoint xsi:type="dc:Point" x="496" y="425" />
<bpmndi:BPMNLabel>
<dc:Bounds x="139" y="333.5" width="90" height="20" />
</bpmndi:BPMNLabel>
@@ -354,9 +306,9 @@
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="SequenceFlow_0w39hon_di" bpmnElement="SequenceFlow_0w39hon">
<di:waypoint xsi:type="dc:Point" x="304" y="129" />
- <di:waypoint xsi:type="dc:Point" x="400" y="129" />
+ <di:waypoint xsi:type="dc:Point" x="546" y="129" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="307" y="114" width="90" height="0" />
+ <dc:Bounds x="380" y="114" width="90" height="0" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="SequenceFlow_1xlfq66_di" bpmnElement="SequenceFlow_1xlfq66">
diff --git a/src/main/resources/clds/clds-reference.properties b/src/main/resources/clds/clds-reference.properties
index abc25b179..00d2f61a2 100644
--- a/src/main/resources/clds/clds-reference.properties
+++ b/src/main/resources/clds/clds-reference.properties
@@ -27,7 +27,7 @@
#
# DCAE request build properties
#
-dcae.template={"properties":{"service_name":"","service_ids":[],"vnf_ids":[],"location_ids":[]},"template":{"string_matching":{"dcae":{"inputTopic":"","outputTopic":"","closedLoopControlName":"","closedLoopEventClient":"configuration.dcae.microservice.stringmatcher.xml","policyName":"","policyScope":"service=vSCP;resource=F5;type=configuration","policyVersion":"v0.0.1","serviceConfigurations":{}}}}}
+dcae.template={"properties":{"service_name":"","service_ids":[],"vnf_ids":[],"location_ids":[]},"template":{"tca":{"dcae":{"inputTopic":"","outputTopic":"","closedLoopControlName":"","closedLoopEventClient":"configuration.dcae.microservice.tca.xml","policyName":"","policyScope":"service=vSCP;resource=F5;type=configuration","policyVersion":"v0.0.1","serviceConfigurations":{}}}}}
dcae.decode.service_ids={"vUSP":["vUSP - vCTS"],"Trinity":["ASBGv TLS VNF","ASBGv No TLS","ASBGv (NO TLS) VNF","ASBGv TLS","NSBGv VNF","NSBGv"],"vSCP":["AKRON_vSCP_F5_FW-SVC/vSCP_F5_FW 1","ALLEN_vSCP_F5_FW-SVC/vSCP_F5_FW 1"],"vProbes":["vProbes - FW"]}
#
# SDC request blueprint properties
@@ -38,30 +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":[]}
-#
-# String Match MicroService Policy request build properties
-#
-# default
-sm.template={"service":"StringMatchingConfiguration","location":"Edge","uuid":"TestUUID","policyName":"???","description":"from clds","configName":"com.att.d2.policy.StringMatchingConfiguration","templateVersion":"1604","priority":"4","version":"1610","policyScope":"resource=F5,service=vSCP,type=configuration,closedLoopControlName=vSCP_F5_Firewall_d925ed73-8231-4d02-9545-db4e101f88f8","content":{"serviceConfigurations":{}}}
-# by service: vSCP
-sm.template.vSCP={"service":"StringMatchingConfiguration","location":"Edge","uuid":"TestUUID","policyName":"???","description":"from clds","configName":"com.att.d2.policy.StringMatchingConfiguration","templateVersion":"1604","priority":"4","version":"0.1.0-SNAPSHOT","policyScope":"resource=F5,service=vSCP,type=configuration,closedLoopControlName=vSCP_F5_Firewall_d925ed73-8231-4d02-9545-db4e101f88f8","content":{"serviceConfigurations":{}}}
-sm.sc.template={}
-#
-# default
-sm.rulegroup=true
-# by service: vSCP
-sm.rulegroup.vSCP=false
+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
@@ -86,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
@@ -107,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 f6607cb35..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 ={"collector":{"topicPublishes":{"DCAE-COLLECTOR-UCSNMP":"DCAE-COLLECTOR-UCSNMP"}},"string_match":{"topicPublishes":{"DCAE-CL-EVENT":"DCAE-CL-EVENT"},"aaiMatchingFields":{"cloud-region.identity-url":"cloud-region.identity-url","complex.city":"complex.city","complex.physical-location-id":"complex.physical-location-id","complex.state":"complex.state","generic-vnf.service-id":"generic-vnf.service-id","generic-vnf.vnf-name":"generic-vnf.vnf-name","generic-vnf.vnf-type":"generic-vnf.vnf-type","tenant.tenant-id":"tenant.tenant-id","vserver.in-maint":"vserver.in-maint","vserver.is-closed-loop-disabled":"vserver.is-closed-loop-disabled","vserver.l-interface.interface-name":"vserver.l-interface.interface-name","vserver.l-interface.l3-interface-ipv4-address-list.l3-inteface-ipv4-address":"vserver.l-interface.l3-interface-ipv4-address-list.l3-inteface-ipv4-address","vserver.l-interface.l3-interface-ipv6-address-list.l3-inteface-ipv6-address":"vserver.l-interface.l3-interface-ipv6-address-list.l3-inteface-ipv6-address","vserver.l-interface.network-name":"vserver.l-interface.network-name","vserver.prov-status":"vserver.prov-status","vserver.selflink":"vserver.selflink","vserver.vserver-id":"vserver.vserver-id","vserver.vserver-name":"vserver.vserver-name"},"aaiSendFields":{"cloud-region.identity-url":"cloud-region.identity-url","complex.city":"complex.city","complex.physical-location-id":"complex.physical-location-id","complex.state":"complex.state","generic-vnf.service-id":"generic-vnf.service-id","generic-vnf.vnf-name":"generic-vnf.vnf-name","generic-vnf.vnf-type":"generic-vnf.vnf-type","tenant.tenant-id":"tenant.tenant-id","vserver.in-maint":"vserver.in-maint","vserver.is-closed-loop-disabled":"vserver.is-closed-loop-disabled","vserver.l-interface.interface-name":"vserver.l-interface.interface-name","vserver.l-interface.l3-interface-ipv4-address-list.l3-inteface-ipv4-address":"vserver.l-interface.l3-interface-ipv4-address-list.l3-inteface-ipv4-address","vserver.l-interface.l3-interface-ipv6-address-list.l3-inteface-ipv6-address":"vserver.l-interface.l3-interface-ipv6-address-list.l3-inteface-ipv6-address","vserver.l-interface.network-name":"vserver.l-interface.network-name","vserver.prov-status":"vserver.prov-status","vserver.selflink":"vserver.selflink","vserver.vserver-id":"vserver.vserver-id","vserver.vserver-name":"vserver.vserver-name"},"eventSourceType":{"f5BigIP":"f5BigIP","vSBG_Alarms":"vSBG_Alarms","vCTS_Alarms":"vCTS_Alarms"},"eventSeverity":{"NORMAL":"NORMAL","not-NORMAL":"not-NORMAL","OK":"OK","WARNING":"WARNING","MINOR":"MINOR","MAJOR":"MAJOR","CRITICAL":"CRITICAL"},"timeWindow":0,"ageLimit":1600,"outputEventName":{"":"","ONSET":"ONSET","ABATED":"ABATED"},"createClosedLoopEventId":{"Initial":"Initial","Close":"Close"}},"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":{"":""}}}}}
diff --git a/src/main/resources/xsl/clds-bpmn-transformer.xsl b/src/main/resources/xsl/clds-bpmn-transformer.xsl
index 8a39be55a..3cd98e3af 100644
--- a/src/main/resources/xsl/clds-bpmn-transformer.xsl
+++ b/src/main/resources/xsl/clds-bpmn-transformer.xsl
@@ -34,19 +34,7 @@
<!-- by default copy all attributes and elements -->
<xsl:template match="/bpmn2:definitions/bpmn2:process">
- <xsl:text>{"collector":[</xsl:text>
- <xsl:for-each select="bpmn2:collector" >
- <xsl:call-template name="network-element" />
- </xsl:for-each>
- <xsl:text>],</xsl:text>
-
- <xsl:text>"stringMatch":[</xsl:text>
- <xsl:for-each select="bpmn2:stringMatch" >
- <xsl:call-template name="network-element" />
- </xsl:for-each>
- <xsl:text>],</xsl:text>
-
- <xsl:text>"policy":[</xsl:text>
+ <xsl:text>{"policy":[</xsl:text>
<xsl:for-each select="bpmn2:policy" >
<xsl:call-template name="network-element" />
</xsl:for-each>
@@ -63,7 +51,7 @@
<xsl:call-template name="network-element" />
</xsl:for-each>
<xsl:text>],</xsl:text>
-
+
<xsl:text>"vesCollector":[</xsl:text>
<xsl:for-each select="bpmn2:vesCollector" >
<xsl:call-template name="network-element" />