Skip to content

Commit 7d7c879

Browse files
committed
Merge pull request hashicorp#4545 from hashicorp/b-azure-acceptance-db-tests
provider/azure: Retry checking DB server existence
2 parents 7753607 + 3c222b3 commit 7d7c879

1 file changed

Lines changed: 19 additions & 7 deletions

File tree

builtin/providers/azure/resource_azure_sql_database_server_firewall_rule_test.go

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ import (
44
"fmt"
55
"strings"
66
"testing"
7+
"time"
78

9+
"github.com/Azure/azure-sdk-for-go/management/sql"
810
"github.com/hashicorp/terraform/helper/resource"
911
"github.com/hashicorp/terraform/terraform"
1012
)
@@ -101,32 +103,42 @@ func TestAccAzureSqlDatabaseServerFirewallRuleUpdate(t *testing.T) {
101103

102104
func testAccAzureDatabaseServerFirewallRuleExists(name string, servers []string) resource.TestCheckFunc {
103105
return func(s *terraform.State) error {
104-
resource, ok := s.RootModule().Resources[name]
106+
res, ok := s.RootModule().Resources[name]
105107
if !ok {
106108
return fmt.Errorf("Azure Database Server Firewall Rule %q doesn't exist.", name)
107109
}
108110

109-
if resource.Primary.ID == "" {
110-
return fmt.Errorf("Azure Database Server Firewall Rule %q resource ID not set.", name)
111+
if res.Primary.ID == "" {
112+
return fmt.Errorf("Azure Database Server Firewall Rule %q res ID not set.", name)
111113
}
112114

113115
sqlClient := testAccProvider.Meta().(*Client).sqlClient
114116

115117
for _, server := range servers {
116-
rules, err := sqlClient.ListFirewallRules(server)
118+
var rules sql.ListFirewallRulesResponse
119+
120+
err := resource.Retry(10*time.Minute, func() error {
121+
var erri error
122+
rules, erri = sqlClient.ListFirewallRules(server)
123+
if erri != nil {
124+
return fmt.Errorf("Error listing Azure Database Server Firewall Rules for Server %q: %s", server, erri)
125+
}
126+
127+
return nil
128+
})
117129
if err != nil {
118-
return fmt.Errorf("Error listing Azure Database Server Firewall Rules for Server %q: %s", server, err)
130+
return err
119131
}
120132

121133
var found bool
122134
for _, rule := range rules.FirewallRules {
123-
if rule.Name == resource.Primary.ID {
135+
if rule.Name == res.Primary.ID {
124136
found = true
125137
break
126138
}
127139
}
128140
if !found {
129-
return fmt.Errorf("Azure Database Server Firewall Rule %q doesn't exists on server %q.", resource.Primary.ID, server)
141+
return fmt.Errorf("Azure Database Server Firewall Rule %q doesn't exists on server %q.", res.Primary.ID, server)
130142
}
131143
}
132144

0 commit comments

Comments
 (0)