From 88bcb550c2efd5e43ad3d256fe075a6bf7e90538 Mon Sep 17 00:00:00 2001 From: liamfallon Date: Tue, 11 Feb 2020 16:18:32 +0000 Subject: Implement validation and hierarchical get NOTE: This review will require changes to the persistence.xml file in other policy framework components. This change brings in two changes: 1) Validation of the references betwen policies, policy types, and data types This change mans that additions to and changes to policies, policy types, and data types must be structurally correct in the change coming in and with whatever is already in the database 2) Hierarchical return of referenced entitites on policy types, policies and data types. When a policy, policy type, or data type is read from the database, the entities referenced byt the returned policy, policy type, or data type are returned as well. Tests are amended for the stricter validation and structure. Examples are corrected where they are incorrect. Issue-ID: POLICY-1402 Change-Id: Ie6a4cb7ed336562338924079114df405f0ab889f Signed-off-by: liamfallon --- .../policytypes/onap.policies.Naming.yaml | 2 +- ...ap.policies.controlloop.operational.Common.yaml | 50 +++++++++++----------- ...licies.controlloop.operational.common.Apex.yaml | 8 ++-- .../policytypes/onap.policies.native.Apex.yaml | 25 ++++------- .../policytypes/onap.policies.native.Xacml.yaml | 2 +- 5 files changed, 40 insertions(+), 47 deletions(-) (limited to 'models-examples') diff --git a/models-examples/src/main/resources/policytypes/onap.policies.Naming.yaml b/models-examples/src/main/resources/policytypes/onap.policies.Naming.yaml index 8636b7980..c30cefe21 100644 --- a/models-examples/src/main/resources/policytypes/onap.policies.Naming.yaml +++ b/models-examples/src/main/resources/policytypes/onap.policies.Naming.yaml @@ -26,7 +26,7 @@ data_types: metadata: matchable: true naming-recipe: - type: String + type: string required: true name-operation: type: string diff --git a/models-examples/src/main/resources/policytypes/onap.policies.controlloop.operational.Common.yaml b/models-examples/src/main/resources/policytypes/onap.policies.controlloop.operational.Common.yaml index 2dc6ba83b..0dbe7e41a 100644 --- a/models-examples/src/main/resources/policytypes/onap.policies.controlloop.operational.Common.yaml +++ b/models-examples/src/main/resources/policytypes/onap.policies.controlloop.operational.Common.yaml @@ -6,26 +6,26 @@ policy_types: description: Operational Policy for Control Loop execution properties: id: - type: String + type: string description: The unique control loop id. required: true timeout: - type: Integer + type: integer description: | Overall timeout for executing all the operations. This timeout should equal or exceed the total timeout for each operation listed. required: true abatement: - type: Boolean + type: boolean description: Whether an abatement event message will be expected for the control loop from DCAE. required: true default: false trigger: - type: String + type: string description: Initial operation to execute upon receiving an Onset event message for the Control Loop. required: true operations: - type: List + type: list description: List of operations to be performed when Control Loop is triggered. required: true entry_schema: @@ -38,7 +38,7 @@ policy_types: description: Operational policies for Drools PDP properties: controllerName: - type: String + type: string description: Drools controller properties required: false @@ -49,11 +49,11 @@ data_types: description: Captures information of an operational failure performed for control loop properties: messages: - type: String + type: string description: error message required: true category: - type: String + type: string description: | The category the error occurred in. Whether this is a general error from the actor, or the operation timed out, retries were exhausted in trying to execute the operation, a guard policy prevented the @@ -66,13 +66,13 @@ data_types: description: Definition for a entity in A&AI to perform a control loop operation on properties: targetType: - type: String + type: string description: Category for the target type required: true constraints: - valid_values: [VNF, VM, VFMODULE, PNF] entityIds: - type: Map + type: map description: | Map of values that identify the resource. If none are provided, it is assumed that the entity that generated the ONSET event will be the target. @@ -83,36 +83,36 @@ data_types: description: An actor/operation/target definition properties: actor: - type: String + type: string description: The actor performing the operation. required: true operation: - type: String + type: string description: The operation the actor is performing. required: true target: - type: String + type: string description: The resource the operation should be performed on. required: true metadata: clamp_possible_values: payload: - type: Map + type: map description: Name/value pairs of payload information passed by Policy to the actor required: false entry_schema: - type: String + type: string onap.datatype.controlloop.Operation: derived_from: tosca.datatypes.Root description: An operation supported by an actor properties: id: - type: String + type: string description: Unique identifier for the operation required: true description: - type: String + type: string description: A user-friendly description of the intent for the operation required: false operation: @@ -122,41 +122,41 @@ data_types: metadata: clamp_possible_values: timeout: - type: Integer + type: integer description: The amount of time for the actor to perform the operation. required: true retries: - type: Integer + type: integer description: The number of retries the actor should attempt to perform the operation. required: true default: 0 success: - type: String + type: string description: Points to the operation to invoke on success. A value of "final_success" indicates and end to the operation. required: false default: final_success failure: - type: String + type: string description: Points to the operation to invoke on Actor operation failure. required: false default: final_failure failure_timeout: - type: String + type: string description: Points to the operation to invoke when the time out for the operation occurs. required: false default: final_failure_timeout failure_retries: - type: String + type: string description: Points to the operation to invoke when the current operation has exceeded its max retries. required: false default: final_failure_retries failure_exception: - type: String + type: string description: Points to the operation to invoke when the current operation causes an exception. required: false default: final_failure_exception failure_guard: - type: String + type: string description: Points to the operation to invoke when the current operation is blocked due to guard policy enforcement. required: false default: final_failure_guard diff --git a/models-examples/src/main/resources/policytypes/onap.policies.controlloop.operational.common.Apex.yaml b/models-examples/src/main/resources/policytypes/onap.policies.controlloop.operational.common.Apex.yaml index dba656769..e1555e8ed 100644 --- a/models-examples/src/main/resources/policytypes/onap.policies.controlloop.operational.common.Apex.yaml +++ b/models-examples/src/main/resources/policytypes/onap.policies.controlloop.operational.common.Apex.yaml @@ -6,18 +6,18 @@ policy_types: description: Operational policies for Apex PDP properties: engineServiceParameters: - type: String + type: string description: The engine parameters like name, instanceCount, policy implementation, parameters etc. required: true eventInputParameters: - type: String + type: string description: The event input parameters. required: true eventOutputParameters: - type: String + type: string description: The event output parameters. required: true javaProperties: - type: String + type: string description: Name/value pairs of properties to be set for APEX if needed. required: false diff --git a/models-examples/src/main/resources/policytypes/onap.policies.native.Apex.yaml b/models-examples/src/main/resources/policytypes/onap.policies.native.Apex.yaml index 1a394cd7d..8c780f64a 100644 --- a/models-examples/src/main/resources/policytypes/onap.policies.native.Apex.yaml +++ b/models-examples/src/main/resources/policytypes/onap.policies.native.Apex.yaml @@ -43,15 +43,15 @@ data_types: required: false default: "1.0.0" id: - type: int + type: integer description: Specifies the engine id required: true instance_count: - type: int + type: integer description: Specifies the number of engine threads that should be run required: true deployment_port: - type: int + type: integer description: Specifies the port to connect to for engine administration required: false default: 1 @@ -59,17 +59,14 @@ data_types: type: string description: The name of the file from which to read the APEX policy model required: false - default: "" policy_type_impl: type: string description: The policy type implementation from which to read the APEX policy model required: false - default: "" periodic_event_period: type: string description: The time interval in milliseconds for the periodic scanning event, 0 means don't scan required: false - default: 0 engine: type: onap.datatypes.native.apex.engineservice.Engine description: The parameters for all engines in the APEX engine service @@ -98,7 +95,7 @@ data_types: description: Specifies a filter as a regular expression, events that do not match the filter are dropped, the default is to let all events through required: false synchronous_mode: - type: bool + type: boolean description: Specifies the event handler is syncronous (receive event and send response) required: false default: false @@ -106,14 +103,12 @@ data_types: type: string description: The peer event handler (output for input or input for output) of this event handler in synchronous mode, this parameter is mandatory if the event handler is in synchronous mode required: false - default: "" synchronous_timeout: - type: int + type: integer description: The timeout in milliseconds for responses to be issued by APEX torequests, this parameter is mandatory if the event handler is in synchronous mode required: false - default: "" requestor_mode: - type: bool + type: boolean description: Specifies the event handler is in requestor mode (send event and wait for response mode) required: false default: false @@ -121,12 +116,10 @@ data_types: type: string description: The peer event handler (output for input or input for output) of this event handler in requestor mode, this parameter is mandatory if the event handler is in requestor mode required: false - default: "" requestor_timeout: - type: int + type: integer description: The timeout in milliseconds for wait for responses to requests, this parameter is mandatory if the event handler is in requestor mode required: false - default: "" onap.datatypes.native.apex.CarrierTechnology: derived_from: tosca.datatypes.Root properties: @@ -149,7 +142,7 @@ data_types: type: string description: The class name of the class that overrides default handling of the event protocol for this carrier technology, defaults to the supplied event protocol class required: false - onap.datatypes.native.apex.Environmental: + onap.datatypes.native.apex.Environment: derived_from: tosca.datatypes.Root properties: name: @@ -188,7 +181,7 @@ data_types: entry_schema: type: onap.datatypes.native.apex.Plugin locking: - type: onap.datatypes.native.apex.plugin + type: onap.datatypes.native.apex.Plugin description: The plugin to be used for locking context in and between APEX PDPs at runtime required: false persistence: diff --git a/models-examples/src/main/resources/policytypes/onap.policies.native.Xacml.yaml b/models-examples/src/main/resources/policytypes/onap.policies.native.Xacml.yaml index d065f6187..8ed45a010 100644 --- a/models-examples/src/main/resources/policytypes/onap.policies.native.Xacml.yaml +++ b/models-examples/src/main/resources/policytypes/onap.policies.native.Xacml.yaml @@ -10,7 +10,7 @@ policy_types: version: 1.0.0 properties: policy: - type: String + type: string required: true description: The XML XACML 3.0 PolicySet or Policy metadata: -- cgit 1.2.3-korg