Skip to content

Commit

Permalink
Merge pull request #262 from hashicorp/bendbennett/handle-number-when…
Browse files Browse the repository at this point in the history
…-nil

Only assign value of number to numeric if number is bool
  • Loading branch information
bendbennett authored Jun 7, 2022
2 parents 96bc479 + 21df34f commit b7b4a99
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 9 deletions.
9 changes: 8 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
## 3.3.0 (Unreleased)
## 3.3.1 (June 07, 2022)

BUG FIXES:

* resource/random_password: During schema upgrade, copy value of attribute `number` to attribute `numeric`, only if said value is a boolean (i.e. not `null`) ([262](https://github.com/hashicorp/terraform-provider-random/pull/262))
* resource/random_string: During schema upgrade, copy value of attribute `number` to attribute `numeric`, only if said value is a boolean (i.e. not `null`) ([262](https://github.com/hashicorp/terraform-provider-random/pull/262))

## 3.3.0 (June 06, 2022)

ENHANCEMENTS:

Expand Down
7 changes: 2 additions & 5 deletions internal/provider/string.go
Original file line number Diff line number Diff line change
Expand Up @@ -329,13 +329,10 @@ func resourcePasswordStringStateUpgradeV1(_ context.Context, rawState map[string
return nil, errors.New("state upgrade failed, state is nil")
}

number, ok := rawState["number"].(bool)
if !ok {
return nil, fmt.Errorf("state upgrade failed, number is not a boolean: %T", rawState["number"])
if number, ok := rawState["number"].(bool); ok {
rawState["numeric"] = number
}

rawState["numeric"] = number

return rawState, nil
}

Expand Down
6 changes: 3 additions & 3 deletions internal/provider/string_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ func TestResourcePasswordStringStateUpgradeV1(t *testing.T) {
err: errors.New("state upgrade failed, state is nil"),
},
{
name: "number is not bool",
stateV1: map[string]interface{}{"number": 0},
err: errors.New("state upgrade failed, number is not a boolean: int"),
name: "number is not bool, raw state unaltered",
stateV1: map[string]interface{}{"number": 0},
expectedStateV2: map[string]interface{}{"number": 0},
},
{
name: "success",
Expand Down

0 comments on commit b7b4a99

Please sign in to comment.