summaryrefslogtreecommitdiffstats
path: root/integrity-monitor/src
diff options
context:
space:
mode:
Diffstat (limited to 'integrity-monitor/src')
-rw-r--r--integrity-monitor/src/main/java/org/onap/policy/common/im/IntegrityMonitor.java1030
-rw-r--r--integrity-monitor/src/main/java/org/onap/policy/common/im/StateManagement.java411
-rw-r--r--integrity-monitor/src/main/resources/META-INF/persistence.xml3
-rw-r--r--integrity-monitor/src/test/java/org/onap/policy/common/im/AllSeemsWellTest.java173
-rw-r--r--integrity-monitor/src/test/java/org/onap/policy/common/im/ExceptionsTest.java (renamed from integrity-monitor/src/test/java/org/onap/policy/common/im/test/ExceptionsTest.java)2
-rw-r--r--integrity-monitor/src/test/java/org/onap/policy/common/im/IntegrityMonitorTest.java907
-rw-r--r--integrity-monitor/src/test/java/org/onap/policy/common/im/IntegrityMonitorTestBase.java306
-rw-r--r--integrity-monitor/src/test/java/org/onap/policy/common/im/StateManagementEntityTest.java130
-rw-r--r--integrity-monitor/src/test/java/org/onap/policy/common/im/StateManagementTest.java239
-rw-r--r--integrity-monitor/src/test/java/org/onap/policy/common/im/StateTransitionTest.java (renamed from integrity-monitor/src/test/java/org/onap/policy/common/im/test/StateTransitionTest.java)1112
-rw-r--r--integrity-monitor/src/test/java/org/onap/policy/common/im/test/AllSeemsWellTest.java265
-rw-r--r--integrity-monitor/src/test/java/org/onap/policy/common/im/test/IntegrityMonitorTest.java1095
-rw-r--r--integrity-monitor/src/test/java/org/onap/policy/common/im/test/StateManagementEntityTest.java193
-rw-r--r--integrity-monitor/src/test/java/org/onap/policy/common/im/test/StateManagementTest.java315
14 files changed, 2963 insertions, 3218 deletions
diff --git a/integrity-monitor/src/main/java/org/onap/policy/common/im/IntegrityMonitor.java b/integrity-monitor/src/main/java/org/onap/policy/common/im/IntegrityMonitor.java
index 17223ba3..d272d1c6 100644
--- a/integrity-monitor/src/main/java/org/onap/policy/common/im/IntegrityMonitor.java
+++ b/integrity-monitor/src/main/java/org/onap/policy/common/im/IntegrityMonitor.java
@@ -1,8 +1,8 @@
-/*-
+/*
* ============LICENSE_START=======================================================
* Integrity Monitor
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 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.
@@ -29,6 +29,8 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Properties;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import javax.management.JMX;
@@ -42,12 +44,12 @@ import javax.persistence.Persistence;
import javax.persistence.Query;
import javax.validation.constraints.NotNull;
-import org.onap.policy.common.im.jpa.ForwardProgressEntity;
-import org.onap.policy.common.im.jpa.ResourceRegistrationEntity;
-import org.onap.policy.common.im.jpa.StateManagementEntity;
import org.onap.policy.common.im.jmx.ComponentAdmin;
import org.onap.policy.common.im.jmx.ComponentAdminMBean;
import org.onap.policy.common.im.jmx.JmxAgentConnection;
+import org.onap.policy.common.im.jpa.ForwardProgressEntity;
+import org.onap.policy.common.im.jpa.ResourceRegistrationEntity;
+import org.onap.policy.common.im.jpa.StateManagementEntity;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -56,8 +58,7 @@ import org.slf4j.LoggerFactory;
* managing its state. State management follows the X.731 ITU standard.
*/
public class IntegrityMonitor {
- private static final Logger logger = LoggerFactory
- .getLogger(IntegrityMonitor.class.getName());
+ private static final Logger logger = LoggerFactory.getLogger(IntegrityMonitor.class.getName());
// only allow one instance of IntegrityMonitor
private static IntegrityMonitor instance = null;
@@ -76,11 +77,21 @@ public class IntegrityMonitor {
private EntityManager em;
// Persistence Unit for JPA
- private static final String PERSISTENCE_UNIT = "operationalPU";
+ public static final String PERSISTENCE_UNIT = "operationalPU";
- private StateManagement stateManager = null;
+ private static String persistenceUnit = PERSISTENCE_UNIT;
+
+ private static final long CYCLE_INTERVAL_MILLIS = 1000l;
+
+ private static long cycleIntervalMillis = CYCLE_INTERVAL_MILLIS;
- private static final int CYCLE_INTERVAL_MILLIS = 1000;
+ /**
+ * Units used for intervals extracted from the properties, which are
+ * typically given in seconds.
+ */
+ private static TimeUnit propertyUnits = TimeUnit.SECONDS;
+
+ private StateManagement stateManager = null;
private FPManager fpManager = null;
@@ -118,17 +129,17 @@ public class IntegrityMonitor {
private int missedCycles = 0;
// forward progress monitoring interval
- private static int monitorInterval = IntegrityMonitorProperties.DEFAULT_MONITOR_INTERVAL;
+ private static long monitorIntervalMs = 1000L * IntegrityMonitorProperties.DEFAULT_MONITOR_INTERVAL;
// The number of periods the counter fails to increment before an alarm is
// raised.
private static int failedCounterThreshold = IntegrityMonitorProperties.DEFAULT_FAILED_COUNTER_THRESHOLD;
// test transaction interval
- private static int testTransInterval = IntegrityMonitorProperties.DEFAULT_TEST_INTERVAL;
+ private static long testTransIntervalMs = 1000L * IntegrityMonitorProperties.DEFAULT_TEST_INTERVAL;
// write Fpc to DB interval
- private static int writeFpcInterval = IntegrityMonitorProperties.DEFAULT_WRITE_FPC_INTERVAL;
+ private static long writeFpcIntervalMs = 1000L * IntegrityMonitorProperties.DEFAULT_WRITE_FPC_INTERVAL;
// check the health of dependencies
- private static int checkDependencyInterval = IntegrityMonitorProperties.DEFAULT_CHECK_DEPENDENCY_INTERVAL;
-
+ private static long checkDependencyIntervalMs = 1000L
+ * IntegrityMonitorProperties.DEFAULT_CHECK_DEPENDENCY_INTERVAL;
// A lead subsystem will have dependency groups with resource names in the
// properties file.
@@ -136,16 +147,16 @@ public class IntegrityMonitor {
private static String[] depGroups = null;
private static boolean isUnitTesting = false;
-
+
// can turn on health checking of dependents via jmx test() call by setting
// this property to true
private static boolean testViaJmx = false;
private static String jmxFqdn = null;
- // this is the max interval seconds allowed without any forward progress
+ // this is the max interval allowed without any forward progress
// counter updates
- private static int maxFpcUpdateInterval = IntegrityMonitorProperties.DEFAULT_MAX_FPC_UPDATE_INTERVAL;
+ private static long maxFpcUpdateIntervalMs = 1000L * IntegrityMonitorProperties.DEFAULT_MAX_FPC_UPDATE_INTERVAL;
// Node types
private enum NodeType {
@@ -171,7 +182,7 @@ public class IntegrityMonitor {
private static final Object getInstanceLock = new Object();
private final Object refreshStateAuditLock = new Object();
private final Object imFlushLock = new Object();
-
+
private Map<String, String> allSeemsWellMap;
private Map<String, String> allNotWellMap;
@@ -187,9 +198,30 @@ public class IntegrityMonitor {
* @param properties
* a set of properties passed in from the resource
* @throws Exception
- * if any errors are encountered in the consructor
+ * if any errors are encountered in the constructor
+ */
+ protected IntegrityMonitor(String resourceName, Properties properties) throws Exception {
+
+ this(resourceName, properties, null);
+ }
+
+ /**
+ * IntegrityMonitor constructor. It is invoked from the getInstance() method
+ * in this class or from the constructor of a child or sub-class. A class
+ * can extend the IntegrityMonitor class if there is a need to override any
+ * of the base methods (ex. subsystemTest()). Only one instance is allowed
+ * to be created per resource name.
+ *
+ * @param resourceName
+ * The resource name of the resource
+ * @param properties
+ * a set of properties passed in from the resource
+ * @param queue
+ * queue to use to control the FPManager thread, or {@code null}
+ * @throws Exception
+ * if any errors are encountered in the constructor
*/
- protected IntegrityMonitor(String resourceName, Properties properties)
+ protected IntegrityMonitor(String resourceName, Properties properties, BlockingQueue<CountDownLatch> queue)
throws Exception {
// singleton check since this constructor can be called from a child or
@@ -197,8 +229,7 @@ public class IntegrityMonitor {
if (instance != null) {
String msg = "IM object exists and only one instance allowed";
logger.error("{}", msg);
- throw new IntegrityMonitorException(
- "IntegrityMonitor constructor exception: " + msg);
+ throw new IntegrityMonitorException("IntegrityMonitor constructor exception: " + msg);
}
instance = this;
@@ -216,17 +247,13 @@ public class IntegrityMonitor {
//
// Create the entity manager factory
//
- emf = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT,
- properties);
+ emf = Persistence.createEntityManagerFactory(persistenceUnit, properties);
//
// Did it get created?
//
if (emf == null) {
- logger.error(
- "Error creating IM entity manager factory with persistence unit: {}",
- PERSISTENCE_UNIT);
- throw new IntegrityMonitorException(
- "Unable to create IM Entity Manager Factory");
+ logger.error("Error creating IM entity manager factory with persistence unit: {}", persistenceUnit);
+ throw new IntegrityMonitorException("Unable to create IM Entity Manager Factory");
}
// add entry to forward progress and resource registration tables in DB
@@ -240,13 +267,11 @@ public class IntegrityMonitor {
try {
// if ForwardProgress entry exists for resourceName, update it. If
// not found, create a new entry
- Query fquery = em
- .createQuery("Select f from ForwardProgressEntity f where f.resourceName=:rn");
+ Query fquery = em.createQuery("Select f from ForwardProgressEntity f where f.resourceName=:rn");
fquery.setParameter("rn", resourceName);
@SuppressWarnings("rawtypes")
- List fpList = fquery.setLockMode(LockModeType.NONE)
- .setFlushMode(FlushModeType.COMMIT).getResultList();
+ List fpList = fquery.setLockMode(LockModeType.NONE).setFlushMode(FlushModeType.COMMIT).getResultList();
ForwardProgressEntity fpx = null;
if (!fpList.isEmpty()) {
// ignores multiple results
@@ -254,10 +279,8 @@ public class IntegrityMonitor {
// refresh the object from DB in case cached data was returned
em.refresh(fpx);
if (logger.isDebugEnabled()) {
- logger.debug(
- "Resource {} exists and will be updated - old fpc= {}, lastUpdated= {}",
- resourceName, fpx.getFpcCount(),
- fpx.getLastUpdated());
+ logger.debug("Resource {} exists and will be updated - old fpc= {}, lastUpdated= {}", resourceName,
+ fpx.getFpcCount(), fpx.getLastUpdated());
}
fpx.setFpcCount(fpCounter);
} else {
@@ -275,13 +298,11 @@ public class IntegrityMonitor {
// if ResourceRegistration entry exists for resourceName, update it.
// If not found, create a new entry
- Query rquery = em
- .createQuery("Select r from ResourceRegistrationEntity r where r.resourceName=:rn");
+ Query rquery = em.createQuery("Select r from ResourceRegistrationEntity r where r.resourceName=:rn");
rquery.setParameter("rn", resourceName);
@SuppressWarnings("rawtypes")
- List rrList = rquery.setLockMode(LockModeType.NONE)
- .setFlushMode(FlushModeType.COMMIT).getResultList();
+ List rrList = rquery.setLockMode(LockModeType.NONE).setFlushMode(FlushModeType.COMMIT).getResultList();
ResourceRegistrationEntity rrx = null;
if (!rrList.isEmpty()) {
// ignores multiple results
@@ -289,10 +310,8 @@ public class IntegrityMonitor {
// refresh the object from DB in case cached data was returned
em.refresh(rrx);
if (logger.isDebugEnabled()) {
- logger.debug(
- "Resource {} exists and will be updated - old url= {}, createdDate={}",
- resourceName, rrx.getResourceUrl(),
- rrx.getCreatedDate());
+ logger.debug("Resource {} exists and will be updated - old url= {}, createdDate={}", resourceName,
+ rrx.getResourceUrl(), rrx.getCreatedDate());
}
rrx.setLastUpdated(new Date());
} else {
@@ -312,9 +331,7 @@ public class IntegrityMonitor {
}
} catch (Exception e) {
- logger.error(
- "IntegrityMonitor constructor DB table update failed with exception: ",
- e);
+ logger.error("IntegrityMonitor constructor DB table update failed with exception: ", e);
try {
if (et.isActive()) {
synchronized (imFlushLock) {
@@ -322,8 +339,7 @@ public class IntegrityMonitor {
}
}
} catch (Exception e1) {
- logger.error("IntegrityMonitor constructor threw exception: ",
- e1);
+ logger.error("IntegrityMonitor constructor threw exception: ", e1);
}
throw e;
}
@@ -345,11 +361,10 @@ public class IntegrityMonitor {
try {
new ComponentAdmin(resourceName, this, stateManager);
} catch (Exception e) {
- logger.error("ComponentAdmin constructor exception: {}",
- e.toString(), e);
+ logger.error("ComponentAdmin constructor exception: {}", e.toString(), e);
}
- fpManager = new FPManager();
+ fpManager = new FPManager(queue);
}
@@ -367,19 +382,39 @@ public class IntegrityMonitor {
* if unable to create jmx url or the constructor returns an
* exception
*/
- public static IntegrityMonitor getInstance(String resourceName,
- Properties properties) throws Exception {
+ public static IntegrityMonitor getInstance(String resourceName, Properties properties) throws Exception {
+ return getInstance(resourceName, properties, null);
+ }
+
+ /**
+ * Get an instance of IntegrityMonitor for a given resource name. It creates
+ * one if it does not exist. Only one instance is allowed to be created per
+ * resource name.
+ *
+ * @param resourceName
+ * The resource name of the resource
+ * @param properties
+ * a set of properties passed in from the resource
+ * @param queue
+ * queue to use to control the FPManager thread, or {@code null}
+ * @return The new instance of IntegrityMonitor
+ * @throws Exception
+ * if unable to create jmx url or the constructor returns an
+ * exception
+ */
+ protected static IntegrityMonitor getInstance(String resourceName, Properties properties,
+ BlockingQueue<CountDownLatch> queue) throws Exception {
+
synchronized (getInstanceLock) {
logger.debug("getInstance() called - resourceName= {}", resourceName);
- if (resourceName == null || resourceName.isEmpty()
- || properties == null) {
+ if (resourceName == null || resourceName.isEmpty() || properties == null) {
logger.error("Error: getIntegrityMonitorInstance() called with invalid input");
return null;
}
if (instance == null) {
logger.debug("Creating new instance of IntegrityMonitor");
- instance = new IntegrityMonitor(resourceName, properties);
+ instance = new IntegrityMonitor(resourceName, properties, queue);
}
return instance;
}
@@ -398,28 +433,34 @@ public class IntegrityMonitor {
/*
* This is a facility used by JUnit testing to destroy the IntegrityMonitor
- * instance before creating a new one. It includes a delay of 2 seconds to
- * allow the FPManager to fully exit.
+ * instance before creating a new one. It waits a bit to allow the FPManager
+ * to fully exit.
*/
public static void deleteInstance() throws IntegrityMonitorException {
logger.debug("deleteInstance() called");
- if (isUnitTesting() && instance != null && instance.getFPManager() != null) {
- // Stop the FPManager thread
- instance.getFPManager().stopAndExit();
+ synchronized (getInstanceLock) {
+ if (isUnitTesting() && instance != null && instance.getFPManager() != null) {
+ FPManager fpm = instance.getFPManager();
- try {
- // Make sure it has exited
- Thread.sleep(2L * CYCLE_INTERVAL_MILLIS);
- } catch (InterruptedException e) {
- logger.error("deleteInstance: Interrupted while waiting for FPManaager to fully exit", e);
- Thread.currentThread().interrupt();
- }
- if (instance.getFPManager().isAlive()) {
- logger.error("IntegrityMonitor.deleteInstance() Failed to kill FPManager thread");
- throw new IntegrityMonitorException(
- "IntegrityMonitor.deleteInstance() Failed to kill FPManager thread");
+ // Stop the FPManager thread
+ fpm.stopAndExit();
+
+ try {
+ // Make sure it has exited
+ fpm.join(2000L);
+ } catch (InterruptedException e) {
+ logger.error("deleteInstance: Interrupted while waiting for FPManaager to fully exit", e);
+ Thread.currentThread().interrupt();
+ }
+
+ if (fpm.isAlive()) {
+ logger.error("IntegrityMonitor.deleteInstance() Failed to kill FPManager thread");
+ throw new IntegrityMonitorException(
+ "IntegrityMonitor.deleteInstance() Failed to kill FPManager thread");
+ }
+
+ instance = null;
}
- instance = null;
}
logger.debug("deleteInstance() exit");
}
@@ -432,25 +473,21 @@ public class IntegrityMonitor {
// get the jmx remote port and construct the JMX URL
Properties systemProps = System.getProperties();
- String jmxPort = systemProps
- .getProperty("com.sun.management.jmxremote.port");
+ String jmxPort = systemProps.getProperty("com.sun.management.jmxremote.port");
String jmxErrMsg;
if (jmxPort == null) {
jmxErrMsg = "System property com.sun.management.jmxremote.port for JMX remote port is not set";
logger.error("{}", jmxErrMsg);
- throw new IntegrityMonitorException("getJmxUrl exception: "
- + jmxErrMsg);
+ throw new IntegrityMonitorException("getJmxUrl exception: " + jmxErrMsg);
}
int port = 0;
try {
port = Integer.parseInt(jmxPort);
} catch (NumberFormatException e) {
- jmxErrMsg = "JMX remote port is not a valid integer value - "
- + jmxPort;
+ jmxErrMsg = "JMX remote port is not a valid integer value - " + jmxPort;
logger.error("{}", jmxErrMsg);
- throw new IntegrityMonitorException("getJmxUrl exception: "
- + jmxErrMsg);
+ throw new IntegrityMonitorException("getJmxUrl exception: " + jmxErrMsg);
}
try {
@@ -473,8 +510,7 @@ public class IntegrityMonitor {
}
// assemble the jmx url
- String jmxUrl = "service:jmx:rmi:///jndi/rmi://" + jmxFqdn + ":"
- + port + "/jmxrmi";
+ String jmxUrl = "service:jmx:rmi:///jndi/rmi://" + jmxFqdn + ":" + port + "/jmxrmi";
logger.debug("IntegerityMonitor - jmx url={}", jmxUrl);
@@ -495,33 +531,24 @@ public class IntegrityMonitor {
String errorMsg = dependencyCheckErrorMsg;
logger.debug("evaluateSanity dependencyCheckErrorMsg = {}", errorMsg);
// check op state and throw exception if disabled
- if ((stateManager.getOpState() != null)
- && stateManager.getOpState().equals(
- StateManagement.DISABLED)) {
- String msg = "Resource " + resourceName
- + " operation state is disabled. " + errorMsg;
+ if ((stateManager.getOpState() != null) && stateManager.getOpState().equals(StateManagement.DISABLED)) {
+ String msg = "Resource " + resourceName + " operation state is disabled. " + errorMsg;
logger.debug("{}", msg);
throw new IntegrityMonitorException(msg);
}
// check admin state and throw exception if locked
- if ((stateManager.getAdminState() != null)
- && stateManager.getAdminState().equals(
- StateManagement.LOCKED)) {
- String msg = "Resource " + resourceName
- + " is administratively locked";
+ if ((stateManager.getAdminState() != null) && stateManager.getAdminState().equals(StateManagement.LOCKED)) {
+ String msg = "Resource " + resourceName + " is administratively locked";
logger.debug("{}", msg);
- throw new AdministrativeStateException(
- "IntegrityMonitor Admin State Exception: " + msg);
+ throw new AdministrativeStateException("IntegrityMonitor Admin State Exception: " + msg);
}
// check standby state and throw exception if cold standby
if ((stateManager.getStandbyStatus() != null)
- && stateManager.getStandbyStatus().equals(
- StateManagement.COLD_STANDBY)) {
+ && stateManager.getStandbyStatus().equals(StateManagement.COLD_STANDBY)) {
String msg = "Resource " + resourceName + " is cold standby";
logger.debug("{}", msg);
- throw new StandbyStatusException(
- "IntegrityMonitor Standby Status Exception: " + msg);
+ throw new StandbyStatusException("IntegrityMonitor Standby Status Exception: " + msg);
}
}
@@ -545,13 +572,11 @@ public class IntegrityMonitor {
et.begin();
try {
- Query query = em
- .createQuery("Select p from ForwardProgressEntity p where p.resourceName=:resource");
+ Query query = em.createQuery("Select p from ForwardProgressEntity p where p.resourceName=:resource");
query.setParameter("resource", dep);
@SuppressWarnings("rawtypes")
- List fpList = query.setLockMode(LockModeType.NONE)
- .setFlushMode(FlushModeType.COMMIT).getResultList();
+ List fpList = query.setLockMode(LockModeType.NONE).setFlushMode(FlushModeType.COMMIT).getResultList();
if (!fpList.isEmpty()) {
// exists
@@ -560,8 +585,7 @@ public class IntegrityMonitor {
em.refresh(forwardProgressEntity);
logger.debug("Found entry in ForwardProgressEntity table for dependent Resource={}", dep);
} else {
- errorMsg = dep
- + ": resource not found in ForwardProgressEntity database table";
+ errorMsg = dep + ": resource not found in ForwardProgressEntity database table";
logger.error("{}", errorMsg);
}
synchronized (imFlushLock) {
@@ -569,8 +593,7 @@ public class IntegrityMonitor {
}
} catch (Exception ex) {
// log an error
- errorMsg = dep
- + ": ForwardProgressEntity DB operation failed with exception: ";
+ errorMsg = dep + ": ForwardProgressEntity DB operation failed with exception: ";
logger.error("{}", errorMsg, ex);
synchronized (imFlushLock) {
if (et.isActive()) {
@@ -585,24 +608,20 @@ public class IntegrityMonitor {
et.begin();
try {
// query if StateManagement entry exists for dependent resource
- Query query = em
- .createQuery("Select p from StateManagementEntity p where p.resourceName=:resource");
+ Query query = em.createQuery("Select p from StateManagementEntity p where p.resourceName=:resource");
query.setParameter("resource", dep);
@SuppressWarnings("rawtypes")
- List smList = query.setLockMode(LockModeType.NONE)
- .setFlushMode(FlushModeType.COMMIT).getResultList();
+ List smList = query.setLockMode(LockModeType.NONE).setFlushMode(FlushModeType.COMMIT).getResultList();
if (!smList.isEmpty()) {
// exist
- stateManagementEntity = (StateManagementEntity) smList
- .get(0);
+ stateManagementEntity = (StateManagementEntity) smList.get(0);
// refresh the object from DB in case cached data was
// returned
em.refresh(stateManagementEntity);
logger.debug("Found entry in StateManagementEntity table for dependent Resource={}", dep);
} else {
- errorMsg = dep
- + ": resource not found in state management entity database table";
+ errorMsg = dep + ": resource not found in state management entity database table";
logger.error("{}", errorMsg);
}
@@ -611,8 +630,7 @@ public class IntegrityMonitor {
}
} catch (Exception e) {
// log an error
- errorMsg = dep
- + ": StateManagementEntity DB read failed with exception: ";
+ errorMsg = dep + ": StateManagementEntity DB read failed with exception: ";
logger.error("{}", errorMsg, e);
synchronized (imFlushLock) {
if (et.isActive()) {
@@ -626,39 +644,37 @@ public class IntegrityMonitor {
if (errorMsg == null) {
if (forwardProgressEntity != null && stateManagementEntity != null) {
Date date = new Date();
- long diffMs = date.getTime()
- - forwardProgressEntity.getLastUpdated().getTime();
+ long diffMs = date.getTime() - forwardProgressEntity.getLastUpdated().getTime();
logger.debug("IntegrityMonitor.stateCheck(): diffMs = {}", diffMs);
// Threshold for a stale entry
- long staleMs = 1000L * maxFpcUpdateInterval;
+ long staleMs = maxFpcUpdateIntervalMs;
logger.debug("IntegrityMonitor.stateCheck(): staleMs = {}", staleMs);
if (diffMs > staleMs) {
// ForwardProgress is stale. Disable it
try {
- if (!stateManagementEntity.getOpState().equals(
- StateManagement.DISABLED)) {
+ if (!stateManagementEntity.getOpState().equals(StateManagement.DISABLED)) {
logger.debug("IntegrityMonitor.stateCheck(): Changing OpStat = disabled for {}", dep);
stateManager.disableFailed(dep);
}
} catch (Exception e) {
- String msg = "IntegrityMonitor.stateCheck(): Failed to diableFail dependent resource = "
- + dep + "; " + e.getMessage();
+ String msg = "IntegrityMonitor.stateCheck(): Failed to diableFail dependent resource = " + dep
+ + "; " + e.getMessage();
logger.error("{}", msg, e);
}
}
} else {
if (forwardProgressEntity == null) {
- String msg = "IntegrityMonitor.stateCheck(): Failed to diableFail dependent resource = "
- + dep + "; " + " forwardProgressEntity == null.";
+ String msg = "IntegrityMonitor.stateCheck(): Failed to diableFail dependent resource = " + dep
+ + "; " + " forwardProgressEntity == null.";
logger.error("{}", msg);
}
else {
- String msg = "IntegrityMonitor.stateCheck(): Failed to diableFail dependent resource = "
- + dep + "; " + " stateManagementEntity == null.";
+ String msg = "IntegrityMonitor.stateCheck(): Failed to diableFail dependent resource = " + dep
+ + "; " + " stateManagementEntity == null.";
logger.error("{}", msg);
}
}
@@ -668,30 +684,25 @@ public class IntegrityMonitor {
if (errorMsg == null) {
if (stateManagementEntity != null) {
if ((stateManager.getAdminState() != null)
- && stateManagementEntity.getAdminState().equals(
- StateManagement.LOCKED)) {
+ && stateManagementEntity.getAdminState().equals(StateManagement.LOCKED)) {
errorMsg = dep + ": resource is administratively locked";
logger.error("{}", errorMsg);
} else if ((stateManager.getOpState() != null)
- && stateManagementEntity.getOpState().equals(
- StateManagement.DISABLED)) {
+ && stateManagementEntity.getOpState().equals(StateManagement.DISABLED)) {
errorMsg = dep + ": resource is operationally disabled";
logger.error("{}", errorMsg);
} else if ((stateManager.getStandbyStatus() != null)
- && stateManagementEntity.getStandbyStatus().equals(
- StateManagement.COLD_STANDBY)) {
+ && stateManagementEntity.getStandbyStatus().equals(StateManagement.COLD_STANDBY)) {
errorMsg = dep + ": resource is cold standby";
logger.error("{}", errorMsg);
}
} else {
- errorMsg = dep
- + ": could not check standy state of resource. stateManagementEntity == null.";
+ errorMsg = dep + ": could not check standy state of resource. stateManagementEntity == null.";
logger.error("{}", errorMsg);
}
}
- String returnMsg = "IntegrityMonitor.stateCheck(): returned error_msg: "
- + errorMsg;
+ String returnMsg = "IntegrityMonitor.stateCheck(): returned error_msg: " + errorMsg;
logger.debug("{}", returnMsg);
return errorMsg;
}
@@ -708,13 +719,11 @@ public class IntegrityMonitor {
EntityTransaction et = em.getTransaction();
et.begin();
try {
- Query fquery = em
- .createQuery("Select f from ForwardProgressEntity f where f.resourceName=:rn");
+ Query fquery = em.createQuery("Select f from ForwardProgressEntity f where f.resourceName=:rn");
fquery.setParameter("rn", dep);
@SuppressWarnings("rawtypes")
- List fpList = fquery.setLockMode(LockModeType.NONE)
- .setFlushMode(FlushModeType.COMMIT).getResultList();
+ List fpList = fquery.setLockMode(LockModeType.NONE).setFlushMode(FlushModeType.COMMIT).getResultList();
ForwardProgressEntity fpx;
if (!fpList.isEmpty()) {
// ignores multiple results
@@ -722,38 +731,32 @@ public class IntegrityMonitor {
// refresh the object from DB in case cached data was returned
em.refresh(fpx);
if (logger.isDebugEnabled()) {
- logger.debug(
- "Dependent resource {} - fpc= {}, lastUpdated={}",
- dep, fpx.getFpcCount(), fpx.getLastUpdated());
+ logger.debug("Dependent resource {} - fpc= {}, lastUpdated={}", dep, fpx.getFpcCount(),
+ fpx.getLastUpdated());
}
long currTime = System.currentTimeMillis();
// if dependent resource FPC has not been updated, consider it
// an error
- if ((currTime - fpx.getLastUpdated().getTime()) > (1000 * maxFpcUpdateInterval)) {
- errorMsg = dep
- + ": FP count has not been updated in the last "
- + maxFpcUpdateInterval + " seconds";
+ if ((currTime - fpx.getLastUpdated().getTime()) > maxFpcUpdateIntervalMs) {
+ errorMsg = dep + ": FP count has not been updated in the last " + maxFpcUpdateIntervalMs + "ms";
logger.error("{}", errorMsg);
try {
// create instance of StateMangement class for dependent
- StateManagement depStateManager = new StateManagement(
- emf, dep);
- if (!depStateManager.getOpState().equals(
- StateManagement.DISABLED)) {
- logger.debug("Forward progress not detected for dependent resource {}. Setting dependent's state to disable failed.", dep);
+ StateManagement depStateManager = new StateManagement(emf, dep);
+ if (!depStateManager.getOpState().equals(StateManagement.DISABLED)) {
+ logger.debug(
+ "Forward progress not detected for dependent resource {}. Setting dependent's state to disable failed.",
+ dep);
depStateManager.disableFailed();
}
} catch (Exception e) {
// ignore errors
- logger.error(
- "Update dependent state failed with exception: ",
- e);
+ logger.error("Update dependent state failed with exception: ", e);
}
}
} else {
// resource entry not found in FPC table
- errorMsg = dep
- + ": resource not found in ForwardProgressEntity table in the DB";
+ errorMsg = dep + ": resource not found in ForwardProgressEntity table in the DB";
logger.error("{}", errorMsg);
}
synchronized (imFlushLock) {
@@ -761,8 +764,7 @@ public class IntegrityMonitor {
}
} catch (Exception e) {
// log an error and continue
- errorMsg = dep
- + ": ForwardProgressEntity DB read failed with exception: ";
+ errorMsg = dep + ": ForwardProgressEntity DB read failed with exception: ";
logger.error("{}", errorMsg, e);
synchronized (imFlushLock) {
if (et.isActive()) {
@@ -781,11 +783,9 @@ public class IntegrityMonitor {
EntityTransaction et = em.getTransaction();
et.begin();
try {
- Query fquery = em
- .createQuery("Select e from ForwardProgressEntity e");
+ Query fquery = em.createQuery("Select e from ForwardProgressEntity e");
@SuppressWarnings("rawtypes")
- List myList = fquery.setLockMode(LockModeType.NONE)
- .setFlushMode(FlushModeType.COMMIT).getResultList();
+ List myList = fquery.setLockMode(LockModeType.NONE).setFlushMode(FlushModeType.COMMIT).getResultList();
synchronized (imFlushLock) {
et.commit();
}
@@ -793,10 +793,8 @@ public class IntegrityMonitor {
if (!myList.isEmpty()) {
for (int i = 0; i < myList.size(); i++) {
if (logger.isDebugEnabled()) {
- logger.debug(
- "getAllForwardProgressEntity: myList.get({}).getResourceName(): {}",
- i, ((ForwardProgressEntity) myList.get(i))
- .getResourceName());
+ logger.debug("getAllForwardProgressEntity: myList.get({}).getResourceName(): {}", i,
+ ((ForwardProgressEntity) myList.get(i)).getResourceName());
}
fpList.add((ForwardProgressEntity) myList.get(i));
}
@@ -831,13 +829,11 @@ public class IntegrityMonitor {
et.begin();
try {
// query if ResourceRegistration entry exists for resourceName
- Query rquery = em
- .createQuery("Select r from ResourceRegistrationEntity r where r.resourceName=:rn");
+ Query rquery = em.createQuery("Select r from ResourceRegistrationEntity r where r.resourceName=:rn");
rquery.setParameter("rn", dep);
@SuppressWarnings("rawtypes")
- List rrList = rquery.setLockMode(LockModeType.NONE)
- .setFlushMode(FlushModeType.COMMIT).getResultList();
+ List rrList = rquery.setLockMode(LockModeType.NONE).setFlushMode(FlushModeType.COMMIT).getResultList();
ResourceRegistrationEntity rrx = null;
if (!rrList.isEmpty()) {
@@ -847,13 +843,10 @@ public class IntegrityMonitor {
em.refresh(rrx);
jmxUrl = rrx.getResourceUrl();
if (logger.isDebugEnabled()) {
- logger.debug(
- "Dependent Resource={}, url={}, createdDate={}",
- dep, jmxUrl, rrx.getCreatedDate());
+ logger.debug("Dependent Resource={}, url={}, createdDate={}", dep, jmxUrl, rrx.getCreatedDate());
}
} else {
- errorMsg = dep
- + ": resource not found in ResourceRegistrationEntity table in the DB";
+ errorMsg = dep + ": resource not found in ResourceRegistrationEntity table in the DB";
logger.error("{}", errorMsg);
}
@@ -861,8 +854,7 @@ public class IntegrityMonitor {
et.commit();
}
} catch (Exception e) {
- errorMsg = dep
- + ": ResourceRegistrationEntity DB read failed with exception: ";
+ errorMsg = dep + ": ResourceRegistrationEntity DB read failed with exception: ";
logger.error("{}", errorMsg, e);
synchronized (imFlushLock) {
if (et.isActive()) {
@@ -875,18 +867,15 @@ public class IntegrityMonitor {
JmxAgentConnection jmxAgentConnection = null;
try {
jmxAgentConnection = new JmxAgentConnection(jmxUrl);
- MBeanServerConnection mbeanServer = jmxAgentConnection
- .getMBeanConnection();
- ComponentAdminMBean admin = JMX.newMXBeanProxy(mbeanServer,
- ComponentAdmin.getObjectName(dep),
+ MBeanServerConnection mbeanServer = jmxAgentConnection.getMBeanConnection();
+ ComponentAdminMBean admin = JMX.newMXBeanProxy(mbeanServer, ComponentAdmin.getObjectName(dep),
ComponentAdminMBean.class);
// invoke the test method via the jmx proxy
admin.test();
logger.debug("Dependent resource {} sanity test passed", dep);
} catch (Exception e) {
- errorMsg = dep
- + ": resource sanity test failed with exception: ";
+ errorMsg = dep + ": resource sanity test failed with exception: ";
logger.error("{}", errorMsg, e);
} finally {
// close the JMX connector
@@ -928,19 +917,15 @@ public class IntegrityMonitor {
if (!errorMsg.isEmpty()) {
errorMsg = errorMsg.concat(",");
}
- errorMsg = errorMsg.concat(resourceName + ": "
- + e.getMessage());
+ errorMsg = errorMsg.concat(resourceName + ": " + e.getMessage());
this.stateManager.disableDependency();
} catch (Exception ex) {
logger.error("IntegrityMonitor threw exception.", ex);
if (!errorMsg.isEmpty()) {
errorMsg = errorMsg.concat(",");
}
- errorMsg = errorMsg
- .concat("\n"
- + resourceName
- + ": Failed to disable dependency after subsystemTest failure due to: "
- + ex.getMessage());
+ errorMsg = errorMsg.concat("\n" + resourceName
+ + ": Failed to disable dependency after subsystemTest failure due to: " + ex.getMessage());
}
}
@@ -955,8 +940,7 @@ public class IntegrityMonitor {
}
String[] dependencies = group.split(",");
if (logger.isDebugEnabled()) {
- logger.debug("group dependencies = {}",
- Arrays.toString(dependencies));
+ logger.debug("group dependencies = {}", Arrays.toString(dependencies));
}
int realDepCount = 0;
int failDepCount = 0;
@@ -967,7 +951,7 @@ public class IntegrityMonitor {
continue;
}
realDepCount++; // this is a valid dependency whose
- // state is tracked
+ // state is tracked
String failMsg = fpCheck(dep); // if a resource is
// down, its FP count
// will not be
@@ -986,18 +970,21 @@ public class IntegrityMonitor {
}
errorMsg = errorMsg.concat(failMsg);
}
- }// end for (String dep : dependencies)
+ } // end for (String dep : dependencies)
// if all dependencies in a group are failed, set this
// resource's state to disable dependency
- if ((realDepCount > 0)
- && (failDepCount == realDepCount)) {
+ if ((realDepCount > 0) && (failDepCount == realDepCount)) {
dependencyFailure = true;
try {
- logger.debug("All dependents in group {} have failed their health check. Updating this resource's state to disableDependency", group);
- if(stateManager.getAvailStatus()== null || !( (stateManager.getAvailStatus()).equals(StateManagement.DEPENDENCY) ||
- (stateManager.getAvailStatus()).equals(StateManagement.DEPENDENCY_FAILED) ) ){
- // Note: redundant calls are made by refreshStateAudit
+ logger.debug(
+ "All dependents in group {} have failed their health check. Updating this resource's state to disableDependency",
+ group);
+ if (stateManager.getAvailStatus() == null || !((stateManager.getAvailStatus())
+ .equals(StateManagement.DEPENDENCY)
+ || (stateManager.getAvailStatus()).equals(StateManagement.DEPENDENCY_FAILED))) {
+ // Note: redundant calls are made by
+ // refreshStateAudit
this.stateManager.disableDependency();
}
} catch (Exception e) {
@@ -1005,15 +992,14 @@ public class IntegrityMonitor {
if (!errorMsg.isEmpty()) {
errorMsg = errorMsg.concat(",");
}
- errorMsg = errorMsg.concat(resourceName
- + ": Failed to disable dependency");
+ errorMsg = errorMsg.concat(resourceName + ": Failed to disable dependency");
break; // break out on failure and skip checking
// other groups
}
}
// check the next group
- }// end for (String group : depGroups)
+ } // end for (String group : depGroups)
/*
* We have checked all the dependency groups. If all are ok and
@@ -1021,19 +1007,22 @@ public class IntegrityMonitor {
*/
if (!dependencyFailure) {
try {
- logger.debug("All dependency groups have at least one viable member. Updating this resource's state to enableNoDependency");
- if(stateManager.getAvailStatus() != null && ((stateManager.getAvailStatus()).equals(StateManagement.DEPENDENCY) ||
- (stateManager.getAvailStatus()).equals(StateManagement.DEPENDENCY_FAILED)) ){
- // Note: redundant calls are made by refreshStateAudit
- this.stateManager.enableNoDependency();
- } // The refreshStateAudit will catch the case where it is disabled but availStatus != failed
+ logger.debug(
+ "All dependency groups have at least one viable member. Updating this resource's state to enableNoDependency");
+ if (stateManager.getAvailStatus() != null
+ && ((stateManager.getAvailStatus()).equals(StateManagement.DEPENDENCY)
+ || (stateManager.getAvailStatus()).equals(StateManagement.DEPENDENCY_FAILED))) {
+ // Note: redundant calls are made by
+ // refreshStateAudit
+ this.stateManager.enableNoDependency();
+ } // The refreshStateAudit will catch the case where it
+ // is disabled but availStatus != failed
} catch (Exception e) {
logger.error("IntegrityMonitor threw exception.", e);
if (!errorMsg.isEmpty()) {
errorMsg = errorMsg.concat(",");
}
- errorMsg = errorMsg.concat(resourceName
- + ": Failed to enable no dependency");
+ errorMsg = errorMsg.concat(resourceName + ": Failed to enable no dependency");
}
}
} else if (!dependencyFailure) {
@@ -1046,26 +1035,24 @@ public class IntegrityMonitor {
*/
try {
logger.debug("There are no dependents. Updating this resource's state to enableNoDependency");
- if(stateManager.getAvailStatus() != null && ((stateManager.getAvailStatus()).equals(StateManagement.DEPENDENCY) ||
- (stateManager.getAvailStatus()).equals(StateManagement.DEPENDENCY_FAILED)) ){
+ if (stateManager.getAvailStatus() != null
+ && ((stateManager.getAvailStatus()).equals(StateManagement.DEPENDENCY)
+ || (stateManager.getAvailStatus()).equals(StateManagement.DEPENDENCY_FAILED))) {
// Note: redundant calls are made by refreshStateAudit
this.stateManager.enableNoDependency();
- }// The refreshStateAudit will catch the case where it is
+ } // The refreshStateAudit will catch the case where it is
// disabled but availStatus != failed
} catch (Exception e) {
logger.error("IntegrityMonitor threw exception.", e);
if (!errorMsg.isEmpty()) {
errorMsg = errorMsg.concat(",");
}
- errorMsg = errorMsg.concat(resourceName
- + ": Failed to enable no dependency");
+ errorMsg = errorMsg.concat(resourceName + ": Failed to enable no dependency");
}
}
if (!errorMsg.isEmpty()) {
- logger.error(
- "Sanity failure detected in a dependent resource: {}",
- errorMsg);
+ logger.error("Sanity failure detected in a dependent resource: {}", errorMsg);
}
@@ -1077,13 +1064,13 @@ public class IntegrityMonitor {
}
/**
- * Execute a test transaction. It is called when the test transaction timer fires.
- * It could be overridden to provide additional test functionality. If overridden,
- * the overriding method must invoke startTransaction() and endTransaction() and
- * check if the allNotWellMap is empty.
+ * Execute a test transaction. It is called when the test transaction timer
+ * fires. It could be overridden to provide additional test functionality.
+ * If overridden, the overriding method must invoke startTransaction() and
+ * endTransaction() and check if the allNotWellMap is empty.
*/
public void testTransaction() {
- synchronized (testTransactionLock){
+ synchronized (testTransactionLock) {
logger.debug("testTransaction: entry");
//
// startTransaction() not required for testTransaction
@@ -1112,31 +1099,23 @@ public class IntegrityMonitor {
* throws admin state exception if resource is locked
* @throws StandbyStatusException
*/
- public void startTransaction() throws AdministrativeStateException,
- StandbyStatusException {
+ public void startTransaction() throws AdministrativeStateException, StandbyStatusException {
synchronized (startTransactionLock) {
// check admin state and throw exception if locked
- if ((stateManager.getAdminState() != null)
- && stateManager.getAdminState().equals(
- StateManagement.LOCKED)) {
- String msg = "Resource " + resourceName
- + " is administratively locked";
+ if ((stateManager.getAdminState() != null) && stateManager.getAdminState().equals(StateManagement.LOCKED)) {
+ String msg = "Resource " + resourceName + " is administratively locked";
- throw new AdministrativeStateException(
- "IntegrityMonitor Admin State Exception: " + msg);
+ throw new AdministrativeStateException("IntegrityMonitor Admin State Exception: " + msg);
}
// check standby state and throw exception if locked
if ((stateManager.getStandbyStatus() != null)
- && (stateManager.getStandbyStatus().equals(
- StateManagement.HOT_STANDBY) || stateManager
- .getStandbyStatus().equals(
- StateManagement.COLD_STANDBY))) {
+ && (stateManager.getStandbyStatus().equals(StateManagement.HOT_STANDBY)
+ || stateManager.getStandbyStatus().equals(StateManagement.COLD_STANDBY))) {
String msg = "Resource " + resourceName + " is standby";
- throw new StandbyStatusException(
- "IntegrityMonitor Standby Status Exception: " + msg);
+ throw new StandbyStatusException("IntegrityMonitor Standby Status Exception: " + msg);
}
// reset transactionTimer so it will not fire
@@ -1149,30 +1128,32 @@ public class IntegrityMonitor {
* the end of each transaction (successful or not).
*/
public void endTransaction() {
- synchronized(endTransactionLock){
- if(getAllNotWellMap() != null){
- if(!(getAllNotWellMap().isEmpty())){
+ synchronized (endTransactionLock) {
+ if (getAllNotWellMap() != null) {
+ if (!(getAllNotWellMap().isEmpty())) {
/*
- * An entity has reported that it is not well. We must not
+ * An entity has reported that it is not well. We must not
* allow the the forward progress counter to advance.
*/
String msg = "allNotWellMap:";
- for(Entry<String, String> entry: allNotWellMap.entrySet()){
+ for (Entry<String, String> entry : allNotWellMap.entrySet()) {
msg = msg.concat("\nkey = " + entry.getKey() + " msg = " + entry.getValue());
}
logger.error("endTransaction: allNotWellMap is NOT EMPTY. Not advancing forward"
+ "progress counter. \n{}\n", msg);
return;
- }else{
- if(logger.isDebugEnabled()){
- if(getAllSeemsWellMap() != null){
- if(!(getAllSeemsWellMap().isEmpty())){
+ } else {
+ if (logger.isDebugEnabled()) {
+ if (getAllSeemsWellMap() != null) {
+ if (!(getAllSeemsWellMap().isEmpty())) {
String msg = "allSeemsWellMap:";
- for(Entry<String, String> entry: allSeemsWellMap.entrySet()){
+ for (Entry<String, String> entry : allSeemsWellMap.entrySet()) {
msg = msg.concat("\nkey = " + entry.getKey() + " msg = " + entry.getValue());
}
- logger.debug("endTransaction: allNotWellMap IS EMPTY and allSeemsWellMap is NOT EMPTY. Advancing forward"
- + "progress counter. \n{}\n", msg);
+ logger.debug(
+ "endTransaction: allNotWellMap IS EMPTY and allSeemsWellMap is NOT EMPTY. Advancing forward"
+ + "progress counter. \n{}\n",
+ msg);
}
}
}
@@ -1195,13 +1176,11 @@ public class IntegrityMonitor {
try {
// query if ForwardProgress entry exists for resourceName
- Query fquery = em
- .createQuery("Select f from ForwardProgressEntity f where f.resourceName=:rn");
+ Query fquery = em.createQuery("Select f from ForwardProgressEntity f where f.resourceName=:rn");
fquery.setParameter("rn", resourceName);
@SuppressWarnings("rawtypes")
- List fpList = fquery.setLockMode(LockModeType.NONE)
- .setFlushMode(FlushModeType.COMMIT).getResultList();
+ List fpList = fquery.setLockMode(LockModeType.NONE).setFlushMode(FlushModeType.COMMIT).getResultList();
ForwardProgressEntity fpx;
if (!fpList.isEmpty()) {
// ignores multiple results
@@ -1209,10 +1188,8 @@ public class IntegrityMonitor {
// refresh the object from DB in case cached data was returned
em.refresh(fpx);
if (logger.isDebugEnabled()) {
- logger.debug(
- "Updating FP entry: Resource={}, fpcCount={}, lastUpdated={}, new fpcCount={}",
- resourceName, fpx.getFpcCount(),
- fpx.getLastUpdated(), fpCounter);
+ logger.debug("Updating FP entry: Resource={}, fpcCount={}, lastUpdated={}, new fpcCount={}",
+ resourceName, fpx.getFpcCount(), fpx.getLastUpdated(), fpCounter);
}
fpx.setFpcCount(fpCounter);
em.persist(fpx);
@@ -1222,8 +1199,7 @@ public class IntegrityMonitor {
}
} else {
// Error - FP entry does not exist
- String msg = "FP entry not found in database for resource "
- + resourceName;
+ String msg = "FP entry not found in database for resource " + resourceName;
throw new IntegrityMonitorException(msg);
}
} catch (Exception e) {
@@ -1236,8 +1212,7 @@ public class IntegrityMonitor {
} catch (Exception e1) {
logger.error("IntegrityMonitor threw exception.", e1);
}
- logger.error("writeFpc DB table commit failed with exception: {}",
- e);
+ logger.error("writeFpc DB table commit failed with exception: {}", e);
throw e;
}
}
@@ -1252,89 +1227,74 @@ public class IntegrityMonitor {
*
* @throws Exception
*/
- private static void validateProperties(Properties prop)
- throws IntegrityMonitorPropertiesException {
+ private static void validateProperties(Properties prop) throws IntegrityMonitorPropertiesException {
if (prop.getProperty(IntegrityMonitorProperties.DB_DRIVER) == null) {
- String msg = IntegrityMonitorProperties.DB_DRIVER
- + " property is null";
+ String msg = IntegrityMonitorProperties.DB_DRIVER + " property is null";
logger.error("{}", msg);
- throw new IntegrityMonitorPropertiesException(
- "IntegrityMonitor Property Exception: " + msg);
+ throw new IntegrityMonitorPropertiesException("IntegrityMonitor Property Exception: " + msg);
}
if (prop.getProperty(IntegrityMonitorProperties.DB_URL) == null) {
- String msg = IntegrityMonitorProperties.DB_URL
- + " property is null";
+ String msg = IntegrityMonitorProperties.DB_URL + " property is null";
logger.error("{}", msg);
- throw new IntegrityMonitorPropertiesException(
- "IntegrityMonitor Property Exception: " + msg);
+ throw new IntegrityMonitorPropertiesException("IntegrityMonitor Property Exception: " + msg);
}
if (prop.getProperty(IntegrityMonitorProperties.DB_USER) == null) {
- String msg = IntegrityMonitorProperties.DB_USER
- + " property is null";
+ String msg = IntegrityMonitorProperties.DB_USER + " property is null";
logger.error("{}", msg);
- throw new IntegrityMonitorPropertiesException(
- "IntegrityMonitor Property Exception: " + msg);
+ throw new IntegrityMonitorPropertiesException("IntegrityMonitor Property Exception: " + msg);
}
if (prop.getProperty(IntegrityMonitorProperties.DB_PWD) == null) {
- String msg = IntegrityMonitorProperties.DB_PWD
- + " property is null";
+ String msg = IntegrityMonitorProperties.DB_PWD + " property is null";
logger.error("{}", msg);
- throw new IntegrityMonitorPropertiesException(
- "IntegrityMonitor Property Exception: " + msg);
+ throw new IntegrityMonitorPropertiesException("IntegrityMonitor Property Exception: " + msg);
}
if (prop.getProperty(IntegrityMonitorProperties.FP_MONITOR_INTERVAL) != null) {
try {
- monitorInterval = Integer.parseInt(prop.getProperty(
- IntegrityMonitorProperties.FP_MONITOR_INTERVAL).trim());
+ monitorIntervalMs = toMillis(
+ Integer.parseInt(prop.getProperty(IntegrityMonitorProperties.FP_MONITOR_INTERVAL).trim()));
} catch (NumberFormatException e) {
- logger.warn("Ignored invalid property: {}",
- IntegrityMonitorProperties.FP_MONITOR_INTERVAL, e);
+ logger.warn("Ignored invalid property: {}", IntegrityMonitorProperties.FP_MONITOR_INTERVAL, e);
}
}
if (prop.getProperty(IntegrityMonitorProperties.FAILED_COUNTER_THRESHOLD) != null) {
try {
- failedCounterThreshold = Integer.parseInt(prop.getProperty(
- IntegrityMonitorProperties.FAILED_COUNTER_THRESHOLD)
- .trim());
+ failedCounterThreshold = Integer
+ .parseInt(prop.getProperty(IntegrityMonitorProperties.FAILED_COUNTER_THRESHOLD).trim());
} catch (NumberFormatException e) {
- logger.warn("Ignored invalid property: {}",
- IntegrityMonitorProperties.FAILED_COUNTER_THRESHOLD, e);
+ logger.warn("Ignored invalid property: {}", IntegrityMonitorProperties.FAILED_COUNTER_THRESHOLD, e);
}
}
if (prop.getProperty(IntegrityMonitorProperties.TEST_TRANS_INTERVAL) != null) {
try {
- testTransInterval = Integer.parseInt(prop.getProperty(
- IntegrityMonitorProperties.TEST_TRANS_INTERVAL).trim());
+ testTransIntervalMs = toMillis(
+ Integer.parseInt(prop.getProperty(IntegrityMonitorProperties.TEST_TRANS_INTERVAL).trim()));
} catch (NumberFormatException e) {
- logger.warn("Ignored invalid property: {}",
- IntegrityMonitorProperties.TEST_TRANS_INTERVAL, e);
+ logger.warn("Ignored invalid property: {}", IntegrityMonitorProperties.TEST_TRANS_INTERVAL, e);
}
}
if (prop.getProperty(IntegrityMonitorProperties.WRITE_FPC_INTERVAL) != null) {
try {
- writeFpcInterval = Integer.parseInt(prop.getProperty(
- IntegrityMonitorProperties.WRITE_FPC_INTERVAL).trim());
+ writeFpcIntervalMs = toMillis(
+ Integer.parseInt(prop.getProperty(IntegrityMonitorProperties.WRITE_FPC_INTERVAL).trim()));
} catch (NumberFormatException e) {
- logger.warn("Ignored invalid property: {}",
- IntegrityMonitorProperties.WRITE_FPC_INTERVAL, e);
+ logger.warn("Ignored invalid property: {}", IntegrityMonitorProperties.WRITE_FPC_INTERVAL, e);
}
}
if (prop.getProperty(IntegrityMonitorProperties.CHECK_DEPENDENCY_INTERVAL) != null) {
try {
- checkDependencyInterval = Integer.parseInt(prop.getProperty(
- IntegrityMonitorProperties.CHECK_DEPENDENCY_INTERVAL).trim());
+ checkDependencyIntervalMs = toMillis(Integer
+ .parseInt(prop.getProperty(IntegrityMonitorProperties.CHECK_DEPENDENCY_INTERVAL).trim()));
} catch (NumberFormatException e) {
- logger.warn("Ignored invalid property: {}",
- IntegrityMonitorProperties.CHECK_DEPENDENCY_INTERVAL, e);
+ logger.warn("Ignored invalid property: {}", IntegrityMonitorProperties.CHECK_DEPENDENCY_INTERVAL, e);
}
}
@@ -1344,57 +1304,45 @@ public class IntegrityMonitor {
// site_1.pdp_2
if (prop.getProperty(IntegrityMonitorProperties.DEPENDENCY_GROUPS) != null) {
try {
- depGroups = prop.getProperty(
- IntegrityMonitorProperties.DEPENDENCY_GROUPS)
- .split(";");
+ depGroups = prop.getProperty(IntegrityMonitorProperties.DEPENDENCY_GROUPS).split(";");
if (logger.isDebugEnabled()) {
- logger.debug("dependency groups property = {}",
- Arrays.toString(depGroups));
+ logger.debug("dependency groups property = {}", Arrays.toString(depGroups));
}
} catch (Exception e) {
- logger.warn("Ignored invalid property: {}",
- IntegrityMonitorProperties.DEPENDENCY_GROUPS, e);
+ logger.warn("Ignored invalid property: {}", IntegrityMonitorProperties.DEPENDENCY_GROUPS, e);
}
}
siteName = prop.getProperty(IntegrityMonitorProperties.SITE_NAME);
if (siteName == null) {
- String msg = IntegrityMonitorProperties.SITE_NAME
- + " property is null";
+ String msg = IntegrityMonitorProperties.SITE_NAME + " property is null";
logger.error("{}", msg);
- throw new IntegrityMonitorPropertiesException(
- "IntegrityMonitor Property Exception: " + msg);
+ throw new IntegrityMonitorPropertiesException("IntegrityMonitor Property Exception: " + msg);
} else {
siteName = siteName.trim();
}
nodeType = prop.getProperty(IntegrityMonitorProperties.NODE_TYPE);
if (nodeType == null) {
- String msg = IntegrityMonitorProperties.NODE_TYPE
- + " property is null";
+ String msg = IntegrityMonitorProperties.NODE_TYPE + " property is null";
logger.error("{}", msg);
- throw new IntegrityMonitorPropertiesException(
- "IntegrityMonitor Property Exception: " + msg);
+ throw new IntegrityMonitorPropertiesException("IntegrityMonitor Property Exception: " + msg);
} else {
nodeType = nodeType.trim();
if (!isNodeTypeEnum(nodeType)) {
- String msg = IntegrityMonitorProperties.NODE_TYPE
- + " property " + nodeType + " is invalid";
+ String msg = IntegrityMonitorProperties.NODE_TYPE + " property " + nodeType + " is invalid";
logger.error("{}", msg);
- throw new IntegrityMonitorPropertiesException(
- "IntegrityMonitor Property Exception: " + msg);
+ throw new IntegrityMonitorPropertiesException("IntegrityMonitor Property Exception: " + msg);
}
}
if (prop.getProperty(IntegrityMonitorProperties.TEST_VIA_JMX) != null) {
- String jmxTest = prop.getProperty(
- IntegrityMonitorProperties.TEST_VIA_JMX).trim();
+ String jmxTest = prop.getProperty(IntegrityMonitorProperties.TEST_VIA_JMX).trim();
testViaJmx = Boolean.parseBoolean(jmxTest);
}
if (prop.getProperty(IntegrityMonitorProperties.JMX_FQDN) != null) {
- jmxFqdn = prop.getProperty(IntegrityMonitorProperties.JMX_FQDN)
- .trim();
+ jmxFqdn = prop.getProperty(IntegrityMonitorProperties.JMX_FQDN).trim();
if (jmxFqdn.isEmpty()) {
jmxFqdn = null;
}
@@ -1402,41 +1350,34 @@ public class IntegrityMonitor {
if (prop.getProperty(IntegrityMonitorProperties.MAX_FPC_UPDATE_INTERVAL) != null) {
try {
- maxFpcUpdateInterval = Integer.parseInt(prop.getProperty(
- IntegrityMonitorProperties.MAX_FPC_UPDATE_INTERVAL)
- .trim());
+ maxFpcUpdateIntervalMs = toMillis(
+ Integer.parseInt(prop.getProperty(IntegrityMonitorProperties.MAX_FPC_UPDATE_INTERVAL).trim()));
} catch (NumberFormatException e) {
- logger.warn("Ignored invalid property: {}",
- IntegrityMonitorProperties.MAX_FPC_UPDATE_INTERVAL, e);
+ logger.warn("Ignored invalid property: {}", IntegrityMonitorProperties.MAX_FPC_UPDATE_INTERVAL, e);
}
}
if (prop.getProperty(IntegrityMonitorProperties.STATE_AUDIT_INTERVAL_MS) != null) {
try {
stateAuditIntervalMs = Long
- .parseLong(prop
- .getProperty(IntegrityMonitorProperties.STATE_AUDIT_INTERVAL_MS));
+ .parseLong(prop.getProperty(IntegrityMonitorProperties.STATE_AUDIT_INTERVAL_MS));
} catch (NumberFormatException e) {
- logger.warn("Ignored invalid property: {}",
- IntegrityMonitorProperties.STATE_AUDIT_INTERVAL_MS, e);
+ logger.warn("Ignored invalid property: {}", IntegrityMonitorProperties.STATE_AUDIT_INTERVAL_MS, e);
}
}
if (prop.getProperty(IntegrityMonitorProperties.REFRESH_STATE_AUDIT_INTERVAL_MS) != null) {
try {
refreshStateAuditIntervalMs = Long
- .parseLong(prop
- .getProperty(IntegrityMonitorProperties.REFRESH_STATE_AUDIT_INTERVAL_MS));
+ .parseLong(prop.getProperty(IntegrityMonitorProperties.REFRESH_STATE_AUDIT_INTERVAL_MS));
} catch (NumberFormatException e) {
- logger.warn(
- "Ignored invalid property: {}",
- IntegrityMonitorProperties.REFRESH_STATE_AUDIT_INTERVAL_MS,
+ logger.warn("Ignored invalid property: {}", IntegrityMonitorProperties.REFRESH_STATE_AUDIT_INTERVAL_MS,
e);
}
}
- logger.debug("IntegrityMonitor.validateProperties(): Property values \n"
- + "maxFpcUpdateInterval = {}\n", maxFpcUpdateInterval);
+ logger.debug("IntegrityMonitor.validateProperties(): Property values \n" + "maxFpcUpdateIntervalMs = {}\n",
+ maxFpcUpdateIntervalMs);
return;
}
@@ -1472,15 +1413,14 @@ public class IntegrityMonitor {
logger.debug("fpMonitorCycle(): entry");
synchronized (fpMonitorCycleLock) {
// monitoring interval checks
- if (monitorInterval <= 0) {
+ if (monitorIntervalMs <= 0) {
logger.debug("fpMonitorCycle(): disabled");
elapsedTime = 0;
return; // monitoring is disabled
}
- elapsedTime = elapsedTime
- + TimeUnit.MILLISECONDS.toSeconds(CYCLE_INTERVAL_MILLIS);
- if (elapsedTime < monitorInterval) {
+ elapsedTime = elapsedTime + cycleIntervalMillis;
+ if (elapsedTime < monitorIntervalMs) {
return; // monitoring interval not reached
}
@@ -1491,15 +1431,13 @@ public class IntegrityMonitor {
// no forward progress
missedCycles += 1;
if (missedCycles >= failedCounterThreshold && !alarmExists) {
- logger.debug(
- "Forward progress not detected for resource {}. Setting state to disable failed.",
+ logger.debug("Forward progress not detected for resource {}. Setting state to disable failed.",
resourceName);
- if (!(stateManager.getOpState())
- .equals(StateManagement.DISABLED)) {
+ if (!(stateManager.getOpState()).equals(StateManagement.DISABLED)) {
// Note: The refreshStateAudit will make redundant
// calls
stateManager.disableFailed();
- }// The refreshStateAudit will catch the case where
+ } // The refreshStateAudit will catch the case where
// opStat = disabled and availState !
// failed/dependency.failed
alarmExists = true;
@@ -1509,14 +1447,12 @@ public class IntegrityMonitor {
lastFpCounter = fpCounter;
missedCycles = 0;
// set op state to enabled
- logger.debug(
- "Forward progress detected for resource {}. Setting state to enable not failed.",
+ logger.debug("Forward progress detected for resource {}. Setting state to enable not failed.",
resourceName);
- if (!(stateManager.getOpState())
- .equals(StateManagement.ENABLED)) {
+ if (!(stateManager.getOpState()).equals(StateManagement.ENABLED)) {
// Note: The refreshStateAudit will make redundant calls
stateManager.enableNotFailed();
- }// The refreshStateAudit will catch the case where
+ } // The refreshStateAudit will catch the case where
// opState=enabled and availStatus != null
alarmExists = false;
}
@@ -1539,39 +1475,39 @@ public class IntegrityMonitor {
logger.debug("IntegrityMonitor.stateAudit(): disabled");
return; // stateAudit is disabled
}
-
- //Only run from nodes that are operational
- if(stateManager.getOpState().equals(StateManagement.DISABLED)){
+
+ // Only run from nodes that are operational
+ if (stateManager.getOpState().equals(StateManagement.DISABLED)) {
logger.debug("IntegrityMonitor.stateAudit(): DISABLED. returning");
return;
}
- if(stateManager.getAdminState().equals(StateManagement.LOCKED)){
+ if (stateManager.getAdminState().equals(StateManagement.LOCKED)) {
logger.debug("IntegrityMonitor.stateAudit(): LOCKED. returning");
return;
}
- if(!stateManager.getStandbyStatus().equals(StateManagement.NULL_VALUE) &&
- stateManager.getStandbyStatus()!= null){
- if(!stateManager.getStandbyStatus().equals(StateManagement.PROVIDING_SERVICE)){
+ if (!stateManager.getStandbyStatus().equals(StateManagement.NULL_VALUE)
+ && stateManager.getStandbyStatus() != null) {
+ if (!stateManager.getStandbyStatus().equals(StateManagement.PROVIDING_SERVICE)) {
logger.debug("IntegrityMonitor.stateAudit(): NOT PROVIDING_SERVICE. returning");
return;
}
}
- Date date = new Date();
- long timeSinceLastStateAudit = date.getTime() - lastStateAuditTime.getTime();
- if (timeSinceLastStateAudit < stateAuditIntervalMs){
+ Date date = new Date();
+ long timeSinceLastStateAudit = date.getTime() - lastStateAuditTime.getTime();
+ if (timeSinceLastStateAudit < stateAuditIntervalMs) {
logger.debug("IntegrityMonitor.stateAudit(): Not time to run. returning");
return;
}
-
+
executeStateAudit();
lastStateAuditTime = date;
logger.debug("IntegrityMonitor.stateAudit(): exit");
}// end stateAudit()
-
- public void executeStateAudit(){
+
+ public void executeStateAudit() {
logger.debug("IntegrityMonitor.executeStateAudit(): entry");
Date date = new Date();
@@ -1579,77 +1515,87 @@ public class IntegrityMonitor {
List<ForwardProgressEntity> fpList = getAllForwardProgressEntity();
// Check if each forwardprogressentity entry is current
- for(ForwardProgressEntity fpe : fpList){
- //If the this is my ForwardProgressEntity, continue
- if(fpe.getResourceName().equals(IntegrityMonitor.resourceName)){
+ for (ForwardProgressEntity fpe : fpList) {
+ // If the this is my ForwardProgressEntity, continue
+ if (fpe.getResourceName().equals(IntegrityMonitor.resourceName)) {
continue;
}
- //Make sure you are not getting a cached version
+ // Make sure you are not getting a cached version
em.refresh(fpe);
long diffMs = date.getTime() - fpe.getLastUpdated().getTime();
- if(logger.isDebugEnabled()){
- logger.debug("IntegrityMonitor.executeStateAudit(): resource = {}, diffMs = {}", fpe.getResourceName(), diffMs);
+ if (logger.isDebugEnabled()) {
+ logger.debug("IntegrityMonitor.executeStateAudit(): resource = {}, diffMs = {}", fpe.getResourceName(),
+ diffMs);
}
- //Threshold for a stale entry
- long staleMs = 1000L * maxFpcUpdateInterval;
- if(logger.isDebugEnabled()){
- logger.debug("IntegrityMonitor.executeStateAudit(): resource = {}, staleMs = {}", fpe.getResourceName(), staleMs);
+ // Threshold for a stale entry
+ long staleMs = maxFpcUpdateIntervalMs;
+ if (logger.isDebugEnabled()) {
+ logger.debug("IntegrityMonitor.executeStateAudit(): resource = {}, staleMs = {}", fpe.getResourceName(),
+ staleMs);
}
- if(diffMs > staleMs){
- //ForwardProgress is stale. Disable it
+ if (diffMs > staleMs) {
+ // ForwardProgress is stale. Disable it
// Start a transaction
- logger.debug("IntegrityMonitor.executeStateAudit(): resource = {}, FPC is stale. Disabling it" );
+ logger.debug("IntegrityMonitor.executeStateAudit(): resource = {}, FPC is stale. Disabling it");
EntityTransaction et = em.getTransaction();
et.begin();
StateManagementEntity sme = null;
try {
// query if StateManagement entry exists for fpe resource
- Query query = em.createQuery("Select p from StateManagementEntity p where p.resourceName=:resource");
+ Query query = em
+ .createQuery("Select p from StateManagementEntity p where p.resourceName=:resource");
query.setParameter("resource", fpe.getResourceName());
@SuppressWarnings("rawtypes")
- List smList = query.setLockMode(
- LockModeType.NONE).setFlushMode(FlushModeType.COMMIT).getResultList();
+ List smList = query.setLockMode(LockModeType.NONE).setFlushMode(FlushModeType.COMMIT)
+ .getResultList();
if (!smList.isEmpty()) {
// exists
sme = (StateManagementEntity) smList.get(0);
- // refresh the object from DB in case cached data was returned
+ // refresh the object from DB in case cached data was
+ // returned
em.refresh(sme);
- if(logger.isDebugEnabled()){
- logger.debug("IntegrityMonitor.executeStateAudit(): Found entry in StateManagementEntity table for Resource={}", sme.getResourceName());
+ if (logger.isDebugEnabled()) {
+ logger.debug(
+ "IntegrityMonitor.executeStateAudit(): Found entry in StateManagementEntity table for Resource={}",
+ sme.getResourceName());
}
} else {
- String msg = "IntegrityMonitor.executeStateAudit(): " + fpe.getResourceName() + ": resource not found in state management entity database table";
- logger.error("{}", msg);
+ String msg = "IntegrityMonitor.executeStateAudit(): " + fpe.getResourceName()
+ + ": resource not found in state management entity database table";
+ logger.error("{}", msg);
}
- synchronized(imFlushLock){
+ synchronized (imFlushLock) {
et.commit();
}
} catch (Exception e) {
// log an error
- logger.error("IntegrityMonitor.executeStateAudit(): {}: StateManagementEntity DB read failed with exception: ", fpe.getResourceName(), e);
- synchronized(imFlushLock){
- if(et.isActive()){
+ logger.error(
+ "IntegrityMonitor.executeStateAudit(): {}: StateManagementEntity DB read failed with exception: ",
+ fpe.getResourceName(), e);
+ synchronized (imFlushLock) {
+ if (et.isActive()) {
et.rollback();
}
}
}
- if(sme != null && !sme.getOpState().equals(StateManagement.DISABLED)){
- if(logger.isDebugEnabled()){
- logger.debug("IntegrityMonitor.executeStateAudit(): Changing OpStat = disabled for {}", sme.getResourceName());
+ if (sme != null && !sme.getOpState().equals(StateManagement.DISABLED)) {
+ if (logger.isDebugEnabled()) {
+ logger.debug("IntegrityMonitor.executeStateAudit(): Changing OpStat = disabled for {}",
+ sme.getResourceName());
+ }
+ try {
+ stateManager.disableFailed(sme.getResourceName());
+ } catch (Exception e) {
+ String msg = "IntegrityMonitor.executeStateAudit(): Failed to disable " + sme.getResourceName();
+ logger.error("{}", msg, e);
}
- try {
- stateManager.disableFailed(sme.getResourceName());
- } catch (Exception e) {
- String msg = "IntegrityMonitor.executeStateAudit(): Failed to disable " + sme.getResourceName();
- logger.error("{}", msg, e);
- }
}
- }// end if(diffMs > staleMs)
- }// end for(ForwardProgressEntity fpe : fpList)
+ } // end if(diffMs > staleMs)
+ } // end for(ForwardProgressEntity fpe : fpList)
logger.debug("IntegrityMonitor.executeStateAudit(): exit");
}
@@ -1661,15 +1607,14 @@ public class IntegrityMonitor {
synchronized (checkTestTransactionLock) {
// test transaction timer checks
- if (testTransInterval <= 0) {
+ if (testTransIntervalMs <= 0) {
logger.debug("checkTestTransaction(): disabled");
elapsedTestTransTime = 0;
return; // test transaction is disabled
}
- elapsedTestTransTime = elapsedTestTransTime
- + TimeUnit.MILLISECONDS.toSeconds(CYCLE_INTERVAL_MILLIS);
- if (elapsedTestTransTime < testTransInterval) {
+ elapsedTestTransTime = elapsedTestTransTime + cycleIntervalMillis;
+ if (elapsedTestTransTime < testTransIntervalMs) {
return; // test transaction interval not reached
}
@@ -1689,15 +1634,14 @@ public class IntegrityMonitor {
synchronized (checkWriteFpcLock) {
// test transaction timer checks
- if (writeFpcInterval <= 0) {
+ if (writeFpcIntervalMs <= 0) {
logger.debug("checkWriteFpc(): disabled");
elapsedWriteFpcTime = 0;
return; // write Fpc is disabled
}
- elapsedWriteFpcTime = elapsedWriteFpcTime
- + TimeUnit.MILLISECONDS.toSeconds(CYCLE_INTERVAL_MILLIS);
- if (elapsedWriteFpcTime < writeFpcInterval) {
+ elapsedWriteFpcTime = elapsedWriteFpcTime + cycleIntervalMillis;
+ if (elapsedWriteFpcTime < writeFpcIntervalMs) {
return; // write Fpc interval not reached
}
@@ -1719,16 +1663,15 @@ public class IntegrityMonitor {
*/
private void checkDependentHealth() {
logger.debug("checkDependentHealth: entry");
- if (checkDependencyInterval <=0) {
+ if (checkDependencyIntervalMs <= 0) {
logger.debug("checkDependentHealth: disabled");
return; // dependency monitoring is disabled
}
long currTime = System.currentTimeMillis();
- logger.debug(
- "checkDependentHealth currTime - lastDependencyCheckTime = {}",
+ logger.debug("checkDependentHealth currTime - lastDependencyCheckTime = {}",
currTime - lastDependencyCheckTime);
- if ((currTime - lastDependencyCheckTime) > (1000L * checkDependencyInterval)) {
+ if ((currTime - lastDependencyCheckTime) > checkDependencyIntervalMs) {
// execute dependency check and update this resource's state
dependencyCheck();
@@ -1756,16 +1699,15 @@ public class IntegrityMonitor {
executeRefreshStateAudit();
logger.debug("refreshStateAudit(): exit");
}
-
- public void executeRefreshStateAudit(){
+
+ public void executeRefreshStateAudit() {
logger.debug("executeRefreshStateAudit(): entry");
synchronized (refreshStateAuditLock) {
logger.debug("refreshStateAudit: entry");
Date now = new Date();
long nowMs = now.getTime();
long lastTimeMs = refreshStateAuditLastRunDate.getTime();
- logger.debug("refreshStateAudit: ms since last run = {}",
- nowMs - lastTimeMs);
+ logger.debug("refreshStateAudit: ms since last run = {}", nowMs - lastTimeMs);
if ((nowMs - lastTimeMs) > refreshStateAuditIntervalMs) {
String adminState = stateManager.getAdminState();
@@ -1775,18 +1717,14 @@ public class IntegrityMonitor {
logger.debug("refreshStateAudit: calling lock()");
stateManager.lock();
} catch (Exception e) {
- logger.error(
- "refreshStateAudit: caught unexpected exception from stateManager.lock(): ",
- e);
+ logger.error("refreshStateAudit: caught unexpected exception from stateManager.lock(): ", e);
}
} else {// unlocked
try {
logger.debug("refreshStateAudit: calling unlock()");
stateManager.unlock();
} catch (Exception e) {
- logger.error(
- "refreshStateAudit: caught unexpected exception from stateManager.unlock(): ",
- e);
+ logger.error("refreshStateAudit: caught unexpected exception from stateManager.unlock(): ", e);
}
}
refreshStateAuditLastRunDate = new Date();
@@ -1796,24 +1734,20 @@ public class IntegrityMonitor {
logger.debug("executeRefreshStateAudit(): exit");
}
- public static boolean isUnitTesting() {
- return isUnitTesting;
- }
-
- public static void setUnitTesting(boolean isUnitTesting) {
- IntegrityMonitor.isUnitTesting = isUnitTesting;
- }
-
/**
* The following nested class periodically performs the forward progress
* check, checks dependencies, does a refresh state audit and runs the
* stateAudit.
*/
class FPManager extends Thread {
- private volatile boolean exit = false;
+ private final CountDownLatch stopper = new CountDownLatch(1);
+
+ private BlockingQueue<CountDownLatch> queue;
+ private CountDownLatch progressLatch = null;
// Constructor - start FP manager thread
- FPManager() {
+ FPManager(BlockingQueue<CountDownLatch> queue) {
+ this.queue = queue;
// set now as the last time the refreshStateAudit ran
IntegrityMonitor.this.refreshStateAuditLastRunDate = new Date();
// start thread
@@ -1823,139 +1757,209 @@ public class IntegrityMonitor {
@Override
public void run() {
logger.debug("FPManager thread running");
- while (!exit) {
- try {
- Thread.sleep(CYCLE_INTERVAL_MILLIS);
- } catch (InterruptedException e) {
- // The 'sleep' call was interrupted
- logger.debug("IntegrityMonitor threw exception.", e);
- Thread.currentThread().interrupt();
- continue;
- }
-
- try {
- logger.debug("FPManager calling fpMonitorCycle()");
- // check forward progress timer
- IntegrityMonitor.this.fpMonitorCycle();
-
- logger.debug("FPManager calling checkTestTransaction()");
- // check test transaction timer
- IntegrityMonitor.this.checkTestTransaction();
- logger.debug("FPManager calling checkWriteFpc()");
- // check write Fpc timer
- IntegrityMonitor.this.checkWriteFpc();
+ try {
+ getLatch();
+ decrementLatch();
- logger.debug("FPManager calling checkDependentHealth()");
- // check dependency health
- IntegrityMonitor.this.checkDependentHealth();
+ while (!stopper.await(cycleIntervalMillis, TimeUnit.MILLISECONDS)) {
+ getLatch();
+ IntegrityMonitor.this.runOnce();
+ decrementLatch();
+ }
- logger.debug("FPManager calling refreshStateAudit()");
- // check if it is time to run the refreshStateAudit
- IntegrityMonitor.this.refreshStateAudit();
+ } catch (InterruptedException e) {
+ logger.debug("IntegrityMonitor threw exception.", e);
+ Thread.currentThread().interrupt();
+ }
+ }
- logger.debug("FPManager calling stateAudit()");
- // check if it is time to run the stateAudit
- IntegrityMonitor.this.stateAudit();
+ public void stopAndExit() {
+ stopper.countDown();
+ this.interrupt();
+ }
- } catch (Exception e) {
- logger.error(
- "Ignore FPManager thread processing timer(s) exception: ",
- e);
- }
+ /**
+ * Gets the next latch from the queue.
+ *
+ * @throws InterruptedException
+ *
+ */
+ private void getLatch() throws InterruptedException {
+ if (queue != null) {
+ progressLatch = queue.take();
}
}
- public void stopAndExit() {
- exit = true;
- // Referring to the FPManager instance
- FPManager.this.interrupt();
+ /**
+ * Decrements the current latch.
+ */
+ private void decrementLatch() {
+ if (progressLatch != null) {
+ progressLatch.countDown();
+ }
}
}
+ private void runOnce() {
+ try {
+ logger.debug("FPManager calling fpMonitorCycle()");
+ // check forward progress timer
+ fpMonitorCycle();
+
+ logger.debug("FPManager calling checkTestTransaction()");
+ // check test transaction timer
+ checkTestTransaction();
+
+ logger.debug("FPManager calling checkWriteFpc()");
+ // check write Fpc timer
+ checkWriteFpc();
+
+ logger.debug("FPManager calling checkDependentHealth()");
+ // check dependency health
+ checkDependentHealth();
+
+ logger.debug("FPManager calling refreshStateAudit()");
+ // check if it is time to run the refreshStateAudit
+ refreshStateAudit();
+
+ logger.debug("FPManager calling stateAudit()");
+ // check if it is time to run the stateAudit
+ stateAudit();
+
+ } catch (Exception e) {
+ logger.error("Ignore FPManager thread processing timer(s) exception: ", e);
+ }
+ }
+
public void allSeemsWell(@NotNull String key, @NotNull Boolean asw, @NotNull String msg)
throws AllSeemsWellException {
logger.debug("allSeemsWell entry: key = {}, asw = {}, msg = {}", key, asw, msg);
- if(key == null || key.isEmpty()){
+ if (key == null || key.isEmpty()) {
logger.error("allSeemsWell: 'key' has no visible content");
throw new IllegalArgumentException("allSeemsWell: 'key' has no visible content");
}
- if(asw == null){
+ if (asw == null) {
logger.error("allSeemsWell: 'asw' is null");
throw new IllegalArgumentException("allSeemsWell: 'asw' is null");
}
- if(msg == null || msg.isEmpty()){
+ if (msg == null || msg.isEmpty()) {
logger.error("allSeemsWell: 'msg' has no visible content");
throw new IllegalArgumentException("allSeemsWell: 'msg' has no visible content");
}
-
- if(allSeemsWellMap == null){
+
+ if (allSeemsWellMap == null) {
allSeemsWellMap = new HashMap<>();
}
-
- if(allNotWellMap == null){
+
+ if (allNotWellMap == null) {
allNotWellMap = new HashMap<>();
}
- if(asw){
+ if (asw) {
logger.info("allSeemsWell: ALL SEEMS WELL: key = {}, msg = {}", key, msg);
- try{
+ try {
allSeemsWellMap.put(key, msg);
- }catch(Exception e){
- String exceptMsg ="allSeemsWell: encountered an exception with allSeemsWellMap.put("
- + key + "," + msg + ")";
+ } catch (Exception e) {
+ String exceptMsg = "allSeemsWell: encountered an exception with allSeemsWellMap.put(" + key + "," + msg
+ + ")";
logger.error(exceptMsg);
throw new AllSeemsWellException(exceptMsg, e);
}
- try{
+ try {
allNotWellMap.remove(key);
- }catch(Exception e){
- String exceptMsg ="allSeemsWell: encountered an exception with allNotWellMap.delete("
- + key + ")";
+ } catch (Exception e) {
+ String exceptMsg = "allSeemsWell: encountered an exception with allNotWellMap.delete(" + key + ")";
logger.error(exceptMsg);
throw new AllSeemsWellException(exceptMsg, e);
}
- }else{
+ } else {
logger.error("allSeemsWell: ALL NOT WELL: key = {}, msg = {}", key, msg);
- try{
+ try {
allSeemsWellMap.remove(key);
- }catch(Exception e){
- String exceptMsg ="allSeemsWell: encountered an exception with allSeemsWellMap.remove("
- + key + ")";
+ } catch (Exception e) {
+ String exceptMsg = "allSeemsWell: encountered an exception with allSeemsWellMap.remove(" + key + ")";
logger.error(exceptMsg);
throw new AllSeemsWellException(exceptMsg, e);
}
- try{
+ try {
allNotWellMap.put(key, msg);
- }catch(Exception e){
- String exceptMsg ="allSeemsWell: encountered an exception with allNotWellMap.put("
- + key + msg + ")";
+ } catch (Exception e) {
+ String exceptMsg = "allSeemsWell: encountered an exception with allNotWellMap.put(" + key + msg + ")";
logger.error(exceptMsg);
throw new AllSeemsWellException(exceptMsg, e);
}
}
- if(logger.isDebugEnabled()){
- for(Entry<String, String> entry: allSeemsWellMap.entrySet()){
- logger.debug("allSeemsWellMap: key = {} msg = {}", entry.getKey(), entry.getValue());
+ if (logger.isDebugEnabled()) {
+ for (Entry<String, String> entry : allSeemsWellMap.entrySet()) {
+ logger.debug("allSeemsWellMap: key = {} msg = {}", entry.getKey(), entry.getValue());
}
- for(Entry<String, String> entry: allNotWellMap.entrySet()){
- logger.debug("allNotWellMap: key = {} msg = {}", entry.getKey(), entry.getValue());
+ for (Entry<String, String> entry : allNotWellMap.entrySet()) {
+ logger.debug("allNotWellMap: key = {} msg = {}", entry.getKey(), entry.getValue());
}
logger.debug("allSeemsWell exit");
}
}
- public Map<String, String> getAllSeemsWellMap(){
+ /**
+ * Converts the given value to milliseconds using the current
+ * {@link #propertyUnits}.
+ *
+ * @param value
+ * value to be converted, or -1
+ * @return the value, in milliseconds, or -1
+ */
+ private static long toMillis(long value) {
+ return (value < 0 ? -1 : propertyUnits.toMillis(value));
+ }
+
+ public Map<String, String> getAllSeemsWellMap() {
return allSeemsWellMap;
}
- public Map<String, String> getAllNotWellMap(){
+ public Map<String, String> getAllNotWellMap() {
return allNotWellMap;
}
+
+ /*
+ * The remaining methods are used by JUnit tests.
+ */
+
+ public static boolean isUnitTesting() {
+ return isUnitTesting;
+ }
+
+ public static void setUnitTesting(boolean isUnitTesting) {
+ IntegrityMonitor.isUnitTesting = isUnitTesting;
+ }
+
+ protected static TimeUnit getPropertyUnits() {
+ return propertyUnits;
+ }
+
+ protected static void setPropertyUnits(TimeUnit propertyUnits) {
+ IntegrityMonitor.propertyUnits = propertyUnits;
+ }
+
+ protected static long getCycleIntervalMillis() {
+ return cycleIntervalMillis;
+ }
+
+ protected static void setCycleIntervalMillis(long cycleIntervalMillis) {
+ IntegrityMonitor.cycleIntervalMillis = cycleIntervalMillis;
+ }
+
+ protected static String getPersistenceUnit() {
+ return persistenceUnit;
+ }
+
+ protected static void setPersistenceUnit(String persistenceUnit) {
+ IntegrityMonitor.persistenceUnit = persistenceUnit;
+ }
}
diff --git a/integrity-monitor/src/main/java/org/onap/policy/common/im/StateManagement.java b/integrity-monitor/src/main/java/org/onap/policy/common/im/StateManagement.java
index 05da2a87..ccc12d48 100644
--- a/integrity-monitor/src/main/java/org/onap/policy/common/im/StateManagement.java
+++ b/integrity-monitor/src/main/java/org/onap/policy/common/im/StateManagement.java
@@ -20,19 +20,19 @@
package org.onap.policy.common.im;
-import java.util.*;
+import java.util.Date;
+import java.util.List;
+import java.util.Observable;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
-import javax.persistence.EntityTransaction;
import javax.persistence.FlushModeType;
import javax.persistence.LockModeType;
import javax.persistence.Query;
-
import org.onap.policy.common.im.jpa.StateManagementEntity;
-import org.onap.policy.common.im.StateElement;
-import org.onap.policy.common.im.StandbyStatusException;
+import org.onap.policy.common.utils.jpa.EntityMgrCloser;
+import org.onap.policy.common.utils.jpa.EntityTransCloser;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
@@ -104,59 +104,44 @@ public class StateManagement extends Observable {
if(logger.isDebugEnabled()){
logger.debug("StateManagement: constructor, resourceName: {}", resourceName);
}
+
EntityManager em = emf.createEntityManager();
- EntityTransaction et = em.getTransaction();
-
- if(!et.isActive()){
- et.begin();
- }
- this.resourceName = resourceName;
- if(logger.isDebugEnabled()){
- logger.debug("resourceName = {}", this.resourceName);
- }
-
-
- try {
- //Create a StateManagementEntity object
- if(logger.isDebugEnabled()){
- logger.debug("findStateManagementEntity for {}", this.resourceName);
- }
- StateManagementEntity sm = findStateManagementEntity(em, this.resourceName);
-
- //persist the administrative state
- if (sm != null) {
- if(logger.isDebugEnabled()){
- logger.debug("Persist adminstrative state, resourceName = {}", this.resourceName);
- }
- em.persist(sm);
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.commit();
- }
- }
- } else {
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.commit();
- }
- }
- }
-
- //Load the StateTransition hash table
- st = new StateTransition();
-
- if(logger.isDebugEnabled()){
- logger.debug("StateManagement: constructor end, resourceName: {}", this.resourceName);
- }
- } catch(Exception ex) {
- logger.error("StateManagement: constructor caught unexpected exception: ", ex);
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.rollback();
- }
- }
- throw new StateManagementException("StateManagement: Exception: " + ex.toString(), ex);
- }
+ try(EntityMgrCloser emc = new EntityMgrCloser(em);
+ MyTransaction et = new MyTransaction(em)) {
+
+ this.resourceName = resourceName;
+ if(logger.isDebugEnabled()){
+ logger.debug("resourceName = {}", this.resourceName);
+ }
+
+
+ try {
+ //Create a StateManagementEntity object
+ if(logger.isDebugEnabled()){
+ logger.debug("findStateManagementEntity for {}", this.resourceName);
+ }
+ StateManagementEntity sm = findStateManagementEntity(em, this.resourceName);
+
+ //persist the administrative state
+ if (sm != null) {
+ if(logger.isDebugEnabled()){
+ logger.debug("Persist adminstrative state, resourceName = {}", this.resourceName);
+ }
+ em.persist(sm);
+ }
+ et.commit();
+
+ //Load the StateTransition hash table
+ st = new StateTransition();
+
+ if(logger.isDebugEnabled()){
+ logger.debug("StateManagement: constructor end, resourceName: {}", this.resourceName);
+ }
+ } catch(Exception ex) {
+ logger.error("StateManagement: constructor caught unexpected exception: ", ex);
+ throw new StateManagementException("StateManagement: Exception: " + ex.toString(), ex);
+ }
+ }
}
/**
@@ -174,14 +159,11 @@ public class StateManagement extends Observable {
if(logger.isDebugEnabled()){
logger.debug("StateManagement: initializeState() operation started, resourceName = {}", this.resourceName);
}
- EntityManager em = emf.createEntityManager();
- EntityTransaction et = em.getTransaction();
-
- if(!et.isActive()){
- et.begin();
- }
+ EntityManager em = emf.createEntityManager();
- try {
+ try(EntityMgrCloser emc = new EntityMgrCloser(em);
+ MyTransaction et = new MyTransaction(em)) {
+
if(logger.isDebugEnabled()){
logger.debug("findStateManagementEntity for {}", this.resourceName);
}
@@ -193,11 +175,7 @@ public class StateManagement extends Observable {
sm.setStandbyStatus(StateManagement.NULL_VALUE);
em.persist(sm);
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.commit();
- }
- }
+ et.commit();
setChanged();
notifyObservers(ADMIN_STATE);
@@ -206,11 +184,6 @@ public class StateManagement extends Observable {
}
} catch(Exception ex) {
logger.error("StateManagement.initializeState() caught unexpected exception: ", ex);
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.rollback();
- }
- }
throw new StateManagementException("StateManagement.initializeState() Exception: " + ex);
}
}
@@ -230,13 +203,10 @@ public class StateManagement extends Observable {
logger.debug("StateManagement: lock() operation started, resourceName = {}", this.resourceName);
}
EntityManager em = emf.createEntityManager();
- EntityTransaction et = em.getTransaction();
-
- if(!et.isActive()){
- et.begin();
- }
- try {
+ try(EntityMgrCloser emc = new EntityMgrCloser(em);
+ MyTransaction et = new MyTransaction(em)) {
+
if(logger.isDebugEnabled()){
logger.debug("findStateManagementEntity for {}", this.resourceName);
}
@@ -251,11 +221,7 @@ public class StateManagement extends Observable {
sm.setStandbyStatus(stateElement.getEndingStandbyStatus());
em.persist(sm);
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.commit();
- }
- }
+ et.commit();
setChanged();
notifyObservers(ADMIN_STATE);
@@ -264,11 +230,6 @@ public class StateManagement extends Observable {
}
} catch(Exception ex) {
logger.error("StateManagement.lock() caught unexpected exception: ", ex);
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.rollback();
- }
- }
throw new StateManagementException("StateManagement.lock() Exception: " + ex.toString());
}
}
@@ -288,13 +249,10 @@ public class StateManagement extends Observable {
logger.debug("StateManagement: unlock() operation started, resourceName = {}", this.resourceName);
}
EntityManager em = emf.createEntityManager();
- EntityTransaction et = em.getTransaction();
- if(!et.isActive()){
- et.begin();
- }
-
- try {
+ try(EntityMgrCloser emc = new EntityMgrCloser(em);
+ MyTransaction et = new MyTransaction(em)) {
+
if(logger.isDebugEnabled()){
logger.debug("findStateManagementEntity for {}", this.resourceName);
}
@@ -308,11 +266,7 @@ public class StateManagement extends Observable {
sm.setStandbyStatus(stateElement.getEndingStandbyStatus());
em.persist(sm);
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.commit();
- }
- }
+ et.commit();
setChanged();
notifyObservers(ADMIN_STATE);
@@ -321,11 +275,6 @@ public class StateManagement extends Observable {
}
} catch(Exception ex) {
logger.error("StateManagement.unlock() caught unexpected exception: ", ex);
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.rollback();
- }
- }
throw new StateManagementException("StateManagement.unlock() Exception: " + ex);
}
}
@@ -346,13 +295,10 @@ public class StateManagement extends Observable {
logger.debug("StateManagement: enableNotFailed() operation started, resourceName = {}", this.resourceName);
}
EntityManager em = emf.createEntityManager();
- EntityTransaction et = em.getTransaction();
-
- if(!et.isActive()){
- et.begin();
- }
- try {
+ try(EntityMgrCloser emc = new EntityMgrCloser(em);
+ MyTransaction et = new MyTransaction(em)) {
+
if(logger.isDebugEnabled()){
logger.debug("findStateManagementEntity for {}", this.resourceName);
}
@@ -366,11 +312,8 @@ public class StateManagement extends Observable {
sm.setStandbyStatus(stateElement.getEndingStandbyStatus());
em.persist(sm);
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.commit();
- }
- }
+ et.commit();
+
setChanged();
notifyObservers(OPERATION_STATE);
@@ -379,11 +322,6 @@ public class StateManagement extends Observable {
}
} catch(Exception ex) {
logger.error("StateManagement.enableNotFailed() caught unexpected exception: ", ex);
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.rollback();
- }
- }
throw new StateManagementException("StateManagement.enableNotFailed() Exception: " + ex);
}
}
@@ -403,12 +341,10 @@ public class StateManagement extends Observable {
logger.debug("StateManagement: disableFailed() operation started, resourceName = {}", this.resourceName);
}
EntityManager em = emf.createEntityManager();
- EntityTransaction et = em.getTransaction();
- if(!et.isActive()){
- et.begin();
- }
- try {
+ try(EntityMgrCloser emc = new EntityMgrCloser(em);
+ MyTransaction et = new MyTransaction(em)) {
+
if(logger.isDebugEnabled()){
logger.debug("findStateManagementEntity for {}", this.resourceName);
}
@@ -422,11 +358,7 @@ public class StateManagement extends Observable {
sm.setStandbyStatus(stateElement.getEndingStandbyStatus());
em.persist(sm);
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.commit();
- }
- }
+ et.commit();
setChanged();
notifyObservers(OPERATION_STATE);
@@ -435,11 +367,6 @@ public class StateManagement extends Observable {
}
} catch(Exception ex) {
logger.error("StateManagement.disableFailed() caught unexpected exception: ", ex);
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.rollback();
- }
- }
throw new StateManagementException("StateManagement.disableFailed() Exception: " + ex);
}
}
@@ -465,12 +392,10 @@ public class StateManagement extends Observable {
otherResourceName);
}
EntityManager em = emf.createEntityManager();
- EntityTransaction et = em.getTransaction();
- if(!et.isActive()){
- et.begin();
- }
- try {
+ try(EntityMgrCloser emc = new EntityMgrCloser(em);
+ MyTransaction et = new MyTransaction(em)) {
+
if(logger.isDebugEnabled()){
logger.debug("findStateManagementEntity for " + otherResourceName);
}
@@ -484,11 +409,7 @@ public class StateManagement extends Observable {
sm.setStandbyStatus(stateElement.getEndingStandbyStatus());
em.persist(sm);
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.commit();
- }
- }
+ et.commit();
setChanged();
notifyObservers(OPERATION_STATE);
@@ -498,11 +419,6 @@ public class StateManagement extends Observable {
}
} catch(Exception ex) {
logger.error("StateManagement.disableFailed(otherResourceName) caught unexpected exception: ", ex);
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.rollback();
- }
- }
throw new StateManagementException("StateManagement.disableFailed(otherResourceName) Exception: " + ex);
}
}
@@ -522,13 +438,10 @@ public class StateManagement extends Observable {
logger.debug("StateManagement: disableDependency() operation started, resourceName = {}", this.resourceName);
}
EntityManager em = emf.createEntityManager();
- EntityTransaction et = em.getTransaction();
- if(!et.isActive()){
- et.begin();
- }
-
- try {
+ try(EntityMgrCloser emc = new EntityMgrCloser(em);
+ MyTransaction et = new MyTransaction(em)) {
+
if(logger.isDebugEnabled()){
logger.debug("findStateManagementEntity for {}", this.resourceName);
}
@@ -542,11 +455,7 @@ public class StateManagement extends Observable {
sm.setStandbyStatus(stateElement.getEndingStandbyStatus());
em.persist(sm);
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.commit();
- }
- }
+ et.commit();
setChanged();
notifyObservers(OPERATION_STATE);
@@ -555,11 +464,6 @@ public class StateManagement extends Observable {
}
} catch(Exception ex) {
logger.error("StateManagement.disableDependency() caught unexpected exception: ", ex);
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.rollback();
- }
- }
throw new StateManagementException("StateManagement.disableDependency() Exception: " + ex);
}
}
@@ -580,13 +484,10 @@ public class StateManagement extends Observable {
logger.debug("StateManagement: enableNoDependency() operation started, resourceName = {}", this.resourceName);
}
EntityManager em = emf.createEntityManager();
- EntityTransaction et = em.getTransaction();
-
- if(!et.isActive()){
- et.begin();
- }
- try {
+ try(EntityMgrCloser emc = new EntityMgrCloser(em);
+ MyTransaction et = new MyTransaction(em)) {
+
if(logger.isDebugEnabled()){
logger.debug("findStateManagementEntity for {}", this.resourceName);
}
@@ -600,11 +501,7 @@ public class StateManagement extends Observable {
sm.setStandbyStatus(stateElement.getEndingStandbyStatus());
em.persist(sm);
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.commit();
- }
- }
+ et.commit();
setChanged();
notifyObservers(OPERATION_STATE);
@@ -613,11 +510,6 @@ public class StateManagement extends Observable {
}
} catch(Exception ex) {
logger.error("StateManagement.enableNoDependency() caught unexpected exception: ", ex);
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.rollback();
- }
- }
throw new StateManagementException("StateManagement.enableNoDependency() Exception: " + ex);
}
}
@@ -637,16 +529,14 @@ public class StateManagement extends Observable {
if(logger.isDebugEnabled()){
logger.debug("StateManagement: promote() operation started, resourceName = {}", this.resourceName);
}
- EntityManager em = emf.createEntityManager();
- EntityTransaction et = em.getTransaction();
-
- if(!et.isActive()){
- et.begin();
- }
StateManagementEntity sm;
+
+ EntityManager em = emf.createEntityManager();
- try{
+ try(EntityMgrCloser emc = new EntityMgrCloser(em);
+ MyTransaction et = new MyTransaction(em)) {
+
if(logger.isDebugEnabled()){
logger.debug("findStateManagementEntity for {}", this.resourceName);
}
@@ -660,20 +550,11 @@ public class StateManagement extends Observable {
sm.setStandbyStatus(stateElement.getEndingStandbyStatus());
em.persist(sm);
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.commit();
- }
- }
+ et.commit();
setChanged();
notifyObservers(STANDBY_STATUS);
}catch(Exception ex){
logger.error("StateManagement.promote() caught unexpected exception: ", ex);
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.rollback();
- }
- }
throw new StateManagementException("StateManagement.promote() Exception: " + ex);
}
@@ -701,13 +582,10 @@ public class StateManagement extends Observable {
logger.debug("StateManagement: demote() operation started, resourceName = {}", this.resourceName);
}
EntityManager em = emf.createEntityManager();
- EntityTransaction et = em.getTransaction();
- if(!et.isActive()){
- et.begin();
- }
-
- try {
+ try(EntityMgrCloser emc = new EntityMgrCloser(em);
+ MyTransaction et = new MyTransaction(em)) {
+
if(logger.isDebugEnabled()){
logger.debug("findStateManagementEntity for {}", this.resourceName);
}
@@ -721,11 +599,7 @@ public class StateManagement extends Observable {
sm.setStandbyStatus(stateElement.getEndingStandbyStatus());
em.persist(sm);
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.commit();
- }
- }
+ et.commit();
setChanged();
notifyObservers(STANDBY_STATUS);
@@ -734,11 +608,6 @@ public class StateManagement extends Observable {
}
} catch(Exception ex) {
logger.error("StateManagement.demote() caught unexpected exception: ", ex);
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.rollback();
- }
- }
throw new StateManagementException("StateManagement.demote() Exception: " + ex);
}
}
@@ -764,13 +633,10 @@ public class StateManagement extends Observable {
logger.debug("\nStateManagement: SYNCLOCK demote(otherResourceName) operation for resourceName = {}\n", otherResourceName);
}
EntityManager em = emf.createEntityManager();
- EntityTransaction et = em.getTransaction();
-
- if(!et.isActive()){
- et.begin();
- }
- try {
+ try(EntityMgrCloser emc = new EntityMgrCloser(em);
+ MyTransaction et = new MyTransaction(em)) {
+
if(logger.isDebugEnabled()){
logger.debug("StateManagement: SYNCLOCK demote(otherResourceName) findStateManagementEntity for {}", otherResourceName);
}
@@ -784,11 +650,7 @@ public class StateManagement extends Observable {
sm.setStandbyStatus(stateElement.getEndingStandbyStatus());
em.persist(sm);
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.commit();
- }
- }
+ et.commit();
//We don't notify observers because this is assumed to be a remote resource
if(logger.isDebugEnabled()){
@@ -796,11 +658,6 @@ public class StateManagement extends Observable {
}
} catch(Exception ex) {
logger.error("StateManagement.demote(otherResourceName) caught unexpected exception: ", ex);
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.rollback();
- }
- }
throw new StateManagementException("StateManagement.demote(otherResourceName) Exception: " + ex);
}
}
@@ -814,8 +671,9 @@ public String getAdminState()
if(logger.isDebugEnabled()){
logger.debug("StateManagement(6/1/16): getAdminState for resourceName {}", this.resourceName);
}
- try {
- EntityManager em = emf.createEntityManager();
+
+ EntityManager em = emf.createEntityManager();
+ try(EntityMgrCloser emc = new EntityMgrCloser(em)) {
Query query = em.createQuery("Select p from StateManagementEntity p where p.resourceName=:resource");
query.setParameter("resource", this.resourceName);
@@ -848,8 +706,9 @@ public String getOpState()
if(logger.isDebugEnabled()){
logger.debug("StateManagement(6/1/16): getOpState for resourceName {}", this.resourceName);
}
- try {
- EntityManager em = emf.createEntityManager();
+
+ EntityManager em = emf.createEntityManager();
+ try(EntityMgrCloser emc = new EntityMgrCloser(em)) {
Query query = em.createQuery("Select p from StateManagementEntity p where p.resourceName=:resource");
query.setParameter("resource", this.resourceName);
@@ -882,8 +741,9 @@ public String getOpState()
if(logger.isDebugEnabled()){
logger.debug("StateManagement(6/1/16): getAvailStatus for resourceName {}", this.resourceName);
}
- try {
- EntityManager em = emf.createEntityManager();
+
+ EntityManager em = emf.createEntityManager();
+ try(EntityMgrCloser emc = new EntityMgrCloser(em)) {
Query query = em.createQuery("Select p from StateManagementEntity p where p.resourceName=:resource");
query.setParameter("resource", this.resourceName);
@@ -916,8 +776,9 @@ public String getOpState()
if(logger.isDebugEnabled()){
logger.debug("StateManagement(6/1/16): getStandbyStatus for resourceName {}", this.resourceName);
}
- try {
- EntityManager em = emf.createEntityManager();
+
+ EntityManager em = emf.createEntityManager();
+ try(EntityMgrCloser emc = new EntityMgrCloser(em)) {
Query query = em.createQuery("Select p from StateManagementEntity p where p.resourceName=:resource");
query.setParameter("resource", this.resourceName);
@@ -999,11 +860,9 @@ public String getOpState()
// The transaction is required for the LockModeType
EntityManager em = emf.createEntityManager();
- EntityTransaction et = em.getTransaction();
- if(!et.isActive()){
- et.begin();
- }
- try {
+
+ try(EntityMgrCloser emc = new EntityMgrCloser(em);
+ MyTransaction et = new MyTransaction(em)) {
Query stateManagementListQuery = em
.createQuery("SELECT p FROM StateManagementEntity p WHERE p.resourceName=:resource");
@@ -1023,18 +882,10 @@ public String getOpState()
} else {
logger.error("getStandbyStatus: resourceName ={} not found in statemanagemententity table", otherResourceName);
}
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.commit();
- }
- }
+
+ et.commit();
} catch (Exception e) {
logger.error("getStandbyStatus: Caught Exception attempting to get statemanagemententity record, message='{}'", e.getMessage(), e);
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.rollback();
- }
- }
}
if (logger.isDebugEnabled()) {
logger.debug("getStandbyStatus: Returning standbyStatus={}", tempStandbyStatus);
@@ -1056,12 +907,9 @@ public String getOpState()
* Start transaction
*/
EntityManager em = emf.createEntityManager();
- EntityTransaction et = em.getTransaction();
- if(!et.isActive()){
- et.begin();
- }
- try{
+ try(EntityMgrCloser emc = new EntityMgrCloser(em);
+ MyTransaction et = new MyTransaction(em)) {
Query stateManagementEntityListQuery = em
.createQuery("SELECT p FROM StateManagementEntity p");
@SuppressWarnings("unchecked")
@@ -1078,22 +926,43 @@ public String getOpState()
}
em.remove(stateManagementEntity);
}
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.commit();
- }
- }
+
+ et.commit();
}catch(Exception ex){
logger.error("StateManagement.deleteAllStateManagementEntities() caught Exception: ", ex);
- synchronized(FLUSHLOCK){
- if(et.isActive()){
- et.rollback();
- }
- }
}
if(logger.isDebugEnabled()){
logger.debug("deleteAllStateManagementEntities: Exiting");
}
}
+
+ private static class MyTransaction extends EntityTransCloser {
+
+ /**
+ * @param em
+ */
+ public MyTransaction(EntityManager em) {
+ super(em.getTransaction());
+ }
+
+ @Override
+ public void commit() {
+ synchronized(FLUSHLOCK){
+ if(getTransation().isActive()){
+ super.commit();
+ }
+ }
+ }
+
+ @Override
+ public void rollback() {
+ synchronized(FLUSHLOCK){
+ if(getTransation().isActive()){
+ super.rollback();
+ }
+ }
+ }
+
+ }
}
diff --git a/integrity-monitor/src/main/resources/META-INF/persistence.xml b/integrity-monitor/src/main/resources/META-INF/persistence.xml
index 7fbec098..f5089b12 100644
--- a/integrity-monitor/src/main/resources/META-INF/persistence.xml
+++ b/integrity-monitor/src/main/resources/META-INF/persistence.xml
@@ -30,9 +30,6 @@
<shared-cache-mode>NONE</shared-cache-mode>
<properties>
<property name="javax.persistence.schema-generation.database.action" value="drop-and-create"/>
- <property name="javax.persistence.schema-generation.scripts.action" value="drop-and-create"/>
- <property name="javax.persistence.schema-generation.scripts.create-target" value="./sql/generatedCreateNcomp.ddl"/>
- <property name="javax.persistence.schema-generation.scripts.drop-target" value="./sql/generatedDropNcomp.ddl"/>
</properties>
</persistence-unit>
diff --git a/integrity-monitor/src/test/java/org/onap/policy/common/im/AllSeemsWellTest.java b/integrity-monitor/src/test/java/org/onap/policy/common/im/AllSeemsWellTest.java
new file mode 100644
index 00000000..967ca739
--- /dev/null
+++ b/integrity-monitor/src/test/java/org/onap/policy/common/im/AllSeemsWellTest.java
@@ -0,0 +1,173 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Integrity Monitor
+ * ================================================================================
+ * Copyright (C) 2017-2018 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.common.im;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Map;
+import java.util.Properties;
+
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class AllSeemsWellTest extends IntegrityMonitorTestBase {
+ private static Logger logger = LoggerFactory.getLogger(AllSeemsWellTest.class);
+
+ private static final long STATE_CYCLE_MS = 3 * CYCLE_INTERVAL_MS;
+
+ private static Properties myProp;
+ private static String resourceName;
+
+ @BeforeClass
+ public static void setUpClass() throws Exception {
+ IntegrityMonitorTestBase.setUpBeforeClass(DEFAULT_DB_URL_PREFIX + AllSeemsWellTest.class.getSimpleName());
+
+ resourceName = IntegrityMonitorTestBase.siteName + "." + IntegrityMonitorTestBase.nodeType;
+ }
+
+ @AfterClass
+ public static void tearDownClass() throws Exception {
+ IntegrityMonitorTestBase.tearDownAfterClass();
+ }
+
+ @Before
+ public void setUp() {
+ super.setUpTest();
+
+ myProp = makeProperties();
+
+ }
+
+ @After
+ public void tearDown() {
+ super.tearDownTest();
+ }
+
+ // Ignore
+ @Test
+ public void testAllSeemsWell() throws Exception {
+ logger.debug("\nIntegrityMonitorTest: Entering testAllSeemsWell\n\n");
+
+ // parameters are passed via a properties file
+ myProp.put(IntegrityMonitorProperties.DEPENDENCY_GROUPS, "");
+ myProp.put(IntegrityMonitorProperties.TEST_VIA_JMX, "false");
+ myProp.put(IntegrityMonitorProperties.REFRESH_STATE_AUDIT_INTERVAL_MS, "-1");
+ myProp.put(IntegrityMonitorProperties.STATE_AUDIT_INTERVAL_MS, "-1");
+ myProp.put(IntegrityMonitorProperties.FAILED_COUNTER_THRESHOLD, "1");
+ myProp.put(IntegrityMonitorProperties.FP_MONITOR_INTERVAL, "5");
+ myProp.put(IntegrityMonitorProperties.TEST_TRANS_INTERVAL, "1");
+ myProp.put(IntegrityMonitorProperties.WRITE_FPC_INTERVAL, "1");
+
+ IntegrityMonitor.updateProperties(myProp);
+ /*
+ * The monitorInterval is 5 and the failedCounterThreshold is 1 A
+ * forward progress will be stale after 5 seconds.
+ */
+
+ IntegrityMonitor im = IntegrityMonitor.getInstance(resourceName, myProp);
+
+ StateManagement sm = im.getStateManager();
+
+ // Give it time to set the states in the DB
+ Thread.sleep(STATE_CYCLE_MS);
+
+ // Check the state
+ logger.debug(
+ "\n\ntestAllSeemsWell starting im state \nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
+ sm.getAdminState(), sm.getOpState(), sm.getAvailStatus(), sm.getStandbyStatus());
+
+ assertEquals(StateManagement.ENABLED, sm.getOpState());
+
+ // Indicate a failure
+ im.allSeemsWell(this.getClass().getName(), IntegrityMonitorProperties.ALLNOTWELL,
+ "'AllSeemsWellTest - ALLNOTWELL'");
+
+ // Wait for the state to change due to ALLNOTWELL
+ Thread.sleep(STATE_CYCLE_MS);
+ // Check the state
+ logger.debug(
+ "\n\ntestAllSeemsWell after ALLNOTWELL: im state \nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
+ sm.getAdminState(), sm.getOpState(), sm.getAvailStatus(), sm.getStandbyStatus());
+
+ // assertEquals(StateManagement.DISABLED, sm.getOpState());
+
+ Map<String, String> allNotWellMap = im.getAllNotWellMap();
+ for (String key : allNotWellMap.keySet()) {
+ logger.debug("AllSeemsWellTest: allNotWellMap: key = {} msg = {}", key, allNotWellMap.get(key));
+ }
+ // assertEquals(1, allNotWellMap.size());
+
+ Map<String, String> allSeemsWellMap = im.getAllSeemsWellMap();
+ // assertTrue(allSeemsWellMap.isEmpty());
+
+ // Return to normal
+ im.allSeemsWell(this.getClass().getName(), IntegrityMonitorProperties.ALLSEEMSWELL,
+ "'AllSeemsWellTest - ALLSEEMSWELL'");
+
+ // Wait for the state to change due to ALLNOTWELL
+ Thread.sleep(STATE_CYCLE_MS);
+ // Check the state
+ logger.debug(
+ "\n\ntestAllSeemsWell after ALLSEEMSWELL: im state \nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
+ sm.getAdminState(), sm.getOpState(), sm.getAvailStatus(), sm.getStandbyStatus());
+
+ // assertEquals(StateManagement.ENABLED, sm.getOpState());
+
+ allNotWellMap = im.getAllNotWellMap();
+ assertTrue(allNotWellMap.isEmpty());
+
+ allSeemsWellMap = im.getAllSeemsWellMap();
+ assertEquals(1, allSeemsWellMap.size());
+ for (String key : allSeemsWellMap.keySet()) {
+ logger.debug("AllSeemsWellTest: allSeemsWellMap: key = {} msg = {}", key, allSeemsWellMap.get(key));
+ }
+
+ // Check for null parameters
+ assertException(im, imx -> {
+ imx.allSeemsWell(null, IntegrityMonitorProperties.ALLSEEMSWELL, "'AllSeemsWellTest - ALLSEEMSWELL'");
+ });
+
+ assertException(im, imx -> {
+ im.allSeemsWell("", IntegrityMonitorProperties.ALLSEEMSWELL, "'AllSeemsWellTest - ALLSEEMSWELL'");
+ });
+
+ assertException(im, imx -> {
+ im.allSeemsWell(this.getClass().getName(), null, "'AllSeemsWellTest - ALLSEEMSWELL'");
+ });
+
+ assertException(im, imx -> {
+ im.allSeemsWell(this.getClass().getName(), IntegrityMonitorProperties.ALLSEEMSWELL, null);
+ });
+
+ assertException(im, imx -> {
+ im.allSeemsWell(this.getClass().getName(), IntegrityMonitorProperties.ALLSEEMSWELL, "");
+ });
+
+ logger.debug("\n\ntestAllSeemsWell: Exit\n\n");
+ }
+
+}
diff --git a/integrity-monitor/src/test/java/org/onap/policy/common/im/test/ExceptionsTest.java b/integrity-monitor/src/test/java/org/onap/policy/common/im/ExceptionsTest.java
index a5c5c910..5066f9d5 100644
--- a/integrity-monitor/src/test/java/org/onap/policy/common/im/test/ExceptionsTest.java
+++ b/integrity-monitor/src/test/java/org/onap/policy/common/im/ExceptionsTest.java
@@ -18,7 +18,7 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.policy.common.im.test;
+package org.onap.policy.common.im;
import static org.junit.Assert.assertEquals;
diff --git a/integrity-monitor/src/test/java/org/onap/policy/common/im/IntegrityMonitorTest.java b/integrity-monitor/src/test/java/org/onap/policy/common/im/IntegrityMonitorTest.java
new file mode 100644
index 00000000..3704b07d
--- /dev/null
+++ b/integrity-monitor/src/test/java/org/onap/policy/common/im/IntegrityMonitorTest.java
@@ -0,0 +1,907 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Integrity Monitor
+ * ================================================================================
+ * Copyright (C) 2017-2018 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.common.im;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Properties;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.LinkedBlockingQueue;
+
+import javax.persistence.EntityTransaction;
+import javax.persistence.Query;
+import javax.persistence.TemporalType;
+
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.onap.policy.common.im.jpa.ForwardProgressEntity;
+import org.onap.policy.common.im.jpa.ResourceRegistrationEntity;
+import org.onap.policy.common.im.jpa.StateManagementEntity;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/*
+ * All JUnits are designed to run in the local development environment
+ * where they have write privileges and can execute time-sensitive
+ * tasks.
+ */
+public class IntegrityMonitorTest extends IntegrityMonitorTestBase {
+ private static Logger logger = LoggerFactory.getLogger(IntegrityMonitorTest.class);
+
+ private static Properties myProp;
+ private static EntityTransaction et;
+ private static String resourceName;
+
+ private BlockingQueue<CountDownLatch> queue;
+
+ @BeforeClass
+ public static void setUpClass() throws Exception {
+ IntegrityMonitorTestBase.setUpBeforeClass(DEFAULT_DB_URL_PREFIX + IntegrityMonitorTest.class.getSimpleName());
+
+ resourceName = IntegrityMonitorTestBase.siteName + "." + IntegrityMonitorTestBase.nodeType;
+ }
+
+ @AfterClass
+ public static void tearDownClass() throws Exception {
+ IntegrityMonitorTestBase.tearDownAfterClass();
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ super.setUpTest();
+
+ myProp = makeProperties();
+ et = null;
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ if (et != null && et.isActive()) {
+ try {
+ et.rollback();
+
+ } catch (RuntimeException e) {
+ logger.error("cannot rollback transaction", e);
+ }
+ }
+
+ super.tearDownTest();
+ }
+
+ /*
+ * The following test verifies the following test cases: New Install New
+ * Install - Bad Dependency data Recovery from bad dependency data Lock Lock
+ * restart Unlock Unlock restart
+ */
+ @Test
+ public void testSanityJmx() throws Exception {
+ logger.debug("\nIntegrityMonitorTest: Entering testSanityJmx\n\n");
+
+ String dependent = "group1_logparser";
+
+ // parameters are passed via a properties file
+ myProp.put(IntegrityMonitorProperties.DEPENDENCY_GROUPS, dependent);
+ myProp.put(IntegrityMonitorProperties.TEST_VIA_JMX, "true");
+ // Disable the integrity monitor so it will not interfere
+ myProp.put(IntegrityMonitorProperties.FP_MONITOR_INTERVAL, "-1");
+ // Disable the refresh state audit
+ myProp.put(IntegrityMonitorProperties.REFRESH_STATE_AUDIT_INTERVAL_MS, "-1");
+ // Disable the state audit
+ myProp.put(IntegrityMonitorProperties.STATE_AUDIT_INTERVAL_MS, "-1");
+ // Disable the test transaction
+ myProp.put(IntegrityMonitorProperties.TEST_TRANS_INTERVAL, "-1");
+ // Disable the write FPC
+ myProp.put(IntegrityMonitorProperties.WRITE_FPC_INTERVAL, "-1");
+ // Speed up the check
+ myProp.put(IntegrityMonitorProperties.CHECK_DEPENDENCY_INTERVAL, "1");
+ // Fail dependencies after three seconds
+ myProp.put(IntegrityMonitorProperties.MAX_FPC_UPDATE_INTERVAL, "3");
+
+ IntegrityMonitor im = makeMonitor(resourceName, myProp);
+ logger.debug(
+ "\n\ntestSanityJmx starting im state \nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
+ im.getStateManager().getAdminState(), im.getStateManager().getOpState(),
+ im.getStateManager().getAvailStatus(), im.getStateManager().getStandbyStatus());
+ // add an entry to Resource registration table in the DB for the
+ // dependent resource
+
+ et = em.getTransaction();
+ et.begin();
+ Query rquery = em.createQuery("Select r from ResourceRegistrationEntity r where r.resourceName=:rn");
+ rquery.setParameter("rn", dependent);
+
+ @SuppressWarnings("rawtypes")
+ List rrList = rquery.getResultList();
+ ResourceRegistrationEntity rrx = null;
+ if (rrList.isEmpty()) {
+ // register resource by adding entry to table in DB
+ logger.debug("Adding resource {} to ResourceRegistration table", dependent);
+ rrx = new ResourceRegistrationEntity();
+ // set columns in entry
+ rrx.setResourceName(dependent);
+ rrx.setResourceUrl("service:jmx:somewhere:9999");
+ rrx.setNodeType("logparser");
+ rrx.setSite("siteA");
+ }
+ em.persist(rrx);
+ // flush to the DB
+ em.flush();
+
+ // commit transaction
+ et.commit();
+
+ // wait for the FPManager to check dependency health
+ waitStep();
+
+ assertException(im, imx -> {
+ imx.evaluateSanity();
+ });
+
+ // undo dependency groups and jmx test properties settings
+ myProp.put(IntegrityMonitorProperties.DEPENDENCY_GROUPS, "");
+ myProp.put(IntegrityMonitorProperties.TEST_VIA_JMX, "false");
+ IntegrityMonitor.updateProperties(myProp);
+
+ logger.debug("\ntestSantityJmx ending properties: {}", myProp);
+
+ // We know at this point that the IM is disable-dependency. We want to
+ // be
+ // sure it will recover from this condition since the properties were
+ // updated.
+
+ logger.debug(
+ "\n\ntestSanityJmx ending im state\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
+ im.getStateManager().getAdminState(), im.getStateManager().getOpState(),
+ im.getStateManager().getAvailStatus(), im.getStateManager().getStandbyStatus());
+
+ logger.debug("\ntestSanityJmx restarting the IntegrityMonitor");
+ // Create a new instance. It should recover from the disabled-dependency
+ // condition
+ im = makeMonitor(resourceName, myProp);
+
+ logger.debug(
+ "\n\ntestSanityJmx state after creating new im\n"
+ + "AdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
+ im.getStateManager().getAdminState(), im.getStateManager().getOpState(),
+ im.getStateManager().getAvailStatus(), im.getStateManager().getStandbyStatus());
+
+ // Verify the state
+ assertEquals(StateManagement.UNLOCKED, im.getStateManager().getAdminState());
+ assertEquals(StateManagement.ENABLED, im.getStateManager().getOpState());
+ assertEquals(StateManagement.NULL_VALUE, im.getStateManager().getAvailStatus());
+ assertEquals(StateManagement.NULL_VALUE, im.getStateManager().getStandbyStatus());
+
+ // Test state manager via the IntegrityMonitor
+ StateManagement sm = im.getStateManager();
+
+ // Verify lock state
+ sm.lock();
+ logger.debug("\n\nsm.lock()\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
+ sm.getAdminState(), sm.getOpState(), sm.getAvailStatus(), sm.getStandbyStatus());
+ assertEquals(StateManagement.LOCKED, sm.getAdminState());
+
+ // Verify lock persists across a restart
+ logger.debug("\ntestSanityJmx restarting the IntegrityMonitor");
+ // Create a new instance. It should come up with the admin state locked
+ im = makeMonitor(resourceName, myProp);
+ sm = im.getStateManager();
+ logger.debug(
+ "\n\ntestSanityJmx restart with AdminState=locked"
+ + "\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
+ sm.getAdminState(), sm.getOpState(), sm.getAvailStatus(), sm.getStandbyStatus());
+ assertEquals(StateManagement.LOCKED, sm.getAdminState());
+
+ // Verify unlock
+ sm.unlock();
+ logger.debug(
+ "\n\ntestSanityJmx sm.unlock\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
+ sm.getAdminState(), sm.getOpState(), sm.getAvailStatus(), sm.getStandbyStatus());
+ assertEquals(StateManagement.UNLOCKED, sm.getAdminState());
+
+ // Verify unlock restart
+ logger.debug("\ntestSanityJmx restarting the IntegrityMonitor");
+ // Create a new instance. It should come up with the admin state locked
+ im = makeMonitor(resourceName, myProp);
+ sm = im.getStateManager();
+ logger.debug(
+ "\n\ntestSanityJmx restart with AdminState=unlocked\n"
+ + "AdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
+ sm.getAdminState(), sm.getOpState(), sm.getAvailStatus(), sm.getStandbyStatus());
+
+ assertEquals(StateManagement.UNLOCKED, sm.getAdminState());
+
+ logger.debug("\n\ntestSanityJmx: Exit\n\n");
+ }
+
+ @Test
+ public void testIM() throws Exception {
+ logger.debug("\nIntegrityMonitorTest: Entering testIM\n\n");
+
+ // Disable the integrity monitor so it will not interfere
+ myProp.put(IntegrityMonitorProperties.FP_MONITOR_INTERVAL, "-1");
+ // Disable dependency checking
+ myProp.put(IntegrityMonitorProperties.CHECK_DEPENDENCY_INTERVAL, "-1");
+ // Disable the refresh state audit
+ myProp.put(IntegrityMonitorProperties.REFRESH_STATE_AUDIT_INTERVAL_MS, "-1");
+ // Disable the state audit
+ myProp.put(IntegrityMonitorProperties.STATE_AUDIT_INTERVAL_MS, "-1");
+ // Disable the test transaction
+ myProp.put(IntegrityMonitorProperties.TEST_TRANS_INTERVAL, "-1");
+ // Disable writing the FPC
+ myProp.put(IntegrityMonitorProperties.WRITE_FPC_INTERVAL, "-1");
+
+ IntegrityMonitor im = makeMonitor(resourceName, myProp);
+
+ logger.debug("\n\nim initial state: \nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
+ im.getStateManager().getAdminState(), im.getStateManager().getOpState(),
+ im.getStateManager().getAvailStatus(), im.getStateManager().getStandbyStatus());
+
+ waitStep();
+
+ // test evaluate sanity
+ assertNoException(im, imx -> {
+ imx.evaluateSanity();
+ });
+
+ // Test startTransaction - should work since it is unlocked
+ assertNoException(im, imx -> {
+ imx.startTransaction();
+ });
+
+ // Test state manager via the IntegrityMonitor
+ StateManagement sm = im.getStateManager();
+
+ sm.lock();
+
+ logger.debug("\n\nsm.lock()\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
+ sm.getAdminState(), sm.getOpState(), sm.getAvailStatus(), sm.getStandbyStatus());
+
+ assertEquals(StateManagement.LOCKED, sm.getAdminState());
+
+ // test startTransaction. It should fail since it is locked
+ assertException(im, imx -> {
+ imx.startTransaction();
+ });
+
+ sm.unlock();
+ logger.debug("\n\nsm.unlock()\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
+ sm.getAdminState(), sm.getOpState(), sm.getAvailStatus(), sm.getStandbyStatus());
+ assertEquals(StateManagement.UNLOCKED, sm.getAdminState());
+
+ // test startTransaction. It should succeed
+ assertNoException(im, imx -> {
+ imx.startTransaction();
+ });
+
+ sm.disableDependency();
+ logger.debug(
+ "\n\nsm.disableDependency()\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
+ sm.getAdminState(), sm.getOpState(), sm.getAvailStatus(), sm.getStandbyStatus());
+
+ assertEquals(StateManagement.DISABLED, sm.getOpState());
+ assertEquals(StateManagement.DEPENDENCY, sm.getAvailStatus());
+
+ // test startTransaction. It should succeed since standby status is null
+ // and unlocked
+ assertNoException(im, imx -> {
+ imx.startTransaction();
+ });
+
+ sm.enableNoDependency();
+
+ logger.debug(
+ "\n\nsm.enableNoDependency()\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
+ sm.getAdminState(), sm.getOpState(), sm.getAvailStatus(), sm.getStandbyStatus());
+ assertEquals(StateManagement.ENABLED, sm.getOpState());
+ // test startTransaction. It should succeed since standby status is null
+ // and unlocked
+ assertNoException(im, imx -> {
+ imx.startTransaction();
+ });
+
+ sm.disableFailed();
+ logger.debug("\n\nsm.disableFailed()\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
+ sm.getAdminState(), sm.getOpState(), sm.getAvailStatus(), sm.getStandbyStatus());
+
+ assertEquals(StateManagement.DISABLED, sm.getOpState());
+ assertEquals(StateManagement.FAILED, sm.getAvailStatus());
+ // test startTransaction. It should succeed since standby status is null
+ // and unlocked
+ assertNoException(im, imx -> {
+ imx.startTransaction();
+ });
+
+ sm.enableNotFailed();
+
+ logger.debug(
+ "\n\nsm.enabledNotFailed()\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
+ sm.getAdminState(), sm.getOpState(), sm.getAvailStatus(), sm.getStandbyStatus());
+
+ assertEquals(StateManagement.ENABLED, sm.getOpState());
+ // test startTransaction. It should succeed since standby status is null
+ // and unlocked
+ assertNoException(im, imx -> {
+ imx.startTransaction();
+ });
+
+ sm.demote();
+
+ logger.debug("\n\nsm.demote()\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
+ sm.getAdminState(), sm.getOpState(), sm.getAvailStatus(), sm.getStandbyStatus());
+
+ assertEquals(StateManagement.HOT_STANDBY, sm.getStandbyStatus());
+
+ // test startTransaction. It should fail since it is standby
+ assertException(im, imx -> {
+ imx.startTransaction();
+ });
+
+ sm.promote();
+
+ logger.debug("\n\nsm.promote()\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
+ sm.getAdminState(), sm.getOpState(), sm.getAvailStatus(), sm.getStandbyStatus());
+
+ assertEquals(StateManagement.PROVIDING_SERVICE, sm.getStandbyStatus());
+
+ // test startTransaction. It should succeed since it is providing
+ // service
+ assertNoException(im, imx -> {
+ imx.startTransaction();
+ });
+
+ // Test the multi-valued availability status
+ sm.disableDependency();
+ sm.disableFailed();
+
+ logger.debug(
+ "\n\nsm.disableDependency(), sm.disableFailed\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
+ sm.getAdminState(), sm.getOpState(), sm.getAvailStatus(), sm.getStandbyStatus());
+
+ assertEquals(StateManagement.DEPENDENCY_FAILED, sm.getAvailStatus());
+
+ // Test startTransaction. Should fail since standby status is cold
+ // standby
+ assertException(im, imx -> {
+ imx.startTransaction();
+ });
+
+ sm.enableNoDependency();
+
+ logger.debug(
+ "\n\nsm.enableNoDependency()\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
+ sm.getAdminState(), sm.getOpState(), sm.getAvailStatus(), sm.getStandbyStatus());
+ assertEquals(StateManagement.FAILED, sm.getAvailStatus());
+ // Test startTransaction. Should fail since standby status is cold
+ // standby
+ assertException(im, imx -> {
+ imx.startTransaction();
+ });
+
+ sm.disableDependency();
+ sm.enableNotFailed();
+
+ logger.debug(
+ "\n\nsm.disableDependency(),sm.enableNotFailed()\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
+ sm.getAdminState(), sm.getOpState(), sm.getAvailStatus(), sm.getStandbyStatus());
+
+ assertEquals(StateManagement.DEPENDENCY, sm.getAvailStatus());
+ // Test startTransaction. Should fail since standby status is cold
+ // standby
+ assertException(im, imx -> {
+ imx.startTransaction();
+ });
+
+ sm.enableNoDependency();
+ logger.debug(
+ "\n\nsm.enableNoDependency()\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
+ sm.getAdminState(), sm.getOpState(), sm.getAvailStatus(), sm.getStandbyStatus());
+ assertEquals(StateManagement.ENABLED, sm.getOpState());
+ // test startTransaction. It should fail since standby status is hot
+ // standby
+ assertException(im, imx -> {
+ imx.startTransaction();
+ });
+
+ logger.debug("\n\ntestIM: Exit\n\n");
+ }
+
+ @Test
+ public void testSanityState() throws Exception {
+ logger.debug("\nIntegrityMonitorTest: Entering testSanityState\n\n");
+
+ // parameters are passed via a properties file
+ myProp.put(IntegrityMonitorProperties.DEPENDENCY_GROUPS, "group1_dep1,group1_dep2; group2_dep1");
+ // Disable the integrity monitor so it will not interfere
+ myProp.put(IntegrityMonitorProperties.FP_MONITOR_INTERVAL, "-1");
+ // Disable the refresh state audit
+ myProp.put(IntegrityMonitorProperties.REFRESH_STATE_AUDIT_INTERVAL_MS, "-1");
+ // Disable dependency checking so it does not interfere
+ myProp.put(IntegrityMonitorProperties.CHECK_DEPENDENCY_INTERVAL, "-1");
+ // Disable the state audit
+ myProp.put(IntegrityMonitorProperties.STATE_AUDIT_INTERVAL_MS, "-1");
+ // Disable the test transaction
+ myProp.put(IntegrityMonitorProperties.TEST_TRANS_INTERVAL, "-1");
+ // Disable writing the FPC
+ myProp.put(IntegrityMonitorProperties.WRITE_FPC_INTERVAL, "-1");
+ // Max interval for use in deciding if a FPC entry is stale in seconds
+ myProp.put(IntegrityMonitorProperties.MAX_FPC_UPDATE_INTERVAL, "120");
+
+ IntegrityMonitor im = makeMonitor(resourceName, myProp);
+
+ waitStep();
+
+ // Add a group1 dependent resources to put an entry in the forward
+ // progress table
+ ForwardProgressEntity fpe = new ForwardProgressEntity();
+ ForwardProgressEntity fpe2 = new ForwardProgressEntity();
+ fpe.setFpcCount(0);
+ fpe.setResourceName("group1_dep1");
+ fpe2.setFpcCount(0);
+ fpe2.setResourceName("group1_dep2");
+ et = em.getTransaction();
+ et.begin();
+ em.persist(fpe);
+ em.persist(fpe2);
+ em.flush();
+ et.commit();
+
+ // Add a group2 dependent resource to the StateManagementEntity DB table
+ // and set its admin state to locked
+ // Expect sanity test to fail.
+ StateManagement stateManager = new StateManagement(emf, "group2_dep1");
+ stateManager.lock();
+
+ new StateManagement(emf, "group1_dep1");
+ new StateManagement(emf, "group1_dep2");
+
+ // Call the dependency check directly instead of waiting for FPManager
+ // to do it.
+ logger.debug("\n\nIntegrityMonitor.testSanityState: calling im.dependencyCheck()\n\n");
+ im.dependencyCheck();
+ assertException(im, imx -> {
+ imx.evaluateSanity();
+ });
+
+ logger.debug("\n\ntestSanityState: Exit\n\n");
+ }
+
+ @Test
+ public void testRefreshStateAudit() throws Exception {
+ logger.debug("\nIntegrityMonitorTest: testRefreshStateAudit Enter\n\n");
+
+ // parameters are passed via a properties file
+ myProp.put(IntegrityMonitorProperties.DEPENDENCY_GROUPS, "");
+ myProp.put(IntegrityMonitorProperties.TEST_VIA_JMX, "false");
+ // Disable the integrity monitor so it will not interfere
+ myProp.put(IntegrityMonitorProperties.FP_MONITOR_INTERVAL, "-1");
+ // Disable the refresh state audit
+ myProp.put(IntegrityMonitorProperties.REFRESH_STATE_AUDIT_INTERVAL_MS, "-1");
+ // Disable dependency checking so it does not interfere
+ myProp.put(IntegrityMonitorProperties.CHECK_DEPENDENCY_INTERVAL, "-1");
+ // Disable the state audit
+ myProp.put(IntegrityMonitorProperties.STATE_AUDIT_INTERVAL_MS, "-1");
+ // Disable the test transaction
+ myProp.put(IntegrityMonitorProperties.TEST_TRANS_INTERVAL, "-1");
+ // Disable writing the FPC
+ myProp.put(IntegrityMonitorProperties.WRITE_FPC_INTERVAL, "-1");
+
+ IntegrityMonitor im = makeMonitor(resourceName, myProp);
+
+ waitStep();
+
+ // the state here is unlocked, enabled, null, null
+ StateManagementEntity sme = null;
+
+ Query query = em.createQuery("Select p from StateManagementEntity p where p.resourceName=:resource");
+
+ query.setParameter("resource", resourceName);
+
+ // Just test that we are retrieving the right object
+ @SuppressWarnings("rawtypes")
+ List resourceList = query.getResultList();
+ if (!resourceList.isEmpty()) {
+ // exist
+ sme = (StateManagementEntity) resourceList.get(0);
+ em.refresh(sme);
+
+ logger.debug(
+ "??? -- Retrieve StateManagementEntity from database --\nsme.getResourceName() = {}\n"
+ + "sme.getAdminState() = {}\nsme.getOpState() = {}\nsme.getAvailStatus() = {}\nsme.getStandbyStatus() = {}",
+ sme.getResourceName(), sme.getAdminState(), sme.getOpState(), sme.getAvailStatus(),
+ sme.getStandbyStatus());
+
+ assertEquals(StateManagement.UNLOCKED, sme.getAdminState());
+ assertEquals(StateManagement.ENABLED, sme.getOpState());
+ assertEquals(StateManagement.NULL_VALUE, sme.getAvailStatus());
+ assertEquals(StateManagement.NULL_VALUE, sme.getStandbyStatus());
+ logger.debug("--");
+ } else {
+ logger.debug("Record not found, resourceName: " + resourceName);
+ fail("missing record");
+ }
+
+ et = em.getTransaction();
+ et.begin();
+
+ sme.setStandbyStatus(StateManagement.COLD_STANDBY);
+ em.persist(sme);
+ em.flush();
+ et.commit();
+
+ // Run the refreshStateAudit
+ im.executeRefreshStateAudit();
+
+ // The refreshStateAudit should run and change the state to
+ // unlocked,enabled,null,hotstandby
+ StateManagementEntity sme1 = null;
+
+ Query query1 = em.createQuery("Select p from StateManagementEntity p where p.resourceName=:resource");
+
+ query1.setParameter("resource", resourceName);
+
+ @SuppressWarnings("rawtypes")
+ List resourceList1 = query1.getResultList();
+ if (!resourceList1.isEmpty()) {
+ // exist
+ sme1 = (StateManagementEntity) resourceList1.get(0);
+ em.refresh(sme1);
+ logger.debug(
+ "??? -- Retrieve StateManagementEntity from database --\nsme1.getResourceName() = {}\n"
+ + "sme1.getAdminState() = {}\nsme1.getOpState() = {}\nsme1.getAvailStatus() = {}\nsme1.getStandbyStatus() = {}",
+ sme1.getResourceName(), sme1.getAdminState(), sme1.getOpState(), sme1.getAvailStatus(),
+ sme1.getStandbyStatus());
+
+ assertEquals(StateManagement.UNLOCKED, sme1.getAdminState());
+ assertEquals(StateManagement.ENABLED, sme1.getOpState());
+ assertEquals(StateManagement.NULL_VALUE, sme1.getAvailStatus());
+ assertEquals(StateManagement.HOT_STANDBY, sme1.getStandbyStatus());
+ logger.debug("--");
+ } else {
+ logger.debug("Record not found, resourceName: " + resourceName);
+ fail("record not found");
+ }
+
+ logger.debug("\nIntegrityMonitorTest: testRefreshStateAudit Exit\n\n");
+ }
+
+ @Test
+ public void testStateCheck() throws Exception {
+ logger.debug("\nIntegrityMonitorTest: Entering testStateCheck\n\n");
+
+ // parameters are passed via a properties file
+ myProp.put(IntegrityMonitorProperties.DEPENDENCY_GROUPS, "group1_dep1");
+ myProp.put(IntegrityMonitorProperties.TEST_VIA_JMX, "false");
+ myProp.put(IntegrityMonitorProperties.FAILED_COUNTER_THRESHOLD, "1");
+ /*
+ * The monitorInterval is set to 10 and the failedCounterThreshold is 1
+ * because stateCheck() uses the faileCounterThreshold * monitorInterval
+ * to determine if an entry is stale, it will be stale after 10 seconds.
+ */
+ myProp.put(IntegrityMonitorProperties.FP_MONITOR_INTERVAL, "5");
+ /*
+ * We accelerate the test transaction and write FPC intervals because we
+ * don't want there to be any chance of a FPC failure because of the
+ * short monitor interval
+ */
+ myProp.put(IntegrityMonitorProperties.TEST_TRANS_INTERVAL, "1");
+ myProp.put(IntegrityMonitorProperties.WRITE_FPC_INTERVAL, "2");
+ // Disable the refresh state audit
+ myProp.put(IntegrityMonitorProperties.REFRESH_STATE_AUDIT_INTERVAL_MS, "-1");
+ // The maximum time in seconds to determine that a FPC entry is stale
+ myProp.put(IntegrityMonitorProperties.MAX_FPC_UPDATE_INTERVAL, "5");
+ myProp.put(IntegrityMonitorProperties.CHECK_DEPENDENCY_INTERVAL, "5");
+
+ IntegrityMonitor im = makeMonitor(resourceName, myProp);
+
+ // Note: do ***NOT*** do waitStep() here
+
+ // Add a group1 dependent resources to put an entry in the forward
+ // progress table
+ // This sets lastUpdated to the current time
+ ForwardProgressEntity fpe = new ForwardProgressEntity();
+ fpe.setFpcCount(0);
+ fpe.setResourceName("group1_dep1");
+ et = em.getTransaction();
+ et.begin();
+ em.persist(fpe);
+ em.flush();
+ et.commit();
+
+ new StateManagement(emf, "group1_dep1");
+
+ assertNoException(im, imx -> {
+ imx.evaluateSanity();
+ });
+
+ // wait for FPManager to perform dependency health check. Once that's
+ // done,
+ // it should now be stale and the sanity check should fail
+ waitStep();
+
+ assertException(im, imx -> {
+ imx.evaluateSanity();
+ });
+
+ logger.debug("\n\ntestStateCheck: Exit\n\n");
+ }
+
+ @Test
+ public void testGetAllForwardProgressEntity() throws Exception {
+ logger.debug("\nIntegrityMonitorTest: Entering testGetAllForwardProgressEntity\n\n");
+ // parameters are passed via a properties file
+ myProp.put(IntegrityMonitorProperties.DEPENDENCY_GROUPS, "");
+ myProp.put(IntegrityMonitorProperties.TEST_VIA_JMX, "false");
+ // Disable the integrity monitor so it will not interfere
+ myProp.put(IntegrityMonitorProperties.FP_MONITOR_INTERVAL, "-1");
+ // Disable the refresh state audit
+ myProp.put(IntegrityMonitorProperties.REFRESH_STATE_AUDIT_INTERVAL_MS, "-1");
+ // Disable dependency checking so it does not interfere
+ myProp.put(IntegrityMonitorProperties.CHECK_DEPENDENCY_INTERVAL, "-1");
+ // Disable the state audit
+ myProp.put(IntegrityMonitorProperties.STATE_AUDIT_INTERVAL_MS, "-1");
+ // Disable the test transaction
+ myProp.put(IntegrityMonitorProperties.TEST_TRANS_INTERVAL, "-1");
+ // Disable writing the FPC
+ myProp.put(IntegrityMonitorProperties.WRITE_FPC_INTERVAL, "-1");
+
+ IntegrityMonitor im = makeMonitor(resourceName, myProp);
+ waitStep();
+
+ logger.debug("\nIntegrityMonitorTest: Creating ForwardProgressEntity entries\n\n");
+ // Add resource entries in the forward progress table
+ ForwardProgressEntity fpe = new ForwardProgressEntity();
+ ForwardProgressEntity fpe2 = new ForwardProgressEntity();
+ ForwardProgressEntity fpe3 = new ForwardProgressEntity();
+ fpe.setFpcCount(0);
+ fpe.setResourceName("siteA_pap2");
+ fpe2.setFpcCount(0);
+ fpe2.setResourceName("siteB_pap1");
+ fpe3.setFpcCount(0);
+ fpe3.setResourceName("siteB_pap2");
+ et = em.getTransaction();
+ et.begin();
+ em.persist(fpe);
+ em.persist(fpe2);
+ em.persist(fpe3);
+ em.flush();
+ et.commit();
+
+ logger.debug(
+ "\nIntegrityMonitorTest:testGetAllForwardProgressEntity Calling im.getAllForwardProgressEntity()\n\n");
+ List<ForwardProgressEntity> fpeList = im.getAllForwardProgressEntity();
+
+ assertEquals(4, fpeList.size());
+
+ logger.debug("\nIntegrityMonitorTest: Exit testGetAllForwardProgressEntity\n\n");
+ }
+
+ @Test
+ public void testStateAudit() throws Exception {
+ logger.debug("\nIntegrityMonitorTest: Entering testStateAudit\n\n");
+
+ // parameters are passed via a properties file
+
+ // No Dependency Groups
+ myProp.put(IntegrityMonitorProperties.DEPENDENCY_GROUPS, "");
+ // Don't use JMX
+ myProp.put(IntegrityMonitorProperties.TEST_VIA_JMX, "false");
+ // Disable the internal sanity monitoring.
+ myProp.put(IntegrityMonitorProperties.FP_MONITOR_INTERVAL, "-1");
+ // Disable the dependency monitoring.
+ myProp.put(IntegrityMonitorProperties.CHECK_DEPENDENCY_INTERVAL, "-1");
+ // Disable the refresh state audit
+ myProp.put(IntegrityMonitorProperties.REFRESH_STATE_AUDIT_INTERVAL_MS, "-1");
+ // Disable the test transaction
+ myProp.put(IntegrityMonitorProperties.TEST_TRANS_INTERVAL, "-1");
+ // Disable the write FPC
+ myProp.put(IntegrityMonitorProperties.WRITE_FPC_INTERVAL, "-1");
+ // Disable the State Audit we will call it directly
+ myProp.put(IntegrityMonitorProperties.STATE_AUDIT_INTERVAL_MS, "-1");
+ // Max interval for use in deciding if a FPC entry is stale in seconds
+ myProp.put(IntegrityMonitorProperties.MAX_FPC_UPDATE_INTERVAL, "120");
+
+ IntegrityMonitor im = makeMonitor(resourceName, myProp);
+ waitStep();
+
+ logger.debug("\nIntegrityMonitorTest: Creating ForwardProgressEntity entries\n\n");
+ // Add resources to put an entry in the forward progress table
+ Date staleDate = new Date(0);
+ ForwardProgressEntity fpe1 = new ForwardProgressEntity();
+ ForwardProgressEntity fpe2 = new ForwardProgressEntity();
+ ForwardProgressEntity fpe3 = new ForwardProgressEntity();
+ fpe1.setFpcCount(0);
+ fpe1.setResourceName("siteA_pap2");
+ fpe2.setFpcCount(0);
+ fpe2.setResourceName("siteB_pap1");
+ fpe3.setFpcCount(0);
+ fpe3.setResourceName("siteB_pap2");
+ logger.debug("\nIntegrityMonitorTest: Creating StateManagementEntity entries\n\n");
+ StateManagementEntity sme1 = new StateManagementEntity();
+ StateManagementEntity sme2 = new StateManagementEntity();
+ StateManagementEntity sme3 = new StateManagementEntity();
+ sme1.setResourceName("siteA_pap2");
+ sme1.setAdminState(StateManagement.UNLOCKED);
+ sme1.setOpState(StateManagement.ENABLED);
+ sme1.setAvailStatus(StateManagement.NULL_VALUE);
+ sme1.setStandbyStatus(StateManagement.NULL_VALUE);
+ sme2.setResourceName("siteB_pap1");
+ sme2.setAdminState(StateManagement.UNLOCKED);
+ sme2.setOpState(StateManagement.ENABLED);
+ sme2.setAvailStatus(StateManagement.NULL_VALUE);
+ sme2.setStandbyStatus(StateManagement.NULL_VALUE);
+ sme3.setResourceName("siteB_pap2");
+ sme3.setAdminState(StateManagement.UNLOCKED);
+ sme3.setOpState(StateManagement.ENABLED);
+ sme3.setAvailStatus(StateManagement.NULL_VALUE);
+ sme3.setStandbyStatus(StateManagement.NULL_VALUE);
+ et = em.getTransaction();
+ et.begin();
+ em.persist(fpe1);
+ em.persist(fpe2);
+ em.persist(fpe3);
+ em.persist(sme1);
+ em.persist(sme2);
+ em.persist(sme3);
+ em.flush();
+ et.commit();
+
+ Query updateQuery = em.createQuery(
+ "UPDATE ForwardProgressEntity f " + "SET f.lastUpdated = :newDate " + "WHERE f.resourceName=:resource");
+ updateQuery.setParameter("newDate", staleDate, TemporalType.TIMESTAMP);
+ updateQuery.setParameter("resource", fpe1.getResourceName());
+
+ et = em.getTransaction();
+ et.begin();
+ updateQuery.executeUpdate();
+ et.commit();
+
+ logger.debug("\nIntegrityMonitorTest:testStateAudit Calling im.getAllForwardProgressEntity()\n\n");
+ List<ForwardProgressEntity> fpeList = im.getAllForwardProgressEntity();
+
+ logger.debug("\n\n");
+ logger.debug("IntegrityMonitorTest:testStateAudit:ForwardProgressEntity entries");
+ for (ForwardProgressEntity myFpe : fpeList) {
+ logger.debug("\n ResourceName: {}" + "\n LastUpdated: {}", myFpe.getResourceName(),
+ myFpe.getLastUpdated());
+ }
+ logger.debug("\n\n");
+
+ logger.debug("\nIntegrityMonitorTest:testStateAudit getting list of StateManagementEntity entries\n\n");
+ Query query = em.createQuery("SELECT s FROM StateManagementEntity s");
+ List<?> smeList = query.getResultList();
+
+ logger.debug("\n\n");
+ logger.debug("IntegrityMonitorTest:testStateAudit:StateManagementEntity entries");
+ for (Object mySme : smeList) {
+ StateManagementEntity tmpSme = (StateManagementEntity) mySme;
+ em.refresh(tmpSme);
+ logger.debug(
+ "\n ResourceName: {}" + "\n AdminState: {}" + "\n OpState: {}"
+ + "\n AvailStatus: {}" + "\n StandbyStatus: {}",
+ tmpSme.getResourceName(), tmpSme.getAdminState(), tmpSme.getOpState(), tmpSme.getAvailStatus(),
+ tmpSme.getStandbyStatus());
+ }
+ logger.debug("\n\n");
+
+ em.refresh(sme1);
+ assertEquals(StateManagement.ENABLED, sme1.getOpState());
+
+ logger.debug("IntegrityMonitorTest:testStateAudit: calling stateAudit()");
+ im.executeStateAudit();
+ logger.debug("IntegrityMonitorTest:testStateAudit: call to stateAudit() complete");
+
+ logger.debug("\nIntegrityMonitorTest:testStateAudit getting list of StateManagementEntity entries\n\n");
+ smeList = query.getResultList();
+
+ logger.debug("\n\n");
+ logger.debug("IntegrityMonitorTest:testStateAudit:StateManagementEntity entries");
+ for (Object mySme : smeList) {
+ StateManagementEntity tmpSme = (StateManagementEntity) mySme;
+ em.refresh(tmpSme);
+ logger.debug(
+ "\n ResourceName: {}" + "\n AdminState: {}" + "\n OpState: {}"
+ + "\n AvailStatus: {}" + "\n StandbyStatus: {}",
+ tmpSme.getResourceName(), tmpSme.getAdminState(), tmpSme.getOpState(), tmpSme.getAvailStatus(),
+ tmpSme.getStandbyStatus());
+ }
+ logger.debug("\n\n");
+
+ em.refresh(sme1);
+ assertEquals(StateManagement.DISABLED, sme1.getOpState());
+
+ // Now let's add sme2 to the mix
+ updateQuery = em.createQuery(
+ "UPDATE ForwardProgressEntity f " + "SET f.lastUpdated = :newDate " + "WHERE f.resourceName=:resource");
+ updateQuery.setParameter("newDate", staleDate, TemporalType.TIMESTAMP);
+ updateQuery.setParameter("resource", fpe2.getResourceName());
+
+ et = em.getTransaction();
+ et.begin();
+ updateQuery.executeUpdate();
+ et.commit();
+
+ // Give it a chance to write the DB and run the audit
+ logger.debug("IntegrityMonitorTest:testStateAudit: (restart4) Running State Audit");
+ waitStep();
+ im.executeStateAudit();
+ waitStep();
+ logger.debug("IntegrityMonitorTest:testStateAudit: (restart4) State Audit complete");
+
+ // Now check its state
+ logger.debug(
+ "\nIntegrityMonitorTest:testStateAudit (restart4) getting list of StateManagementEntity entries\n\n");
+ smeList = query.getResultList();
+
+ logger.debug("\n\n");
+ logger.debug("IntegrityMonitorTest:testStateAudit:StateManagementEntity (restart4) entries");
+ for (Object mySme : smeList) {
+ StateManagementEntity tmpSme = (StateManagementEntity) mySme;
+ em.refresh(tmpSme);
+
+ logger.debug(
+ "\n (restart4) ResourceName: {}" + "\n AdminState: {}" + "\n OpState: {}"
+ + "\n AvailStatus: {}" + "\n StandbyStatus: {}",
+ tmpSme.getResourceName(), tmpSme.getAdminState(), tmpSme.getOpState(), tmpSme.getAvailStatus(),
+ tmpSme.getStandbyStatus());
+ }
+ logger.debug("\n\n");
+
+ em.refresh(sme1);
+ assertEquals(StateManagement.DISABLED, sme1.getOpState());
+
+ em.refresh(sme2);
+ assertEquals(StateManagement.DISABLED, sme2.getOpState());
+
+ logger.debug("\nIntegrityMonitorTest: Exit testStateAudit\n\n");
+ System.out.println("\n\ntestStateAudit: Exit\n\n");
+ }
+
+ private IntegrityMonitor makeMonitor(String resourceName, Properties myProp) throws Exception {
+ IntegrityMonitor.deleteInstance();
+
+ queue = new LinkedBlockingQueue<>();
+
+ IntegrityMonitor im = IntegrityMonitor.getInstance(resourceName, myProp, queue);
+
+ // wait for the monitor thread to start
+ waitStep();
+
+ return im;
+ }
+
+ /**
+ * Waits for the FPManager to complete another cycle.
+ *
+ * @throws InterruptedException
+ */
+ private void waitStep() throws InterruptedException {
+ CountDownLatch latch = new CountDownLatch(1);
+ queue.offer(latch);
+ waitLatch(latch);
+ }
+}
diff --git a/integrity-monitor/src/test/java/org/onap/policy/common/im/IntegrityMonitorTestBase.java b/integrity-monitor/src/test/java/org/onap/policy/common/im/IntegrityMonitorTestBase.java
new file mode 100644
index 00000000..84d0b51a
--- /dev/null
+++ b/integrity-monitor/src/test/java/org/onap/policy/common/im/IntegrityMonitorTestBase.java
@@ -0,0 +1,306 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Integrity Audit
+ * ================================================================================
+ * Copyright (C) 2018 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.common.im;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.Properties;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.Persistence;
+
+import org.onap.policy.common.utils.jpa.EntityTransCloser;
+import org.onap.policy.common.utils.test.log.logback.ExtractAppender;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * All JUnits are designed to run in the local development environment where
+ * they have write privileges and can execute time-sensitive tasks.
+ * <p/>
+ * Many of the test verification steps are performed by scanning for items
+ * written to the log file. Rather than actually scan the log file, an
+ * {@link ExtractAppender} is used to monitor events that are logged and extract
+ * relevant items. In order to attach the appender to the debug log, it assumes
+ * that the debug log is a <i>logback</i> Logger configured per EELF.
+ * <p/>
+ * These tests use a temporary, in-memory DB, which is dropped once the tests
+ * complete.
+ */
+public class IntegrityMonitorTestBase {
+ private static Logger logger = LoggerFactory.getLogger(IntegrityMonitorTestBase.class);
+
+ /**
+ * Directory containing the slf4j log files.
+ */
+ private static final String SLF4J_LOG_DIR = "logs";
+
+ private static final String JMX_PORT_PROP = "com.sun.management.jmxremote.port";
+
+ /**
+ * Max time, in milliseconds, to wait for a latch to be triggered.
+ */
+ protected static final long WAIT_MS = 5000l;
+
+ /**
+ * Milliseconds that monitor should sleep between cycles.
+ */
+ protected static final long CYCLE_INTERVAL_MS = 2l;
+
+ public static final String DEFAULT_DB_URL_PREFIX = "jdbc:h2:mem:";
+
+ protected static final String dbDriver = "org.h2.Driver";
+ protected static final String dbUser = "testu";
+ protected static final String dbPwd = "testp";
+ protected static final String siteName = "SiteA";
+ protected static final String nodeType = "pap";
+
+ // will be defined by the test *Classes*
+ protected static String dbUrl;
+
+ /**
+ * Persistence unit.
+ */
+ protected static final String PERSISTENCE_UNIT = "schemaPU";
+
+ /**
+ * Properties to be used in all tests.
+ */
+ protected static Properties properties;
+
+ /**
+ * Entity manager factory pointing to the in-memory DB for A_SEQ_PU.
+ */
+ protected static EntityManagerFactory emf;
+
+ /**
+ * Entity manager factory pointing to the in-memory DB associated with emf.
+ */
+ protected static EntityManager em;
+
+ /**
+ * Saved JMX port from system properties, to be restored once all tests
+ * complete.
+ */
+ private static Object savedJmxPort;
+
+ /**
+ * Saved IM persistence unit, to be restored once all tests complete.
+ */
+ private static String savedPU;
+
+ /**
+ * Saved monitor cycle interval, to be restored once all tests complete.
+ */
+ private static long savedCycleIntervalMillis;
+
+ /**
+ * Saved property time units, to be restored once all tests complete.
+ */
+ private static TimeUnit savedPropertyUnits;
+
+ /**
+ * Saves current configuration information and then sets new values.
+ *
+ * @param dbDriver
+ * the name of the DB Driver class
+ * @param dbUrl
+ * the URL to the DB
+ * @throws IOException
+ * @throws Exception
+ */
+ protected static void setUpBeforeClass(String dbUrl) throws IOException {
+ logger.info("setup");
+
+ Properties systemProps = System.getProperties();
+
+ // truncate the logs
+ new FileOutputStream(SLF4J_LOG_DIR + "/audit.log").close();
+ new FileOutputStream(SLF4J_LOG_DIR + "/debug.log").close();
+ new FileOutputStream(SLF4J_LOG_DIR + "/error.log").close();
+ new FileOutputStream(SLF4J_LOG_DIR + "/metrics.log").close();
+
+ IntegrityMonitorTestBase.dbUrl = dbUrl;
+
+ // save data that we have to restore at the end of the test
+ savedJmxPort = systemProps.get(JMX_PORT_PROP);
+ savedPU = IntegrityMonitor.getPersistenceUnit();
+ savedCycleIntervalMillis = IntegrityMonitor.getCycleIntervalMillis();
+ savedPropertyUnits = IntegrityMonitor.getPropertyUnits();
+
+ systemProps.put(JMX_PORT_PROP, "9797");
+
+ IntegrityMonitor.setPersistenceUnit(PERSISTENCE_UNIT);
+ IntegrityMonitor.setCycleIntervalMillis(CYCLE_INTERVAL_MS);
+ IntegrityMonitor.setPropertyUnits(TimeUnit.MILLISECONDS);
+
+ IntegrityMonitor.setUnitTesting(true);
+
+ properties = new Properties();
+ properties.put(IntegrityMonitorProperties.DB_DRIVER, dbDriver);
+ properties.put(IntegrityMonitorProperties.DB_URL, dbUrl);
+ properties.put(IntegrityMonitorProperties.DB_USER, dbUser);
+ properties.put(IntegrityMonitorProperties.DB_PWD, dbPwd);
+ properties.put(IntegrityMonitorProperties.SITE_NAME, siteName);
+ properties.put(IntegrityMonitorProperties.NODE_TYPE, nodeType);
+ properties.put(IntegrityMonitorProperties.REFRESH_STATE_AUDIT_INTERVAL_MS,
+ String.valueOf(100L * CYCLE_INTERVAL_MS));
+
+ emf = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT, makeProperties());
+
+ // keep this open so the in-memory DB stays around until all tests are
+ // done
+ em = emf.createEntityManager();
+
+ stopMonitor();
+ }
+
+ /**
+ * Restores the configuration to what it was before the test.
+ */
+ protected static void tearDownAfterClass() {
+ Properties systemProps = System.getProperties();
+ if (savedJmxPort == null) {
+ systemProps.remove(JMX_PORT_PROP);
+
+ } else {
+ systemProps.put(JMX_PORT_PROP, savedJmxPort);
+ }
+
+ IntegrityMonitor.setPersistenceUnit(savedPU);
+ IntegrityMonitor.setCycleIntervalMillis(savedCycleIntervalMillis);
+ IntegrityMonitor.setPropertyUnits(savedPropertyUnits);
+
+ IntegrityMonitor.setUnitTesting(false);
+
+ // this should result in the in-memory DB being deleted
+ em.close();
+ emf.close();
+ }
+
+ /**
+ * Sets up for a test, which includes deleting all records from the
+ * IntegrityAuditEntity table.
+ */
+ protected void setUpTest() {
+
+ // Clean up the DB
+ try (EntityTransCloser et = new EntityTransCloser(em.getTransaction())) {
+
+ em.createQuery("Delete from StateManagementEntity").executeUpdate();
+ em.createQuery("Delete from ForwardProgressEntity").executeUpdate();
+ em.createQuery("Delete from ResourceRegistrationEntity").executeUpdate();
+
+ // commit transaction
+ et.commit();
+ }
+ }
+
+ /**
+ * Cleans up after a test, removing any ExtractAppenders from the logger and
+ * stopping any AuditThreads.
+ */
+ protected void tearDownTest() {
+ stopMonitor();
+ }
+
+ /**
+ * Stops the IntegrityMonitor instance.
+ */
+ private static void stopMonitor() {
+ try {
+ IntegrityMonitor.deleteInstance();
+
+ } catch (IntegrityMonitorException e) {
+ // no need to log, as exception was already logged
+ }
+ }
+
+ /**
+ * Makes a new Property set that's a clone of {@link #properties}.
+ *
+ * @return a new Property set containing all of a copy of all of the
+ * {@link #properties}
+ */
+ protected static Properties makeProperties() {
+ Properties props = new Properties();
+ props.putAll(properties);
+ return props;
+ }
+
+ /**
+ * Waits for a latch to reach zero.
+ *
+ * @param latch
+ * @throws InterruptedException
+ * @throws AssertionError
+ * if the latch did not reach zero in the allotted time
+ */
+ protected void waitLatch(CountDownLatch latch) throws InterruptedException {
+ assertTrue(latch.await(WAIT_MS, TimeUnit.SECONDS));
+ }
+
+ /**
+ * Applies a function on an object, expecting it to succeed. Catches any
+ * exceptions thrown by the function.
+ *
+ * @param arg
+ * @param func
+ * @throws AssertionError
+ */
+ protected <T> void assertNoException(T arg, VoidFunction<T> func) {
+ try {
+ func.apply(arg);
+
+ } catch (Exception e) {
+ System.out.println("startTransaction exception: " + e);
+ fail("action failed");
+ }
+ }
+
+ /**
+ * Applies a function on an object, expecting it to fail. Catches any
+ * exceptions thrown by the function.
+ *
+ * @param arg
+ * @param func
+ * @throws AssertionError
+ */
+ protected <T> void assertException(T arg, VoidFunction<T> func) {
+ try {
+ func.apply(arg);
+ fail("missing exception");
+ } catch (Exception e) {
+ System.out.println("action found expected exception: " + e);
+ }
+ }
+
+ @FunctionalInterface
+ protected static interface VoidFunction<T> {
+ public void apply(T arg) throws Exception;
+ }
+}
diff --git a/integrity-monitor/src/test/java/org/onap/policy/common/im/StateManagementEntityTest.java b/integrity-monitor/src/test/java/org/onap/policy/common/im/StateManagementEntityTest.java
new file mode 100644
index 00000000..44faa58f
--- /dev/null
+++ b/integrity-monitor/src/test/java/org/onap/policy/common/im/StateManagementEntityTest.java
@@ -0,0 +1,130 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Integrity Monitor
+ * ================================================================================
+ * Copyright (C) 2017-2018 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.common.im;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.List;
+
+import javax.persistence.Query;
+
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.onap.policy.common.im.jpa.StateManagementEntity;
+import org.onap.policy.common.utils.jpa.EntityTransCloser;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class StateManagementEntityTest extends IntegrityMonitorTestBase {
+ private static Logger logger = LoggerFactory.getLogger(StateManagementEntityTest.class);
+
+ @BeforeClass
+ public static void setUpClass() throws Exception {
+ IntegrityMonitorTestBase.setUpBeforeClass(DEFAULT_DB_URL_PREFIX + StateManagementEntityTest.class.getSimpleName());
+
+ }
+
+ @AfterClass
+ public static void tearDownClass() throws Exception {
+ IntegrityMonitorTestBase.tearDownAfterClass();
+ }
+
+ @Before
+ public void setUp() {
+ super.setUpTest();
+ }
+
+ @After
+ public void tearDown() {
+ super.tearDownTest();
+ }
+
+ @Test
+ public void testJPA() throws Exception {
+ logger.debug("\n??? logger.infor StateManagementEntityTest: Entering\n\n");
+
+ //Define the resourceName for the StateManagement constructor
+ String resourceName = "test_resource1";
+
+ //
+ logger.debug("Create StateManagementEntity, resourceName: {}", resourceName);
+ logger.debug("??? instantiate StateManagementEntity object");
+ StateManagementEntity sme = new StateManagementEntity();
+
+ logger.debug("??? setResourceName : {}", resourceName);
+ sme.setResourceName(resourceName);
+ logger.debug("??? getResourceName : {}", sme.getResourceName());
+
+ sme.setAdminState(StateManagement.UNLOCKED);
+ assertEquals(StateManagement.UNLOCKED, sme.getAdminState());
+
+ sme.setOpState(StateManagement.ENABLED);
+ assertEquals(StateManagement.ENABLED, sme.getOpState());
+
+ sme.setAvailStatus(StateManagement.NULL_VALUE);
+ assertEquals(StateManagement.NULL_VALUE, sme.getAvailStatus());
+
+ sme.setStandbyStatus(StateManagement.COLD_STANDBY);
+ assertEquals(StateManagement.COLD_STANDBY, sme.getStandbyStatus());
+
+ try(EntityTransCloser et = new EntityTransCloser(em.getTransaction())) {
+ logger.debug("??? before persist");
+ em.persist(sme);
+ logger.debug("??? after persist");
+
+ em.flush();
+ logger.debug("??? after flush");
+
+ et.commit();
+ logger.debug("??? after commit");
+ }
+
+ try {
+ Query query = em.createQuery("Select p from StateManagementEntity p where p.resourceName=:resource");
+
+ query.setParameter("resource", resourceName);
+
+ //Just test that we are retrieving the right object
+ @SuppressWarnings("rawtypes")
+ List resourceList = query.getResultList();
+ if (!resourceList.isEmpty()) {
+ // exist
+ StateManagementEntity sme2 = (StateManagementEntity) resourceList.get(0);
+
+ assertEquals(sme.getResourceName(), sme2.getResourceName());
+ assertEquals(sme.getAdminState(), sme2.getAdminState());
+ assertEquals(sme.getOpState(), sme2.getOpState());
+ assertEquals(sme.getAvailStatus(), sme2.getAvailStatus());
+ assertEquals(sme.getStandbyStatus(), sme2.getStandbyStatus());
+ logger.debug("--");
+ } else {
+ logger.debug("Record not found, resourceName: {}", resourceName);
+ }
+ } catch(Exception ex) {
+ logger.error("Exception on select query: " + ex.toString());
+ }
+
+ logger.debug("\n\nJpaTest: Exit\n\n");
+ }
+}
diff --git a/integrity-monitor/src/test/java/org/onap/policy/common/im/StateManagementTest.java b/integrity-monitor/src/test/java/org/onap/policy/common/im/StateManagementTest.java
new file mode 100644
index 00000000..29719215
--- /dev/null
+++ b/integrity-monitor/src/test/java/org/onap/policy/common/im/StateManagementTest.java
@@ -0,0 +1,239 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Integrity Monitor
+ * ================================================================================
+ * Copyright (C) 2017-2018 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.common.im;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/*
+ * All JUnits are designed to run in the local development environment
+ * where they have write privileges and can execute time-sensitive
+ * tasks.
+ */
+public class StateManagementTest extends IntegrityMonitorTestBase {
+ private static Logger logger = LoggerFactory.getLogger(StateManagementTest.class);
+ //
+
+ @BeforeClass
+ public static void setUpClass() throws Exception {
+ IntegrityMonitorTestBase.setUpBeforeClass(DEFAULT_DB_URL_PREFIX + StateManagementTest.class.getSimpleName());
+
+ }
+
+ @AfterClass
+ public static void tearDownClass() throws Exception {
+ IntegrityMonitorTestBase.tearDownAfterClass();
+ }
+
+ @Before
+ public void setUp() {
+ super.setUpTest();
+ }
+
+ @After
+ public void tearDown() {
+ super.tearDownTest();
+ }
+
+ @Test
+ public void test() throws Exception {
+ logger.info("\n\nlogger.infor StateManagementTest: Entering\n\n");
+ String resourceName = "test_resource1";
+
+ // These parameters are in a properties file
+ try {
+ StateManagement sm = new StateManagement(emf, resourceName);
+
+ logger.info("\n??? initial state");
+ assertEquals("unlocked,enabled,null,null", makeString(sm));
+
+ logger.info("\n??? test lock()");
+ sm.lock();
+ assertEquals("locked,enabled,null,null", makeString(sm));
+
+ logger.info("\n??? test unlock()");
+ sm.unlock();
+ assertEquals("unlocked,enabled,null,null", makeString(sm));
+
+ logger.info("\n??? test enableNotFailed()");
+ sm.enableNotFailed();
+ assertEquals("unlocked,enabled,null,null", makeString(sm));
+
+ logger.info("\n??? test disableFailed()");
+ sm.disableFailed();
+ assertEquals("unlocked,disabled,failed,null", makeString(sm));
+
+ // P4 If promote() is called while either the opState is disabled or
+ // the adminState is locked,
+ // the standbystatus shall transition to coldstandby and a
+ // StandbyStatusException shall be thrown
+ logger.info("\n??? promote() test case P4");
+ assertException(sm, smx -> {
+ sm.disableFailed();
+ sm.lock();
+
+ sm.promote();
+ });
+ assertEquals("locked,disabled,failed,coldstandby", makeString(sm));
+
+ // P3 If promote() is called while standbyStatus is coldstandby, the
+ // state shall not transition
+ // and a StandbyStatusException shall be thrown
+ logger.info("\n??? promote() test case P3");
+ assertException(sm, smx -> {
+ sm.promote();
+ });
+ assertEquals("locked,disabled,failed,coldstandby", makeString(sm));
+
+ // P2 If promote() is called while the standbyStatus is null and the
+ // opState is enabled and adminState is unlocked,
+ // the state shall transition to providingservice
+ logger.info("\n??? promote() test case P2");
+ resourceName = "test_resource2";
+ StateManagement sm2 = new StateManagement(emf, resourceName);
+ sm2.enableNotFailed();
+ sm2.unlock();
+ assertEquals("unlocked,enabled,null,null", makeString(sm2));
+ sm2.promote();
+ assertEquals("unlocked,enabled,null,providingservice", makeString(sm2));
+
+ // P5 If promote() is called while standbyStatus is
+ // providingservice, no action is taken
+ logger.info("\n??? promote() test case P5");
+ sm2.promote();
+ assertEquals("unlocked,enabled,null,providingservice", makeString(sm2));
+
+ // D1 If demote() is called while standbyStatus is providingservice,
+ // the state shall transition to hotstandby
+ logger.info("\n??? demote() test case D1");
+ sm2.demote();
+ assertEquals("unlocked,enabled,null,hotstandby", makeString(sm2));
+
+ // D4 If demote() is called while standbyStatus is hotstandby, no
+ // action is taken
+ logger.info("\n??? demote() test case D4");
+ sm2.demote();
+ assertEquals("unlocked,enabled,null,hotstandby", makeString(sm2));
+
+ // D3 If demote() is called while standbyStatus is null and
+ // adminState is locked or opState is disabled,
+ // the state shall transition to coldstandby
+ logger.info("\n??? demote() test case D3");
+ resourceName = "test_resource3";
+ StateManagement sm3 = new StateManagement(emf, resourceName);
+ sm3.lock();
+ sm3.disableFailed();
+ sm3.demote();
+ assertEquals("locked,disabled,failed,coldstandby", makeString(sm3));
+
+ // D5 If demote() is called while standbyStatus is coldstandby, no
+ // action is taken
+ logger.info("\n??? demote() test case D5");
+ sm3.demote();
+ assertEquals("locked,disabled,failed,coldstandby", makeString(sm3));
+
+ // D2 If demote() is called while standbyStatus is null and
+ // adminState is unlocked and opState is enabled,
+ // the state shall transition to hotstandby
+ logger.info("\n??? demote() test case D2");
+ resourceName = "test_resource4";
+ StateManagement sm4 = new StateManagement(emf, resourceName);
+ sm4.unlock();
+ sm4.enableNotFailed();
+ assertEquals("unlocked,enabled,null,null", makeString(sm4));
+ sm4.demote();
+ assertEquals("unlocked,enabled,null,hotstandby", makeString(sm4));
+
+ // P1 If promote() is called while standbyStatus is hotstandby, the
+ // state shall transition to providingservice.
+ logger.info("\n??? promote() test case P1");
+ sm4.promote();
+ assertEquals("unlocked,enabled,null,providingservice", makeString(sm4));
+
+ // State change notification
+ logger.info("\n??? State change notification test case 1 - lock()");
+ StateChangeNotifier stateChangeNotifier = new StateChangeNotifier();
+ sm.addObserver(stateChangeNotifier);
+ sm.lock();
+ assertEquals("locked,disabled,failed,coldstandby", makeString(stateChangeNotifier.getStateManagement()));
+
+ logger.info("\n??? State change notification test case 2 - unlock()");
+ sm.unlock();
+ assertEquals("unlocked,disabled,failed,coldstandby", makeString(stateChangeNotifier.getStateManagement()));
+
+ logger.info("\n??? State change notification test case 3 - enabled()");
+ sm.enableNotFailed();
+ assertEquals("unlocked,enabled,null,hotstandby", makeString(stateChangeNotifier.getStateManagement()));
+
+ logger.info("\n??? State change notification test case 4 - disableFailed()");
+ sm.disableFailed();
+ assertEquals("unlocked,disabled,failed,coldstandby", makeString(stateChangeNotifier.getStateManagement()));
+
+ logger.info("\n??? State change notification test case 5 - demote()");
+ sm.demote();
+ assertEquals("unlocked,disabled,failed,coldstandby", makeString(stateChangeNotifier.getStateManagement()));
+
+ logger.info("\n??? State change notification test case 6 - promote()");
+ assertException(sm, smx -> {
+ sm.promote();
+ });
+ assertEquals("unlocked,disabled,failed,coldstandby", makeString(sm));
+
+ } catch (Exception ex) {
+ logger.error("Exception: {}", ex.toString());
+ throw ex;
+ }
+
+ logger.info("\n\nStateManagementTest: Exit\n\n");
+ }
+
+ /**
+ * Converts a state element to a comma-separated string.
+ *
+ * @param se
+ * element to be converted
+ * @return a string representing the element
+ */
+ private String makeString(StateManagement sm) {
+ if (sm == null) {
+ return null;
+ }
+
+ StringBuilder b = new StringBuilder();
+
+ b.append(sm.getAdminState());
+ b.append(',');
+ b.append(sm.getOpState());
+ b.append(',');
+ b.append(sm.getAvailStatus());
+ b.append(',');
+ b.append(sm.getStandbyStatus());
+
+ return b.toString();
+ }
+}
diff --git a/integrity-monitor/src/test/java/org/onap/policy/common/im/test/StateTransitionTest.java b/integrity-monitor/src/test/java/org/onap/policy/common/im/StateTransitionTest.java
index 6d4dc7c6..177a4489 100644
--- a/integrity-monitor/src/test/java/org/onap/policy/common/im/test/StateTransitionTest.java
+++ b/integrity-monitor/src/test/java/org/onap/policy/common/im/StateTransitionTest.java
@@ -1,8 +1,8 @@
-/*-
+/*
* ============LICENSE_START=======================================================
* Integrity Monitor
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 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.
@@ -18,18 +18,15 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.policy.common.im.test;
+package org.onap.policy.common.im;
+
+import static org.junit.Assert.assertEquals;
-import java.util.Properties;
-import javax.persistence.EntityManagerFactory;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
-
-import org.onap.policy.common.im.StateTransition;
-import org.onap.policy.common.im.StateElement;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/*
@@ -39,17 +36,6 @@ import org.slf4j.LoggerFactory;
*/
public class StateTransitionTest {
private static Logger logger = LoggerFactory.getLogger(StateTransitionTest.class);
-
- private static final String DEFAULT_DB_DRIVER = "org.h2.Driver";
- private static final String DEFAULT_DB_URL = "jdbc:h2:file:./sql/smTest";
- private static final String DEFAULT_DB_USER = "sa";
- private static final String DEFAULT_DB_PWD = "";
-
- private static final String DB_DRIVER = "javax.persistence.jdbc.driver";
- private static final String DB_URL = "javax.persistence.jdbc.url";
- private static final String DB_USER = "javax.persistence.jdbc.user";
- private static final String DB_PWD = "javax.persistence.jdbc.password";
- //
@BeforeClass
public static void setUpClass() throws Exception {
@@ -68,19 +54,10 @@ public class StateTransitionTest {
public void tearDown() throws Exception {
}
- //@Ignore
@Test
- public void testJPA() throws Exception {
+ public void test() throws Exception {
logger.info("\n\nlogger.infor StateTransitionTest: Entering\n\n");
- //These parameters are in a properties file
- EntityManagerFactory emf = null;
try {
- Properties myProp = new Properties();
- myProp.put(DB_DRIVER, DEFAULT_DB_DRIVER);
- myProp.put(DB_URL, DEFAULT_DB_URL);
- myProp.put(DB_USER, DEFAULT_DB_USER);
- myProp.put(DB_PWD, DEFAULT_DB_PWD);
-
logger.info("??? create a new StateTransition");
StateTransition st = new StateTransition();
@@ -88,2085 +65,2096 @@ public class StateTransitionTest {
try {
// bad test case
se = st.getEndingState("unlocked", "enabled", "null", "coldstandby", "lock");
- //
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
+
logger.info("??? StateTransition testcase 1");
se = st.getEndingState("unlocked", "enabled", "null", "null", "lock");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 2");
se = st.getEndingState("unlocked", "enabled", "null", "null", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 3");
se = st.getEndingState("unlocked", "enabled", "null", "null", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 4");
se = st.getEndingState("unlocked", "enabled", "null", "null", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 5");
se = st.getEndingState("unlocked", "enabled", "null", "null", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 6");
se = st.getEndingState("unlocked", "enabled", "null", "null", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 7");
se = st.getEndingState("unlocked", "enabled", "null", "null", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 8");
se = st.getEndingState("unlocked", "enabled", "null", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 9");
se = st.getEndingState("unlocked", "enabled", "null", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 10");
se = st.getEndingState("unlocked", "enabled", "null", "coldstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 11");
se = st.getEndingState("unlocked", "enabled", "null", "coldstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 12");
se = st.getEndingState("unlocked", "enabled", "null", "coldstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 13");
se = st.getEndingState("unlocked", "enabled", "null", "coldstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 14");
se = st.getEndingState("unlocked", "enabled", "null", "coldstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 15");
se = st.getEndingState("unlocked", "enabled", "null", "coldstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 16");
se = st.getEndingState("unlocked", "enabled", "null", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 17");
se = st.getEndingState("unlocked", "enabled", "null", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 18");
se = st.getEndingState("unlocked", "enabled", "null", "hotstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 19");
se = st.getEndingState("unlocked", "enabled", "null", "hotstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 20");
se = st.getEndingState("unlocked", "enabled", "null", "hotstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 21");
se = st.getEndingState("unlocked", "enabled", "null", "hotstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 22");
se = st.getEndingState("unlocked", "enabled", "null", "hotstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 23");
se = st.getEndingState("unlocked", "enabled", "null", "hotstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 24");
se = st.getEndingState("unlocked", "enabled", "null", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 25");
se = st.getEndingState("unlocked", "enabled", "null", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 26");
se = st.getEndingState("unlocked", "enabled", "null", "providingservice", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 27");
se = st.getEndingState("unlocked", "enabled", "null", "providingservice", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 28");
se = st.getEndingState("unlocked", "enabled", "null", "providingservice", "enableNotFailed");
- if (se != null) displayEndingState(se);
-
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
+
logger.info("??? StateTransition testcase 29");
se = st.getEndingState("unlocked", "enabled", "null", "providingservice", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 30");
se = st.getEndingState("unlocked", "enabled", "null", "providingservice", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 31");
se = st.getEndingState("unlocked", "enabled", "null", "providingservice", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 32");
se = st.getEndingState("unlocked", "enabled", "null", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 33");
se = st.getEndingState("unlocked", "enabled", "failed", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 34");
se = st.getEndingState("unlocked", "enabled", "failed", "null", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 35");
se = st.getEndingState("unlocked", "enabled", "failed", "null", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 36");
se = st.getEndingState("unlocked", "enabled", "failed", "null", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 37");
se = st.getEndingState("unlocked", "enabled", "failed", "null", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 38");
se = st.getEndingState("unlocked", "enabled", "failed", "null", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 39");
se = st.getEndingState("unlocked", "enabled", "failed", "null", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 40");
se = st.getEndingState("unlocked", "enabled", "failed", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 41");
se = st.getEndingState("unlocked", "enabled", "failed", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 42");
se = st.getEndingState("unlocked", "enabled", "failed", "coldstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 43");
se = st.getEndingState("unlocked", "enabled", "failed", "coldstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 44");
se = st.getEndingState("unlocked", "enabled", "failed", "coldstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 45");
se = st.getEndingState("unlocked", "enabled", "failed", "coldstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 46");
se = st.getEndingState("unlocked", "enabled", "failed", "coldstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 47");
se = st.getEndingState("unlocked", "enabled", "failed", "coldstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 48");
se = st.getEndingState("unlocked", "enabled", "failed", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 49");
se = st.getEndingState("unlocked", "enabled", "failed", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 50");
se = st.getEndingState("unlocked", "enabled", "failed", "hotstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 51");
se = st.getEndingState("unlocked", "enabled", "failed", "hotstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 52");
se = st.getEndingState("unlocked", "enabled", "failed", "hotstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 53");
se = st.getEndingState("unlocked", "enabled", "failed", "hotstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 54");
se = st.getEndingState("unlocked", "enabled", "failed", "hotstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 55");
se = st.getEndingState("unlocked", "enabled", "failed", "hotstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 56");
se = st.getEndingState("unlocked", "enabled", "failed", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 57");
se = st.getEndingState("unlocked", "enabled", "failed", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 58");
se = st.getEndingState("unlocked", "enabled", "failed", "providingservice", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 59");
se = st.getEndingState("unlocked", "enabled", "failed", "providingservice", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 60");
se = st.getEndingState("unlocked", "enabled", "failed", "providingservice", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 61");
se = st.getEndingState("unlocked", "enabled", "failed", "providingservice", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 62");
se = st.getEndingState("unlocked", "enabled", "failed", "providingservice", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 63");
se = st.getEndingState("unlocked", "enabled", "failed", "providingservice", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 64");
se = st.getEndingState("unlocked", "enabled", "failed", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 65");
se = st.getEndingState("unlocked", "enabled", "dependency", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 66");
se = st.getEndingState("unlocked", "enabled", "dependency", "null", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 67");
se = st.getEndingState("unlocked", "enabled", "dependency", "null", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 68");
se = st.getEndingState("unlocked", "enabled", "dependency", "null", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 69");
se = st.getEndingState("unlocked", "enabled", "dependency", "null", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 70");
se = st.getEndingState("unlocked", "enabled", "dependency", "null", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 71");
se = st.getEndingState("unlocked", "enabled", "dependency", "null", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 72");
se = st.getEndingState("unlocked", "enabled", "dependency", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 73");
se = st.getEndingState("unlocked", "enabled", "dependency", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 74");
se = st.getEndingState("unlocked", "enabled", "dependency", "coldstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 75");
se = st.getEndingState("unlocked", "enabled", "dependency", "coldstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 76");
se = st.getEndingState("unlocked", "enabled", "dependency", "coldstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 77");
se = st.getEndingState("unlocked", "enabled", "dependency", "coldstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 78");
se = st.getEndingState("unlocked", "enabled", "dependency", "coldstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 79");
se = st.getEndingState("unlocked", "enabled", "dependency", "coldstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 80");
se = st.getEndingState("unlocked", "enabled", "dependency", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 81");
se = st.getEndingState("unlocked", "enabled", "dependency", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 82");
se = st.getEndingState("unlocked", "enabled", "dependency", "hotstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 83");
se = st.getEndingState("unlocked", "enabled", "dependency", "hotstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 84");
se = st.getEndingState("unlocked", "enabled", "dependency", "hotstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 85");
se = st.getEndingState("unlocked", "enabled", "dependency", "hotstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 86");
se = st.getEndingState("unlocked", "enabled", "dependency", "hotstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 87");
se = st.getEndingState("unlocked", "enabled", "dependency", "hotstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 88");
se = st.getEndingState("unlocked", "enabled", "dependency", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 89");
se = st.getEndingState("unlocked", "enabled", "dependency", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 90");
se = st.getEndingState("unlocked", "enabled", "dependency", "providingservice", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 91");
se = st.getEndingState("unlocked", "enabled", "dependency", "providingservice", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 92");
se = st.getEndingState("unlocked", "enabled", "dependency", "providingservice", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 93");
se = st.getEndingState("unlocked", "enabled", "dependency", "providingservice", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 94");
se = st.getEndingState("unlocked", "enabled", "dependency", "providingservice", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 95");
se = st.getEndingState("unlocked", "enabled", "dependency", "providingservice", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 96");
se = st.getEndingState("unlocked", "enabled", "dependency", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 97");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 98");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "null", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 99");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "null", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 100");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "null", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 101");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "null", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 102");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "null", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 103");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "null", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 104");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 105");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 106");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "coldstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 107");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "coldstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 108");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "coldstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 109");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "coldstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 110");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "coldstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 111");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "coldstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 112");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 113");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 114");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "hotstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 115");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "hotstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 116");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "hotstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 117");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "hotstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 118");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "hotstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 119");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "hotstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 120");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 121");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 122");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "providingservice", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 123");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "providingservice", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 124");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "providingservice", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 125");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "providingservice", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 126");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "providingservice", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 127");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "providingservice", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("providingservice,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 128");
se = st.getEndingState("unlocked", "enabled", "dependency,failed", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 129");
se = st.getEndingState("unlocked", "disabled", "null", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,null,", makeString(se));
logger.info("??? StateTransition testcase 130");
se = st.getEndingState("unlocked", "disabled", "null", "null", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,null,", makeString(se));
logger.info("??? StateTransition testcase 131");
se = st.getEndingState("unlocked", "disabled", "null", "null", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 132");
se = st.getEndingState("unlocked", "disabled", "null", "null", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 133");
se = st.getEndingState("unlocked", "disabled", "null", "null", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 134");
se = st.getEndingState("unlocked", "disabled", "null", "null", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 135");
se = st.getEndingState("unlocked", "disabled", "null", "null", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,null,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 136");
se = st.getEndingState("unlocked", "disabled", "null", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,null,", makeString(se));
logger.info("??? StateTransition testcase 137");
se = st.getEndingState("unlocked", "disabled", "null", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,null,", makeString(se));
logger.info("??? StateTransition testcase 138");
se = st.getEndingState("unlocked", "disabled", "null", "coldstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,null,", makeString(se));
logger.info("??? StateTransition testcase 139");
se = st.getEndingState("unlocked", "disabled", "null", "coldstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 140");
se = st.getEndingState("unlocked", "disabled", "null", "coldstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 141");
se = st.getEndingState("unlocked", "disabled", "null", "coldstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 142");
se = st.getEndingState("unlocked", "disabled", "null", "coldstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 143");
se = st.getEndingState("unlocked", "disabled", "null", "coldstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,null,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 144");
se = st.getEndingState("unlocked", "disabled", "null", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,null,", makeString(se));
logger.info("??? StateTransition testcase 145");
se = st.getEndingState("unlocked", "disabled", "null", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,null,", makeString(se));
logger.info("??? StateTransition testcase 146");
se = st.getEndingState("unlocked", "disabled", "null", "hotstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,null,", makeString(se));
logger.info("??? StateTransition testcase 147");
se = st.getEndingState("unlocked", "disabled", "null", "hotstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 148");
se = st.getEndingState("unlocked", "disabled", "null", "hotstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 149");
se = st.getEndingState("unlocked", "disabled", "null", "hotstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 150");
se = st.getEndingState("unlocked", "disabled", "null", "hotstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 151");
se = st.getEndingState("unlocked", "disabled", "null", "hotstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,null,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 152");
se = st.getEndingState("unlocked", "disabled", "null", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,null,", makeString(se));
logger.info("??? StateTransition testcase 153");
se = st.getEndingState("unlocked", "disabled", "null", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,null,", makeString(se));
logger.info("??? StateTransition testcase 154");
se = st.getEndingState("unlocked", "disabled", "null", "providingservice", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,null,", makeString(se));
logger.info("??? StateTransition testcase 155");
se = st.getEndingState("unlocked", "disabled", "null", "providingservice", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 156");
se = st.getEndingState("unlocked", "disabled", "null", "providingservice", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 157");
se = st.getEndingState("unlocked", "disabled", "null", "providingservice", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 158");
se = st.getEndingState("unlocked", "disabled", "null", "providingservice", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 159");
se = st.getEndingState("unlocked", "disabled", "null", "providingservice", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,null,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 160");
se = st.getEndingState("unlocked", "disabled", "null", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,null,", makeString(se));
logger.info("??? StateTransition testcase 161");
se = st.getEndingState("unlocked", "disabled", "failed", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 162");
se = st.getEndingState("unlocked", "disabled", "failed", "null", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 163");
se = st.getEndingState("unlocked", "disabled", "failed", "null", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 164");
se = st.getEndingState("unlocked", "disabled", "failed", "null", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 165");
se = st.getEndingState("unlocked", "disabled", "failed", "null", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 166");
se = st.getEndingState("unlocked", "disabled", "failed", "null", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 167");
se = st.getEndingState("unlocked", "disabled", "failed", "null", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 168");
se = st.getEndingState("unlocked", "disabled", "failed", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 169");
se = st.getEndingState("unlocked", "disabled", "failed", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 170");
se = st.getEndingState("unlocked", "disabled", "failed", "coldstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 171");
se = st.getEndingState("unlocked", "disabled", "failed", "coldstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 172");
se = st.getEndingState("unlocked", "disabled", "failed", "coldstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 173");
se = st.getEndingState("unlocked", "disabled", "failed", "coldstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 174");
se = st.getEndingState("unlocked", "disabled", "failed", "coldstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 175");
se = st.getEndingState("unlocked", "disabled", "failed", "coldstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 176");
se = st.getEndingState("unlocked", "disabled", "failed", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 177");
se = st.getEndingState("unlocked", "disabled", "failed", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 178");
se = st.getEndingState("unlocked", "disabled", "failed", "hotstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 179");
se = st.getEndingState("unlocked", "disabled", "failed", "hotstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 180");
se = st.getEndingState("unlocked", "disabled", "failed", "hotstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 181");
se = st.getEndingState("unlocked", "disabled", "failed", "hotstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 182");
se = st.getEndingState("unlocked", "disabled", "failed", "hotstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 183");
se = st.getEndingState("unlocked", "disabled", "failed", "hotstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 184");
se = st.getEndingState("unlocked", "disabled", "failed", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 185");
se = st.getEndingState("unlocked", "disabled", "failed", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 186");
se = st.getEndingState("unlocked", "disabled", "failed", "providingservice", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 187");
se = st.getEndingState("unlocked", "disabled", "failed", "providingservice", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 188");
se = st.getEndingState("unlocked", "disabled", "failed", "providingservice", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 189");
se = st.getEndingState("unlocked", "disabled", "failed", "providingservice", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 190");
se = st.getEndingState("unlocked", "disabled", "failed", "providingservice", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 191");
se = st.getEndingState("unlocked", "disabled", "failed", "providingservice", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 192");
se = st.getEndingState("unlocked", "disabled", "failed", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 193");
se = st.getEndingState("unlocked", "disabled", "dependency", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 194");
se = st.getEndingState("unlocked", "disabled", "dependency", "null", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 195");
se = st.getEndingState("unlocked", "disabled", "dependency", "null", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 196");
se = st.getEndingState("unlocked", "disabled", "dependency", "null", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 197");
se = st.getEndingState("unlocked", "disabled", "dependency", "null", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 198");
se = st.getEndingState("unlocked", "disabled", "dependency", "null", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 199");
se = st.getEndingState("unlocked", "disabled", "dependency", "null", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 200");
se = st.getEndingState("unlocked", "disabled", "dependency", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 201");
se = st.getEndingState("unlocked", "disabled", "dependency", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 202");
se = st.getEndingState("unlocked", "disabled", "dependency", "coldstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 203");
se = st.getEndingState("unlocked", "disabled", "dependency", "coldstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 204");
se = st.getEndingState("unlocked", "disabled", "dependency", "coldstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 205");
se = st.getEndingState("unlocked", "disabled", "dependency", "coldstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 206");
se = st.getEndingState("unlocked", "disabled", "dependency", "coldstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 207");
se = st.getEndingState("unlocked", "disabled", "dependency", "coldstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 208");
se = st.getEndingState("unlocked", "disabled", "dependency", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 209");
se = st.getEndingState("unlocked", "disabled", "dependency", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 210");
se = st.getEndingState("unlocked", "disabled", "dependency", "hotstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 211");
se = st.getEndingState("unlocked", "disabled", "dependency", "hotstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 212");
se = st.getEndingState("unlocked", "disabled", "dependency", "hotstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 213");
se = st.getEndingState("unlocked", "disabled", "dependency", "hotstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 214");
se = st.getEndingState("unlocked", "disabled", "dependency", "hotstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 215");
se = st.getEndingState("unlocked", "disabled", "dependency", "hotstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 216");
se = st.getEndingState("unlocked", "disabled", "dependency", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 217");
se = st.getEndingState("unlocked", "disabled", "dependency", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 218");
se = st.getEndingState("unlocked", "disabled", "dependency", "providingservice", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 219");
se = st.getEndingState("unlocked", "disabled", "dependency", "providingservice", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 220");
se = st.getEndingState("unlocked", "disabled", "dependency", "providingservice", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 221");
se = st.getEndingState("unlocked", "disabled", "dependency", "providingservice", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 222");
se = st.getEndingState("unlocked", "disabled", "dependency", "providingservice", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 223");
se = st.getEndingState("unlocked", "disabled", "dependency", "providingservice", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 224");
se = st.getEndingState("unlocked", "disabled", "dependency", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 225");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 226");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "null", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 227");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "null", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 228");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "null", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 229");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "null", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 230");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "null", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 231");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "null", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 232");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 233");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 234");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "coldstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 235");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "coldstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 236");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "coldstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 237");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "coldstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 238");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "coldstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 239");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "coldstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 240");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 241");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 242");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "hotstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 243");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "hotstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 244");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "hotstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 245");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "hotstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 246");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "hotstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 247");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "hotstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 248");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 249");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 250");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "providingservice", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 251");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "providingservice", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 252");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "providingservice", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 253");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "providingservice", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 254");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "providingservice", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 255");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "providingservice", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 256");
se = st.getEndingState("unlocked", "disabled", "dependency,failed", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 257");
se = st.getEndingState("locked", "enabled", "null", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 258");
se = st.getEndingState("locked", "enabled", "null", "null", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 259");
se = st.getEndingState("locked", "enabled", "null", "null", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 260");
se = st.getEndingState("locked", "enabled", "null", "null", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 261");
se = st.getEndingState("locked", "enabled", "null", "null", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 262");
se = st.getEndingState("locked", "enabled", "null", "null", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 263");
se = st.getEndingState("locked", "enabled", "null", "null", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 264");
se = st.getEndingState("locked", "enabled", "null", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 265");
se = st.getEndingState("locked", "enabled", "null", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 266");
se = st.getEndingState("locked", "enabled", "null", "coldstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 267");
se = st.getEndingState("locked", "enabled", "null", "coldstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 268");
se = st.getEndingState("locked", "enabled", "null", "coldstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 269");
se = st.getEndingState("locked", "enabled", "null", "coldstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 270");
se = st.getEndingState("locked", "enabled", "null", "coldstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 271");
se = st.getEndingState("locked", "enabled", "null", "coldstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 272");
se = st.getEndingState("locked", "enabled", "null", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 273");
se = st.getEndingState("locked", "enabled", "null", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 274");
se = st.getEndingState("locked", "enabled", "null", "hotstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 275");
se = st.getEndingState("locked", "enabled", "null", "hotstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 276");
se = st.getEndingState("locked", "enabled", "null", "hotstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 277");
se = st.getEndingState("locked", "enabled", "null", "hotstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 278");
se = st.getEndingState("locked", "enabled", "null", "hotstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 279");
se = st.getEndingState("locked", "enabled", "null", "hotstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,StandbyStateException", makeString(se));
logger.info("??? StateTransition testcase 280");
se = st.getEndingState("locked", "enabled", "null", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 281");
se = st.getEndingState("locked", "enabled", "null", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 282");
se = st.getEndingState("locked", "enabled", "null", "providingservice", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 283");
se = st.getEndingState("locked", "enabled", "null", "providingservice", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 284");
se = st.getEndingState("locked", "enabled", "null", "providingservice", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 285");
se = st.getEndingState("locked", "enabled", "null", "providingservice", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 286");
se = st.getEndingState("locked", "enabled", "null", "providingservice", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 287");
se = st.getEndingState("locked", "enabled", "null", "providingservice", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,StandbyStateException", makeString(se));
logger.info("??? StateTransition testcase 288");
se = st.getEndingState("locked", "enabled", "null", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 289");
se = st.getEndingState("locked", "enabled", "failed", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 290");
se = st.getEndingState("locked", "enabled", "failed", "null", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 291");
se = st.getEndingState("locked", "enabled", "failed", "null", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 292");
se = st.getEndingState("locked", "enabled", "failed", "null", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 293");
se = st.getEndingState("locked", "enabled", "failed", "null", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 294");
se = st.getEndingState("locked", "enabled", "failed", "null", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 295");
se = st.getEndingState("locked", "enabled", "failed", "null", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 296");
se = st.getEndingState("locked", "enabled", "failed", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 297");
se = st.getEndingState("locked", "enabled", "failed", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 298");
se = st.getEndingState("locked", "enabled", "failed", "coldstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 299");
se = st.getEndingState("locked", "enabled", "failed", "coldstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 300");
se = st.getEndingState("locked", "enabled", "failed", "coldstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 301");
se = st.getEndingState("locked", "enabled", "failed", "coldstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 302");
se = st.getEndingState("locked", "enabled", "failed", "coldstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 303");
se = st.getEndingState("locked", "enabled", "failed", "coldstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 304");
se = st.getEndingState("locked", "enabled", "failed", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 305");
se = st.getEndingState("locked", "enabled", "failed", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 306");
se = st.getEndingState("locked", "enabled", "failed", "hotstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 307");
se = st.getEndingState("locked", "enabled", "failed", "hotstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 308");
se = st.getEndingState("locked", "enabled", "failed", "hotstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 309");
se = st.getEndingState("locked", "enabled", "failed", "hotstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 310");
se = st.getEndingState("locked", "enabled", "failed", "hotstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 311");
se = st.getEndingState("locked", "enabled", "failed", "hotstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 312");
se = st.getEndingState("locked", "enabled", "failed", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 313");
se = st.getEndingState("locked", "enabled", "failed", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 314");
se = st.getEndingState("locked", "enabled", "failed", "providingservice", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 315");
se = st.getEndingState("locked", "enabled", "failed", "providingservice", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 316");
se = st.getEndingState("locked", "enabled", "failed", "providingservice", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 317");
se = st.getEndingState("locked", "enabled", "failed", "providingservice", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 318");
se = st.getEndingState("locked", "enabled", "failed", "providingservice", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 319");
se = st.getEndingState("locked", "enabled", "failed", "providingservice", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 320");
se = st.getEndingState("locked", "enabled", "failed", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 321");
se = st.getEndingState("locked", "enabled", "dependency", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 322");
se = st.getEndingState("locked", "enabled", "dependency", "null", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 323");
se = st.getEndingState("locked", "enabled", "dependency", "null", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 324");
se = st.getEndingState("locked", "enabled", "dependency", "null", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 325");
se = st.getEndingState("locked", "enabled", "dependency", "null", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 326");
se = st.getEndingState("locked", "enabled", "dependency", "null", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 327");
se = st.getEndingState("locked", "enabled", "dependency", "null", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 328");
se = st.getEndingState("locked", "enabled", "dependency", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 329");
se = st.getEndingState("locked", "enabled", "dependency", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 330");
se = st.getEndingState("locked", "enabled", "dependency", "coldstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 331");
se = st.getEndingState("locked", "enabled", "dependency", "coldstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 332");
se = st.getEndingState("locked", "enabled", "dependency", "coldstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 333");
se = st.getEndingState("locked", "enabled", "dependency", "coldstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 334");
se = st.getEndingState("locked", "enabled", "dependency", "coldstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 335");
se = st.getEndingState("locked", "enabled", "dependency", "coldstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 336");
se = st.getEndingState("locked", "enabled", "dependency", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 337");
se = st.getEndingState("locked", "enabled", "dependency", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 338");
se = st.getEndingState("locked", "enabled", "dependency", "hotstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 339");
se = st.getEndingState("locked", "enabled", "dependency", "hotstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 340");
se = st.getEndingState("locked", "enabled", "dependency", "hotstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 341");
se = st.getEndingState("locked", "enabled", "dependency", "hotstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 342");
se = st.getEndingState("locked", "enabled", "dependency", "hotstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 343");
se = st.getEndingState("locked", "enabled", "dependency", "hotstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 344");
se = st.getEndingState("locked", "enabled", "dependency", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 345");
se = st.getEndingState("locked", "enabled", "dependency", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 346");
se = st.getEndingState("locked", "enabled", "dependency", "providingservice", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 347");
se = st.getEndingState("locked", "enabled", "dependency", "providingservice", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 348");
se = st.getEndingState("locked", "enabled", "dependency", "providingservice", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 349");
se = st.getEndingState("locked", "enabled", "dependency", "providingservice", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 350");
se = st.getEndingState("locked", "enabled", "dependency", "providingservice", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 351");
se = st.getEndingState("locked", "enabled", "dependency", "providingservice", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 352");
se = st.getEndingState("locked", "enabled", "dependency", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 353");
se = st.getEndingState("locked", "enabled", "dependency,failed", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 354");
se = st.getEndingState("locked", "enabled", "dependency,failed", "null", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 355");
se = st.getEndingState("locked", "enabled", "dependency,failed", "null", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 356");
se = st.getEndingState("locked", "enabled", "dependency,failed", "null", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 357");
se = st.getEndingState("locked", "enabled", "dependency,failed", "null", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 358");
se = st.getEndingState("locked", "enabled", "dependency,failed", "null", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 359");
se = st.getEndingState("locked", "enabled", "dependency,failed", "null", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 360");
se = st.getEndingState("locked", "enabled", "dependency,failed", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 361");
se = st.getEndingState("locked", "enabled", "dependency,failed", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 362");
se = st.getEndingState("locked", "enabled", "dependency,failed", "coldstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 363");
se = st.getEndingState("locked", "enabled", "dependency,failed", "coldstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 364");
se = st.getEndingState("locked", "enabled", "dependency,failed", "coldstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 365");
se = st.getEndingState("locked", "enabled", "dependency,failed", "coldstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 366");
se = st.getEndingState("locked", "enabled", "dependency,failed", "coldstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 367");
se = st.getEndingState("locked", "enabled", "dependency,failed", "coldstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 368");
se = st.getEndingState("locked", "enabled", "dependency,failed", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 369");
se = st.getEndingState("locked", "enabled", "dependency,failed", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 370");
se = st.getEndingState("locked", "enabled", "dependency,failed", "hotstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 371");
se = st.getEndingState("locked", "enabled", "dependency,failed", "hotstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 372");
se = st.getEndingState("locked", "enabled", "dependency,failed", "hotstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 373");
se = st.getEndingState("locked", "enabled", "dependency,failed", "hotstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 374");
se = st.getEndingState("locked", "enabled", "dependency,failed", "hotstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 375");
se = st.getEndingState("locked", "enabled", "dependency,failed", "hotstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 376");
se = st.getEndingState("locked", "enabled", "dependency,failed", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 377");
se = st.getEndingState("locked", "enabled", "dependency,failed", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 378");
se = st.getEndingState("locked", "enabled", "dependency,failed", "providingservice", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("hotstandby,unlocked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 379");
se = st.getEndingState("locked", "enabled", "dependency,failed", "providingservice", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 380");
se = st.getEndingState("locked", "enabled", "dependency,failed", "providingservice", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 381");
se = st.getEndingState("locked", "enabled", "dependency,failed", "providingservice", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 382");
se = st.getEndingState("locked", "enabled", "dependency,failed", "providingservice", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 383");
se = st.getEndingState("locked", "enabled", "dependency,failed", "providingservice", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 384");
se = st.getEndingState("locked", "enabled", "dependency,failed", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 385");
se = st.getEndingState("locked", "disabled", "null", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,null,", makeString(se));
logger.info("??? StateTransition testcase 386");
se = st.getEndingState("locked", "disabled", "null", "null", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,null,", makeString(se));
logger.info("??? StateTransition testcase 387");
se = st.getEndingState("locked", "disabled", "null", "null", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 388");
se = st.getEndingState("locked", "disabled", "null", "null", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 389");
se = st.getEndingState("locked", "disabled", "null", "null", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 390");
se = st.getEndingState("locked", "disabled", "null", "null", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 391");
se = st.getEndingState("locked", "disabled", "null", "null", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,null,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 392");
se = st.getEndingState("locked", "disabled", "null", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,null,", makeString(se));
logger.info("??? StateTransition testcase 393");
se = st.getEndingState("locked", "disabled", "null", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,null,", makeString(se));
logger.info("??? StateTransition testcase 394");
se = st.getEndingState("locked", "disabled", "null", "coldstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,null,", makeString(se));
logger.info("??? StateTransition testcase 395");
se = st.getEndingState("locked", "disabled", "null", "coldstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 396");
se = st.getEndingState("locked", "disabled", "null", "coldstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 397");
se = st.getEndingState("locked", "disabled", "null", "coldstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 398");
se = st.getEndingState("locked", "disabled", "null", "coldstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 399");
se = st.getEndingState("locked", "disabled", "null", "coldstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,null,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 400");
se = st.getEndingState("locked", "disabled", "null", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,null,", makeString(se));
logger.info("??? StateTransition testcase 401");
se = st.getEndingState("locked", "disabled", "null", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,null,", makeString(se));
logger.info("??? StateTransition testcase 402");
se = st.getEndingState("locked", "disabled", "null", "hotstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,null,", makeString(se));
logger.info("??? StateTransition testcase 403");
se = st.getEndingState("locked", "disabled", "null", "hotstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 404");
se = st.getEndingState("locked", "disabled", "null", "hotstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 405");
se = st.getEndingState("locked", "disabled", "null", "hotstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 406");
se = st.getEndingState("locked", "disabled", "null", "hotstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 407");
se = st.getEndingState("locked", "disabled", "null", "hotstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,null,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 408");
se = st.getEndingState("locked", "disabled", "null", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,null,", makeString(se));
logger.info("??? StateTransition testcase 409");
se = st.getEndingState("locked", "disabled", "null", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,null,", makeString(se));
logger.info("??? StateTransition testcase 410");
se = st.getEndingState("locked", "disabled", "null", "providingservice", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,null,", makeString(se));
logger.info("??? StateTransition testcase 411");
se = st.getEndingState("locked", "disabled", "null", "providingservice", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 412");
se = st.getEndingState("locked", "disabled", "null", "providingservice", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 413");
se = st.getEndingState("locked", "disabled", "null", "providingservice", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 414");
se = st.getEndingState("locked", "disabled", "null", "providingservice", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 415");
se = st.getEndingState("locked", "disabled", "null", "providingservice", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,null,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 416");
se = st.getEndingState("locked", "disabled", "null", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,null,", makeString(se));
logger.info("??? StateTransition testcase 417");
se = st.getEndingState("locked", "disabled", "failed", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 418");
se = st.getEndingState("locked", "disabled", "failed", "null", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 419");
se = st.getEndingState("locked", "disabled", "failed", "null", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 420");
se = st.getEndingState("locked", "disabled", "failed", "null", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 421");
se = st.getEndingState("locked", "disabled", "failed", "null", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 422");
se = st.getEndingState("locked", "disabled", "failed", "null", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 423");
se = st.getEndingState("locked", "disabled", "failed", "null", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 424");
se = st.getEndingState("locked", "disabled", "failed", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 425");
se = st.getEndingState("locked", "disabled", "failed", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 426");
se = st.getEndingState("locked", "disabled", "failed", "coldstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 427");
se = st.getEndingState("locked", "disabled", "failed", "coldstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 428");
se = st.getEndingState("locked", "disabled", "failed", "coldstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 429");
se = st.getEndingState("locked", "disabled", "failed", "coldstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 430");
se = st.getEndingState("locked", "disabled", "failed", "coldstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 431");
se = st.getEndingState("locked", "disabled", "failed", "coldstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 432");
se = st.getEndingState("locked", "disabled", "failed", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 433");
se = st.getEndingState("locked", "disabled", "failed", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 434");
se = st.getEndingState("locked", "disabled", "failed", "hotstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 435");
se = st.getEndingState("locked", "disabled", "failed", "hotstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 436");
se = st.getEndingState("locked", "disabled", "failed", "hotstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 437");
se = st.getEndingState("locked", "disabled", "failed", "hotstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 438");
se = st.getEndingState("locked", "disabled", "failed", "hotstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 439");
se = st.getEndingState("locked", "disabled", "failed", "hotstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 440");
se = st.getEndingState("locked", "disabled", "failed", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 441");
se = st.getEndingState("locked", "disabled", "failed", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 442");
se = st.getEndingState("locked", "disabled", "failed", "providingservice", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 443");
se = st.getEndingState("locked", "disabled", "failed", "providingservice", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 444");
se = st.getEndingState("locked", "disabled", "failed", "providingservice", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 445");
se = st.getEndingState("locked", "disabled", "failed", "providingservice", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 446");
se = st.getEndingState("locked", "disabled", "failed", "providingservice", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 447");
se = st.getEndingState("locked", "disabled", "failed", "providingservice", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 448");
se = st.getEndingState("locked", "disabled", "failed", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 449");
se = st.getEndingState("locked", "disabled", "dependency", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 450");
se = st.getEndingState("locked", "disabled", "dependency", "null", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 451");
se = st.getEndingState("locked", "disabled", "dependency", "null", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 452");
se = st.getEndingState("locked", "disabled", "dependency", "null", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 453");
se = st.getEndingState("locked", "disabled", "dependency", "null", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 454");
se = st.getEndingState("locked", "disabled", "dependency", "null", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 455");
se = st.getEndingState("locked", "disabled", "dependency", "null", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 456");
se = st.getEndingState("locked", "disabled", "dependency", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 457");
se = st.getEndingState("locked", "disabled", "dependency", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 458");
se = st.getEndingState("locked", "disabled", "dependency", "coldstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 459");
se = st.getEndingState("locked", "disabled", "dependency", "coldstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 460");
se = st.getEndingState("locked", "disabled", "dependency", "coldstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 461");
se = st.getEndingState("locked", "disabled", "dependency", "coldstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 462");
se = st.getEndingState("locked", "disabled", "dependency", "coldstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 463");
se = st.getEndingState("locked", "disabled", "dependency", "coldstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 464");
se = st.getEndingState("locked", "disabled", "dependency", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 465");
se = st.getEndingState("locked", "disabled", "dependency", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 466");
se = st.getEndingState("locked", "disabled", "dependency", "hotstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 467");
se = st.getEndingState("locked", "disabled", "dependency", "hotstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 468");
se = st.getEndingState("locked", "disabled", "dependency", "hotstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 469");
se = st.getEndingState("locked", "disabled", "dependency", "hotstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 470");
se = st.getEndingState("locked", "disabled", "dependency", "hotstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 471");
se = st.getEndingState("locked", "disabled", "dependency", "hotstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 472");
se = st.getEndingState("locked", "disabled", "dependency", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 473");
se = st.getEndingState("locked", "disabled", "dependency", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 474");
se = st.getEndingState("locked", "disabled", "dependency", "providingservice", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 475");
se = st.getEndingState("locked", "disabled", "dependency", "providingservice", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 476");
se = st.getEndingState("locked", "disabled", "dependency", "providingservice", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 477");
se = st.getEndingState("locked", "disabled", "dependency", "providingservice", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 478");
se = st.getEndingState("locked", "disabled", "dependency", "providingservice", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,enabled,null,", makeString(se));
logger.info("??? StateTransition testcase 479");
se = st.getEndingState("locked", "disabled", "dependency", "providingservice", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 480");
se = st.getEndingState("locked", "disabled", "dependency", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 481");
se = st.getEndingState("locked", "disabled", "dependency,failed", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 482");
se = st.getEndingState("locked", "disabled", "dependency,failed", "null", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("null,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 483");
se = st.getEndingState("locked", "disabled", "dependency,failed", "null", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 484");
se = st.getEndingState("locked", "disabled", "dependency,failed", "null", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 485");
se = st.getEndingState("locked", "disabled", "dependency,failed", "null", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 486");
se = st.getEndingState("locked", "disabled", "dependency,failed", "null", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("null,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 487");
se = st.getEndingState("locked", "disabled", "dependency,failed", "null", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,failed,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 488");
se = st.getEndingState("locked", "disabled", "dependency,failed", "null", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 489");
se = st.getEndingState("locked", "disabled", "dependency,failed", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 490");
se = st.getEndingState("locked", "disabled", "dependency,failed", "coldstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 491");
se = st.getEndingState("locked", "disabled", "dependency,failed", "coldstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 492");
se = st.getEndingState("locked", "disabled", "dependency,failed", "coldstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 493");
se = st.getEndingState("locked", "disabled", "dependency,failed", "coldstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 494");
se = st.getEndingState("locked", "disabled", "dependency,failed", "coldstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 495");
se = st.getEndingState("locked", "disabled", "dependency,failed", "coldstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,failed,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 496");
se = st.getEndingState("locked", "disabled", "dependency,failed", "coldstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 497");
se = st.getEndingState("locked", "disabled", "dependency,failed", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 498");
se = st.getEndingState("locked", "disabled", "dependency,failed", "hotstandby", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 499");
se = st.getEndingState("locked", "disabled", "dependency,failed", "hotstandby", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 500");
se = st.getEndingState("locked", "disabled", "dependency,failed", "hotstandby", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 501");
se = st.getEndingState("locked", "disabled", "dependency,failed", "hotstandby", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 502");
se = st.getEndingState("locked", "disabled", "dependency,failed", "hotstandby", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 503");
se = st.getEndingState("locked", "disabled", "dependency,failed", "hotstandby", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,failed,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 504");
se = st.getEndingState("locked", "disabled", "dependency,failed", "hotstandby", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 505");
se = st.getEndingState("locked", "disabled", "dependency,failed", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 506");
se = st.getEndingState("locked", "disabled", "dependency,failed", "providingservice", "unlock");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,unlocked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 507");
se = st.getEndingState("locked", "disabled", "dependency,failed", "providingservice", "disableFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 508");
se = st.getEndingState("locked", "disabled", "dependency,failed", "providingservice", "enableNotFailed");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,", makeString(se));
logger.info("??? StateTransition testcase 509");
se = st.getEndingState("locked", "disabled", "dependency,failed", "providingservice", "disableDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,failed,", makeString(se));
logger.info("??? StateTransition testcase 510");
se = st.getEndingState("locked", "disabled", "dependency,failed", "providingservice", "enableNoDependency");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,failed,", makeString(se));
logger.info("??? StateTransition testcase 511");
se = st.getEndingState("locked", "disabled", "dependency,failed", "providingservice", "promote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,failed,StandbyStatusException", makeString(se));
logger.info("??? StateTransition testcase 512");
se = st.getEndingState("locked", "disabled", "dependency,failed", "providingservice", "demote");
- if (se != null) displayEndingState(se);
+ assertEquals("coldstandby,locked,disabled,dependency,failed,", makeString(se));
} catch (Exception ex) {
logger.error("EndingState NOT found");
throw new Exception("EndingState NOT found. " + ex);
}
-
- //if (emf.isOpen()) {
- //emf.close();
- //}
+
} catch(Exception ex) {
logger.error("Exception: {}" + ex.toString());
throw new Exception("Failure getting ending state. " + ex );
- } finally {
- if (emf != null && emf.isOpen()) {
- emf.close();
- }
}
logger.info("\n\nStateTransitionTest: Exit\n\n");
}
-
- private void displayEndingState(StateElement se)
+
+ /**
+ * Converts a state element to a comma-separated string.
+ * @param se element to be converted
+ * @return a string representing the element
+ */
+ private String makeString(StateElement se)
{
- String endingStandbyStatus = se.getEndingStandbyStatus();
+ if(se == null) {
+ return null;
+ }
+
+ StringBuilder b = new StringBuilder();
+
+ String endingStandbyStatus = se.getEndingStandbyStatus();
if (endingStandbyStatus != null) {
- endingStandbyStatus.replace(".", ",");
+ b.append(endingStandbyStatus.replace(".", ","));
+ b.append(',');
}
- logger.info("EndingAdminState = [{}]" + se.getEndingAdminState());
- logger.info("EndingOpState = [{}]" + se.getEndingOpState());
- logger.info("EndingAvailStatus = [{}]" + se.getEndingAvailStatus());
- logger.info("EndingStandbyStatus= [{}]" + endingStandbyStatus);
- logger.info("Exception = [{}]" + se.getException());
- }
-} \ No newline at end of file
+
+ b.append(se.getEndingAdminState());
+ b.append(',');
+ b.append(se.getEndingOpState());
+ b.append(',');
+ b.append(se.getEndingAvailStatus());
+ b.append(',');
+ b.append(se.getException());
+
+ return b.toString();
+ }
+}
diff --git a/integrity-monitor/src/test/java/org/onap/policy/common/im/test/AllSeemsWellTest.java b/integrity-monitor/src/test/java/org/onap/policy/common/im/test/AllSeemsWellTest.java
deleted file mode 100644
index 6fa8114d..00000000
--- a/integrity-monitor/src/test/java/org/onap/policy/common/im/test/AllSeemsWellTest.java
+++ /dev/null
@@ -1,265 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Integrity Monitor
- * ================================================================================
- * Copyright (C) 2017 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.common.im.test;
-
-import static org.junit.Assert.*;
-
-import java.util.Map;
-import java.util.Properties;
-
-import javax.persistence.EntityManager;
-import javax.persistence.EntityManagerFactory;
-import javax.persistence.EntityTransaction;
-import javax.persistence.Persistence;
-
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.onap.policy.common.im.IntegrityMonitor;
-import org.onap.policy.common.im.IntegrityMonitorProperties;
-import org.onap.policy.common.im.StateManagement;
-import org.onap.policy.common.im.jpa.ForwardProgressEntity;
-import org.onap.policy.common.im.jpa.StateManagementEntity;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class AllSeemsWellTest {
- private static Logger logger = LoggerFactory.getLogger(AllSeemsWellTest.class);
- private static Properties myProp;
- private static EntityManagerFactory emf;
- private static EntityManager em;
- private static EntityTransaction et;
- private static String resourceName;
- private static Properties systemProps;
-
- private static final String DEFAULT_DB_DRIVER = "org.h2.Driver";
- private static final String DEFAULT_DB_URL = "jdbc:h2:file:./sql/imTest";
- private static final String DEFAULT_DB_USER = "sa";
- private static final String DEFAULT_DB_PWD = "";
-
- @BeforeClass
- public static void setUpClass() throws Exception {
-
- }
-
- @AfterClass
- public static void tearDownClass() throws Exception {
- }
-
- @Before
- public void setUp() throws Exception {
- IntegrityMonitor.setUnitTesting(true);
-
- myProp = new Properties();
- myProp.put(IntegrityMonitorProperties.DB_DRIVER, AllSeemsWellTest.DEFAULT_DB_DRIVER);
- myProp.put(IntegrityMonitorProperties.DB_URL, AllSeemsWellTest.DEFAULT_DB_URL);
- myProp.put(IntegrityMonitorProperties.DB_USER, AllSeemsWellTest.DEFAULT_DB_USER);
- myProp.put(IntegrityMonitorProperties.DB_PWD, AllSeemsWellTest.DEFAULT_DB_PWD);
- myProp.put(IntegrityMonitorProperties.SITE_NAME, "SiteA");
- myProp.put(IntegrityMonitorProperties.NODE_TYPE, "pap");
-
- // set JMX remote port in system properties
- systemProps = System.getProperties();
- systemProps.put("com.sun.management.jmxremote.port", "9797");
-
- resourceName = "siteA.pap1";
-
- //Create the data schema and entity manager factory
- emf = Persistence.createEntityManagerFactory("schemaPU", myProp);
-
- // Create an entity manager to use the DB
- em = emf.createEntityManager();
-
- }
-
-
- @After
- public void tearDown() throws Exception {
- // clear jmx remote port setting
- systemProps.remove("com.sun.management.jmxremote.port");
- }
-
- //Ignore
- @Test
- public void testAllSeemsWell() throws Exception {
- logger.debug("\nIntegrityMonitorTest: Entering testAllSeemsWell\n\n");
-
- // parameters are passed via a properties file
- myProp.put(IntegrityMonitorProperties.DEPENDENCY_GROUPS, "");
- myProp.put(IntegrityMonitorProperties.TEST_VIA_JMX, "false");
- myProp.put(IntegrityMonitorProperties.REFRESH_STATE_AUDIT_INTERVAL_MS, "-1");
- myProp.put(IntegrityMonitorProperties.STATE_AUDIT_INTERVAL_MS, "-1");
- myProp.put(IntegrityMonitorProperties.FAILED_COUNTER_THRESHOLD, "1");
- myProp.put(IntegrityMonitorProperties.FP_MONITOR_INTERVAL, "5");
- myProp.put(IntegrityMonitorProperties.TEST_TRANS_INTERVAL, "1");
- myProp.put(IntegrityMonitorProperties.WRITE_FPC_INTERVAL, "1");
-
- IntegrityMonitor.updateProperties(myProp);
- /*
- * The monitorInterval is 5 and the failedCounterThreshold is 1
- * A forward progress will be stale after 5 seconds.
- */
-
- et = em.getTransaction();
- et.begin();
-
- // Make sure we start with the DB clean
- em.createQuery("DELETE FROM StateManagementEntity").executeUpdate();
- em.createQuery("DELETE FROM ResourceRegistrationEntity").executeUpdate();
- em.createQuery("DELETE FROM ForwardProgressEntity").executeUpdate();
-
- em.flush();
- et.commit();
-
- IntegrityMonitor.deleteInstance();
-
- IntegrityMonitor im = IntegrityMonitor.getInstance(resourceName, myProp);
-
- StateManagement sm = im.getStateManager();
-
- //Give it time to set the states in the DB
- Thread.sleep(15000);
-
- //Check the state
- logger.debug("\n\ntestAllSeemsWell starting im state \nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
- sm.getAdminState(),
- sm.getOpState(),
- sm.getAvailStatus(),
- sm.getStandbyStatus());
-
- assertTrue(sm.getOpState().equals(StateManagement.ENABLED));
-
- //Indicate a failure
- im.allSeemsWell(this.getClass().getName(), IntegrityMonitorProperties.ALLNOTWELL,
- "'AllSeemsWellTest - ALLNOTWELL'");
-
- //Wait for the state to change due to ALLNOTWELL
- Thread.sleep(15000);
- //Check the state
- logger.debug("\n\ntestAllSeemsWell after ALLNOTWELL: im state \nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
- sm.getAdminState(),
- sm.getOpState(),
- sm.getAvailStatus(),
- sm.getStandbyStatus());
-
- //assertTrue(sm.getOpState().equals(StateManagement.DISABLED));
-
- Map<String, String> allNotWellMap = im.getAllNotWellMap();
- for(String key: allNotWellMap.keySet()){
- logger.debug("AllSeemsWellTest: allNotWellMap: key = {} msg = {}", key, allNotWellMap.get(key));
- }
- //assertTrue(allNotWellMap.size() == 1);
-
- Map<String,String> allSeemsWellMap = im.getAllSeemsWellMap();
- //assertTrue(allSeemsWellMap.isEmpty());
-
- //Return to normal
- im.allSeemsWell(this.getClass().getName(), IntegrityMonitorProperties.ALLSEEMSWELL,
- "'AllSeemsWellTest - ALLSEEMSWELL'");
-
- //Wait for the state to change due to ALLNOTWELL
- Thread.sleep(15000);
- //Check the state
- logger.debug("\n\ntestAllSeemsWell after ALLSEEMSWELL: im state \nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
- sm.getAdminState(),
- sm.getOpState(),
- sm.getAvailStatus(),
- sm.getStandbyStatus());
-
- //assertTrue(sm.getOpState().equals(StateManagement.ENABLED));
-
- allNotWellMap = im.getAllNotWellMap();
- assertTrue(allNotWellMap.isEmpty());
-
- allSeemsWellMap = im.getAllSeemsWellMap();
- assertTrue(allSeemsWellMap.size() == 1);
- for(String key: allSeemsWellMap.keySet()){
- logger.debug("AllSeemsWellTest: allSeemsWellMap: key = {} msg = {}", key, allSeemsWellMap.get(key));
- }
-
- //Check for null parameters
- try{
- im.allSeemsWell(null, IntegrityMonitorProperties.ALLSEEMSWELL,
- "'AllSeemsWellTest - ALLSEEMSWELL'");
- assertTrue(false);
- }catch (IllegalArgumentException e) {
- assertTrue(true);
- }
-
- try{
- im.allSeemsWell("", IntegrityMonitorProperties.ALLSEEMSWELL,
- "'AllSeemsWellTest - ALLSEEMSWELL'");
- assertTrue(false);
- }catch (IllegalArgumentException e) {
- assertTrue(true);
- }
-
- try{
- im.allSeemsWell(this.getClass().getName(), null,
- "'AllSeemsWellTest - ALLSEEMSWELL'");
- assertTrue(false);
- }catch (IllegalArgumentException e) {
- assertTrue(true);
- }
-
- try{
- im.allSeemsWell(this.getClass().getName(), IntegrityMonitorProperties.ALLSEEMSWELL,
- null);
- assertTrue(false);
- }catch (IllegalArgumentException e) {
- assertTrue(true);
- }
-
- try{
- im.allSeemsWell(this.getClass().getName(), IntegrityMonitorProperties.ALLSEEMSWELL,
- "");
- assertTrue(false);
- }catch (IllegalArgumentException e) {
- assertTrue(true);
- }
-
- // undo settings
- myProp.put(IntegrityMonitorProperties.FAILED_COUNTER_THRESHOLD, Integer.toString(IntegrityMonitorProperties.DEFAULT_FAILED_COUNTER_THRESHOLD));
- myProp.put(IntegrityMonitorProperties.FP_MONITOR_INTERVAL, Integer.toString(IntegrityMonitorProperties.DEFAULT_MONITOR_INTERVAL));
- myProp.put(IntegrityMonitorProperties.FAILED_COUNTER_THRESHOLD, Integer.toString(IntegrityMonitorProperties.DEFAULT_FAILED_COUNTER_THRESHOLD));
- myProp.put(IntegrityMonitorProperties.FP_MONITOR_INTERVAL, Integer.toString(IntegrityMonitorProperties.DEFAULT_MONITOR_INTERVAL));
- myProp.put(IntegrityMonitorProperties.TEST_TRANS_INTERVAL, Integer.toString(IntegrityMonitorProperties.DEFAULT_TEST_INTERVAL));
- myProp.put(IntegrityMonitorProperties.WRITE_FPC_INTERVAL, Integer.toString(IntegrityMonitorProperties.DEFAULT_WRITE_FPC_INTERVAL));
- IntegrityMonitor.updateProperties(myProp);
-
- et = em.getTransaction();
-
- et.begin();
- // Make sure we leave the DB clean
- em.createQuery("DELETE FROM StateManagementEntity").executeUpdate();
- em.createQuery("DELETE FROM ResourceRegistrationEntity").executeUpdate();
- em.createQuery("DELETE FROM ForwardProgressEntity").executeUpdate();
-
- em.flush();
- et.commit();
-
- logger.debug("\n\ntestAllSeemsWell: Exit\n\n");
- }
-
-}
diff --git a/integrity-monitor/src/test/java/org/onap/policy/common/im/test/IntegrityMonitorTest.java b/integrity-monitor/src/test/java/org/onap/policy/common/im/test/IntegrityMonitorTest.java
deleted file mode 100644
index 1efc90cc..00000000
--- a/integrity-monitor/src/test/java/org/onap/policy/common/im/test/IntegrityMonitorTest.java
+++ /dev/null
@@ -1,1095 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Integrity Monitor
- * ================================================================================
- * Copyright (C) 2017 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.common.im.test;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Properties;
-
-import javax.persistence.EntityManager;
-import javax.persistence.EntityManagerFactory;
-import javax.persistence.EntityTransaction;
-import javax.persistence.Persistence;
-import javax.persistence.Query;
-import javax.persistence.TemporalType;
-
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.onap.policy.common.im.IntegrityMonitor;
-import org.onap.policy.common.im.IntegrityMonitorProperties;
-import org.onap.policy.common.im.StateManagement;
-import org.onap.policy.common.im.jpa.ForwardProgressEntity;
-import org.onap.policy.common.im.jpa.ResourceRegistrationEntity;
-import org.onap.policy.common.im.jpa.StateManagementEntity;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/*
- * All JUnits are designed to run in the local development environment
- * where they have write privileges and can execute time-sensitive
- * tasks.
- */
-public class IntegrityMonitorTest {
- private static Logger logger = LoggerFactory.getLogger(IntegrityMonitorTest.class);
- private static Properties myProp;
- private static EntityManagerFactory emf;
- private static EntityManager em;
- private static EntityTransaction et;
- private static String resourceName;
- private static Properties systemProps;
-
- private static final String DEFAULT_DB_DRIVER = "org.h2.Driver";
- private static final String DEFAULT_DB_URL = "jdbc:h2:file:./sql/imTest";
- private static final String DEFAULT_DB_USER = "sa";
- private static final String DEFAULT_DB_PWD = "";
-
- @BeforeClass
- public static void setUpClass() throws Exception {
-
- }
-
- @AfterClass
- public static void tearDownClass() throws Exception {
- }
-
- @Before
- public void setUp() throws Exception {
- IntegrityMonitor.setUnitTesting(true);
-
- cleanMyProp();
-
- // set JMX remote port in system properties
- systemProps = System.getProperties();
- systemProps.put("com.sun.management.jmxremote.port", "9797");
-
- resourceName = "siteA.pap1";
-
- //Create the data schema and entity manager factory
- emf = Persistence.createEntityManagerFactory("schemaPU", myProp);
-
- // Create an entity manager to use the DB
- em = emf.createEntityManager();
-
- }
-
-
- @After
- public void tearDown() throws Exception {
- // clear jmx remote port setting
- systemProps.remove("com.sun.management.jmxremote.port");
- }
-
- private void cleanMyProp(){
- myProp = new Properties();
- myProp.put(IntegrityMonitorProperties.DB_DRIVER, IntegrityMonitorTest.DEFAULT_DB_DRIVER);
- myProp.put(IntegrityMonitorProperties.DB_URL, IntegrityMonitorTest.DEFAULT_DB_URL);
- myProp.put(IntegrityMonitorProperties.DB_USER, IntegrityMonitorTest.DEFAULT_DB_USER);
- myProp.put(IntegrityMonitorProperties.DB_PWD, IntegrityMonitorTest.DEFAULT_DB_PWD);
- myProp.put(IntegrityMonitorProperties.SITE_NAME, "SiteA");
- myProp.put(IntegrityMonitorProperties.NODE_TYPE, "pap");
- }
-
- private void cleanDb(){
- et = em.getTransaction();
-
- et.begin();
- // Make sure we leave the DB clean
- em.createQuery("DELETE FROM StateManagementEntity").executeUpdate();
- em.createQuery("DELETE FROM ResourceRegistrationEntity").executeUpdate();
- em.createQuery("DELETE FROM ForwardProgressEntity").executeUpdate();
- em.flush();
- et.commit();
- }
-
-
- /*
- * The following runs all tests and controls the order of execution. If you allow
- * the tests to execute individually, you cannot predict the order and some
- * conflicts may occur.
- */
- //@Ignore
- @Test
- public void runAllTests() throws Exception{
- testSanityJmx();
- testIM();
- testSanityState();
- testRefreshStateAudit();
- testStateCheck();
- testGetAllForwardProgressEntity();
- testStateAudit();
- }
-
- /*
- * The following test verifies the following test cases:
- * New Install
- * New Install - Bad Dependency data
- * Recovery from bad dependency data
- * Lock
- * Lock restart
- * Unlock
- * Unlock restart
- */
- public void testSanityJmx() throws Exception {
- logger.debug("\nIntegrityMonitorTest: Entering testSanityJmx\n\n");
- cleanDb();
- cleanMyProp();
- IntegrityMonitor.deleteInstance();
-
- String dependent = "group1_logparser";
-
- // parameters are passed via a properties file
- myProp.put(IntegrityMonitorProperties.DEPENDENCY_GROUPS, dependent);
- myProp.put(IntegrityMonitorProperties.TEST_VIA_JMX, "true");
- // Disable the integrity monitor so it will not interfere
- myProp.put(IntegrityMonitorProperties.FP_MONITOR_INTERVAL, "-1");
- // Disable the refresh state audit
- myProp.put(IntegrityMonitorProperties.REFRESH_STATE_AUDIT_INTERVAL_MS, "-1");
- // Disable the state audit
- myProp.put(IntegrityMonitorProperties.STATE_AUDIT_INTERVAL_MS, "-1");
- // Disable the test transaction
- myProp.put(IntegrityMonitorProperties.TEST_TRANS_INTERVAL, "-1");
- // Disable the write FPC
- myProp.put(IntegrityMonitorProperties.WRITE_FPC_INTERVAL, "-1");
- // Speed up the check
- myProp.put(IntegrityMonitorProperties.CHECK_DEPENDENCY_INTERVAL, "1");
- // Fail dependencies after three seconds
- myProp.put(IntegrityMonitorProperties.MAX_FPC_UPDATE_INTERVAL, "3");
-
- IntegrityMonitor im = IntegrityMonitor.getInstance(resourceName, myProp);
- logger.debug("\n\ntestSanityJmx starting im state \nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
- im.getStateManager().getAdminState(),
- im.getStateManager().getOpState(),
- im.getStateManager().getAvailStatus(),
- im.getStateManager().getStandbyStatus());
- // add an entry to Resource registration table in the DB for the dependent resource
-
-
- et = em.getTransaction();
- et.begin();
- Query rquery = em.createQuery("Select r from ResourceRegistrationEntity r where r.resourceName=:rn");
- rquery.setParameter("rn", dependent);
-
- @SuppressWarnings("rawtypes")
- List rrList = rquery.getResultList();
- ResourceRegistrationEntity rrx = null;
- if(rrList.isEmpty()){
- // register resource by adding entry to table in DB
- logger.debug("Adding resource {} to ResourceRegistration table", dependent);
- rrx = new ResourceRegistrationEntity();
- // set columns in entry
- rrx.setResourceName(dependent);
- rrx.setResourceUrl("service:jmx:somewhere:9999");
- rrx.setNodeType("logparser");
- rrx.setSite("siteA");
- }
- em.persist(rrx);
- // flush to the DB
- em.flush();
-
- // commit transaction
- et.commit();
-
- Thread.sleep(5000); //sleep 5 sec so the FPManager has time to check dependency health
-
- boolean sanityPass = true;
- try {
- im.evaluateSanity();
- } catch (Exception e) {
- logger.error("evaluateSanity exception: ", e);
- sanityPass = false;
- }
- assertFalse(sanityPass); // expect sanity test to fail
-
- // undo dependency groups and jmx test properties settings
- myProp.put(IntegrityMonitorProperties.DEPENDENCY_GROUPS, "");
- myProp.put(IntegrityMonitorProperties.TEST_VIA_JMX, "false");
- IntegrityMonitor.updateProperties(myProp);
-
- logger.debug("\ntestSantityJmx ending properties: {}", myProp);
-
- //We know at this point that the IM is disable-dependency. We want to be
- //sure it will recover from this condition since the properties were
- //updated.
-
-
- logger.debug("\n\ntestSanityJmx ending im state\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
- im.getStateManager().getAdminState(),
- im.getStateManager().getOpState(),
- im.getStateManager().getAvailStatus(),
- im.getStateManager().getStandbyStatus());
-
- //Destroy the instance
- logger.debug("\ntestSanityJmx restarting the IntegrityMonitor");
- IntegrityMonitor.deleteInstance();
- //Create a new instance. It should recover from the disabled-dependency condition
- im = IntegrityMonitor.getInstance(resourceName, myProp);
-
- logger.debug("\n\ntestSanityJmx state after creating new im\n"+
- "AdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
- im.getStateManager().getAdminState(),
- im.getStateManager().getOpState(),
- im.getStateManager().getAvailStatus(),
- im.getStateManager().getStandbyStatus());
-
- //Verify the state
- assertEquals(im.getStateManager().getAdminState(), StateManagement.UNLOCKED);
- assertEquals(im.getStateManager().getOpState(), StateManagement.ENABLED);
- assertEquals(im.getStateManager().getAvailStatus(), StateManagement.NULL_VALUE);
- assertEquals(im.getStateManager().getStandbyStatus(), StateManagement.NULL_VALUE);
-
- //Test state manager via the IntegrityMonitor
- StateManagement sm = im.getStateManager();
-
- // Verify lock state
- sm.lock();
- logger.debug("\n\nsm.lock()\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
- sm.getAdminState(),
- sm.getOpState(),
- sm.getAvailStatus(),
- sm.getStandbyStatus());
- assert(sm.getAdminState().equals(StateManagement.LOCKED));
-
- //Verify lock persists across a restart
- //Destroy the instance
- logger.debug("\ntestSanityJmx restarting the IntegrityMonitor");
- IntegrityMonitor.deleteInstance();
- //Create a new instance. It should come up with the admin state locked
- im = IntegrityMonitor.getInstance(resourceName, myProp);
- sm = im.getStateManager();
- logger.debug("\n\ntestSanityJmx restart with AdminState=locked"+
- "\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
- sm.getAdminState(),
- sm.getOpState(),
- sm.getAvailStatus(),
- sm.getStandbyStatus());
- assert(sm.getAdminState().equals(StateManagement.LOCKED));
-
- // Verify unlock
- sm.unlock();
- logger.debug("\n\ntestSanityJmx sm.unlock\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
- sm.getAdminState(),
- sm.getOpState(),
- sm.getAvailStatus(),
- sm.getStandbyStatus());
- assert(sm.getAdminState().equals(StateManagement.UNLOCKED));
-
- // Verify unlock restart
- //Destroy the instance
- logger.debug("\ntestSanityJmx restarting the IntegrityMonitor");
- IntegrityMonitor.deleteInstance();
- //Create a new instance. It should come up with the admin state locked
- im = IntegrityMonitor.getInstance(resourceName, myProp);
- sm = im.getStateManager();
- logger.debug("\n\ntestSanityJmx restart with AdminState=unlocked\n" +
- "AdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
- sm.getAdminState(),
- sm.getOpState(),
- sm.getAvailStatus(),
- sm.getStandbyStatus());
-
- assert(sm.getAdminState().equals(StateManagement.UNLOCKED));
-
- logger.debug("\n\ntestSanityJmx: Exit\n\n");
- }
-
-
- public void testIM() throws Exception {
- logger.debug("\nIntegrityMonitorTest: Entering testIM\n\n");
- cleanDb();
- cleanMyProp();
- IntegrityMonitor.deleteInstance();
-
- // Disable the integrity monitor so it will not interfere
- myProp.put(IntegrityMonitorProperties.FP_MONITOR_INTERVAL, "-1");
- // Disable dependency checking
- myProp.put(IntegrityMonitorProperties.CHECK_DEPENDENCY_INTERVAL, "-1");
- // Disable the refresh state audit
- myProp.put(IntegrityMonitorProperties.REFRESH_STATE_AUDIT_INTERVAL_MS, "-1");
- // Disable the state audit
- myProp.put(IntegrityMonitorProperties.STATE_AUDIT_INTERVAL_MS, "-1");
- // Disable the test transaction
- myProp.put(IntegrityMonitorProperties.TEST_TRANS_INTERVAL, "-1");
- // Disable writing the FPC
- myProp.put(IntegrityMonitorProperties.WRITE_FPC_INTERVAL, "-1");
-
- IntegrityMonitor im = IntegrityMonitor.getInstance(resourceName, myProp);
-
- logger.debug("\n\nim initial state: \nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
- im.getStateManager().getAdminState(),
- im.getStateManager().getOpState(),
- im.getStateManager().getAvailStatus(),
- im.getStateManager().getStandbyStatus());
-
- // test evaluate sanity
- boolean sanityPass = true;
- try {
- im.evaluateSanity();
- } catch (Exception e) {
- logger.error("evaluateSanity exception: ", e);
- sanityPass = false;
- }
- assertTrue(sanityPass); // expect sanity test to pass
-
- //Test startTransaction - should works since it is unlocked
- boolean transPass = true;
- try{
- im.startTransaction();
- } catch (Exception e){
- logger.error("startTransaction exception: ", e);
- transPass = false;
- }
- assertTrue(transPass);
-
- //Test state manager via the IntegrityMonitor
- StateManagement sm = im.getStateManager();
-
- sm.lock();
-
- logger.debug("\n\nsm.lock()\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
- sm.getAdminState(),
- sm.getOpState(),
- sm.getAvailStatus(),
- sm.getStandbyStatus());
-
- assert(sm.getAdminState().equals(StateManagement.LOCKED));
-
- //test startTransaction. It should fail since it is locked
- transPass = true;
- try{
- im.startTransaction();
- } catch (Exception e){
- logger.error("startTransaction exception: ", e);
- transPass = false;
- }
- assertTrue(!transPass); //expect it to fail
-
- sm.unlock();
- logger.debug("\n\nsm.unlock()\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
- sm.getAdminState(),
- sm.getOpState(),
- sm.getAvailStatus(),
- sm.getStandbyStatus());
- assert(sm.getAdminState().equals(StateManagement.UNLOCKED));
-
- //test startTransaction. It should succeed
- transPass = true;
- try{
- im.startTransaction();
- } catch (Exception e){
- logger.error("startTransaction exception: ", e);
- transPass = false;
- }
- assertTrue(transPass); //expect it to succeed
-
- sm.disableDependency();
- logger.debug("\n\nsm.disableDependency()\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
- sm.getAdminState(),
- sm.getOpState(),
- sm.getAvailStatus(),
- sm.getStandbyStatus());
-
- assert(sm.getOpState().equals(StateManagement.DISABLED));
- assert(sm.getAvailStatus().equals(StateManagement.DEPENDENCY));
-
- //test startTransaction. It should succeed since standby status is null and unlocked
- transPass = true;
- try{
- im.startTransaction();
- } catch (Exception e){
- logger.error("startTransaction exception: ", e);
- transPass = false;
- }
- assertTrue(transPass); //expect it to succeed
-
- sm.enableNoDependency();
-
- logger.debug("\n\nsm.enableNoDependency()\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
- sm.getAdminState(),
- sm.getOpState(),
- sm.getAvailStatus(),
- sm.getStandbyStatus());
- assert(sm.getOpState().equals(StateManagement.ENABLED));
- //test startTransaction. It should succeed since standby status is null and unlocked
- transPass = true;
- try{
- im.startTransaction();
- } catch (Exception e){
- System.out.println("startTransaction exception: " + e);
- transPass = false;
- }
- assertTrue(transPass); //expect it to succeed
-
-
- sm.disableFailed();
- logger.debug("\n\nsm.disableFailed()\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
- sm.getAdminState(),
- sm.getOpState(),
- sm.getAvailStatus(),
- sm.getStandbyStatus());
-
- assert(sm.getOpState().equals(StateManagement.DISABLED));
- assert(sm.getAvailStatus().equals(StateManagement.FAILED));
- //test startTransaction. It should succeed since standby status is null and unlocked
- transPass = true;
- try{
- im.startTransaction();
- } catch (Exception e){
- System.out.println("startTransaction exception: " + e);
- transPass = false;
- }
- assertTrue(transPass); //expect it to succeed
-
- sm.enableNotFailed();
-
- logger.debug("\n\nsm.enabledNotFailed()\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
- sm.getAdminState(),
- sm.getOpState(),
- sm.getAvailStatus(),
- sm.getStandbyStatus());
-
- assert(sm.getOpState().equals(StateManagement.ENABLED));
- //test startTransaction. It should succeed since standby status is null and unlocked
- transPass = true;
- try{
- im.startTransaction();
- } catch (Exception e){
- logger.error("startTransaction exception: ", e);
- transPass = false;
- }
- assertTrue(transPass); //expect it to succeed
-
- sm.demote();
-
- logger.debug("\n\nsm.demote()\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
- sm.getAdminState(),
- sm.getOpState(),
- sm.getAvailStatus(),
- sm.getStandbyStatus());
-
- assert(sm.getStandbyStatus().equals(StateManagement.HOT_STANDBY));
-
- //test startTransaction. It should fail since it is standby
- transPass = true;
- try{
- im.startTransaction();
- } catch (Exception e){
- logger.error("startTransaction exception: ", e);
- transPass = false;
- }
- assertTrue(!transPass); //expect it to fail
-
- sm.promote();
-
- logger.debug("\n\nsm.promote()\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
- sm.getAdminState(),
- sm.getOpState(),
- sm.getAvailStatus(),
- sm.getStandbyStatus());
-
- assert(sm.getStandbyStatus().equals(StateManagement.PROVIDING_SERVICE));
-
- //test startTransaction. It should succeed since it is providing service
- transPass = true;
- try{
- im.startTransaction();
- } catch (Exception e){
- logger.error("startTransaction exception: ", e);
- transPass = false;
- }
- assertTrue(transPass); //expect it to succeed
-
-
- //Test the multi-valued availability status
- sm.disableDependency();
- sm.disableFailed();
-
- logger.debug("\n\nsm.disableDependency(), sm.disableFailed\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
- sm.getAdminState(),
- sm.getOpState(),
- sm.getAvailStatus(),
- sm.getStandbyStatus());
-
- assert(sm.getAvailStatus().equals(StateManagement.DEPENDENCY_FAILED));
-
- //Test startTransaction. Should fail since standby status is cold standby
- transPass = true;
- try{
- im.startTransaction();
- } catch (Exception e){
- logger.error("startTransaction exception: ", e);
- transPass = false;
- }
- assertTrue(!transPass); //expect it to fail
-
- sm.enableNoDependency();
-
- logger.debug("\n\nsm.enableNoDependency()\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
- sm.getAdminState(),
- sm.getOpState(),
- sm.getAvailStatus(),
- sm.getStandbyStatus());
- assert(sm.getAvailStatus().equals(StateManagement.FAILED));
- //Test startTransaction. Should fail since standby status is cold standby
- transPass = true;
- try{
- im.startTransaction();
- } catch (Exception e){
- logger.error("startTransaction exception: ", e);
- transPass = false;
- }
- assertTrue(!transPass); //expect it to fail
-
- sm.disableDependency();
- sm.enableNotFailed();
-
- logger.debug("\n\nsm.disableDependency(),sm.enableNotFailed()\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
- sm.getAdminState(),
- sm.getOpState(),
- sm.getAvailStatus(),
- sm.getStandbyStatus());
-
- assert(sm.getAvailStatus().equals(StateManagement.DEPENDENCY));
- //Test startTransaction. Should fail since standby status is cold standby
- transPass = true;
- try{
- im.startTransaction();
- } catch (Exception e){
- logger.error("startTransaction exception: ", e);
- transPass = false;
- }
- assertTrue(!transPass); //expect it to fail
-
- sm.enableNoDependency();
- logger.debug("\n\nsm.enableNoDependency()\nAdminState = {}\nOpState() = {}\nAvailStatus = {}\nStandbyStatus = {}\n",
- sm.getAdminState(),
- sm.getOpState(),
- sm.getAvailStatus(),
- sm.getStandbyStatus());
- assert(sm.getOpState().equals(StateManagement.ENABLED));
- //test startTransaction. It should fail since standby status is hot standby
- transPass = true;
- try{
- im.startTransaction();
- } catch (Exception e){
- logger.error("startTransaction exception: ", e);
- transPass = false;
- }
- assertTrue(!transPass); //expect it to fail
-
- logger.debug("\n\ntestIM: Exit\n\n");
- }
-
-
- public void testSanityState() throws Exception {
- logger.debug("\nIntegrityMonitorTest: Entering testSanityState\n\n");
- cleanDb();
- cleanMyProp();
- IntegrityMonitor.deleteInstance();
-
- // parameters are passed via a properties file
- myProp.put(IntegrityMonitorProperties.DEPENDENCY_GROUPS, "group1_dep1,group1_dep2; group2_dep1");
- // Disable the integrity monitor so it will not interfere
- myProp.put(IntegrityMonitorProperties.FP_MONITOR_INTERVAL, "-1");
- // Disable the refresh state audit
- myProp.put(IntegrityMonitorProperties.REFRESH_STATE_AUDIT_INTERVAL_MS, "-1");
- // Disable dependency checking so it does not interfere
- myProp.put(IntegrityMonitorProperties.CHECK_DEPENDENCY_INTERVAL, "-1");
- // Disable the state audit
- myProp.put(IntegrityMonitorProperties.STATE_AUDIT_INTERVAL_MS, "-1");
- // Disable the test transaction
- myProp.put(IntegrityMonitorProperties.TEST_TRANS_INTERVAL, "-1");
- // Disable writing the FPC
- myProp.put(IntegrityMonitorProperties.WRITE_FPC_INTERVAL, "-1");
- // Max interval for use in deciding if a FPC entry is stale in seconds
- myProp.put(IntegrityMonitorProperties.MAX_FPC_UPDATE_INTERVAL, "120");
-
- IntegrityMonitor im = IntegrityMonitor.getInstance(resourceName, myProp);
-
- // Add a group1 dependent resources to put an entry in the forward progress table
- ForwardProgressEntity fpe = new ForwardProgressEntity();
- ForwardProgressEntity fpe2 = new ForwardProgressEntity();
- fpe.setFpcCount(0);
- fpe.setResourceName("group1_dep1");
- fpe2.setFpcCount(0);
- fpe2.setResourceName("group1_dep2");
- et = em.getTransaction();
- et.begin();
- em.persist(fpe);
- em.persist(fpe2);
- em.flush();
- et.commit();
-
-
- // Add a group2 dependent resource to the StateManagementEntity DB table and set its admin state to locked
- // Expect sanity test to fail.
- StateManagement stateManager = new StateManagement(emf, "group2_dep1");
- stateManager.lock();
-
- new StateManagement(emf, "group1_dep1");
- new StateManagement(emf, "group1_dep2");
-
- boolean sanityPass = true;
- // Call the dependency check directly instead of waiting for FPManager to do it.
- logger.debug("\n\nIntegrityMonitor.testSanityState: calling im.dependencyCheck()\n\n");
- im.dependencyCheck();
- try {
- im.evaluateSanity();
- } catch (Exception e) {
- logger.error("evaluateSanity exception: ", e);
- sanityPass = false;
- }
- assertFalse(sanityPass); // expect sanity test to fail
-
- logger.debug("\n\ntestSanityState: Exit\n\n");
- }
-
- public void testRefreshStateAudit() throws Exception {
- logger.debug("\nIntegrityMonitorTest: testRefreshStateAudit Enter\n\n");
- cleanDb();
- cleanMyProp();
- IntegrityMonitor.deleteInstance();
-
- // parameters are passed via a properties file
- myProp.put(IntegrityMonitorProperties.DEPENDENCY_GROUPS, "");
- myProp.put(IntegrityMonitorProperties.TEST_VIA_JMX, "false");
- // Disable the integrity monitor so it will not interfere
- myProp.put(IntegrityMonitorProperties.FP_MONITOR_INTERVAL, "-1");
- // Disable the refresh state audit
- myProp.put(IntegrityMonitorProperties.REFRESH_STATE_AUDIT_INTERVAL_MS, "-1");
- // Disable dependency checking so it does not interfere
- myProp.put(IntegrityMonitorProperties.CHECK_DEPENDENCY_INTERVAL, "-1");
- // Disable the state audit
- myProp.put(IntegrityMonitorProperties.STATE_AUDIT_INTERVAL_MS, "-1");
- // Disable the test transaction
- myProp.put(IntegrityMonitorProperties.TEST_TRANS_INTERVAL, "-1");
- // Disable writing the FPC
- myProp.put(IntegrityMonitorProperties.WRITE_FPC_INTERVAL, "-1");
-
- IntegrityMonitor im = IntegrityMonitor.getInstance(resourceName, myProp);
-
- //the state here is unlocked, enabled, null, null
- StateManagementEntity sme = null;
-
- Query query = em.createQuery("Select p from StateManagementEntity p where p.resourceName=:resource");
-
- query.setParameter("resource", resourceName);
-
- //Just test that we are retrieving the right object
- @SuppressWarnings("rawtypes")
- List resourceList = query.getResultList();
- if (!resourceList.isEmpty()) {
- // exist
- sme = (StateManagementEntity) resourceList.get(0);
- em.refresh(sme);
-
- logger.debug("??? -- Retrieve StateManagementEntity from database --\nsme.getResourceName() = {}\n"+
- "sme.getAdminState() = {}\nsme.getOpState() = {}\nsme.getAvailStatus() = {}\nsme.getStandbyStatus() = {}",
- sme.getResourceName(),
- sme.getAdminState(),
- sme.getOpState(),
- sme.getAvailStatus(),
- sme.getStandbyStatus());
-
- assertTrue(sme.getAdminState().equals(StateManagement.UNLOCKED));
- assertTrue(sme.getOpState().equals(StateManagement.ENABLED));
- assertTrue(sme.getAvailStatus().equals(StateManagement.NULL_VALUE));
- assertTrue(sme.getStandbyStatus().equals(StateManagement.NULL_VALUE));
- logger.debug("--");
- } else {
- logger.debug("Record not found, resourceName: " + resourceName);
- assertTrue(false);
- }
-
- et = em.getTransaction();
- et.begin();
-
- sme.setStandbyStatus(StateManagement.COLD_STANDBY);
- em.persist(sme);
- em.flush();
- et.commit();
-
- // Run the refreshStateAudit
- im.executeRefreshStateAudit();
-
- //The refreshStateAudit should run and change the state to unlocked,enabled,null,hotstandby
- StateManagementEntity sme1 = null;
-
- Query query1 = em.createQuery("Select p from StateManagementEntity p where p.resourceName=:resource");
-
- query1.setParameter("resource", resourceName);
-
- @SuppressWarnings("rawtypes")
- List resourceList1 = query1.getResultList();
- if (!resourceList1.isEmpty()) {
- // exist
- sme1 = (StateManagementEntity) resourceList1.get(0);
- em.refresh(sme1);
- logger.debug("??? -- Retrieve StateManagementEntity from database --\nsme1.getResourceName() = {}\n" +
- "sme1.getAdminState() = {}\nsme1.getOpState() = {}\nsme1.getAvailStatus() = {}\nsme1.getStandbyStatus() = {}",
- sme1.getResourceName(),
- sme1.getAdminState(),
- sme1.getOpState(),
- sme1.getAvailStatus(),
- sme1.getStandbyStatus());
-
- assertTrue(sme1.getAdminState().equals(StateManagement.UNLOCKED));
- assertTrue(sme1.getOpState().equals(StateManagement.ENABLED));
- assertTrue(sme1.getAvailStatus().equals(StateManagement.NULL_VALUE));
- assertTrue(sme1.getStandbyStatus().equals(StateManagement.HOT_STANDBY));
- logger.debug("--");
- } else {
- logger.debug("Record not found, resourceName: " + resourceName);
- assertTrue(false);
- }
-
- logger.debug("\nIntegrityMonitorTest: testRefreshStateAudit Exit\n\n");
- }
-
- public void testStateCheck() throws Exception {
- logger.debug("\nIntegrityMonitorTest: Entering testStateCheck\n\n");
- cleanDb();
- cleanMyProp();
- IntegrityMonitor.deleteInstance();
-
- // parameters are passed via a properties file
- myProp.put(IntegrityMonitorProperties.DEPENDENCY_GROUPS, "group1_dep1");
- myProp.put(IntegrityMonitorProperties.TEST_VIA_JMX, "false");
- myProp.put(IntegrityMonitorProperties.FAILED_COUNTER_THRESHOLD, "1");
- /*
- * The monitorInterval is set to 10 and the failedCounterThreshold is 1
- * because stateCheck() uses the faileCounterThreshold * monitorInterval to determine
- * if an entry is stale, it will be stale after 10 seconds.
- */
- myProp.put(IntegrityMonitorProperties.FP_MONITOR_INTERVAL, "5");
- /*
- * We accelerate the test transaction and write FPC intervals because we don't want
- * there to be any chance of a FPC failure because of the short monitor interval
- */
- myProp.put(IntegrityMonitorProperties.TEST_TRANS_INTERVAL, "1");
- myProp.put(IntegrityMonitorProperties.WRITE_FPC_INTERVAL, "2");
- // Disable the refresh state audit
- myProp.put(IntegrityMonitorProperties.REFRESH_STATE_AUDIT_INTERVAL_MS, "-1");
- // The maximum time in seconds to determine that a FPC entry is stale
- myProp.put(IntegrityMonitorProperties.MAX_FPC_UPDATE_INTERVAL, "5");
- myProp.put(IntegrityMonitorProperties.CHECK_DEPENDENCY_INTERVAL, "5");
-
- IntegrityMonitor im = IntegrityMonitor.getInstance(resourceName, myProp);
-
- // Add a group1 dependent resources to put an entry in the forward progress table
- // This sets lastUpdated to the current time
- ForwardProgressEntity fpe = new ForwardProgressEntity();
- fpe.setFpcCount(0);
- fpe.setResourceName("group1_dep1");
- et = em.getTransaction();
- et.begin();
- em.persist(fpe);
- em.flush();
- et.commit();
-
- new StateManagement(emf, "group1_dep1");
-
- boolean sanityPass = true;
- //Thread.sleep(15000);
- //Thread.sleep(5000);
- try {
- im.evaluateSanity();
- } catch (Exception e) {
- logger.error("testStateCheck: After 5 sec sleep - evaluateSanity exception: ", e);
- sanityPass = false;
- }
- assertTrue(sanityPass); // expect sanity test to pass
-
- //now wait 10 seconds. The dependency entry is checked every 10 sec. So, even in the worst case
- //it should now be stale and the sanity check should fail
-
- sanityPass = true;
- Thread.sleep(10000);
- try {
- im.evaluateSanity();
- } catch (Exception e) {
- logger.error("testStateCheck: After 15 sec sleep - evaluateSanity exception: ", e);
- sanityPass = false;
- }
- assertFalse(sanityPass); // expect sanity test to fail
-
- logger.debug("\n\ntestStateCheck: Exit\n\n");
- }
-
- public void testGetAllForwardProgressEntity() throws Exception{
- logger.debug("\nIntegrityMonitorTest: Entering testGetAllForwardProgressEntity\n\n");
- cleanDb();
- cleanMyProp();
- IntegrityMonitor.deleteInstance();
- // parameters are passed via a properties file
- myProp.put(IntegrityMonitorProperties.DEPENDENCY_GROUPS, "");
- myProp.put(IntegrityMonitorProperties.TEST_VIA_JMX, "false");
- // Disable the integrity monitor so it will not interfere
- myProp.put(IntegrityMonitorProperties.FP_MONITOR_INTERVAL, "-1");
- // Disable the refresh state audit
- myProp.put(IntegrityMonitorProperties.REFRESH_STATE_AUDIT_INTERVAL_MS, "-1");
- // Disable dependency checking so it does not interfere
- myProp.put(IntegrityMonitorProperties.CHECK_DEPENDENCY_INTERVAL, "-1");
- // Disable the state audit
- myProp.put(IntegrityMonitorProperties.STATE_AUDIT_INTERVAL_MS, "-1");
- // Disable the test transaction
- myProp.put(IntegrityMonitorProperties.TEST_TRANS_INTERVAL, "-1");
- // Disable writing the FPC
- myProp.put(IntegrityMonitorProperties.WRITE_FPC_INTERVAL, "-1");
-
- IntegrityMonitor im = IntegrityMonitor.getInstance(resourceName, myProp);
-
- logger.debug("\nIntegrityMonitorTest: Creating ForwardProgressEntity entries\n\n");
- // Add resource entries in the forward progress table
- ForwardProgressEntity fpe = new ForwardProgressEntity();
- ForwardProgressEntity fpe2 = new ForwardProgressEntity();
- ForwardProgressEntity fpe3 = new ForwardProgressEntity();
- fpe.setFpcCount(0);
- fpe.setResourceName("siteA_pap2");
- fpe2.setFpcCount(0);
- fpe2.setResourceName("siteB_pap1");
- fpe3.setFpcCount(0);
- fpe3.setResourceName("siteB_pap2");
- et = em.getTransaction();
- et.begin();
- em.persist(fpe);
- em.persist(fpe2);
- em.persist(fpe3);
- em.flush();
- et.commit();
-
- logger.debug("\nIntegrityMonitorTest:testGetAllForwardProgressEntity Calling im.getAllForwardProgressEntity()\n\n");
- List<ForwardProgressEntity> fpeList = im.getAllForwardProgressEntity();
-
- assertTrue(fpeList.size()==4);
-
- logger.debug("\nIntegrityMonitorTest: Exit testGetAllForwardProgressEntity\n\n");
- }
-
- public void testStateAudit() throws Exception{
- logger.debug("\nIntegrityMonitorTest: Entering testStateAudit\n\n");
- cleanDb();
- cleanMyProp();
- IntegrityMonitor.deleteInstance();
-
- // parameters are passed via a properties file
-
- // No Dependency Groups
- myProp.put(IntegrityMonitorProperties.DEPENDENCY_GROUPS, "");
- // Don't use JMX
- myProp.put(IntegrityMonitorProperties.TEST_VIA_JMX, "false");
- // Disable the internal sanity monitoring.
- myProp.put(IntegrityMonitorProperties.FP_MONITOR_INTERVAL, "-1");
- // Disable the dependency monitoring.
- myProp.put(IntegrityMonitorProperties.CHECK_DEPENDENCY_INTERVAL, "-1");
- // Disable the refresh state audit
- myProp.put(IntegrityMonitorProperties.REFRESH_STATE_AUDIT_INTERVAL_MS, "-1");
- // Disable the test transaction
- myProp.put(IntegrityMonitorProperties.TEST_TRANS_INTERVAL, "-1");
- // Disable the write FPC
- myProp.put(IntegrityMonitorProperties.WRITE_FPC_INTERVAL, "-1");
- // Disable the State Audit we will call it directly
- myProp.put(IntegrityMonitorProperties.STATE_AUDIT_INTERVAL_MS, "-1");
- // Max interval for use in deciding if a FPC entry is stale in seconds
- myProp.put(IntegrityMonitorProperties.MAX_FPC_UPDATE_INTERVAL, "120");
-
-
- IntegrityMonitor im = IntegrityMonitor.getInstance(resourceName, myProp);
- logger.debug("\nIntegrityMonitorTest: Creating ForwardProgressEntity entries\n\n");
- // Add resources to put an entry in the forward progress table
- Date staleDate = new Date(0);
- ForwardProgressEntity fpe1 = new ForwardProgressEntity();
- ForwardProgressEntity fpe2 = new ForwardProgressEntity();
- ForwardProgressEntity fpe3 = new ForwardProgressEntity();
- fpe1.setFpcCount(0);
- fpe1.setResourceName("siteA_pap2");
- fpe2.setFpcCount(0);
- fpe2.setResourceName("siteB_pap1");
- fpe3.setFpcCount(0);
- fpe3.setResourceName("siteB_pap2");
- logger.debug("\nIntegrityMonitorTest: Creating StateManagementEntity entries\n\n");
- StateManagementEntity sme1 = new StateManagementEntity();
- StateManagementEntity sme2 = new StateManagementEntity();
- StateManagementEntity sme3= new StateManagementEntity();
- sme1.setResourceName("siteA_pap2");
- sme1.setAdminState(StateManagement.UNLOCKED);
- sme1.setOpState(StateManagement.ENABLED);
- sme1.setAvailStatus(StateManagement.NULL_VALUE);
- sme1.setStandbyStatus(StateManagement.NULL_VALUE);
- sme2.setResourceName("siteB_pap1");
- sme2.setAdminState(StateManagement.UNLOCKED);
- sme2.setOpState(StateManagement.ENABLED);
- sme2.setAvailStatus(StateManagement.NULL_VALUE);
- sme2.setStandbyStatus(StateManagement.NULL_VALUE);
- sme3.setResourceName("siteB_pap2");
- sme3.setAdminState(StateManagement.UNLOCKED);
- sme3.setOpState(StateManagement.ENABLED);
- sme3.setAvailStatus(StateManagement.NULL_VALUE);
- sme3.setStandbyStatus(StateManagement.NULL_VALUE);
- et = em.getTransaction();
- et.begin();
- em.persist(fpe1);
- em.persist(fpe2);
- em.persist(fpe3);
- em.persist(sme1);
- em.persist(sme2);
- em.persist(sme3);
- em.flush();
- et.commit();
-
- Query updateQuery = em.createQuery("UPDATE ForwardProgressEntity f "
- + "SET f.lastUpdated = :newDate "
- + "WHERE f.resourceName=:resource");
- updateQuery.setParameter("newDate", staleDate, TemporalType.TIMESTAMP);
- updateQuery.setParameter("resource", fpe1.getResourceName());
-
- et = em.getTransaction();
- et.begin();
- updateQuery.executeUpdate();
- et.commit();
-
- logger.debug("\nIntegrityMonitorTest:testStateAudit Calling im.getAllForwardProgressEntity()\n\n");
- List<ForwardProgressEntity> fpeList = im.getAllForwardProgressEntity();
-
- logger.debug("\n\n");
- logger.debug("IntegrityMonitorTest:testStateAudit:ForwardProgressEntity entries");
- for(ForwardProgressEntity myFpe : fpeList){
- logger.debug("\n ResourceName: {}" +
- "\n LastUpdated: {}",
- myFpe.getResourceName(),
- myFpe.getLastUpdated());
- }
- logger.debug("\n\n");
-
- logger.debug("\nIntegrityMonitorTest:testStateAudit getting list of StateManagementEntity entries\n\n");
- Query query = em.createQuery("SELECT s FROM StateManagementEntity s");
- List<?> smeList = query.getResultList();
-
- logger.debug("\n\n");
- logger.debug("IntegrityMonitorTest:testStateAudit:StateManagementEntity entries");
- for(Object mySme : smeList){
- StateManagementEntity tmpSme = (StateManagementEntity) mySme;
- em.refresh(tmpSme);
- logger.debug("\n ResourceName: {}" +
- "\n AdminState: {}" +
- "\n OpState: {}" +
- "\n AvailStatus: {}" +
- "\n StandbyStatus: {}",
- tmpSme.getResourceName(),
- tmpSme.getAdminState(),
- tmpSme.getOpState(),
- tmpSme.getAvailStatus(),
- tmpSme.getStandbyStatus()
- );
- }
- logger.debug("\n\n");
-
- em.refresh(sme1);
- assertTrue(sme1.getOpState().equals(StateManagement.ENABLED));
-
- logger.debug("IntegrityMonitorTest:testStateAudit: calling stateAudit()");
- im.executeStateAudit();
- logger.debug("IntegrityMonitorTest:testStateAudit: call to stateAudit() complete");
-
- logger.debug("\nIntegrityMonitorTest:testStateAudit getting list of StateManagementEntity entries\n\n");
- smeList = query.getResultList();
-
- logger.debug("\n\n");
- logger.debug("IntegrityMonitorTest:testStateAudit:StateManagementEntity entries");
- for(Object mySme : smeList){
- StateManagementEntity tmpSme = (StateManagementEntity) mySme;
- em.refresh(tmpSme);
- logger.debug("\n ResourceName: {}" +
- "\n AdminState: {}" +
- "\n OpState: {}" +
- "\n AvailStatus: {}" +
- "\n StandbyStatus: {}",
- tmpSme.getResourceName(),
- tmpSme.getAdminState(),
- tmpSme.getOpState(),
- tmpSme.getAvailStatus(),
- tmpSme.getStandbyStatus()
- );
- }
- logger.debug("\n\n");
-
- em.refresh(sme1);
- assertTrue(sme1.getOpState().equals(StateManagement.DISABLED));
-
- //Now let's add sme2 to the mix
- updateQuery = em.createQuery("UPDATE ForwardProgressEntity f "
- + "SET f.lastUpdated = :newDate "
- + "WHERE f.resourceName=:resource");
- updateQuery.setParameter("newDate", staleDate, TemporalType.TIMESTAMP);
- updateQuery.setParameter("resource", fpe2.getResourceName());
-
- et = em.getTransaction();
- et.begin();
- updateQuery.executeUpdate();
- et.commit();
-
- //Give it a chance to write the DB and run the audit
- logger.debug("IntegrityMonitorTest:testStateAudit: (restart4) Running State Audit");
- Thread.sleep(2000);
- im.executeStateAudit();
- Thread.sleep(1000);
- logger.debug("IntegrityMonitorTest:testStateAudit: (restart4) State Audit complete");
-
- //Now check its state
- logger.debug("\nIntegrityMonitorTest:testStateAudit (restart4) getting list of StateManagementEntity entries\n\n");
- smeList = query.getResultList();
-
- logger.debug("\n\n");
- logger.debug("IntegrityMonitorTest:testStateAudit:StateManagementEntity (restart4) entries");
- for(Object mySme : smeList){
- StateManagementEntity tmpSme = (StateManagementEntity) mySme;
- em.refresh(tmpSme);
-
- logger.debug("\n (restart4) ResourceName: {}" +
- "\n AdminState: {}" +
- "\n OpState: {}" +
- "\n AvailStatus: {}" +
- "\n StandbyStatus: {}",
- tmpSme.getResourceName(),
- tmpSme.getAdminState(),
- tmpSme.getOpState(),
- tmpSme.getAvailStatus(),
- tmpSme.getStandbyStatus()
- );
- }
- logger.debug("\n\n");
-
- em.refresh(sme1);
- assertTrue(sme1.getOpState().equals(StateManagement.DISABLED));
-
- em.refresh(sme2);
- assertTrue(sme2.getOpState().equals(StateManagement.DISABLED));
-
- logger.debug("\nIntegrityMonitorTest: Exit testStateAudit\n\n");
- System.out.println("\n\ntestStateAudit: Exit\n\n");
- }
-}
diff --git a/integrity-monitor/src/test/java/org/onap/policy/common/im/test/StateManagementEntityTest.java b/integrity-monitor/src/test/java/org/onap/policy/common/im/test/StateManagementEntityTest.java
deleted file mode 100644
index 852a04f6..00000000
--- a/integrity-monitor/src/test/java/org/onap/policy/common/im/test/StateManagementEntityTest.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Integrity Monitor
- * ================================================================================
- * Copyright (C) 2017 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.common.im.test;
-
-import java.util.List;
-import java.util.Properties;
-
-import javax.persistence.EntityManager;
-import javax.persistence.EntityManagerFactory;
-import javax.persistence.EntityTransaction;
-import javax.persistence.Persistence;
-import javax.persistence.Query;
-
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import org.onap.policy.common.im.StateManagement;
-import org.onap.policy.common.im.jpa.StateManagementEntity;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class StateManagementEntityTest {
- private static Logger logger = LoggerFactory.getLogger(StateManagementEntityTest.class);
-
- private static final String DEFAULT_DB_DRIVER = "org.h2.Driver";
- private static final String DEFAULT_DB_URL = "jdbc:h2:file:./sql/smTest";
- //private static final String DEFAULT_DB_URL = "jdbc:h2:file:./sql/xacml";
- private static final String DEFAULT_DB_USER = "sa";
- private static final String DEFAULT_DB_PWD = "";
-
- /*
- private static final String DEFAULT_DB_DRIVER = "org.mariadb.jdbc.Driver";
- private static final String DEFAULT_DB_URL = "jdbc:mariadb://localhost:3306/xacml";
- private static final String DEFAULT_DB_USER = "policy_user";
- private static final String DEFAULT_DB_PWD = "policy_user";
- */
-
- private static final String DB_DRIVER = "javax.persistence.jdbc.driver";
- private static final String DB_URL = "javax.persistence.jdbc.url";
- private static final String DB_USER = "javax.persistence.jdbc.user";
- private static final String DB_PWD = "javax.persistence.jdbc.password";
-
- @BeforeClass
- public static void setUpClass() throws Exception {
-
- }
-
- @AfterClass
- public static void tearDownClass() throws Exception {
- }
-
- @Before
- public void setUp() throws Exception {
- }
-
- @After
- public void tearDown() throws Exception {
- }
-
- //@Ignore
- @Test
- public void testJPA() throws Exception {
- logger.debug("\n??? logger.infor StateManagementEntityTest: Entering\n\n");
-
- Properties myProp = new Properties();
- myProp.put(DB_DRIVER, DEFAULT_DB_DRIVER);
- myProp.put(DB_URL, DEFAULT_DB_URL);
- myProp.put(DB_USER, DEFAULT_DB_USER);
- myProp.put(DB_PWD, DEFAULT_DB_PWD);
-
- logger.debug("??? {} = {}", DB_DRIVER, DEFAULT_DB_DRIVER);
- logger.debug("??? {} = {}", DB_URL, DEFAULT_DB_URL);
- logger.debug("??? {} = {}", DB_USER, DEFAULT_DB_USER);
- logger.debug("??? {} = {}", DB_PWD, DEFAULT_DB_PWD);
-
- //Create the data schema and entity manager factory
- logger.debug("??? createEntityManagerFactory for schemaPU");
- EntityManagerFactory emf = Persistence.createEntityManagerFactory("schemaPU", myProp);
-
- // Create an entity manager to use the DB
- logger.debug("??? createEntityManager");
- EntityManager em = emf.createEntityManager();
- logger.debug("??? getTransaction");
- EntityTransaction et = em.getTransaction();
- et.begin();
- // Make sure the DB is clean
- logger.debug("??? clean StateManagementEntity");
- em.createQuery("DELETE FROM StateManagementEntity").executeUpdate();
-
- //Define the resourceName for the StateManagement constructor
- String resourceName = "test_resource1";
-
- //
- logger.debug("Create StateManagementEntity, resourceName: {}", resourceName);
- logger.debug("??? instantiate StateManagementEntity object");
- StateManagementEntity sme = new StateManagementEntity();
-
- logger.debug("??? setResourceName : {}", resourceName);
- sme.setResourceName(resourceName);
- logger.debug("??? getResourceName : {}", sme.getResourceName());
-
- logger.debug("??? setAdminState : {}", StateManagement.UNLOCKED);
- sme.setAdminState(StateManagement.UNLOCKED);
- logger.debug("??? getAdminState : {}", sme.getAdminState());
-
- logger.debug("??? setOpState : {}", StateManagement.ENABLED);
- sme.setOpState(StateManagement.ENABLED);
- logger.debug("??? getOpState : {}", sme.getOpState());
-
- logger.debug("??? setAvailStatus : {}", StateManagement.NULL_VALUE);
- sme.setAvailStatus(StateManagement.NULL_VALUE);
- logger.debug("??? getAvailStatus : {}", sme.getAvailStatus());
-
- logger.debug("??? setStandbyStatus: {}", StateManagement.COLD_STANDBY);
- sme.setStandbyStatus(StateManagement.COLD_STANDBY);
- logger.debug("??? getStandbyStatus: {}", sme.getStandbyStatus());
-
- logger.debug("??? before persist");
- em.persist(sme);
- logger.debug("??? after persist");
-
- em.flush();
- logger.debug("??? after flush");
-
- et.commit();
- logger.debug("??? after commit");
-
- try {
- Query query = em.createQuery("Select p from StateManagementEntity p where p.resourceName=:resource");
-
- query.setParameter("resource", resourceName);
-
- //Just test that we are retrieving the right object
- @SuppressWarnings("rawtypes")
- List resourceList = query.getResultList();
- if (!resourceList.isEmpty()) {
- // exist
- StateManagementEntity sme2 = (StateManagementEntity) resourceList.get(0);
- logger.debug("??? -- Retrieve StateManagementEntity from database --\n\nsme.getResourceName() = {}\n" +
- "sme2getResourceName() = {}\n\nsme.getAdminState() = {}\nsme2.getAdminState() = {}\n\n" +
- "sme.getOpState() = {}\nsme2.getOpState() = {}\n\nsme.getAvailStatus() = {}\n" +
- "sme2.getAvailStatus() = {}\n\nsme.getStandbyStatus() = {}\nsme2.getStandbyStatus() = {}",
- sme.getResourceName(),
- sme2.getResourceName(),
- sme.getAdminState(),
- sme2.getAdminState(),
- sme.getOpState(),
- sme2.getOpState(),
- sme.getAvailStatus(),
- sme.getAvailStatus(),
- sme.getStandbyStatus(),
- sme2.getStandbyStatus());
-
-
- assert(sme2.getResourceName().equals(sme.getResourceName()));
- assert(sme2.getAdminState().equals(sme.getAdminState()));
- assert(sme2.getOpState().equals(sme.getOpState()));
- assert(sme2.getAvailStatus().equals(sme.getAvailStatus()));
- assert(sme2.getStandbyStatus().equals(sme.getStandbyStatus()));
- logger.debug("--");
- } else {
- logger.debug("Record not found, resourceName: {}", resourceName);
- }
- } catch(Exception ex) {
- logger.error("Exception on select query: " + ex.toString());
- }
-
- em.close();
- logger.debug("\n??? after close");
- logger.debug("\n\nJpaTest: Exit\n\n");
- }
-}
diff --git a/integrity-monitor/src/test/java/org/onap/policy/common/im/test/StateManagementTest.java b/integrity-monitor/src/test/java/org/onap/policy/common/im/test/StateManagementTest.java
deleted file mode 100644
index a3c0fcd7..00000000
--- a/integrity-monitor/src/test/java/org/onap/policy/common/im/test/StateManagementTest.java
+++ /dev/null
@@ -1,315 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Integrity Monitor
- * ================================================================================
- * Copyright (C) 2017 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.common.im.test;
-
-import java.util.Properties;
-import javax.persistence.EntityManagerFactory;
-import javax.persistence.Persistence;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.onap.policy.common.im.StateManagement;
-import org.onap.policy.common.im.StandbyStatusException;
-import org.onap.policy.common.im.StateChangeNotifier;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/*
- * All JUnits are designed to run in the local development environment
- * where they have write privileges and can execute time-sensitive
- * tasks.
- */
-public class StateManagementTest {
- private static Logger logger = LoggerFactory.getLogger(StateManagementTest.class);
-
- private static final String DEFAULT_DB_DRIVER = "org.h2.Driver";
- private static final String DEFAULT_DB_URL = "jdbc:h2:file:./sql/smTest";
- private static final String DEFAULT_DB_USER = "sa";
- private static final String DEFAULT_DB_PWD = "";
-
- private static final String DB_DRIVER = "javax.persistence.jdbc.driver";
- private static final String DB_URL = "javax.persistence.jdbc.url";
- private static final String DB_USER = "javax.persistence.jdbc.user";
- private static final String DB_PWD = "javax.persistence.jdbc.password";
- //
-
- @BeforeClass
- public static void setUpClass() throws Exception {
-
- }
-
- @AfterClass
- public static void tearDownClass() throws Exception {
- }
-
- @Before
- public void setUp() throws Exception {
- }
-
- @After
- public void tearDown() throws Exception {
- }
-
- //@Ignore
- @Test
- public void testJPA() throws Exception {
- logger.info("\n\nlogger.infor StateManagementTest: Entering\n\n");
- String resourceName = "test_resource1";
- boolean standbyExceptionThrown = false;
-
- //These parameters are in a properties file
- EntityManagerFactory emf = null;
- try {
- Properties myProp = new Properties();
- myProp.put(DB_DRIVER, DEFAULT_DB_DRIVER);
- myProp.put(DB_URL, DEFAULT_DB_URL);
- myProp.put(DB_USER, DEFAULT_DB_USER);
- myProp.put(DB_PWD, DEFAULT_DB_PWD);
-
- //Create the data schema and entity manager factory
- emf = Persistence.createEntityManagerFactory("schemaPU", myProp);
-
- StateManagement sm = new StateManagement(emf, resourceName);
- logger.info("\n\ntest lock()");
- displayState(resourceName, sm);
- logger.info("\n??? test lock()");
- logger.info("{} before adminState = {}", resourceName, sm.getAdminState());
- logger.info("{} before opState = {}", resourceName, sm.getOpState());
- logger.info("{} before availStatus = {}", resourceName, sm.getAvailStatus());
- logger.info("{} before standbyStatus= {}", resourceName, sm.getStandbyStatus());
- sm.lock();
- System.out.println("\n\nafter lock()");
- displayState(resourceName, sm);
- logger.info("{} after adminState = {}", resourceName, sm.getAdminState());
- logger.info("{} after opState = {}", resourceName, sm.getOpState());
- logger.info("{} after availStatus = {}", resourceName, sm.getAvailStatus());
- logger.info("{} after standbyStatus= {}", resourceName, sm.getStandbyStatus());
-
- logger.info("\n??? test unlock()");
- sm.unlock();
- System.out.println("\n\nafter unlock()");
- displayState(resourceName, sm);
- logger.info("{} adminState = {}", resourceName, sm.getAdminState());
- logger.info("{} opState = {}", resourceName, sm.getOpState());
- logger.info("{} availStatus = {}", resourceName, sm.getAvailStatus());
- logger.info("{} standbyStatus= {}", resourceName, sm.getStandbyStatus());
-
- logger.info("\n??? test enableNotFailed()");
- sm.enableNotFailed();
- System.out.println("\n\nafter enableNotFailed()");
- displayState(resourceName, sm);
- logger.info("{} adminState = {}", resourceName, sm.getAdminState());
- logger.info("{} opState = {}", resourceName, sm.getOpState());
- logger.info("{} availStatus = {}", resourceName, sm.getAvailStatus());
- logger.info("{} standbyStatus= {}", resourceName, sm.getStandbyStatus());
-
- logger.info("\n??? test disableFailed()");
- sm.disableFailed();
- System.out.println("\n\nafter disableFailed()");
- displayState(resourceName, sm);
- logger.info("{} adminState = {}", resourceName, sm.getAdminState());
- logger.info("{} opState = {}", resourceName, sm.getOpState());
- logger.info("{} availStatus = {}", resourceName, sm.getAvailStatus());
- logger.info("{} standbyStatus= {}", resourceName, sm.getStandbyStatus());
-
- // P4 If promote() is called while either the opState is disabled or the adminState is locked,
- // the standbystatus shall transition to coldstandby and a StandbyStatusException shall be thrown
- logger.info("\n??? promote() test case P4");
- try {
- sm.disableFailed();
- sm.lock();
- System.out.println("\n\nafter lock() and disableFailed");
- displayState(resourceName, sm);
- logger.info("{} adminState = {}", resourceName, sm.getAdminState());
- logger.info("{} opState = {}", resourceName, sm.getOpState());
- logger.info("{} standbyStatus= {}", resourceName, sm.getStandbyStatus());
- sm.promote();
- System.out.println("\n\nafter promote");
- displayState(resourceName, sm);
- } catch(StandbyStatusException ex) {
- standbyExceptionThrown = true;
- logger.info("StandbyStatusException thrown and catched");
- } catch(Exception ex) {
- logger.info("??? Exception: " + ex.toString());
- }
- assert(standbyExceptionThrown);
- assert(sm.getStandbyStatus().equals(StateManagement.COLD_STANDBY));
- standbyExceptionThrown = false;
-
- // P3 If promote() is called while standbyStatus is coldstandby, the state shall not transition
- // and a StandbyStatusException shall be thrown
- logger.info("\n??? promote() test case P3");
- try {
- logger.info(resourceName + " standbyStatus= " + sm.getStandbyStatus());
- sm.promote();
- } catch(StandbyStatusException ex) {
- standbyExceptionThrown = true;
- logger.info("StandbyStatusException thrown and catched");
- } catch(Exception ex) {
- logger.info("??? Exception: " + ex.toString());
- }
- assert(standbyExceptionThrown);
- assert(sm.getStandbyStatus().equals(StateManagement.COLD_STANDBY));
- logger.info("\n\nP3 after promote()");
- displayState(resourceName, sm);
- standbyExceptionThrown = false;
-
- // P2 If promote() is called while the standbyStatus is null and the opState is enabled and adminState is unlocked,
- // the state shall transition to providingservice
- logger.info("\n??? promote() test case P2");
- resourceName = "test_resource2";
- StateManagement sm2 = new StateManagement(emf, resourceName);
- sm2.enableNotFailed();
- sm2.unlock();
- logger.info("\n\nafter sm2.enableNotFailed() and sm2.unlock()");
- displayState(resourceName, sm2);
- logger.info("{} adminState = {}", resourceName, sm2.getAdminState());
- logger.info("{} opState = {}", resourceName, sm2.getOpState());
- logger.info("{} standbyStatus= {}", resourceName, sm2.getStandbyStatus());
- sm2.promote();
- logger.info("\n\nP2 after sm2.promote");
- displayState(resourceName, sm2);
- assert(sm2.getAdminState().equals(StateManagement.UNLOCKED));
- assert(sm2.getOpState().equals(StateManagement.ENABLED));
- assert(sm2.getStandbyStatus().equals(StateManagement.PROVIDING_SERVICE));
-
- // P5 If promote() is called while standbyStatus is providingservice, no action is taken
- logger.info("\n??? promote() test case P5");
- logger.info(resourceName + " standbyStatus= " + sm2.getStandbyStatus());
- sm2.promote();
- logger.info("\n\nP5 after sm2.promote()");
- displayState(resourceName, sm2);
- assert(sm2.getStandbyStatus().equals(StateManagement.PROVIDING_SERVICE));
-
- // D1 If demote() is called while standbyStatus is providingservice, the state shall transition to hotstandby
- logger.info("\n??? demote() test case D1");
- logger.info(resourceName + " standbyStatus= " + sm2.getStandbyStatus());
- sm2.demote();
- logger.info("\n\nD1 after sm2.demote()");
- displayState(resourceName, sm2);
- assert(sm2.getStandbyStatus().equals(StateManagement.HOT_STANDBY));
-
- // D4 If demote() is called while standbyStatus is hotstandby, no action is taken
- logger.info("\n??? demote() test case D4");
- logger.info(resourceName + " standbyStatus= " + sm2.getStandbyStatus());
- sm2.demote();
- logger.info("\n\nD4 after sm2.demote()");
- displayState(resourceName, sm2);
- assert(sm2.getStandbyStatus().equals(StateManagement.HOT_STANDBY));
-
- // D3 If demote() is called while standbyStatus is null and adminState is locked or opState is disabled,
- // the state shall transition to coldstandby
- logger.info("\n??? demote() test case D3");
- resourceName = "test_resource3";
- StateManagement sm3 = new StateManagement(emf, resourceName);
- sm3.lock();
- sm3.disableFailed();
- logger.info("\n\nD3 after sm3.lock() and sm3.disableFailed()");
- displayState(resourceName, sm3);
- logger.info("{} adminState = {}", resourceName, sm3.getAdminState());
- logger.info("{} opState = {}", resourceName, sm3.getOpState());
- logger.info("{} standbyStatus= {}", resourceName, sm3.getStandbyStatus());
- sm3.demote();
- logger.info("\n\nD3 after sm3.demote()");
- displayState(resourceName, sm3);
- assert(sm3.getStandbyStatus().equals(StateManagement.COLD_STANDBY));
-
- // D5 If demote() is called while standbyStatus is coldstandby, no action is taken
- logger.info("\n??? demote() test case D5");
- logger.info(resourceName + " standbyStatus= " + sm3.getStandbyStatus());
- sm3.demote();
- logger.info("\n\nD5 after sm3.demote()");
- displayState(resourceName, sm3);
- assert(sm3.getStandbyStatus().equals(StateManagement.COLD_STANDBY));
-
- // D2 If demote() is called while standbyStatus is null and adminState is unlocked and opState is enabled,
- // the state shall transition to hotstandby
- logger.info("\n??? demote() test case D2");
- resourceName = "test_resource4";
- StateManagement sm4 = new StateManagement(emf, resourceName);
- sm4.unlock();
- sm4.enableNotFailed();
- logger.info("\n\nD2 after sm4.unlock() and sm4.enableNotFailed()");
- displayState(resourceName, sm4);
- logger.info("{} adminState = {}", resourceName, sm4.getAdminState());
- logger.info("{} opState = {}", resourceName, sm4.getOpState());
- logger.info("{} standbyStatus= {}", resourceName, sm4.getStandbyStatus());
- sm4.demote();
- assert(sm4.getStandbyStatus().equals(StateManagement.HOT_STANDBY));
-
- // P1 If promote() is called while standbyStatus is hotstandby, the state shall transition to providingservice.
- logger.info("\n??? promote() test case P1");
- logger.info(resourceName + " standbyStatus= " + sm4.getStandbyStatus());
- sm4.promote();
- logger.info("\n\nP1 after sm4.promote()");
- displayState(resourceName, sm4);
- assert(sm4.getStandbyStatus().equals(StateManagement.PROVIDING_SERVICE));
-
- // State change notification
- logger.info("\n??? State change notification test case 1 - lock()");
- StateChangeNotifier stateChangeNotifier = new StateChangeNotifier();
- sm.addObserver(stateChangeNotifier);
- sm.lock();
-
- logger.info("\n??? State change notification test case 2 - unlock()");
- sm.unlock();
-
- logger.info("\n??? State change notification test case 3 - enabled()");
- sm.enableNotFailed();
-
- logger.info("\n??? State change notification test case 4 - disableFailed()");
- sm.disableFailed();
-
- logger.info("\n??? State change notification test case 5 - demote()");
- sm.demote();
-
- logger.info("\n??? State change notification test case 6 - promote()");
- try {
- sm.promote();
- } catch(Exception ex) {
- logger.info("Exception from promote(): {}", ex.toString());
- }
-
- if (emf.isOpen()) {
- emf.close();
- }
- } catch(Exception ex) {
- logger.error("Exception: {}", ex.toString());
- } finally {
- if (emf.isOpen()) {
- emf.close();
- }
- }
-
- logger.info("\n\nStateManagementTest: Exit\n\n");
- }
-
- private void displayState(String resourceName, StateManagement sm)
- {
- logger.info("{} adminState = {}", resourceName, sm.getAdminState());
- logger.info("{} opState = {}", resourceName, sm.getOpState());
- logger.info("{} availStatus = {}", resourceName, sm.getAvailStatus());
- logger.info("{} standbyStatus= {}", resourceName, sm.getStandbyStatus());
- }
-}
-