/** * Return Scheduler's interface. Start Scheduler if needed, connect as administrator if needed (if * not yet connected as user). * * <p>WARNING : if there was a previous connection as User, this connection is shut down. And so * some event can be missed by event receiver, between disconnection and reconnection (only one * connection to Scheduler per body is possible). * * @param user Type of user * @return scheduler interface * @throws Exception if an error occurs. */ public Scheduler getSchedulerInterface(TestUsers user) throws Exception { startScheduler(currentTestConfiguration); if (!connectedSchedulerUser.is(user)) { // changing user on the fly if (connectedSchedulerUser != null) { connectedSchedulerUser.disconnect(); } connectedSchedulerUser = new SchedulerTestUser(user); connectedSchedulerUser.connect(scheduler.getAuth()); } if (!connectedSchedulerUser.isConnected()) { connectedSchedulerUser.connect(scheduler.getAuth()); } return connectedSchedulerUser.getScheduler(); }
public void disconnect() throws Exception { connectedSchedulerUser.disconnect(); connectedRMUser.disconnect(); }
private SchedulerMonitorsHandler getSchedulerMonitorsHandler() { return connectedSchedulerUser.getMonitorsHandler(); }
/** * Wait for a finished job. If Job is already finished, methods return. This method doesn't wait * strictly 'job finished event', it looks first if the job is already finished, if yes, returns * immediately. Otherwise method performs a wait for job finished event. * * @param id JobId representing the job awaited to be finished. * @param timeout in milliseconds * @throws ProActiveTimeoutException if timeout is reached */ public void waitForFinishedJob(JobId id, long timeout) throws ProActiveTimeoutException { connectedSchedulerUser.getMonitorsHandler().waitForFinishedJob(id, timeout); }
/** Kill the forked Scheduler if exists. */ public void killScheduler() throws Exception { connectedRMUser.disconnect(); connectedSchedulerUser.disconnect(); scheduler.kill(); }