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
}
@@ -45,17 +48,21 @@ func testSweepTimestreamWriteDatabases(region string) error {
45
48
46
49
dbName := aws .StringValue (database .DatabaseName )
47
50
51
+ log .Printf ("[INFO] Deleting Timestream Database (%s)" , dbName )
48
52
r := resourceAwsTimestreamWriteDatabase ()
49
53
d := r .Data (nil )
50
54
d .SetId (dbName )
51
55
52
- err := r .Delete ( d , client )
56
+ diags := r .DeleteWithoutTimeout ( ctx , d , client )
53
57
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
58
+ if diags != nil && diags .HasError () {
59
+ for _ , d := range diags {
60
+ if d .Severity == diag .Error {
61
+ sweeperErr := fmt .Errorf ("error deleting Timestream Database (%s): %s" , dbName , d .Summary )
62
+ log .Printf ("[ERROR] %s" , sweeperErr )
63
+ sweeperErrs = multierror .Append (sweeperErrs , sweeperErr )
64
+ }
65
+ }
59
66
}
60
67
}
61
68
@@ -103,6 +110,28 @@ func TestAccAWSTimestreamWriteDatabase_basic(t *testing.T) {
103
110
})
104
111
}
105
112
113
+ func TestAccAWSTimestreamWriteDatabase_disappears (t * testing.T ) {
114
+ resourceName := "aws_timestreamwrite_database.test"
115
+ rName := acctest .RandomWithPrefix ("tf-acc-test" )
116
+
117
+ resource .ParallelTest (t , resource.TestCase {
118
+ PreCheck : func () { testAccPreCheck (t ); testAccPreCheckAWSTimestreamWrite (t ) },
119
+ ErrorCheck : testAccErrorCheck (t , timestreamwrite .EndpointsID ),
120
+ Providers : testAccProviders ,
121
+ CheckDestroy : testAccCheckAWSTimestreamWriteDatabaseDestroy ,
122
+ Steps : []resource.TestStep {
123
+ {
124
+ Config : testAccAWSTimestreamWriteDatabaseConfigBasic (rName ),
125
+ Check : resource .ComposeTestCheckFunc (
126
+ testAccCheckAWSTimestreamWriteDatabaseExists (resourceName ),
127
+ testAccCheckResourceDisappears (testAccProvider , resourceAwsTimestreamWriteDatabase (), resourceName ),
128
+ ),
129
+ ExpectNonEmptyPlan : true ,
130
+ },
131
+ },
132
+ })
133
+ }
134
+
106
135
func TestAccAWSTimestreamWriteDatabase_kmsKey (t * testing.T ) {
107
136
resourceName := "aws_timestreamwrite_database.test"
108
137
rName := acctest .RandomWithPrefix ("tf-acc-test" )
0 commit comments