Merge "Fix file access issue in DummyProviderImpl"
authorLiam Fallon <liam.fallon@est.tech>
Wed, 27 Mar 2019 09:20:17 +0000 (09:20 +0000)
committerGerrit Code Review <gerrit@onap.org>
Wed, 27 Mar 2019 09:20:18 +0000 (09:20 +0000)
models-provider/src/main/java/org/onap/policy/models/provider/impl/DummyPolicyModelsProviderImpl.java
models-provider/src/main/resources/dummyimpl/DummyToscaPolicyTypeGetResponse.json
models-tosca/src/main/java/org/onap/policy/models/tosca/legacy/concepts/LegacyGuardPolicy.java
models-tosca/src/test/java/org/onap/policy/models/tosca/legacy/concepts/LegacyGuardPolicyTest.java

index d875019..8d833a5 100644 (file)
@@ -1,6 +1,7 @@
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2019 Nordix Foundation.
+ *  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.
@@ -23,10 +24,8 @@ package org.onap.policy.models.provider.impl;
 import com.google.gson.Gson;
 
 import javax.ws.rs.core.Response;
-
 import lombok.NonNull;
-
-import org.onap.policy.common.utils.resources.TextFileUtils;
+import org.onap.policy.common.utils.resources.ResourceUtils;
 import org.onap.policy.models.base.PfConceptKey;
 import org.onap.policy.models.base.PfModelException;
 import org.onap.policy.models.base.PfModelRuntimeException;
@@ -42,6 +41,7 @@ import org.onap.policy.models.tosca.simple.serialization.ToscaServiceTemplateMes
  * This class provides a dummy implementation of the Policy Models Provider for the ONAP Policy Framework.
  *
  * @author Liam Fallon (liam.fallon@est.tech)
