aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--feature-distributed-locking/src/main/feature/db/pooling/sql/1804-distributedlocking.upgrade.sql17
-rw-r--r--feature-distributed-locking/src/main/feature/db/pooling/sql/1811-distributedlocking.upgrade.sql6
-rw-r--r--feature-distributed-locking/src/main/java/org/onap/policy/distributed/locking/DistributedLockManager.java32
-rw-r--r--feature-distributed-locking/src/test/java/org/onap/policy/distributed/locking/DistributedLockManagerTest.java27
-rw-r--r--feature-lifecycle/src/main/java/org/onap/policy/drools/lifecycle/LifecycleFsm.java27
-rw-r--r--feature-lifecycle/src/main/java/org/onap/policy/drools/server/restful/RestLifecycleManager.java6
-rw-r--r--feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleFsmTest.java4
-rw-r--r--feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleFsmUpdateTest.java8
-rw-r--r--feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStateActivePoliciesTest.java6
-rw-r--r--feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStateActiveTest.java8
-rw-r--r--feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStatePassiveTest.java12
-rw-r--r--feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStateRunningTest.java6
-rw-r--r--feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStateTerminatedTest.java4
-rw-r--r--feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/PolicyTypeNativeDroolsControllerTest.java4
-rw-r--r--packages/install/src/files/base.conf3
-rw-r--r--policy-management/src/main/java/org/onap/policy/drools/system/PolicyEngine.java21
-rw-r--r--policy-management/src/main/java/org/onap/policy/drools/system/PolicyEngineConstants.java7
-rw-r--r--policy-management/src/main/java/org/onap/policy/drools/system/PolicyEngineManager.java23
-rw-r--r--policy-management/src/main/server/config/engine.properties4
-rw-r--r--policy-management/src/test/java/org/onap/policy/drools/system/PolicyEngineManagerTest.java33
-rw-r--r--policy-management/src/test/java/org/onap/policy/drools/system/PolicyEngineTest.java13
-rw-r--r--policy-management/src/test/resources/org/onap/policy/drools/system/PolicyEngineManagerTest.json3
-rw-r--r--policy-management/src/test/resources/org/onap/policy/drools/system/PolicyEngineTestAdd.json3
-rw-r--r--policy-management/src/test/resources/org/onap/policy/drools/system/PolicyEngineTestConfig.json3
24 files changed, 193 insertions, 87 deletions
diff --git a/feature-distributed-locking/src/main/feature/db/pooling/sql/1804-distributedlocking.upgrade.sql b/feature-distributed-locking/src/main/feature/db/pooling/sql/1804-distributedlocking.upgrade.sql
index be56d35e..07b30738 100644
--- a/feature-distributed-locking/src/main/feature/db/pooling/sql/1804-distributedlocking.upgrade.sql
+++ b/feature-distributed-locking/src/main/feature/db/pooling/sql/1804-distributedlocking.upgrade.sql
@@ -1,7 +1,7 @@
# ============LICENSE_START=======================================================
# feature-distributed-locking
# ================================================================================
-# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+# Copyright (C) 2018, 2022 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.
@@ -16,8 +16,15 @@
# limitations under the License.
# ============LICENSE_END=========================================================
- set foreign_key_checks=0;
-
- CREATE TABLE if not exists pooling.locks (resourceId VARCHAR(128), host VARCHAR(128), owner VARCHAR(128), expirationTime BIGINT, PRIMARY KEY (resourceId), INDEX idx_expirationTime(expirationTime), INDEX idx_host(host));
+SET foreign_key_checks=0;
- set foreign_key_checks=1; \ No newline at end of file
+CREATE TABLE if NOT EXISTS pooling.locks(
+ resourceId VARCHAR(128),
+ host VARCHAR(128),
+ owner VARCHAR(128),
+ expirationTime BIGINT,
+ PRIMARY KEY (resourceId),
+ INDEX idx_expirationTime(expirationTime),
+ INDEX idx_host(host));
+
+SET foreign_key_checks=1; \ No newline at end of file
diff --git a/feature-distributed-locking/src/main/feature/db/pooling/sql/1811-distributedlocking.upgrade.sql b/feature-distributed-locking/src/main/feature/db/pooling/sql/1811-distributedlocking.upgrade.sql
index 847c44ac..0cdad5b9 100644
--- a/feature-distributed-locking/src/main/feature/db/pooling/sql/1811-distributedlocking.upgrade.sql
+++ b/feature-distributed-locking/src/main/feature/db/pooling/sql/1811-distributedlocking.upgrade.sql
@@ -16,8 +16,8 @@
# limitations under the License.
# ============LICENSE_END=========================================================
- set foreign_key_checks=0;
+SET foreign_key_checks=0;
- ALTER TABLE pooling.locks modify expirationTime timestamp default '1971-01-01 00:00:00.000000';
+ALTER TABLE pooling.locks MODIFY expirationTime TIMESTAMP DEFAULT '1971-01-01 00:00:00.000000';
- set foreign_key_checks=1;
+SET foreign_key_checks=1;
diff --git a/feature-distributed-locking/src/main/java/org/onap/policy/distributed/locking/DistributedLockManager.java b/feature-distributed-locking/src/main/java/org/onap/policy/distributed/locking/DistributedLockManager.java
index 04138eed..198b3303 100644
--- a/feature-distributed-locking/src/main/java/org/onap/policy/distributed/locking/DistributedLockManager.java
+++ b/feature-distributed-locking/src/main/java/org/onap/policy/distributed/locking/DistributedLockManager.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP
* ================================================================================
- * Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2019-2022 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.
@@ -87,17 +87,16 @@ public class DistributedLockManager extends LockManager<DistributedLockManager.D
@Setter(AccessLevel.PROTECTED)
private static DistributedLockManager latestInstance = null;
-
/**
* Name of the host on which this JVM is running.
*/
- @Getter
- private final String pdpName;
+ @Getter(AccessLevel.PUBLIC)
+ private String pdpName;
/**
* UUID of this object.
*/
- @Getter
+ @Getter(AccessLevel.PUBLIC)
private final String uuidString = UUID.randomUUID().toString();
/**
@@ -133,7 +132,6 @@ public class DistributedLockManager extends LockManager<DistributedLockManager.D
* Constructs the object.
*/
public DistributedLockManager() {
- this.pdpName = PolicyEngineConstants.PDP_NAME;
this.resource2lock = getResource2lock();
}
@@ -146,6 +144,7 @@ public class DistributedLockManager extends LockManager<DistributedLockManager.D
public PolicyResourceLockManager beforeCreateLockManager(PolicyEngine engine, Properties properties) {
try {
+ this.pdpName = PolicyEngineConstants.getManager().getPdpName();
this.featProps = new DistributedLockProperties(getProperties(CONFIGURATION_PROPERTIES_NAME));
this.dataSource = makeDataSource();
@@ -256,8 +255,9 @@ public class DistributedLockManager extends LockManager<DistributedLockManager.D
*/
private void checkExpired() {
try {
- logger.info("checking for expired locks");
Set<String> expiredIds = new HashSet<>(resource2lock.keySet());
+ logger.info("checking for expired locks: {}", this);
+
identifyDbLocks(expiredIds);
expireLocks(expiredIds);
@@ -337,7 +337,7 @@ public class DistributedLockManager extends LockManager<DistributedLockManager.D
DistributedLock lock = lockref.get();
if (lock != null) {
- logger.debug("removed lock from map {}", lock);
+ logger.info("lost lock: removed lock from map {}", lock);
lock.deny(FeatureLockImpl.LOCK_LOST_MSG);
}
}
@@ -704,7 +704,7 @@ public class DistributedLockManager extends LockManager<DistributedLockManager.D
* @throws SQLException if a DB error occurs
*/
protected boolean doDbInsert(Connection conn) throws SQLException {
- logger.debug("insert lock record {}", this);
+ logger.info("insert lock record {}", this);
try (var stmt = conn.prepareStatement("INSERT INTO pooling.locks (resourceId, host, owner, expirationTime) "
+ "values (?, ?, ?, timestampadd(second, ?, now()))")) {
@@ -731,7 +731,7 @@ public class DistributedLockManager extends LockManager<DistributedLockManager.D
* @throws SQLException if a DB error occurs
*/
protected boolean doDbUpdate(Connection conn) throws SQLException {
- logger.debug("update lock record {}", this);
+ logger.info("update lock record {}", this);
try (var stmt = conn.prepareStatement("UPDATE pooling.locks SET resourceId=?, host=?, owner=?,"
+ " expirationTime=timestampadd(second, ?, now()) WHERE resourceId=?"
+ " AND ((host=? AND owner=?) OR expirationTime < now())")) {
@@ -763,7 +763,7 @@ public class DistributedLockManager extends LockManager<DistributedLockManager.D
* @throws SQLException if a DB error occurs
*/
protected void doDbDelete(Connection conn) throws SQLException {
- logger.debug("delete lock record {}", this);
+ logger.info("delete lock record {}", this);
try (var stmt = conn
.prepareStatement("DELETE FROM pooling.locks WHERE resourceId=? AND host=? AND owner=?")) {
@@ -780,7 +780,7 @@ public class DistributedLockManager extends LockManager<DistributedLockManager.D
* thread.
*/
private void removeFromMap() {
- logger.debug("remove lock from map {}", this);
+ logger.info("remove lock from map {}", this);
feature.resource2lock.remove(getResourceId(), this);
synchronized (this) {
@@ -799,10 +799,16 @@ public class DistributedLockManager extends LockManager<DistributedLockManager.D
}
@FunctionalInterface
- private static interface RunnableWithEx {
+ private interface RunnableWithEx {
void run() throws SQLException;
}
+ @Override
+ public String toString() {
+ return "DistributedLockManager [" + "pdpName=" + pdpName + ", uuidString=" + uuidString
+ + ", resource2lock=" + resource2lock + "]";
+ }
+
// these may be overridden by junit tests
protected Properties getProperties(String fileName) {
diff --git a/feature-distributed-locking/src/test/java/org/onap/policy/distributed/locking/DistributedLockManagerTest.java b/feature-distributed-locking/src/test/java/org/onap/policy/distributed/locking/DistributedLockManagerTest.java
index 2fbdb26b..082a6199 100644
--- a/feature-distributed-locking/src/test/java/org/onap/policy/distributed/locking/DistributedLockManagerTest.java
+++ b/feature-distributed-locking/src/test/java/org/onap/policy/distributed/locking/DistributedLockManagerTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP
* ================================================================================
- * Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2019-2022 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.
@@ -156,6 +156,7 @@ public class DistributedLockManagerTest {
@BeforeClass
public static void setUpBeforeClass() throws SQLException {
SystemPersistenceConstants.getManager().setConfigurationDir("src/test/resources");
+ PolicyEngineConstants.getManager().configure(new Properties());
conn = DriverManager.getConnection(DB_CONNECTION, DB_USER, DB_PASSWORD);
@@ -311,10 +312,9 @@ public class DistributedLockManagerTest {
/**
* Tests deleteExpiredDbLocks(), when getConnection() throws an exception.
*
- * @throws SQLException if an error occurs
*/
@Test
- public void testDeleteExpiredDbLocksEx() throws SQLException {
+ public void testDeleteExpiredDbLocksEx() {
feature = new InvalidDbLockingFeature(TRANSIENT);
// get the clean-up function and execute it
@@ -342,16 +342,15 @@ public class DistributedLockManagerTest {
/**
* Tests afterStop(), when the data source throws an exception when close() is called.
*
- * @throws SQLException if an error occurs
*/
@Test
- public void testAfterStopEx() throws SQLException {
+ public void testAfterStopEx() {
shutdownFeature();
// use a data source that throws an exception when closed
feature = new InvalidDbLockingFeature(TRANSIENT);
- assertThatCode(() -> shutdownFeature()).doesNotThrowAnyException();
+ assertThatCode(this::shutdownFeature).doesNotThrowAnyException();
}
@Test
@@ -877,7 +876,7 @@ public class DistributedLockManagerTest {
}
@Test
- public void testDistributedLockRescheduleRequest() throws SQLException {
+ public void testDistributedLockRescheduleRequest() {
// use a data source that throws an exception when getConnection() is called
InvalidDbLockingFeature invfeat = new InvalidDbLockingFeature(TRANSIENT);
feature = invfeat;
@@ -937,7 +936,7 @@ public class DistributedLockManagerTest {
}
@Test
- public void testDistributedLockDoRequest() throws SQLException {
+ public void testDistributedLockDoRequest() {
lock = getLock(RESOURCE, OWNER_KEY, HOLD_SEC, callback, false);
assertTrue(lock.isWaiting());
@@ -1019,7 +1018,7 @@ public class DistributedLockManagerTest {
// use a data source that throws an exception when getConnection() is called
feature = new MyLockingFeature(true) {
@Override
- protected BasicDataSource makeDataSource() throws Exception {
+ protected BasicDataSource makeDataSource() {
return datasrc;
}
};
@@ -1052,7 +1051,7 @@ public class DistributedLockManagerTest {
// use a data source that throws an exception when getConnection() is called
feature = new MyLockingFeature(true) {
@Override
- protected BasicDataSource makeDataSource() throws Exception {
+ protected BasicDataSource makeDataSource() {
return datasrc;
}
};
@@ -1232,10 +1231,9 @@ public class DistributedLockManagerTest {
/**
* Tests doUnlock() when a DB exception is thrown.
*
- * @throws SQLException if an error occurs
*/
@Test
- public void testDistributedLockDoUnlockEx() throws SQLException {
+ public void testDistributedLockDoUnlockEx() {
feature = new InvalidDbLockingFeature(PERMANENT);
lock = getLock(RESOURCE, OWNER_KEY, HOLD_SEC, callback, false);
@@ -1338,10 +1336,9 @@ public class DistributedLockManagerTest {
/**
* Tests doExtend() when both update and insert fail.
*
- * @throws SQLException if an error occurs
*/
@Test
- public void testDistributedLockDoExtendNeitherSucceeds() throws SQLException {
+ public void testDistributedLockDoExtendNeitherSucceeds() {
/*
* this feature will create a lock that returns false when doDbUpdate() is
* invoked, or when doDbInsert() is invoked a second time
@@ -1441,7 +1438,7 @@ public class DistributedLockManagerTest {
feature.beforeCreateLockManager(engine, new Properties());
feature.afterStart(engine);
- assertThatCode(() -> shutdownFeature()).doesNotThrowAnyException();
+ assertThatCode(this::shutdownFeature).doesNotThrowAnyException();
}
/**
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 611ac240..09dcab00 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
@@ -39,6 +39,7 @@ import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
+import lombok.AccessLevel;
import lombok.Getter;
import lombok.NonNull;
import lombok.Setter;
@@ -153,6 +154,8 @@ public class LifecycleFsm implements Startable {
@Setter
protected String pdpType;
+ protected volatile String pdpName;
+
@Getter
protected Set<String> mandatoryPolicyTypes = new HashSet<>();
@@ -186,12 +189,6 @@ public class LifecycleFsm implements Startable {
logger.info("The mandatory Policy Types are {}. Compliance is {}",
mandatoryPolicyTypes, isMandatoryPolicyTypesCompliant());
-
- stats.setPdpInstanceId(PolicyEngineConstants.PDP_NAME);
- }
-
- public String getName() {
- return PolicyEngineConstants.PDP_NAME;
}
@GsonJsonIgnore
@@ -205,6 +202,18 @@ public class LifecycleFsm implements Startable {
}
/**
+ * Returns the PDP Name.
+ */
+ public String getPdpName() {
+ if (this.pdpName == null) {
+ this.pdpName = PolicyEngineConstants.getManager().getPdpName();
+ this.stats.setPdpInstanceId(pdpName);
+ }
+
+ return this.pdpName;
+ }
+
+ /**
* Current state.
*/
public PdpState state() {
@@ -231,6 +240,8 @@ public class LifecycleFsm implements Startable {
@Override
public synchronized boolean start() {
+ this.pdpName = PolicyEngineConstants.getManager().getPdpName();
+ stats.setPdpInstanceId(pdpName);
logger.info("lifecycle event: start engine");
return state.start();
}
@@ -651,7 +662,7 @@ public class LifecycleFsm implements Startable {
protected PdpStatus statusPayload(@NonNull PdpState state) {
var status = new PdpStatus();
- status.setName(getName());
+ status.setName(getPdpName());
status.setPdpGroup(group);
status.setPdpSubgroup(subGroup);
status.setState(state);
@@ -711,7 +722,7 @@ public class LifecycleFsm implements Startable {
}
protected boolean isItMe(String name, String group, String subgroup) {
- if (Objects.equals(name, getName())) {
+ if (Objects.equals(name, getPdpName())) {
return true;
}
diff --git a/feature-lifecycle/src/main/java/org/onap/policy/drools/server/restful/RestLifecycleManager.java b/feature-lifecycle/src/main/java/org/onap/policy/drools/server/restful/RestLifecycleManager.java
index 494c708b..5a534639 100644
--- a/feature-lifecycle/src/main/java/org/onap/policy/drools/server/restful/RestLifecycleManager.java
+++ b/feature-lifecycle/src/main/java/org/onap/policy/drools/server/restful/RestLifecycleManager.java
@@ -1,6 +1,6 @@
/*-
* ============LICENSE_START=======================================================
- * Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2019-2022 AT&T Intellectual Property. All rights reserved.
* Modifications Copyright (C) 2021 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -155,7 +155,7 @@ public class RestLifecycleManager {
change.setPdpGroup(LifecycleFeature.getFsm().getGroup());
change.setPdpSubgroup(LifecycleFeature.getFsm().getSubGroup());
change.setState(PdpState.valueOf(state));
- change.setName(LifecycleFeature.getFsm().getName());
+ change.setName(LifecycleFeature.getFsm().getPdpName());
return Response.status(Response.Status.OK).entity(LifecycleFeature.getFsm().stateChange(change)).build();
}
@@ -442,7 +442,7 @@ public class RestLifecycleManager {
private PdpUpdate getPolicyUpdate() {
var update = new PdpUpdate();
- update.setName(LifecycleFeature.getFsm().getName());
+ update.setName(LifecycleFeature.getFsm().getPdpName());
update.setPdpGroup(LifecycleFeature.getFsm().getGroup());
update.setPdpSubgroup(LifecycleFeature.getFsm().getSubGroup());
return update;
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 0ad776cc..8c3aeef1 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
@@ -30,6 +30,7 @@ import java.nio.file.Paths;
import java.util.Collections;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
import java.util.Set;
import java.util.concurrent.ScheduledExecutorService;
import org.junit.AfterClass;
@@ -106,6 +107,7 @@ public class LifecycleFsmTest {
LoggerUtils.setLevel("org.onap.policy.common.endpoints", "WARN");
LoggerUtils.setLevel("org.onap.policy.drools", "INFO");
SystemPersistenceConstants.getManager().setConfigurationDir("target/test-classes");
+ PolicyEngineConstants.getManager().configure(new Properties());
fsm = new LifecycleFsm() {
@Override
@@ -240,7 +242,7 @@ public class LifecycleFsmTest {
assertEquals(fsm.getGroup(), status.getStatistics().getPdpGroupName());
assertEquals(fsm.getSubGroup(), status.getStatistics().getPdpSubGroupName());
- assertEquals(PolicyEngineConstants.PDP_NAME, status.getStatistics().getPdpInstanceId());
+ assertEquals(PolicyEngineConstants.getManager().getPdpName(), status.getStatistics().getPdpInstanceId());
assertEquals(6, status.getStatistics().getPolicyDeploySuccessCount());
assertEquals(2, status.getStatistics().getPolicyDeployFailCount());
assertEquals(8, status.getStatistics().getPolicyDeployCount());
diff --git a/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleFsmUpdateTest.java b/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleFsmUpdateTest.java
index c97133b5..5d56143d 100644
--- a/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleFsmUpdateTest.java
+++ b/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleFsmUpdateTest.java
@@ -1,6 +1,6 @@
/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2021-2022 AT&T Intellectual Property. All rights reserved.
* Modifications Copyright (C) 2021 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -160,7 +160,7 @@ public class LifecycleFsmUpdateTest {
Files.deleteIfExists(Paths.get(SystemPersistenceConstants.getManager().getConfigurationPath().toString(),
"foo-controller.properties.bak"));
} catch (IOException ignored) { // NOSONAR
- ; // checkstyle
+ // checkstyle
}
ControllerSupport.setStaticField(LifecycleFeature.class, "fsm", savedFsm);
@@ -186,7 +186,7 @@ public class LifecycleFsmUpdateTest {
change.setPdpGroup("A");
change.setPdpSubgroup("a");
change.setState(PdpState.ACTIVE);
- change.setName(fsm.getName());
+ change.setName(fsm.getPdpName());
fsm.setSubGroup("a");
fsm.source.offer(new StandardCoder().encode(change));
@@ -359,7 +359,7 @@ public class LifecycleFsmUpdateTest {
protected PdpUpdate getPdpUpdate(List<ToscaPolicy> policiesToDeploy, List<ToscaPolicy> policiesToUndeploy) {
PdpUpdate update = new PdpUpdate();
- update.setName(PolicyEngineConstants.PDP_NAME);
+ update.setName(PolicyEngineConstants.getManager().getPdpName());
update.setPdpGroup("A");
update.setPdpSubgroup("a");
update.setPoliciesToBeDeployed(policiesToDeploy);
diff --git a/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStateActivePoliciesTest.java b/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStateActivePoliciesTest.java
index f37e8ef7..67efa72a 100644
--- a/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStateActivePoliciesTest.java
+++ b/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStateActivePoliciesTest.java
@@ -1,6 +1,6 @@
/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2020-2022 AT&T Intellectual Property. All rights reserved.
* Modifications Copyright (C) 2021 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -77,7 +77,7 @@ public class LifecycleStateActivePoliciesTest extends LifecycleStateRunningTest
change.setPdpGroup("A");
change.setPdpSubgroup("a");
change.setState(PdpState.ACTIVE);
- change.setName(fsm.getName());
+ change.setName(fsm.getPdpName());
fsm.setSubGroup("a");
fsm.source.offer(new StandardCoder().encode(change));
@@ -116,7 +116,7 @@ public class LifecycleStateActivePoliciesTest extends LifecycleStateRunningTest
getPolicyFromFile(EXAMPLE_NATIVE_DROOLS_POLICY_JSON, EXAMPLE_NATIVE_DROOLS_CONTROLLER_POLICY_NAME);
PdpUpdate update = new PdpUpdate();
- update.setName(PolicyEngineConstants.PDP_NAME);
+ update.setName(PolicyEngineConstants.getManager().getPdpName());
update.setPdpGroup("W");
update.setPdpSubgroup("w");
update.setPoliciesToBeDeployed(List.of(policyNativeController));
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 f4c33140..d00c8a41 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-2021 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2019-2022 AT&T Intellectual Property. All rights reserved.
* Modifications Copyright (C) 2021 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -75,7 +75,7 @@ public class LifecycleStateActiveTest extends LifecycleStateRunningTest {
change.setPdpGroup("A");
change.setPdpSubgroup("a");
change.setState(PdpState.ACTIVE);
- change.setName(fsm.getName());
+ change.setName(fsm.getPdpName());
fsm.setSubGroup("a");
fsm.source.offer(new StandardCoder().encode(change));
@@ -161,7 +161,7 @@ public class LifecycleStateActiveTest extends LifecycleStateRunningTest {
assertEquals(LifecycleFsm.DEFAULT_PDP_GROUP, fsm.getGroup());
assertNotEquals("b", fsm.getSubGroup());
- change.setName(fsm.getName());
+ change.setName(fsm.getPdpName());
fsm.source.offer(new StandardCoder().encode(change));
assertEquals(PdpState.ACTIVE, fsm.state());
assertEquals(LifecycleFsm.DEFAULT_PDP_GROUP, fsm.getGroup());
@@ -189,7 +189,7 @@ public class LifecycleStateActiveTest extends LifecycleStateRunningTest {
// TODO: extract repeated similar assertion blocks into their own helper methods
PdpUpdate update = new PdpUpdate();
- update.setName(PolicyEngineConstants.PDP_NAME);
+ update.setName(PolicyEngineConstants.getManager().getPdpName());
update.setPdpGroup("W");
update.setPdpSubgroup("w");
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 d99f011d..d6c94996 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
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP
* ================================================================================
- * Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2019-2022 AT&T Intellectual Property. All rights reserved.
* Modifications Copyright (C) 2021 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -143,7 +143,7 @@ public class LifecycleStatePassiveTest extends LifecycleStateRunningTest {
assertEquals(0, controllerSupport.getController().getDrools().factCount("junits"));
PdpUpdate update = new PdpUpdate();
- update.setName(PolicyEngineConstants.PDP_NAME);
+ update.setName(PolicyEngineConstants.getManager().getPdpName());
update.setPdpGroup("Z");
update.setPdpSubgroup("z");
@@ -269,7 +269,7 @@ public class LifecycleStatePassiveTest extends LifecycleStateRunningTest {
assertNull(fsm.getSubGroup());
PdpUpdate update = new PdpUpdate();
- update.setName(PolicyEngineConstants.PDP_NAME);
+ update.setName(PolicyEngineConstants.getManager().getPdpName());
update.setPdpGroup("A");
update.setPdpSubgroup("a");
@@ -294,7 +294,7 @@ public class LifecycleStatePassiveTest extends LifecycleStateRunningTest {
assertEquals(0, controllerSupport.getController().getDrools().factCount("junits"));
/* correct name */
- change.setName(fsm.getName());
+ change.setName(fsm.getPdpName());
fsm.source.offer(new StandardCoder().encode(change));
assertEquals(PdpState.ACTIVE, fsm.state());
@@ -330,8 +330,8 @@ public class LifecycleStatePassiveTest extends LifecycleStateRunningTest {
assertEquals("foo", status.getPdpType());
assertEquals(PdpState.TERMINATED, status.getState());
assertEquals(PdpHealthStatus.HEALTHY, status.getHealthy());
- assertEquals(PolicyEngineConstants.PDP_NAME, status.getName());
- assertEquals(fsm.getName(), status.getName());
+ assertEquals(PolicyEngineConstants.getManager().getPdpName(), status.getName());
+ assertEquals(fsm.getPdpName(), status.getName());
assertEquals(PdpMessageType.PDP_STATUS, status.getMessageName());
}
diff --git a/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStateRunningTest.java b/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStateRunningTest.java
index eeac888d..7b210db8 100644
--- a/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStateRunningTest.java
+++ b/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStateRunningTest.java
@@ -1,6 +1,6 @@
/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2019-2022 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.
@@ -75,8 +75,8 @@ public abstract class LifecycleStateRunningTest {
try {
Files.deleteIfExists(Paths.get(SystemPersistenceConstants.getManager().getConfigurationPath().toString(),
CONTROLLER_NAME + "-controller.properties.bak"));
- } catch (IOException e) {
- ;
+ } catch (IOException ignored) {
+ // ignored
}
SystemPersistenceConstants.getManager().setConfigurationDir(null);
}
diff --git a/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStateTerminatedTest.java b/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStateTerminatedTest.java
index 3d8d08b7..23643302 100644
--- a/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStateTerminatedTest.java
+++ b/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStateTerminatedTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP
* ================================================================================
- * Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2019-2022 AT&T Intellectual Property. All rights reserved.
* Modifications Copyright (C) 2021 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -139,7 +139,7 @@ public class LifecycleStateTerminatedTest {
@Test
public void testUpdate() {
PdpUpdate update = new PdpUpdate();
- update.setName(PolicyEngineConstants.PDP_NAME);
+ update.setName(PolicyEngineConstants.getManager().getPdpName());
update.setPdpGroup("A");
update.setPdpSubgroup("a");
update.setPoliciesToBeDeployed(Collections.emptyList());
diff --git a/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/PolicyTypeNativeDroolsControllerTest.java b/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/PolicyTypeNativeDroolsControllerTest.java
index 2d8b8688..b6f354e4 100644
--- a/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/PolicyTypeNativeDroolsControllerTest.java
+++ b/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/PolicyTypeNativeDroolsControllerTest.java
@@ -1,6 +1,6 @@
/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2020-2022 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.
@@ -50,7 +50,7 @@ public class PolicyTypeNativeDroolsControllerTest extends LifecycleStateRunningT
* Test initialization.
*/
@Before
- public void init() throws IOException, CoderException {
+ public void init() {
fsm = makeFsmWithPseudoTime();
}
diff --git a/packages/install/src/files/base.conf b/packages/install/src/files/base.conf
index ecd9e22b..24d95a76 100644
--- a/packages/install/src/files/base.conf
+++ b/packages/install/src/files/base.conf
@@ -43,6 +43,9 @@ TRUSTSTORE_PASSWD=Pol1cy_0nap
#http_proxy=
#https_proxy=
+# Cluster Identifier if any
+CLUSTER_NAME=
+
# Telemetry credentials
TELEMETRY_PORT=9696
TELEMETRY_HOST=0.0.0.0
diff --git a/policy-management/src/main/java/org/onap/policy/drools/system/PolicyEngine.java b/policy-management/src/main/java/org/onap/policy/drools/system/PolicyEngine.java
index 10623c50..75e7c74a 100644
--- a/policy-management/src/main/java/org/onap/policy/drools/system/PolicyEngine.java
+++ b/policy-management/src/main/java/org/onap/policy/drools/system/PolicyEngine.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP
* ================================================================================
- * Copyright (C) 2017-2021 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2022 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.
@@ -122,6 +122,25 @@ public interface PolicyEngine extends Startable, Lockable, TopicListener {
String setEnvironmentProperty(String key, String value);
/**
+ * Gets the hostname used by this PDP-D.
+ */
+ String getHostName();
+
+ /**
+ * Gets the cluster name as configured in $CLUSTER_NAME,
+ * otherwise it will assume an UUID as the cluster name.
+ */
+ String getClusterName();
+
+ /**
+ * Gets the PDP Name from hostname and $CLUSTER_NAME,
+ * otherwise if CLUSTER_NAME is not set, the PdpName
+ * will be the concatenation of the hostname and a
+ * UUID.
+ */
+ String getPdpName();
+
+ /**
* registers a new Policy Controller with the Policy Engine initialized per properties.
*
* @param properties properties to initialize the Policy Controller
diff --git a/policy-management/src/main/java/org/onap/policy/drools/system/PolicyEngineConstants.java b/policy-management/src/main/java/org/onap/policy/drools/system/PolicyEngineConstants.java
index 23fc247e..ffd0c858 100644
--- a/policy-management/src/main/java/org/onap/policy/drools/system/PolicyEngineConstants.java
+++ b/policy-management/src/main/java/org/onap/policy/drools/system/PolicyEngineConstants.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* policy-management
* ================================================================================
- * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2019, 2021-2022 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.
@@ -44,11 +44,6 @@ public final class PolicyEngineConstants {
public static final String TELEMETRY_SERVER_DEFAULT_NAME = "TELEMETRY";
/**
- * Unique name of this drools-pdp JVM.
- */
- public static final String PDP_NAME = NetworkUtil.genUniqueName("drools");
-
- /**
* Policy Engine Manager.
*/
@Getter
diff --git a/policy-management/src/main/java/org/onap/policy/drools/system/PolicyEngineManager.java b/policy-management/src/main/java/org/onap/policy/drools/system/PolicyEngineManager.java
index ea4094fc..19aec79a 100644
--- a/policy-management/src/main/java/org/onap/policy/drools/system/PolicyEngineManager.java
+++ b/policy-management/src/main/java/org/onap/policy/drools/system/PolicyEngineManager.java
@@ -31,6 +31,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Properties;
+import java.util.UUID;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.atomic.AtomicReference;
@@ -41,6 +42,8 @@ import java.util.stream.Stream;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NonNull;
+import lombok.Setter;
+import lombok.Synchronized;
import lombok.ToString;
import org.apache.commons.lang3.StringUtils;
import org.onap.policy.common.endpoints.event.comm.Topic;
@@ -59,6 +62,7 @@ import org.onap.policy.common.endpoints.properties.PolicyEndPointProperties;
import org.onap.policy.common.gson.annotation.GsonJsonIgnore;
import org.onap.policy.common.gson.annotation.GsonJsonProperty;
import org.onap.policy.common.utils.logging.LoggerUtils;
+import org.onap.policy.common.utils.network.NetworkUtil;
import org.onap.policy.common.utils.resources.PrometheusUtils;
import org.onap.policy.common.utils.services.FeatureApiUtils;
import org.onap.policy.drools.controller.DroolsControllerConstants;
@@ -107,6 +111,8 @@ class PolicyEngineManager implements PolicyEngine {
public static final String EXECUTOR_THREAD_PROP = "executor.threads";
protected static final int DEFAULT_EXECUTOR_THREADS = 5;
+ public static final String CLUSTER_NAME_PROP = "engine.cluster";
+
/**
* logger.
*/
@@ -170,6 +176,18 @@ class PolicyEngineManager implements PolicyEngine {
@Getter
private final PolicyStatsManager stats = new PolicyStatsManager();
+ @Getter(onMethod_ = {@Synchronized}, value = AccessLevel.PUBLIC)
+ @Setter(onMethod_ = {@Synchronized}, value = AccessLevel.PUBLIC)
+ private String clusterName = UUID.randomUUID().toString();
+
+ @Getter(onMethod_ = {@Synchronized}, value = AccessLevel.PUBLIC)
+ @Setter(onMethod_ = {@Synchronized}, value = AccessLevel.PUBLIC)
+ private String hostName = NetworkUtil.getHostname();
+
+ @Getter(onMethod_ = {@Synchronized}, value = AccessLevel.PUBLIC)
+ @Setter(onMethod_ = {@Synchronized}, value = AccessLevel.PUBLIC)
+ private String pdpName;
+
/**
* gson parser to decode configuration requests.
*/
@@ -368,6 +386,10 @@ class PolicyEngineManager implements PolicyEngine {
}
this.properties = properties;
+ if (!StringUtils.isBlank(this.properties.getProperty(CLUSTER_NAME_PROP))) {
+ this.clusterName = this.properties.getProperty(CLUSTER_NAME_PROP, this.clusterName);
+ }
+ this.pdpName = hostName + "." + this.clusterName;
try {
this.sources = getTopicEndpointManager().addTopicSources(properties);
@@ -438,7 +460,6 @@ class PolicyEngineManager implements PolicyEngine {
@Override
public synchronized PolicyController createPolicyController(String name, Properties properties) {
-
String tempName = name;
// check if a PROPERTY_CONTROLLER_NAME property is present
// if so, override the given name
diff --git a/policy-management/src/main/server/config/engine.properties b/policy-management/src/main/server/config/engine.properties
index 89a749c9..e30682f4 100644
--- a/policy-management/src/main/server/config/engine.properties
+++ b/policy-management/src/main/server/config/engine.properties
@@ -2,7 +2,7 @@
# ============LICENSE_START=======================================================
# ONAP
# ================================================================================
-# Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights reserved.
+# Copyright (C) 2019, 2021-2022 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.
@@ -36,3 +36,5 @@ http.server.services.CONFIG.serialization.provider=org.onap.policy.common.gson.J
aaf.namespace=${envd:AAF_NAMESPACE:false}
aaf.root.permission=${envd:AAF_NAMESPACE:org.onap.policy}.pdpd
+
+engine.cluster=${envd:CLUSTER_NAME}
diff --git a/policy-management/src/test/java/org/onap/policy/drools/system/PolicyEngineManagerTest.java b/policy-management/src/test/java/org/onap/policy/drools/system/PolicyEngineManagerTest.java
index 82c28695..fe307f28 100644
--- a/policy-management/src/test/java/org/onap/policy/drools/system/PolicyEngineManagerTest.java
+++ b/policy-management/src/test/java/org/onap/policy/drools/system/PolicyEngineManagerTest.java
@@ -23,6 +23,7 @@ package org.onap.policy.drools.system;
import static org.assertj.core.api.Assertions.assertThatCode;
import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
import static org.assertj.core.api.Assertions.assertThatIllegalStateException;
+import static org.assertj.core.api.Assertions.assertThatNoException;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -46,6 +47,7 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Properties;
+import java.util.UUID;
import java.util.concurrent.ScheduledExecutorService;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
@@ -330,6 +332,8 @@ public class PolicyEngineManagerTest {
@Test
public void testSerialize() {
+ mgr.setHostName("foo");
+ mgr.setClusterName("bar");
mgr.configure(properties);
assertThatCode(() -> gson.compareGson(mgr, PolicyEngineManagerTest.class)).doesNotThrowAnyException();
}
@@ -443,6 +447,35 @@ public class PolicyEngineManagerTest {
assertFalse(config.isEmpty());
}
+ @Test
+ public void testGetPdpName() {
+ properties.setProperty(PolicyEngineManager.CLUSTER_NAME_PROP, "east1");
+ mgr.configure(properties);
+
+ var pdpName = mgr.getPdpName();
+ assertEquals("east1", extractCluster(pdpName));
+ assertEquals(mgr.getClusterName(), extractCluster(pdpName));
+ assertEquals(mgr.getHostName(), extractHostname(pdpName));
+
+ mgr.setHostName("foo");
+ mgr.setClusterName("bar");
+ mgr.setPdpName("foo.bar");
+
+ pdpName = mgr.getPdpName();
+ assertEquals("bar", extractCluster(pdpName));
+ assertEquals(mgr.getClusterName(), extractCluster(pdpName));
+ assertEquals("foo", extractHostname(pdpName));
+ assertEquals(mgr.getHostName(), extractHostname(pdpName));
+ }
+
+ private String extractCluster(String name) {
+ return name.substring(name.lastIndexOf(".") + 1);
+ }
+
+ private String extractHostname(String name) {
+ return name.substring(0, name.lastIndexOf("."));
+ }
+
/**
* Tests that makeExecutorService() uses the value from the thread
* property.
diff --git a/policy-management/src/test/java/org/onap/policy/drools/system/PolicyEngineTest.java b/policy-management/src/test/java/org/onap/policy/drools/system/PolicyEngineTest.java
index 0fdc00a6..2054d91d 100644
--- a/policy-management/src/test/java/org/onap/policy/drools/system/PolicyEngineTest.java
+++ b/policy-management/src/test/java/org/onap/policy/drools/system/PolicyEngineTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP
* ================================================================================
- * Copyright (C) 2017-2021 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2022 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.
@@ -155,17 +155,18 @@ public class PolicyEngineTest {
@Test
public void test100Configure() {
- logger.info("enter");
-
- final Properties engineProps = PolicyEngineConstants.getManager().defaultTelemetryConfig();
+ var manager = (PolicyEngineManager) PolicyEngineConstants.getManager();
+ var engineProps = manager.defaultTelemetryConfig();
/* override default port */
engineProps.put(PolicyEndPointProperties.PROPERTY_HTTP_SERVER_SERVICES + "."
+ PolicyEngineConstants.TELEMETRY_SERVER_DEFAULT_NAME
+ PolicyEndPointProperties.PROPERTY_HTTP_PORT_SUFFIX, "" + DEFAULT_TELEMETRY_PORT);
- assertFalse(PolicyEngineConstants.getManager().isAlive());
- PolicyEngineConstants.getManager().configure(engineProps);
+ assertFalse(manager.isAlive());
+ manager.setHostName("foo");
+ manager.setClusterName("0");
+ manager.configure(engineProps);
assertFalse(PolicyEngineConstants.getManager().isAlive());
logger.info("engine {} has configuration {}", PolicyEngineConstants.getManager(), engineProps);
diff --git a/policy-management/src/test/resources/org/onap/policy/drools/system/PolicyEngineManagerTest.json b/policy-management/src/test/resources/org/onap/policy/drools/system/PolicyEngineManagerTest.json
index d2d2075e..4c7e1f03 100644
--- a/policy-management/src/test/resources/org/onap/policy/drools/system/PolicyEngineManagerTest.json
+++ b/policy-management/src/test/resources/org/onap/policy/drools/system/PolicyEngineManagerTest.json
@@ -13,6 +13,9 @@
{ "port": 1002 }
],
"locked": false,
+ "hostName": "foo",
+ "clusterName": "bar",
+ "pdpName": "foo.bar",
"sinks": [
{ "name": "sink1-topic" },
{ "name": "sink2-topic" }
diff --git a/policy-management/src/test/resources/org/onap/policy/drools/system/PolicyEngineTestAdd.json b/policy-management/src/test/resources/org/onap/policy/drools/system/PolicyEngineTestAdd.json
index 555f361f..35afaff8 100644
--- a/policy-management/src/test/resources/org/onap/policy/drools/system/PolicyEngineTestAdd.json
+++ b/policy-management/src/test/resources/org/onap/policy/drools/system/PolicyEngineTestAdd.json
@@ -1,6 +1,9 @@
{
"alive": true,
"locked": false,
+ "hostName": "foo",
+ "clusterName": "0",
+ "pdpName": "foo.0",
"sources": [],
"sinks": [],
"httpServers": [
diff --git a/policy-management/src/test/resources/org/onap/policy/drools/system/PolicyEngineTestConfig.json b/policy-management/src/test/resources/org/onap/policy/drools/system/PolicyEngineTestConfig.json
index 0e010323..9053c90a 100644
--- a/policy-management/src/test/resources/org/onap/policy/drools/system/PolicyEngineTestConfig.json
+++ b/policy-management/src/test/resources/org/onap/policy/drools/system/PolicyEngineTestConfig.json
@@ -14,6 +14,9 @@
"prometheus": false
}
],
+ "clusterName": "0",
+ "hostName": "foo",
+ "pdpName": "foo.0",
"features": [],
"controllers": [],
"stats": {