From 3f563fe552e35b3bc3d95c47a3cabdfe7645ad07 Mon Sep 17 00:00:00 2001 From: jhh Date: Thu, 5 Mar 2020 22:32:58 -0600 Subject: policy routing and reorg into policy-domains - Native Drools Controller Policy support. - Move domain policies into the policy-domains project. - Route legacy/compliant operational policies to one or all controller supporting the policy's policy type. - Enhancements to scripts to invoke commands external to the container. Issue-ID: POLICY-2388 Signed-off-by: jhh Change-Id: Id41f04d10a28d2ea86bdd41334e499c28d0438ae Signed-off-by: jhh --- .../example.policy.drools.controller.tosca.json | 54 ---- .../example.policy.native.drools.tosca.json | 29 -- ...icies.controlloop.Operational-1.0.0.schema.json | 91 ------ ...oop.operational.common.Drools-1.0.0.schema.json | 331 --------------------- .../tosca-policy-native-artifact-example.json | 29 ++ .../tosca-policy-native-controller-example.json | 58 ++++ 6 files changed, 87 insertions(+), 505 deletions(-) delete mode 100644 feature-lifecycle/src/test/resources/example.policy.drools.controller.tosca.json delete mode 100644 feature-lifecycle/src/test/resources/example.policy.native.drools.tosca.json delete mode 100644 feature-lifecycle/src/test/resources/schemas/onap.policies.controlloop.Operational-1.0.0.schema.json delete mode 100644 feature-lifecycle/src/test/resources/schemas/onap.policies.controlloop.operational.common.Drools-1.0.0.schema.json create mode 100644 feature-lifecycle/src/test/resources/tosca-policy-native-artifact-example.json create mode 100644 feature-lifecycle/src/test/resources/tosca-policy-native-controller-example.json (limited to 'feature-lifecycle/src/test/resources') diff --git a/feature-lifecycle/src/test/resources/example.policy.drools.controller.tosca.json b/feature-lifecycle/src/test/resources/example.policy.drools.controller.tosca.json deleted file mode 100644 index f5a9151f..00000000 --- a/feature-lifecycle/src/test/resources/example.policy.drools.controller.tosca.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "tosca_definitions_version": "tosca_simple_yaml_1_0_0", - "topology_template": { - "policies": [ - { - "example": { - "type": "onap.policies.drools.Controller", - "type_version": "1.0.0", - "version": "1.0.0", - "name": "example", - "metadata": { - "policy-id": "example" - }, - "properties": { - "controllerName": "lifecycle", - "sourceTopics": [ - { - "topicName": "DCAE_TOPIC", - "serialization": [ - { - "eventClass": "org.onap.policy.controlloop.CanonicalOnset", - "eventFilter": "[?($.closedLoopEventStatus == 'ONSET')]", - "customSerializer": { - "customSerializerClass": "org.onap.policy.controlloop.util.Serialization", - "jsonParser": "gson" - } - } - ] - } - ], - "sinkTopics": [ - { - "topicName": "APPC-CL", - "serialization": [ - { - "eventClass": "org.onap.policy.appc.Response", - "eventFilter": "[?($.CommonHeader && $.Status)]", - "customSerializer": { - "customSerializerClass": "org.onap.policy.appc.util.Serialization", - "jsonParser": "gsonPretty" - } - } - ] - } - ], - "customConfig": { - "field1" : "value1" - } - } - } - } - ] - } -} \ No newline at end of file diff --git a/feature-lifecycle/src/test/resources/example.policy.native.drools.tosca.json b/feature-lifecycle/src/test/resources/example.policy.native.drools.tosca.json deleted file mode 100644 index f3f34b6f..00000000 --- a/feature-lifecycle/src/test/resources/example.policy.native.drools.tosca.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "tosca_definitions_version": "tosca_simple_yaml_1_0_0", - "topology_template": { - "policies": [ - { - "example": { - "type": "onap.policies.native.Drools", - "type_version": "1.0.0", - "version": "1.0.0", - "name": "example", - "metadata": { - "policy-id": "example" - }, - "properties": { - "rulesArtifact": { - "groupId": "org.onap.policy.drools.test", - "artifactId": "lifecycle", - "version": "1.0.0" - }, - "controller": { - "name": "lifecycle", - "version": "1.0.0" - } - } - } - } - ] - } -} \ No newline at end of file diff --git a/feature-lifecycle/src/test/resources/schemas/onap.policies.controlloop.Operational-1.0.0.schema.json b/feature-lifecycle/src/test/resources/schemas/onap.policies.controlloop.Operational-1.0.0.schema.json deleted file mode 100644 index 801859be..00000000 --- a/feature-lifecycle/src/test/resources/schemas/onap.policies.controlloop.Operational-1.0.0.schema.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "definitions": {}, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://www.onap.org/policy/models/schemas/onap.policies.controlloop.Operational.schema.json", - "type": "object", - "title": "Root Schema for legacy onap.policies.controlloop.Operational policy type domain policies", - "required": [ - "type", - "type_version", - "name", - "version", - "properties" - ], - "properties": { - "type": { - "$id": "#/properties/type", - "type": "string", - "title": "Policy Type", - "default": "onap.policies.controlloop.Operational", - "examples": [ - "onap.policies.controlloop.Operational" - ], - "pattern": "^(.+)$" - }, - "type_version": { - "$id": "#/properties/type_version", - "type": "string", - "title": "Policy Type Version", - "examples": [ - "1.0.0" - ], - "pattern": "^(.+)$" - }, - "version": { - "$id": "#/properties/version", - "type": "string", - "title": "Version", - "examples": [ - "1.0.0" - ], - "pattern": "^(.+)$" - }, - "name": { - "$id": "#/properties/name", - "type": "string", - "title": "Name", - "examples": [ - "example" - ], - "pattern": "^(.+)$" - }, - "metadata": { - "$id": "#/properties/metadata", - "type": "object", - "title": "Metadata", - "required": [ - "policy-id" - ], - "properties": { - "policy-id": { - "$id": "#/properties/metadata/properties/policy-id", - "type": "string", - "title": "Policy Name", - "examples": [ - "example" - ], - "pattern": "^(.+)$" - } - } - }, - "properties": { - "$id": "#/properties/properties", - "type": "object", - "title": "Properties", - "required": [ - "content" - ], - "properties": { - "content": { - "$id": "#/properties/properties/properties/content", - "type": "string", - "title": "Legacy policy in yaml format", - "examples": [ - "controlLoop%3A%0A%20%20version%3A%202.0.0%0A%20%20controlLoopName%3A%20ControlLoop-vCPEv2-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" - ], - "pattern": "^(.+)$" - } - } - } - } -} diff --git a/feature-lifecycle/src/test/resources/schemas/onap.policies.controlloop.operational.common.Drools-1.0.0.schema.json b/feature-lifecycle/src/test/resources/schemas/onap.policies.controlloop.operational.common.Drools-1.0.0.schema.json deleted file mode 100644 index 5d032f06..00000000 --- a/feature-lifecycle/src/test/resources/schemas/onap.policies.controlloop.operational.common.Drools-1.0.0.schema.json +++ /dev/null @@ -1,331 +0,0 @@ -{ - "definitions": {}, - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://www.onap.org/policy/models/schemas/onap.policies.controlloop.operational.common.Drools.schema.json", - "type": "object", - "title": "The Root Schema", - "required": [ - "type", - "type_version", - "version", - "metadata", - "properties" - ], - "properties": { - "type": { - "$id": "#/properties/type", - "type": "string", - "title": "Policy Type", - "default": "onap.policies.controlloop.operational.common.Drools", - "examples": [ - "onap.policies.controlloop.operational.common.Drools" - ], - "pattern": "^(.+)$" - }, - "type_version": { - "$id": "#/properties/type_version", - "type": "string", - "title": "Policy Type Version", - "default": "1.0.0", - "examples": [ - "1.0.0" - ], - "pattern": "^(.+)$" - }, - "name": { - "$id": "#/properties/name", - "type": "string", - "title": "Policy Name", - "default": "", - "examples": [ - "example" - ], - "pattern": "^(.*)$" - }, - "version": { - "$id": "#/properties/version", - "type": "string", - "title": "Policy Version", - "default": "1.0.0", - "examples": [ - "1.0.0" - ], - "pattern": "^(.+)$" - }, - "metadata": { - "$id": "#/properties/metadata", - "type": "object", - "title": "Metadata", - "required": [ - "policy-id" - ], - "properties": { - "policy-id": { - "$id": "#/properties/metadata/properties/policy-id", - "type": "string", - "title": "Policy ID", - "examples": [ - "operational.restart" - ], - "pattern": "^(.+)$" - } - } - }, - "properties": { - "$id": "#/properties/properties", - "type": "object", - "title": "Properties", - "required": [ - "id", - "timeout", - "abatement", - "trigger", - "operations", - "controllerName" - ], - "properties": { - "id": { - "$id": "#/properties/properties/properties/id", - "type": "string", - "title": "Control Loop Name", - "examples": [ - "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e" - ], - "pattern": "^(.+)$" - }, - "timeout": { - "$id": "#/properties/properties/properties/timeout", - "type": "integer", - "title": "Timeout in seconds", - "minimum": 1, - "default": 30, - "examples": [ - 3600 - ] - }, - "abatement": { - "$id": "#/properties/properties/properties/abatement", - "type": "boolean", - "title": "Abatement", - "default": false, - "examples": [ - true - ] - }, - "trigger": { - "$id": "#/properties/properties/properties/trigger", - "type": "string", - "title": "Trigger Operation", - "examples": [ - "unique-policy-id-1-restart" - ], - "pattern": "^(.+)$" - }, - "operations": { - "$id": "#/properties/properties/properties/operations", - "type": "array", - "title": "Operations", - "items": { - "$id": "#/properties/properties/properties/operations/items", - "type": "object", - "title": "Items", - "uniqueItems": true, - "required": [ - "id", - "operation", - "timeout", - "retries", - "success", - "failure" - ], - "properties": { - "id": { - "$id": "#/properties/properties/properties/operations/items/properties/id", - "type": "string", - "title": "Operation Identifier", - "examples": [ - "unique-policy-id-1-restart" - ], - "pattern": "^(.+)$" - }, - "description": { - "$id": "#/properties/properties/properties/operations/items/properties/description", - "type": "string", - "title": "Description", - "examples": [ - "Restart the VM" - ], - "pattern": "^(.+)$" - }, - "operation": { - "$id": "#/properties/properties/properties/operations/items/properties/operation", - "type": "object", - "title": "Operation", - "required": [ - "actor", - "operation", - "target" - ], - "properties": { - "actor": { - "$id": "#/properties/properties/properties/operations/items/properties/operation/properties/actor", - "type": "string", - "title": "Actor", - "examples": [ - "APPC" - ], - "pattern": "^(.+)$" - }, - "operation": { - "$id": "#/properties/properties/properties/operations/items/properties/operation/properties/operation", - "type": "string", - "title": "Operation Name", - "examples": [ - "Restart" - ], - "pattern": "^(.+)$" - }, - "target": { - "$id": "#/properties/properties/properties/operations/items/properties/operation/properties/target", - "type": "object", - "title": "Target", - "required": [ - "targetType" - ], - "properties": { - "targetType": { - "$id": "#/properties/properties/properties/operations/items/properties/operation/properties/target/properties/targetType", - "type": "string", - "title": "Target Type", - "examples": [ - "VNF" - ], - "pattern": "^(.+)$" - }, - "entityIds": { - "$id": "#/properties/properties/properties/operations/items/properties/operation/properties/target/properties/entityIds", - "type": "object", - "title": "Arbitrary Resource Identities", - "examples": [ - "Eace933104d443b496b8.nodes.heat.vpg" - ], - "additionalProperties": { - "type": "string", - "pattern": "^(.+)$" - } - } - } - }, - "payload": { - "$id": "#/properties/properties/properties/operations/items/properties/operation/properties/payload", - "type": "object", - "title": "Payload", - "additionalProperties": { - "type": "string", - "pattern": "^(.+)$" - } - } - } - }, - "timeout": { - "$id": "#/properties/properties/properties/operations/items/properties/timeout", - "type": "integer", - "title": "Operation Timeout in seconds", - "default": 10, - "minimum": 1, - "examples": [ - 1200 - ] - }, - "retries": { - "$id": "#/properties/properties/properties/operations/items/properties/retries", - "type": "integer", - "title": "Number of Retries", - "default": 0, - "examples": [ - 3 - ] - }, - "success": { - "$id": "#/properties/properties/properties/operations/items/properties/success", - "type": "string", - "title": "Success Treatment", - "default": "final_success", - "examples": [ - "final_success", - "unique-policy-id-2" - ], - "pattern": "^(.+)$" - }, - "failure": { - "$id": "#/properties/properties/properties/operations/items/properties/failure", - "type": "string", - "title": "Failure Treatment", - "default": "final_failure", - "examples": [ - "final_failure", - "unique-policy-id-2" - ], - "pattern": "^(.+)$" - }, - "failure_timeout": { - "$id": "#/properties/properties/properties/operations/items/properties/failure_timeout", - "type": "string", - "title": "Failure Timeout Treatment", - "default": "final_failure_timeout", - "examples": [ - "final_failure_timeout", - "unique-policy-id-2" - ], - "pattern": "^(.+)$" - }, - "failure_retries": { - "$id": "#/properties/properties/properties/operations/items/properties/failure_retries", - "type": "string", - "title": "Failure Retry Treatment", - "default": "final_failure_retries", - "examples": [ - "final_failure_retries", - "unique-policy-id-2" - ], - "pattern": "^(.+)$" - }, - "failure_exception": { - "$id": "#/properties/properties/properties/operations/items/properties/failure_exception", - "type": "string", - "title": "Failure Exception Treatment", - "default": "", - "examples": [ - "final_failure_exception", - "unique-policy-id-2" - ], - "pattern": "^(.+)$" - }, - "failure_guard": { - "$id": "#/properties/properties/properties/operations/items/properties/failure_guard", - "type": "string", - "title": "Failure Guard Treatment", - "default": "final_failure_guard", - "examples": [ - "final_failure_guard", - "unique-policy-id-2" - ], - "pattern": "^(.+)$" - } - } - } - }, - "controllerName": { - "$id": "#/properties/properties/properties/controllerName", - "type": "string", - "title": "Controller Name", - "default": "", - "examples": [ - "usecases" - ], - "pattern": "^(.+)$" - } - } - } - } -} \ No newline at end of file diff --git a/feature-lifecycle/src/test/resources/tosca-policy-native-artifact-example.json b/feature-lifecycle/src/test/resources/tosca-policy-native-artifact-example.json new file mode 100644 index 00000000..f521953d --- /dev/null +++ b/feature-lifecycle/src/test/resources/tosca-policy-native-artifact-example.json @@ -0,0 +1,29 @@ +{ + "tosca_definitions_version": "tosca_simple_yaml_1_0_0", + "topology_template": { + "policies": [ + { + "example": { + "type": "onap.policies.native.drools.Artifact", + "type_version": "1.0.0", + "version": "1.0.0", + "name": "example", + "metadata": { + "policy-id": "example" + }, + "properties": { + "rulesArtifact": { + "groupId": "org.onap.policy.drools.test", + "artifactId": "lifecycle", + "version": "1.0.0" + }, + "controller": { + "name": "lifecycle", + "version": "1.0.0" + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/feature-lifecycle/src/test/resources/tosca-policy-native-controller-example.json b/feature-lifecycle/src/test/resources/tosca-policy-native-controller-example.json new file mode 100644 index 00000000..3d716845 --- /dev/null +++ b/feature-lifecycle/src/test/resources/tosca-policy-native-controller-example.json @@ -0,0 +1,58 @@ +{ + "tosca_definitions_version": "tosca_simple_yaml_1_0_0", + "topology_template": { + "policies": [ + { + "example": { + "type": "onap.policies.native.drools.Controller", + "type_version": "1.0.0", + "version": "1.0.0", + "name": "example", + "metadata": { + "policy-id": "example" + }, + "properties": { + "controllerName": "lifecycle", + "sourceTopics": [ + { + "topicName": "DCAE_TOPIC", + "events": [ + { + "eventClass": "org.onap.policy.controlloop.CanonicalOnset", + "eventFilter": "[?($.closedLoopEventStatus == 'ONSET')]", + "customSerialization": { + "customSerializerClass": "org.onap.policy.controlloop.util.Serialization", + "jsonParser": "gson" + } + }, + { + "eventClass": "org.onap.policy.controlloop.CanonicalAbated", + "eventFilter": "[?($.closedLoopEventStatus == 'ABATED')]" + } + ] + } + ], + "sinkTopics": [ + { + "topicName": "APPC-CL", + "events": [ + { + "eventClass": "org.onap.policy.appc.Response", + "eventFilter": "[?($.CommonHeader && $.Status)]", + "customSerialization": { + "customSerializerClass": "org.onap.policy.appc.util.Serialization", + "jsonParser": "gsonPretty" + } + } + ] + } + ], + "customConfig": { + "field1" : "value1" + } + } + } + } + ] + } +} \ No newline at end of file -- cgit 1.2.3-korg