def iterate_thru_wd_users()

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