diff options
author | jhh <jorge.hernandez-herrero@att.com> | 2020-03-05 22:32:58 -0600 |
---|---|---|
committer | jhh <jorge.hernandez-herrero@att.com> | 2020-03-10 11:29:27 -0500 |
commit | 3f563fe552e35b3bc3d95c47a3cabdfe7645ad07 (patch) | |
tree | 9439dc357096b69b670e7dad666084a5cb08dcfb /policy-domains/src/main/java | |
parent | 845cbbc74445909613aff1912d3cfc9083c57d53 (diff) |
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 <jorge.hernandez-herrero@att.com>
Change-Id: Id41f04d10a28d2ea86bdd41334e499c28d0438ae
Signed-off-by: jhh <jorge.hernandez-herrero@att.com>
Diffstat (limited to 'policy-domains/src/main/java')
20 files changed, 910 insertions, 0 deletions
diff --git a/policy-domains/src/main/java/org/onap/policy/drools/domain/models/DroolsPolicy.java b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/DroolsPolicy.java new file mode 100644 index 00000000..4b1a1cbd --- /dev/null +++ b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/DroolsPolicy.java @@ -0,0 +1,46 @@ +/* + * ============LICENSE_START======================================================= + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.drools.domain.models; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +@Data +@SuperBuilder +@NoArgsConstructor +public abstract class DroolsPolicy { + @SerializedName("type") + protected String type; + + @SerializedName("type_version") + protected String typeVersion; + + @SerializedName("version") + protected String version; + + @SerializedName("name") + protected String name; + + @SerializedName("metadata") + protected Metadata metadata; +} diff --git a/policy-domains/src/main/java/org/onap/policy/drools/domain/models/Metadata.java b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/Metadata.java new file mode 100644 index 00000000..fd68e5b5 --- /dev/null +++ b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/Metadata.java @@ -0,0 +1,40 @@ +/* + * ============LICENSE_START======================================================= + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.drools.domain.models; + +import com.google.gson.annotations.SerializedName; +import java.io.Serializable; +import lombok.Builder; +import lombok.Data; + +/** + * Metadata in Native Drools Policies. + */ + +@Data +@Builder +public class Metadata implements Serializable { + + private static final long serialVersionUID = -1027974819756498893L; + + @SerializedName("policy-id") + protected String policyId; +} diff --git a/policy-domains/src/main/java/org/onap/policy/drools/domain/models/artifact/NativeArtifactController.java b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/artifact/NativeArtifactController.java new file mode 100644 index 00000000..c5d29b02 --- /dev/null +++ b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/artifact/NativeArtifactController.java @@ -0,0 +1,38 @@ +/* + * ============LICENSE_START======================================================= + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.drools.domain.models.artifact; + +import java.io.Serializable; +import lombok.Builder; +import lombok.Data; + +/** + * Controller Model in Native Drools Policies. + */ + +@Data +@Builder +public class NativeArtifactController implements Serializable { + + private static final long serialVersionUID = -2070515139072136869L; + + private String name; +} diff --git a/policy-domains/src/main/java/org/onap/policy/drools/domain/models/artifact/NativeArtifactPolicy.java b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/artifact/NativeArtifactPolicy.java new file mode 100644 index 00000000..0f53b532 --- /dev/null +++ b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/artifact/NativeArtifactPolicy.java @@ -0,0 +1,39 @@ +/* + * ============LICENSE_START======================================================= + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.drools.domain.models.artifact; + +import java.io.Serializable; +import lombok.Data; +import lombok.experimental.SuperBuilder; +import org.onap.policy.drools.domain.models.DroolsPolicy; + +/** + * Native Drools Policy model root object. + */ + +@Data +@SuperBuilder +public class NativeArtifactPolicy extends DroolsPolicy implements Serializable { + + private static final long serialVersionUID = -8171337852833516581L; + + private NativeArtifactProperties properties; +} diff --git a/policy-domains/src/main/java/org/onap/policy/drools/domain/models/artifact/NativeArtifactProperties.java b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/artifact/NativeArtifactProperties.java new file mode 100644 index 00000000..e5ab1561 --- /dev/null +++ b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/artifact/NativeArtifactProperties.java @@ -0,0 +1,38 @@ +/* + * ============LICENSE_START======================================================= + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.drools.domain.models.artifact; + +import java.io.Serializable; +import lombok.Builder; +import lombok.Data; + +/** + * Properties in Native Drools Policies. + */ + +@Data +@Builder +public class NativeArtifactProperties implements Serializable { + private static final long serialVersionUID = 2360030332628276427L; + + private NativeArtifactRulesArtifact rulesArtifact; + private NativeArtifactController controller; +} diff --git a/policy-domains/src/main/java/org/onap/policy/drools/domain/models/artifact/NativeArtifactRulesArtifact.java b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/artifact/NativeArtifactRulesArtifact.java new file mode 100644 index 00000000..c93c2609 --- /dev/null +++ b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/artifact/NativeArtifactRulesArtifact.java @@ -0,0 +1,40 @@ +/* + * ============LICENSE_START======================================================= + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.drools.domain.models.artifact; + +import java.io.Serializable; +import lombok.Builder; +import lombok.Data; + +/** + * Rules Artifact in Native Drools Policies. + */ + +@Data +@Builder +public class NativeArtifactRulesArtifact implements Serializable { + + private static final long serialVersionUID = -3519759514319217518L; + + private String groupId; + private String artifactId; + private String version; +} diff --git a/policy-domains/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerCustomSerialization.java b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerCustomSerialization.java new file mode 100644 index 00000000..4977f9a1 --- /dev/null +++ b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerCustomSerialization.java @@ -0,0 +1,35 @@ +/* + * ============LICENSE_START======================================================= + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.drools.domain.models.controller; + +import java.io.Serializable; +import lombok.Builder; +import lombok.Data; + + +@Data +@Builder +public class ControllerCustomSerialization implements Serializable { + private static final long serialVersionUID = 1505345574249332514L; + + private String customSerializerClass; + private String jsonParser; +} diff --git a/policy-domains/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerEvent.java b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerEvent.java new file mode 100644 index 00000000..d6817a4a --- /dev/null +++ b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerEvent.java @@ -0,0 +1,36 @@ +/* + * ============LICENSE_START======================================================= + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.drools.domain.models.controller; + +import java.io.Serializable; +import lombok.Builder; +import lombok.Data; + + +@Data +@Builder +public class ControllerEvent implements Serializable { + private static final long serialVersionUID = 8770353732981476267L; + + private String eventClass; + private String eventFilter; + private ControllerCustomSerialization customSerialization; +} diff --git a/policy-domains/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerPolicy.java b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerPolicy.java new file mode 100644 index 00000000..09236c84 --- /dev/null +++ b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerPolicy.java @@ -0,0 +1,39 @@ +/* + * ============LICENSE_START======================================================= + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.drools.domain.models.controller; + +import java.io.Serializable; +import lombok.Data; +import lombok.experimental.SuperBuilder; +import org.onap.policy.drools.domain.models.DroolsPolicy; + +/** + * Controller Policy model root object. + */ + +@Data +@SuperBuilder +public class ControllerPolicy extends DroolsPolicy implements Serializable { + + private static final long serialVersionUID = -8171337852833516581L; + + private ControllerProperties properties; +} diff --git a/policy-domains/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerProperties.java b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerProperties.java new file mode 100644 index 00000000..780c20dc --- /dev/null +++ b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerProperties.java @@ -0,0 +1,43 @@ +/* + * ============LICENSE_START======================================================= + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.drools.domain.models.controller; + +import java.io.Serializable; +import java.util.List; +import java.util.Map; +import lombok.Builder; +import lombok.Data; + + +/** + * Controller Domain Policy. + */ + +@Data +@Builder +public class ControllerProperties implements Serializable { + private static final long serialVersionUID = 1259434187110418986L; + + private String controllerName; + private List<ControllerSourceTopic> sourceTopics; + private List<ControllerSinkTopic> sinkTopics; + private Map<String, String> customConfig; +} diff --git a/policy-domains/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerSinkTopic.java b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerSinkTopic.java new file mode 100644 index 00000000..87af6c36 --- /dev/null +++ b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerSinkTopic.java @@ -0,0 +1,36 @@ +/* + * ============LICENSE_START======================================================= + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.drools.domain.models.controller; + +import java.io.Serializable; +import lombok.Data; +import lombok.experimental.SuperBuilder; + + +/** + * Sink Topic. + */ + +@Data +@SuperBuilder +public class ControllerSinkTopic extends ControllerTopic implements Serializable { + private static final long serialVersionUID = 8770353732981476267L; +} diff --git a/policy-domains/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerSourceTopic.java b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerSourceTopic.java new file mode 100644 index 00000000..e41f4dc3 --- /dev/null +++ b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerSourceTopic.java @@ -0,0 +1,36 @@ +/* + * ============LICENSE_START======================================================= + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.drools.domain.models.controller; + +import java.io.Serializable; +import lombok.Data; +import lombok.experimental.SuperBuilder; + + +/** + * Source Topics. + */ + +@Data +@SuperBuilder +public class ControllerSourceTopic extends ControllerTopic implements Serializable { + private static final long serialVersionUID = -1732598566914643612L; +} diff --git a/policy-domains/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerTopic.java b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerTopic.java new file mode 100644 index 00000000..2954350d --- /dev/null +++ b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerTopic.java @@ -0,0 +1,37 @@ +/* + * ============LICENSE_START======================================================= + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.drools.domain.models.controller; + +import java.util.List; +import lombok.Data; +import lombok.experimental.SuperBuilder; + + +/** + * Source Topics. + */ + +@Data +@SuperBuilder +public abstract class ControllerTopic { + protected String topicName; + protected List<ControllerEvent> events; +} diff --git a/policy-domains/src/main/java/org/onap/policy/drools/domain/models/legacy/LegacyPolicy.java b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/legacy/LegacyPolicy.java new file mode 100644 index 00000000..f4fcb702 --- /dev/null +++ b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/legacy/LegacyPolicy.java @@ -0,0 +1,39 @@ +/*- + * ============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.domain.models.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/policy-domains/src/main/java/org/onap/policy/drools/domain/models/legacy/LegacyProperties.java b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/legacy/LegacyProperties.java new file mode 100644 index 00000000..b74d9a6c --- /dev/null +++ b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/legacy/LegacyProperties.java @@ -0,0 +1,47 @@ +/*- + * ============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.domain.models.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; + + /** + * Controller Name (optional) to select an specific controller among many that + * support a policy type. + */ + private String controllerName; +} diff --git a/policy-domains/src/main/java/org/onap/policy/drools/domain/models/operational/ActorOperation.java b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/operational/ActorOperation.java new file mode 100644 index 00000000..af39f792 --- /dev/null +++ b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/operational/ActorOperation.java @@ -0,0 +1,59 @@ +/*- + * ============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.domain.models.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/policy-domains/src/main/java/org/onap/policy/drools/domain/models/operational/Operation.java b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/operational/Operation.java new file mode 100644 index 00000000..b996c825 --- /dev/null +++ b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/operational/Operation.java @@ -0,0 +1,104 @@ +/*- + * ============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.domain.models.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/policy-domains/src/main/java/org/onap/policy/drools/domain/models/operational/OperationalPolicy.java b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/operational/OperationalPolicy.java new file mode 100644 index 00000000..d158608b --- /dev/null +++ b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/operational/OperationalPolicy.java @@ -0,0 +1,40 @@ +/*- + * ============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.domain.models.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/policy-domains/src/main/java/org/onap/policy/drools/domain/models/operational/OperationalProperties.java b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/operational/OperationalProperties.java new file mode 100644 index 00000000..993ba024 --- /dev/null +++ b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/operational/OperationalProperties.java @@ -0,0 +1,69 @@ +/*- + * ============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.domain.models.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/policy-domains/src/main/java/org/onap/policy/drools/domain/models/operational/OperationalTarget.java b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/operational/OperationalTarget.java new file mode 100644 index 00000000..34f405ee --- /dev/null +++ b/policy-domains/src/main/java/org/onap/policy/drools/domain/models/operational/OperationalTarget.java @@ -0,0 +1,49 @@ +/*- + * ============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.domain.models.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<>(); +} |