From ff6a5019aaa8875c2ca2ed93fb6f6e7cfe06f878 Mon Sep 17 00:00:00 2001 From: Will-NOQ <102608210+Will-NOQ@users.noreply.github.com> Date: Mon, 13 Mar 2023 13:26:44 -0500 Subject: [PATCH] No longer eating exceptions in okta API calls. Handling none type response on list response from okta. --- iambic/plugins/v0_1_0/okta/app/utils.py | 8 +++-- iambic/plugins/v0_1_0/okta/group/utils.py | 37 +++++++++++++++++------ 2 files changed, 34 insertions(+), 11 deletions(-) diff --git a/iambic/plugins/v0_1_0/okta/app/utils.py b/iambic/plugins/v0_1_0/okta/app/utils.py index 5590a3735..557c97057 100644 --- a/iambic/plugins/v0_1_0/okta/app/utils.py +++ b/iambic/plugins/v0_1_0/okta/app/utils.py @@ -28,6 +28,7 @@ async def list_app_user_assignments( app_user_list, _, err = await retry_controller(handle_okta_fn, fn) if err: log.error("Error encountered when listing app users", error=str(err)) + raise Exception(f"Error listing app users: {str(err)}") user_assignments = [] if app_user_list: @@ -155,11 +156,14 @@ async def list_all_apps(okta_organization: OktaOrganization) -> List[App]: next_apps, err = await retry_controller(handle_okta_fn, resp.next) if err: log.error("Error encountered when listing apps", error=str(err)) - return [] + raise Exception("Error encountered when listing apps") raw_apps.append(next_apps) + + if not raw_apps: + return [] + tasks = [] apps = [] - for app_raw in raw_apps: app = App( id=app_raw.id, diff --git a/iambic/plugins/v0_1_0/okta/group/utils.py b/iambic/plugins/v0_1_0/okta/group/utils.py index 81ca9559e..a755016a0 100644 --- a/iambic/plugins/v0_1_0/okta/group/utils.py +++ b/iambic/plugins/v0_1_0/okta/group/utils.py @@ -34,6 +34,10 @@ async def list_all_users(okta_organization: OktaOrganization) -> List[User]: ) as retry_controller: fn = functools.partial(client.list_users) users, resp, err = await retry_controller(handle_okta_fn, fn) + if err: + log.error("Error encountered when listing users", error=str(err)) + raise Exception(f"Error listing users: {str(err)}") + while resp.has_next(): async with GlobalRetryController( fn_identifier="okta.list_users" @@ -41,9 +45,12 @@ async def list_all_users(okta_organization: OktaOrganization) -> List[User]: next_users, err = await retry_controller(handle_okta_fn, resp.next) if err: log.error("Error encountered when listing users", error=str(err)) - return [] + raise Exception(f"Error listing users: {str(err)}") users.append(next_users) + if not users: + return [] + users_to_return = [] for user in users: users_to_return.append( @@ -80,18 +87,23 @@ async def list_group_users(group: Group, okta_organization: OktaOrganization) -> ) as retry_controller: fn = functools.partial(client.list_group_users, group.group_id) users, resp, err = await retry_controller(handle_okta_fn, fn) - if err: - raise Exception(f"Error listing users: {str(err)}") + if err: + log.error("Error encountered when listing users in group", error=str(err)) + raise Exception(f"Error listing users for group: {group.name}, {str(err)}") while resp.has_next(): async with GlobalRetryController( fn_identifier="okta.list_group_users" ) as retry_controller: - next_users, err = await retry_controller(resp.next) + next_users, err = await retry_controller(handle_okta_fn, resp.next) if err: log.error("Error encountered when listing users in group", error=str(err)) - return group + raise Exception(f"Error listing users for group: {group.name}, {str(err)}") users.append(next_users) + + if not users: + return group + users_to_return = [] for user in users: users_to_return.append( @@ -127,16 +139,23 @@ async def list_all_groups(okta_organization: OktaOrganization) -> List[Group]: ) as retry_controller: fn = functools.partial(client.list_groups) groups, resp, err = await retry_controller(handle_okta_fn, fn) + if err: + log.error("Error encountered when listing groups", error=str(err)) + raise Exception(f"Error listing groups: {str(err)}") + while resp.has_next(): async with GlobalRetryController( fn_identifier="okta.list_groups" ) as retry_controller: - next_groups, resp, err = await retry_controller(handle_okta_fn, resp.next) + next_groups, err = await retry_controller(handle_okta_fn, resp.next) if err: - log.error("Error encountered when listing users", error=str(err)) - return [] + log.error("Error encountered when listing groups", error=str(err)) + raise Exception(f"Error listing groups: {str(err)}") groups.append(next_groups) + if not groups: + return [] + tasks = [] for group_raw in groups: group = Group( @@ -484,7 +503,7 @@ async def update_group_members( _, err = await retry_controller(handle_okta_fn, fn) if err: log.error( - "Error removing user to group", + "Error removing user from group", user=user, group=group.name, **log_params,