github.com/sathiyas/terraform@v0.6.9-0.20151210233947-3330da00b997/builtin/providers/openstack/resource_openstack_networking_router_interface_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/networking/v2/extensions/layer3/routers" 11 "github.com/rackspace/gophercloud/openstack/networking/v2/networks" 12 "github.com/rackspace/gophercloud/openstack/networking/v2/ports" 13 "github.com/rackspace/gophercloud/openstack/networking/v2/subnets" 14 ) 15 16 func TestAccNetworkingV2RouterInterface_basic_subnet(t *testing.T) { 17 var network networks.Network 18 var router routers.Router 19 var subnet subnets.Subnet 20 21 resource.Test(t, resource.TestCase{ 22 PreCheck: func() { testAccPreCheck(t) }, 23 Providers: testAccProviders, 24 CheckDestroy: testAccCheckNetworkingV2RouterInterfaceDestroy, 25 Steps: []resource.TestStep{ 26 resource.TestStep{ 27 Config: testAccNetworkingV2RouterInterface_basic_subnet, 28 Check: resource.ComposeTestCheckFunc( 29 testAccCheckNetworkingV2NetworkExists(t, "openstack_networking_network_v2.network_1", &network), 30 testAccCheckNetworkingV2SubnetExists(t, "openstack_networking_subnet_v2.subnet_1", &subnet), 31 testAccCheckNetworkingV2RouterExists(t, "openstack_networking_router_v2.router_1", &router), 32 testAccCheckNetworkingV2RouterInterfaceExists(t, "openstack_networking_router_interface_v2.int_1"), 33 ), 34 }, 35 }, 36 }) 37 } 38 39 func TestAccNetworkingV2RouterInterface_basic_port(t *testing.T) { 40 var network networks.Network 41 var port ports.Port 42 var router routers.Router 43 var subnet subnets.Subnet 44 45 resource.Test(t, resource.TestCase{ 46 PreCheck: func() { testAccPreCheck(t) }, 47 Providers: testAccProviders, 48 CheckDestroy: testAccCheckNetworkingV2RouterInterfaceDestroy, 49 Steps: []resource.TestStep{ 50 resource.TestStep{ 51 Config: testAccNetworkingV2RouterInterface_basic_port, 52 Check: resource.ComposeTestCheckFunc( 53 testAccCheckNetworkingV2NetworkExists(t, "openstack_networking_network_v2.network_1", &network), 54 testAccCheckNetworkingV2SubnetExists(t, "openstack_networking_subnet_v2.subnet_1", &subnet), 55 testAccCheckNetworkingV2RouterExists(t, "openstack_networking_router_v2.router_1", &router), 56 testAccCheckNetworkingV2PortExists(t, "openstack_networking_port_v2.port_1", &port), 57 testAccCheckNetworkingV2RouterInterfaceExists(t, "openstack_networking_router_interface_v2.int_1"), 58 ), 59 }, 60 }, 61 }) 62 } 63 64 func testAccCheckNetworkingV2RouterInterfaceDestroy(s *terraform.State) error { 65 config := testAccProvider.Meta().(*Config) 66 networkingClient, err := config.networkingV2Client(OS_REGION_NAME) 67 if err != nil { 68 return fmt.Errorf("(testAccCheckNetworkingV2RouterInterfaceDestroy) Error creating OpenStack networking client: %s", err) 69 } 70 71 for _, rs := range s.RootModule().Resources { 72 if rs.Type != "openstack_networking_router_interface_v2" { 73 continue 74 } 75 76 _, err := ports.Get(networkingClient, rs.Primary.ID).Extract() 77 if err == nil { 78 return fmt.Errorf("Router interface still exists") 79 } 80 } 81 82 return nil 83 } 84 85 func testAccCheckNetworkingV2RouterInterfaceExists(t *testing.T, n string) resource.TestCheckFunc { 86 return func(s *terraform.State) error { 87 rs, ok := s.RootModule().Resources[n] 88 if !ok { 89 return fmt.Errorf("Not found: %s", n) 90 } 91 92 if rs.Primary.ID == "" { 93 return fmt.Errorf("No ID is set") 94 } 95 96 config := testAccProvider.Meta().(*Config) 97 networkingClient, err := config.networkingV2Client(OS_REGION_NAME) 98 if err != nil { 99 return fmt.Errorf("(testAccCheckNetworkingV2RouterInterfaceExists) Error creating OpenStack networking client: %s", err) 100 } 101 102 found, err := ports.Get(networkingClient, rs.Primary.ID).Extract() 103 if err != nil { 104 return err 105 } 106 107 if found.ID != rs.Primary.ID { 108 return fmt.Errorf("Router interface not found") 109 } 110 111 return nil 112 } 113 } 114 115 var testAccNetworkingV2RouterInterface_basic_subnet = fmt.Sprintf(` 116 resource "openstack_networking_router_v2" "router_1" { 117 name = "router_1" 118 admin_state_up = "true" 119 } 120 121 resource "openstack_networking_router_interface_v2" "int_1" { 122 subnet_id = "${openstack_networking_subnet_v2.subnet_1.id}" 123 router_id = "${openstack_networking_router_v2.router_1.id}" 124 } 125 126 resource "openstack_networking_network_v2" "network_1" { 127 name = "network_1" 128 admin_state_up = "true" 129 } 130 131 resource "openstack_networking_subnet_v2" "subnet_1" { 132 network_id = "${openstack_networking_network_v2.network_1.id}" 133 cidr = "192.168.199.0/24" 134 ip_version = 4 135 }`) 136 137 var testAccNetworkingV2RouterInterface_basic_port = fmt.Sprintf(` 138 resource "openstack_networking_router_v2" "router_1" { 139 name = "router_1" 140 admin_state_up = "true" 141 } 142 143 resource "openstack_networking_router_interface_v2" "int_1" { 144 router_id = "${openstack_networking_router_v2.router_1.id}" 145 port_id = "${openstack_networking_port_v2.port_1.id}" 146 } 147 148 resource "openstack_networking_network_v2" "network_1" { 149 name = "network_1" 150 admin_state_up = "true" 151 } 152 153 resource "openstack_networking_subnet_v2" "subnet_1" { 154 network_id = "${openstack_networking_network_v2.network_1.id}" 155 cidr = "192.168.199.0/24" 156 ip_version = 4 157 } 158 159 resource "openstack_networking_port_v2" "port_1" { 160 name = "port_1" 161 network_id = "${openstack_networking_network_v2.network_1.id}" 162 admin_state_up = "true" 163 fixed_ip { 164 subnet_id = "${openstack_networking_subnet_v2.subnet_1.id}" 165 ip_address = "192.168.199.1" 166 } 167 }`)