Merge pull request #4545 from hashicorp/b-azure-acceptance-db-tests
provider/azure: Retry checking DB server existence
This commit is contained in:
commit
7d7c8799ac
|
@ -4,7 +4,9 @@ import (
|
|||
"fmt"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/Azure/azure-sdk-for-go/management/sql"
|
||||
"github.com/hashicorp/terraform/helper/resource"
|
||||
"github.com/hashicorp/terraform/terraform"
|
||||
)
|
||||
|
@ -101,32 +103,42 @@ func TestAccAzureSqlDatabaseServerFirewallRuleUpdate(t *testing.T) {
|
|||
|
||||
func testAccAzureDatabaseServerFirewallRuleExists(name string, servers []string) resource.TestCheckFunc {
|
||||
return func(s *terraform.State) error {
|
||||
resource, ok := s.RootModule().Resources[name]
|
||||
res, ok := s.RootModule().Resources[name]
|
||||
if !ok {
|
||||
return fmt.Errorf("Azure Database Server Firewall Rule %q doesn't exist.", name)
|
||||
}
|
||||
|
||||
if resource.Primary.ID == "" {
|
||||
return fmt.Errorf("Azure Database Server Firewall Rule %q resource ID not set.", name)
|
||||
if res.Primary.ID == "" {
|
||||
return fmt.Errorf("Azure Database Server Firewall Rule %q res ID not set.", name)
|
||||
}
|
||||
|
||||
sqlClient := testAccProvider.Meta().(*Client).sqlClient
|
||||
|
||||
for _, server := range servers {
|
||||
rules, err := sqlClient.ListFirewallRules(server)
|
||||
var rules sql.ListFirewallRulesResponse
|
||||
|
||||
err := resource.Retry(10*time.Minute, func() error {
|
||||
var erri error
|
||||
rules, erri = sqlClient.ListFirewallRules(server)
|
||||
if erri != nil {
|
||||
return fmt.Errorf("Error listing Azure Database Server Firewall Rules for Server %q: %s", server, erri)
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return fmt.Errorf("Error listing Azure Database Server Firewall Rules for Server %q: %s", server, err)
|
||||
return err
|
||||
}
|
||||
|
||||
var found bool
|
||||
for _, rule := range rules.FirewallRules {
|
||||
if rule.Name == resource.Primary.ID {
|
||||
if rule.Name == res.Primary.ID {
|
||||
found = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if !found {
|
||||
return fmt.Errorf("Azure Database Server Firewall Rule %q doesn't exists on server %q.", resource.Primary.ID, server)
|
||||
return fmt.Errorf("Azure Database Server Firewall Rule %q doesn't exists on server %q.", res.Primary.ID, server)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue