|
Brett /
SetDefaultProject(:source lang=python:)
import xmlrpclib import sys import os import pwd import getpass import getopt url = 'https://help.vlsci.unimelb.edu.au/accounts/xmlrpc/' username = pwd.getpwuid(os.getuid())[0] def usage(): print "Usage: set_default_project [-l] [-h] | <project id>"
print " -h: Print help"
print " -l: List projects user is a member of"
def list_projects(username): server = xmlrpclib.Server(url)
try:
return_value, message = server.list_projects(username)
except Exception, e:
if hasattr(e, 'faultCode'):
if e.faultCode == 1:
print >> sys.stderr, "ERROR: Function not supported yet"
sys.exit(-1)
print >> sys.stderr, "ERROR: Can't contact the VLSCI accounts system. Sorry, but projects cannot be altered at present.\nPlease try again later"
print >> sys.stderr, "ERROR: (e)
sys.exit(-1)
if return_value != 0:
print >> sys.stderr, "ERROR: (message)
sys.exit(-1)
else:
print >> sys.stdout, " (message)
return return_value
def set_default_project(username, password, project): server = xmlrpclib.Server(url)
try:
return_value, message = server.change_default_project(username, password, project)
except Exception, e:
if hasattr(e, 'faultCode'):
if e.faultCode == 81:
print >> sys.stderr, "ERROR: Incorrect password"
sys.exit(-1)
print >> sys.stderr, "ERROR: Can't contact the VLSCI accounts system. Sorry, but projects cannot be altered at present.\nPlease try again later"
print >> sys.stderr, "ERROR: (e)
sys.exit(-1)
if return_value != 0:
print >> sys.stderr, "ERROR: " + message
sys.exit(-1)
else:
print >> sys.stdout, "Default project successfully changed to " + project
return return_value
if __name__ == "__main__": try:
opts, args = getopt.getopt(sys.argv[1:], 'hl')
except getopt.GetoptError, err:
print err
usage()
sys.exit(-1)
opts = dict(opts)
if '-l' in opts:
return_value = list_projects(username)
sys.exit(return_value)
if '-h' in opts:
usage()
sys.exit(0)
if len(args) != 1:
usage()
sys.exit(-1)
project = args[0]
password = getpass.getpass()
return_value = set_default_project(username, password, project)
sys.exit(return_value)
(:sourceend:) |