@@ -2,11 +2,16 @@ package ovh
2
2
3
3
import (
4
4
"fmt"
5
+ "log"
5
6
"os"
7
+ "strings"
6
8
"testing"
9
+ "time"
7
10
8
11
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
9
12
"github.com/hashicorp/terraform-plugin-sdk/terraform"
13
+
14
+ "github.com/ovh/go-ovh/ovh"
10
15
)
11
16
12
17
var testAccIpReverseConfig = fmt .Sprintf (`
@@ -17,6 +22,48 @@ resource "ovh_ip_reverse" "reverse" {
17
22
}
18
23
` , os .Getenv ("OVH_IP_BLOCK" ), os .Getenv ("OVH_IP" ), os .Getenv ("OVH_IP_REVERSE" ))
19
24
25
+ func init () {
26
+ resource .AddTestSweepers ("ovh_me_installation_template" , & resource.Sweeper {
27
+ Name : "ovh_ip_reverse" ,
28
+ F : testSweepIpReverse ,
29
+ })
30
+ }
31
+
32
+ func testSweepIpReverse (region string ) error {
33
+ client , err := sharedClientForRegion (region )
34
+ if err != nil {
35
+ return fmt .Errorf ("error getting client: %s" , err )
36
+ }
37
+
38
+ reverse := OvhIpReverse {}
39
+ testIp := os .Getenv ("OVH_IP_BLOCK" )
40
+ testIpReverse := os .Getenv ("OVH_IP" )
41
+ endpoint := fmt .Sprintf ("/ip/%s/reverse/%s" , strings .Replace (testIp , "/" , "%2F" , 1 ), testIpReverse )
42
+ if err := client .Get (endpoint , & reverse ); err != nil {
43
+ if err .(* ovh.APIError ).Code == 404 {
44
+ // no ip reverse set, nothing to sweep
45
+ return nil
46
+ }
47
+
48
+ return fmt .Errorf ("Error calling %s:\n \t %q" , endpoint , err )
49
+ }
50
+
51
+ log .Printf ("[DEBUG] ip reverse found %v" , reverse )
52
+ err = resource .Retry (5 * time .Minute , func () * resource.RetryError {
53
+ log .Printf ("[INFO] Deleting reverse %v" , reverse )
54
+ if err := client .Delete (endpoint , nil ); err != nil {
55
+ return resource .RetryableError (err )
56
+ }
57
+ // Successful delete
58
+ return nil
59
+ })
60
+ if err != nil {
61
+ return err
62
+ }
63
+
64
+ return nil
65
+ }
66
+
20
67
func TestAccIpReverse_basic (t * testing.T ) {
21
68
resource .Test (t , resource.TestCase {
22
69
PreCheck : func () { testAccPreCheckIp (t ) },
0 commit comments