Introduce modal
Test Modal for Operational policy and use react-router to show it
Issue-ID: CLAMP-415
Change-Id: Ie0df5f1085925224076062c7d331dc2f4c72d032
Signed-off-by: sebdet <sebastien.determe@intl.att.com>
diff --git a/ui-react/src/components/backend_communication/LoopActionService.js b/ui-react/src/components/backend_communication/LoopActionService.js
index 027243b..9ce8ff0 100644
--- a/ui-react/src/components/backend_communication/LoopActionService.js
+++ b/ui-react/src/components/backend_communication/LoopActionService.js
@@ -20,37 +20,35 @@
* ===================================================================
*
*/
-const clActionService = {
- submit
+const loopActionService = {
+ submit
};
+
function submit(uiAction) {
- const cl_name = "";
- console.log("clActionServices perform action: " + uiAction + " closedloopName="
- + cl_name);
- const svcAction = uiAction.toLowerCase();
- const svcUrl = "/restservices/clds/v2/loop/" + svcAction + "/" + cl_name;
+ const cl_name = "";
+ console.log("clActionServices perform action: " + uiAction + " closedloopName="
+ + cl_name);
+ const svcAction = uiAction.toLowerCase();
+ const svcUrl = "/restservices/clds/v2/loop/" + svcAction + "/" + cl_name;
- let options = {
- method: 'GET'
- };
- return sendRequest (svcUrl, svcAction, options);
+ let options = {
+ method: 'GET'
+ };
+ return sendRequest(svcUrl, svcAction, options);
}
+function sendRequest(svcUrl, svcAction) {
+ fetch(svcUrl, options)
+ .then(
+ response => {
+ alertService.alertMessage("Action Successful: " + svcAction, 1)
+ }).error(error => {
+ alertService.alertMessage("Action Failure: " + svcAction, 2);
+ return Promise.reject(error);
+ });
+ return response.json();
+};
-function sendRequest (svcUrl, svcAction) {
- fetch(svcUrl, options)
- .then(
- response => {
- alertService.alertMessage("Action Successful: " + svcAction, 1)
- }).error( error => {
- alertService.alertMessage("Action Failure: " + svcAction, 2);
- return Promise.reject(error);
- });
-
- return response.json();
- });
-}
-
-export default clActionService;
+export default loopActionService;
\ No newline at end of file
diff --git a/ui-react/src/components/backend_communication/LoopCache.js b/ui-react/src/components/backend_communication/LoopCache.js
index 7fd2059..2ef8396 100644
--- a/ui-react/src/components/backend_communication/LoopCache.js
+++ b/ui-react/src/components/backend_communication/LoopCache.js
@@ -20,95 +20,95 @@
* ===================================================================
*
*/
-class LoopCache
-{
- constructor(loopJson) {
- this.loopJsonCache=loopJson;
+class LoopCache {
+ constructor() {
+ //this.loopJsonCache=loopJson;
+ this.loopJsonCache = require('./example.json'); //(with path)
}
-
+
updateMsProperties(type, newMsProperties) {
- if (newMsProperties["name"] == type) {
- for (p in this.loopJsonCache["microServicePolicies"]) {
- if (this.loopJsonCache["microServicePolicies"][p]["name"] == type) {
- this.loopJsonCache["microServicePolicies"][p] = newMsProperties;
- }
- }
- }
+ if (newMsProperties["name"] == type) {
+ for (var policy in this.loopJsonCache["microServicePolicies"]) {
+ if (this.loopJsonCache["microServicePolicies"][policy]["name"] == type) {
+ this.loopJsonCache["microServicePolicies"][policy] = newMsProperties;
+ }
+ }
+ }
}
-
- updateGlobalProperties(newGlobalProperties) {
- this.loopJsonCache["globalPropertiesJson"] = newGlobalProperties;
+
+ updateGlobalProperties(newGlobalProperties) {
+ this.loopJsonCache["globalPropertiesJson"] = newGlobalProperties;
}
-
- updateOpPolicyProperties(newOpProperties) {
- this.loopJsonCache["operationalPolicies"] = newOpProperties;
+
+ updateOpPolicyProperties(newOpProperties) {
+ this.loopJsonCache["operationalPolicies"] = newOpProperties;
}
-
- getLoopName() {
- return this.loopJsonCache["name"];
+
+ getLoopName() {
+ return this.loopJsonCache["name"];
}
-
- getOperationalPolicyProperty() {
- return JSON.parse(JSON.stringify(this.loopJsonCache["operationalPolicies"]["0"]["configurationsJson"]));
+
+ getOperationalPolicyProperty() {
+ return JSON.parse(JSON.stringify(this.loopJsonCache["operationalPolicies"]["0"]["configurationsJson"]));
}
-
- getOperationalPolicies() {
- return JSON.parse(JSON.stringify(this.loopJsonCache["operationalPolicies"]));
+
+ getOperationalPolicies() {
+ return JSON.parse(JSON.stringify(this.loopJsonCache["operationalPolicies"]));
}
-
- getGlobalProperty() {
- return JSON.parse(JSON.stringify(this.loopJsonCache["globalPropertiesJson"]));
+
+ getGlobalProperty() {
+ return JSON.parse(JSON.stringify(this.loopJsonCache["globalPropertiesJson"]));
}
-
- getDeploymentProperties() {
- return JSON.parse(JSON.stringify(this.loopJsonCache["globalPropertiesJson"]["dcaeDeployParameters"]));
+
+ getDeploymentProperties() {
+ return JSON.parse(JSON.stringify(this.loopJsonCache["globalPropertiesJson"]["dcaeDeployParameters"]));
}
-
- getMsJson(type) {
- var msProperties = this.loopJsonCache["microServicePolicies"];
- for (p in msProperties) {
- if (msProperties[p]["name"] == type) {
- return JSON.parse(JSON.stringify(msProperties[p]));
- }
- }
- return null;
+
+ getMsJson(type) {
+ var msProperties = this.loopJsonCache["microServicePolicies"];
+ for (var policy in msProperties) {
+ if (msProperties[policy]["name"] == type) {
+ return JSON.parse(JSON.stringify(msProperties[policy]));
+ }
+ }
+ return null;
}
-
- getMsProperty(type) {
- var msProperties = this.loopJsonCache["microServicePolicies"];
- for (p in msProperties) {
- if (msProperties[p]["name"] == type) {
- if (msProperties[p]["properties"] !== null && msProperties[p]["properties"] !== undefined) {
- return JSON.parse(JSON.stringify(msProperties[p]["properties"]));
- }
- }
- }
- return null;
+
+ getMsProperty(type) {
+ var msProperties = this.loopJsonCache["microServicePolicies"];
+ for (var policy in msProperties) {
+ if (msProperties[policy]["name"] == type) {
+ if (msProperties[policy]["properties"] !== null && msProperties[policy]["properties"] !== undefined) {
+ return JSON.parse(JSON.stringify(msProperties[policy]["properties"]));
+ }
+ }
+ }
+ return null;
}
-
- getMsUI(type) {
- var msProperties = this.loopJsonCache["microServicePolicies"];
- for (p in msProperties) {
- if (msProperties[p]["name"] == type) {
- return JSON.parse(JSON.stringify(msProperties[p]["jsonRepresentation"]));
- }
- }
- return null;
+
+ getMsUI(type) {
+ var msProperties = this.loopJsonCache["microServicePolicies"];
+ for (var policy in msProperties) {
+ if (msProperties[policy]["name"] == type) {
+ return JSON.parse(JSON.stringify(msProperties[policy]["jsonRepresentation"]));
+ }
+ }
+ return null;
}
-
- getResourceDetailsVfProperty() {
+
+ getResourceDetailsVfProperty() {
return this.loopJsonCache["modelPropertiesJson"]["resourceDetails"]["VF"];
}
-
- getResourceDetailsVfModuleProperty() {
+
+ getResourceDetailsVfModuleProperty() {
return this.loopJsonCache["modelPropertiesJson"]["resourceDetails"]["VFModule"];
}
-
- getLoopLogsArray() {
+
+ getLoopLogsArray() {
return this.loopJsonCache.loopLogs;
}
-
- getComponentStates() {
+
+ getComponentStates() {
return this.loopJsonCache.components;
}
diff --git a/ui-react/src/components/backend_communication/LoopService.js b/ui-react/src/components/backend_communication/LoopService.js
deleted file mode 100644
index 982180d..0000000
--- a/ui-react/src/components/backend_communication/LoopService.js
+++ /dev/null
@@ -1,66 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2019 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============================================
- * ===================================================================
- *
- */
-
-const LoopService = {
- login
-};
-
-function login(username, password) {
- let options = {
- method: 'GET'
- };
- if (username && password) {
- options = {
- method: 'GET',
- credentials: 'include',
- headers: {
- 'Authorization': "Basic " + new Buffer(username + ":" + password).toString("base64")
- }
- };
- }
-
- return fetch(`/restservices/clds/v1/user/getUser`, options)
- .then(response => handleResponse(response))
- .then(function(data) {
- localStorage.setItem('user', data);
- console.log(data);
-});
-}
-
-function handleResponse(response) {
- if (!response.ok || response.redirected === true) {
- if (response.status === 401 || response.status === 500 || response.redirected === true) {
- if (localStorage.getItem('tryBasicAuth')) {
- // login failed, go to invalud login page
- localStorage.removeItem('user');
- } else {
- // try to login with username and password
- localStorage.setItem('tryBasicAuth', true);
- }
- }
- const error = response.statusText;
- return Promise.reject(error);
- }
- return response.text();
-}
-export default LoopService;
diff --git a/ui-react/src/components/backend_communication/UserService.js b/ui-react/src/components/backend_communication/UserService.js
new file mode 100644
index 0000000..8145395
--- /dev/null
+++ b/ui-react/src/components/backend_communication/UserService.js
@@ -0,0 +1,50 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2019 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============================================
+ * ===================================================================
+ *
+ */
+
+export default class UserService {
+
+ static LOGIN() {
+ return fetch('/restservices/clds/v1/user/getUser', {
+ method: 'GET',
+ credentials: 'include',
+ })
+ .then(function (response) {
+ if (response.ok) {
+ console.log("getUser response received: ", response.status);
+ return response.text();
+ } else {
+ console.error("getUser failed with status code: ",response.status);
+ return "Anonymous";
+ }
+ })
+ .then(function (data) {
+ console.log ("User connected:",data)
+ return data;
+ })
+ .catch(function(error) {
+ console.error("getUser error received",error);
+ return "Anonymous";
+ });
+ }
+}
+
diff --git a/ui-react/src/components/backend_communication/example.json b/ui-react/src/components/backend_communication/example.json
new file mode 100644
index 0000000..f3cc9e1
--- /dev/null
+++ b/ui-react/src/components/backend_communication/example.json
@@ -0,0 +1,417 @@
+{
+ "name": "LOOP_h2NMX_v1_0_ResourceInstanceName1_tca",
+ "dcaeBlueprintId": "typeId-3a942643-a8f7-4e54-b2c1-eea8daba2b17",
+ "globalPropertiesJson": {
+ "dcaeDeployParameters": {
+ "location_id": "",
+ "service_id": "",
+ "policy_id": "TCA_h2NMX_v1_0_ResourceInstanceName1_tca"
+ }
+ },
+ "modelPropertiesJson": {
+ "serviceDetails": {
+ "serviceType": "",
+ "namingPolicy": "",
+ "environmentContext": "General_Revenue-Bearing",
+ "serviceEcompNaming": "true",
+ "serviceRole": "",
+ "name": "vLoadBalancerMS",
+ "description": "vLBMS",
+ "invariantUUID": "30ec5b59-4799-48d8-ac5f-1058a6b0e48f",
+ "ecompGeneratedNaming": "true",
+ "category": "Network L4+",
+ "type": "Service",
+ "UUID": "63cac700-ab9a-4115-a74f-7eac85e3fce0",
+ "instantiationType": "A-la-carte"
+ },
+ "resourceDetails": {
+ "CP": {},
+ "VL": {},
+ "VF": {
+ "vLoadBalancerMS 0": {
+ "resourceVendor": "Test",
+ "resourceVendorModelNumber": "",
+ "name": "vLoadBalancerMS",
+ "description": "vLBMS",
+ "invariantUUID": "1a31b9f2-e50d-43b7-89b3-a040250cf506",
+ "subcategory": "Load Balancer",
+ "category": "Application L4+",
+ "type": "VF",
+ "UUID": "b4c4f3d7-929e-4b6d-a1cd-57e952ddc3e6",
+ "version": "1.0",
+ "resourceVendorRelease": "1.0",
+ "customizationUUID": "465246dc-7748-45f4-a013-308d92922552"
+ }
+ },
+ "CR": {},
+ "VFC": {},
+ "PNF": {},
+ "Service": {},
+ "CVFC": {},
+ "Service Proxy": {},
+ "Configuration": {},
+ "AllottedResource": {},
+ "VFModule": {
+ "Vloadbalancerms..vpkg..module-1": {
+ "vfModuleModelInvariantUUID": "ca052563-eb92-4b5b-ad41-9111768ce043",
+ "vfModuleModelVersion": "1",
+ "vfModuleModelName": "Vloadbalancerms..vpkg..module-1",
+ "vfModuleModelUUID": "1e725ccc-b823-4f67-82b9-4f4367070dbc",
+ "vfModuleModelCustomizationUUID": "1bffdc31-a37d-4dee-b65c-dde623a76e52",
+ "min_vf_module_instances": 0,
+ "vf_module_label": "vpkg",
+ "max_vf_module_instances": 1,
+ "vf_module_type": "Expansion",
+ "isBase": false,
+ "initial_count": 0,
+ "volume_group": false
+ },
+ "Vloadbalancerms..vdns..module-3": {
+ "vfModuleModelInvariantUUID": "4c10ba9b-f88f-415e-9de3-5d33336047fa",
+ "vfModuleModelVersion": "1",
+ "vfModuleModelName": "Vloadbalancerms..vdns..module-3",
+ "vfModuleModelUUID": "4fa73b49-8a6c-493e-816b-eb401567b720",
+ "vfModuleModelCustomizationUUID": "bafcdab0-801d-4d81-9ead-f464640a38b1",
+ "min_vf_module_instances": 0,
+ "vf_module_label": "vdns",
+ "max_vf_module_instances": 50,
+ "vf_module_type": "Expansion",
+ "isBase": false,
+ "initial_count": 0,
+ "volume_group": false
+ },
+ "Vloadbalancerms..base_template..module-0": {
+ "vfModuleModelInvariantUUID": "921f7c96-ebdd-42e6-81b9-1cfc0c9796f3",
+ "vfModuleModelVersion": "1",
+ "vfModuleModelName": "Vloadbalancerms..base_template..module-0",
+ "vfModuleModelUUID": "63734409-f745-4e4d-a38b-131638a0edce",
+ "vfModuleModelCustomizationUUID": "86baddea-c730-4fb8-9410-cd2e17fd7f27",
+ "min_vf_module_instances": 1,
+ "vf_module_label": "base_template",
+ "max_vf_module_instances": 1,
+ "vf_module_type": "Base",
+ "isBase": true,
+ "initial_count": 1,
+ "volume_group": false
+ },
+ "Vloadbalancerms..vlb..module-2": {
+ "vfModuleModelInvariantUUID": "a772a1f4-0064-412c-833d-4749b15828dd",
+ "vfModuleModelVersion": "1",
+ "vfModuleModelName": "Vloadbalancerms..vlb..module-2",
+ "vfModuleModelUUID": "0f5c3f6a-650a-4303-abb6-fff3e573a07a",
+ "vfModuleModelCustomizationUUID": "96a78aad-4ffb-4ef0-9c4f-deb03bf1d806",
+ "min_vf_module_instances": 0,
+ "vf_module_label": "vlb",
+ "max_vf_module_instances": 1,
+ "vf_module_type": "Expansion",
+ "isBase": false,
+ "initial_count": 0,
+ "volume_group": false
+ }
+ }
+ }
+ },
+ "lastComputedState": "DESIGN",
+ "components": {
+ "POLICY": {
+ "componentState": {
+ "stateName": "NOT_SENT",
+ "description": "The policies defined have NOT yet been created on the policy engine"
+ }
+ },
+ "DCAE": {
+ "componentState": {
+ "stateName": "BLUEPRINT_DEPLOYED",
+ "description": "The DCAE blueprint has been found in the DCAE inventory but not yet instancianted for this loop"
+ }
+ }
+ },
+ "operationalPolicies": [
+ {
+ "name": "OPERATIONAL_h2NMX_v1_0_ResourceInstanceName1_tca",
+ "configurationsJson": {
+ "guard_policies": {
+ "guard.minmax.new": {
+ "recipe": "",
+ "clname": "LOOP_h2NMX_v1_0_ResourceInstanceName1_tca",
+ "actor": "",
+ "targets": "",
+ "min": "gg",
+ "max": "gg",
+ "limit": "",
+ "timeUnits": "",
+ "timeWindow": "",
+ "guardActiveStart": "00:00:00Z",
+ "guardActiveEnd": "00:00:01Z"
+ }
+ },
+ "operational_policy": {
+ "controlLoop": {
+ "trigger_policy": "new",
+ "timeout": "0",
+ "abatement": "false",
+ "controlLoopName": "LOOP_h2NMX_v1_0_ResourceInstanceName1_tca"
+ },
+ "policies": [
+ {
+ "id": "new",
+ "recipe": "",
+ "retry": "0",
+ "timeout": "0",
+ "actor": "",
+ "payload": "",
+ "success": "",
+ "failure": "",
+ "failure_timeout": "",
+ "failure_retries": "",
+ "failure_exception": "",
+ "failure_guard": "",
+ "target": {
+ "type": "VM",
+ "resourceID": ""
+ }
+ }
+ ]
+ }
+ }
+ }
+ ],
+ "microServicePolicies": [
+ {
+ "name": "TCA_h2NMX_v1_0_ResourceInstanceName1_tca",
+ "modelType": "onap.policies.monitoring.cdap.tca.hi.lo.app",
+ "properties": {
+ "domain": "measurementsForVfScaling",
+ "metricsPerEventName": [
+ {
+ "policyVersion": "ff",
+ "thresholds": [
+ {
+ "severity": "CRITICAL",
+ "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta",
+ "thresholdValue": 0,
+ "closedLoopEventStatus": "ONSET",
+ "closedLoopControlName": "ff",
+ "version": "ff",
+ "direction": "LESS"
+ }
+ ],
+ "policyName": "ff",
+ "controlLoopSchemaType": "VM",
+ "policyScope": "ff",
+ "eventName": "ff"
+ }
+ ]
+ },
+ "shared": false,
+ "jsonRepresentation": {
+ "schema": {
+ "uniqueItems": "true",
+ "format": "tabs-top",
+ "type": "array",
+ "title": "TCA Policy JSON",
+ "items": {
+ "type": "object",
+ "title": "TCA Policy JSON",
+ "required": [
+ "domain",
+ "metricsPerEventName"
+ ],
+ "properties": {
+ "domain": {
+ "propertyOrder": 1001,
+ "default": "measurementsForVfScaling",
+ "title": "Domain name to which TCA needs to be applied",
+ "type": "string"
+ },
+ "metricsPerEventName": {
+ "propertyOrder": 1002,
+ "uniqueItems": "true",
+ "format": "tabs-top",
+ "title": "Contains eventName and threshold details that need to be applied to given eventName",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "controlLoopSchemaType",
+ "eventName",
+ "policyName",
+ "policyScope",
+ "policyVersion",
+ "thresholds"
+ ],
+ "properties": {
+ "policyVersion": {
+ "propertyOrder": 1007,
+ "title": "TCA Policy Scope Version",
+ "type": "string"
+ },
+ "thresholds": {
+ "propertyOrder": 1008,
+ "uniqueItems": "true",
+ "format": "tabs-top",
+ "title": "Thresholds associated with eventName",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "closedLoopControlName",
+ "closedLoopEventStatus",
+ "direction",
+ "fieldPath",
+ "severity",
+ "thresholdValue",
+ "version"
+ ],
+ "properties": {
+ "severity": {
+ "propertyOrder": 1013,
+ "title": "Threshold Event Severity",
+ "type": "string",
+ "enum": [
+ "CRITICAL",
+ "MAJOR",
+ "MINOR",
+ "WARNING",
+ "NORMAL"
+ ]
+ },
+ "fieldPath": {
+ "propertyOrder": 1012,
+ "title": "Json field Path as per CEF message which needs to be analyzed for TCA",
+ "type": "string",
+ "enum": [
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated",
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated",
+ "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle",
+ "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt",
+ "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice",
+ "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq",
+ "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal",
+ "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem",
+ "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait",
+ "$.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage",
+ "$.event.measurementsForVfScalingFields.meanRequestLatency",
+ "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered",
+ "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached",
+ "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured",
+ "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree",
+ "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed",
+ "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value"
+ ]
+ },
+ "thresholdValue": {
+ "propertyOrder": 1014,
+ "title": "Threshold value for the field Path inside CEF message",
+ "type": "integer"
+ },
+ "closedLoopEventStatus": {
+ "propertyOrder": 1010,
+ "title": "Closed Loop Event Status of the threshold",
+ "type": "string",
+ "enum": [
+ "ONSET",
+ "ABATED"
+ ]
+ },
+ "closedLoopControlName": {
+ "propertyOrder": 1009,
+ "title": "Closed Loop Control Name associated with the threshold",
+ "type": "string"
+ },
+ "version": {
+ "propertyOrder": 1015,
+ "title": "Version number associated with the threshold",
+ "type": "string"
+ },
+ "direction": {
+ "propertyOrder": 1011,
+ "title": "Direction of the threshold",
+ "type": "string",
+ "enum": [
+ "LESS",
+ "LESS_OR_EQUAL",
+ "GREATER",
+ "GREATER_OR_EQUAL",
+ "EQUAL"
+ ]
+ }
+ }
+ }
+ },
+ "policyName": {
+ "propertyOrder": 1005,
+ "title": "TCA Policy Scope Name",
+ "type": "string"
+ },
+ "controlLoopSchemaType": {
+ "propertyOrder": 1003,
+ "title": "Specifies Control Loop Schema Type for the event Name e.g. VNF, VM",
+ "type": "string",
+ "enum": [
+ "VM",
+ "VNF"
+ ]
+ },
+ "policyScope": {
+ "propertyOrder": 1006,
+ "title": "TCA Policy Scope",
+ "type": "string"
+ },
+ "eventName": {
+ "propertyOrder": 1004,
+ "title": "Event name to which thresholds need to be applied",
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ ],
+ "loopLogs": [
+ {
+ "id": 2,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "Micro Service policies UPDATED",
+ "logInstant": "2019-07-08T09:44:53Z"
+ },
+ {
+ "id": 1,
+ "logType": "INFO",
+ "logComponent": "CLAMP",
+ "message": "Operational and Guard policies UPDATED",
+ "logInstant": "2019-07-08T09:44:37Z"
+ }
+ ]
+}