github.com/bradfeehan/terraform@v0.7.0-rc3.0.20170529055808-34b45c5ad841/builtin/providers/ovh/resource_ovh_publiccloud_private_network_test.go (about) 1 package ovh 2 3 import ( 4 "fmt" 5 "os" 6 "testing" 7 8 "github.com/hashicorp/terraform/helper/resource" 9 "github.com/hashicorp/terraform/terraform" 10 ) 11 12 var testAccPublicCloudPrivateNetworkConfig = fmt.Sprintf(` 13 resource "ovh_vrack_publiccloud_attachment" "attach" { 14 vrack_id = "%s" 15 project_id = "%s" 16 } 17 18 data "ovh_publiccloud_regions" "regions" { 19 project_id = "${ovh_vrack_publiccloud_attachment.attach.project_id}" 20 } 21 22 data "ovh_publiccloud_region" "region_attr" { 23 count = 2 24 project_id = "${data.ovh_publiccloud_regions.regions.project_id}" 25 name = "${element(data.ovh_publiccloud_regions.regions.names, count.index)}" 26 } 27 28 resource "ovh_publiccloud_private_network" "network" { 29 project_id = "${ovh_vrack_publiccloud_attachment.attach.project_id}" 30 vlan_id = 0 31 name = "terraform_testacc_private_net" 32 regions = ["${data.ovh_publiccloud_regions.regions.names}"] 33 } 34 `, os.Getenv("OVH_VRACK"), os.Getenv("OVH_PUBLIC_CLOUD")) 35 36 func TestAccPublicCloudPrivateNetwork_basic(t *testing.T) { 37 resource.Test(t, resource.TestCase{ 38 PreCheck: func() { testAccCheckPublicCloudPrivateNetworkPreCheck(t) }, 39 Providers: testAccProviders, 40 CheckDestroy: testAccCheckPublicCloudPrivateNetworkDestroy, 41 Steps: []resource.TestStep{ 42 resource.TestStep{ 43 Config: testAccPublicCloudPrivateNetworkConfig, 44 Check: resource.ComposeTestCheckFunc( 45 testAccCheckVRackPublicCloudAttachmentExists("ovh_vrack_publiccloud_attachment.attach", t), 46 testAccCheckPublicCloudPrivateNetworkExists("ovh_publiccloud_private_network.network", t), 47 ), 48 }, 49 }, 50 }) 51 } 52 53 func testAccCheckPublicCloudPrivateNetworkPreCheck(t *testing.T) { 54 testAccPreCheck(t) 55 testAccCheckPublicCloudExists(t) 56 } 57 58 func testAccCheckPublicCloudPrivateNetworkExists(n string, t *testing.T) resource.TestCheckFunc { 59 return func(s *terraform.State) error { 60 config := testAccProvider.Meta().(*Config) 61 62 rs, ok := s.RootModule().Resources[n] 63 if !ok { 64 return fmt.Errorf("Not found: %s", n) 65 } 66 67 if rs.Primary.ID == "" { 68 return fmt.Errorf("No ID is set") 69 } 70 71 if rs.Primary.Attributes["project_id"] == "" { 72 return fmt.Errorf("No Project ID is set") 73 } 74 75 return publicCloudPrivateNetworkExists(rs.Primary.Attributes["project_id"], rs.Primary.ID, config.OVHClient) 76 } 77 } 78 79 func testAccCheckPublicCloudPrivateNetworkDestroy(s *terraform.State) error { 80 config := testAccProvider.Meta().(*Config) 81 for _, rs := range s.RootModule().Resources { 82 if rs.Type != "ovh_publiccloud_private_network" { 83 continue 84 } 85 86 err := publicCloudPrivateNetworkExists(rs.Primary.Attributes["project_id"], rs.Primary.ID, config.OVHClient) 87 if err == nil { 88 return fmt.Errorf("VRack > Public Cloud Private Network still exists") 89 } 90 91 } 92 return nil 93 }