Skip to content

Commit

Permalink
Merge pull request #644 from okta/assignments
Browse files Browse the repository at this point in the history
Fixed constant change-loops in the 'okta_app_group_assignments' resource
  • Loading branch information
monde authored Sep 14, 2021
2 parents c11523c + a1b2fb2 commit fc2f7dc
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 45 deletions.
31 changes: 0 additions & 31 deletions .travis.yml

This file was deleted.

12 changes: 6 additions & 6 deletions okta/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -367,25 +367,25 @@ func handleAppGroups(ctx context.Context, id string, d *schema.ResourceData, cli
return asyncActionList
}

func listApplicationGroupAssignments(ctx context.Context, client *okta.Client, id string) ([]*okta.ApplicationGroupAssignment, error) {
func listApplicationGroupAssignments(ctx context.Context, client *okta.Client, id string) ([]*okta.ApplicationGroupAssignment, *okta.Response, error) {
var resGroups []*okta.ApplicationGroupAssignment
groups, resp, err := client.Application.ListApplicationGroupAssignments(ctx, id, &query.Params{Limit: defaultPaginationLimit})
if err != nil {
return nil, err
return nil, resp, err
}
for {
resGroups = append(resGroups, groups...)
if resp.HasNextPage() {
resp, err = resp.Next(ctx, &groups)
if err != nil {
return nil, err
return nil, resp, err
}
continue
} else {
break
}
}
return resGroups, nil
return resGroups, resp, nil
}

func containsAppUser(userList []*okta.AppUser, id string) bool {
Expand Down Expand Up @@ -571,7 +571,7 @@ func syncGroupsAndUsers(ctx context.Context, id string, d *schema.ResourceData,
}
}
if ignoreGroups := d.Get("skip_groups").(bool); !ignoreGroups {
appGroups, err := listApplicationGroupAssignments(ctx, getOktaClientFromMetadata(m), id)
appGroups, _, err := listApplicationGroupAssignments(ctx, getOktaClientFromMetadata(m), id)
if err != nil {
return err
}
Expand Down Expand Up @@ -686,7 +686,7 @@ func listAppUsersIDsAndGroupsIDs(ctx context.Context, client *okta.Client, id st
if err != nil {
return nil, nil, err
}
appGroups, err := listApplicationGroupAssignments(ctx, client, id)
appGroups, _, err := listApplicationGroupAssignments(ctx, client, id)
if err != nil {
return nil, nil, err
}
Expand Down
17 changes: 9 additions & 8 deletions okta/resource_okta_app_group_assignments.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ func resourceAppGroupAssignments() *schema.Resource {
DiffSuppressFunc: func(k, old, new string, d *schema.ResourceData) bool {
return new == ""
},
Default: "{}",
},
},
},
Expand Down Expand Up @@ -101,16 +102,18 @@ func resourceAppGroupAssignmentsCreate(ctx context.Context, d *schema.ResourceDa

func resourceAppGroupAssignmentsRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
client := getOktaClientFromMetadata(m)

assignments, err := listApplicationGroupAssignments(
assignments, resp, err := listApplicationGroupAssignments(
ctx,
client,
d.Get("app_id").(string),
)
if err != nil {
if err := suppressErrorOn404(resp, err); err != nil {
return diag.Errorf("failed to fetch group assignments: %v", err)
}

if assignments == nil {
d.SetId("")
return nil
}
tfFlattenedAssignments := make([]interface{}, len(assignments))
for i, assignment := range assignments {
tfAssignment, err := groupAssignmentToTFGroup(assignment)
Expand All @@ -129,16 +132,14 @@ func resourceAppGroupAssignmentsRead(ctx context.Context, d *schema.ResourceData

func resourceAppGroupAssignmentsDelete(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
client := getOktaClientFromMetadata(m)

for _, rawGroup := range d.Get("group").(*schema.Set).List() {
group := rawGroup.(map[string]interface{})

_, err := client.Application.DeleteApplicationGroupAssignment(
resp, err := client.Application.DeleteApplicationGroupAssignment(
ctx,
d.Get("app_id").(string),
group["id"].(string),
)
if err != nil {
if err := suppressErrorOn404(resp, err); err != nil {
return diag.Errorf("failed to delete application group assignment: %v", err)
}
}
Expand Down

0 comments on commit fc2f7dc

Please sign in to comment.