github.com/armen/terraform@v0.5.2-0.20150529052519-caa8117a08f1/builtin/providers/openstack/resource_openstack_compute_secgroup_v2_test.go (about) 1 package openstack 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/hashicorp/terraform/helper/resource" 8 "github.com/hashicorp/terraform/terraform" 9 10 "github.com/rackspace/gophercloud/openstack/compute/v2/extensions/secgroups" 11 ) 12 13 func TestAccComputeV2SecGroup_basic(t *testing.T) { 14 var secgroup secgroups.SecurityGroup 15 16 resource.Test(t, resource.TestCase{ 17 PreCheck: func() { testAccPreCheck(t) }, 18 Providers: testAccProviders, 19 CheckDestroy: testAccCheckComputeV2SecGroupDestroy, 20 Steps: []resource.TestStep{ 21 resource.TestStep{ 22 Config: testAccComputeV2SecGroup_basic, 23 Check: resource.ComposeTestCheckFunc( 24 testAccCheckComputeV2SecGroupExists(t, "openstack_compute_secgroup_v2.foo", &secgroup), 25 ), 26 }, 27 }, 28 }) 29 } 30 31 func testAccCheckComputeV2SecGroupDestroy(s *terraform.State) error { 32 config := testAccProvider.Meta().(*Config) 33 computeClient, err := config.computeV2Client(OS_REGION_NAME) 34 if err != nil { 35 return fmt.Errorf("(testAccCheckComputeV2SecGroupDestroy) Error creating OpenStack compute client: %s", err) 36 } 37 38 for _, rs := range s.RootModule().Resources { 39 if rs.Type != "openstack_compute_secgroup_v2" { 40 continue 41 } 42 43 _, err := secgroups.Get(computeClient, rs.Primary.ID).Extract() 44 if err == nil { 45 return fmt.Errorf("Security group still exists") 46 } 47 } 48 49 return nil 50 } 51 52 func testAccCheckComputeV2SecGroupExists(t *testing.T, n string, secgroup *secgroups.SecurityGroup) resource.TestCheckFunc { 53 return func(s *terraform.State) error { 54 rs, ok := s.RootModule().Resources[n] 55 if !ok { 56 return fmt.Errorf("Not found: %s", n) 57 } 58 59 if rs.Primary.ID == "" { 60 return fmt.Errorf("No ID is set") 61 } 62 63 config := testAccProvider.Meta().(*Config) 64 computeClient, err := config.computeV2Client(OS_REGION_NAME) 65 if err != nil { 66 return fmt.Errorf("(testAccCheckComputeV2SecGroupExists) Error creating OpenStack compute client: %s", err) 67 } 68 69 found, err := secgroups.Get(computeClient, rs.Primary.ID).Extract() 70 if err != nil { 71 return err 72 } 73 74 if found.ID != rs.Primary.ID { 75 return fmt.Errorf("Security group not found") 76 } 77 78 *secgroup = *found 79 80 return nil 81 } 82 } 83 84 var testAccComputeV2SecGroup_basic = fmt.Sprintf(` 85 resource "openstack_compute_secgroup_v2" "foo" { 86 region = "%s" 87 name = "test_group_1" 88 description = "first test security group" 89 }`, 90 OS_REGION_NAME)