use of org.ow2.proactive_grid_cloud_portal.cli.json.FieldMetaDataView.Type in project scheduling by ow2-proactive.
the class AbstractSchedulerUser method registerListener.
public void registerListener(boolean getInitialState, boolean myEventsOnly, String listenerClazzName) throws SchedulerException, ProActiveException {
try {
if (this.scheduler == null)
throw new IllegalStateException("The user is not connected to the Scheduler yet. " + "Consider calling the connectToScheduler() method first");
SchedulerEventListener schedulerListener = createEventListener(listenerClazzName);
logger.trace("Trying to expose the listener as a remote object");
slExposer = new SchedulerListenerExposer(schedulerListener);
SchedulerEventListener schedulerListenerRemoteRef = slExposer.createRemoteReference();
logger.trace("Trying to register the listener to the Scheduler");
// for the moment, listens only to the Jobs-related events
SchedulerState initialState = scheduler.addEventListener(schedulerListenerRemoteRef, myEventsOnly, getInitialState, // job-related events
SchedulerEvent.JOB_SUBMITTED, SchedulerEvent.JOB_PENDING_TO_RUNNING, SchedulerEvent.JOB_PENDING_TO_FINISHED, SchedulerEvent.JOB_RUNNING_TO_FINISHED, SchedulerEvent.JOB_PAUSED, SchedulerEvent.JOB_RESUMED, SchedulerEvent.JOB_RESTARTED_FROM_ERROR, SchedulerEvent.JOB_CHANGE_PRIORITY, // task-related events
SchedulerEvent.TASK_PENDING_TO_RUNNING, SchedulerEvent.TASK_RUNNING_TO_FINISHED, SchedulerEvent.TASK_WAITING_FOR_RESTART, SchedulerEvent.USERS_UPDATE, // Scheduler state related events
SchedulerEvent.FROZEN, SchedulerEvent.RESUMED, SchedulerEvent.SHUTDOWN, SchedulerEvent.SHUTTING_DOWN, SchedulerEvent.STARTED, SchedulerEvent.STOPPED, SchedulerEvent.KILLED);
if (getInitialState) {
logger.info("Initial state of the scheduler is: " + initialState);
}
} catch (ClassNotFoundException e) {
throw new IllegalArgumentException("Class " + listenerClazzName + " is not available on this SchedulerUser's side", e);
} catch (InstantiationException e) {
throw new IllegalArgumentException("Cannot instantiate listener of type " + listenerClazzName, e);
} catch (IllegalAccessException e) {
throw new IllegalArgumentException("Cannot instantiate listener of type " + listenerClazzName, e);
}
}
use of org.ow2.proactive_grid_cloud_portal.cli.json.FieldMetaDataView.Type in project scheduling by ow2-proactive.
the class SchedulerJobSubmitter method createEventListener.
@Override
protected SchedulerEventListener createEventListener(String listenerClazzName) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
logger.trace("Trying to load the listener class " + listenerClazzName);
Class listenerClazz = Class.forName(listenerClazzName);
logger.trace("Trying to instantiate a listener of type " + listenerClazzName);
SchedulerEventListener schedulerListener = (SchedulerEventListener) listenerClazz.newInstance();
logger.trace("Decorating the event listener with " + JobResultDecorator.class.getName());
this.jrListener = new JobResultDecorator(schedulerListener, (AbstractSchedulerUser<JobId>) PAActiveObject.getStubOnThis());
return this.jrListener;
}
use of org.ow2.proactive_grid_cloud_portal.cli.json.FieldMetaDataView.Type in project scheduling by ow2-proactive.
the class SchedulerUser method createEventListener.
@Override
protected SchedulerEventListener createEventListener(String listenerClazzName) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
logger.trace("Trying to load the listener class " + listenerClazzName);
Class listenerClazz = Class.forName(listenerClazzName);
logger.trace("Trying to instantiate a listener of type " + listenerClazzName);
SchedulerEventListener ret = (SchedulerEventListener) listenerClazz.newInstance();
// ugly but necessary; getJobResult MUST be called from the SchedulerUser AO !!
if (ret instanceof JobResultSchedulerListener)
((JobResultSchedulerListener) ret).setResultFetcher((SchedulerUser<JobId>) PAActiveObject.getStubOnThis());
return ret;
}
use of org.ow2.proactive_grid_cloud_portal.cli.json.FieldMetaDataView.Type in project scheduling by ow2-proactive.
the class SelectorData method createOutputSelector.
OutputSelector createOutputSelector() {
if (!type.equals(OUTPUT_TYPE)) {
throw new IllegalStateException("Not output selector: " + type);
}
FileSelector fileSelector = new FileSelector(getIncludes(), getExcludes());
OutputSelector selector = new OutputSelector(fileSelector, OutputAccessMode.valueOf(getAccessMode()));
return selector;
}
use of org.ow2.proactive_grid_cloud_portal.cli.json.FieldMetaDataView.Type in project scheduling by ow2-proactive.
the class SchedulerMonitorsHandler method addTaskEvent.
/**
* Add a Task Event to the list of occurred events (memorize it).
* @param event type of task event
* @param taskInfo TaskEvent object associated to Event
*/
private void addTaskEvent(SchedulerEvent event, TaskInfo taskInfo) {
TaskIdWrapper taskId = TaskIdWrapper.wrap(taskInfo.getTaskId());
List<TaskEventMonitor> taskEventMonitors = tasksEvents.get(taskId);
if (taskEventMonitors == null) {
taskEventMonitors = new ArrayList<>();
tasksEvents.put(taskId, taskEventMonitors);
}
taskEventMonitors.add(new TaskEventMonitor(event, taskInfo));
}
Aggregations