import time
import traceback
try:
- from config import config
- config = config()
+ import config
debug = config.debug
except:
debug = False
# configured, use them, with their auth definitions.
auth = Auth()
try:
- import monitorconfig
- auth.auth = {'Username' : monitorconfig.API_AUTH_USER,
+ from monitor import config
+ auth.auth = {'Username' : config.API_AUTH_USER,
'AuthMethod' : 'password',
- 'AuthString' : monitorconfig.API_AUTH_PASSWORD}
- auth.server = monitorconfig.API_SERVER
+ 'AuthString' : config.API_AUTH_PASSWORD}
+ auth.server = config.API_SERVER
except:
try:
import auth
def getAuthAPI():
return PLC(auth.auth, auth.server)
+
+def getTechEmails(loginbase):
+ """
+ For the given site, return all user email addresses that have the 'tech' role.
+ """
+ api = getAuthAPI()
+ # get site details.
+ s = api.GetSites(loginbase)[0]
+ # get people at site
+ 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
+
+def getPIEmails(loginbase):
+ """
+ For the given site, return all user email addresses that have the 'tech' role.
+ """
+ api = getAuthAPI()
+ # get site details.
+ s = api.GetSites(loginbase)[0]
+ # get people at site
+ 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
+
+def getSliceUserEmails(loginbase):
+ """
+ For the given site, return all user email addresses that have the 'tech' role.
+ """
+ #api = getAuthAPI()
+ # get site details.
+ s = api.GetSites(loginbase)[0]
+ # get people at site
+ slices = api.GetSlices(s['slice_ids'])
+ people = []
+ for slice in slices:
+ people += api.GetPersons(slice['person_ids'])
+ # pull out those with the right role.
+ emails = [ person['email'] for person in filter(lambda x: 'pi' in x['roles'], people) ]
+ unique_emails = [ x for x in set(emails) ]
+ return unique_emails
+
'''
Returns list of nodes in dbg as reported by PLC
'''
print "getSiteNodes: %s" % exc
return nodelist
+
def getPersons(filter=None, fields=None):
api = xmlrpclib.Server(auth.server, verbose=False, allow_none=True)
persons = []