use of functionaltests.monitor.RMMonitorEventReceiver in project scheduling by ow2-proactive.
the class NodesRecoveryPropertyTest method restartRmAndCheckFinalState.
private void restartRmAndCheckFinalState(String rmConfigPath, boolean nodesShouldBeRecreated) throws Exception {
// restart RM
rmHelper = new RMTHelper();
startRmWithConfig(rmConfigPath);
assertThat(PAResourceManagerProperties.RM_PRESERVE_NODES_ON_SHUTDOWN.getValueAsBoolean()).isFalse();
assertThat(rmHelper.isRMStarted()).isTrue();
// re-snapshot the RM state
RMMonitorEventReceiver resourceManagerMonitor = (RMMonitorEventReceiver) resourceManager;
List<RMNodeSourceEvent> nodeSourceEvent = resourceManagerMonitor.getInitialState().getNodeSourceEvents();
// the node source has been recovered on restart: we should have one node source with the same name
if (PAResourceManagerProperties.RM_NODES_RECOVERY.getValueAsBoolean()) {
assertThat(nodeSourceEvent.size()).isEqualTo(1);
}
assertThat(nodeSourceEvent.get(0).getSourceName()).isEqualTo(NODE_SOURCE_NAME);
// wait for nodes to be recreated if needed
if (nodesShouldBeRecreated) {
rmHelper.waitForAnyMultipleNodeEvent(RMEventType.NODE_STATE_CHANGED, NODE_NUMBER);
}
// the nodes should have been recovered too, and should be alive
Set<String> allNodes = resourceManagerMonitor.getState().getAllNodes();
assertThat(allNodes.size()).isEqualTo(NODE_NUMBER);
Set<String> nodeSourceNames = new HashSet<>();
nodeSourceNames.add(NODE_SOURCE_NAME);
Set<String> aliveNodeUrls = resourceManager.listAliveNodeUrls(nodeSourceNames);
assertThat(aliveNodeUrls.size()).isEqualTo(NODE_NUMBER);
// the recovered nodes should be usable, try to lock/unlock them to see
BooleanWrapper lockSucceeded = resourceManager.lockNodes(allNodes);
assertThat(lockSucceeded).isEqualTo(new BooleanWrapper(true));
BooleanWrapper unlockSucceeded = resourceManager.unlockNodes(allNodes);
assertThat(unlockSucceeded).isEqualTo(new BooleanWrapper(true));
}
use of functionaltests.monitor.RMMonitorEventReceiver in project scheduling by ow2-proactive.
the class RecoverSSHInfrastructureV2Test method restartRmAndCheckFinalState.
private void restartRmAndCheckFinalState(boolean nodesShouldBeRecreated) throws Exception {
// restart RM
rmHelper = new RMTHelper();
startRmWithConfig(RESTART_CONFIG);
assertThat(PAResourceManagerProperties.RM_PRESERVE_NODES_ON_SHUTDOWN.getValueAsBoolean()).isFalse();
assertThat(rmHelper.isRMStarted()).isTrue();
// re-snapshot the RM state
RMMonitorEventReceiver resourceManagerMonitor = (RMMonitorEventReceiver) resourceManager;
List<RMNodeSourceEvent> nodeSourceEvent = resourceManagerMonitor.getInitialState().getNodeSourceEvents();
// the node source has been recovered on restart: we should have one node source with the same name
assertThat(nodeSourceEvent.size()).isEqualTo(1);
assertThat(nodeSourceEvent.get(0).getSourceName()).isEqualTo(NODE_SOURCE_NAME);
// wait for nodes to be recreated if needed
if (nodesShouldBeRecreated) {
rmHelper.waitForAnyMultipleNodeEvent(RMEventType.NODE_STATE_CHANGED, TestSSHInfrastructureV2.NB_NODES);
}
// the nodes should have been recovered too, and should be alive
Set<String> allNodes = resourceManagerMonitor.getState().getAllNodes();
assertThat(allNodes.size()).isEqualTo(TestSSHInfrastructureV2.NB_NODES);
Set<String> nodeSourceNames = new HashSet<>();
nodeSourceNames.add(NODE_SOURCE_NAME);
Set<String> aliveNodeUrls = resourceManager.listAliveNodeUrls(nodeSourceNames);
assertThat(aliveNodeUrls.size()).isEqualTo(TestSSHInfrastructureV2.NB_NODES);
// the recovered nodes should be usable, try to lock/unlock them to see
BooleanWrapper lockSucceeded = resourceManager.lockNodes(allNodes);
assertThat(lockSucceeded).isEqualTo(new BooleanWrapper(true));
BooleanWrapper unlockSucceeded = resourceManager.unlockNodes(allNodes);
assertThat(unlockSucceeded).isEqualTo(new BooleanWrapper(true));
}
use of functionaltests.monitor.RMMonitorEventReceiver in project scheduling by ow2-proactive.
the class RecoverSSHInfrastructureV2Test method startRmAndCheckInitialState.
private void startRmAndCheckInitialState() throws Exception {
// start RM
startRmWithConfig(START_CONFIG);
assertThat(PAResourceManagerProperties.RM_PRESERVE_NODES_ON_SHUTDOWN.getValueAsBoolean()).isTrue();
assertThat(rmHelper.isRMStarted()).isTrue();
// check the initial state of the RM
assertThat(resourceManager.getState().getAllNodes().size()).isEqualTo(0);
resourceManager.createNodeSource(NODE_SOURCE_NAME, SSHInfrastructureV2.class.getName(), TestSSHInfrastructureV2.infraParams, StaticPolicy.class.getName(), TestSSHInfrastructureV2.policyParameters, NODES_RECOVERABLE);
RMTHelper.waitForNodeSourceCreation(NODE_SOURCE_NAME, TestSSHInfrastructureV2.NB_NODES, this.rmHelper.getMonitorsHandler());
RMMonitorEventReceiver resourceManagerMonitor = (RMMonitorEventReceiver) resourceManager;
List<RMNodeSourceEvent> nodeSourceEvent = resourceManagerMonitor.getInitialState().getNodeSourceEvents();
assertThat(nodeSourceEvent.size()).isEqualTo(1);
assertThat(nodeSourceEvent.get(0).getSourceName()).isEqualTo(NODE_SOURCE_NAME);
assertThat(resourceManagerMonitor.getState().getAllNodes().size()).isEqualTo(TestSSHInfrastructureV2.NB_NODES);
}
use of functionaltests.monitor.RMMonitorEventReceiver in project scheduling by ow2-proactive.
the class RMFunctionalTest method cleanState.
/**
* Remove all node sources and nodes in the RM
*
* @throws Exception
*/
private void cleanState() throws Exception {
if (rmHelper.isRMStarted()) {
// force reconnection
rmHelper.disconnect();
ResourceManager rm = rmHelper.getResourceManager();
int nodeNumber = rm.getState().getTotalNodesNumber();
RMInitialState state = ((RMMonitorEventReceiver) rmHelper.getResourceManager()).getInitialState();
for (RMNodeSourceEvent sourceEvent : state.getNodeSourceEvents()) {
String nodeSource = sourceEvent.getSourceName();
rm.removeNodeSource(nodeSource, true);
rmHelper.waitForNodeSourceEvent(RMEventType.NODESOURCE_REMOVED, nodeSource);
}
for (int i = 0; i < nodeNumber; i++) {
rmHelper.waitForAnyNodeEvent(RMEventType.NODE_REMOVED);
}
}
}
use of functionaltests.monitor.RMMonitorEventReceiver in project scheduling by ow2-proactive.
the class RMTestUser method connect.
public void connect(TestUsers user, String rmUrl) throws RMException, KeyException, LoginException, ActiveObjectCreationException, NodeException {
this.connectedUserName = user.username;
this.connectedUserPassword = user.password;
this.rmUrl = rmUrl;
disconnectFromRM();
if (rmProxy == null) {
monitorsHandler = new RMMonitorsHandler();
RMMonitorEventReceiver passiveEventReceiver = new RMMonitorEventReceiver(monitorsHandler);
rmProxy = PAActiveObject.turnActive(passiveEventReceiver);
RMTHelper.log("RM Proxy initialized : " + PAActiveObject.getUrl(rmProxy));
}
RMTHelper.log("Connecting user " + connectedUserName + " to the Resource Manager at " + rmUrl);
CredData credData = new CredData(CredData.parseLogin(connectedUserName), CredData.parseDomain(connectedUserName), connectedUserPassword);
// this is to prevent starting working with the rmProxy on the calling
// thread whereas it has not finished to be initialized
PAFuture.waitFor(rmProxy.init(rmUrl, credData));
}
Aggregations