provider/vsphere: restore vcenter_server as deprecated field
As promised in my comment in #3718, this preserves backwards compatibility while warning users of the new proper name for the field.
This commit is contained in:
parent
b11966bca6
commit
cfea7c8e2d
|
@ -1,6 +1,8 @@
|
||||||
package vsphere
|
package vsphere
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
"github.com/hashicorp/terraform/helper/schema"
|
"github.com/hashicorp/terraform/helper/schema"
|
||||||
"github.com/hashicorp/terraform/terraform"
|
"github.com/hashicorp/terraform/terraform"
|
||||||
)
|
)
|
||||||
|
@ -25,21 +27,26 @@ func Provider() terraform.ResourceProvider {
|
||||||
|
|
||||||
"vsphere_server": &schema.Schema{
|
"vsphere_server": &schema.Schema{
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Required: true,
|
Optional: true,
|
||||||
DefaultFunc: schema.EnvDefaultFunc("VSPHERE_SERVER", nil),
|
DefaultFunc: schema.EnvDefaultFunc("VSPHERE_SERVER", nil),
|
||||||
Description: "The vSphere Server name for vSphere API operations.",
|
Description: "The vSphere Server name for vSphere API operations.",
|
||||||
},
|
},
|
||||||
|
|
||||||
"allow_unverified_ssl": &schema.Schema{
|
"allow_unverified_ssl": &schema.Schema{
|
||||||
Type: schema.TypeBool,
|
Type: schema.TypeBool,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
DefaultFunc: schema.EnvDefaultFunc("VSPHERE_ALLOW_UNVERIFIED_SSL", false),
|
DefaultFunc: schema.EnvDefaultFunc("VSPHERE_ALLOW_UNVERIFIED_SSL", false),
|
||||||
Description: "If set, VMware vSphere client will permit unverifiable SSL certificates.",
|
Description: "If set, VMware vSphere client will permit unverifiable SSL certificates.",
|
||||||
},
|
},
|
||||||
|
"vcenter_server": &schema.Schema{
|
||||||
|
Type: schema.TypeString,
|
||||||
|
Optional: true,
|
||||||
|
DefaultFunc: schema.EnvDefaultFunc("VSPHERE_VCENTER", nil),
|
||||||
|
Deprecated: "This field has been renamed to vsphere_server.",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
ResourcesMap: map[string]*schema.Resource{
|
ResourcesMap: map[string]*schema.Resource{
|
||||||
"vsphere_folder": resourceVSphereFolder(),
|
"vsphere_folder": resourceVSphereFolder(),
|
||||||
"vsphere_virtual_machine": resourceVSphereVirtualMachine(),
|
"vsphere_virtual_machine": resourceVSphereVirtualMachine(),
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -48,11 +55,25 @@ func Provider() terraform.ResourceProvider {
|
||||||
}
|
}
|
||||||
|
|
||||||
func providerConfigure(d *schema.ResourceData) (interface{}, error) {
|
func providerConfigure(d *schema.ResourceData) (interface{}, error) {
|
||||||
|
// Handle backcompat support for vcenter_server; once that is removed,
|
||||||
|
// vsphere_server can just become a Required field that is referenced inline
|
||||||
|
// in Config below.
|
||||||
|
server := d.Get("vsphere_server").(string)
|
||||||
|
|
||||||
|
if server == "" {
|
||||||
|
server = d.Get("vcenter_server").(string)
|
||||||
|
}
|
||||||
|
|
||||||
|
if server == "" {
|
||||||
|
return nil, fmt.Errorf(
|
||||||
|
"One of vsphere_server or [deprecated] vcenter_server must be provided.")
|
||||||
|
}
|
||||||
|
|
||||||
config := Config{
|
config := Config{
|
||||||
User: d.Get("user").(string),
|
User: d.Get("user").(string),
|
||||||
Password: d.Get("password").(string),
|
Password: d.Get("password").(string),
|
||||||
VSphereServer: d.Get("vsphere_server").(string),
|
|
||||||
InsecureFlag: d.Get("allow_unverified_ssl").(bool),
|
InsecureFlag: d.Get("allow_unverified_ssl").(bool),
|
||||||
|
VSphereServer: server,
|
||||||
}
|
}
|
||||||
|
|
||||||
return config.Client()
|
return config.Client()
|
||||||
|
|
Loading…
Reference in New Issue