Recent Changes - Search:

SetDefaultProject

(:source lang=python:)

  1. !/usr/bin/env 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:)

Page last modified by brett on May 04, 2012, at 10:58 PM