Add context to DecortAPICall method

This commit is contained in:
stSolo
2022-06-29 16:22:31 +03:00
parent 3613bbea28
commit 9a7642cf33
114 changed files with 406 additions and 390 deletions

View File

@@ -83,7 +83,7 @@ func flattenResgroup(d *schema.ResourceData, rg_facts string) error {
}
func dataSourceResgroupRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
rg_facts, err := utilityResgroupCheckPresence(d, m)
rg_facts, err := utilityResgroupCheckPresence(ctx, d, m)
if rg_facts == "" {
// if empty string is returned from utilityResgroupCheckPresence then there is no
// such resource group and err tells so - just return it to the calling party

View File

@@ -108,7 +108,7 @@ func flattenRgResourceLimits(rl ResourceLimits) []map[string]interface{} {
}
func dataSourceRgListRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
rgList, err := utilityRgListCheckPresence(d, m)
rgList, err := utilityRgListCheckPresence(ctx, d, m)
if err != nil {
return diag.FromErr(err)
}

View File

@@ -125,7 +125,7 @@ func resourceResgroupCreate(ctx context.Context, d *schema.ResourceData, m inter
url_values.Add("extIp", ext_ip.(string))
}
api_resp, err := c.DecortAPICall("POST", ResgroupCreateAPI, url_values)
api_resp, err := c.DecortAPICall(ctx, "POST", ResgroupCreateAPI, url_values)
if err != nil {
return diag.FromErr(err)
}
@@ -133,7 +133,7 @@ func resourceResgroupCreate(ctx context.Context, d *schema.ResourceData, m inter
d.SetId(api_resp) // rg/create API returns ID of the newly creted resource group on success
// rg.ID, _ = strconv.Atoi(api_resp)
if !set_quota {
resp, err := utilityResgroupCheckPresence(d, m)
resp, err := utilityResgroupCheckPresence(ctx, d, m)
if err != nil {
return diag.FromErr(err)
}
@@ -154,7 +154,7 @@ func resourceResgroupRead(ctx context.Context, d *schema.ResourceData, m interfa
log.Debugf("resourceResgroupRead: called for RG name %s, account ID %d",
d.Get("name").(string), d.Get("account_id").(int))
rg_facts, err := utilityResgroupCheckPresence(d, m)
rg_facts, err := utilityResgroupCheckPresence(ctx, d, m)
if rg_facts == "" {
// if empty string is returned from utilityResgroupCheckPresence then there is no
// such resource group and err tells so - just return it to the calling party
@@ -255,7 +255,7 @@ func resourceResgroupUpdate(ctx context.Context, d *schema.ResourceData, m inter
if do_general_update {
log.Debugf("resourceResgroupUpdate: detected delta between new and old RG specs - updating the RG")
_, err := c.DecortAPICall("POST", ResgroupUpdateAPI, url_values)
_, err := c.DecortAPICall(ctx, "POST", ResgroupUpdateAPI, url_values)
if err != nil {
return diag.FromErr(err)
}
@@ -272,7 +272,7 @@ func resourceResgroupDelete(ctx context.Context, d *schema.ResourceData, m inter
log.Debugf("resourceResgroupDelete: called for RG name %s, account ID %d",
d.Get("name").(string), d.Get("account_id").(int))
rg_facts, err := utilityResgroupCheckPresence(d, m)
rg_facts, err := utilityResgroupCheckPresence(ctx, d, m)
if rg_facts == "" {
if err != nil {
return diag.FromErr(err)
@@ -289,7 +289,7 @@ func resourceResgroupDelete(ctx context.Context, d *schema.ResourceData, m inter
url_values.Add("reason", "Destroyed by DECORT Terraform provider")
c := m.(*controller.ControllerCfg)
_, err = c.DecortAPICall("POST", ResgroupDeleteAPI, url_values)
_, err = c.DecortAPICall(ctx, "POST", ResgroupDeleteAPI, url_values)
if err != nil {
return diag.FromErr(err)
}
@@ -297,9 +297,9 @@ func resourceResgroupDelete(ctx context.Context, d *schema.ResourceData, m inter
return nil
}
func resourceResgroupExists(d *schema.ResourceData, m interface{}) (bool, error) {
func resourceResgroupExists(ctx context.Context, d *schema.ResourceData, m interface{}) (bool, error) {
// Reminder: according to Terraform rules, this function should NOT modify ResourceData argument
rg_facts, err := utilityResgroupCheckPresence(d, m)
rg_facts, err := utilityResgroupCheckPresence(ctx, d, m)
if rg_facts == "" {
if err != nil {
return false, err
@@ -317,7 +317,6 @@ func ResourceResgroup() *schema.Resource {
ReadContext: resourceResgroupRead,
UpdateContext: resourceResgroupUpdate,
DeleteContext: resourceResgroupDelete,
Exists: resourceResgroupExists,
Importer: &schema.ResourceImporter{
State: schema.ImportStatePassthrough,

View File

@@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki
package rg
import (
"context"
"encoding/json"
"fmt"
"net/url"
@@ -45,7 +46,7 @@ import (
// On success this function returns a string, as returned by API rg/get, which could be unmarshalled
// into ResgroupGetResp structure
func utilityResgroupCheckPresence(d *schema.ResourceData, m interface{}) (string, error) {
func utilityResgroupCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (string, error) {
// This function tries to locate resource group by one of the following algorithms depending
// on the parameters passed:
// - if resource group ID is specified -> by RG ID
@@ -84,7 +85,7 @@ func utilityResgroupCheckPresence(d *schema.ResourceData, m interface{}) (string
// go straight for the RG by its ID
log.Debugf("utilityResgroupCheckPresence: locating RG by its ID %d", theId)
urlValues.Add("rgId", fmt.Sprintf("%d", theId))
rgFacts, err := c.DecortAPICall("POST", ResgroupGetAPI, urlValues)
rgFacts, err := c.DecortAPICall(ctx, "POST", ResgroupGetAPI, urlValues)
if err != nil {
return "", err
}
@@ -101,7 +102,7 @@ func utilityResgroupCheckPresence(d *schema.ResourceData, m interface{}) (string
// obtain Account ID by account name - it should not be zero on success
urlValues.Add("includedeleted", "false")
apiResp, err := c.DecortAPICall("POST", ResgroupListAPI, urlValues)
apiResp, err := c.DecortAPICall(ctx, "POST", ResgroupListAPI, urlValues)
if err != nil {
return "", err
}
@@ -125,7 +126,7 @@ func utilityResgroupCheckPresence(d *schema.ResourceData, m interface{}) (string
// Namely, we need resource quota settings
reqValues := &url.Values{}
reqValues.Add("rgId", fmt.Sprintf("%d", item.ID))
apiResp, err := c.DecortAPICall("POST", ResgroupGetAPI, reqValues)
apiResp, err := c.DecortAPICall(ctx, "POST", ResgroupGetAPI, reqValues)
if err != nil {
return "", err
}

View File

@@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki
package rg
import (
"context"
"encoding/json"
"net/url"
"strconv"
@@ -42,7 +43,7 @@ import (
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)
func utilityRgListCheckPresence(d *schema.ResourceData, m interface{}) (ResgroupListResp, error) {
func utilityRgListCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (ResgroupListResp, error) {
c := m.(*controller.ControllerCfg)
urlValues := &url.Values{}
@@ -59,7 +60,7 @@ func utilityRgListCheckPresence(d *schema.ResourceData, m interface{}) (Resgroup
}
log.Debugf("utilityRgListCheckPresence: load rg list")
rgListRaw, err := c.DecortAPICall("POST", ResgroupListAPI, urlValues)
rgListRaw, err := c.DecortAPICall(ctx, "POST", ResgroupListAPI, urlValues)
if err != nil {
return nil, err
}