Merge "pdp statistics database provider implementation"
authorLiam Fallon <liam.fallon@est.tech>
Mon, 23 Dec 2019 20:18:31 +0000 (20:18 +0000)
committerGerrit Code Review <gerrit@onap.org>
Mon, 23 Dec 2019 20:18:31 +0000 (20:18 +0000)
models-decisions/src/main/java/org/onap/policy/models/decisions/concepts/DecisionRequest.java
models-examples/src/main/resources/policytypes/onap.policies.Naming.yaml
models-examples/src/main/resources/policytypes/onap.policies.optimization.service.SubscriberPolicy.yaml

index 1ba7f43..ca1e9e2 100644 (file)
 package org.onap.policy.models.decisions.concepts;
 
 import com.google.gson.annotations.SerializedName;
-
+import java.util.HashMap;
 import java.util.Map;
-
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 /**
  * This class is for a Decision Request to a Decision PDP Engine.
@@ -33,6 +33,7 @@ import lombok.Data;
  *
  */
 @Data
+@NoArgsConstructor
 public class DecisionRequest {
     @SerializedName("ONAPName")
     private String  onapName;
@@ -46,9 +47,33 @@ public class DecisionRequest {
     @SerializedName("requestId")
     private String  requestId;
 
+    @SerializedName("context")
+    private Map<String, Object> context;
+
     @SerializedName("action")
     private String  action;
 
     @SerializedName("resource")
     private Map<String, Object> resource;
+
+    /**
+     * Copy constructor.
+     *
+     * @param request Incoming DecisionRequest
+     */
+    public DecisionRequest(DecisionRequest request) {
+        this.setOnapName(request.getOnapName());
+        this.setOnapComponent(request.getOnapComponent());
+        this.setOnapInstance(request.getOnapInstance());
+        this.setRequestId(request.getRequestId());
+        if (request.getContext() != null) {
+            this.setContext(new HashMap<>());
+            this.getContext().putAll(request.getContext());
+        }
+        this.setAction(request.getAction());
+        if (request.getResource() != null) {
+            this.setResource(new HashMap<>());
+            this.getResource().putAll(request.getResource());
+        }
+    }
 }
index f1b9c43..8636b79 100644 (file)
@@ -13,7 +13,7 @@ policy_types:
                     type: policy.data.naming-model-entity
 data_types:
     policy.data.naming-model-entity:
-        derived_from: tosca.nodes.Root
+        derived_from: tosca.datatypes.Root
         properties:
             nfRole:
                 type: string
@@ -37,7 +37,7 @@ data_types:
                 entry_schema:
                     type: policy.data.naming-property
     policy.data.naming-property:
-        derived_from: tosca.nodes.Root
+        derived_from: tosca.datatypes.Root
         properties:
             property-name:
                 type: string
index b6327c8..f45ee81 100644 (file)
@@ -1,28 +1,34 @@
 tosca_definitions_version: tosca_simple_yaml_1_0_0
 policy_types:
-   onap.policies.optimization.service.SubscriberPolicy:
-      derived_from: onap.policies.optimization.Service
-      version: 1.0.0
-      properties:
-         subscriberProperties:
-            type: policy.data.subscriberProperties_properties
-            required: true
+    onap.policies.optimization.service.SubscriberPolicy:
+        derived_from: onap.policies.optimization.Service
+        version: 1.0.0
+        properties:
+            subscriberProperties:
+                type: policy.data.subscriberProperties_properties
+                required: true
 data_types:
-   policy.data.subscriberProperties_properties:
-      derived_from: tosca.nodes.Root
-      properties:
-         subscriberName:
-            type: list
-            required: true
-            entry_schema:
-               type: string
-         subscriberRole:
-            type: list
-            required: true
-            entry_schema:
-               type: string
-         provStatus:
-            type: list
-            required: true
-            entry_schema:
-               type: string
\ No newline at end of file
+    policy.data.subscriberProperties_properties:
+        derived_from: tosca.nodes.Root
+        properties:
+            subscriberName:
+                type: list
+                required: true
+                metadata:
+                    contextProvider: true
+                entry_schema:
+                    type: string
+            subscriberRole:
+                type: list
+                required: true
+                metadata:
+                    contextMatchable: scope
+                entry_schema:
+                    type: string
+            provStatus:
+                type: list
+                required: true
+                metadata:
+                    contextAttribute: true
+                entry_schema:
+                    type: string
\ No newline at end of file