Merge "Add subrequest ID to OperationOutcome"
authorLiam Fallon <liam.fallon@est.tech>
Tue, 10 Mar 2020 09:18:30 +0000 (09:18 +0000)
committerGerrit Code Review <gerrit@onap.org>
Tue, 10 Mar 2020 09:18:30 +0000 (09:18 +0000)
models-examples/src/main/resources/policies/vCPE.policy.operational.legacy.input.json
models-examples/src/main/resources/policies/vCPE.policy.operational.legacy.output.json
models-examples/src/main/resources/policies/vDNS.policy.guard.blacklist.input.tosca.yaml [new file with mode: 0644]
models-examples/src/main/resources/policies/vDNS.policy.guard.minmaxvnfs.input.tosca.yaml
models-examples/src/main/resources/policytypes/onap.policies.controlloop.guard.common.Blacklist.yaml
models-examples/src/main/resources/policytypes/onap.policies.controlloop.guard.common.FrequencyLimiter.yaml
models-examples/src/main/resources/policytypes/onap.policies.controlloop.guard.common.MinMax.yaml
models-tosca/src/main/java/org/onap/policy/models/tosca/legacy/concepts/LegacyOperationalPolicy.java
models-tosca/src/main/java/org/onap/policy/models/tosca/legacy/mapping/LegacyOperationalPolicyMapper.java
models-tosca/src/test/java/org/onap/policy/models/tosca/legacy/concepts/LegacyOperationalPolicyTest.java

index 7d26e8e..1ae033a 100644 (file)
@@ -1,5 +1,6 @@
 {
   "policy-id" : "operational.restart",
   "policy-version" : "1",
-  "content" : "controlLoop%3A%0A%20%20version%3A%202.0.0%0A%20%20controlLoopName%3A%20ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e%0A%20%20trigger_policy%3A%20unique-policy-id-1-restart%0A%20%20timeout%3A%203600%0A%20%20abatement%3A%20true%0A%20%0Apolicies%3A%0A%20%20-%20id%3A%20unique-policy-id-1-restart%0A%20%20%20%20name%3A%20Restart%20the%20VM%0A%20%20%20%20description%3A%0A%20%20%20%20actor%3A%20APPC%0A%20%20%20%20recipe%3A%20Restart%0A%20%20%20%20target%3A%0A%20%20%20%20%20%20type%3A%20VM%0A%20%20%20%20retry%3A%203%0A%20%20%20%20timeout%3A%201200%0A%20%20%20%20success%3A%20final_success%0A%20%20%20%20failure%3A%20final_failure%0A%20%20%20%20failure_timeout%3A%20final_failure_timeout%0A%20%20%20%20failure_retries%3A%20final_failure_retries%0A%20%20%20%20failure_exception%3A%20final_failure_exception%0A%20%20%20%20failure_guard%3A%20final_failure_guard"
+  "content" : "controlLoop%3A%0A%20%20version%3A%202.0.0%0A%20%20controlLoopName%3A%20ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e%0A%20%20trigger_policy%3A%20unique-policy-id-1-restart%0A%20%20timeout%3A%203600%0A%20%20abatement%3A%20true%0A%20%0Apolicies%3A%0A%20%20-%20id%3A%20unique-policy-id-1-restart%0A%20%20%20%20name%3A%20Restart%20the%20VM%0A%20%20%20%20description%3A%0A%20%20%20%20actor%3A%20APPC%0A%20%20%20%20recipe%3A%20Restart%0A%20%20%20%20target%3A%0A%20%20%20%20%20%20type%3A%20VM%0A%20%20%20%20retry%3A%203%0A%20%20%20%20timeout%3A%201200%0A%20%20%20%20success%3A%20final_success%0A%20%20%20%20failure%3A%20final_failure%0A%20%20%20%20failure_timeout%3A%20final_failure_timeout%0A%20%20%20%20failure_retries%3A%20final_failure_retries%0A%20%20%20%20failure_exception%3A%20final_failure_exception%0A%20%20%20%20failure_guard%3A%20final_failure_guard",
+  "controllerName" : "usecases"
 }
