1
1
package aws
2
2
3
3
import (
4
+ "context"
4
5
"fmt"
5
6
"log"
6
7
"regexp"
@@ -10,6 +11,7 @@ import (
10
11
"github.com/aws/aws-sdk-go/service/timestreamwrite"
11
12
"github.com/hashicorp/aws-sdk-go-base/tfawserr"
12
13
"github.com/hashicorp/go-multierror"
14
+ "github.com/hashicorp/terraform-plugin-sdk/v2/diag"
13
15
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest"
14
16
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
15
17
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -28,12 +30,13 @@ func testSweepTimestreamWriteDatabases(region string) error {
28
30
return fmt .Errorf ("error getting client: %s" , err )
29
31
}
30
32
conn := client .(* AWSClient ).timestreamwriteconn
33
+ ctx := context .Background ()
31
34
32
35
var sweeperErrs * multierror.Error
33
36
34
37
input := & timestreamwrite.ListDatabasesInput {}
35
38
36
- err = conn .ListDatabasesPages ( input , func (page * timestreamwrite.ListDatabasesOutput , lastPage bool ) bool {
39
+ err = conn .ListDatabasesPagesWithContext ( ctx , input , func (page * timestreamwrite.ListDatabasesOutput , lastPage bool ) bool {
37
40
if page == nil {
38
41
return ! lastPage
39
42
}
@@ -49,13 +52,16 @@ func testSweepTimestreamWriteDatabases(region string) error {
49
52
d := r .Data (nil )
50
53
d .SetId (dbName )
51
54
52
- err := r .Delete ( d , client )
55
+ diags := r .DeleteWithoutTimeout ( ctx , d , client )
53
56
54
- if err != nil {
55
- sweeperErr := fmt .Errorf ("error deleting Timestream Database (%s): %w" , dbName , err )
56
- log .Printf ("[ERROR] %s" , sweeperErr )
57
- sweeperErrs = multierror .Append (sweeperErrs , sweeperErr )
58
- continue
57
+ if diags != nil && diags .HasError () {
58
+ for _ , d := range diags {
59
+ if d .Severity == diag .Error {
60
+ sweeperErr := fmt .Errorf ("error deleting Timestream Database (%s): %s" , dbName , d .Summary )
61
+ log .Printf ("[ERROR] %s" , sweeperErr )
62
+ sweeperErrs = multierror .Append (sweeperErrs , sweeperErr )
63
+ }
64
+ }
59
65
}
60
66
}
61
67
@@ -103,6 +109,28 @@ func TestAccAWSTimestreamWriteDatabase_basic(t *testing.T) {
103
109
})
104
110
}
105
111
112
+ func TestAccAWSTimestreamWriteDatabase_disappears (t * testing.T ) {
113
+ resourceName := "aws_timestreamwrite_database.test"
114
+ rName := acctest .RandomWithPrefix ("tf-acc-test" )
115
+
116
+ resource .ParallelTest (t , resource.TestCase {
117
+ PreCheck : func () { testAccPreCheck (t ); testAccPreCheckAWSTimestreamWrite (t ) },
118
+ ErrorCheck : testAccErrorCheck (t , timestreamwrite .EndpointsID ),
119
+ Providers : testAccProviders ,
120
+ CheckDestroy : testAccCheckAWSTimestreamWriteDatabaseDestroy ,
121
+ Steps : []resource.TestStep {
122
+ {
123
+ Config : testAccAWSTimestreamWriteDatabaseConfigBasic (rName ),
124
+ Check : resource .ComposeTestCheckFunc (
125
+ testAccCheckAWSTimestreamWriteDatabaseExists (resourceName ),
126
+ testAccCheckResourceDisappears (testAccProvider , resourceAwsTimestreamWriteDatabase (), resourceName ),
127
+ ),
128
+ ExpectNonEmptyPlan : true ,
129
+ },
130
+ },
131
+ })
132
+ }
133
+
106
134
func TestAccAWSTimestreamWriteDatabase_kmsKey (t * testing.T ) {
107
135
resourceName := "aws_timestreamwrite_database.test"
108
136
rName := acctest .RandomWithPrefix ("tf-acc-test" )
0 commit comments