From a4e239da971509dfa2ffcd6c138abc87bc5d0aec Mon Sep 17 00:00:00 2001 From: jhh Date: Thu, 18 Feb 2021 12:01:05 -0600 Subject: support pdp-type configuration for PAP status Issue-ID: POLICY-3070 Signed-off-by: jhh Change-Id: Iaddd9bac102cbe79626fe91d78a457dcfd4cb1fb Signed-off-by: jhh --- .../src/main/feature/config/feature-lifecycle.properties | 3 ++- .../java/org/onap/policy/drools/lifecycle/LifecycleFsm.java | 11 ++++++++++- .../org/onap/policy/drools/lifecycle/LifecycleFsmTest.java | 5 +++++ .../policy/drools/lifecycle/LifecycleStateActiveTest.java | 3 ++- .../policy/drools/lifecycle/LifecycleStatePassiveTest.java | 3 ++- .../src/test/resources/feature-lifecycle.properties | 3 ++- packages/install/src/files/base.conf | 9 +++++---- 7 files changed, 28 insertions(+), 9 deletions(-) diff --git a/feature-lifecycle/src/main/feature/config/feature-lifecycle.properties b/feature-lifecycle/src/main/feature/config/feature-lifecycle.properties index b495664d..fc8127b9 100644 --- a/feature-lifecycle/src/main/feature/config/feature-lifecycle.properties +++ b/feature-lifecycle/src/main/feature/config/feature-lifecycle.properties @@ -1,7 +1,7 @@ # ============LICENSE_START======================================================= # ONAP # ================================================================================ -# Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved. +# Copyright (C) 2019-2021 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. @@ -17,6 +17,7 @@ # ============LICENSE_END========================================================= lifecycle.pdp.group=${envd:POLICY_PDP_PAP_GROUP:defaultGroup} +lifecycle.pdp.type=${envd:POLICY_PDP_PAP_TYPE:drools} # Mandatory policy types that this PDP-D must support at a minimum lifecycle.pdp.policytypes=${envd:POLICY_PDP_PAP_POLICYTYPES} diff --git a/feature-lifecycle/src/main/java/org/onap/policy/drools/lifecycle/LifecycleFsm.java b/feature-lifecycle/src/main/java/org/onap/policy/drools/lifecycle/LifecycleFsm.java index e2c50d4f..a595877a 100644 --- a/feature-lifecycle/src/main/java/org/onap/policy/drools/lifecycle/LifecycleFsm.java +++ b/feature-lifecycle/src/main/java/org/onap/policy/drools/lifecycle/LifecycleFsm.java @@ -85,8 +85,12 @@ public class LifecycleFsm implements Startable { protected static final String CONFIGURATION_PROPERTIES_NAME = "feature-lifecycle"; protected static final String GROUP_NAME = "lifecycle.pdp.group"; + protected static final String PDP_TYPE = "lifecycle.pdp.type"; protected static final String MANDATORY_POLICY_TYPES = "lifecycle.pdp.policytypes"; + protected static final String DEFAULT_PDP_GROUP = "defaultGroup"; + protected static final String DEFAULT_PDP_TYPE = "drools"; + protected static final long MIN_STATUS_INTERVAL_SECONDS = 5L; protected static final String PDP_MESSAGE_NAME = "messageName"; @@ -135,6 +139,10 @@ public class LifecycleFsm implements Startable { @Getter protected String subGroup; + @Getter + @Setter + protected String pdpType; + @Getter protected Set mandatoryPolicyTypes = new HashSet<>(); @@ -153,6 +161,7 @@ public class LifecycleFsm implements Startable { public LifecycleFsm() { properties = SystemPersistenceConstants.getManager().getProperties(CONFIGURATION_PROPERTIES_NAME); setGroup(properties.getProperty(GROUP_NAME, DEFAULT_PDP_GROUP)); + setPdpType(properties.getProperty(PDP_TYPE, DEFAULT_PDP_TYPE)); policyTypesMap.put(POLICY_TYPE_DROOLS_NATIVE_CONTROLLER, new PolicyTypeNativeDroolsController(this, POLICY_TYPE_DROOLS_NATIVE_CONTROLLER)); @@ -580,7 +589,7 @@ public class LifecycleFsm implements Startable { status.setPdpSubgroup(subGroup); status.setState(state); status.setHealthy(isAlive() ? PdpHealthStatus.HEALTHY : PdpHealthStatus.NOT_HEALTHY); - status.setPdpType("drools"); + status.setPdpType(getPdpType()); status.setPolicies(new ArrayList<>(policiesMap.keySet())); status.setStatistics(statisticsPayload()); return status; diff --git a/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleFsmTest.java b/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleFsmTest.java index 9dda01df..54e32d3a 100644 --- a/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleFsmTest.java +++ b/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleFsmTest.java @@ -177,6 +177,11 @@ public class LifecycleFsmTest { assertEquals("foo", fsm.getStats().getPdpSubGroupName()); } + @Test + public void testPdpType() { + assertEquals("foo", fsm.getPdpType()); + } + @Test public void testDeployedPolicyAction() { fsm.deployedPolicyAction(controllerPolicy); diff --git a/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStateActiveTest.java b/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStateActiveTest.java index 0ce1f821..ac0859e7 100644 --- a/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStateActiveTest.java +++ b/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStateActiveTest.java @@ -1,6 +1,6 @@ /* * ============LICENSE_START======================================================= - * Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved. * Modifications Copyright (C) 2021 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -224,6 +224,7 @@ public class LifecycleStateActiveTest extends LifecycleStateRunningTest { "1.0.0"))); PdpStatus cachedStatus = new StandardCoder() .decode(fsm.client.getSink().getRecentEvents()[qlength], PdpStatus.class); + assertEquals("foo", cachedStatus.getPdpType()); assertEquals(new ArrayList<>(fsm.policiesMap.keySet()), cachedStatus.getPolicies()); List factPolicies = controllerSupport.getFacts(ToscaPolicy.class); diff --git a/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStatePassiveTest.java b/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStatePassiveTest.java index 6945f10a..ef01a593 100644 --- a/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStatePassiveTest.java +++ b/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStatePassiveTest.java @@ -158,6 +158,7 @@ public class LifecycleStatePassiveTest extends LifecycleStateRunningTest { int qlength = fsm.client.getSink().getRecentEvents().length; PdpStatus lastStatus = new StandardCoder().decode(fsm.client.getSink().getRecentEvents()[qlength - 1], PdpStatus.class); + assertEquals("foo", lastStatus.getPdpType()); assertEquals(update.getRequestId(), lastStatus.getRequestId()); assertEquals(update.getRequestId(), lastStatus.getResponse().getResponseTo()); @@ -327,7 +328,7 @@ public class LifecycleStatePassiveTest extends LifecycleStateRunningTest { String[] events = fsm.client.getSink().getRecentEvents(); PdpStatus status = new StandardCoder().decode(events[events.length - 1], PdpStatus.class); - assertEquals("drools", status.getPdpType()); + assertEquals("foo", status.getPdpType()); assertEquals(PdpState.TERMINATED, status.getState()); assertEquals(PdpHealthStatus.HEALTHY, status.getHealthy()); assertEquals(NetworkUtil.getHostname(), status.getName()); diff --git a/feature-lifecycle/src/test/resources/feature-lifecycle.properties b/feature-lifecycle/src/test/resources/feature-lifecycle.properties index 052b0165..da3ad550 100644 --- a/feature-lifecycle/src/test/resources/feature-lifecycle.properties +++ b/feature-lifecycle/src/test/resources/feature-lifecycle.properties @@ -1,7 +1,7 @@ # ============LICENSE_START======================================================= # ONAP # ================================================================================ -# Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. +# Copyright (C) 2019, 2021 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. @@ -17,6 +17,7 @@ # ============LICENSE_END========================================================= lifecycle.pdp.group=${envd:POLICY_PDP_PAP_GROUP:defaultGroup} +lifecycle.pdp.type=${envd:POLICY_PDP_PAP_TYPE:foo} lifecycle.pdp.policytypes=${envd:POLICY_PDP_PAP_POLICYTYPES:onap.policies.native.drools.Controller,onap.policies.native.drools.Artifact} noop.source.topics=POLICY-PDP-PAP diff --git a/packages/install/src/files/base.conf b/packages/install/src/files/base.conf index 19a5e44b..a154639f 100644 --- a/packages/install/src/files/base.conf +++ b/packages/install/src/files/base.conf @@ -1,16 +1,16 @@ ### # ============LICENSE_START======================================================= -# ONAP POLICY +# ONAP # ================================================================================ -# Copyright (C) 2017-2020 AT&T Intellectual Property. All rights reserved. +# Copyright (C) 2017-2021 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. @@ -101,6 +101,7 @@ PAP_HOST= PAP_USERNAME= PAP_PASSWORD= POLICY_PDP_PAP_GROUP=defaultGroup +POLICY_PDP_PAP_TYPE= POLICY_PDP_PAP_POLICYTYPES= # PDP-X -- cgit 1.2.3-korg