Skip to content

Commit 385b45d

Browse files
Add Beta support for allowedPorts field for Cloud Workstations configurations (#11299) (#2930)
[upstream:76e5a0ffe848b0d4385e5dbd386d61016241f625] Signed-off-by: Modular Magician <[email protected]>
1 parent 4f30715 commit 385b45d

File tree

3 files changed

+46
-3
lines changed

3 files changed

+46
-3
lines changed

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ require (
1111
github.com/hashicorp/hcl/v2 v2.20.1
1212
github.com/hashicorp/terraform-json v0.22.1
1313
github.com/hashicorp/terraform-plugin-sdk/v2 v2.33.0
14-
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20241014200213-c50a538b2abb
14+
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20241014210914-9f016123f5c1
1515
github.com/mitchellh/go-homedir v1.1.0 // indirect
1616
github.com/pkg/errors v0.9.1
1717
github.com/stretchr/testify v1.9.0

go.sum

+2-2
Original file line numberDiff line numberDiff line change
@@ -190,8 +190,8 @@ github.com/hashicorp/terraform-plugin-sdk/v2 v2.33.0 h1:qHprzXy/As0rxedphECBEQAh
190190
github.com/hashicorp/terraform-plugin-sdk/v2 v2.33.0/go.mod h1:H+8tjs9TjV2w57QFVSMBQacf8k/E1XwLXGCARgViC6A=
191191
github.com/hashicorp/terraform-plugin-testing v1.5.1 h1:T4aQh9JAhmWo4+t1A7x+rnxAJHCDIYW9kXyo4sVO92c=
192192
github.com/hashicorp/terraform-plugin-testing v1.5.1/go.mod h1:dg8clO6K59rZ8w9EshBmDp1CxTIPu3yA4iaDpX1h5u0=
193-
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20241014200213-c50a538b2abb h1:862ZaX+9Lmz5t2Q9CEas1gFuGzBPLURRHT+hPkzBVro=
194-
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20241014200213-c50a538b2abb/go.mod h1:0LymWybO9dJ38EJdzzbUKO9LaYBgoJsR/gKVAP+8hr8=
193+
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20241014210914-9f016123f5c1 h1:R4uyqxcpTqPv4Ft0beH595v1rotycL5//N+7/DnWQiQ=
194+
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20241014210914-9f016123f5c1/go.mod h1:0LymWybO9dJ38EJdzzbUKO9LaYBgoJsR/gKVAP+8hr8=
195195
github.com/hashicorp/terraform-registry-address v0.2.3 h1:2TAiKJ1A3MAkZlH1YI/aTVcLZRu7JseiXNRHbOAyoTI=
196196
github.com/hashicorp/terraform-registry-address v0.2.3/go.mod h1:lFHA76T8jfQteVfT7caREqguFrW3c4MFSPhZB7HHgUM=
197197
github.com/hashicorp/terraform-svchost v0.1.1 h1:EZZimZ1GxdqFRinZ1tpJwVxxt49xc/S52uzrw4x0jKQ=

tfplan2cai/converters/google/resources/services/workstations/workstations_workstation_config.go

+43
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,12 @@ func GetWorkstationsWorkstationConfigApiObject(d tpgresource.TerraformResourceDa
132132
} else if v, ok := d.GetOkExists("disable_tcp_connections"); !tpgresource.IsEmptyValue(reflect.ValueOf(disableTcpConnectionsProp)) && (ok || !reflect.DeepEqual(v, disableTcpConnectionsProp)) {
133133
obj["disableTcpConnections"] = disableTcpConnectionsProp
134134
}
135+
allowedPortsProp, err := expandWorkstationsWorkstationConfigAllowedPorts(d.Get("allowed_ports"), d, config)
136+
if err != nil {
137+
return nil, err
138+
} else if v, ok := d.GetOkExists("allowed_ports"); !tpgresource.IsEmptyValue(reflect.ValueOf(allowedPortsProp)) && (ok || !reflect.DeepEqual(v, allowedPortsProp)) {
139+
obj["allowedPorts"] = allowedPortsProp
140+
}
135141
labelsProp, err := expandWorkstationsWorkstationConfigEffectiveLabels(d.Get("effective_labels"), d, config)
136142
if err != nil {
137143
return nil, err
@@ -916,6 +922,43 @@ func expandWorkstationsWorkstationConfigDisableTcpConnections(v interface{}, d t
916922
return v, nil
917923
}
918924

925+
func expandWorkstationsWorkstationConfigAllowedPorts(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
926+
l := v.([]interface{})
927+
req := make([]interface{}, 0, len(l))
928+
for _, raw := range l {
929+
if raw == nil {
930+
continue
931+
}
932+
original := raw.(map[string]interface{})
933+
transformed := make(map[string]interface{})
934+
935+
transformedFirst, err := expandWorkstationsWorkstationConfigAllowedPortsFirst(original["first"], d, config)
936+
if err != nil {
937+
return nil, err
938+
} else if val := reflect.ValueOf(transformedFirst); val.IsValid() && !tpgresource.IsEmptyValue(val) {
939+
transformed["first"] = transformedFirst
940+
}
941+
942+
transformedLast, err := expandWorkstationsWorkstationConfigAllowedPortsLast(original["last"], d, config)
943+
if err != nil {
944+
return nil, err
945+
} else if val := reflect.ValueOf(transformedLast); val.IsValid() && !tpgresource.IsEmptyValue(val) {
946+
transformed["last"] = transformedLast
947+
}
948+
949+
req = append(req, transformed)
950+
}
951+
return req, nil
952+
}
953+
954+
func expandWorkstationsWorkstationConfigAllowedPortsFirst(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
955+
return v, nil
956+
}
957+
958+
func expandWorkstationsWorkstationConfigAllowedPortsLast(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
959+
return v, nil
960+
}
961+
919962
func expandWorkstationsWorkstationConfigEffectiveLabels(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]string, error) {
920963
if v == nil {
921964
return map[string]string{}, nil

0 commit comments

Comments
 (0)