in jobs/eam-integrations/scripts/workday_xmatters.py [0:0]
def iterate_thru_wd_users(wd_users, xm_users, xm_sites, limit):
wd_users_seen = {}
xm_add_users = []
num_changes = 0
for user in wd_users:
if "User_Email_Address" not in user:
logger.info(
"Workday User ID %s (%s) has no email address! Skipping."
% (
user["User_Employee_ID"],
user["User_Preferred_First_Name"]
+ " "
+ user["User_Preferred_Last_Name"],
)
)
continue
elif not re.search(
"(?:mozilla.com|mozillafoundation.org)$",
user["User_Email_Address"],
):
logger.info(
"User {} has non-matching email. Skipping.".format(
user["User_Email_Address"]
)
)
continue
wd_users_seen[user["User_Email_Address"]] = 1
if user["User_Email_Address"] in xm_users:
logger.debug("User %s found in XM" % user["User_Email_Address"])
if not user_data_matches(user, xm_users[user["User_Email_Address"]]):
if num_changes < limit:
logger.debug("USER DATA NO MATCHES!")
XMatters.update_user(
user, xm_users[user["User_Email_Address"]], xm_sites
)
num_changes +=1
else:
logger.debug("%s good" % user["User_Email_Address"])
else:
# add user to XM
# XMatters.add_user(user, xm_sites)
xm_add_users.append(user)
# time.sleep(5)
logger.info(f"Number of updated users:{num_changes}")
return wd_users_seen, xm_add_users