\ No newline at end of file
index 7d26e8e..1ae033a 100644 (file)
@@ -1,5 +1,6 @@
 {
   "policy-id" : "operational.restart",
   "policy-version" : "1",
-  "content" : "controlLoop%3A%0A%20%20version%3A%202.0.0%0A%20%20controlLoopName%3A%20ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e%0A%20%20trigger_policy%3A%20unique-policy-id-1-restart%0A%20%20timeout%3A%203600%0A%20%20abatement%3A%20true%0A%20%0Apolicies%3A%0A%20%20-%20id%3A%20unique-policy-id-1-restart%0A%20%20%20%20name%3A%20Restart%20the%20VM%0A%20%20%20%20description%3A%0A%20%20%20%20actor%3A%20APPC%0A%20%20%20%20recipe%3A%20Restart%0A%20%20%20%20target%3A%0A%20%20%20%20%20%20type%3A%20VM%0A%20%20%20%20retry%3A%203%0A%20%20%20%20timeout%3A%201200%0A%20%20%20%20success%3A%20final_success%0A%20%20%20%20failure%3A%20final_failure%0A%20%20%20%20failure_timeout%3A%20final_failure_timeout%0A%20%20%20%20failure_retries%3A%20final_failure_retries%0A%20%20%20%20failure_exception%3A%20final_failure_exception%0A%20%20%20%20failure_guard%3A%20final_failure_guard"
+  "content" : "controlLoop%3A%0A%20%20version%3A%202.0.0%0A%20%20controlLoopName%3A%20ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e%0A%20%20trigger_policy%3A%20unique-policy-id-1-restart%0A%20%20timeout%3A%203600%0A%20%20abatement%3A%20true%0A%20%0Apolicies%3A%0A%20%20-%20id%3A%20unique-policy-id-1-restart%0A%20%20%20%20name%3A%20Restart%20the%20VM%0A%20%20%20%20description%3A%0A%20%20%20%20actor%3A%20APPC%0A%20%20%20%20recipe%3A%20Restart%0A%20%20%20%20target%3A%0A%20%20%20%20%20%20type%3A%20VM%0A%20%20%20%20retry%3A%203%0A%20%20%20%20timeout%3A%201200%0A%20%20%20%20success%3A%20final_success%0A%20%20%20%20failure%3A%20final_failure%0A%20%20%20%20failure_timeout%3A%20final_failure_timeout%0A%20%20%20%20failure_retries%3A%20final_failure_retries%0A%20%20%20%20failure_exception%3A%20final_failure_exception%0A%20%20%20%20failure_guard%3A%20final_failure_guard",
+  "controllerName" : "usecases"
 }
\ No newline at end of file
diff --git a/models-examples/src/main/resources/policies/vDNS.policy.guard.blacklist.input.tosca.yaml b/models-examples/src/main/resources/policies/vDNS.policy.guard.blacklist.input.tosca.yaml
new file mode 100644 (file)
index 0000000..78a2de6
--- /dev/null
@@ -0,0 +1,15 @@
+tosca_definitions_version: tosca_simple_yaml_1_1_0
+topology_template:
+    policies:
+    -   guard.blacklist.scaleout:
+            type: onap.policies.controlloop.guard.common.Blacklist
+            type_version: 1.0.0
+            version: 1.0.0
+            metadata:
+                policy-id: guard.blacklist.scaleout
+            properties:
+                actor: SO
+                operation: VF Module Create
+                id: ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3
+                blacklist:
+                - the-vfmodule-where-root-is-true
\ No newline at end of file
index dafc524..4c3afb7 100644 (file)
@@ -1,16 +1,16 @@
 tosca_definitions_version: tosca_simple_yaml_1_1_0
 topology_template:
-  policies:
-    -
-      guard.minmax.scaleout:
-        type: onap.policies.controlloop.guard.common.MinMax
-        type_version: 1.0.0
-        version: 1.0.0
-        metadata:
-          policy-id : guard.minmax.scaleout
-        properties:
-          actor: SO
-          operation: VF Module Create
-          id: ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3
-          min: 1
-          max: 2
\ No newline at end of file
+    policies:
+    -   guard.minmax.scaleout:
+            type: onap.policies.controlloop.guard.common.MinMax
+            type_version: 1.0.0
+            version: 1.0.0
+            metadata:
+                policy-id: guard.minmax.scaleout
+            properties:
+                actor: SO
+                operation: VF Module Create
+                id: ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3
+                target: e6130d03-56f1-4b0a-9a1d-e1b2ebc30e0e
+                min: 1
+                max: 2
\ No newline at end of file
index 058066c..0456f43 100644 (file)
@@ -8,7 +8,7 @@ policy_types:
         properties:
             blacklist:
                 type: list
