From 90555d0346c7e852e6a4dc9622ed29343353b95c Mon Sep 17 00:00:00 2001 From: Chenfei Gao Date: Tue, 7 May 2019 14:46:22 -0400 Subject: Preload legacy operational policy type and guard policy types Includes: a) Add legacy operational policy type and guard policy types into preloading list. b) Fix corresponding junit test failure. Issue-ID: POLICY-1738 Change-Id: I071e898be31e62f47d427094f1e76069fafd0148 Signed-off-by: Chenfei Gao --- .../api/main/startstop/ApiDatabaseInitializer.java | 6 +- .../onap.policies.controlloop.Operational.json | 12 ++ .../onap.policies.controlloop.guard.Blacklist.json | 62 ++++++ ...olicies.controlloop.guard.FrequencyLimiter.json | 77 +++++++ .../onap.policies.controlloop.guard.MinMax.json | 66 ++++++ .../policy/api/main/rest/TestApiRestServer.java | 10 +- .../provider/TestLegacyGuardPolicyProvider.java | 33 +++ .../TestLegacyOperationalPolicyProvider.java | 31 +++ .../api/main/rest/provider/TestPolicyProvider.java | 2 +- .../main/rest/provider/TestPolicyTypeProvider.java | 2 +- .../onap.policies.controlloop.Operational.json | 12 ++ ...olicies.controlloop.guard.FrequencyLimiter.json | 77 +++++++ ...nap.policies.monitoring.cdap.tca.hi.lo.app.json | 223 +++++++++++++++++++++ ...nap.policies.monitoring.cdap.tca.hi.lo.app.yaml | 163 +++++++++++++++ .../onap.policy.monitoring.cdap.tca.hi.lo.app.json | 223 --------------------- .../onap.policy.monitoring.cdap.tca.hi.lo.app.yaml | 163 --------------- 16 files changed, 768 insertions(+), 394 deletions(-) create mode 100644 main/src/main/resources/preloadedPolicyTypes/onap.policies.controlloop.Operational.json create mode 100644 main/src/main/resources/preloadedPolicyTypes/onap.policies.controlloop.guard.Blacklist.json create mode 100644 main/src/main/resources/preloadedPolicyTypes/onap.policies.controlloop.guard.FrequencyLimiter.json create mode 100644 main/src/main/resources/preloadedPolicyTypes/onap.policies.controlloop.guard.MinMax.json create mode 100644 main/src/test/resources/policytypes/onap.policies.controlloop.Operational.json create mode 100644 main/src/test/resources/policytypes/onap.policies.controlloop.guard.FrequencyLimiter.json create mode 100644 main/src/test/resources/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app.json create mode 100644 main/src/test/resources/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app.yaml delete mode 100644 main/src/test/resources/policytypes/onap.policy.monitoring.cdap.tca.hi.lo.app.json delete mode 100644 main/src/test/resources/policytypes/onap.policy.monitoring.cdap.tca.hi.lo.app.yaml (limited to 'main') diff --git a/main/src/main/java/org/onap/policy/api/main/startstop/ApiDatabaseInitializer.java b/main/src/main/java/org/onap/policy/api/main/startstop/ApiDatabaseInitializer.java index 3973e626..27fc83a8 100644 --- a/main/src/main/java/org/onap/policy/api/main/startstop/ApiDatabaseInitializer.java +++ b/main/src/main/java/org/onap/policy/api/main/startstop/ApiDatabaseInitializer.java @@ -60,7 +60,11 @@ public class ApiDatabaseInitializer { "preloadedPolicyTypes/onap.policies.optimization.QueryPolicy.json", "preloadedPolicyTypes/onap.policies.optimization.SubscriberPolicy.json", "preloadedPolicyTypes/onap.policies.optimization.Vim_fit.json", - "preloadedPolicyTypes/onap.policies.optimization.VnfPolicy.json" + "preloadedPolicyTypes/onap.policies.optimization.VnfPolicy.json", + "preloadedPolicyTypes/onap.policies.controlloop.guard.Blacklist.json", + "preloadedPolicyTypes/onap.policies.controlloop.guard.FrequencyLimiter.json", + "preloadedPolicyTypes/onap.policies.controlloop.guard.MinMax.json", + "preloadedPolicyTypes/onap.policies.controlloop.Operational.json" }; /** diff --git a/main/src/main/resources/preloadedPolicyTypes/onap.policies.controlloop.Operational.json b/main/src/main/resources/preloadedPolicyTypes/onap.policies.controlloop.Operational.json new file mode 100644 index 00000000..2d36a258 --- /dev/null +++ b/main/src/main/resources/preloadedPolicyTypes/onap.policies.controlloop.Operational.json @@ -0,0 +1,12 @@ +{ + "tosca_definitions_version": "tosca_simple_yaml_1_0_0", + "policy_types": [ + { + "onap.policies.controlloop.Operational": { + "derived_from": "tosca.policies.Root", + "version": "1.0.0", + "description": "Operational Policy for Control Loops" + } + } + ] +} \ No newline at end of file diff --git a/main/src/main/resources/preloadedPolicyTypes/onap.policies.controlloop.guard.Blacklist.json b/main/src/main/resources/preloadedPolicyTypes/onap.policies.controlloop.guard.Blacklist.json new file mode 100644 index 00000000..9391496c --- /dev/null +++ b/main/src/main/resources/preloadedPolicyTypes/onap.policies.controlloop.guard.Blacklist.json @@ -0,0 +1,62 @@ +{ + "tosca_definitions_version": "tosca_simple_yaml_1_0_0", + "policy_types": [ + { + "onap.policies.controlloop.Guard": { + "derived_from": "tosca.policies.Root", + "version": "1.0.0", + "description": "Guard Policies for Control Loop Operational Policies" + } + }, + { + "onap.policies.controlloop.guard.Blacklist": { + "derived_from": "onap.policies.controlloop.Guard", + "version": "1.0.0", + "description": "Supports blacklist of VNF's from performing control loop actions on.", + "properties": { + "blacklist_policy": { + "type": "map", + "description": null, + "entry_schema": { + "type": "onap.datatypes.guard.Blacklist" + } + } + } + } + } + ], + "data_types": [ + { + "onap.datatypes.guard.Blacklist": { + "derived_from": "tosca.datatypes.Root", + "properties": { + "actor": { + "type": "string", + "description": "Specifies the Actor", + "required": true + }, + "recipe": { + "type": "string", + "description": "Specified the Recipe", + "required": true + }, + "time_range": { + "type": "tosca.datatypes.TimeInterval", + "description": "An optional range of time during the day the blacklist is valid for.", + "required": false + }, + "controlLoopName": { + "type": "string", + "description": "An optional specific control loop to apply this guard to.", + "required": false + }, + "blacklist": { + "type": "list", + "description": "List of VNF's", + "required": true + } + } + } + } + ] +} \ No newline at end of file diff --git a/main/src/main/resources/preloadedPolicyTypes/onap.policies.controlloop.guard.FrequencyLimiter.json b/main/src/main/resources/preloadedPolicyTypes/onap.policies.controlloop.guard.FrequencyLimiter.json new file mode 100644 index 00000000..598bd3c7 --- /dev/null +++ b/main/src/main/resources/preloadedPolicyTypes/onap.policies.controlloop.guard.FrequencyLimiter.json @@ -0,0 +1,77 @@ +{ + "tosca_definitions_version": "tosca_simple_yaml_1_0_0", + "policy_types": [ + { + "onap.policies.controlloop.Guard": { + "derived_from": "tosca.policies.Root", + "version": "1.0.0", + "description": "Guard Policies for Control Loop Operational Policies" + } + }, + { + "onap.policies.controlloop.guard.FrequencyLimiter": { + "derived_from": "onap.policies.controlloop.Guard", + "version": "1.0.0", + "description": "Supports limiting the frequency of actions being taken by a Actor.", + "properties": { + "frequency_policy": { + "type": "map", + "description": null, + "entry_schema": { + "type": "onap.datatypes.guard.FrequencyLimiter" + } + } + } + } + } + ], + "data_types": [ + { + "onap.datatypes.guard.FrequencyLimiter": { + "derived_from": "tosca.datatypes.Root", + "properties": { + "actor": { + "type": "string", + "description": "Specifies the Actor", + "required": true + }, + "recipe": { + "type": "string", + "description": "Specified the Recipe", + "required": true + }, + "time_window": { + "type": "scalar-unit.time", + "description": "The time window to count the actions against.", + "required": true + }, + "limit": { + "type": "integer", + "description": "The limit", + "required": true, + "constraints": [ + { + "greater_than": 0 + } + ] + }, + "time_range": { + "type": "tosca.datatypes.TimeInterval", + "description": "An optional range of time during the day the frequency is valid for.", + "required": false + }, + "controlLoopName": { + "type": "string", + "description": "An optional specific control loop to apply this guard to.", + "required": false + }, + "target": { + "type": "string", + "description": "An optional specific VNF to apply this guard to.", + "required": false + } + } + } + } + ] +} \ No newline at end of file diff --git a/main/src/main/resources/preloadedPolicyTypes/onap.policies.controlloop.guard.MinMax.json b/main/src/main/resources/preloadedPolicyTypes/onap.policies.controlloop.guard.MinMax.json new file mode 100644 index 00000000..71658dd4 --- /dev/null +++ b/main/src/main/resources/preloadedPolicyTypes/onap.policies.controlloop.guard.MinMax.json @@ -0,0 +1,66 @@ +{ + "policy_types": [ + { + "onap.policies.controlloop.Guard": { + "derived_from": "tosca.policies.Root", + "version": "1.0.0", + "description": "Guard Policies for Control Loop Operational Policies" + } + }, + { + "onap.policies.controlloop.guard.MinMax": { + "derived_from": "onap.policies.controlloop.Guard", + "version": "1.0.0", + "description": "Supports Min/Max number of VF Modules", + "properties": { + "minmax_policy": { + "type": "map", + "description": null, + "entry_schema": { + "type": "onap.datatypes.guard.MinMax" + } + } + } + } + } + ], + "data_types": [ + { + "onap.datatypes.guard.MinMax": { + "derived_from": "tosca.datatypes.Root", + "properties": { + "actor": { + "type": "string", + "description": "Specifies the Actor", + "required": true + }, + "recipe": { + "type": "string", + "description": "Specified the Recipe", + "required": true + }, + "time_range": { + "type": "tosca.datatypes.TimeInterval", + "description": "An optional range of time during the day the Min/Max limit is valid for.", + "required": false + }, + "controlLoopName": { + "type": "string", + "description": "An optional specific control loop to apply this guard to.", + "required": false + }, + "min_vf_module_instances": { + "type": "integer", + "required": true, + "description": "The minimum instances of this VF-Module" + }, + "max_vf_module_instances": { + "type": "integer", + "required": false, + "description": "The maximum instances of this VF-Module" + } + } + } + } + ] +} \ No newline at end of file diff --git a/main/src/test/java/org/onap/policy/api/main/rest/TestApiRestServer.java b/main/src/test/java/org/onap/policy/api/main/rest/TestApiRestServer.java index 0d820548..6be91739 100644 --- a/main/src/test/java/org/onap/policy/api/main/rest/TestApiRestServer.java +++ b/main/src/test/java/org/onap/policy/api/main/rest/TestApiRestServer.java @@ -144,7 +144,7 @@ public class TestApiRestServer { }; private String[] toscaPolicyTypeResourceNames = { - "policytypes/onap.policy.monitoring.cdap.tca.hi.lo.app.json", + "policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app.json", "policytypes/onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server.json" }; @@ -447,7 +447,7 @@ public class TestApiRestServer { main = startApiService(true); for (String resrcName : legacyGuardPolicyResourceNames) { Response rawResponse = createGuardPolicy(GUARD_POLICIES, resrcName, true); - assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus()); } }).doesNotThrowAnyException(); } @@ -459,7 +459,7 @@ public class TestApiRestServer { main = startApiService(true); for (String resrcName : legacyOperationalPolicyResourceNames) { Response rawResponse = createOperationalPolicy(OPS_POLICIES, resrcName, true); - assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus()); } }).doesNotThrowAnyException(); } @@ -601,7 +601,7 @@ public class TestApiRestServer { main = startApiService(false); for (String resrcName : legacyGuardPolicyResourceNames) { Response rawResponse = createGuardPolicy(GUARD_POLICIES, resrcName, false); - assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus()); } }).doesNotThrowAnyException(); } @@ -613,7 +613,7 @@ public class TestApiRestServer { main = startApiService(false); for (String resrcName : legacyOperationalPolicyResourceNames) { Response rawResponse = createOperationalPolicy(OPS_POLICIES, resrcName, false); - assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus()); } }).doesNotThrowAnyException(); } diff --git a/main/src/test/java/org/onap/policy/api/main/rest/provider/TestLegacyGuardPolicyProvider.java b/main/src/test/java/org/onap/policy/api/main/rest/provider/TestLegacyGuardPolicyProvider.java index 76641aae..fb7c21c7 100644 --- a/main/src/test/java/org/onap/policy/api/main/rest/provider/TestLegacyGuardPolicyProvider.java +++ b/main/src/test/java/org/onap/policy/api/main/rest/provider/TestLegacyGuardPolicyProvider.java @@ -40,6 +40,7 @@ import org.onap.policy.common.utils.coder.StandardCoder; import org.onap.policy.common.utils.resources.ResourceUtils; import org.onap.policy.models.base.PfModelException; import org.onap.policy.models.provider.PolicyModelsProviderParameters; +import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; import org.onap.policy.models.tosca.legacy.concepts.LegacyGuardPolicyInput; import org.onap.policy.models.tosca.legacy.concepts.LegacyGuardPolicyOutput; @@ -51,11 +52,16 @@ import org.onap.policy.models.tosca.legacy.concepts.LegacyGuardPolicyOutput; public class TestLegacyGuardPolicyProvider { private static LegacyGuardPolicyProvider guardPolicyProvider; + private static PolicyTypeProvider policyTypeProvider; private static PolicyModelsProviderParameters providerParams; private static ApiParameterGroup apiParamGroup; private static StandardCoder standardCoder; private static final String POLICY_RESOURCE = "policies/vDNS.policy.guard.frequency.input.json"; + private static final String POLICY_TYPE_RESOURCE = + "policytypes/onap.policies.controlloop.guard.FrequencyLimiter.json"; + private static final String POLICY_TYPE_ID = "onap.policies.controlloop.guard.FrequencyLimiter:1.0.0"; + private static final String POLICY_ID = "guard.frequency.scaleout:1.0.0"; /** * Initializes parameters. @@ -75,6 +81,7 @@ public class TestLegacyGuardPolicyProvider { apiParamGroup = new ApiParameterGroup("ApiGroup", null, providerParams); ParameterService.register(apiParamGroup, true); guardPolicyProvider = new LegacyGuardPolicyProvider(); + policyTypeProvider = new PolicyTypeProvider(); } /** @@ -86,6 +93,7 @@ public class TestLegacyGuardPolicyProvider { public static void tearDown() throws PfModelException { guardPolicyProvider.close(); + policyTypeProvider.close(); ParameterService.deregister(apiParamGroup); } @@ -105,6 +113,19 @@ public class TestLegacyGuardPolicyProvider { @Test public void testCreateGuardPolicy() { + assertThatThrownBy(() -> { + String policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE); + LegacyGuardPolicyInput policyToCreate = standardCoder.decode(policyString, LegacyGuardPolicyInput.class); + guardPolicyProvider.createGuardPolicy(policyToCreate); + }).hasMessage("policy type " + POLICY_TYPE_ID + " for policy " + POLICY_ID + " does not exist"); + + assertThatCode(() -> { + String policyTypeString = ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE); + ToscaServiceTemplate policyTypeServiceTemplate = + standardCoder.decode(policyTypeString, ToscaServiceTemplate.class); + policyTypeProvider.createPolicyType(policyTypeServiceTemplate); + }).doesNotThrowAnyException(); + assertThatCode(() -> { String policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE); LegacyGuardPolicyInput policyToCreate = standardCoder.decode(policyString, LegacyGuardPolicyInput.class); @@ -129,6 +150,13 @@ public class TestLegacyGuardPolicyProvider { guardPolicyProvider.deleteGuardPolicy("dummy", "dummy"); }).hasMessage("no policy found for policy ID: dummy"); + assertThatCode(() -> { + String policyTypeString = ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE); + ToscaServiceTemplate policyTypeServiceTemplate = + standardCoder.decode(policyTypeString, ToscaServiceTemplate.class); + policyTypeProvider.createPolicyType(policyTypeServiceTemplate); + }).doesNotThrowAnyException(); + assertThatCode(() -> { String policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE); LegacyGuardPolicyInput policyToCreate = standardCoder.decode(policyString, LegacyGuardPolicyInput.class); @@ -151,5 +179,10 @@ public class TestLegacyGuardPolicyProvider { assertThatThrownBy(() -> { guardPolicyProvider.deleteGuardPolicy("guard.frequency.scaleout", "1.0.0"); }).hasMessage("no policy found for policy ID: guard.frequency.scaleout"); + + assertThatCode(() -> { + policyTypeProvider.deletePolicyType("onap.policies.controlloop.guard.FrequencyLimiter", "1.0.0"); + }).doesNotThrowAnyException(); + } } diff --git a/main/src/test/java/org/onap/policy/api/main/rest/provider/TestLegacyOperationalPolicyProvider.java b/main/src/test/java/org/onap/policy/api/main/rest/provider/TestLegacyOperationalPolicyProvider.java index 8aa19793..b5bcbbd6 100644 --- a/main/src/test/java/org/onap/policy/api/main/rest/provider/TestLegacyOperationalPolicyProvider.java +++ b/main/src/test/java/org/onap/policy/api/main/rest/provider/TestLegacyOperationalPolicyProvider.java @@ -38,6 +38,7 @@ import org.onap.policy.common.utils.coder.StandardCoder; import org.onap.policy.common.utils.resources.ResourceUtils; import org.onap.policy.models.base.PfModelException; import org.onap.policy.models.provider.PolicyModelsProviderParameters; +import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; import org.onap.policy.models.tosca.legacy.concepts.LegacyOperationalPolicy; /** @@ -48,11 +49,15 @@ import org.onap.policy.models.tosca.legacy.concepts.LegacyOperationalPolicy; public class TestLegacyOperationalPolicyProvider { private static LegacyOperationalPolicyProvider operationalPolicyProvider; + private static PolicyTypeProvider policyTypeProvider; private static PolicyModelsProviderParameters providerParams; private static ApiParameterGroup apiParamGroup; private static StandardCoder standardCoder; private static final String POLICY_RESOURCE = "policies/vCPE.policy.operational.input.json"; + private static final String POLICY_TYPE_RESOURCE = "policytypes/onap.policies.controlloop.Operational.json"; + private static final String POLICY_TYPE_ID = "onap.policies.controlloop.Operational:1.0.0"; + private static final String POLICY_ID = "operational.restart:1.0.0"; /** * Initializes parameters. @@ -72,6 +77,7 @@ public class TestLegacyOperationalPolicyProvider { apiParamGroup = new ApiParameterGroup("ApiGroup", null, providerParams); ParameterService.register(apiParamGroup, true); operationalPolicyProvider = new LegacyOperationalPolicyProvider(); + policyTypeProvider = new PolicyTypeProvider(); } /** @@ -83,6 +89,7 @@ public class TestLegacyOperationalPolicyProvider { public static void tearDown() throws PfModelException { operationalPolicyProvider.close(); + policyTypeProvider.close(); ParameterService.deregister(apiParamGroup); } @@ -101,6 +108,19 @@ public class TestLegacyOperationalPolicyProvider { @Test public void testCreateOperationalPolicy() { + assertThatThrownBy(() -> { + String policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE); + LegacyOperationalPolicy policyToCreate = standardCoder.decode(policyString, LegacyOperationalPolicy.class); + operationalPolicyProvider.createOperationalPolicy(policyToCreate); + }).hasMessage("policy type " + POLICY_TYPE_ID + " for policy " + POLICY_ID + " does not exist"); + + assertThatCode(() -> { + String policyTypeString = ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE); + ToscaServiceTemplate policyTypeServiceTemplate = + standardCoder.decode(policyTypeString, ToscaServiceTemplate.class); + policyTypeProvider.createPolicyType(policyTypeServiceTemplate); + }).doesNotThrowAnyException(); + assertThatCode(() -> { String policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE); LegacyOperationalPolicy policyToCreate = standardCoder.decode(policyString, LegacyOperationalPolicy.class); @@ -123,6 +143,13 @@ public class TestLegacyOperationalPolicyProvider { operationalPolicyProvider.deleteOperationalPolicy("dummy", "dummy"); }).hasMessage("no policy found for policy ID: dummy"); + assertThatCode(() -> { + String policyTypeString = ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE); + ToscaServiceTemplate policyTypeServiceTemplate = + standardCoder.decode(policyTypeString, ToscaServiceTemplate.class); + policyTypeProvider.createPolicyType(policyTypeServiceTemplate); + }).doesNotThrowAnyException(); + assertThatCode(() -> { String policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE); LegacyOperationalPolicy policyToCreate = standardCoder.decode(policyString, LegacyOperationalPolicy.class); @@ -142,5 +169,9 @@ public class TestLegacyOperationalPolicyProvider { assertThatThrownBy(() -> { operationalPolicyProvider.deleteOperationalPolicy("operational.restart", "1.0.0"); }).hasMessage("no policy found for policy ID: operational.restart"); + + assertThatCode(() -> { + policyTypeProvider.deletePolicyType("onap.policies.controlloop.Operational", "1.0.0"); + }).doesNotThrowAnyException(); } } diff --git a/main/src/test/java/org/onap/policy/api/main/rest/provider/TestPolicyProvider.java b/main/src/test/java/org/onap/policy/api/main/rest/provider/TestPolicyProvider.java index 0ae718d1..8b1be3d5 100644 --- a/main/src/test/java/org/onap/policy/api/main/rest/provider/TestPolicyProvider.java +++ b/main/src/test/java/org/onap/policy/api/main/rest/provider/TestPolicyProvider.java @@ -52,7 +52,7 @@ public class TestPolicyProvider { private static StandardCoder standardCoder; private static final String POLICY_RESOURCE = "policies/vCPE.policy.monitoring.input.tosca.json"; - private static final String POLICY_TYPE_RESOURCE = "policytypes/onap.policy.monitoring.cdap.tca.hi.lo.app.json"; + private static final String POLICY_TYPE_RESOURCE = "policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app.json"; private static final String POLICY_RESOURCE_WITH_BAD_POLICYTYPE_ID = "policies/vCPE.policy.bad.policytypeid.json"; private static final String POLICY_RESOURCE_WITH_BAD_POLICYTYPE_VERSION = "policies/vCPE.policy.bad.policytypeversion.json"; diff --git a/main/src/test/java/org/onap/policy/api/main/rest/provider/TestPolicyTypeProvider.java b/main/src/test/java/org/onap/policy/api/main/rest/provider/TestPolicyTypeProvider.java index 03d49332..7865453f 100644 --- a/main/src/test/java/org/onap/policy/api/main/rest/provider/TestPolicyTypeProvider.java +++ b/main/src/test/java/org/onap/policy/api/main/rest/provider/TestPolicyTypeProvider.java @@ -52,7 +52,7 @@ public class TestPolicyTypeProvider { private static StandardCoder standardCoder; private static final String POLICY_RESOURCE = "policies/vCPE.policy.monitoring.input.tosca.json"; - private static final String POLICY_TYPE_RESOURCE = "policytypes/onap.policy.monitoring.cdap.tca.hi.lo.app.json"; + private static final String POLICY_TYPE_RESOURCE = "policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app.json"; /** * Initializes parameters. diff --git a/main/src/test/resources/policytypes/onap.policies.controlloop.Operational.json b/main/src/test/resources/policytypes/onap.policies.controlloop.Operational.json new file mode 100644 index 00000000..2d36a258 --- /dev/null +++ b/main/src/test/resources/policytypes/onap.policies.controlloop.Operational.json @@ -0,0 +1,12 @@ +{ + "tosca_definitions_version": "tosca_simple_yaml_1_0_0", + "policy_types": [ + { + "onap.policies.controlloop.Operational": { + "derived_from": "tosca.policies.Root", + "version": "1.0.0", + "description": "Operational Policy for Control Loops" + } + } + ] +} \ No newline at end of file diff --git a/main/src/test/resources/policytypes/onap.policies.controlloop.guard.FrequencyLimiter.json b/main/src/test/resources/policytypes/onap.policies.controlloop.guard.FrequencyLimiter.json new file mode 100644 index 00000000..598bd3c7 --- /dev/null +++ b/main/src/test/resources/policytypes/onap.policies.controlloop.guard.FrequencyLimiter.json @@ -0,0 +1,77 @@ +{ + "tosca_definitions_version": "tosca_simple_yaml_1_0_0", + "policy_types": [ + { + "onap.policies.controlloop.Guard": { + "derived_from": "tosca.policies.Root", + "version": "1.0.0", + "description": "Guard Policies for Control Loop Operational Policies" + } + }, + { + "onap.policies.controlloop.guard.FrequencyLimiter": { + "derived_from": "onap.policies.controlloop.Guard", + "version": "1.0.0", + "description": "Supports limiting the frequency of actions being taken by a Actor.", + "properties": { + "frequency_policy": { + "type": "map", + "description": null, + "entry_schema": { + "type": "onap.datatypes.guard.FrequencyLimiter" + } + } + } + } + } + ], + "data_types": [ + { + "onap.datatypes.guard.FrequencyLimiter": { + "derived_from": "tosca.datatypes.Root", + "properties": { + "actor": { + "type": "string", + "description": "Specifies the Actor", + "required": true + }, + "recipe": { + "type": "string", + "description": "Specified the Recipe", + "required": true + }, + "time_window": { + "type": "scalar-unit.time", + "description": "The time window to count the actions against.", + "required": true + }, + "limit": { + "type": "integer", + "description": "The limit", + "required": true, + "constraints": [ + { + "greater_than": 0 + } + ] + }, + "time_range": { + "type": "tosca.datatypes.TimeInterval", + "description": "An optional range of time during the day the frequency is valid for.", + "required": false + }, + "controlLoopName": { + "type": "string", + "description": "An optional specific control loop to apply this guard to.", + "required": false + }, + "target": { + "type": "string", + "description": "An optional specific VNF to apply this guard to.", + "required": false + } + } + } + } + ] +} \ No newline at end of file diff --git a/main/src/test/resources/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app.json b/main/src/test/resources/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app.json new file mode 100644 index 00000000..1d1a4d64 --- /dev/null +++ b/main/src/test/resources/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app.json @@ -0,0 +1,223 @@ +{ + "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.policies.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 diff --git a/main/src/test/resources/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app.yaml b/main/src/test/resources/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app.yaml new file mode 100644 index 00000000..2985603a --- /dev/null +++ b/main/src/test/resources/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app.yaml @@ -0,0 +1,163 @@ +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.policies.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 diff --git a/main/src/test/resources/policytypes/onap.policy.monitoring.cdap.tca.hi.lo.app.json b/main/src/test/resources/policytypes/onap.policy.monitoring.cdap.tca.hi.lo.app.json deleted file mode 100644 index 1d1a4d64..00000000 --- a/main/src/test/resources/policytypes/onap.policy.monitoring.cdap.tca.hi.lo.app.json +++ /dev/null @@ -1,223 +0,0 @@ -{ - "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.policies.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 diff --git a/main/src/test/resources/policytypes/onap.policy.monitoring.cdap.tca.hi.lo.app.yaml b/main/src/test/resources/policytypes/onap.policy.monitoring.cdap.tca.hi.lo.app.yaml deleted file mode 100644 index 2985603a..00000000 --- a/main/src/test/resources/policytypes/onap.policy.monitoring.cdap.tca.hi.lo.app.yaml +++ /dev/null @@ -1,163 +0,0 @@ -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.policies.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 -- cgit 1.2.3-korg