diff options
author | jhh <jorge.hernandez-herrero@att.com> | 2020-03-10 12:41:49 -0500 |
---|---|---|
committer | jhh <jorge.hernandez-herrero@att.com> | 2020-03-10 12:41:49 -0500 |
commit | 0e658768fc0573bf6acf7f849a49c9da98c8e47f (patch) | |
tree | 6126811a43d2046600c7b1ed5f5044574e4a660c /controlloop/common | |
parent | f9e2f54dbb36f029a41e37f6eccc3426672cb9bb (diff) |
Use predefined domain policies from drools core
Issue-ID: POLICY-2388
Signed-off-by: jhh <jorge.hernandez-herrero@att.com>
Change-Id: I5948ed5152297e4addbab444ed65dcd3b8002492
Diffstat (limited to 'controlloop/common')
15 files changed, 15 insertions, 1095 deletions
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 @@ -<!-- - ============LICENSE_START======================================================= - ONAP - ================================================================================ - Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. - Modifications Copyright (C) 2020 Bell Canada. - ================================================================================ - 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========================================================= - --> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.onap.policy.drools-applications.controlloop.common</groupId> - <artifactId>drools-applications-common</artifactId> - <version>1.6.0-SNAPSHOT</version> - </parent> - - <artifactId>domains</artifactId> - - <dependencies> - <dependency> - <groupId>org.onap.policy.drools-pdp</groupId> - <artifactId>policy-management</artifactId> - <version>${version.policy.drools-pdp}</version> - <scope>provided</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <artifactId>maven-checkstyle-plugin</artifactId> - <executions> - <execution> - <id>onap-java-style</id> - <goals> - <goal>check</goal> - </goals> - <phase>process-sources</phase> - <configuration> - <configLocation>onap-checkstyle/onap-java-style.xml</configLocation> - <sourceDirectories>${project.build.sourceDirectory}</sourceDirectories> - <includeResources>true</includeResources> - <includeTestSourceDirectory>true</includeTestSourceDirectory> - <includeTestResources>true</includeTestResources> - <excludes> - </excludes> - <consoleOutput>true</consoleOutput> - <violationSeverity>warning</violationSeverity> - </configuration> - </execution> - </executions> - <dependencies> - <dependency> - <groupId>org.onap.oparent</groupId> - <artifactId>checkstyle</artifactId> - <version>${oparent.version}</version> - <scope>compile</scope> - </dependency> - </dependencies> - </plugin> - </plugins> - </build> -</project> 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<String, String> 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<Operation> 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<String, String> 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<PojoClass> 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 @@ -201,6 +201,12 @@ <scope>provided</scope> </dependency> <dependency> + <groupId>org.onap.policy.drools-pdp</groupId> + <artifactId>policy-domains</artifactId> + <version>${version.policy.drools-pdp}</version> + <scope>provided</scope> + </dependency> + <dependency> <groupId>org.onap.policy.common</groupId> <artifactId>utils-test</artifactId> <version>${version.policy.common}</version> @@ -223,11 +229,6 @@ <artifactId>h2</artifactId> <scope>test</scope> </dependency> - <dependency> - <groupId>org.onap.policy.drools-applications.controlloop.common</groupId> - <artifactId>domains</artifactId> - <version>1.6.0-SNAPSHOT</version> - </dependency> </dependencies> <build> <plugins> 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 @@ <module>guard</module> <module>coordination</module> <module>eventmanager</module> - <module>domains</module> <module>controller-frankfurt</module> <module>controller-usecases</module> <module>feature-controlloop-utils</module> |