-                description: List of entity id's
+                description: List of entity id's not allowed to have control loop operations on.
                 required: true
                 entry_schema:
                     type: string
\ No newline at end of file
index af8efe8..bda3e4c 100644 (file)
@@ -13,6 +13,7 @@ policy_types:
             timeUnits:
                 type: string
                 description: The units of time the window is counting.
+                required: true
                 constraints:
                 - valid_values: ["second", "minute", "hour", "day", "week", "month", "year"]
             limit:
index 2575151..fb376d4 100644 (file)
@@ -4,11 +4,17 @@ policy_types:
         derived_from: onap.policies.controlloop.guard.Common
         type_version: 1.0.0
         version: 1.0.0
-        description: Supports Min/Max number of entity for scaling operations
+        description: |
+            Supports Min/Max number of entity for scaling operations. Although min and max fields are marked as not
+            required, you need to have at least one or the other.
         properties:
+            target:
+                type: string
+                required: true
+                description: The target entity that has scaling restricted
             min:
                 type: integer
-                required: true
+                required: false
                 description: The minimum instances of this entity
             max:
                 type: integer
index 70453da..a87fab1 100644 (file)
@@ -1,7 +1,7 @@
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2019 Nordix Foundation.
- *  Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ *  Modifications Copyright (C) 2019-2020 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.
@@ -42,5 +42,6 @@ public class LegacyOperationalPolicy {
     private String policyVersion;
 
     private String content;
+    private String controllerName;
 
 }
\ No newline at end of file
index de1bc12..881a5fa 100644 (file)
@@ -1,6 +1,7 @@
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2019-2020 Nordix Foundation.
+ *  Modifications Copyright (C) 2020 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.
@@ -47,6 +48,7 @@ public class LegacyOperationalPolicyMapper
 
     // Property name for the operational policy content
     private static final String CONTENT_PROPERTY = "content";
+    private static final String CONTROLLER_PROPERTY = "controllerName";
 
     private static final Logger LOGGER = LoggerFactory.getLogger(LegacyOperationalPolicyMapper.class);
 
@@ -69,6 +71,9 @@ public class LegacyOperationalPolicyMapper
         final Map<String, String> propertyMap = new HashMap<>();
         toscaPolicy.setProperties(propertyMap);
         toscaPolicy.getProperties().put(CONTENT_PROPERTY, legacyOperationalPolicy.getContent());
+        if (legacyOperationalPolicy.getControllerName() != null) {
+            toscaPolicy.getProperties().put(CONTROLLER_PROPERTY, legacyOperationalPolicy.getControllerName());
+        }
 
         final JpaToscaServiceTemplate serviceTemplate = new JpaToscaServiceTemplate();
         serviceTemplate.setToscaDefinitionsVersion("tosca_simple_yaml_1_1_0");
@@ -115,6 +120,11 @@ public class LegacyOperationalPolicyMapper
 
         legacyOperationalPolicy.setContent(content);
 
+        String controllerName = toscaPolicy.getProperties().get(CONTROLLER_PROPERTY);
+        if (controllerName != null) {
+            legacyOperationalPolicy.setControllerName(controllerName);
+        }
+
         return legacyOperationalPolicy;
     }
 }
index 36cea63..43ad191 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ *  Copyright (C) 2019-2020 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.
@@ -39,6 +39,8 @@ public class LegacyOperationalPolicyTest {
         assertEquals("1", policy.getPolicyVersion());
         policy.setContent("controlLoop%3A%0A%20%20");
         assertTrue(policy.getContent().length() > 0);
+        policy.setControllerName("blah");
+        assertEquals("blah", policy.getControllerName());
     }
 
 }