MoleQueue 0.9.0
Loading...
Searching...
No Matches
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 AbstractQueueSettingsWidgetsettingsWidget ()
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

◆ writeJsonSettings()

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.

◆ readJsonSettings()

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.

◆ settingsWidget()

virtual AbstractQueueSettingsWidget * settingsWidget ( )
virtual

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

Implements QueueRemote.

◆ newSshConnection()

virtual SshConnection * newSshConnection ( )
protectedvirtual
Returns
a new SshConnection, the caller assumes ownership

◆ parseQueueId()

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 QueuePbs, QueueSge, and QueueSlurm.

◆ generateQueueRequestCommand()

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.

◆ parseQueueLine()

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 QueuePbs, QueueSge, and QueueSlurm.

Member Data Documentation

◆ m_allowedQueueRequestExitCodes

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: