in jobs/eam-integrations/scripts/api/XMatters/XMatters.py [0:0]
def get_all_people():
"""Gets all users/people from xMatters
Parameters:
None
Returns:
dict: name -> { attributes }
Example:
{
[...]
'test@mozilla.com' : {
u'recipientType': u'PERSON',
u'status': u'ACTIVE',
u'firstName': u'Chris',
u'lastName': u'Test',
u'links': {u'self': u'/api/xm/1/people/fc97c634-6e9b-4788-bdca-xxxxxxxxxxxx'},
u'externallyOwned': False,
u'site': {
u'id': u'2e6f8d1c-ced7-460e-bf5a-902109021090',
u'links':
{ u'self': u'/api/xm/1/sites/2e6f8d1c-ced7-460e-bf5a-902109021090' },
u'name': u'Beverly Hills Office'
},
u'properties': {
u'Functional Group': u'IT',
u'Executive': False,
u'Manager Email': u'bbixby@mozilla.com',
u'Home Country': u'United States of America',
u'Cost Center': u'1440 - Enterprise Applications and Services (EApps)',
u'Manager': u'Bill Bixby',
u'Home Zipcode': u'90210',
u'MERT/EVAC/Warden': False,
u'Home City': u'Beverly Hills'
},
u'language': u'en',
u'webLogin': u'test@mozilla.com',
u'timezone': u'US/Pacific',
u'targetName': u'test@mozilla.com',
u'id': u'fc97c634-6e9b-4788-bdca-xxxxxxxxxxxx'
},
[...]
}
"""
# https://mozilla-np.xmatters.com
# https://mozilla-np.xmatters.com/api/xm/
logger.info("\n")
logger.info("Gathering all XMatters people")
url = _config.base_URL + "/people"
headers = {"Authorization": "Bearer " + get_access_token()}
if USE_BASIC_AUTH:
headers = {}
xm_people = {}
while True:
if USE_BASIC_AUTH:
response = requests.get(
url,
auth=(_config.xm_username, _config.xm_password),
proxies=_config.proxies,
)
else:
response = requests.get(url, headers=headers, proxies=_config.proxies)
if response.status_code == 200:
rjson = response.json()
logger.debug(
"Retrieved "
+ str(rjson["count"])
+ " of "
+ str(rjson["total"])
+ " people."
)
else:
logger.critical(response)
raise Exception(response.content)
for person in rjson["data"]:
logger.debug(
"%s %s (%s)"
% (person["firstName"], person["lastName"], person["targetName"])
)
if person["lastName"] in ["[NO LAST NAME]", "NO LAST NAME"]:
person["lastName"] = ""
if person["firstName"] in ["[NO FIRST NAME]", "NO FIRST NAME"]:
person["firstName"] = ""
xm_people[person["targetName"]] = person
# Only to backfill data
# devs = get_devices_by_person(person['id'])
# if not devs:
# add_work_email_device(person)
if "next" in rjson["links"]:
url = _config.url + rjson["links"]["next"]
else:
break
return xm_people