Skip to content

Commit 371400f

Browse files
modular-magiciankotatut
authored andcommitted
Adding new Lustre Resource (#13181) (GoogleCloudPlatform#3645)
[upstream:90ac94c0f810d38e929eb2eef14e60515c456977] Signed-off-by: Modular Magician <[email protected]>
1 parent ffef6bb commit 371400f

File tree

3 files changed

+131
-3
lines changed

3 files changed

+131
-3
lines changed

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ require (
1313
github.com/hashicorp/hcl/v2 v2.23.0
1414
github.com/hashicorp/terraform-json v0.24.0
1515
github.com/hashicorp/terraform-plugin-sdk/v2 v2.36.0
16-
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250320221531-0c8af5d4fdd8
16+
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250320230412-a3986dda79b5
1717
github.com/mitchellh/go-homedir v1.1.0 // indirect
1818
github.com/pkg/errors v0.9.1
1919
github.com/stretchr/testify v1.10.0

go.sum

+2-2
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,8 @@ github.com/hashicorp/terraform-plugin-sdk/v2 v2.36.0 h1:7/iejAPyCRBhqAg3jOx+4UcA
175175
github.com/hashicorp/terraform-plugin-sdk/v2 v2.36.0/go.mod h1:TiQwXAjFrgBf5tg5rvBRz8/ubPULpU0HjSaVi5UoJf8=
176176
github.com/hashicorp/terraform-plugin-testing v1.5.1 h1:T4aQh9JAhmWo4+t1A7x+rnxAJHCDIYW9kXyo4sVO92c=
177177
github.com/hashicorp/terraform-plugin-testing v1.5.1/go.mod h1:dg8clO6K59rZ8w9EshBmDp1CxTIPu3yA4iaDpX1h5u0=
178-
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250320221531-0c8af5d4fdd8 h1:KdYuHFXBJvBJudMNJhh4grTBqbGO73/yB4HdNUlHk1Y=
179-
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250320221531-0c8af5d4fdd8/go.mod h1:nebsSmxY8nt9YCIJwjQdfUkFeITR5rGyTAQMfpexkiQ=
178+
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250320230412-a3986dda79b5 h1:N9SdUmUIcg94qUhz0/ApIMdjGU4Qz//R33Wel8PCKbI=
179+
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250320230412-a3986dda79b5/go.mod h1:nebsSmxY8nt9YCIJwjQdfUkFeITR5rGyTAQMfpexkiQ=
180180
github.com/hashicorp/terraform-registry-address v0.2.4 h1:JXu/zHB2Ymg/TGVCRu10XqNa4Sh2bWcqCNyKWjnCPJA=
181181
github.com/hashicorp/terraform-registry-address v0.2.4/go.mod h1:tUNYTVyCtU4OIGXXMDp7WNcJ+0W1B4nmstVDgHMjfAU=
182182
github.com/hashicorp/terraform-svchost v0.1.1 h1:EZZimZ1GxdqFRinZ1tpJwVxxt49xc/S52uzrw4x0jKQ=
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
// ----------------------------------------------------------------------------
2+
//
3+
// *** AUTO GENERATED CODE *** Type: MMv1 ***
4+
//
5+
// ----------------------------------------------------------------------------
6+
//
7+
// This code is generated by Magic Modules using the following:
8+
//
9+
// Configuration: https://github.com/GoogleCloudPlatform/magic-modules/tree/main/mmv1/products/lustre/Instance.yaml
10+
// Template: https://github.com/GoogleCloudPlatform/magic-modules/tree/main/mmv1/templates/tgc/resource_converter.go.tmpl
11+
//
12+
// DO NOT EDIT this file directly. Any changes made to this file will be
13+
// overwritten during the next generation cycle.
14+
//
15+
// ----------------------------------------------------------------------------
16+
17+
package lustre
18+
19+
import (
20+
"reflect"
21+
22+
"github.com/GoogleCloudPlatform/terraform-google-conversion/v6/tfplan2cai/converters/google/resources/cai"
23+
"github.com/hashicorp/terraform-provider-google-beta/google-beta/tpgresource"
24+
transport_tpg "github.com/hashicorp/terraform-provider-google-beta/google-beta/transport"
25+
)
26+
27+
const LustreInstanceAssetType string = "lustre.googleapis.com/Instance"
28+
29+
func ResourceConverterLustreInstance() cai.ResourceConverter {
30+
return cai.ResourceConverter{
31+
AssetType: LustreInstanceAssetType,
32+
Convert: GetLustreInstanceCaiObject,
33+
}
34+
}
35+
36+
func GetLustreInstanceCaiObject(d tpgresource.TerraformResourceData, config *transport_tpg.Config) ([]cai.Asset, error) {
37+
name, err := cai.AssetName(d, config, "//lustre.googleapis.com/projects/{{project}}/locations/{{location}}/instances/{{instance_id}}")
38+
if err != nil {
39+
return []cai.Asset{}, err
40+
}
41+
if obj, err := GetLustreInstanceApiObject(d, config); err == nil {
42+
return []cai.Asset{{
43+
Name: name,
44+
Type: LustreInstanceAssetType,
45+
Resource: &cai.AssetResource{
46+
Version: "v1",
47+
DiscoveryDocumentURI: "https://www.googleapis.com/discovery/v1/apis/lustre/v1/rest",
48+
DiscoveryName: "Instance",
49+
Data: obj,
50+
},
51+
}}, nil
52+
} else {
53+
return []cai.Asset{}, err
54+
}
55+
}
56+
57+
func GetLustreInstanceApiObject(d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]interface{}, error) {
58+
obj := make(map[string]interface{})
59+
capacityGibProp, err := expandLustreInstanceCapacityGib(d.Get("capacity_gib"), d, config)
60+
if err != nil {
61+
return nil, err
62+
} else if v, ok := d.GetOkExists("capacity_gib"); !tpgresource.IsEmptyValue(reflect.ValueOf(capacityGibProp)) && (ok || !reflect.DeepEqual(v, capacityGibProp)) {
63+
obj["capacityGib"] = capacityGibProp
64+
}
65+
descriptionProp, err := expandLustreInstanceDescription(d.Get("description"), d, config)
66+
if err != nil {
67+
return nil, err
68+
} else if v, ok := d.GetOkExists("description"); !tpgresource.IsEmptyValue(reflect.ValueOf(descriptionProp)) && (ok || !reflect.DeepEqual(v, descriptionProp)) {
69+
obj["description"] = descriptionProp
70+
}
71+
gkeSupportEnabledProp, err := expandLustreInstanceGkeSupportEnabled(d.Get("gke_support_enabled"), d, config)
72+
if err != nil {
73+
return nil, err
74+
} else if v, ok := d.GetOkExists("gke_support_enabled"); !tpgresource.IsEmptyValue(reflect.ValueOf(gkeSupportEnabledProp)) && (ok || !reflect.DeepEqual(v, gkeSupportEnabledProp)) {
75+
obj["gkeSupportEnabled"] = gkeSupportEnabledProp
76+
}
77+
filesystemProp, err := expandLustreInstanceFilesystem(d.Get("filesystem"), d, config)
78+
if err != nil {
79+
return nil, err
80+
} else if v, ok := d.GetOkExists("filesystem"); !tpgresource.IsEmptyValue(reflect.ValueOf(filesystemProp)) && (ok || !reflect.DeepEqual(v, filesystemProp)) {
81+
obj["filesystem"] = filesystemProp
82+
}
83+
networkProp, err := expandLustreInstanceNetwork(d.Get("network"), d, config)
84+
if err != nil {
85+
return nil, err
86+
} else if v, ok := d.GetOkExists("network"); !tpgresource.IsEmptyValue(reflect.ValueOf(networkProp)) && (ok || !reflect.DeepEqual(v, networkProp)) {
87+
obj["network"] = networkProp
88+
}
89+
labelsProp, err := expandLustreInstanceEffectiveLabels(d.Get("effective_labels"), d, config)
90+
if err != nil {
91+
return nil, err
92+
} else if v, ok := d.GetOkExists("effective_labels"); !tpgresource.IsEmptyValue(reflect.ValueOf(labelsProp)) && (ok || !reflect.DeepEqual(v, labelsProp)) {
93+
obj["labels"] = labelsProp
94+
}
95+
96+
return obj, nil
97+
}
98+
99+
func expandLustreInstanceCapacityGib(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
100+
return v, nil
101+
}
102+
103+
func expandLustreInstanceDescription(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
104+
return v, nil
105+
}
106+
107+
func expandLustreInstanceGkeSupportEnabled(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
108+
return v, nil
109+
}
110+
111+
func expandLustreInstanceFilesystem(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
112+
return v, nil
113+
}
114+
115+
func expandLustreInstanceNetwork(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
116+
return v, nil
117+
}
118+
119+
func expandLustreInstanceEffectiveLabels(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]string, error) {
120+
if v == nil {
121+
return map[string]string{}, nil
122+
}
123+
m := make(map[string]string)
124+
for k, val := range v.(map[string]interface{}) {
125+
m[k] = val.(string)
126+
}
127+
return m, nil
128+
}

0 commit comments

Comments
 (0)