@@ -2,6 +2,7 @@ package scaleway
2
2
3
3
import (
4
4
"fmt"
5
+ "regexp"
5
6
"testing"
6
7
7
8
"github.com/aws/aws-sdk-go/aws"
@@ -137,7 +138,7 @@ func TestAccScalewayObjectBucketLockConfiguration_Update(t *testing.T) {
137
138
name = %[1]q
138
139
region = %[2]q
139
140
tags = {
140
- TestName = "TestAccSCW_LockConfig_basic "
141
+ TestName = "TestAccSCW_LockConfig_update "
141
142
}
142
143
143
144
object_lock_enabled = true
@@ -209,19 +210,103 @@ func TestAccScalewayObjectBucketLockConfiguration_Update(t *testing.T) {
209
210
})
210
211
}
211
212
213
+ func TestAccScalewayObjectBucketLockConfiguration_WithBucketName (t * testing.T ) {
214
+ rName := sdkacctest .RandomWithPrefix (LockResourcePrefix )
215
+ resourceName := lockResourceTestName
216
+
217
+ tt := NewTestTools (t )
218
+ defer tt .Cleanup ()
219
+
220
+ resource .ParallelTest (t , resource.TestCase {
221
+ PreCheck : func () { testAccPreCheck (t ) },
222
+ ErrorCheck : ErrorCheck (t , EndpointsID ),
223
+ ProviderFactories : tt .ProviderFactories ,
224
+ CheckDestroy : resource .ComposeTestCheckFunc (
225
+ testAccCheckScalewayBucketLockConfigurationDestroy (tt ),
226
+ testAccCheckScalewayObjectBucketDestroy (tt ),
227
+ ),
228
+ Steps : []resource.TestStep {
229
+ {
230
+ Config : fmt .Sprintf (`
231
+ resource "scaleway_object_bucket" "test" {
232
+ name = %[1]q
233
+ region = %[2]q
234
+ tags = {
235
+ TestName = "TestAccSCW_LockConfig_WithBucketName"
236
+ }
237
+
238
+ object_lock_enabled = true
239
+ }
240
+
241
+ resource "scaleway_object_bucket_acl" "test" {
242
+ bucket = scaleway_object_bucket.test.id
243
+ acl = "public-read"
244
+ }
245
+
246
+ resource "scaleway_object_bucket_lock_configuration" "test" {
247
+ bucket = scaleway_object_bucket.test.name
248
+ rule {
249
+ default_retention {
250
+ mode = "GOVERNANCE"
251
+ days = 1
252
+ }
253
+ }
254
+ }
255
+ ` , rName , objectTestsMainRegion ),
256
+ ExpectError : regexp .MustCompile ("NoSuchBucket: The specified bucket does not exist" ),
257
+ },
258
+ {
259
+ Config : fmt .Sprintf (`
260
+ resource "scaleway_object_bucket" "test" {
261
+ name = %[1]q
262
+ region = %[2]q
263
+ tags = {
264
+ TestName = "TestAccSCW_LockConfig_WithBucketName"
265
+ }
266
+
267
+ object_lock_enabled = true
268
+ }
269
+
270
+ resource "scaleway_object_bucket_acl" "test" {
271
+ bucket = scaleway_object_bucket.test.id
272
+ acl = "public-read"
273
+ }
274
+
275
+ resource "scaleway_object_bucket_lock_configuration" "test" {
276
+ bucket = scaleway_object_bucket.test.name
277
+ region = %[2]q
278
+ rule {
279
+ default_retention {
280
+ mode = "GOVERNANCE"
281
+ days = 1
282
+ }
283
+ }
284
+ }
285
+ ` , rName , objectTestsMainRegion ),
286
+ Check : resource .ComposeTestCheckFunc (
287
+ testAccCheckBucketLockConfigurationExists (tt , resourceName ),
288
+ testAccCheckScalewayObjectBucketExistsForceRegion (tt , "scaleway_object_bucket.test" , true ),
289
+ resource .TestCheckResourceAttrPair (resourceName , "bucket" , "scaleway_object_bucket.test" , "name" ),
290
+ ),
291
+ },
292
+ },
293
+ })
294
+ }
295
+
212
296
func testAccCheckScalewayBucketLockConfigurationDestroy (tt * TestTools ) resource.TestCheckFunc {
213
297
return func (s * terraform.State ) error {
214
- conn , err := newS3ClientFromMeta (tt .Meta )
215
- if err != nil {
216
- return err
217
- }
218
-
219
298
for _ , rs := range s .RootModule ().Resources {
220
299
if rs .Type != "scaleway_object_bucket_lock_configuration" {
221
300
continue
222
301
}
223
302
224
- bucket := expandID (rs .Primary .ID )
303
+ regionalID := expandRegionalID (rs .Primary .ID )
304
+ bucketRegion := regionalID .Region
305
+ bucket := regionalID .ID
306
+ conn , err := newS3ClientFromMetaForceRegion (tt .Meta , bucketRegion .String ())
307
+ if err != nil {
308
+ return err
309
+ }
225
310
226
311
input := & s3.GetObjectLockConfigurationInput {
227
312
Bucket : aws .String (bucket ),
@@ -253,11 +338,6 @@ func testAccCheckBucketLockConfigurationExists(tt *TestTools, resourceName strin
253
338
return fmt .Errorf ("resource not found" )
254
339
}
255
340
256
- conn , err := newS3ClientFromMeta (tt .Meta )
257
- if err != nil {
258
- return err
259
- }
260
-
261
341
rs , ok := s .RootModule ().Resources [resourceName ]
262
342
if ! ok {
263
343
return fmt .Errorf ("not found: %s" , resourceName )
@@ -267,7 +347,13 @@ func testAccCheckBucketLockConfigurationExists(tt *TestTools, resourceName strin
267
347
return fmt .Errorf ("resource (%s) ID not set" , resourceName )
268
348
}
269
349
270
- bucket := expandID (rs .Primary .ID )
350
+ regionalID := expandRegionalID (rs .Primary .ID )
351
+ bucketRegion := regionalID .Region
352
+ bucket := regionalID .ID
353
+ conn , err := newS3ClientFromMetaForceRegion (tt .Meta , bucketRegion .String ())
354
+ if err != nil {
355
+ return err
356
+ }
271
357
272
358
input := & s3.GetObjectLockConfigurationInput {
273
359
Bucket : aws .String (bucket ),
0 commit comments