cctools
ndcctools.chirp.Client Class Reference

Python Client object. More...

Inheritance diagram for ndcctools.chirp.Client:

Public Member Functions

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

Detailed Description

Python Client object.

This class is used to create a chirp client

Constructor & Destructor Documentation

◆ __init__()

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()

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()

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()

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()

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()

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()

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()

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()

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()

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()

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()

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()

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()

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()

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()

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()

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()

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()

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: