MoleQueue  0.8.0
 All Classes Functions Variables Enumerations Enumerator Pages
Public Slots | Public Member Functions | Protected Slots | Protected Member Functions | Protected Attributes | List of all members
QueueRemoteSsh Class Referenceabstract

#include <remotessh.h>

Inheritance diagram for QueueRemoteSsh:
QueueRemote Queue QueuePbs QueueSge QueueSlurm

Public Slots

void requestQueueUpdate ()
 
- Public Slots inherited from QueueRemote
bool submitJob (MoleQueue::Job job)
 
void killJob (MoleQueue::Job job)
 
virtual void requestQueueUpdate ()=0
 
- Public Slots inherited from Queue
virtual bool submitJob (MoleQueue::Job job)=0
 
virtual void killJob (MoleQueue::Job job)=0
 
virtual void setLaunchTemplate (const QString &script)
 
virtual void setLaunchScriptName (const QString &scriptName)
 

Public Member Functions

 QueueRemoteSsh (const QString &queueName="AbstractRemoteSsh", QueueManager *parentManager=0)
 
bool writeJsonSettings (QJsonObject &json, bool exportOnly, bool includePrograms) const
 
bool readJsonSettings (const QJsonObject &json, bool importOnly, bool includePrograms)
 
void setSshExecutable (const QString &exe)
 
QString sshExecutable () const
 
void setScpExecutable (const QString &exe)
 
QString scpExectuable () const
 
void setHostName (const QString &host)
 
QString hostName () const
 
void setUserName (const QString &user)
 
QString userName () const
 
void setIdentityFile (const QString &identity)
 
QString identityFile () const
 
void setSshPort (int port)
 
int sshPort () const
 
void setSubmissionCommand (const QString &command)
 
QString submissionCommand () const
 
void setKillCommand (const QString &command)
 
QString killCommand () const
 
void setRequestQueueCommand (const QString &command)
 
QString requestQueueCommand () const
 
virtual
AbstractQueueSettingsWidget
settingsWidget ()
 
- Public Member Functions inherited from QueueRemote
 QueueRemote (const QString &queueName="AbstractRemote", QueueManager *parentManager=0)
 
void setWorkingDirectoryBase (const QString &base)
 
QString workingDirectoryBase () const
 
void setQueueUpdateInterval (int i)
 
int queueUpdateInterval () const
 
void setDefaultMaxWallTime (int time)
 
int defaultMaxWallTime () const
 
void replaceKeywords (QString &launchScript, const Job &job, bool addNewline=true)
 
- Public Member Functions inherited from Queue
Serverserver ()
 
const Serverserver () const
 
QueueManagerqueueManager ()
 
const QueueManagerqueueManager () const
 
virtual void setName (const QString &newName)
 
QString name () const
 
virtual QString typeName () const
 
bool readSettings (const QString &filePath)
 
bool writeSettings () const
 
bool exportSettings (const QString &fileName, bool includePrograms=true) const
 
bool importSettings (const QString &fileName, bool includePrograms=true)
 
QString stateFileName () const
 
bool addProgram (Program *newProgram, bool replace=false)
 
bool removeProgram (Program *programToRemove)
 
bool removeProgram (const QString &programName)
 
ProgramlookupProgram (const QString &programName) const
 
QStringList programNames () const
 
QList< Program * > programs () const
 
int numPrograms () const
 
virtual QString launchTemplate () const
 
QString launchScriptName () const
 
int jobFailureCount (IdType moleQueueId) const
 

Protected Slots

void createRemoteDirectory (MoleQueue::Job job)
 
void remoteDirectoryCreated ()
 
void copyInputFilesToHost (MoleQueue::Job job)
 
void inputFilesCopied ()
 
void submitJobToRemoteQueue (MoleQueue::Job job)
 
void jobSubmittedToRemoteQueue ()
 
void handleQueueUpdate ()
 
void beginFinalizeJob (MoleQueue::IdType queueId)
 
void finalizeJobCopyFromServer (MoleQueue::Job job)
 
void finalizeJobOutputCopiedFromServer ()
 
void finalizeJobCopyToCustomDestination (MoleQueue::Job job)
 
void finalizeJobCleanup (MoleQueue::Job job)
 
void cleanRemoteDirectory (MoleQueue::Job job)
 
void remoteDirectoryCleaned ()
 
void beginKillJob (MoleQueue::Job job)
 
void endKillJob ()
 
- Protected Slots inherited from QueueRemote
virtual void submitPendingJobs ()
 
virtual void beginJobSubmission (MoleQueue::Job job)
 
virtual void createRemoteDirectory (MoleQueue::Job job)=0
 
virtual void remoteDirectoryCreated ()=0
 
virtual void copyInputFilesToHost (MoleQueue::Job job)=0
 
virtual void inputFilesCopied ()=0
 
virtual void submitJobToRemoteQueue (MoleQueue::Job job)=0
 
virtual void jobSubmittedToRemoteQueue ()=0
 
virtual void handleQueueUpdate ()=0
 
virtual void beginFinalizeJob (MoleQueue::IdType queueId)=0
 
virtual void finalizeJobCopyFromServer (MoleQueue::Job job)=0
 
virtual void finalizeJobOutputCopiedFromServer ()=0
 
virtual void finalizeJobCopyToCustomDestination (MoleQueue::Job job)=0
 
virtual void finalizeJobCleanup (MoleQueue::Job job)
 
virtual void cleanRemoteDirectory (MoleQueue::Job job)=0
 
virtual void remoteDirectoryCleaned ()=0
 
