@@ -25,7 +25,14 @@ var instanceResource = map[string]string{
25
25
"acl-1-updated" : "111.222.111.222/22" ,
26
26
}
27
27
28
- func resourceConfig (acls * string ) string {
28
+ // User resource data
29
+ var userResource = map [string ]string {
30
+ "description" : testutil .ResourceNameWithDateTime ("secretsmanager" ),
31
+ "write_enabled" : "false" ,
32
+ "write_enabled_updated" : "true" ,
33
+ }
34
+
35
+ func resourceConfig (acls * string , writeEnabled string ) string {
29
36
if acls == nil {
30
37
return fmt .Sprintf (`
31
38
%s
@@ -34,10 +41,19 @@ func resourceConfig(acls *string) string {
34
41
project_id = "%s"
35
42
name = "%s"
36
43
}
44
+
45
+ resource "stackit_secretsmanager_user" "user" {
46
+ project_id = stackit_secretsmanager_instance.instance.project_id
47
+ instance_id = stackit_secretsmanager_instance.instance.instance_id
48
+ description = "%s"
49
+ write_enabled = %s
50
+ }
37
51
` ,
38
52
testutil .SecretsManagerProviderConfig (),
39
53
instanceResource ["project_id" ],
40
54
instanceResource ["name" ],
55
+ userResource ["description" ],
56
+ writeEnabled ,
41
57
)
42
58
}
43
59
@@ -49,11 +65,20 @@ func resourceConfig(acls *string) string {
49
65
name = "%s"
50
66
acls = %s
51
67
}
68
+
69
+ resource "stackit_secretsmanager_user" "user" {
70
+ project_id = stackit_secretsmanager_instance.instance.project_id
71
+ instance_id = stackit_secretsmanager_instance.instance.instance_id
72
+ description = "%s"
73
+ write_enabled = %s
74
+ }
52
75
` ,
53
76
testutil .SecretsManagerProviderConfig (),
54
77
instanceResource ["project_id" ],
55
78
instanceResource ["name" ],
56
79
* acls ,
80
+ userResource ["description" ],
81
+ writeEnabled ,
57
82
)
58
83
}
59
84
@@ -65,37 +90,66 @@ func TestAccSecretsManager(t *testing.T) {
65
90
66
91
// Creation
67
92
{
68
- Config : resourceConfig (utils .Ptr (fmt .Sprintf (
69
- "[%q, %q]" ,
70
- instanceResource ["acl-0" ],
71
- instanceResource ["acl-1" ],
72
- ))),
93
+ Config : resourceConfig (
94
+ utils .Ptr (fmt .Sprintf (
95
+ "[%q, %q, %q]" ,
96
+ instanceResource ["acl-0" ],
97
+ instanceResource ["acl-1" ],
98
+ instanceResource ["acl-1" ],
99
+ )),
100
+ userResource ["write_enabled" ],
101
+ ),
73
102
Check : resource .ComposeAggregateTestCheckFunc (
74
- // Instance data
103
+ // Instance
75
104
resource .TestCheckResourceAttr ("stackit_secretsmanager_instance.instance" , "project_id" , instanceResource ["project_id" ]),
76
105
resource .TestCheckResourceAttrSet ("stackit_secretsmanager_instance.instance" , "instance_id" ),
77
106
resource .TestCheckResourceAttr ("stackit_secretsmanager_instance.instance" , "name" , instanceResource ["name" ]),
78
107
resource .TestCheckResourceAttr ("stackit_secretsmanager_instance.instance" , "acls.#" , "2" ),
79
108
resource .TestCheckResourceAttr ("stackit_secretsmanager_instance.instance" , "acls.0" , instanceResource ["acl-0" ]),
80
109
resource .TestCheckResourceAttr ("stackit_secretsmanager_instance.instance" , "acls.1" , instanceResource ["acl-1" ]),
110
+
111
+ // User
112
+ resource .TestCheckResourceAttrPair (
113
+ "stackit_secretsmanager_user.user" , "project_id" ,
114
+ "stackit_secretsmanager_instance.instance" , "project_id" ,
115
+ ),
116
+ resource .TestCheckResourceAttrPair (
117
+ "stackit_secretsmanager_user.user" , "instance_id" ,
118
+ "stackit_secretsmanager_instance.instance" , "instance_id" ,
119
+ ),
120
+ resource .TestCheckResourceAttrSet ("stackit_secretsmanager_user.user" , "user_id" ),
121
+ resource .TestCheckResourceAttr ("stackit_secretsmanager_user.user" , "description" , userResource ["description" ]),
122
+ resource .TestCheckResourceAttr ("stackit_secretsmanager_user.user" , "write_enabled" , userResource ["write_enabled" ]),
123
+ resource .TestCheckResourceAttrSet ("stackit_secretsmanager_user.user" , "username" ),
124
+ resource .TestCheckResourceAttrSet ("stackit_secretsmanager_user.user" , "password" ),
81
125
),
82
126
},
83
- { // Data source
127
+ // Data source
128
+ {
84
129
Config : fmt .Sprintf (`
85
130
%s
86
131
87
132
data "stackit_secretsmanager_instance" "instance" {
88
133
project_id = stackit_secretsmanager_instance.instance.project_id
89
134
instance_id = stackit_secretsmanager_instance.instance.instance_id
135
+ }
136
+
137
+ data "stackit_secretsmanager_user" "user" {
138
+ project_id = stackit_secretsmanager_user.user.project_id
139
+ instance_id = stackit_secretsmanager_user.user.instance_id
140
+ user_id = stackit_secretsmanager_user.user.user_id
90
141
}` ,
91
- resourceConfig (utils .Ptr (fmt .Sprintf (
92
- "[%q, %q]" ,
93
- instanceResource ["acl-0" ],
94
- instanceResource ["acl-1" ],
95
- ))),
142
+ resourceConfig (
143
+ utils .Ptr (fmt .Sprintf (
144
+ "[%q, %q]" ,
145
+ instanceResource ["acl-0" ],
146
+ instanceResource ["acl-1" ],
147
+ )),
148
+ userResource ["write_enabled" ],
149
+ ),
96
150
),
97
151
Check : resource .ComposeAggregateTestCheckFunc (
98
- // Instance data
152
+ // Instance
99
153
resource .TestCheckResourceAttr ("data.stackit_secretsmanager_instance.instance" , "project_id" , instanceResource ["project_id" ]),
100
154
resource .TestCheckResourceAttrPair (
101
155
"stackit_secretsmanager_instance.instance" , "instance_id" ,
@@ -104,6 +158,26 @@ func TestAccSecretsManager(t *testing.T) {
104
158
resource .TestCheckResourceAttr ("data.stackit_secretsmanager_instance.instance" , "name" , instanceResource ["name" ]),
105
159
resource .TestCheckResourceAttr ("data.stackit_secretsmanager_instance.instance" , "acls.0" , instanceResource ["acl-0" ]),
106
160
resource .TestCheckResourceAttr ("data.stackit_secretsmanager_instance.instance" , "acls.1" , instanceResource ["acl-1" ]),
161
+
162
+ // User
163
+ resource .TestCheckResourceAttrPair (
164
+ "stackit_secretsmanager_user.user" , "project_id" ,
165
+ "data.stackit_secretsmanager_user.user" , "project_id" ,
166
+ ),
167
+ resource .TestCheckResourceAttrPair (
168
+ "stackit_secretsmanager_user.user" , "instance_id" ,
169
+ "data.stackit_secretsmanager_user.user" , "instance_id" ,
170
+ ),
171
+ resource .TestCheckResourceAttrPair (
172
+ "stackit_secretsmanager_user.user" , "user_id" ,
173
+ "data.stackit_secretsmanager_user.user" , "user_id" ,
174
+ ),
175
+ resource .TestCheckResourceAttr ("data.stackit_secretsmanager_user.user" , "description" , userResource ["description" ]),
176
+ resource .TestCheckResourceAttr ("data.stackit_secretsmanager_user.user" , "write_enabled" , userResource ["write_enabled" ]),
177
+ resource .TestCheckResourceAttrPair (
178
+ "stackit_secretsmanager_user.user" , "username" ,
179
+ "data.stackit_secretsmanager_user.user" , "username" ,
180
+ ),
107
181
),
108
182
},
109
183
// Import
@@ -123,32 +197,88 @@ func TestAccSecretsManager(t *testing.T) {
123
197
ImportState : true ,
124
198
ImportStateVerify : true ,
125
199
},
200
+ {
201
+ ResourceName : "stackit_secretsmanager_user.user" ,
202
+ ImportStateIdFunc : func (s * terraform.State ) (string , error ) {
203
+ r , ok := s .RootModule ().Resources ["stackit_secretsmanager_user.user" ]
204
+ if ! ok {
205
+ return "" , fmt .Errorf ("couldn't find resource stackit_secretsmanager_user.user" )
206
+ }
207
+ instanceId , ok := r .Primary .Attributes ["instance_id" ]
208
+ if ! ok {
209
+ return "" , fmt .Errorf ("couldn't find attribute instance_id" )
210
+ }
211
+ userId , ok := r .Primary .Attributes ["user_id" ]
212
+ if ! ok {
213
+ return "" , fmt .Errorf ("couldn't find attribute user_id" )
214
+ }
215
+
216
+ return fmt .Sprintf ("%s,%s,%s" , testutil .ProjectId , instanceId , userId ), nil
217
+ },
218
+ ImportState : true ,
219
+ ImportStateVerify : true ,
220
+ ImportStateVerifyIgnore : []string {"password" },
221
+ Check : resource .TestCheckNoResourceAttr ("stackit_secretsmanager_user.user" , "password" ),
222
+ },
126
223
// Update
127
224
{
128
- Config : resourceConfig (utils .Ptr (fmt .Sprintf (
129
- "[%q, %q]" ,
130
- instanceResource ["acl-0" ],
131
- instanceResource ["acl-1-updated" ],
132
- ))),
225
+ Config : resourceConfig (
226
+ utils .Ptr (fmt .Sprintf (
227
+ "[%q, %q]" ,
228
+ instanceResource ["acl-0" ],
229
+ instanceResource ["acl-1-updated" ],
230
+ )),
231
+ userResource ["write_enabled_updated" ],
232
+ ),
133
233
Check : resource .ComposeAggregateTestCheckFunc (
134
- // Instance data
234
+ // Instance
135
235
resource .TestCheckResourceAttr ("stackit_secretsmanager_instance.instance" , "project_id" , instanceResource ["project_id" ]),
136
236
resource .TestCheckResourceAttrSet ("stackit_secretsmanager_instance.instance" , "instance_id" ),
137
237
resource .TestCheckResourceAttr ("stackit_secretsmanager_instance.instance" , "name" , instanceResource ["name" ]),
138
238
resource .TestCheckResourceAttr ("stackit_secretsmanager_instance.instance" , "acls.#" , "2" ),
139
239
resource .TestCheckResourceAttr ("stackit_secretsmanager_instance.instance" , "acls.0" , instanceResource ["acl-0" ]),
140
240
resource .TestCheckResourceAttr ("stackit_secretsmanager_instance.instance" , "acls.1" , instanceResource ["acl-1-updated" ]),
241
+
242
+ // User
243
+ resource .TestCheckResourceAttrPair (
244
+ "stackit_secretsmanager_user.user" , "project_id" ,
245
+ "stackit_secretsmanager_instance.instance" , "project_id" ,
246
+ ),
247
+ resource .TestCheckResourceAttrPair (
248
+ "stackit_secretsmanager_user.user" , "instance_id" ,
249
+ "stackit_secretsmanager_instance.instance" , "instance_id" ,
250
+ ),
251
+ resource .TestCheckResourceAttrSet ("stackit_secretsmanager_user.user" , "user_id" ),
252
+ resource .TestCheckResourceAttr ("stackit_secretsmanager_user.user" , "description" , userResource ["description" ]),
253
+ resource .TestCheckResourceAttr ("stackit_secretsmanager_user.user" , "write_enabled" , userResource ["write_enabled_updated" ]),
254
+ resource .TestCheckResourceAttrSet ("stackit_secretsmanager_user.user" , "username" ),
255
+ resource .TestCheckResourceAttrSet ("stackit_secretsmanager_user.user" , "password" ),
141
256
),
142
257
},
143
258
// Update, no ACLs
144
259
{
145
- Config : resourceConfig (nil ),
260
+ Config : resourceConfig (nil , userResource [ "write_enabled_updated" ] ),
146
261
Check : resource .ComposeAggregateTestCheckFunc (
147
262
// Instance data
148
263
resource .TestCheckResourceAttr ("stackit_secretsmanager_instance.instance" , "project_id" , instanceResource ["project_id" ]),
149
264
resource .TestCheckResourceAttrSet ("stackit_secretsmanager_instance.instance" , "instance_id" ),
150
265
resource .TestCheckResourceAttr ("stackit_secretsmanager_instance.instance" , "name" , instanceResource ["name" ]),
151
266
resource .TestCheckResourceAttr ("stackit_secretsmanager_instance.instance" , "acls.#" , "0" ),
267
+
268
+ // User
269
+ resource .TestCheckResourceAttrPair (
270
+ "stackit_secretsmanager_user.user" , "project_id" ,
271
+ "stackit_secretsmanager_instance.instance" , "project_id" ,
272
+ ),
273
+ resource .TestCheckResourceAttrPair (
274
+ "stackit_secretsmanager_user.user" , "instance_id" ,
275
+ "stackit_secretsmanager_instance.instance" , "instance_id" ,
276
+ ),
277
+ resource .TestCheckResourceAttrSet ("stackit_secretsmanager_user.user" , "user_id" ),
278
+ resource .TestCheckResourceAttr ("stackit_secretsmanager_user.user" , "description" , userResource ["description" ]),
279
+ resource .TestCheckResourceAttr ("stackit_secretsmanager_user.user" , "write_enabled" , userResource ["write_enabled_updated" ]),
280
+ resource .TestCheckResourceAttrSet ("stackit_secretsmanager_user.user" , "username" ),
281
+ resource .TestCheckResourceAttrSet ("stackit_secretsmanager_user.user" , "password" ),
152
282
),
153
283
},
154
284
// Deletion is done by the framework implicitly
0 commit comments