Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Data Source Reads #204

Merged
merged 2 commits into from
Jan 20, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions vultr/data_source_vultr_account.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@ package vultr

import (
"context"
"fmt"
"math"

"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)

func dataSourceVultrAccount() *schema.Resource {
return &schema.Resource{
Read: dataSourceVultrAccountRead,
ReadContext: dataSourceVultrAccountRead,
Schema: map[string]*schema.Schema{
"name": {
Type: schema.TypeString,
Expand Down Expand Up @@ -45,13 +45,13 @@ func dataSourceVultrAccount() *schema.Resource {
}
}

func dataSourceVultrAccountRead(d *schema.ResourceData, meta interface{}) error {
func dataSourceVultrAccountRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
client := meta.(*Client).govultrClient()

account, err := client.Account.Get(context.Background())
account, err := client.Account.Get(ctx)

if err != nil {
return fmt.Errorf("error getting account info: %v", err)
return diag.Errorf("error getting account info: %v", err)
}

d.SetId("account")
Expand All @@ -62,7 +62,7 @@ func dataSourceVultrAccountRead(d *schema.ResourceData, meta interface{}) error
d.Set("last_payment_date", account.LastPaymentDate)
d.Set("last_payment_amount", math.Round(float64(account.LastPaymentAmount)*100)/100)
if err := d.Set("acl", account.ACL); err != nil {
return fmt.Errorf("error setting `acls`: %#v", err)
return diag.Errorf("error setting `acls`: %#v", err)
}
return nil
}
19 changes: 9 additions & 10 deletions vultr/data_source_vultr_application.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,16 @@ package vultr

import (
"context"
"errors"
"fmt"
"strconv"

"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/vultr/govultr/v2"
)

func dataSourceVultrApplication() *schema.Resource {
return &schema.Resource{
Read: dataSourceVultrApplicationRead,
ReadContext: dataSourceVultrApplicationRead,
Schema: map[string]*schema.Schema{
"filter": dataSourceFiltersSchema(),
"deploy_name": {
Expand Down Expand Up @@ -43,31 +42,31 @@ func dataSourceVultrApplication() *schema.Resource {
}
}

func dataSourceVultrApplicationRead(d *schema.ResourceData, meta interface{}) error {
func dataSourceVultrApplicationRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
client := meta.(*Client).govultrClient()

filters, filtersOk := d.GetOk("filter")

if !filtersOk {
return fmt.Errorf("issue with filter: %v", filtersOk)
return diag.Errorf("issue with filter: %v", filtersOk)
}

appList := []govultr.Application{}
f := buildVultrDataSourceFilter(filters.(*schema.Set))
options := &govultr.ListOptions{}

for {
apps, meta, err := client.Application.List(context.Background(), options)
apps, meta, err := client.Application.List(ctx, options)
if err != nil {
return fmt.Errorf("error getting applications: %v", err)
return diag.Errorf("error getting applications: %v", err)
}

for _, a := range apps {
// we need convert the a struct INTO a map so we can easily manipulate the data here
sm, err := structToMap(a)

if err != nil {
return err
return diag.FromErr(err)
}

if filterLoop(f, sm) {
Expand All @@ -83,11 +82,11 @@ func dataSourceVultrApplicationRead(d *schema.ResourceData, meta interface{}) er
}
}
if len(appList) > 1 {
return fmt.Errorf("your search returned too many results : %d. Please refine your search to be more specific", len(appList))
return diag.Errorf("your search returned too many results : %d. Please refine your search to be more specific", len(appList))
}

if len(appList) < 1 {
return errors.New("no results were found")
return diag.Errorf("no results were found")
}
d.SetId(strconv.Itoa(appList[0].ID))
d.Set("deploy_name", appList[0].DeployName)
Expand Down
21 changes: 10 additions & 11 deletions vultr/data_source_vultr_bare_metal_plan.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,15 @@ package vultr

import (
"context"
"errors"
"fmt"

"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/vultr/govultr/v2"
)

func dataSourceVultrBareMetalPlan() *schema.Resource {
return &schema.Resource{
Read: dataSourceVultrBareMetalPlanRead,
ReadContext: dataSourceVultrBareMetalPlanRead,
Schema: map[string]*schema.Schema{
"filter": dataSourceFiltersSchema(),
"cpu_count": {
Expand Down Expand Up @@ -61,31 +60,31 @@ func dataSourceVultrBareMetalPlan() *schema.Resource {
}
}

func dataSourceVultrBareMetalPlanRead(d *schema.ResourceData, meta interface{}) error {
func dataSourceVultrBareMetalPlanRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
client := meta.(*Client).govultrClient()

filters, filtersOk := d.GetOk("filter")

if !filtersOk {
return fmt.Errorf("issue with filter: %v", filtersOk)
return diag.Errorf("issue with filter: %v", filtersOk)
}

var planList []govultr.BareMetalPlan
f := buildVultrDataSourceFilter(filters.(*schema.Set))
options := &govultr.ListOptions{}
for {
plans, meta, err := client.Plan.ListBareMetal(context.Background(), options)
plans, meta, err := client.Plan.ListBareMetal(ctx, options)

if err != nil {
return fmt.Errorf("Error getting bare metal plans: %v", err)
return diag.Errorf("Error getting bare metal plans: %v", err)
}

for _, a := range plans {
// we need convert the a struct INTO a map so we can easily manipulate the data here
sm, err := structToMap(a)

if err != nil {
return err
return diag.FromErr(err)
}

if filterLoop(f, sm) {
Expand All @@ -101,11 +100,11 @@ func dataSourceVultrBareMetalPlanRead(d *schema.ResourceData, meta interface{})
}
}
if len(planList) > 1 {
return errors.New("your search returned too many results. Please refine your search to be more specific")
return diag.Errorf("your search returned too many results. Please refine your search to be more specific")
}

if len(planList) < 1 {
return errors.New("no results were found")
return diag.Errorf("no results were found")
}

d.SetId(planList[0].ID)
Expand All @@ -120,7 +119,7 @@ func dataSourceVultrBareMetalPlanRead(d *schema.ResourceData, meta interface{})
d.Set("disk_count", planList[0].DiskCount)

if err := d.Set("locations", planList[0].Locations); err != nil {
return fmt.Errorf("error setting `locations`: %#v", err)
return diag.Errorf("error setting `locations`: %#v", err)
}

return nil
Expand Down
19 changes: 9 additions & 10 deletions vultr/data_source_vultr_bare_metal_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,15 @@ package vultr

import (
"context"
"errors"
"fmt"

"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/vultr/govultr/v2"
)

func dataSourceVultrBareMetalServer() *schema.Resource {
return &schema.Resource{
Read: dataSourceVultrBareMetalServerRead,
ReadContext: dataSourceVultrBareMetalServerRead,
Schema: map[string]*schema.Schema{
"filter": dataSourceFiltersSchema(),
"os": {
Expand Down Expand Up @@ -103,31 +102,31 @@ func dataSourceVultrBareMetalServer() *schema.Resource {
}
}

func dataSourceVultrBareMetalServerRead(d *schema.ResourceData, meta interface{}) error {
func dataSourceVultrBareMetalServerRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
client := meta.(*Client).govultrClient()

filters, filtersOk := d.GetOk("filter")

if !filtersOk {
return fmt.Errorf("issue with filter: %v", filtersOk)
return diag.Errorf("issue with filter: %v", filtersOk)
}

serverList := []govultr.BareMetalServer{}
f := buildVultrDataSourceFilter(filters.(*schema.Set))
options := &govultr.ListOptions{}

for {
servers, meta, err := client.BareMetalServer.List(context.Background(), options)
servers, meta, err := client.BareMetalServer.List(ctx, options)
if err != nil {
return fmt.Errorf("error getting bare metal servers: %v", err)
return diag.Errorf("error getting bare metal servers: %v", err)
}

for _, s := range servers {
// we need convert the a struct INTO a map so we can easily manipulate the data here
sm, err := structToMap(s)

if err != nil {
return err
return diag.FromErr(err)
}

if filterLoop(f, sm) {
Expand All @@ -143,11 +142,11 @@ func dataSourceVultrBareMetalServerRead(d *schema.ResourceData, meta interface{}
}
}
if len(serverList) > 1 {
return errors.New("your search returned too many results. Please refine your search to be more specific")
return diag.Errorf("your search returned too many results. Please refine your search to be more specific")
}

if len(serverList) < 1 {
return errors.New("no results were found")
return diag.Errorf("no results were found")
}

d.SetId(serverList[0].ID)
Expand Down
19 changes: 9 additions & 10 deletions vultr/data_source_vultr_block_storage.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,15 @@ package vultr

import (
"context"
"errors"
"fmt"

"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/vultr/govultr/v2"
)

func dataSourceVultrBlockStorage() *schema.Resource {
return &schema.Resource{
Read: dataSourceVultrBlockStorageRead,
ReadContext: dataSourceVultrBlockStorageRead,
Schema: map[string]*schema.Schema{
"filter": dataSourceFiltersSchema(),
"date_created": {
Expand Down Expand Up @@ -50,29 +49,29 @@ func dataSourceVultrBlockStorage() *schema.Resource {
}
}

func dataSourceVultrBlockStorageRead(d *schema.ResourceData, meta interface{}) error {
func dataSourceVultrBlockStorageRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
client := meta.(*Client).govultrClient()

filters, filtersOk := d.GetOk("filter")

if !filtersOk {
return fmt.Errorf("issue with filter: %v", filtersOk)
return diag.Errorf("issue with filter: %v", filtersOk)
}

var blockList []govultr.BlockStorage
f := buildVultrDataSourceFilter(filters.(*schema.Set))
options := &govultr.ListOptions{}
for {
block, meta, err := client.BlockStorage.List(context.Background(), options)
block, meta, err := client.BlockStorage.List(ctx, options)
if err != nil {
return fmt.Errorf("error getting block storages: %v", err)
return diag.Errorf("error getting block storages: %v", err)
}

for _, b := range block {
sm, err := structToMap(b)

if err != nil {
return err
return diag.FromErr(err)
}

if filterLoop(f, sm) {
Expand All @@ -88,11 +87,11 @@ func dataSourceVultrBlockStorageRead(d *schema.ResourceData, meta interface{}) e
}
}
if len(blockList) > 1 {
return errors.New("your search returned too many results. Please refine your search to be more specific")
return diag.Errorf("your search returned too many results. Please refine your search to be more specific")
}

if len(blockList) < 1 {
return errors.New("no results were found")
return diag.Errorf("no results were found")
}

d.SetId(blockList[0].ID)
Expand Down
10 changes: 5 additions & 5 deletions vultr/data_source_vultr_dns_domain.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@ package vultr

import (
"context"
"fmt"

"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
)

func dataSourceVultrDNSDomain() *schema.Resource {
return &schema.Resource{
Read: dataSourceVultrDNSDomainRead,
ReadContext: dataSourceVultrDNSDomainRead,
Schema: map[string]*schema.Schema{
"domain": {
Type: schema.TypeString,
Expand All @@ -30,12 +30,12 @@ func dataSourceVultrDNSDomain() *schema.Resource {
}
}

func dataSourceVultrDNSDomainRead(d *schema.ResourceData, meta interface{}) error {
func dataSourceVultrDNSDomainRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
client := meta.(*Client).govultrClient()

domain, err := client.Domain.Get(context.Background(), d.Get("domain").(string))
domain, err := client.Domain.Get(ctx, d.Get("domain").(string))
if err != nil {
return fmt.Errorf("error getting dns domains: %v", err)
return diag.Errorf("error getting dns domains: %v", err)
}

d.SetId(domain.Domain)
Expand Down
Loading