Skip to content

Commit

Permalink
No longer eating exceptions in okta API calls. Handling none type res…
Browse files Browse the repository at this point in the history
…ponse on list response from okta.
  • Loading branch information
Will-NOQ committed Mar 13, 2023
1 parent 76c1f1f commit ff6a501
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 11 deletions.
8 changes: 6 additions & 2 deletions iambic/plugins/v0_1_0/okta/app/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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,
Expand Down
37 changes: 28 additions & 9 deletions iambic/plugins/v0_1_0/okta/group/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,16 +34,23 @@ 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"
) as retry_controller:
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(
Expand Down Expand Up @@ -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(
Expand Down Expand Up @@ -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(
Expand Down Expand Up @@ -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,
Expand Down

0 comments on commit ff6a501

Please sign in to comment.