Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: update comparison #40953

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .changelog/40953.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```release-note:bug
resource/aws_workspaces_workspace: Fixes value conversion error.
```
2 changes: 1 addition & 1 deletion internal/service/workspaces/workspace.go
Original file line number Diff line number Diff line change
Expand Up @@ -314,7 +314,7 @@ func workspacePropertyUpdate(ctx context.Context, conn *workspaces.Client, d *sc
RunningMode: types.RunningMode(d.Get(key).(string)),
}
case "workspace_properties.0.running_mode_auto_stop_timeout_in_minutes":
if d.Get("workspace_properties.0.running_mode") != types.RunningModeAutoStop {
if d.Get("workspace_properties.0.running_mode") != string(types.RunningModeAutoStop) {
log.Printf("[DEBUG] Property running_mode_auto_stop_timeout_in_minutes makes sense only for AUTO_STOP running mode")
return nil
}
Expand Down
73 changes: 73 additions & 0 deletions internal/service/workspaces/workspace_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,54 @@ func testAccWorkspace_workspaceProperties(t *testing.T) {
})
}

func testAccWorkspace_workspaceProperties_runningModeAutoStopTimeoutInMinutes(t *testing.T) {
ctx := acctest.Context(t)
var v1 types.Workspace
rName := sdkacctest.RandString(8)
domain := acctest.RandomDomainName()

resourceName := "aws_workspaces_workspace.test"

resource.Test(t, resource.TestCase{
PreCheck: func() {
acctest.PreCheck(ctx, t)
testAccPreCheckDirectory(ctx, t)
acctest.PreCheckDirectoryServiceSimpleDirectory(ctx, t)
acctest.PreCheckHasIAMRole(ctx, t, "workspaces_DefaultRole")
},
ErrorCheck: acctest.ErrorCheck(t, strings.ToLower(workspaces.ServiceID)),
ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories,
CheckDestroy: testAccCheckWorkspaceDestroy(ctx),
Steps: []resource.TestStep{
{
Destroy: false,
Config: testAccWorkspaceConfig_propertiesAutoStopTimeoutInMinutes(rName, domain, 120),
Check: resource.ComposeAggregateTestCheckFunc(
testAccCheckWorkspaceExists(ctx, resourceName, &v1),
resource.TestCheckResourceAttr(resourceName, "workspace_properties.#", "1"),
resource.TestCheckResourceAttr(resourceName, "workspace_properties.0.compute_type_name", string(types.ComputeValue)),
resource.TestCheckResourceAttr(resourceName, "workspace_properties.0.root_volume_size_gib", "80"),
resource.TestCheckResourceAttr(resourceName, "workspace_properties.0.running_mode", string(types.RunningModeAutoStop)),
resource.TestCheckResourceAttr(resourceName, "workspace_properties.0.running_mode_auto_stop_timeout_in_minutes", "120"),
resource.TestCheckResourceAttr(resourceName, "workspace_properties.0.user_volume_size_gib", "10"),
),
},
{
Config: testAccWorkspaceConfig_propertiesAutoStopTimeoutInMinutes(rName, domain, 180),
Check: resource.ComposeAggregateTestCheckFunc(
testAccCheckWorkspaceExists(ctx, resourceName, &v1),
resource.TestCheckResourceAttr(resourceName, "workspace_properties.#", "1"),
resource.TestCheckResourceAttr(resourceName, "workspace_properties.0.compute_type_name", string(types.ComputeValue)),
resource.TestCheckResourceAttr(resourceName, "workspace_properties.0.root_volume_size_gib", "80"),
resource.TestCheckResourceAttr(resourceName, "workspace_properties.0.running_mode", string(types.RunningModeAutoStop)),
resource.TestCheckResourceAttr(resourceName, "workspace_properties.0.running_mode_auto_stop_timeout_in_minutes", "180"),
resource.TestCheckResourceAttr(resourceName, "workspace_properties.0.user_volume_size_gib", "10"),
),
},
},
})
}

// testAccWorkspace_workspaceProperties_runningModeAlwaysOn
// validates workspace resource creation/import when workspace_properties.running_mode is set to ALWAYS_ON
// Reference: https://github.com/hashicorp/terraform-provider-aws/issues/13558
Expand Down Expand Up @@ -554,6 +602,31 @@ resource "aws_workspaces_workspace" "test" {
`, rName))
}

func testAccWorkspaceConfig_propertiesAutoStopTimeoutInMinutes(rName, domain string, autoStoptimeoutInMinutes int) string {
return acctest.ConfigCompose(
testAccWorkspaceConfig_Prerequisites(rName, domain),
fmt.Sprintf(`
resource "aws_workspaces_workspace" "test" {
bundle_id = data.aws_workspaces_bundle.test.id
directory_id = aws_workspaces_directory.test.id

# NOTE: WorkSpaces API doesn't allow creating users in the directory.
# However, "Administrator"" user is always present in a bare directory.
user_name = "Administrator"

workspace_properties {
# NOTE: Compute type and volume size update not allowed within 6 hours after creation.
running_mode = "AUTO_STOP"
running_mode_auto_stop_timeout_in_minutes = %[2]d
}

tags = {
Name = "tf-testacc-workspaces-workspace-%[1]s"
}
}
`, rName, autoStoptimeoutInMinutes))
}

func testAccWorkspaceConfig_validateRootVolumeSize(rName, domain string) string {
return acctest.ConfigCompose(
testAccWorkspaceConfig_Prerequisites(rName, domain),
Expand Down
3 changes: 2 additions & 1 deletion internal/service/workspaces/workspaces_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ func TestAccWorkSpaces_serial(t *testing.T) {
"validateRootVolumeSize": testAccWorkspace_validateRootVolumeSize,
"validateUserVolumeSize": testAccWorkspace_validateUserVolumeSize,
"workspaceProperties": testAccWorkspace_workspaceProperties,
"workspaceProperties_runningModeAlwaysOn": testAccWorkspace_workspaceProperties_runningModeAlwaysOn,
"workspaceProperties_runningModeAlwaysOn": testAccWorkspace_workspaceProperties_runningModeAlwaysOn,
"workspaceProperties_runningModeAutoStopTimeoutInMinutes": testAccWorkspace_workspaceProperties_runningModeAutoStopTimeoutInMinutes,
},
}

Expand Down
Loading