void jobAboutToBeRemoved (const MoleQueue::Job &job)
 
virtual void beginKillJob (MoleQueue::Job job)=0
 
virtual void endKillJob ()=0
 
- Protected Slots inherited from Queue
virtual void jobAboutToBeRemoved (const MoleQueue::Job &job)
 
void programNameChanged (const QString &newName, const QString &oldName)
 
void cleanLocalDirectory (const MoleQueue::Job &job)
 

Protected Member Functions

virtual SshConnectionnewSshConnection ()
 
virtual bool parseQueueId (const QString &submissionOutput, IdType *queueId)=0
 
virtual QString generateQueueRequestCommand ()
 
virtual bool parseQueueLine (const QString &queueListOutput, IdType *queueId, MoleQueue::JobState *state)=0
 
- Protected Member Functions inherited from QueueRemote
virtual void removeStaleJobs ()
 
virtual void timerEvent (QTimerEvent *theEvent)
 
- Protected Member Functions inherited from Queue
 Queue (const QString &queueName="Undefined", QueueManager *parentManager=0)
 
bool writeInputFiles (const Job &job)
 
bool addJobFailure (IdType moleQueueId)
 
void clearJobFailures (IdType moleQueueId)
 

Protected Attributes

QString m_sshExecutable
 
QString m_scpExecutable
 
QString m_hostName
 
QString m_userName
 
QString m_identityFile
 
int m_sshPort
 
bool m_isCheckingQueue
 
QString m_submissionCommand
 
QString m_killCommand
 
QString m_requestQueueCommand
 
QList< int > m_allowedQueueRequestExitCodes
 
- Protected Attributes inherited from QueueRemote
int m_checkQueueTimerId
 
QList< IdType > m_pendingSubmission
 
int m_checkForPendingJobsTimerId
 
int m_queueUpdateInterval
 
int m_defaultMaxWallTime
 
QString m_workingDirectoryBase
 
- Protected Attributes inherited from Queue
QueueManagerm_queueManager
 
Serverm_server
 
QString m_name
 
QString m_launchTemplate
 
QString m_launchScriptName
 
QMap< QString, Program * > m_programs
 
QMap< IdType, IdType > m_jobs
 
QMap< IdType, int > m_failureTracker
 

Additional Inherited Members

- Signals inherited from Queue
void programAdded (const QString &name, MoleQueue::Program *program)
 
void programRemoved (const QString &name, MoleQueue::Program *program)
 
void programRenamed (const QString &newName, Program *prog, const QString &oldName)
 
void nameChanged (const QString &newName, const QString &oldName)
 
- Static Public Member Functions inherited from Queue
static QString queueTypeFromFile (const QString &mqqFile)
 

Detailed Description

QueueRemote subclass for interacting with a generic Remote queue over SSH.

Member Function Documentation

bool writeJsonSettings ( QJsonObject &  value,
bool  exportOnly,
bool  includePrograms 
) const
virtual

writeJsonSettings Write the queue's internal state into a JSON object.

Parameters
valueTarget JSON object.
exportOnlyIf true, instance specific information (e.g. currently running jobs, login details, etc) is omitted.
includeProgramsWhether or not to include the Queue's program configurations.
Returns
True on success, false on failure.

Reimplemented from QueueRemote.

bool readJsonSettings ( const QJsonObject &  value,
bool  importOnly,
bool  includePrograms 
)
virtual

readJsonSettings Initialize the queue's internal state from a JSON object.

Parameters
valueSource JSON object.
importOnlyIf true, instance specific information (e.g. currently running jobs, login details, etc) is ignored.
includeProgramsWhether or not to include the Queue's program configurations.
Returns
True on success, false on failure.
Note
When reimplementing this method, verify and parse the Json object into temporary variables, then call the base class implementation and only modify the queue if the call returns true.

Reimplemented from QueueRemote.

virtual AbstractQueueSettingsWidget* settingsWidget ( )
virtual

Returns a widget that can be used to configure the settings for the queue.

Implements QueueRemote.

virtual SshConnection* newSshConnection ( )
protectedvirtual
Returns
a new SshConnection, the caller assumes ownership
virtual bool parseQueueId ( const QString &  submissionOutput,
IdType *  queueId 
)
protectedpure virtual

Extract the job id from the submission output. Reimplement this in derived classes.

Parameters
submissionOutputOutput from m_submissionCommand
queueIdThe queuing system's job id.
Returns
True if parsing successful, false otherwise.

Implemented in QueueSlurm, QueuePbs, and QueueSge.

virtual QString generateQueueRequestCommand ( )
protectedvirtual

Prepare the command to check the remote queue. The default implementation is m_requestQueueCommand followed by the owned job ids separated by spaces.

Reimplemented in QueueSge, and QueueSlurm.

virtual bool parseQueueLine ( const QString &  queueListOutput,
IdType *  queueId,
MoleQueue::JobState *  state 
)
protectedpure virtual

Extract the queueId and JobState from a single line of the the queue list output. Reimplement this in derived classes.

Parameters
queueListOutputSingle line of output from m_requestQueueCommand
queueIdThe queuing system's job id.
stateThe state of the job with id queueId
Returns
True if parsing successful, false otherwise.

Implemented in QueueSge, QueueSlurm, and QueuePbs.

Member Data Documentation

QList<int> m_allowedQueueRequestExitCodes
protected

List of allowed exit codes for m_requestQueueCommand. This is required for e.g. PBS/Torque, which return 153 if you request the status of a job that has completed.


The documentation for this class was generated from the following file: