From 68a2a2299ebb7479003953db83d84046de08ba09 Mon Sep 17 00:00:00 2001 From: Seth Vargo Date: Fri, 8 Apr 2016 17:28:54 -0400 Subject: [PATCH] Use schema funcs for reading values from the env --- builtin/providers/openstack/provider.go | 37 +++++-------------- ...source_openstack_blockstorage_volume_v1.go | 2 +- ...esource_openstack_compute_floatingip_v2.go | 4 +- .../resource_openstack_compute_instance_v2.go | 6 +-- .../resource_openstack_compute_keypair_v2.go | 2 +- .../resource_openstack_compute_secgroup_v2.go | 2 +- ...source_openstack_compute_servergroup_v2.go | 2 +- .../resource_openstack_fw_firewall_v1.go | 2 +- .../resource_openstack_fw_policy_v1.go | 2 +- .../resource_openstack_fw_rule_v1.go | 2 +- .../resource_openstack_lb_member_v1.go | 2 +- .../resource_openstack_lb_monitor_v1.go | 2 +- .../resource_openstack_lb_pool_v1.go | 4 +- .../openstack/resource_openstack_lb_vip_v1.go | 2 +- ...urce_openstack_networking_floatingip_v2.go | 4 +- ...esource_openstack_networking_network_v2.go | 2 +- .../resource_openstack_networking_port_v2.go | 2 +- ...penstack_networking_router_interface_v2.go | 2 +- ...resource_openstack_networking_router_v2.go | 2 +- ...resource_openstack_networking_subnet_v2.go | 2 +- ...ce_openstack_objectstorage_container_v1.go | 2 +- builtin/providers/powerdns/provider.go | 16 +------- 22 files changed, 36 insertions(+), 67 deletions(-) diff --git a/builtin/providers/openstack/provider.go b/builtin/providers/openstack/provider.go index a6d126ec4..2e5a1f8e7 100644 --- a/builtin/providers/openstack/provider.go +++ b/builtin/providers/openstack/provider.go @@ -1,8 +1,6 @@ package openstack import ( - "os" - "github.com/hashicorp/terraform/helper/schema" "github.com/hashicorp/terraform/terraform" ) @@ -14,12 +12,12 @@ func Provider() terraform.ResourceProvider { "auth_url": &schema.Schema{ Type: schema.TypeString, Required: true, - DefaultFunc: envDefaultFunc("OS_AUTH_URL"), + DefaultFunc: schema.EnvDefaultFunc("OS_AUTH_URL", nil), }, "user_name": &schema.Schema{ Type: schema.TypeString, Optional: true, - DefaultFunc: envDefaultFunc("OS_USERNAME"), + DefaultFunc: schema.EnvDefaultFunc("OS_USERNAME", nil), }, "user_id": &schema.Schema{ Type: schema.TypeString, @@ -34,27 +32,27 @@ func Provider() terraform.ResourceProvider { "tenant_name": &schema.Schema{ Type: schema.TypeString, Optional: true, - DefaultFunc: envDefaultFunc("OS_TENANT_NAME"), + DefaultFunc: schema.EnvDefaultFunc("OS_TENANT_NAME", nil), }, "password": &schema.Schema{ Type: schema.TypeString, Optional: true, - DefaultFunc: envDefaultFunc("OS_PASSWORD"), + DefaultFunc: schema.EnvDefaultFunc("OS_PASSWORD", nil), }, "api_key": &schema.Schema{ Type: schema.TypeString, Optional: true, - DefaultFunc: envDefaultFuncAllowMissing("OS_AUTH_TOKEN"), + DefaultFunc: schema.EnvDefaultFunc("OS_AUTH_TOKEN", ""), }, "domain_id": &schema.Schema{ Type: schema.TypeString, Optional: true, - DefaultFunc: envDefaultFuncAllowMissing("OS_DOMAIN_ID"), + DefaultFunc: schema.EnvDefaultFunc("OS_DOMAIN_ID", ""), }, "domain_name": &schema.Schema{ Type: schema.TypeString, Optional: true, - DefaultFunc: envDefaultFuncAllowMissing("OS_DOMAIN_NAME"), + DefaultFunc: schema.EnvDefaultFunc("OS_DOMAIN_NAME", ""), }, "insecure": &schema.Schema{ Type: schema.TypeBool, @@ -64,12 +62,12 @@ func Provider() terraform.ResourceProvider { "endpoint_type": &schema.Schema{ Type: schema.TypeString, Optional: true, - DefaultFunc: envDefaultFuncAllowMissing("OS_ENDPOINT_TYPE"), + DefaultFunc: schema.EnvDefaultFunc("OS_ENDPOINT_TYPE", ""), }, "cacert_file": &schema.Schema{ Type: schema.TypeString, Optional: true, - DefaultFunc: envDefaultFuncAllowMissing("OS_CACERT"), + DefaultFunc: schema.EnvDefaultFunc("OS_CACERT", ""), }, }, @@ -122,20 +120,3 @@ func configureProvider(d *schema.ResourceData) (interface{}, error) { return &config, nil } - -func envDefaultFunc(k string) schema.SchemaDefaultFunc { - return func() (interface{}, error) { - if v := os.Getenv(k); v != "" { - return v, nil - } - - 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/resource_openstack_blockstorage_volume_v1.go b/builtin/providers/openstack/resource_openstack_blockstorage_volume_v1.go index ba7249df0..05328fa18 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: envDefaultFuncAllowMissing("OS_REGION_NAME"), + DefaultFunc: schema.EnvDefaultFunc("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 323ec7608..731b5f941 100644 --- a/builtin/providers/openstack/resource_openstack_compute_floatingip_v2.go +++ b/builtin/providers/openstack/resource_openstack_compute_floatingip_v2.go @@ -20,14 +20,14 @@ func resourceComputeFloatingIPV2() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), + DefaultFunc: schema.EnvDefaultFunc("OS_REGION_NAME", ""), }, "pool": &schema.Schema{ Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFunc("OS_POOL_NAME"), + DefaultFunc: schema.EnvDefaultFunc("OS_POOL_NAME", nil), }, "address": &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 b863c5114..87cd4e580 100644 --- a/builtin/providers/openstack/resource_openstack_compute_instance_v2.go +++ b/builtin/providers/openstack/resource_openstack_compute_instance_v2.go @@ -38,7 +38,7 @@ func resourceComputeInstanceV2() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), + DefaultFunc: schema.EnvDefaultFunc("OS_REGION_NAME", ""), }, "name": &schema.Schema{ Type: schema.TypeString, @@ -62,14 +62,14 @@ func resourceComputeInstanceV2() *schema.Resource { Optional: true, ForceNew: false, Computed: true, - DefaultFunc: envDefaultFunc("OS_FLAVOR_ID"), + DefaultFunc: schema.EnvDefaultFunc("OS_FLAVOR_ID", nil), }, "flavor_name": &schema.Schema{ Type: schema.TypeString, Optional: true, ForceNew: false, Computed: true, - DefaultFunc: envDefaultFunc("OS_FLAVOR_NAME"), + DefaultFunc: schema.EnvDefaultFunc("OS_FLAVOR_NAME", nil), }, "floating_ip": &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 bc9a28b38..dcc476bd4 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: envDefaultFuncAllowMissing("OS_REGION_NAME"), + DefaultFunc: schema.EnvDefaultFunc("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 d8d559b9b..9d8e79038 100644 --- a/builtin/providers/openstack/resource_openstack_compute_secgroup_v2.go +++ b/builtin/providers/openstack/resource_openstack_compute_secgroup_v2.go @@ -25,7 +25,7 @@ func resourceComputeSecGroupV2() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), + DefaultFunc: schema.EnvDefaultFunc("OS_REGION_NAME", ""), }, "name": &schema.Schema{ Type: schema.TypeString, diff --git a/builtin/providers/openstack/resource_openstack_compute_servergroup_v2.go b/builtin/providers/openstack/resource_openstack_compute_servergroup_v2.go index 59fef25f7..64cc61ff2 100644 --- a/builtin/providers/openstack/resource_openstack_compute_servergroup_v2.go +++ b/builtin/providers/openstack/resource_openstack_compute_servergroup_v2.go @@ -20,7 +20,7 @@ func resourceComputeServerGroupV2() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), + DefaultFunc: schema.EnvDefaultFunc("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 b4099a7cb..44c93a4c8 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: envDefaultFuncAllowMissing("OS_REGION_NAME"), + DefaultFunc: schema.EnvDefaultFunc("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 f75c0d8bd..c33bde8bb 100644 --- a/builtin/providers/openstack/resource_openstack_fw_policy_v1.go +++ b/builtin/providers/openstack/resource_openstack_fw_policy_v1.go @@ -22,7 +22,7 @@ func resourceFWPolicyV1() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), + DefaultFunc: schema.EnvDefaultFunc("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 535a6c205..15590f019 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: envDefaultFuncAllowMissing("OS_REGION_NAME"), + DefaultFunc: schema.EnvDefaultFunc("OS_REGION_NAME", ""), }, "name": &schema.Schema{ Type: schema.TypeString, diff --git a/builtin/providers/openstack/resource_openstack_lb_member_v1.go b/builtin/providers/openstack/resource_openstack_lb_member_v1.go index 46d62e8d2..4fbf3dcca 100644 --- a/builtin/providers/openstack/resource_openstack_lb_member_v1.go +++ b/builtin/providers/openstack/resource_openstack_lb_member_v1.go @@ -24,7 +24,7 @@ func resourceLBMemberV1() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), + DefaultFunc: schema.EnvDefaultFunc("OS_REGION_NAME", ""), }, "tenant_id": &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 559923776..71ace9286 100644 --- a/builtin/providers/openstack/resource_openstack_lb_monitor_v1.go +++ b/builtin/providers/openstack/resource_openstack_lb_monitor_v1.go @@ -25,7 +25,7 @@ func resourceLBMonitorV1() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), + DefaultFunc: schema.EnvDefaultFunc("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 2853cad4c..6eaac9a13 100644 --- a/builtin/providers/openstack/resource_openstack_lb_pool_v1.go +++ b/builtin/providers/openstack/resource_openstack_lb_pool_v1.go @@ -28,7 +28,7 @@ func resourceLBPoolV1() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), + DefaultFunc: schema.EnvDefaultFunc("OS_REGION_NAME", ""), }, "name": &schema.Schema{ Type: schema.TypeString, @@ -66,7 +66,7 @@ func resourceLBPoolV1() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), + DefaultFunc: schema.EnvDefaultFunc("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 449ba3650..3bbcba56d 100644 --- a/builtin/providers/openstack/resource_openstack_lb_vip_v1.go +++ b/builtin/providers/openstack/resource_openstack_lb_vip_v1.go @@ -24,7 +24,7 @@ func resourceLBVipV1() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), + DefaultFunc: schema.EnvDefaultFunc("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 4ec8b0a72..cdd85fc4a 100644 --- a/builtin/providers/openstack/resource_openstack_networking_floatingip_v2.go +++ b/builtin/providers/openstack/resource_openstack_networking_floatingip_v2.go @@ -26,7 +26,7 @@ func resourceNetworkingFloatingIPV2() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), + DefaultFunc: schema.EnvDefaultFunc("OS_REGION_NAME", ""), }, "address": &schema.Schema{ Type: schema.TypeString, @@ -36,7 +36,7 @@ func resourceNetworkingFloatingIPV2() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFunc("OS_POOL_NAME"), + DefaultFunc: schema.EnvDefaultFunc("OS_POOL_NAME", nil), }, "port_id": &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 a4d05cec1..4c3f4da17 100644 --- a/builtin/providers/openstack/resource_openstack_networking_network_v2.go +++ b/builtin/providers/openstack/resource_openstack_networking_network_v2.go @@ -25,7 +25,7 @@ func resourceNetworkingNetworkV2() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), + DefaultFunc: schema.EnvDefaultFunc("OS_REGION_NAME", ""), }, "name": &schema.Schema{ Type: schema.TypeString, diff --git a/builtin/providers/openstack/resource_openstack_networking_port_v2.go b/builtin/providers/openstack/resource_openstack_networking_port_v2.go index 71b0d729e..73fa8da45 100644 --- a/builtin/providers/openstack/resource_openstack_networking_port_v2.go +++ b/builtin/providers/openstack/resource_openstack_networking_port_v2.go @@ -24,7 +24,7 @@ func resourceNetworkingPortV2() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), + DefaultFunc: schema.EnvDefaultFunc("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 a744daf07..abda7cfca 100644 --- a/builtin/providers/openstack/resource_openstack_networking_router_interface_v2.go +++ b/builtin/providers/openstack/resource_openstack_networking_router_interface_v2.go @@ -24,7 +24,7 @@ func resourceNetworkingRouterInterfaceV2() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), + DefaultFunc: schema.EnvDefaultFunc("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 fc0146a6e..7b5f3b8c2 100644 --- a/builtin/providers/openstack/resource_openstack_networking_router_v2.go +++ b/builtin/providers/openstack/resource_openstack_networking_router_v2.go @@ -24,7 +24,7 @@ func resourceNetworkingRouterV2() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), + DefaultFunc: schema.EnvDefaultFunc("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 c3ca944f4..2b86850da 100644 --- a/builtin/providers/openstack/resource_openstack_networking_subnet_v2.go +++ b/builtin/providers/openstack/resource_openstack_networking_subnet_v2.go @@ -24,7 +24,7 @@ func resourceNetworkingSubnetV2() *schema.Resource { Type: schema.TypeString, Required: true, ForceNew: true, - DefaultFunc: envDefaultFuncAllowMissing("OS_REGION_NAME"), + DefaultFunc: schema.EnvDefaultFunc("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 b476a4080..dc0ed9b69 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: envDefaultFuncAllowMissing("OS_REGION_NAME"), + DefaultFunc: schema.EnvDefaultFunc("OS_REGION_NAME", ""), }, "name": &schema.Schema{ Type: schema.TypeString, diff --git a/builtin/providers/powerdns/provider.go b/builtin/providers/powerdns/provider.go index c4ef5c786..b1d1e339b 100644 --- a/builtin/providers/powerdns/provider.go +++ b/builtin/providers/powerdns/provider.go @@ -1,8 +1,6 @@ package powerdns import ( - "os" - "github.com/hashicorp/terraform/helper/schema" "github.com/hashicorp/terraform/terraform" ) @@ -13,13 +11,13 @@ func Provider() terraform.ResourceProvider { "api_key": { Type: schema.TypeString, Required: true, - DefaultFunc: envDefaultFunc("PDNS_API_KEY"), + DefaultFunc: schema.EnvDefaultFunc("PDNS_API_KEY", nil), Description: "REST API authentication key", }, "server_url": { Type: schema.TypeString, Required: true, - DefaultFunc: envDefaultFunc("PDNS_SERVER_URL"), + DefaultFunc: schema.EnvDefaultFunc("PDNS_SERVER_URL", nil), Description: "Location of PowerDNS server", }, }, @@ -40,13 +38,3 @@ func providerConfigure(data *schema.ResourceData) (interface{}, error) { return config.Client() } - -func envDefaultFunc(k string) schema.SchemaDefaultFunc { - return func() (interface{}, error) { - if v := os.Getenv(k); v != "" { - return v, nil - } - - return nil, nil - } -}