Sweeper: Add sweeper for firewalls.
This commit is contained in:
parent
c3cb760e49
commit
c75d416f43
|
@ -3,6 +3,8 @@ package digitalocean
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"log"
|
||||||
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/digitalocean/godo"
|
"github.com/digitalocean/godo"
|
||||||
|
@ -11,6 +13,41 @@ import (
|
||||||
"github.com/hashicorp/terraform/terraform"
|
"github.com/hashicorp/terraform/terraform"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
resource.AddTestSweepers("digitalocean_firewall", &resource.Sweeper{
|
||||||
|
Name: "digitalocean_firewall",
|
||||||
|
F: testSweepFirewall,
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func testSweepFirewall(region string) error {
|
||||||
|
meta, err := sharedConfigForRegion(region)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
client := meta.(*godo.Client)
|
||||||
|
|
||||||
|
opt := &godo.ListOptions{PerPage: 200}
|
||||||
|
fws, _, err := client.Firewalls.List(context.Background(), opt)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, f := range fws {
|
||||||
|
if strings.HasPrefix(f.Name, "foobar-") {
|
||||||
|
log.Printf("Destroying firewall %s", f.Name)
|
||||||
|
|
||||||
|
if _, err := client.Firewalls.Delete(context.Background(), f.ID); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func TestAccDigitalOceanFirewall_AllowOnlyInbound(t *testing.T) {
|
func TestAccDigitalOceanFirewall_AllowOnlyInbound(t *testing.T) {
|
||||||
rName := acctest.RandString(10)
|
rName := acctest.RandString(10)
|
||||||
var firewall godo.Firewall
|
var firewall godo.Firewall
|
||||||
|
@ -180,7 +217,7 @@ func TestAccDigitalOceanFirewall_ImportMultipleRules(t *testing.T) {
|
||||||
func testAccDigitalOceanFirewallConfig_OnlyInbound(rName string) string {
|
func testAccDigitalOceanFirewallConfig_OnlyInbound(rName string) string {
|
||||||
return fmt.Sprintf(`
|
return fmt.Sprintf(`
|
||||||
resource "digitalocean_firewall" "foobar" {
|
resource "digitalocean_firewall" "foobar" {
|
||||||
name = "%s"
|
name = "foobar-%s"
|
||||||
inbound_rule {
|
inbound_rule {
|
||||||
protocol = "tcp"
|
protocol = "tcp"
|
||||||
port_range = "22"
|
port_range = "22"
|
||||||
|
@ -194,7 +231,7 @@ func testAccDigitalOceanFirewallConfig_OnlyInbound(rName string) string {
|
||||||
func testAccDigitalOceanFirewallConfig_OnlyOutbound(rName string) string {
|
func testAccDigitalOceanFirewallConfig_OnlyOutbound(rName string) string {
|
||||||
return fmt.Sprintf(`
|
return fmt.Sprintf(`
|
||||||
resource "digitalocean_firewall" "foobar" {
|
resource "digitalocean_firewall" "foobar" {
|
||||||
name = "%s"
|
name = "foobar-%s"
|
||||||
outbound_rule {
|
outbound_rule {
|
||||||
protocol = "tcp"
|
protocol = "tcp"
|
||||||
port_range = "22"
|
port_range = "22"
|
||||||
|
@ -208,7 +245,7 @@ func testAccDigitalOceanFirewallConfig_OnlyOutbound(rName string) string {
|
||||||
func testAccDigitalOceanFirewallConfig_OnlyMultipleInbound(rName string) string {
|
func testAccDigitalOceanFirewallConfig_OnlyMultipleInbound(rName string) string {
|
||||||
return fmt.Sprintf(`
|
return fmt.Sprintf(`
|
||||||
resource "digitalocean_firewall" "foobar" {
|
resource "digitalocean_firewall" "foobar" {
|
||||||
name = "%s"
|
name = "foobar-%s"
|
||||||
inbound_rule {
|
inbound_rule {
|
||||||
protocol = "tcp"
|
protocol = "tcp"
|
||||||
port_range = "22"
|
port_range = "22"
|
||||||
|
@ -227,7 +264,7 @@ func testAccDigitalOceanFirewallConfig_OnlyMultipleInbound(rName string) string
|
||||||
func testAccDigitalOceanFirewallConfig_OnlyMultipleOutbound(rName string) string {
|
func testAccDigitalOceanFirewallConfig_OnlyMultipleOutbound(rName string) string {
|
||||||
return fmt.Sprintf(`
|
return fmt.Sprintf(`
|
||||||
resource "digitalocean_firewall" "foobar" {
|
resource "digitalocean_firewall" "foobar" {
|
||||||
name = "%s"
|
name = "foobar-%s"
|
||||||
outbound_rule {
|
outbound_rule {
|
||||||
protocol = "tcp"
|
protocol = "tcp"
|
||||||
port_range = "22"
|
port_range = "22"
|
||||||
|
@ -250,7 +287,7 @@ func testAccDigitalOceanFirewallConfig_MultipleInboundAndOutbound(tagName string
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "digitalocean_firewall" "foobar" {
|
resource "digitalocean_firewall" "foobar" {
|
||||||
name = "%s"
|
name = "foobar-%s"
|
||||||
inbound_rule {
|
inbound_rule {
|
||||||
protocol = "tcp"
|
protocol = "tcp"
|
||||||
port_range = "22"
|
port_range = "22"
|
||||||
|
@ -281,7 +318,7 @@ func testAccDigitalOceanFirewallConfig_MultipleInboundAndOutbound(tagName string
|
||||||
func testAccDigitalOceanFirewallConfig_fullPortRange(rName string) string {
|
func testAccDigitalOceanFirewallConfig_fullPortRange(rName string) string {
|
||||||
return fmt.Sprintf(`
|
return fmt.Sprintf(`
|
||||||
resource "digitalocean_firewall" "foobar" {
|
resource "digitalocean_firewall" "foobar" {
|
||||||
name = "%s"
|
name = "foobar-%s"
|
||||||
inbound_rule {
|
inbound_rule {
|
||||||
protocol = "tcp"
|
protocol = "tcp"
|
||||||
port_range = "all"
|
port_range = "all"
|
||||||
|
@ -299,7 +336,7 @@ resource "digitalocean_firewall" "foobar" {
|
||||||
func testAccDigitalOceanFirewallConfig_icmp(rName string) string {
|
func testAccDigitalOceanFirewallConfig_icmp(rName string) string {
|
||||||
return fmt.Sprintf(`
|
return fmt.Sprintf(`
|
||||||
resource "digitalocean_firewall" "foobar" {
|
resource "digitalocean_firewall" "foobar" {
|
||||||
name = "%s"
|
name = "foobar-%s"
|
||||||
inbound_rule {
|
inbound_rule {
|
||||||
protocol = "icmp"
|
protocol = "icmp"
|
||||||
source_addresses = ["192.168.1.1/32"]
|
source_addresses = ["192.168.1.1/32"]
|
||||||
|
|
Loading…
Reference in New Issue