diff --git a/data_source_virtual_environment_access_group.go b/data_source_virtual_environment_access_group.go index 0cf767a8..254137a2 100644 --- a/data_source_virtual_environment_access_group.go +++ b/data_source_virtual_environment_access_group.go @@ -5,8 +5,6 @@ package main import ( - "errors" - "github.com/hashicorp/terraform/helper/schema" ) @@ -42,13 +40,14 @@ func dataSourceVirtualEnvironmentAccessGroup() *schema.Resource { func dataSourceVirtualEnvironmentAccessGroupRead(d *schema.ResourceData, m interface{}) error { config := m.(providerConfiguration) + veClient, err := config.GetVEClient() - if config.veClient == nil { - return errors.New("You must specify the virtual environment details in the provider configuration to use this data source") + if err != nil { + return err } groupID := d.Get(mkDataSourceVirtualEnvironmentAccessGroupID).(string) - accessGroup, err := config.veClient.GetAccessGroup(groupID) + accessGroup, err := veClient.GetAccessGroup(groupID) if err != nil { return err diff --git a/data_source_virtual_environment_access_groups.go b/data_source_virtual_environment_access_groups.go index 2ff78bb2..4bf95009 100644 --- a/data_source_virtual_environment_access_groups.go +++ b/data_source_virtual_environment_access_groups.go @@ -5,8 +5,6 @@ package main import ( - "errors" - "github.com/hashicorp/terraform/helper/schema" ) @@ -37,12 +35,13 @@ func dataSourceVirtualEnvironmentAccessGroups() *schema.Resource { func dataSourceVirtualEnvironmentAccessGroupsRead(d *schema.ResourceData, m interface{}) error { config := m.(providerConfiguration) + veClient, err := config.GetVEClient() - if config.veClient == nil { - return errors.New("You must specify the virtual environment details in the provider configuration to use this data source") + if err != nil { + return err } - list, err := config.veClient.ListAccessGroups() + list, err := veClient.ListAccessGroups() if err != nil { return err diff --git a/data_source_virtual_environment_version.go b/data_source_virtual_environment_version.go index 6dda2b99..57763ce0 100644 --- a/data_source_virtual_environment_version.go +++ b/data_source_virtual_environment_version.go @@ -5,8 +5,6 @@ package main import ( - "errors" - "github.com/hashicorp/terraform/helper/schema" ) @@ -51,12 +49,13 @@ func dataSourceVirtualEnvironmentVersion() *schema.Resource { func dataSourceVirtualEnvironmentVersionRead(d *schema.ResourceData, m interface{}) error { config := m.(providerConfiguration) + veClient, err := config.GetVEClient() - if config.veClient == nil { - return errors.New("You must specify the virtual environment details in the provider configuration to use this data source") + if err != nil { + return err } - version, err := config.veClient.Version() + version, err := veClient.Version() if err != nil { return err diff --git a/provider.go b/provider.go index eaa55acb..637ce79f 100644 --- a/provider.go +++ b/provider.go @@ -5,6 +5,8 @@ package main import ( + "errors" + "github.com/danitso/terraform-provider-proxmox/proxmox" "github.com/hashicorp/terraform/helper/schema" ) @@ -96,3 +98,11 @@ func providerConfigure(d *schema.ResourceData) (interface{}, error) { return config, nil } + +func (c *providerConfiguration) GetVEClient() (*proxmox.VirtualEnvironmentClient, error) { + if c.veClient == nil { + return nil, errors.New("You must specify the virtual environment details in the provider configuration to use this data source") + } + + return c.veClient, nil +} diff --git a/resource_virtual_environment_access_group.go b/resource_virtual_environment_access_group.go index 98f6c66b..4f79bb75 100644 --- a/resource_virtual_environment_access_group.go +++ b/resource_virtual_environment_access_group.go @@ -5,7 +5,6 @@ package main import ( - "errors" "strings" "github.com/danitso/terraform-provider-proxmox/proxmox" @@ -48,9 +47,10 @@ func resourceVirtualEnvironmentAccessGroup() *schema.Resource { func resourceVirtualEnvironmentAccessGroupCreate(d *schema.ResourceData, m interface{}) error { config := m.(providerConfiguration) + veClient, err := config.GetVEClient() - if config.veClient == nil { - return errors.New("You must specify the virtual environment details in the provider configuration to use this data source") + if err != nil { + return err } groupID := d.Get(mkResourceVirtualEnvironmentAccessGroupID).(string) @@ -59,7 +59,7 @@ func resourceVirtualEnvironmentAccessGroupCreate(d *schema.ResourceData, m inter ID: groupID, } - err := config.veClient.CreateAccessGroup(body) + err = veClient.CreateAccessGroup(body) if err != nil { return err @@ -72,13 +72,14 @@ func resourceVirtualEnvironmentAccessGroupCreate(d *schema.ResourceData, m inter func resourceVirtualEnvironmentAccessGroupRead(d *schema.ResourceData, m interface{}) error { config := m.(providerConfiguration) + veClient, err := config.GetVEClient() - if config.veClient == nil { - return errors.New("You must specify the virtual environment details in the provider configuration to use this data source") + if err != nil { + return err } - groupID := d.Get(mkResourceVirtualEnvironmentAccessGroupID).(string) - accessGroup, err := config.veClient.GetAccessGroup(groupID) + groupID := d.Id() + accessGroup, err := veClient.GetAccessGroup(groupID) if err != nil { if strings.Contains(err.Error(), "HTTP 404") { @@ -100,17 +101,18 @@ func resourceVirtualEnvironmentAccessGroupRead(d *schema.ResourceData, m interfa func resourceVirtualEnvironmentAccessGroupUpdate(d *schema.ResourceData, m interface{}) error { config := m.(providerConfiguration) + veClient, err := config.GetVEClient() - if config.veClient == nil { - return errors.New("You must specify the virtual environment details in the provider configuration to use this data source") + if err != nil { + return err } body := &proxmox.VirtualEnvironmentAccessGroupUpdateRequestBody{ Comment: d.Get(mkResourceVirtualEnvironmentAccessGroupComment).(string), } - groupID := d.Get(mkResourceVirtualEnvironmentAccessGroupID).(string) - err := config.veClient.UpdateAccessGroup(groupID, body) + groupID := d.Id() + err = veClient.UpdateAccessGroup(groupID, body) if err != nil { return err @@ -121,13 +123,14 @@ func resourceVirtualEnvironmentAccessGroupUpdate(d *schema.ResourceData, m inter func resourceVirtualEnvironmentAccessGroupDelete(d *schema.ResourceData, m interface{}) error { config := m.(providerConfiguration) + veClient, err := config.GetVEClient() - if config.veClient == nil { - return errors.New("You must specify the virtual environment details in the provider configuration to use this data source") + if err != nil { + return err } - groupID := d.Get(mkResourceVirtualEnvironmentAccessGroupID).(string) - err := config.veClient.DeleteAccessGroup(groupID) + groupID := d.Id() + err = veClient.DeleteAccessGroup(groupID) if err != nil { if strings.Contains(err.Error(), "HTTP 404") {