Skip to content

Commit

Permalink
Fix the toggle of disable_group option in "minio_iam_group" resource (
Browse files Browse the repository at this point in the history
#484)

Co-authored-by: Victor Nogueira <[email protected]>
  • Loading branch information
asdevcapybara and felladrin committed Jul 11, 2023
1 parent e506cf5 commit 5d4d6a7
Showing 1 changed file with 23 additions and 8 deletions.
31 changes: 23 additions & 8 deletions minio/resource_minio_iam_group.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,11 @@ func minioCreateGroup(ctx context.Context, d *schema.ResourceData, meta interfac
return NewResourceError("creating group failed", d.Id(), err)
}

err = minioStatusGroup(ctx, d, meta)
if err != nil {
return NewResourceError("error updating IAM Group %s: %s", d.Id(), err)
}

d.SetId(aws.StringValue(&iamGroupConfig.MinioIAMName))

return minioReadGroup(ctx, d, meta)
Expand Down Expand Up @@ -97,11 +102,9 @@ func minioUpdateGroup(ctx context.Context, d *schema.ResourceData, meta interfac
d.SetId(nn.(string))
}

if iamGroupConfig.MinioDisableGroup {
err := minioDisableGroup(ctx, d, meta)
if err != nil {
return NewResourceError("error updating IAM Group %s: %s", d.Id(), err)
}
err := minioStatusGroup(ctx, d, meta)
if err != nil {
return NewResourceError("error updating IAM Group %s: %s", d.Id(), err)
}

if iamGroupConfig.MinioForceDestroy {
Expand Down Expand Up @@ -134,6 +137,10 @@ func minioReadGroup(ctx context.Context, d *schema.ResourceData, meta interface{
return NewResourceError("error reading IAM Group %s: %s", d.Id(), err)
}

if err := d.Set("disable_group", output.Status == string(madmin.GroupDisabled)); err != nil {
return NewResourceError("error reading IAM Group %s: %s", d.Id(), err)
}

return nil
}

Expand Down Expand Up @@ -185,16 +192,24 @@ func minioDeleteGroup(ctx context.Context, d *schema.ResourceData, meta interfac
return nil
}

func minioDisableGroup(ctx context.Context, d *schema.ResourceData, meta interface{}) error {
func minioStatusGroup(ctx context.Context, d *schema.ResourceData, meta interface{}) error {

var minioGroupStatus madmin.GroupStatus

iamGroupConfig := IAMGroupConfig(d, meta)

log.Println("[DEBUG] Disabling IAM Group request:", iamGroupConfig.MinioIAMName)

err := iamGroupConfig.MinioAdmin.SetGroupStatus(ctx, iamGroupConfig.MinioIAMName, madmin.GroupDisabled)
if iamGroupConfig.MinioDisableGroup {
minioGroupStatus = madmin.GroupDisabled
} else {
minioGroupStatus = madmin.GroupEnabled
}

err := iamGroupConfig.MinioAdmin.SetGroupStatus(ctx, iamGroupConfig.MinioIAMName, minioGroupStatus)

if err != nil {
return fmt.Errorf("error disabling IAM Group %s: %s", d.Id(), err)
return fmt.Errorf("error while enabling or disabling IAM Group %s: %s", d.Id(), err)
}

return nil
Expand Down

0 comments on commit 5d4d6a7

Please sign in to comment.