public class SlurmSchedulerConnection extends SchedulerConnection
Modifier and Type | Field and Description |
---|---|
private SlurmSetup |
config |
private java.lang.String |
defaultQueueName |
private static java.lang.String |
DONE_STATE
In completed state, the job has terminated and all processes have returned exit code 0.
|
private static java.lang.String[] |
FAILED_STATES
These are the states a job can be in when it has failed:
FAILED: the job terminated with non-zero exit code or other failure condition.
|
private java.util.Map<java.lang.String,Job> |
interactiveJobs |
static java.lang.String |
JOB_OPTION_JOB_SCRIPT |
private static org.slf4j.Logger |
LOGGER |
private static java.lang.String[] |
PENDING_STATES
These are the states a job can be in when it is pending:
PENDING: the job is awaiting resource allocation.
|
private java.lang.String[] |
queueNames |
private static java.lang.String[] |
RUNNING_STATES
These are the states a job can be in when it is running:
CONFIGURING: the resources are available and being preparing to run the job (for example by booting).
|
private Scheduler |
scheduler |
private static long |
SLURM_UPDATE_SLEEP |
private static long |
SLURM_UPDATE_TIMEOUT |
private static java.lang.String[] |
VALID_JOB_OPTIONS |
engine
Modifier | Constructor and Description |
---|---|
protected |
SlurmSchedulerConnection(ScriptingAdaptor adaptor,
java.lang.String location,
Credential credential,
XenonProperties properties,
XenonEngine engine) |
Modifier and Type | Method and Description |
---|---|
JobStatus |
cancelJob(Job job) |
protected static java.lang.Integer |
exitcodeFromString(java.lang.String value) |
private Job |
findInteractiveJob(java.lang.String tag,
JobDescription description,
Job interactiveJob) |
private Job |
findInteractiveJobInMap(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> queueInfo,
java.lang.String tag,
JobDescription description,
Job interactiveJob) |
private SlurmSetup |
getConfiguration(boolean ignoreVersion,
boolean disableAccounting) |
java.lang.String |
getDefaultQueueName() |
Job[] |
getJobs(java.lang.String... queueNames) |
JobStatus |
getJobStatus(Job job) |
JobStatus[] |
getJobStatuses(Job... jobs) |
protected static JobStatus |
getJobStatusFromSacctInfo(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> info,
Job job) |
protected static JobStatus |
getJobStatusFromScontrolInfo(java.util.Map<java.lang.String,java.lang.String> jobInfo,
Job job) |
protected static JobStatus |
getJobStatusFromSqueueInfo(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> info,
Job job) |
java.lang.String[] |
getQueueNames() |
QueueStatus |
getQueueStatus(java.lang.String queueName) |
QueueStatus[] |
getQueueStatuses(java.lang.String... requestedQueueNames) |
protected static QueueStatus |
getQueueStatusFromSInfo(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> info,
java.lang.String queueName,
Scheduler scheduler) |
private java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> |
getSacctInfo(Job... jobs) |
Scheduler |
getScheduler()
As the SchedulerImplementation contains the list of queues, the subclass is responsible of implementing this function
|
private java.util.Map<java.lang.String,java.lang.String> |
getSControlInfo(Job job) |
private java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> |
getSinfoInfo(java.lang.String... partitions) |
private java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> |
getSqueueInfo(Job... jobs) |
Streams |
getStreams(Job job) |
protected static boolean |
isDoneOrFailedState(java.lang.String state)
Is the given state a done or failed state ?
|
protected static boolean |
isDoneState(java.lang.String state)
Is the given state a done state ?
|
protected static boolean |
isFailedState(java.lang.String state)
Is the given state a failed state ?
|
protected static boolean |
isPendingState(java.lang.String state)
Is the given state a pending state ?
|
protected static boolean |
isRunningState(java.lang.String state)
Is the given state a running state ?
|
private Job |
submitBatchJob(JobDescription description) |
private Job |
submitInteractiveJob(JobDescription description) |
Job |
submitJob(JobDescription description) |
protected static void |
verifyJobDescription(JobDescription description) |
checkQueueNames, checkWorkingDirectory, close, getFsEntryPath, getID, getNextSchedulerID, getProperties, identifiersAsCSList, runCheckedCommand, runCommand, startInteractiveCommand, supportsScheme, verifyJobDescription, verifyJobInfo, verifyJobOptions, waitUntilDone, waitUntilRunning
private static final org.slf4j.Logger LOGGER
private static final long SLURM_UPDATE_TIMEOUT
private static final long SLURM_UPDATE_SLEEP
public static final java.lang.String JOB_OPTION_JOB_SCRIPT
private static final java.lang.String[] VALID_JOB_OPTIONS
private static final java.lang.String[] FAILED_STATES
private static final java.lang.String[] RUNNING_STATES
private static final java.lang.String[] PENDING_STATES
private static final java.lang.String DONE_STATE
private final java.lang.String[] queueNames
private final java.lang.String defaultQueueName
private final Scheduler scheduler
private final SlurmSetup config
private final java.util.Map<java.lang.String,Job> interactiveJobs
protected SlurmSchedulerConnection(ScriptingAdaptor adaptor, java.lang.String location, Credential credential, XenonProperties properties, XenonEngine engine) throws XenonException
XenonException
protected static java.lang.Integer exitcodeFromString(java.lang.String value) throws XenonException
XenonException
protected static JobStatus getJobStatusFromSacctInfo(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> info, Job job) throws XenonException
XenonException
protected static JobStatus getJobStatusFromScontrolInfo(java.util.Map<java.lang.String,java.lang.String> jobInfo, Job job) throws XenonException
XenonException
protected static JobStatus getJobStatusFromSqueueInfo(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> info, Job job) throws XenonException
XenonException
protected static QueueStatus getQueueStatusFromSInfo(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> info, java.lang.String queueName, Scheduler scheduler)
protected static boolean isRunningState(java.lang.String state)
state
- the state to checkprotected static boolean isPendingState(java.lang.String state)
state
- the state to checkprotected static boolean isDoneOrFailedState(java.lang.String state)
state
- the state to checkprotected static boolean isDoneState(java.lang.String state)
state
- the state to checkprotected static boolean isFailedState(java.lang.String state)
state
- the state to checkprotected static void verifyJobDescription(JobDescription description) throws XenonException
XenonException
public Scheduler getScheduler()
SchedulerConnection
getScheduler
in class SchedulerConnection
public java.lang.String[] getQueueNames()
getQueueNames
in class SchedulerConnection
public java.lang.String getDefaultQueueName()
getDefaultQueueName
in class SchedulerConnection
private SlurmSetup getConfiguration(boolean ignoreVersion, boolean disableAccounting) throws XenonException
XenonException
public Job submitJob(JobDescription description) throws XenonException
submitJob
in class SchedulerConnection
XenonException
private Job submitBatchJob(JobDescription description) throws XenonException
XenonException
private Job findInteractiveJobInMap(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> queueInfo, java.lang.String tag, JobDescription description, Job interactiveJob) throws XenonException
XenonException
private Job findInteractiveJob(java.lang.String tag, JobDescription description, Job interactiveJob) throws XenonException
XenonException
private Job submitInteractiveJob(JobDescription description) throws XenonException
XenonException
public JobStatus cancelJob(Job job) throws XenonException
cancelJob
in class SchedulerConnection
XenonException
public Job[] getJobs(java.lang.String... queueNames) throws XenonException
getJobs
in class SchedulerConnection
XenonException
private java.util.Map<java.lang.String,java.lang.String> getSControlInfo(Job job) throws XenonException
XenonException
private java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> getSqueueInfo(Job... jobs) throws XenonException
XenonException
private java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> getSinfoInfo(java.lang.String... partitions) throws XenonException
XenonException
private java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> getSacctInfo(Job... jobs) throws XenonException
XenonException
public JobStatus getJobStatus(Job job) throws XenonException
getJobStatus
in class SchedulerConnection
XenonException
public JobStatus[] getJobStatuses(Job... jobs) throws XenonException
getJobStatuses
in class SchedulerConnection
XenonException
public QueueStatus getQueueStatus(java.lang.String queueName) throws XenonException
getQueueStatus
in class SchedulerConnection
XenonException
public QueueStatus[] getQueueStatuses(java.lang.String... requestedQueueNames) throws XenonException
getQueueStatuses
in class SchedulerConnection
XenonException
public Streams getStreams(Job job) throws XenonException
getStreams
in class SchedulerConnection
XenonException