From fe0a7a5ec5a005c9715e57b43f9964d1f7c3d76f Mon Sep 17 00:00:00 2001 From: Joe Topjian Date: Sat, 11 Apr 2015 04:11:34 +0000 Subject: [PATCH] Allow Blank Region When OS_REGION_NAME is not set, fall back to a blank string. This will cause gophercloud to use the cloud's only region in single-region clouds. --- builtin/providers/openstack/provider.go | 7 +++++++ builtin/providers/openstack/provider_test.go | 5 ++--- .../openstack/resource_openstack_blockstorage_volume_v1.go | 2 +- .../openstack/resource_openstack_compute_floatingip_v2.go | 2 +- .../openstack/resource_openstack_compute_instance_v2.go | 2 +- .../openstack/resource_openstack_compute_keypair_v2.go | 2 +- .../openstack/resource_openstack_compute_secgroup_v2.go | 2 +- .../openstack/resource_openstack_fw_firewall_v1.go | 2 +- .../providers/openstack/resource_openstack_fw_policy_v1.go | 2 +- .../providers/openstack/resource_openstack_fw_rule_v1.go | 2 +- .../openstack/resource_openstack_lb_monitor_v1.go | 2 +- .../providers/openstack/resource_openstack_lb_pool_v1.go | 4 ++-- .../providers/openstack/resource_openstack_lb_vip_v1.go | 2 +- .../resource_openstack_networking_floatingip_v2.go | 2 +- .../openstack/resource_openstack_networking_network_v2.go | 2 +- .../resource_openstack_networking_router_interface_v2.go | 2 +- .../openstack/resource_openstack_networking_router_v2.go | 2 +- .../openstack/resource_openstack_networking_subnet_v2.go | 2 +- .../resource_openstack_objectstorage_container_v1.go | 2 +- 19 files changed, 27 insertions(+), 21 deletions(-) diff --git a/builtin/providers/openstack/provider.go b/builtin/providers/openstack/provider.go index a43242333d..d71f5a8f08 100644 --- a/builtin/providers/openstack/provider.go +++ b/builtin/providers/openstack/provider.go @@ -111,3 +111,10 @@ func envDefaultFunc(k string) schema.SchemaDefaultFunc { return nil, nil } } + +func envDefaultFuncAllowMissing(k string) schema.SchemaDefaultFunc { + return func() (interface{}, error) { + v := os.Getenv(k) + return v, nil + } +} diff --git a/builtin/providers/openstack/provider_test.go b/builtin/providers/openstack/provider_test.go index 7e4b6d99fe..686bf05331 100644 --- a/builtin/providers/openstack/provider_test.go +++ b/builtin/providers/openstack/provider_test.go @@ -40,10 +40,9 @@ func testAccPreCheck(t *testing.T) { } v = os.Getenv("OS_REGION_NAME") - if v == "" { - t.Fatal("OS_REGION_NAME must be set for acceptance tests") + if v != "" { + OS_REGION_NAME = v } - OS_REGION_NAME = v v1 := os.Getenv("OS_IMAGE_ID") v2 := os.Getenv("OS_IMAGE_NAME") diff --git a/builtin/providers/openstack/resource_openstack_blockstorage_volume_v1.go b/builtin/providers/openstack/resource_openstack_blockstorage_volume_v1.go index dc26385908..c83bc538ef 100644 --- a/builtin/providers/openstack/resource_openstack_blockstorage_volume_v1.go +++ b/builtin/providers/openstack/resource_openstack_blockstorage_volume_v1.go @@ -26,7 +26,7 @@ func resourceBlockStorageVolumeV1() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFunc("OS_REGION_NAME"), + DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), }, "size": &schema.Schema{ Type: schema.TypeInt, diff --git a/builtin/providers/openstack/resource_openstack_compute_floatingip_v2.go b/builtin/providers/openstack/resource_openstack_compute_floatingip_v2.go index bb2facc4ee..323ec7608d 100644 --- a/builtin/providers/openstack/resource_openstack_compute_floatingip_v2.go +++ b/builtin/providers/openstack/resource_openstack_compute_floatingip_v2.go @@ -20,7 +20,7 @@ func resourceComputeFloatingIPV2() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFunc("OS_REGION_NAME"), + DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), }, "pool": &schema.Schema{ diff --git a/builtin/providers/openstack/resource_openstack_compute_instance_v2.go b/builtin/providers/openstack/resource_openstack_compute_instance_v2.go index a6cf8a5978..02dafe5ae8 100644 --- a/builtin/providers/openstack/resource_openstack_compute_instance_v2.go +++ b/builtin/providers/openstack/resource_openstack_compute_instance_v2.go @@ -36,7 +36,7 @@ func resourceComputeInstanceV2() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFunc("OS_REGION_NAME"), + DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), }, "name": &schema.Schema{ Type: schema.TypeString, diff --git a/builtin/providers/openstack/resource_openstack_compute_keypair_v2.go b/builtin/providers/openstack/resource_openstack_compute_keypair_v2.go index db6bed5b2f..bc9a28b38d 100644 --- a/builtin/providers/openstack/resource_openstack_compute_keypair_v2.go +++ b/builtin/providers/openstack/resource_openstack_compute_keypair_v2.go @@ -19,7 +19,7 @@ func resourceComputeKeypairV2() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFunc("OS_REGION_NAME"), + DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), }, "name": &schema.Schema{ Type: schema.TypeString, diff --git a/builtin/providers/openstack/resource_openstack_compute_secgroup_v2.go b/builtin/providers/openstack/resource_openstack_compute_secgroup_v2.go index ca646d77d2..e6d8be8ea1 100644 --- a/builtin/providers/openstack/resource_openstack_compute_secgroup_v2.go +++ b/builtin/providers/openstack/resource_openstack_compute_secgroup_v2.go @@ -23,7 +23,7 @@ func resourceComputeSecGroupV2() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFunc("OS_REGION_NAME"), + DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), }, "name": &schema.Schema{ Type: schema.TypeString, diff --git a/builtin/providers/openstack/resource_openstack_fw_firewall_v1.go b/builtin/providers/openstack/resource_openstack_fw_firewall_v1.go index 8505ac3b3a..e845babdc0 100644 --- a/builtin/providers/openstack/resource_openstack_fw_firewall_v1.go +++ b/builtin/providers/openstack/resource_openstack_fw_firewall_v1.go @@ -23,7 +23,7 @@ func resourceFWFirewallV1() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFunc("OS_REGION_NAME"), + DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), }, "name": &schema.Schema{ Type: schema.TypeString, diff --git a/builtin/providers/openstack/resource_openstack_fw_policy_v1.go b/builtin/providers/openstack/resource_openstack_fw_policy_v1.go index 0560bfcef6..a1c13853ce 100644 --- a/builtin/providers/openstack/resource_openstack_fw_policy_v1.go +++ b/builtin/providers/openstack/resource_openstack_fw_policy_v1.go @@ -23,7 +23,7 @@ func resourceFWPolicyV1() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFunc("OS_REGION_NAME"), + DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), }, "name": &schema.Schema{ Type: schema.TypeString, diff --git a/builtin/providers/openstack/resource_openstack_fw_rule_v1.go b/builtin/providers/openstack/resource_openstack_fw_rule_v1.go index f0f5affcc0..47728ab3fe 100644 --- a/builtin/providers/openstack/resource_openstack_fw_rule_v1.go +++ b/builtin/providers/openstack/resource_openstack_fw_rule_v1.go @@ -21,7 +21,7 @@ func resourceFWRuleV1() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFunc("OS_REGION_NAME"), + DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), }, "name": &schema.Schema{ Type: schema.TypeString, diff --git a/builtin/providers/openstack/resource_openstack_lb_monitor_v1.go b/builtin/providers/openstack/resource_openstack_lb_monitor_v1.go index cdfd54ccc1..35dcc9f608 100644 --- a/builtin/providers/openstack/resource_openstack_lb_monitor_v1.go +++ b/builtin/providers/openstack/resource_openstack_lb_monitor_v1.go @@ -21,7 +21,7 @@ func resourceLBMonitorV1() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFunc("OS_REGION_NAME"), + DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), }, "tenant_id": &schema.Schema{ Type: schema.TypeString, diff --git a/builtin/providers/openstack/resource_openstack_lb_pool_v1.go b/builtin/providers/openstack/resource_openstack_lb_pool_v1.go index 6b69f2fac1..a41747a1f0 100644 --- a/builtin/providers/openstack/resource_openstack_lb_pool_v1.go +++ b/builtin/providers/openstack/resource_openstack_lb_pool_v1.go @@ -24,7 +24,7 @@ func resourceLBPoolV1() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFunc("OS_REGION_NAME"), + DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), }, "name": &schema.Schema{ Type: schema.TypeString, @@ -61,7 +61,7 @@ func resourceLBPoolV1() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFunc("OS_REGION_NAME"), + DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), }, "tenant_id": &schema.Schema{ Type: schema.TypeString, diff --git a/builtin/providers/openstack/resource_openstack_lb_vip_v1.go b/builtin/providers/openstack/resource_openstack_lb_vip_v1.go index bd2ae135e4..e2e2a26e47 100644 --- a/builtin/providers/openstack/resource_openstack_lb_vip_v1.go +++ b/builtin/providers/openstack/resource_openstack_lb_vip_v1.go @@ -22,7 +22,7 @@ func resourceLBVipV1() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFunc("OS_REGION_NAME"), + DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), }, "name": &schema.Schema{ Type: schema.TypeString, diff --git a/builtin/providers/openstack/resource_openstack_networking_floatingip_v2.go b/builtin/providers/openstack/resource_openstack_networking_floatingip_v2.go index fd8b3fc65d..1b81c6a96e 100644 --- a/builtin/providers/openstack/resource_openstack_networking_floatingip_v2.go +++ b/builtin/providers/openstack/resource_openstack_networking_floatingip_v2.go @@ -21,7 +21,7 @@ func resourceNetworkingFloatingIPV2() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFunc("OS_REGION_NAME"), + DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), }, "address": &schema.Schema{ Type: schema.TypeString, diff --git a/builtin/providers/openstack/resource_openstack_networking_network_v2.go b/builtin/providers/openstack/resource_openstack_networking_network_v2.go index 2ac4ab94eb..0977f3ad46 100644 --- a/builtin/providers/openstack/resource_openstack_networking_network_v2.go +++ b/builtin/providers/openstack/resource_openstack_networking_network_v2.go @@ -21,7 +21,7 @@ func resourceNetworkingNetworkV2() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFunc("OS_REGION_NAME"), + DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), }, "name": &schema.Schema{ Type: schema.TypeString, diff --git a/builtin/providers/openstack/resource_openstack_networking_router_interface_v2.go b/builtin/providers/openstack/resource_openstack_networking_router_interface_v2.go index e67ff6f58f..1e60c30ef5 100644 --- a/builtin/providers/openstack/resource_openstack_networking_router_interface_v2.go +++ b/builtin/providers/openstack/resource_openstack_networking_router_interface_v2.go @@ -21,7 +21,7 @@ func resourceNetworkingRouterInterfaceV2() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFunc("OS_REGION_NAME"), + DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), }, "router_id": &schema.Schema{ Type: schema.TypeString, diff --git a/builtin/providers/openstack/resource_openstack_networking_router_v2.go b/builtin/providers/openstack/resource_openstack_networking_router_v2.go index 3b6df4816a..39ecc6ee2a 100644 --- a/builtin/providers/openstack/resource_openstack_networking_router_v2.go +++ b/builtin/providers/openstack/resource_openstack_networking_router_v2.go @@ -22,7 +22,7 @@ func resourceNetworkingRouterV2() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFunc("OS_REGION_NAME"), + DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), }, "name": &schema.Schema{ Type: schema.TypeString, diff --git a/builtin/providers/openstack/resource_openstack_networking_subnet_v2.go b/builtin/providers/openstack/resource_openstack_networking_subnet_v2.go index 2f898bb4c5..573e4d7eed 100644 --- a/builtin/providers/openstack/resource_openstack_networking_subnet_v2.go +++ b/builtin/providers/openstack/resource_openstack_networking_subnet_v2.go @@ -22,7 +22,7 @@ func resourceNetworkingSubnetV2() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFunc("OS_REGION_NAME"), + DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), }, "network_id": &schema.Schema{ Type: schema.TypeString, diff --git a/builtin/providers/openstack/resource_openstack_objectstorage_container_v1.go b/builtin/providers/openstack/resource_openstack_objectstorage_container_v1.go index 31666a3565..b476a4080e 100644 --- a/builtin/providers/openstack/resource_openstack_objectstorage_container_v1.go +++ b/builtin/providers/openstack/resource_openstack_objectstorage_container_v1.go @@ -20,7 +20,7 @@ func resourceObjectStorageContainerV1() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFunc("OS_REGION_NAME"), + DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), }, "name": &schema.Schema{ Type: schema.TypeString,