diff options
Diffstat (limited to 'src/main')
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 Binary files differdeleted file mode 100644 index 6b00414fd..000000000 --- a/src/main/resources/META-INF/resources/designer/images/clds-string-match-icon.png +++ /dev/null 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">×</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">×</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">×</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">×</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" /> |