From 0e658768fc0573bf6acf7f849a49c9da98c8e47f Mon Sep 17 00:00:00 2001 From: jhh Date: Tue, 10 Mar 2020 12:41:49 -0500 Subject: Use predefined domain policies from drools core Issue-ID: POLICY-2388 Signed-off-by: jhh Change-Id: I5948ed5152297e4addbab444ed65dcd3b8002492 --- controlloop/common/domains/pom.xml | 77 ----- .../drools/models/domain/legacy/LegacyPolicy.java | 40 --- .../models/domain/legacy/LegacyProperties.java | 41 --- .../models/domain/operational/ActorOperation.java | 59 ---- .../models/domain/operational/Operation.java | 104 ------- .../domain/operational/OperationalPolicy.java | 40 --- .../domain/operational/OperationalProperties.java | 69 ----- .../domain/operational/OperationalTarget.java | 49 --- ...icies.controlloop.Operational-1.0.0.schema.json | 91 ------ ...oop.operational.common.Drools-1.0.0.schema.json | 331 --------------------- .../domain/operational/OperationalPolicyTest.java | 170 ----------- .../src/test/resources/tosca-legacy-vcpe.json | 9 - controlloop/common/eventmanager/pom.xml | 11 +- .../processor/ControlLoopProcessor.java | 18 +- controlloop/common/pom.xml | 1 - 15 files changed, 15 insertions(+), 1095 deletions(-) delete mode 100644 controlloop/common/domains/pom.xml delete mode 100644 controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/legacy/LegacyPolicy.java delete mode 100644 controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/legacy/LegacyProperties.java delete mode 100644 controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/operational/ActorOperation.java delete mode 100644 controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/operational/Operation.java delete mode 100644 controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/operational/OperationalPolicy.java delete mode 100644 controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/operational/OperationalProperties.java delete mode 100644 controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/operational/OperationalTarget.java delete mode 100644 controlloop/common/domains/src/main/resources/schemas/onap.policies.controlloop.Operational-1.0.0.schema.json delete mode 100644 controlloop/common/domains/src/main/resources/schemas/onap.policies.controlloop.operational.common.Drools-1.0.0.schema.json delete mode 100644 controlloop/common/domains/src/test/java/org/onap/policy/drools/models/domain/operational/OperationalPolicyTest.java delete mode 100644 controlloop/common/domains/src/test/resources/tosca-legacy-vcpe.json (limited to 'controlloop/common') diff --git a/controlloop/common/domains/pom.xml b/controlloop/common/domains/pom.xml deleted file mode 100644 index fa30cea37..000000000 --- a/controlloop/common/domains/pom.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - 4.0.0 - - - org.onap.policy.drools-applications.controlloop.common - drools-applications-common - 1.6.0-SNAPSHOT - - - domains - - - - org.onap.policy.drools-pdp - policy-management - ${version.policy.drools-pdp} - provided - - - - - - - maven-checkstyle-plugin - - - onap-java-style - - check - - process-sources - - onap-checkstyle/onap-java-style.xml - ${project.build.sourceDirectory} - true - true - true - - - true - warning - - - - - - org.onap.oparent - checkstyle - ${oparent.version} - compile - - - - - - diff --git a/controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/legacy/LegacyPolicy.java b/controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/legacy/LegacyPolicy.java deleted file mode 100644 index 6f33ec43a..000000000 --- a/controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/legacy/LegacyPolicy.java +++ /dev/null @@ -1,40 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - * ================================================================================ - * 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.drools.models.domain.legacy; - -import java.io.Serializable; -import lombok.Data; -import lombok.experimental.SuperBuilder; -import org.onap.policy.drools.domain.models.DroolsPolicy; - - -/** - * Operational Domain Policy. - */ - -@Data -@SuperBuilder -public class LegacyPolicy extends DroolsPolicy implements Serializable { - private static final long serialVersionUID = 4100092564657497713L; - - private LegacyProperties properties; - -} diff --git a/controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/legacy/LegacyProperties.java b/controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/legacy/LegacyProperties.java deleted file mode 100644 index 7d07f85bd..000000000 --- a/controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/legacy/LegacyProperties.java +++ /dev/null @@ -1,41 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - * ================================================================================ - * 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.drools.models.domain.legacy; - -import java.io.Serializable; -import lombok.Builder; -import lombok.Data; - - -/** - * Legacy Operational Policy Properties. - */ - -@Data -@Builder -public class LegacyProperties implements Serializable { - private static final long serialVersionUID = 2455300363502597721L; - - /** - * Content (Operational Policy URL encoded yaml). - */ - private String content; -} diff --git a/controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/operational/ActorOperation.java b/controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/operational/ActorOperation.java deleted file mode 100644 index 0f159275d..000000000 --- a/controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/operational/ActorOperation.java +++ /dev/null @@ -1,59 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - * ================================================================================ - * 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.drools.models.domain.operational; - -import java.io.Serializable; -import java.util.HashMap; -import java.util.Map; -import lombok.Builder; -import lombok.Data; - - -/** - * Actor Operation. - */ - -@Data -@Builder -public class ActorOperation implements Serializable { - private static final long serialVersionUID = -534488831693359530L; - - /** - * Actor. - */ - private String actor; - - /** - * Operation Name. - */ - private String operation; - - /** - * Target. - */ - private OperationalTarget target; - - /** - * Payload. - */ - @Builder.Default - private Map payload = new HashMap<>(); -} diff --git a/controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/operational/Operation.java b/controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/operational/Operation.java deleted file mode 100644 index 68eec88fb..000000000 --- a/controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/operational/Operation.java +++ /dev/null @@ -1,104 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - * ================================================================================ - * 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.drools.models.domain.operational; - -import com.google.gson.annotations.SerializedName; -import java.io.Serializable; -import lombok.Builder; -import lombok.Data; - -/** - * Policy Operation. - */ - -@Data -@Builder -public class Operation implements Serializable { - private static final long serialVersionUID = 6175229119078195110L; - - /** - * Operation Identifier. - */ - private String id; - - /** - * Description. - */ - private String description; - - /** - * Actor Operation. - */ - @SerializedName("operation") - private ActorOperation actorOperation; - - /** - * Operation Timeout in seconds. - */ - @Builder.Default - private int timeout = 10; - - /** - * Number of Retries. - */ - @Builder.Default - private int retries = 0; - - /** - * Success Treatment. - */ - @Builder.Default - private String success = "final_success"; - - /** - * Failure Treatment. - */ - @Builder.Default - private String failure = "final_failure"; - - /** - * Failure Timeout Treatment. - */ - @SerializedName("failure_timeout") - @Builder.Default - private String failureTimeout = "final_failure_timeout"; - - /** - * Failure Retry Treatment. - */ - @SerializedName("failure_retries") - @Builder.Default - private String failureRetries = "final_failure_retries"; - - /** - * Failure Exception Treatment. - */ - @SerializedName("failure_exception") - @Builder.Default - private String failureException = "final_failure_exception"; - - /** - * Failure Guard Treatment. - */ - @SerializedName("failure_guard") - @Builder.Default - private String failureGuard = "final_failure_guard"; -} diff --git a/controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/operational/OperationalPolicy.java b/controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/operational/OperationalPolicy.java deleted file mode 100644 index e746d33e6..000000000 --- a/controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/operational/OperationalPolicy.java +++ /dev/null @@ -1,40 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - * ================================================================================ - * 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.drools.models.domain.operational; - -import java.io.Serializable; -import lombok.Data; -import lombok.experimental.SuperBuilder; -import org.onap.policy.drools.domain.models.DroolsPolicy; - - -/** - * Operational Domain Policy. - */ - -@Data -@SuperBuilder -public class OperationalPolicy extends DroolsPolicy implements Serializable { - private static final long serialVersionUID = 4100092564657497713L; - - private OperationalProperties properties; - -} diff --git a/controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/operational/OperationalProperties.java b/controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/operational/OperationalProperties.java deleted file mode 100644 index a1563168c..000000000 --- a/controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/operational/OperationalProperties.java +++ /dev/null @@ -1,69 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - * ================================================================================ - * 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.drools.models.domain.operational; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; -import lombok.Builder; -import lombok.Data; - - -/** - * Operational Policy Properties. - */ - -@Data -@Builder -public class OperationalProperties implements Serializable { - private static final long serialVersionUID = 2455300363502597721L; - - /** - * Control Loop Name. - */ - private String id; - - /** - * Timeout in seconds. - */ - private int timeout = 30; - - /** - * Abatement. - */ - private boolean abatement = false; - - /** - * Trigger Operation. - */ - private String trigger; - - /** - * Operations. - */ - @Builder.Default - private List operations = new ArrayList<>(); - - /** - * Controller Name. - */ - private String controllerName; -} diff --git a/controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/operational/OperationalTarget.java b/controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/operational/OperationalTarget.java deleted file mode 100644 index 66ae337d6..000000000 --- a/controlloop/common/domains/src/main/java/org/onap/policy/drools/models/domain/operational/OperationalTarget.java +++ /dev/null @@ -1,49 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - * ================================================================================ - * 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.drools.models.domain.operational; - -import java.io.Serializable; -import java.util.HashMap; -import java.util.Map; -import lombok.Builder; -import lombok.Data; - - -/** - * Operational Target. - */ - -@Data -@Builder -public class OperationalTarget implements Serializable { - private static final long serialVersionUID = -3557887855401250181L; - - /** - * Target Type. - */ - private String targetType; - - /** - * Payload. - */ - @Builder.Default - private Map entityIds = new HashMap<>(); -} diff --git a/controlloop/common/domains/src/main/resources/schemas/onap.policies.controlloop.Operational-1.0.0.schema.json b/controlloop/common/domains/src/main/resources/schemas/onap.policies.controlloop.Operational-1.0.0.schema.json deleted file mode 100644 index 801859beb..000000000 --- a/controlloop/common/domains/src/main/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/controlloop/common/domains/src/main/resources/schemas/onap.policies.controlloop.operational.common.Drools-1.0.0.schema.json b/controlloop/common/domains/src/main/resources/schemas/onap.policies.controlloop.operational.common.Drools-1.0.0.schema.json deleted file mode 100644 index 5d032f066..000000000 --- a/controlloop/common/domains/src/main/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/controlloop/common/domains/src/test/java/org/onap/policy/drools/models/domain/operational/OperationalPolicyTest.java b/controlloop/common/domains/src/test/java/org/onap/policy/drools/models/domain/operational/OperationalPolicyTest.java deleted file mode 100644 index 7fc60f2f1..000000000 --- a/controlloop/common/domains/src/test/java/org/onap/policy/drools/models/domain/operational/OperationalPolicyTest.java +++ /dev/null @@ -1,170 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - * ================================================================================ - * 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.drools.models.domain.operational; - -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import com.openpojo.reflection.PojoClass; -import com.openpojo.reflection.filters.FilterChain; -import com.openpojo.reflection.filters.FilterClassName; -import com.openpojo.reflection.filters.FilterNonConcrete; -import com.openpojo.reflection.impl.PojoClassFactory; -import com.openpojo.validation.Validator; -import com.openpojo.validation.ValidatorBuilder; -import com.openpojo.validation.test.impl.GetterTester; -import com.openpojo.validation.test.impl.SetterTester; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.List; -import org.junit.Before; -import org.junit.Test; -import org.onap.policy.common.utils.coder.CoderException; -import org.onap.policy.common.utils.coder.StandardCoder; -import org.onap.policy.common.utils.resources.ResourceUtils; -import org.onap.policy.drools.domain.models.DroolsPolicy; -import org.onap.policy.drools.domain.models.Metadata; -import org.onap.policy.drools.policies.DomainMaker; -import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy; -import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier; -import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; - -public class OperationalPolicyTest { - // Policy Types - private static final String OPERATIONAL_DROOLS_POLICY_TYPE = "onap.policies.controlloop.operational.common.Drools"; - private static final String OPERATIONAL_LEGACY_POLICY_TYPE = "onap.policies.controlloop.Operational"; - - // Operational vCPE Policies - private static final String OP_POLICY_NAME_VCPE = "operational.restart"; - private static final String VCPE_OPERATIONAL_DROOLS_POLICY_JSON = - "policies/vCPE.policy.operational.input.tosca.json"; - public static final String VCPE_OPERATIONAL_LEGACY_POLICY_JSON = "src/test/resources/tosca-legacy-vcpe.json"; - - private DomainMaker domainMaker; - private StandardCoder nonValCoder; - - @Before - public void setUp() { - domainMaker = new DomainMaker(); - nonValCoder = new StandardCoder(); - } - - - @Test - public void testToscaCompliantOperationalPolicyType() throws CoderException { - String rawVcpeToscaPolicy = getExamplesPolicyString(VCPE_OPERATIONAL_DROOLS_POLICY_JSON, OP_POLICY_NAME_VCPE); - - // valid "known" policy type with implicit schema - assertTrue(domainMaker - .isConformant( - new ToscaPolicyTypeIdentifier(OPERATIONAL_DROOLS_POLICY_TYPE, "1.0.0"), rawVcpeToscaPolicy)); - - OperationalPolicy policy = domainMaker.convertTo( - new ToscaPolicyTypeIdentifier("OPERATIONAL_LEGACY_POLICY_TYPE", "1.0.0"), - rawVcpeToscaPolicy, OperationalPolicy.class); - - assertNotNull(policy); - } - - @Test - public void testToscaLegacyOperationalPolicyType() throws IOException { - String rawVcpeToscaPolicy = getJsonFromFile(VCPE_OPERATIONAL_LEGACY_POLICY_JSON); - - // valid "known" policy type with implicit schema - assertTrue(domainMaker - .isConformant( - new ToscaPolicyTypeIdentifier(OPERATIONAL_LEGACY_POLICY_TYPE, "1.0.0"), rawVcpeToscaPolicy)); - } - - @Test - public void testOperationalCompliantModel() { - // @formatter:off - OperationalPolicy policy = - OperationalPolicy.builder() - .metadata(Metadata.builder().policyId(OP_POLICY_NAME_VCPE).build()) - .name(OP_POLICY_NAME_VCPE) - .type(OPERATIONAL_DROOLS_POLICY_TYPE) - .typeVersion("1.0.0") - .version("1.0.0") - .properties( - OperationalProperties.builder() - .id("ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e") - .abatement(true) - .trigger("unique-policy-id-1-restart") - .operations( - List.of(Operation.builder() - .id("unique-policy-id-1-restart") - .description("Restart the VM") - .timeout(60) - .retries(3) - .actorOperation(ActorOperation.builder() - .operation("Restart") - .actor("APPC") - .target(OperationalTarget.builder().targetType("VNF").build()) - .build()) - .build())) - .controllerName("usecases") - .build()) - .build(); - // @formatter:on - - assertNotNull(policy); - } - - @Test - public void testPackage() { - /* validate model pojos */ - List pojoClasses = - PojoClassFactory - .getPojoClassesRecursively("org.onap.policy.drools.models.domain.operational", - new FilterChain(new FilterNonConcrete(), - new FilterClassName(DroolsPolicy.class.getName()))); - - Validator validator = ValidatorBuilder.create() - .with(new SetterTester(), new GetterTester()).build(); - validator.validate(pojoClasses); - } - - private String getJsonFromFile(String filePath) throws IOException { - return new String(Files.readAllBytes(Paths.get(filePath))); - } - - private String getJsonFromResource(String resourcePath) { - return ResourceUtils.getResourceAsString(resourcePath); - } - - private String getPolicyFromFileString(String filePath, String policyName) throws CoderException, IOException { - String policyJson = getJsonFromFile(filePath); - ToscaServiceTemplate serviceTemplate = new StandardCoder().decode(policyJson, ToscaServiceTemplate.class); - return nonValCoder.encode(serviceTemplate.getToscaTopologyTemplate().getPolicies().get(0).get(policyName)); - } - - private ToscaPolicy getExamplesPolicy(String resourcePath, String policyName) throws CoderException { - String policyJson = getJsonFromResource(resourcePath); - ToscaServiceTemplate serviceTemplate = new StandardCoder().decode(policyJson, ToscaServiceTemplate.class); - return serviceTemplate.getToscaTopologyTemplate().getPolicies().get(0).get(policyName); - } - - private String getExamplesPolicyString(String resourcePath, String policyName) throws CoderException { - return nonValCoder.encode(getExamplesPolicy(resourcePath, policyName)); - } -} \ No newline at end of file diff --git a/controlloop/common/domains/src/test/resources/tosca-legacy-vcpe.json b/controlloop/common/domains/src/test/resources/tosca-legacy-vcpe.json deleted file mode 100644 index 98e8bb8ff..000000000 --- a/controlloop/common/domains/src/test/resources/tosca-legacy-vcpe.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "type": "onap.policies.controlloop.Operational", - "type_version": "1.0.0", - "properties": { - "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" - }, - "name": "operational.restart", - "version": "1.0.0" -} diff --git a/controlloop/common/eventmanager/pom.xml b/controlloop/common/eventmanager/pom.xml index 3c7451501..dbf701fa5 100644 --- a/controlloop/common/eventmanager/pom.xml +++ b/controlloop/common/eventmanager/pom.xml @@ -200,6 +200,12 @@ ${version.policy.drools-pdp} provided + + org.onap.policy.drools-pdp + policy-domains + ${version.policy.drools-pdp} + provided + org.onap.policy.common utils-test @@ -223,11 +229,6 @@ h2 test - - org.onap.policy.drools-applications.controlloop.common - domains - 1.6.0-SNAPSHOT - diff --git a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/processor/ControlLoopProcessor.java b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/processor/ControlLoopProcessor.java index 154462247..b6c7c8b7a 100644 --- a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/processor/ControlLoopProcessor.java +++ b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/processor/ControlLoopProcessor.java @@ -21,9 +21,9 @@ package org.onap.policy.controlloop.processor; import java.io.Serializable; -import java.io.UnsupportedEncodingException; import java.lang.reflect.InvocationTargetException; import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; import java.util.stream.Collectors; import lombok.Getter; import org.apache.commons.beanutils.BeanUtils; @@ -39,10 +39,10 @@ import org.onap.policy.controlloop.policy.PolicyResult; import org.onap.policy.controlloop.policy.Target; import org.onap.policy.controlloop.policy.TargetType; import org.onap.policy.drools.domain.models.DroolsPolicy; -import org.onap.policy.drools.models.domain.legacy.LegacyPolicy; -import org.onap.policy.drools.models.domain.operational.Operation; -import org.onap.policy.drools.models.domain.operational.OperationalPolicy; -import org.onap.policy.drools.models.domain.operational.OperationalTarget; +import org.onap.policy.drools.domain.models.legacy.LegacyPolicy; +import org.onap.policy.drools.domain.models.operational.Operation; +import org.onap.policy.drools.domain.models.operational.OperationalPolicy; +import org.onap.policy.drools.domain.models.operational.OperationalTarget; import org.onap.policy.drools.system.PolicyEngineConstants; import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy; import org.slf4j.Logger; @@ -55,7 +55,7 @@ public class ControlLoopProcessor implements Serializable { private static final Logger logger = LoggerFactory.getLogger(ControlLoopProcessor.class); private final ControlLoopPolicy policy; - private String currentNestedPolicyId = null; + private String currentNestedPolicyId; // not serializable, thus must be transient @Getter @@ -99,17 +99,17 @@ public class ControlLoopProcessor implements Serializable { this.currentNestedPolicyId = this.policy.getControlLoop().getTrigger_policy(); this.toscaOpPolicy = toscaPolicy; - } catch (RuntimeException | CoderException | UnsupportedEncodingException e) { + } catch (RuntimeException | CoderException e) { throw new ControlLoopException(e); } } protected ControlLoopPolicy buildPolicyFromToscaLegacy(ToscaPolicy policy) - throws UnsupportedEncodingException, CoderException { + throws CoderException { LegacyPolicy legacyPolicy = PolicyEngineConstants.getManager().getDomainMaker().convertTo(policy, LegacyPolicy.class); this.domainOpPolicy = legacyPolicy; - String decodedPolicy = URLDecoder.decode(legacyPolicy.getProperties().getContent(), "UTF-8"); + String decodedPolicy = URLDecoder.decode(legacyPolicy.getProperties().getContent(), StandardCharsets.UTF_8); return new Yaml( new CustomClassLoaderConstructor( ControlLoopPolicy.class, ControlLoopPolicy.class.getClassLoader())).load(decodedPolicy); diff --git a/controlloop/common/pom.xml b/controlloop/common/pom.xml index e383707c4..934dbcd03 100644 --- a/controlloop/common/pom.xml +++ b/controlloop/common/pom.xml @@ -37,7 +37,6 @@ guard coordination eventmanager - domains controller-frankfurt controller-usecases feature-controlloop-utils -- cgit 1.2.3-korg