X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plc.py;h=5be15c8ea808d9584f036397a47be293a28e463a;hb=refs%2Fheads%2F1.0;hp=f6f8cc3254d22fa6fbee05e90929de12f12f97e3;hpb=e8d7b6fcbb8ef3bc1e185f5cf7294961bb9d380d;p=monitor.git diff --git a/plc.py b/plc.py index f6f8cc3..5be15c8 100644 --- a/plc.py +++ b/plc.py @@ -45,6 +45,8 @@ except: api = xmlrpclib.Server(auth.server, verbose=False, allow_none=True) +global_error_count = 0 + class PLC: def __init__(self, auth, url): self.auth = auth @@ -56,7 +58,17 @@ class PLC: 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__() @@ -98,7 +110,7 @@ def getSliceUserEmails(loginbase): """ 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 @@ -220,14 +232,14 @@ def getSiteNodes2(loginbase): 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