use of org.ow2.proactive.resourcemanager.common.event.RMNodeSourceEvent in project scheduling by ow2-proactive.
the class RecoverLocalInfrastructureTest method restartRmAndCheckFinalState.
private void restartRmAndCheckFinalState(boolean nodesShouldBeRecreated) throws Exception {
// restart RM
this.rmHelper = new RMTHelper();
this.startRmWithConfig(RESTART_CONFIG);
assertThat(PAResourceManagerProperties.RM_PRESERVE_NODES_ON_SHUTDOWN.getValueAsBoolean()).isFalse();
assertThat(this.rmHelper.isRMStarted()).isTrue();
// re-snapshot the RM state
RMMonitorEventReceiver resourceManagerMonitor = (RMMonitorEventReceiver) this.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) {
this.rmHelper.waitForAnyMultipleNodeEvent(RMEventType.NODE_STATE_CHANGED, NODE_NUMBER);
}
}
use of org.ow2.proactive.resourcemanager.common.event.RMNodeSourceEvent in project scheduling by ow2-proactive.
the class RecoverLocalInfrastructureTest method createNodeSourceAndCheckState.
private void createNodeSourceAndCheckState() throws Exception {
this.rmHelper.createNodeSourceWithNodesRecoverable(NODE_SOURCE_NAME, NODE_NUMBER);
RMMonitorEventReceiver resourceManagerMonitor = (RMMonitorEventReceiver) this.resourceManager;
List<RMNodeSourceEvent> nodeSourceEventPerNodeSource = resourceManagerMonitor.getInitialState().getNodeSourceEvents();
assertThat(nodeSourceEventPerNodeSource.size()).isEqualTo(1);
RMNodeSourceEvent rmNodeSourceEvent = nodeSourceEventPerNodeSource.get(0);
assertThat(rmNodeSourceEvent.getSourceName()).isEqualTo(NODE_SOURCE_NAME);
assertThat(rmNodeSourceEvent.getNodeSourceStatus()).isEqualTo(NodeSourceStatus.NODES_DEPLOYED.toString());
assertThat(resourceManagerMonitor.getState().getAllNodes().size()).isEqualTo(NODE_NUMBER);
}
use of org.ow2.proactive.resourcemanager.common.event.RMNodeSourceEvent in project scheduling by ow2-proactive.
the class RecoverLocalInfrastructureTest method defineNodeSourceAndCheckState.
private void defineNodeSourceAndCheckState() throws Exception {
this.rmHelper.defineNodeSource(NODE_SOURCE_NAME, NODE_NUMBER);
RMMonitorEventReceiver resourceManagerMonitor = (RMMonitorEventReceiver) this.resourceManager;
List<RMNodeSourceEvent> nodeSourceEventPerNodeSource = resourceManagerMonitor.getInitialState().getNodeSourceEvents();
assertThat(nodeSourceEventPerNodeSource.size()).isEqualTo(1);
assertThat(nodeSourceEventPerNodeSource.get(0).getSourceName()).isEqualTo(NODE_SOURCE_NAME);
}
use of org.ow2.proactive.resourcemanager.common.event.RMNodeSourceEvent 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 org.ow2.proactive.resourcemanager.common.event.RMNodeSourceEvent 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));
}
Aggregations