Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
r/aws_iam_user_login_profile: prevent password_reset_required persist…
…ent diff This change fixes persistent differences observed when a user login profile is initially configured with `password_reset_required` set to true. Once the user logs in and resets their password successfully, the remote value switches to `false` as the user has completed the initial reset task. Instead of writing the remote value to state on every read operation (triggering a diff and forced re-creation as soon as the password is reset), we now store the initial value on creation only. This makes the implementation consistent with our own existing documentation for the argument, which states: > password_reset_required - (Optional) Whether the user should be forced to reset the generated password on resource creation. Only applies on resource creation. Before: ```console % make testacc PKG=iam TESTS=TestAccIAMUserLoginProfile_passwordResetRequired ==> Checking that code complies with gofmt requirements... TF_ACC=1 go1.21.8 test ./internal/service/iam/... -v -count 1 -parallel 20 -run='TestAccIAMUserLoginProfile_passwordResetRequired' -timeout 360m === RUN TestAccIAMUserLoginProfile_passwordResetRequired === PAUSE TestAccIAMUserLoginProfile_passwordResetRequired === CONT TestAccIAMUserLoginProfile_passwordResetRequired user_login_profile_test.go:303: Step 1/2 error: After applying this test step, the refresh plan was not empty. stdout Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: -/+ destroy and then create replacement Terraform will perform the following actions: # aws_iam_user_login_profile.test must be replaced -/+ resource "aws_iam_user_login_profile" "test" { <snip> + password = (known after apply) ~ password_reset_required = false -> true # forces replacement # (3 unchanged attributes hidden) } Plan: 1 to add, 0 to change, 1 to destroy. --- FAIL: TestAccIAMUserLoginProfile_passwordResetRequired (26.74s) FAIL FAIL github.com/hashicorp/terraform-provider-aws/internal/service/iam 32.422s ``` After: ```console % make testacc PKG=iam TESTS=TestAccIAMUserLoginProfile_passwordResetRequired ==> Checking that code complies with gofmt requirements... TF_ACC=1 go1.21.8 test ./internal/service/iam/... -v -count 1 -parallel 20 -run='TestAccIAMUserLoginProfile_passwordResetRequired' -timeout 360m --- PASS: TestAccIAMUserLoginProfile_passwordResetRequired (20.63s) PASS ok github.com/hashicorp/terraform-provider-aws/internal/service/iam 26.258s ``` ```console % make testacc PKG=iam TESTS=TestAccIAMUserLoginProfile_ ==> Checking that code complies with gofmt requirements... TF_ACC=1 go1.21.8 test ./internal/service/iam/... -v -count 1 -parallel 20 -run='TestAccIAMUserLoginProfile_' -timeout 360m --- PASS: TestAccIAMUserLoginProfile_keybaseDoesntExist (11.51s) --- PASS: TestAccIAMUserLoginProfile_nogpg (12.95s) --- PASS: TestAccIAMUserLoginProfile_passwordLength (13.72s) --- PASS: TestAccIAMUserLoginProfile_keybase (14.21s) --- PASS: TestAccIAMUserLoginProfile_notAKey (15.64s) --- PASS: TestAccIAMUserLoginProfile_disappears (21.50s) --- PASS: TestAccIAMUserLoginProfile_basic (21.57s) --- PASS: TestAccIAMUserLoginProfile_passwordResetRequired (21.70s) PASS ok github.com/hashicorp/terraform-provider-aws/internal/service/iam 27.247s ```
- Loading branch information