+ * @author Chenfei Gao (cgao@research.att.com)
  */
 public class DummyPolicyModelsProviderImpl implements PolicyModelsProvider {
     /**
@@ -64,7 +64,7 @@ public class DummyPolicyModelsProviderImpl implements PolicyModelsProvider {
 
     @Override
     public ToscaServiceTemplate getPolicyTypes(@NonNull final PfConceptKey policyTypeKey) throws PfModelException {
-        return getDummyResponse("src/main/resources/dummyimpl/DummyToscaPolicyTypeGetResponse.json");
+        return getDummyResponse("dummyimpl/DummyToscaPolicyTypeGetResponse.json");
     }
 
     @Override
@@ -81,12 +81,12 @@ public class DummyPolicyModelsProviderImpl implements PolicyModelsProvider {
 
     @Override
     public ToscaServiceTemplate deletePolicyTypes(@NonNull final PfConceptKey policyTypeKey) throws PfModelException {
-        return getDummyResponse("src/main/resources/dummyimpl/DummyToscaPolicyTypeDeleteResponse.json");
+        return getDummyResponse("dummyimpl/DummyToscaPolicyTypeDeleteResponse.json");
     }
 
     @Override
     public ToscaServiceTemplate getPolicies(@NonNull final PfConceptKey policyKey) throws PfModelException {
-        return getDummyResponse("src/main/resources/dummyimpl/DummyToscaPolicyGetResponse.json");
+        return getDummyResponse("dummyimpl/DummyToscaPolicyGetResponse.json");
     }
 
     @Override
@@ -103,7 +103,7 @@ public class DummyPolicyModelsProviderImpl implements PolicyModelsProvider {
 
     @Override
     public ToscaServiceTemplate deletePolicies(@NonNull final PfConceptKey policyKey) throws PfModelException {
-        return getDummyResponse("src/main/resources/dummyimpl/DummyToscaPolicyDeleteResponse.json");
+        return getDummyResponse("dummyimpl/DummyToscaPolicyDeleteResponse.json");
     }
 
     @Override
@@ -182,7 +182,10 @@ public class DummyPolicyModelsProviderImpl implements PolicyModelsProvider {
         ToscaServiceTemplate serviceTemplate;
 
         try {
-            serviceTemplate = gson.fromJson(TextFileUtils.getTextFileAsString(fileName), ToscaServiceTemplate.class);
+            serviceTemplate = gson.fromJson(ResourceUtils.getResourceAsString(fileName), ToscaServiceTemplate.class);
+            if (serviceTemplate == null) {
+                throw new PfModelException(Response.Status.INTERNAL_SERVER_ERROR, "error reading specified file");
+            }
         } catch (Exception exc) {
             throw new PfModelRuntimeException(Response.Status.INTERNAL_SERVER_ERROR, "error serializing object", exc);
         }
index 27de380..c28c2d2 100644 (file)
 {
-    "tosca_definitions_version": "tosca_simple_yaml_1_0_0",
-    "topology_template": {
-        "policies": [
-            {
-                "onap.vcpe.tca": {
-                    "type": "onap.policies.monitoring.cdap.tca.hi.lo.app",
-                    "version": "1.0.0",
-                    "metadata": {
-                        "policy-id": "onap.vcpe.tca"
-                    },
-                    "properties": {
-                        "domain": "measurementsForVfScaling",
-                        "metricsPerEventName": [
-                            {
-                                "eventName": "Measurement_vGMUX",
-                                "controlLoopSchemaType": "VNF",
-                                "policyScope": "DCAE",
-                                "policyName": "DCAE.Config_tca-hi-lo",
-                                "policyVersion": "v0.0.1",
-                                "thresholds": [
-                                    {
-                                        "closedLoopControlName": "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e",
-                                        "version": "1.0.2",
-                                        "fieldPath": "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value",
-                                        "thresholdValue": 0,
-                                        "direction": "EQUAL",
-                                        "severity": "MAJOR",
-                                        "closedLoopEventStatus": "ABATED"
-                                    },
-                                    {
-                                        "closedLoopControlName": "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e",
-                                        "version": "1.0.2",
-                                        "fieldPath": "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value",
-                                        "thresholdValue": 0,
-                                        "direction": "GREATER",
-                                        "severity": "CRITICAL",
-                                        "closedLoopEventStatus": "ONSET"
-                                    }
-                                ]
-                            }
+   "tosca_definitions_version": "tosca_simple_yaml_1_0_0",
+   "policy_types": [
+      {
+         "onap.policies.Monitoring": {
+            "derived_from": "tosca.policies.Root",
+            "description": "a base policy type for all policies that governs monitoring provisioning"
+         }
+      },
+      {
+         "onap.policy.monitoring.cdap.tca.hi.lo.app": {
+            "derived_from": "onap.policies.Monitoring",
+            "version": "1.0.0",
+            "properties": {
+               "tca_policy": {
+                  "type": "map",
+                  "description": "TCA Policy JSON",
+                  "entry_schema": {
+                     "type": "onap.datatypes.monitoring.tca_policy"
+                  }
+               }
+            }
+         }
+      }
+   ],
+   "data_types": [
+      {
+         "onap.datatypes.monitoring.metricsPerEventName": {
+            "derived_from": "tosca.datatypes.Root",
+            "properties": {
+               "controlLoopSchemaType": {
+                  "type": "string",
+                  "required": true,
+                  "description": "Specifies Control Loop Schema Type for the event Name e.g. VNF, VM",
+                  "constraints": [
+                     {
+                        "valid_values": [
+                           "VM",
+                           "VNF"
+                        ]
+                     }
+                  ]
+               },
+               "eventName": {
+                  "type": "string",
+                  "required": true,
+                  "description": "Event name to which thresholds need to be applied"
+               },
+               "policyName": {
+                  "type": "string",
+                  "required": true,
+                  "description": "TCA Policy Scope Name"
+               },
+               "policyScope": {
+                  "type": "string",
+                  "required": true,
+                  "description": "TCA Policy Scope"
+               },
+               "policyVersion": {
+                  "type": "string",
+                  "required": true,
+                  "description": "TCA Policy Scope Version"
+               },
+               "thresholds": {
+                  "type": "list",
+                  "required": true,
+                  "description": "Thresholds associated with eventName",
+                  "entry_schema": {
+                     "type": "onap.datatypes.monitoring.thresholds"
+                  }
+               }
+            }
+         }
+      },
+      {
+         "onap.datatypes.monitoring.tca_policy": {
+            "derived_from": "tosca.datatypes.Root",
+            "properties": {
+               "domain": {
+                  "type": "string",
+                  "required": true,
+                  "description": "Domain name to which TCA needs to be applied",
+                  "default": "measurementsForVfScaling",
+                  "constraints": [
+                     {
+                        "equal": "measurementsForVfScaling"
+                     }
+                  ]
+               },
+               "metricsPerEventName": {
+                  "type": "list",
+                  "required": true,
+                  "description": "Contains eventName and threshold details that need to be applied to given eventName",
+                  "entry_schema": {
+                     "type": "onap.datatypes.monitoring.metricsPerEventName"
+                  }
+               }
+            }
+         }
+      },
+      {
+         "onap.datatypes.monitoring.thresholds": {
+            "derived_from": "tosca.datatypes.Root",
+            "properties": {
+               "closedLoopControlName": {
+                  "type": "string",
+                  "required": true,
+                  "description": "Closed Loop Control Name associated with the threshold"
+               },
+               "closedLoopEventStatus": {
+                  "type": "string",
+                  "required": true,
+                  "description": "Closed Loop Event Status of the threshold",
+                  "constraints": [
+                     {
+                        "valid_values": [
+                           "ONSET",
+                           "ABATED"
+                        ]
+                     }
+                  ]
+               },
+               "direction": {
+                  "type": "string",
+                  "required": true,
+                  "description": "Direction of the threshold",
+                  "constraints": [
+                     {
+                        "valid_values": [
+                           "LESS",
+                           "LESS_OR_EQUAL",
+                           "GREATER",
+                           "GREATER_OR_EQUAL",
+                           "EQUAL"
+                        ]
+                     }
+                  ]
+               },
+               "fieldPath": {
+                  "type": "string",
+                  "required": true,
+                  "description": "Json field Path as per CEF message which needs to be analyzed for TCA",
+                  "constraints": [
+                     {
+                        "valid_values": [
+                           "$.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"
+                        ]
+                     }
+                  ]
+               },
+               "severity": {
+                  "type": "string",
+                  "required": true,
+                  "description": "Threshold Event Severity",
+                  "constraints": [
+                     {
+                        "valid_values": [
+                           "CRITICAL",
+                           "MAJOR",
+                           "MINOR",
+                           "WARNING",
+                           "NORMAL"
                         ]
-                    }
-                }
+                     }
+                  ]
+               },
+               "thresholdValue": {
+                  "type": "integer",
+                  "required": true,
+                  "description": "Threshold value for the field Path inside CEF message"
+               },
+               "version": {
+                  "type": "string",
+                  "required": true,
+                  "description": "Version number associated with the threshold"
+               }
             }
-        ]
-    }
+         }
+      }
+   ]
 }
\ No newline at end of file
index 2454b51..59715e4 100644 (file)
@@ -21,7 +21,6 @@
 
 package org.onap.policy.models.tosca.legacy.concepts;
 
-import java.util.List;
 import java.util.Map;
 
 import lombok.Data;
@@ -30,6 +29,7 @@ import lombok.Data;
  * Definition of a legacy guard policy stored as a TOSCA policy.
  *
  * @author Liam Fallon (liam.fallon@est.tech)
+ * @author Chenfei Gao (cgao@research.att.com)
  */
 @Data
 public class LegacyGuardPolicy {
@@ -38,6 +38,6 @@ public class LegacyGuardPolicy {
 
     private String policyVersion;
 
-    private List<Map<String, String>> content;
+    private Map<String, String> content;
 
 }
index d2b2216..764ce06 100644 (file)
@@ -23,9 +23,7 @@ package org.onap.policy.models.tosca.legacy.concepts;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 
 import org.junit.Test;
@@ -41,10 +39,8 @@ public class LegacyGuardPolicyTest {
         assertEquals("guard.frequency", guard.getPolicyId());
         guard.setPolicyVersion("1");
         assertEquals("1", guard.getPolicyVersion());
-        Map<String, String> body = new HashMap<>();
-        body.put("actor", "SO");
-        List<Map<String, String>> content = new ArrayList<>();
-        content.add(body);
+        Map<String, String> content = new HashMap<>();
+        content.put("actor", "SO");
         guard.setContent(content);
         assertEquals(1, guard.getContent().size());
     }