This class is used to create a chirp client
Public Member Functions | |
def | __init__ |
Create a new chirp client. | |
def | whoami |
Returns a string with identity of the client according to the server. | |
def | listacl |
Returns a string with the ACL of the given directory. | |
def | setacl |
Returns a string with the ACL of the given directory. | |
def | resetacl |
Set the ACL for the given directory to be only for the rights to the calling user. | |
def | ls |
Returns a list with the names of the files in the path. | |
def | stat |
Returns a Chirp.Stat object with information on path. | |
def | chmod |
Changes permissions on path. | |
def | put |
Copies local file/directory source to the chirp server as file/directory destination. | |
def | get |
Copies server file/directory source to the local file/directory destination. | |
def | rm |
Removes the given file or directory from the server. | |
def | mkdir |
Recursively create the directories in path. | |
def | hash |
Computes the checksum of path. | |
def | job_create |
Creates a chirp job. | |
def | job_kill |
Kills the jobs identified with the different job ids. | |
def | job_commit |
Commits (starts running) the jobs identified with the different job ids. | |
def | job_reap |
Reaps the jobs identified with the different job ids. | |
def | job_status |
Obtains the current status for each job id. | |
def | job_wait |
Waits waiting_time seconds for the job_id to terminate. |
def chirp::Client::__init__ | ( | self, | ||
hostport, | ||||
timeout = 60 , |
||||
authentication = None , |
||||
tickets = None , |
||||
debug = False | ||||
) |
Create a new chirp client.
self | Reference to the current task object. | |
hostport | The host:port of the server. | |
timeout | The time to wait for a server response on every request. | |
authentication | A list of prefered authentications. E.g., ['tickets', 'unix'] | |
debug | Generate client debug output. |
def chirp::Client::whoami | ( | self, | ||
absolute_stop_time = None , |
||||
timeout = None | ||||
) |
Returns a string with identity of the client according to the server.
self | Reference to the current task object. | |
absolute_stop_time | If given, maximum number of seconds since epoch to wait for a server response. (Overrides any timeout.) | |
timeout | If given, maximum number of seconds to wait for a server response. |
def 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).
self | Reference to the current task object. | |
path | Target directory. | |
absolute_stop_time | If given, maximum number of seconds since epoch to wait for a server response. (Overrides any timeout.) | |
timeout | If given, maximum number of seconds to wait for a server response. |
def 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.
self | Reference to the current task object. | |
path | Target directory. | |
subject | Target subject. | |
rights | Permissions to be granted. | |
absolute_stop_time | If given, maximum number of seconds since epoch to wait for a server response. (Overrides any timeout.) | |
timeout | If given, maximum number of seconds to wait for a server response. |
def 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.
self | Reference to the current task object. | |
path | Target directory. | |
rights | Permissions to be granted. | |
absolute_stop_time | If given, maximum number of seconds since epoch to wait for a server response. (Overrides any timeout.) | |
timeout | If given, maximum number of seconds to wait for a server response. |
def 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).
self | Reference to the current task object. | |
path | Target file/directory. | |
absolute_stop_time | If given, maximum number of seconds since epoch to wait for a server response. (Overrides any timeout.) | |
timeout | If given, maximum number of seconds to wait for a server response. |
def 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).
self | Reference to the current task object. | |
path | Target file/directory. | |
absolute_stop_time | If given, maximum number of seconds since epoch to wait for a server response. (Overrides any timeout.) | |
timeout | If given, maximum number of seconds to wait for a server response. |
def 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).
self | Reference to the current task object. | |
path | Target file/directory. | |
mode | Desired permissions (e.g., 0755) | |
absolute_stop_time | If given, maximum number of seconds since epoch to wait for a server response. (Overrides any timeout.) | |
timeout | If given, maximum number of seconds to wait for a server response. |
def 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.
self | Reference to the current task object. | |
source | A local file or directory. | |
destination | File or directory name to use in the server (defaults to source). | |
absolute_stop_time | If given, maximum number of seconds since epoch to wait for a server response. (Overrides any timeout.) | |
timeout | If given, maximum number of seconds to wait for a server response. |
def 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.
self | Reference to the current task object. | |
source | A server file or directory. | |
destination | File or directory name to be used locally (defaults to source). | |
absolute_stop_time | If given, maximum number of seconds since epoch to wait for a server response. (Overrides any timeout.) | |
timeout | If given, maximum number of seconds to wait for a server response. |
def chirp::Client::rm | ( | self, | ||
path, | ||||
absolute_stop_time = None , |
||||
timeout = None | ||||
) |
Removes the given file or directory from the server.
Raises OSError on error.
self | Reference to the current task object. | |
path | Target file/directory. | |
absolute_stop_time | If given, maximum number of seconds since epoch to wait for a server response. (Overrides any timeout.) | |
timeout | If given, maximum number of seconds to wait for a server response. |
def chirp::Client::mkdir | ( | self, | ||
path, | ||||
mode = 493 , |
||||
absolute_stop_time = None , |
||||
timeout = None | ||||
) |
Recursively create the directories in path.
Raises OSError on error.
self | Reference to the current task object. | |
path | Target file/directory. | |
mode | Unix permissions for the created directory. | |
absolute_stop_time | If given, maximum number of seconds since epoch to wait for a server response. (Overrides any timeout.) | |
timeout | If given, maximum number of seconds to wait for a server response. |
def chirp::Client::hash | ( | self, | ||
path, | ||||
algorithm = 'sha1' , |
||||
absolute_stop_time = None , |
||||
timeout = None | ||||
) |
Computes the checksum of path.
Raises IOError on error.
self | Reference to the current task object. | |
path | Target file. | |
algorithm | One of 'md5' or 'sha1' (default). | |
absolute_stop_time | If given, maximum number of seconds since epoch to wait for a server response. (Overrides any timeout.) | |
timeout | If given, maximum number of seconds to wait for a server response. |
def chirp::Client::job_create | ( | self, | ||
job_description | ||||
) |
Creates a chirp job.
See http://ccl.cse.nd.edu/software/manuals/chirp.html for details.
job_description | A 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);
def chirp::Client::job_kill | ( | self, | ||
job_ids | ||||
) |
Kills the jobs identified with the different job ids.
job_ids | Job ids of the chirp jobs to be killed. |
def chirp::Client::job_commit | ( | self, | ||
job_ids | ||||
) |
Commits (starts running) the jobs identified with the different job ids.
job_ids | Job ids of the chirp jobs to be committed. |
def chirp::Client::job_reap | ( | self, | ||
job_ids | ||||
) |
Reaps the jobs identified with the different job ids.
job_ids | Job ids of the chirp jobs to be reaped. |
def 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.
job_ids | Job ids of the chirp jobs to be reaped. |
def 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, C<<job_wait>> waits for any of the user's job.
waiting_time | maximum number of seconds to wait for a job to finish. | |
job_id | id of the job to wait. |