cctools
ndcctools.chirp.Client Class Reference
Inheritance diagram for ndcctools.chirp.Client:

Public Member Functions

def __init__ (self, hostport, timeout=60, authentication=None, tickets=None, debug=False)
 Create a new chirp client. More...
 
def whoami (self, absolute_stop_time=None, timeout=None)
 Returns a string with identity of the client according to the server. More...
 
def listacl (self, path='/', absolute_stop_time=None, timeout=None)
 Returns a string with the ACL of the given directory. More...
 
def setacl (self, path, subject, rights, absolute_stop_time=None, timeout=None)
 Returns a string with the ACL of the given directory. More...
 
def resetacl (self, path, rights, absolute_stop_time=None, timeout=None)
 Set the ACL for the given directory to be only for the rights to the calling user. More...
 
def ls (self, path, absolute_stop_time=None, timeout=None)
 Returns a list with the names of the files in the path. More...
 
def stat (self, path, absolute_stop_time=None, timeout=None)
 Returns a chirp.Stat object with information on path. More...
 
def chmod (self, path, mode, absolute_stop_time=None, timeout=None)
 Changes permissions on path. More...
 
def put (self, source, destination=None, absolute_stop_time=None, timeout=None)
 Copies local file/directory source to the chirp server as file/directory destination. More...
 
def get (self, source, destination=None, absolute_stop_time=None, timeout=None)
 Copies server file/directory source to the local file/directory destination. More...
 
def rm (self, path, absolute_stop_time=None, timeout=None)
 Removes the given file or directory from the server. More...
 
def mkdir (self, path, mode=493, absolute_stop_time=None, timeout=None)
 Recursively create the directories in path. More...
 
def hash (self, path, algorithm='sha1', absolute_stop_time=None, timeout=None)
 Computes the checksum of path. More...
 
def job_create (self, job_description)
 Creates a chirp job. More...
 
def job_kill (self, *job_ids)
 Kills the jobs identified with the different job ids. More...
 
def job_commit (self, *job_ids)
 Commits (starts running) the jobs identified with the different job ids. More...
 
def job_reap (self, *job_ids)
 Reaps the jobs identified with the different job ids. More...
 
def job_status (self, *job_ids)
 Obtains the current status for each job id. More...
 
def job_wait (self, waiting_time, job_id=0)
 Waits waiting_time seconds for the job_id to terminate. More...
 

Detailed Description

Python Client object

This class is used to create a chirp client

Constructor & Destructor Documentation

◆ __init__()

def ndcctools.chirp.Client.__init__ (   self,
  hostport,
  timeout = 60,
  authentication = None,
  tickets = None,
  debug = False 
)

Create a new chirp client.

Parameters
selfReference to the current task object.
hostportThe host:port of the server.
timeoutThe time to wait for a server response on every request.
authenticationA list of prefered authentications. E.g., ['tickets', 'unix']
ticketsA list of ticket filenames.
debugGenerate client debug output.

Member Function Documentation

◆ whoami()

def ndcctools.chirp.Client.whoami (   self,
  absolute_stop_time = None,
  timeout = None 
)

Returns a string with identity of the client according to the server.

Parameters
selfReference to the current task object.
absolute_stop_timeIf given, maximum number of seconds since epoch to wait for a server response. (Overrides any timeout.)
timeoutIf given, maximum number of seconds to wait for a server response.

◆ listacl()

def ndcctools.chirp.Client.listacl (   self,
  path = '/',
  absolute_stop_time = None,
  timeout = None 
)

Returns a string with the ACL of the given directory.

Throws an IOError on error (no such directory).

Parameters
selfReference to the current task object.
pathTarget directory.
absolute_stop_timeIf given, maximum number of seconds since epoch to wait for a server response. (Overrides any timeout.)
timeoutIf given, maximum number of seconds to wait for a server response.

◆ setacl()

def ndcctools.chirp.Client.setacl (   self,
  path,
  subject,
  rights,
  absolute_stop_time = None,
  timeout = None 
)

Returns a string with the ACL of the given directory.

Throws a GeneralError on error.

Parameters
selfReference to the current task object.
pathTarget directory.
subjectTarget subject.
rightsPermissions to be granted.
absolute_stop_timeIf given, maximum number of seconds since epoch to wait for a server response. (Overrides any timeout.)
timeoutIf given, maximum number of seconds to wait for a server response.

◆ resetacl()

def ndcctools.chirp.Client.resetacl (   self,
  path,
  rights,
  absolute_stop_time = None,
  timeout = None 
)

Set the ACL for the given directory to be only for the rights to the calling user.

Throws a GeneralError on error.

Parameters
selfReference to the current task object.
pathTarget directory.
rightsPermissions to be granted.
absolute_stop_timeIf given, maximum number of seconds since epoch to wait for a server response. (Overrides any timeout.)
timeoutIf given, maximum number of seconds to wait for a server response.

◆ ls()

def ndcctools.chirp.Client.ls (   self,
  path,
  absolute_stop_time = None,
  timeout = None 
)

Returns a list with the names of the files in the path.

Throws an IOError on error (no such directory).

Parameters
selfReference to the current task object.
pathTarget file/directory.
absolute_stop_timeIf given, maximum number of seconds since epoch to wait for a server response. (Overrides any timeout.)
timeoutIf given, maximum number of seconds to wait for a server response.

◆ stat()

def ndcctools.chirp.Client.stat (   self,
  path,
  absolute_stop_time = None,
  timeout = None 
)

Returns a chirp.Stat object with information on path.

Throws an IOError on error (e.g., no such path or insufficient permissions).

Parameters
selfReference to the current task object.
pathTarget file/directory.
absolute_stop_timeIf given, maximum number of seconds since epoch to wait for a server response. (Overrides any timeout.)
timeoutIf given, maximum number of seconds to wait for a server response.

◆ chmod()

def ndcctools.chirp.Client.chmod (   self,
  path,
  mode,
  absolute_stop_time = None,
  timeout = None 
)

Changes permissions on path.

Throws a GeneralFailure on error (e.g., no such path or insufficient permissions).

Parameters
selfReference to the current task object.
pathTarget file/directory.
modeDesired permissions (e.g., 0755)
absolute_stop_timeIf given, maximum number of seconds since epoch to wait for a server response. (Overrides any timeout.)
timeoutIf given, maximum number of seconds to wait for a server response.

◆ put()

def ndcctools.chirp.Client.put (   self,
  source,
  destination = None,
  absolute_stop_time = None,
  timeout = None 
)

Copies local file/directory source to the chirp server as file/directory destination.

If destination is not given, source name is used. Raises chirp.TransferFailure on error.

Parameters
selfReference to the current task object.
sourceA local file or directory.
destinationFile or directory name to use in the server (defaults to source).
absolute_stop_timeIf given, maximum number of seconds since epoch to wait for a server response. (Overrides any timeout.)
timeoutIf given, maximum number of seconds to wait for a server response.

◆ get()

def ndcctools.chirp.Client.get (   self,
  source,
  destination = None,
  absolute_stop_time = None,
  timeout = None 
)

Copies server file/directory source to the local file/directory destination.

If destination is not given, source name is used. Raises chirp.TransferFailure on error.

Parameters
selfReference to the current task object.
sourceA server file or directory.
destinationFile or directory name to be used locally (defaults to source).
absolute_stop_timeIf given, maximum number of seconds since epoch to wait for a server response. (Overrides any timeout.)
timeoutIf given, maximum number of seconds to wait for a server response.

◆ rm()

def ndcctools.chirp.Client.rm (   self,
  path,
  absolute_stop_time = None,
  timeout = None 
)

Removes the given file or directory from the server.

Raises OSError on error.

Parameters
selfReference to the current task object.
pathTarget file/directory.
absolute_stop_timeIf given, maximum number of seconds since epoch to wait for a server response. (Overrides any timeout.)
timeoutIf given, maximum number of seconds to wait for a server response.

◆ mkdir()

def ndcctools.chirp.Client.mkdir (   self,
  path,
  mode = 493,
  absolute_stop_time = None,
  timeout = None 
)

Recursively create the directories in path.

Raises OSError on error.

Parameters
selfReference to the current task object.
pathTarget file/directory.
modeUnix permissions for the created directory.
absolute_stop_timeIf given, maximum number of seconds since epoch to wait for a server response. (Overrides any timeout.)
timeoutIf given, maximum number of seconds to wait for a server response.

◆ hash()

def ndcctools.chirp.Client.hash (   self,
  path,
  algorithm = 'sha1',
  absolute_stop_time = None,
  timeout = None 
)

Computes the checksum of path.

Raises IOError on error.

Parameters
selfReference to the current task object.
pathTarget file.
algorithmOne of 'md5' or 'sha1' (default).
absolute_stop_timeIf given, maximum number of seconds since epoch to wait for a server response. (Overrides any timeout.)
timeoutIf given, maximum number of seconds to wait for a server response.

◆ job_create()

def ndcctools.chirp.Client.job_create (   self,
  job_description 
)

Creates a chirp job.

See http://ccl.cse.nd.edu/software/manuals/chirp.html for details.

Parameters
job_descriptionA dictionary with a job chirp description.
job_description = {
'executable': "/bin/tar",
'arguments': [ 'tar', '-cf', 'archive.tar', 'a', 'b' ],
'files': { 'task_path': 'a',
'serv_path': '/users/magrat/a.txt'
'type': 'INPUT' },
{ 'task_path': 'b',
'serv_path': '/users/magrat/b.txt'
'type': 'INPUT' },
{ 'task_path': 'archive.tar',
'serv_path': '/users/magrat/archive.tar'
'type': 'OUTPUT' }
}
job_id = client.job_create(job_description);

◆ job_kill()

def ndcctools.chirp.Client.job_kill (   self,
job_ids 
)

Kills the jobs identified with the different job ids.

Parameters
job_idsJob ids of the chirp jobs to be killed.

◆ job_commit()

def ndcctools.chirp.Client.job_commit (   self,
job_ids 
)

Commits (starts running) the jobs identified with the different job ids.

Parameters
job_idsJob ids of the chirp jobs to be committed.

◆ job_reap()

def ndcctools.chirp.Client.job_reap (   self,
job_ids 
)

Reaps the jobs identified with the different job ids.

Parameters
job_idsJob ids of the chirp jobs to be reaped.

◆ job_status()

def ndcctools.chirp.Client.job_status (   self,
job_ids 
)

Obtains the current status for each job id.

The value returned is a list which contains a dictionary reference per job id.

Parameters
job_idsJob ids of the chirp jobs to be reaped.

◆ job_wait()

def ndcctools.chirp.Client.job_wait (   self,
  waiting_time,
  job_id = 0 
)

Waits waiting_time seconds for the job_id to terminate.

Return value is the same as job_status. If the call timesout, an empty string is returned. If job_id is missing, <job_wait> waits for any of the user's job.

Parameters
waiting_timemaximum number of seconds to wait for a job to finish.
job_idid of the job to wait.

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