api = xmlrpclib.Server(auth.server, verbose=False, allow_none=True)
+global_error_count = 0
+
class PLC:
def __init__(self, auth, url):
self.auth = auth
if method is None:
raise AssertionError("method does not exist")
- return lambda *params : method(self.auth, *params)
+ try:
+ return lambda *params : method(self.auth, *params)
+ except ProtocolError:
+ traceback.print_exc()
+ global_error_count += 1
+ if global_error_count >= 10:
+ print "maximum error count exceeded; exiting..."
+ sys.exit(1)
+ else:
+ print "%s errors have occurred" % global_error_count
+ raise Exception("ProtocolError continuing")
def __repr__(self):
return self.api.__repr__()
# get site details.
s = api.GetSites(loginbase)[0]
# get people at site
- p = api.GetPersons(s['person_ids'])[0]
+ p = api.GetPersons(s['person_ids'])
# pull out those with the right role.
emails = [ person['email'] for person in filter(lambda x: 'tech' in x['roles'], p) ]
return emails
# get site details.
s = api.GetSites(loginbase)[0]
# get people at site
- p = api.GetPersons(s['person_ids'])[0]
+ p = api.GetPersons(s['person_ids'])
# pull out those with the right role.
emails = [ person['email'] for person in filter(lambda x: 'pi' in x['roles'], p) ]
return emails
"""
For the given site, return all user email addresses that have the 'tech' role.
"""
- #api = getAuthAPI()
+ api = getAuthAPI()
# get site details.
s = api.GetSites(loginbase)[0]
# get people at site
Returns loginbase for given nodename
'''
def siteId(nodename):
- api = xmlrpclib.Server(auth.server, verbose=False)
- anon = {'AuthMethod': "anonymous"}
- site_id = api.GetNodes (anon, {"hostname": nodename}, ['site_id'])
+ api = xmlrpclib.Server(auth.server, verbose=False, allow_none=True)
+ site_id = api.GetNodes (auth.auth, {"hostname": nodename}, ['site_id'])
if len(site_id) == 1:
- loginbase = api.GetSites (anon, site_id[0], ["login_base"])
+ loginbase = api.GetSites (auth.auth, site_id[0], ["login_base"])
return loginbase[0]['login_base']
+ else:
+ print "Not nodes returned!!!!"
'''
Returns list of slices for a site.
'''
def slices(loginbase):
siteslices = []
- api = xmlrpclib.Server(auth.server, verbose=False)
+ api = xmlrpclib.Server(auth.server, verbose=False, allow_none=True)
sliceids = api.GetSites (auth.auth, {"login_base" : loginbase}, ["slice_ids"])[0]['slice_ids']
for slice in api.GetSlices(auth.auth, {"slice_id" : sliceids}, ["name"]):
siteslices.append(slice['name'])
Returns dict of PCU info of a given node.
'''
def getpcu(nodename):
- api = xmlrpclib.Server(auth.server, verbose=False)
+ api = xmlrpclib.Server(auth.server, verbose=False, allow_none=True)
anon = {'AuthMethod': "anonymous"}
nodeinfo = api.GetNodes(auth.auth, {"hostname": nodename}, ["pcu_ids", "ports"])[0]
if nodeinfo['pcu_ids']:
def getNodeNetworks(filter=None):
api = xmlrpclib.Server(auth.server, verbose=False, allow_none=True)
- nodenetworks = api.GetNodeNetworks(auth.auth, filter, None)
+ nodenetworks = api.GetInterfaces(auth.auth, filter, None)
return nodenetworks
def getNodes(filter=None, fields=None):
api = xmlrpclib.Server(auth.server, verbose=False, allow_none=True)
nodes = api.GetNodes(auth.auth, filter, fields)
#['boot_state', 'hostname',
- #'site_id', 'date_created', 'node_id', 'version', 'nodenetwork_ids',
+ #'site_id', 'date_created', 'node_id', 'version', 'interface_ids',
#'last_updated', 'peer_node_id', 'ssh_rsa_key' ])
return nodes