From 9a7642cf332bf3971a13e9eaa63ae3a584d65b0c Mon Sep 17 00:00:00 2001 From: stSolo Date: Wed, 29 Jun 2022 16:22:31 +0300 Subject: [PATCH] Add context to DecortAPICall method --- go.mod | 1 + internal/controller/controller.go | 3 +- internal/location/location.go | 5 +- internal/provider/provider.go | 5 +- .../cloudapi/account/data_source_account.go | 2 +- .../data_source_account_audits_list.go | 2 +- .../data_source_account_computes_list.go | 2 +- .../data_source_account_consumed_units.go | 2 +- ...a_source_account_consumed_units_by_type.go | 2 +- .../data_source_account_deleted_list.go | 2 +- .../account/data_source_account_disks_list.go | 2 +- .../data_source_account_flipgroups_list.go | 2 +- .../account/data_source_account_list.go | 2 +- .../data_source_account_reserved_units.go | 2 +- .../account/data_source_account_rg_list.go | 2 +- .../data_source_account_templates_list.go | 2 +- .../account/data_source_account_vins_list.go | 2 +- .../cloudapi/account/resource_account.go | 31 +++++----- .../cloudapi/account/utility_account.go | 5 +- .../account/utility_account_audits_list.go | 5 +- .../account/utility_account_computes_list.go | 5 +- .../account/utility_account_consumed_units.go | 5 +- .../utility_account_consumed_units_by_type.go | 5 +- .../account/utility_account_deleted_list.go | 5 +- .../account/utility_account_disks_list.go | 5 +- .../account/utility_account_flip_groups.go | 5 +- .../cloudapi/account/utility_account_list.go | 5 +- .../account/utility_account_reserved_units.go | 5 +- .../account/utility_account_rg_list.go | 5 +- .../account/utility_account_templates_list.go | 5 +- .../account/utility_account_vins_list.go | 5 +- .../cloudapi/bservice/data_source_bservice.go | 2 +- .../data_source_bservice_deleted_list.go | 2 +- .../bservice/data_source_bservice_group.go | 2 +- .../bservice/data_source_bservice_list.go | 2 +- .../data_source_bservice_snapshot_list.go | 2 +- .../cloudapi/bservice/resource_bservice.go | 27 +++++---- .../bservice/resource_bservice_group.go | 31 +++++----- .../utility_bservicce_deleted_list.go | 5 +- .../cloudapi/bservice/utility_bservice.go | 5 +- .../bservice/utility_bservice_group.go | 5 +- .../bservice/utility_bservice_list.go | 5 +- .../utility_bservice_snapshot_list.go | 5 +- .../cloudapi/disks/data_source_disk.go | 2 +- .../cloudapi/disks/data_source_disk_list.go | 2 +- .../service/cloudapi/disks/resource_disk.go | 17 +++--- .../service/cloudapi/disks/utility_disk.go | 7 ++- .../cloudapi/disks/utility_disk_list.go | 5 +- .../cloudapi/extnet/data_source_extnet.go | 2 +- .../data_source_extnet_computes_list.go | 2 +- .../extnet/data_source_extnet_default.go | 2 +- .../extnet/data_source_extnet_list.go | 2 +- .../service/cloudapi/extnet/utility_extnet.go | 5 +- .../extnet/utility_extnet_computes_list.go | 5 +- .../cloudapi/extnet/utility_extnet_default.go | 5 +- .../cloudapi/extnet/utility_extnet_list.go | 5 +- internal/service/cloudapi/k8s/resource_k8s.go | 33 +++++------ .../service/cloudapi/k8s/resource_k8s_wg.go | 19 +++--- internal/service/cloudapi/k8s/utility_k8s.go | 5 +- .../service/cloudapi/k8s/utility_k8s_wg.go | 5 +- .../cloudapi/kvmvm/data_source_compute.go | 2 +- .../cloudapi/kvmvm/resource_compute.go | 58 ++++++------------- .../service/cloudapi/kvmvm/utility_compute.go | 25 ++++---- internal/service/cloudapi/pfw/resource_pfw.go | 15 +++-- internal/service/cloudapi/pfw/utility_pfw.go | 5 +- .../service/cloudapi/rg/data_source_rg.go | 2 +- .../cloudapi/rg/data_source_rg_list.go | 2 +- internal/service/cloudapi/rg/resource_rg.go | 17 +++--- internal/service/cloudapi/rg/utility_rg.go | 9 +-- .../service/cloudapi/rg/utility_rg_list.go | 5 +- .../snapshot/data_source_snapshot_list.go | 2 +- .../cloudapi/snapshot/resource_snapshot.go | 17 +++--- .../cloudapi/snapshot/utility_snapshot.go | 5 +- .../snapshot/utility_snapshot_list.go | 5 +- .../service/cloudapi/vgpu/data_source_vgpu.go | 2 +- .../service/cloudapi/vgpu/utility_vgpu.go | 5 +- .../service/cloudapi/vins/data_source_vins.go | 2 +- .../cloudapi/vins/data_source_vins_list.go | 2 +- .../service/cloudapi/vins/resource_vins.go | 17 +++--- .../service/cloudapi/vins/utility_vins.go | 9 +-- .../cloudapi/vins/utility_vins_list.go | 5 +- .../cloudbroker/grid/data_source_grid.go | 2 +- .../cloudbroker/grid/data_source_grid_list.go | 2 +- .../service/cloudbroker/grid/utility_grid.go | 5 +- .../cloudbroker/grid/utility_grid_list.go | 5 +- .../cloudbroker/image/data_source_image.go | 2 +- .../image/data_source_image_list.go | 2 +- .../image/data_source_image_list_stacks.go | 2 +- .../cloudbroker/image/resource_cdrom_image.go | 9 ++- .../image/resource_delete_images.go | 2 +- .../cloudbroker/image/resource_image.go | 53 +++++++++-------- .../image/resource_virtual_image.go | 5 +- .../cloudbroker/image/utility_image.go | 5 +- .../cloudbroker/image/utility_image_list.go | 5 +- .../image/utility_image_list_stacks.go | 5 +- .../pcidevice/data_source_pcidevice.go | 2 +- .../pcidevice/data_source_pcidevice_list.go | 2 +- .../pcidevice/resource_pcidevice.go | 15 +++-- .../pcidevice/utility_pcidevice.go | 5 +- .../pcidevice/utility_pcidevice_list.go | 5 +- .../cloudbroker/sep/data_source_sep.go | 2 +- .../cloudbroker/sep/data_source_sep_config.go | 2 +- .../sep/data_source_sep_consumption.go | 2 +- .../sep/data_source_sep_disk_list.go | 2 +- .../cloudbroker/sep/data_source_sep_list.go | 2 +- .../cloudbroker/sep/data_source_sep_pool.go | 2 +- .../service/cloudbroker/sep/resource_sep.go | 43 +++++++------- .../cloudbroker/sep/resource_sep_config.go | 15 +++-- .../service/cloudbroker/sep/utility_sep.go | 5 +- .../cloudbroker/sep/utility_sep_config.go | 5 +- .../sep/utility_sep_consumption.go | 5 +- .../cloudbroker/sep/utility_sep_disk_list.go | 5 +- .../cloudbroker/sep/utility_sep_list.go | 5 +- .../cloudbroker/sep/utility_sep_pool.go | 5 +- 114 files changed, 406 insertions(+), 390 deletions(-) diff --git a/go.mod b/go.mod index 8663324..1028826 100644 --- a/go.mod +++ b/go.mod @@ -8,4 +8,5 @@ require ( github.com/hashicorp/terraform-plugin-docs v0.5.1 github.com/hashicorp/terraform-plugin-sdk/v2 v2.17.0 // indirect github.com/sirupsen/logrus v1.7.0 + golang.org/x/net v0.0.0-20210326060303-6b1517762897 // indirect ) diff --git a/internal/controller/controller.go b/internal/controller/controller.go index d36389e..ca9d3e3 100644 --- a/internal/controller/controller.go +++ b/internal/controller/controller.go @@ -21,6 +21,7 @@ package controller import ( "bytes" + "context" "crypto/tls" "fmt" "io/ioutil" @@ -325,7 +326,7 @@ func (config *ControllerCfg) validateLegacyUser() (bool, error) { return true, nil } -func (config *ControllerCfg) DecortAPICall(method string, api_name string, url_values *url.Values) (json_resp string, err error) { //nolint:unparam +func (config *ControllerCfg) DecortAPICall(ctx context.Context, method string, api_name string, url_values *url.Values) (json_resp string, err error) { //nolint:unparam // This is a convenience wrapper around standard HTTP request methods that is aware of the // authorization mode for which the provider was initialized and compiles request accordingly. diff --git a/internal/location/location.go b/internal/location/location.go index a5333a9..8305d5f 100644 --- a/internal/location/location.go +++ b/internal/location/location.go @@ -20,6 +20,7 @@ limitations under the License. package location import ( + "context" "encoding/json" "fmt" "net/url" @@ -30,13 +31,13 @@ import ( var DefaultGridID int -func UtilityLocationGetDefaultGridID(m interface{}) (int, error) { +func UtilityLocationGetDefaultGridID(ctx context.Context, m interface{}) (int, error) { c := m.(*controller.ControllerCfg) urlValues := &url.Values{} log.Debug("utilityLocationGetDefaultGridID: retrieving locations list") - apiResp, err := c.DecortAPICall("POST", LocationsListAPI, urlValues) + apiResp, err := c.DecortAPICall(ctx, "POST", LocationsListAPI, urlValues) if err != nil { return 0, err } diff --git a/internal/provider/provider.go b/internal/provider/provider.go index ec3d24d..c6c76f1 100644 --- a/internal/provider/provider.go +++ b/internal/provider/provider.go @@ -25,6 +25,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" + "golang.org/x/net/context" "github.com/rudecs/terraform-provider-decort/internal/controller" "github.com/rudecs/terraform-provider-decort/internal/location" @@ -122,7 +123,9 @@ func providerConfigure(d *schema.ResourceData) (interface{}, error) { return nil, err } - gridId, err := location.UtilityLocationGetDefaultGridID(decsController) + ctx := context.Background() + + gridId, err := location.UtilityLocationGetDefaultGridID(ctx, decsController) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/account/data_source_account.go b/internal/service/cloudapi/account/data_source_account.go index 85f4003..f3b2c6e 100644 --- a/internal/service/cloudapi/account/data_source_account.go +++ b/internal/service/cloudapi/account/data_source_account.go @@ -42,7 +42,7 @@ import ( ) func dataSourceAccountRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - acc, err := utilityAccountCheckPresence(d, m) + acc, err := utilityAccountCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudapi/account/data_source_account_audits_list.go b/internal/service/cloudapi/account/data_source_account_audits_list.go index 6351c70..d904d12 100644 --- a/internal/service/cloudapi/account/data_source_account_audits_list.go +++ b/internal/service/cloudapi/account/data_source_account_audits_list.go @@ -57,7 +57,7 @@ func flattenAccountAuditsList(aal AccountAuditsList) []map[string]interface{} { } func dataSourceAccountAuditsListRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - accountAuditsList, err := utilityAccountAuditsListCheckPresence(d, m) + accountAuditsList, err := utilityAccountAuditsListCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudapi/account/data_source_account_computes_list.go b/internal/service/cloudapi/account/data_source_account_computes_list.go index 9828c2a..39eda42 100644 --- a/internal/service/cloudapi/account/data_source_account_computes_list.go +++ b/internal/service/cloudapi/account/data_source_account_computes_list.go @@ -72,7 +72,7 @@ func flattenAccountComputesList(acl AccountComputesList) []map[string]interface{ } func dataSourceAccountComputesListRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - accountComputesList, err := utilityAccountComputesListCheckPresence(d, m) + accountComputesList, err := utilityAccountComputesListCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudapi/account/data_source_account_consumed_units.go b/internal/service/cloudapi/account/data_source_account_consumed_units.go index 52b9f19..bfcc492 100644 --- a/internal/service/cloudapi/account/data_source_account_consumed_units.go +++ b/internal/service/cloudapi/account/data_source_account_consumed_units.go @@ -41,7 +41,7 @@ import ( ) func dataSourceAccountConsumedUnitsRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - accountConsumedUnits, err := utilityAccountConsumedUnitsCheckPresence(d, m) + accountConsumedUnits, err := utilityAccountConsumedUnitsCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudapi/account/data_source_account_consumed_units_by_type.go b/internal/service/cloudapi/account/data_source_account_consumed_units_by_type.go index 877608e..1528efb 100644 --- a/internal/service/cloudapi/account/data_source_account_consumed_units_by_type.go +++ b/internal/service/cloudapi/account/data_source_account_consumed_units_by_type.go @@ -41,7 +41,7 @@ import ( ) func dataSourceAccountConsumedUnitsByTypeRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - result, err := utilityAccountConsumedUnitsByTypeCheckPresence(d, m) + result, err := utilityAccountConsumedUnitsByTypeCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudapi/account/data_source_account_deleted_list.go b/internal/service/cloudapi/account/data_source_account_deleted_list.go index 0dc1d3f..04120b4 100644 --- a/internal/service/cloudapi/account/data_source_account_deleted_list.go +++ b/internal/service/cloudapi/account/data_source_account_deleted_list.go @@ -41,7 +41,7 @@ import ( ) func dataSourceAccountDeletedListRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - accountDeletedList, err := utilityAccountDeletedListCheckPresence(d, m) + accountDeletedList, err := utilityAccountDeletedListCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudapi/account/data_source_account_disks_list.go b/internal/service/cloudapi/account/data_source_account_disks_list.go index 9871eed..fcc12b3 100644 --- a/internal/service/cloudapi/account/data_source_account_disks_list.go +++ b/internal/service/cloudapi/account/data_source_account_disks_list.go @@ -57,7 +57,7 @@ func flattenAccountDisksList(adl AccountDisksList) []map[string]interface{} { } func dataSourceAccountDisksListRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - accountDisksList, err := utilityAccountDisksListCheckPresence(d, m) + accountDisksList, err := utilityAccountDisksListCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudapi/account/data_source_account_flipgroups_list.go b/internal/service/cloudapi/account/data_source_account_flipgroups_list.go index 09bc65b..3bcc489 100644 --- a/internal/service/cloudapi/account/data_source_account_flipgroups_list.go +++ b/internal/service/cloudapi/account/data_source_account_flipgroups_list.go @@ -73,7 +73,7 @@ func flattenAccountFlipGroupsList(afgl AccountFlipGroupsList) []map[string]inter } func dataSourceAccountFlipGroupsListRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - accountFlipGroupsList, err := utilityAccountFlipGroupsListCheckPresence(d, m) + accountFlipGroupsList, err := utilityAccountFlipGroupsListCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudapi/account/data_source_account_list.go b/internal/service/cloudapi/account/data_source_account_list.go index df625d0..d5370df 100644 --- a/internal/service/cloudapi/account/data_source_account_list.go +++ b/internal/service/cloudapi/account/data_source_account_list.go @@ -119,7 +119,7 @@ func flattenAccountList(al AccountList) []map[string]interface{} { */ func dataSourceAccountListRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - accountList, err := utilityAccountListCheckPresence(d, m) + accountList, err := utilityAccountListCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudapi/account/data_source_account_reserved_units.go b/internal/service/cloudapi/account/data_source_account_reserved_units.go index d708129..3d345ea 100644 --- a/internal/service/cloudapi/account/data_source_account_reserved_units.go +++ b/internal/service/cloudapi/account/data_source_account_reserved_units.go @@ -41,7 +41,7 @@ import ( ) func dataSourceAccountReservedUnitsRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - accountReservedUnits, err := utilityAccountReservedUnitsCheckPresence(d, m) + accountReservedUnits, err := utilityAccountReservedUnitsCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudapi/account/data_source_account_rg_list.go b/internal/service/cloudapi/account/data_source_account_rg_list.go index 29f885f..c9b94d4 100644 --- a/internal/service/cloudapi/account/data_source_account_rg_list.go +++ b/internal/service/cloudapi/account/data_source_account_rg_list.go @@ -86,7 +86,7 @@ func flattenAccRGResources(argr AccountRGResources) []map[string]interface{} { } func dataSourceAccountRGListRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - accountRGList, err := utilityAccountRGListCheckPresence(d, m) + accountRGList, err := utilityAccountRGListCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudapi/account/data_source_account_templates_list.go b/internal/service/cloudapi/account/data_source_account_templates_list.go index 113d9a7..92a6293 100644 --- a/internal/service/cloudapi/account/data_source_account_templates_list.go +++ b/internal/service/cloudapi/account/data_source_account_templates_list.go @@ -62,7 +62,7 @@ func flattenAccountTemplatesList(atl AccountTemplatesList) []map[string]interfac } func dataSourceAccountTemplatesListRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - accountTemplatesList, err := utilityAccountTemplatesListCheckPresence(d, m) + accountTemplatesList, err := utilityAccountTemplatesListCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudapi/account/data_source_account_vins_list.go b/internal/service/cloudapi/account/data_source_account_vins_list.go index 6542018..b631e35 100644 --- a/internal/service/cloudapi/account/data_source_account_vins_list.go +++ b/internal/service/cloudapi/account/data_source_account_vins_list.go @@ -69,7 +69,7 @@ func flattenAccountVinsList(avl AccountVinsList) []map[string]interface{} { } func dataSourceAccountVinsListRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - accountVinsList, err := utilityAccountVinsListCheckPresence(d, m) + accountVinsList, err := utilityAccountVinsListCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudapi/account/resource_account.go b/internal/service/cloudapi/account/resource_account.go index 14a1222..5aa57f7 100644 --- a/internal/service/cloudapi/account/resource_account.go +++ b/internal/service/cloudapi/account/resource_account.go @@ -50,7 +50,7 @@ func resourceAccountCreate(ctx context.Context, d *schema.ResourceData, m interf log.Debugf("resourceAccountCreate") if accountId, ok := d.GetOk("account_id"); ok { - if exists, err := resourceAccountExists(d, m); exists { + if exists, err := resourceAccountExists(ctx, d, m); exists { if err != nil { return diag.FromErr(err) } @@ -133,7 +133,7 @@ func resourceAccountCreate(ctx context.Context, d *schema.ResourceData, m interf } } - accountId, err := c.DecortAPICall("POST", accountCreateAPI, urlValues) + accountId, err := c.DecortAPICall(ctx, "POST", accountCreateAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -155,7 +155,7 @@ func resourceAccountCreate(ctx context.Context, d *schema.ResourceData, m interf func resourceAccountRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { log.Debugf("resourceAccountRead") - acc, err := utilityAccountCheckPresence(d, m) + acc, err := utilityAccountCheckPresence(ctx, d, m) if acc == nil { d.SetId("") return diag.FromErr(err) @@ -194,7 +194,7 @@ func resourceAccountRead(ctx context.Context, d *schema.ResourceData, m interfac func resourceAccountDelete(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { log.Debugf("resourceAccountDelete") - account, err := utilityAccountCheckPresence(d, m) + account, err := utilityAccountCheckPresence(ctx, d, m) if account == nil { if err != nil { return diag.FromErr(err) @@ -207,7 +207,7 @@ func resourceAccountDelete(ctx context.Context, d *schema.ResourceData, m interf urlValues.Add("accountId", strconv.Itoa(d.Get("account_id").(int))) urlValues.Add("permanently", strconv.FormatBool(d.Get("permanently").(bool))) - _, err = c.DecortAPICall("POST", accountDeleteAPI, urlValues) + _, err = c.DecortAPICall(ctx, "POST", accountDeleteAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -216,10 +216,10 @@ func resourceAccountDelete(ctx context.Context, d *schema.ResourceData, m interf return nil } -func resourceAccountExists(d *schema.ResourceData, m interface{}) (bool, error) { +func resourceAccountExists(ctx context.Context, d *schema.ResourceData, m interface{}) (bool, error) { log.Debugf("resourceAccountExists") - account, err := utilityAccountCheckPresence(d, m) + account, err := utilityAccountCheckPresence(ctx, d, m) if account == nil { if err != nil { return false, err @@ -243,7 +243,7 @@ func resourceAccountEdit(ctx context.Context, d *schema.ResourceData, m interfac } urlValues.Add("accountId", strconv.Itoa(d.Get("account_id").(int))) - _, err := c.DecortAPICall("POST", api, urlValues) + _, err := c.DecortAPICall(ctx, "POST", api, urlValues) if err != nil { return diag.FromErr(err) } @@ -254,7 +254,7 @@ func resourceAccountEdit(ctx context.Context, d *schema.ResourceData, m interfac if d.HasChange("account_name") { urlValues.Add("name", d.Get("account_name").(string)) urlValues.Add("accountId", strconv.Itoa(d.Get("account_id").(int))) - _, err := c.DecortAPICall("POST", accountUpdateAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", accountUpdateAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -318,7 +318,7 @@ func resourceAccountEdit(ctx context.Context, d *schema.ResourceData, m interfac } urlValues.Add("accountId", strconv.Itoa(d.Get("account_id").(int))) - _, err := c.DecortAPICall("POST", accountUpdateAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", accountUpdateAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -329,7 +329,7 @@ func resourceAccountEdit(ctx context.Context, d *schema.ResourceData, m interfac if d.HasChange("send_access_emails") { urlValues.Add("sendAccessEmails", strconv.FormatBool(d.Get("send_access_emails").(bool))) urlValues.Add("accountId", strconv.Itoa(d.Get("account_id").(int))) - _, err := c.DecortAPICall("POST", accountUpdateAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", accountUpdateAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -341,7 +341,7 @@ func resourceAccountEdit(ctx context.Context, d *schema.ResourceData, m interfac restore := d.Get("restore").(bool) if restore { urlValues.Add("accountId", strconv.Itoa(d.Get("account_id").(int))) - _, err := c.DecortAPICall("POST", accountRestoreAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", accountRestoreAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -379,7 +379,7 @@ func resourceAccountEdit(ctx context.Context, d *schema.ResourceData, m interfac urlValues.Add("accountId", strconv.Itoa(d.Get("account_id").(int))) urlValues.Add("userId", userConv["user_id"].(string)) urlValues.Add("recursivedelete", strconv.FormatBool(userConv["recursive_delete"].(bool))) - _, err := c.DecortAPICall("POST", accountDeleteUserAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", accountDeleteUserAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -394,7 +394,7 @@ func resourceAccountEdit(ctx context.Context, d *schema.ResourceData, m interfac urlValues.Add("accountId", strconv.Itoa(d.Get("account_id").(int))) urlValues.Add("userId", userConv["user_id"].(string)) urlValues.Add("accesstype", strings.ToUpper(userConv["access_type"].(string))) - _, err := c.DecortAPICall("POST", accountAddUserAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", accountAddUserAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -409,7 +409,7 @@ func resourceAccountEdit(ctx context.Context, d *schema.ResourceData, m interfac urlValues.Add("accountId", strconv.Itoa(d.Get("account_id").(int))) urlValues.Add("userId", userConv["user_id"].(string)) urlValues.Add("accesstype", strings.ToUpper(userConv["access_type"].(string))) - _, err := c.DecortAPICall("POST", accountUpdateUserAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", accountUpdateUserAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -786,7 +786,6 @@ func ResourceAccount() *schema.Resource { ReadContext: resourceAccountRead, UpdateContext: resourceAccountEdit, DeleteContext: resourceAccountDelete, - Exists: resourceAccountExists, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, diff --git a/internal/service/cloudapi/account/utility_account.go b/internal/service/cloudapi/account/utility_account.go index 5d89df6..092162b 100644 --- a/internal/service/cloudapi/account/utility_account.go +++ b/internal/service/cloudapi/account/utility_account.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package account import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityAccountCheckPresence(d *schema.ResourceData, m interface{}) (*AccountWithResources, error) { +func utilityAccountCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (*AccountWithResources, error) { account := &AccountWithResources{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -54,7 +55,7 @@ func utilityAccountCheckPresence(d *schema.ResourceData, m interface{}) (*Accoun } log.Debugf("utilityAccountCheckPresence: load account") - accountRaw, err := c.DecortAPICall("POST", accountGetAPI, urlValues) + accountRaw, err := c.DecortAPICall(ctx, "POST", accountGetAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/account/utility_account_audits_list.go b/internal/service/cloudapi/account/utility_account_audits_list.go index dc61dc8..c89cedd 100644 --- a/internal/service/cloudapi/account/utility_account_audits_list.go +++ b/internal/service/cloudapi/account/utility_account_audits_list.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package account import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityAccountAuditsListCheckPresence(d *schema.ResourceData, m interface{}) (AccountAuditsList, error) { +func utilityAccountAuditsListCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (AccountAuditsList, error) { accountAuditsList := AccountAuditsList{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -50,7 +51,7 @@ func utilityAccountAuditsListCheckPresence(d *schema.ResourceData, m interface{} urlValues.Add("accountId", strconv.Itoa(d.Get("account_id").(int))) log.Debugf("utilityAccountAuditsListCheckPresence: load account list") - accountAuditsListRaw, err := c.DecortAPICall("POST", accountAuditsAPI, urlValues) + accountAuditsListRaw, err := c.DecortAPICall(ctx, "POST", accountAuditsAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/account/utility_account_computes_list.go b/internal/service/cloudapi/account/utility_account_computes_list.go index 957af49..9b746da 100644 --- a/internal/service/cloudapi/account/utility_account_computes_list.go +++ b/internal/service/cloudapi/account/utility_account_computes_list.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package account import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityAccountComputesListCheckPresence(d *schema.ResourceData, m interface{}) (AccountComputesList, error) { +func utilityAccountComputesListCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (AccountComputesList, error) { accountComputesList := AccountComputesList{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -50,7 +51,7 @@ func utilityAccountComputesListCheckPresence(d *schema.ResourceData, m interface urlValues.Add("accountId", strconv.Itoa(d.Get("account_id").(int))) log.Debugf("utilityAccountComputesListCheckPresence: load account list") - accountComputesListRaw, err := c.DecortAPICall("POST", accountListComputesAPI, urlValues) + accountComputesListRaw, err := c.DecortAPICall(ctx, "POST", accountListComputesAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/account/utility_account_consumed_units.go b/internal/service/cloudapi/account/utility_account_consumed_units.go index 295a4fe..5c610fb 100644 --- a/internal/service/cloudapi/account/utility_account_consumed_units.go +++ b/internal/service/cloudapi/account/utility_account_consumed_units.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package account import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityAccountConsumedUnitsCheckPresence(d *schema.ResourceData, m interface{}) (*ResourceLimits, error) { +func utilityAccountConsumedUnitsCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (*ResourceLimits, error) { accountConsumedUnits := &ResourceLimits{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -50,7 +51,7 @@ func utilityAccountConsumedUnitsCheckPresence(d *schema.ResourceData, m interfac urlValues.Add("accountId", strconv.Itoa(d.Get("account_id").(int))) log.Debugf("utilityAccountConsumedUnitsCheckPresence: load account list") - accountConsumedUnitsRaw, err := c.DecortAPICall("POST", accountGetConsumedUnitsAPI, urlValues) + accountConsumedUnitsRaw, err := c.DecortAPICall(ctx, "POST", accountGetConsumedUnitsAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/account/utility_account_consumed_units_by_type.go b/internal/service/cloudapi/account/utility_account_consumed_units_by_type.go index f102c01..1dc9d6b 100644 --- a/internal/service/cloudapi/account/utility_account_consumed_units_by_type.go +++ b/internal/service/cloudapi/account/utility_account_consumed_units_by_type.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package account import ( + "context" "net/url" "strconv" "strings" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityAccountConsumedUnitsByTypeCheckPresence(d *schema.ResourceData, m interface{}) (float64, error) { +func utilityAccountConsumedUnitsByTypeCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (float64, error) { c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -50,7 +51,7 @@ func utilityAccountConsumedUnitsByTypeCheckPresence(d *schema.ResourceData, m in urlValues.Add("cutype", strings.ToUpper(d.Get("cu_type").(string))) log.Debugf("utilityAccountConsumedUnitsByTypeCheckPresence") - resultRaw, err := c.DecortAPICall("POST", accountGetConsumedUnitsByTypeAPI, urlValues) + resultRaw, err := c.DecortAPICall(ctx, "POST", accountGetConsumedUnitsByTypeAPI, urlValues) if err != nil { return 0, err } diff --git a/internal/service/cloudapi/account/utility_account_deleted_list.go b/internal/service/cloudapi/account/utility_account_deleted_list.go index 2395001..f9a8b50 100644 --- a/internal/service/cloudapi/account/utility_account_deleted_list.go +++ b/internal/service/cloudapi/account/utility_account_deleted_list.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package account import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityAccountDeletedListCheckPresence(d *schema.ResourceData, m interface{}) (AccountCloudApiList, error) { +func utilityAccountDeletedListCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (AccountCloudApiList, error) { accountDeletedList := AccountCloudApiList{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -55,7 +56,7 @@ func utilityAccountDeletedListCheckPresence(d *schema.ResourceData, m interface{ } log.Debugf("utilityAccountDeletedListCheckPresence: load") - accountDeletedListRaw, err := c.DecortAPICall("POST", accountListDeletedAPI, urlValues) + accountDeletedListRaw, err := c.DecortAPICall(ctx, "POST", accountListDeletedAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/account/utility_account_disks_list.go b/internal/service/cloudapi/account/utility_account_disks_list.go index 4c0dbd3..7cea8a2 100644 --- a/internal/service/cloudapi/account/utility_account_disks_list.go +++ b/internal/service/cloudapi/account/utility_account_disks_list.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package account import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityAccountDisksListCheckPresence(d *schema.ResourceData, m interface{}) (AccountDisksList, error) { +func utilityAccountDisksListCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (AccountDisksList, error) { accountDisksList := AccountDisksList{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -50,7 +51,7 @@ func utilityAccountDisksListCheckPresence(d *schema.ResourceData, m interface{}) urlValues.Add("accountId", strconv.Itoa(d.Get("account_id").(int))) log.Debugf("utilityAccountDisksListCheckPresence: load account list") - accountDisksListRaw, err := c.DecortAPICall("POST", accountListDisksAPI, urlValues) + accountDisksListRaw, err := c.DecortAPICall(ctx, "POST", accountListDisksAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/account/utility_account_flip_groups.go b/internal/service/cloudapi/account/utility_account_flip_groups.go index d2862b5..1585f6b 100644 --- a/internal/service/cloudapi/account/utility_account_flip_groups.go +++ b/internal/service/cloudapi/account/utility_account_flip_groups.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package account import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityAccountFlipGroupsListCheckPresence(d *schema.ResourceData, m interface{}) (AccountFlipGroupsList, error) { +func utilityAccountFlipGroupsListCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (AccountFlipGroupsList, error) { accountFlipGroupsList := AccountFlipGroupsList{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -50,7 +51,7 @@ func utilityAccountFlipGroupsListCheckPresence(d *schema.ResourceData, m interfa urlValues.Add("accountId", strconv.Itoa(d.Get("account_id").(int))) log.Debugf("utilityAccountFlipGroupsListCheckPresence") - accountFlipGroupsListRaw, err := c.DecortAPICall("POST", accountListFlipGroupsAPI, urlValues) + accountFlipGroupsListRaw, err := c.DecortAPICall(ctx, "POST", accountListFlipGroupsAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/account/utility_account_list.go b/internal/service/cloudapi/account/utility_account_list.go index 3d814ff..2eb7d36 100644 --- a/internal/service/cloudapi/account/utility_account_list.go +++ b/internal/service/cloudapi/account/utility_account_list.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package account import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityAccountListCheckPresence(d *schema.ResourceData, m interface{}) (AccountCloudApiList, error) { +func utilityAccountListCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (AccountCloudApiList, error) { accountList := AccountCloudApiList{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -55,7 +56,7 @@ func utilityAccountListCheckPresence(d *schema.ResourceData, m interface{}) (Acc } log.Debugf("utilityAccountListCheckPresence: load account list") - accountListRaw, err := c.DecortAPICall("POST", accountListAPI, urlValues) + accountListRaw, err := c.DecortAPICall(ctx, "POST", accountListAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/account/utility_account_reserved_units.go b/internal/service/cloudapi/account/utility_account_reserved_units.go index 599964c..5474a12 100644 --- a/internal/service/cloudapi/account/utility_account_reserved_units.go +++ b/internal/service/cloudapi/account/utility_account_reserved_units.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package account import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityAccountReservedUnitsCheckPresence(d *schema.ResourceData, m interface{}) (*ResourceLimits, error) { +func utilityAccountReservedUnitsCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (*ResourceLimits, error) { accountReservedUnits := &ResourceLimits{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -50,7 +51,7 @@ func utilityAccountReservedUnitsCheckPresence(d *schema.ResourceData, m interfac urlValues.Add("accountId", strconv.Itoa(d.Get("account_id").(int))) log.Debugf("utilityAccountReservedUnitsCheckPresence: load units") - accountReservedUnitsRaw, err := c.DecortAPICall("POST", accountGetReservedUnitsAPI, urlValues) + accountReservedUnitsRaw, err := c.DecortAPICall(ctx, "POST", accountGetReservedUnitsAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/account/utility_account_rg_list.go b/internal/service/cloudapi/account/utility_account_rg_list.go index 266ba1c..41c1a76 100644 --- a/internal/service/cloudapi/account/utility_account_rg_list.go +++ b/internal/service/cloudapi/account/utility_account_rg_list.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package account import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityAccountRGListCheckPresence(d *schema.ResourceData, m interface{}) (AccountRGList, error) { +func utilityAccountRGListCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (AccountRGList, error) { accountRGList := AccountRGList{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -50,7 +51,7 @@ func utilityAccountRGListCheckPresence(d *schema.ResourceData, m interface{}) (A urlValues.Add("accountId", strconv.Itoa(d.Get("account_id").(int))) log.Debugf("utilityAccountRGListCheckPresence: load account list") - accountRGListRaw, err := c.DecortAPICall("POST", accountListRGAPI, urlValues) + accountRGListRaw, err := c.DecortAPICall(ctx, "POST", accountListRGAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/account/utility_account_templates_list.go b/internal/service/cloudapi/account/utility_account_templates_list.go index 76f9930..47c13db 100644 --- a/internal/service/cloudapi/account/utility_account_templates_list.go +++ b/internal/service/cloudapi/account/utility_account_templates_list.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package account import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityAccountTemplatesListCheckPresence(d *schema.ResourceData, m interface{}) (AccountTemplatesList, error) { +func utilityAccountTemplatesListCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (AccountTemplatesList, error) { accountTemplatesList := AccountTemplatesList{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -50,7 +51,7 @@ func utilityAccountTemplatesListCheckPresence(d *schema.ResourceData, m interfac urlValues.Add("accountId", strconv.Itoa(d.Get("account_id").(int))) log.Debugf("utilityAccountTemplatesListCheckPresence: load") - accountTemplatesListRaw, err := c.DecortAPICall("POST", accountListTemplatesAPI, urlValues) + accountTemplatesListRaw, err := c.DecortAPICall(ctx, "POST", accountListTemplatesAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/account/utility_account_vins_list.go b/internal/service/cloudapi/account/utility_account_vins_list.go index 72fc5d6..db2e931 100644 --- a/internal/service/cloudapi/account/utility_account_vins_list.go +++ b/internal/service/cloudapi/account/utility_account_vins_list.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package account import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityAccountVinsListCheckPresence(d *schema.ResourceData, m interface{}) (AccountVinsList, error) { +func utilityAccountVinsListCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (AccountVinsList, error) { accountVinsList := AccountVinsList{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -50,7 +51,7 @@ func utilityAccountVinsListCheckPresence(d *schema.ResourceData, m interface{}) urlValues.Add("accountId", strconv.Itoa(d.Get("account_id").(int))) log.Debugf("utilityAccountVinsListCheckPresence: load account list") - accountVinsListRaw, err := c.DecortAPICall("POST", accountListVinsAPI, urlValues) + accountVinsListRaw, err := c.DecortAPICall(ctx, "POST", accountListVinsAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/bservice/data_source_bservice.go b/internal/service/cloudapi/bservice/data_source_bservice.go index ef1fc17..513e0b9 100644 --- a/internal/service/cloudapi/bservice/data_source_bservice.go +++ b/internal/service/cloudapi/bservice/data_source_bservice.go @@ -41,7 +41,7 @@ import ( ) func dataSourceBasicServiceRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - bs, err := utilityBasicServiceCheckPresence(d, m) + bs, err := utilityBasicServiceCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudapi/bservice/data_source_bservice_deleted_list.go b/internal/service/cloudapi/bservice/data_source_bservice_deleted_list.go index 4341c43..9be56bf 100644 --- a/internal/service/cloudapi/bservice/data_source_bservice_deleted_list.go +++ b/internal/service/cloudapi/bservice/data_source_bservice_deleted_list.go @@ -41,7 +41,7 @@ import ( ) func dataSourceBasicServiceDeletedListRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - basicServiceDeletedList, err := utilityBasicServiceDeletedListCheckPresence(d, m) + basicServiceDeletedList, err := utilityBasicServiceDeletedListCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudapi/bservice/data_source_bservice_group.go b/internal/service/cloudapi/bservice/data_source_bservice_group.go index f333d1c..eaac251 100644 --- a/internal/service/cloudapi/bservice/data_source_bservice_group.go +++ b/internal/service/cloudapi/bservice/data_source_bservice_group.go @@ -41,7 +41,7 @@ import ( ) func dataSourceBasicServiceGroupRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - bsg, err := utilityBasicServiceGroupCheckPresence(d, m) + bsg, err := utilityBasicServiceGroupCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudapi/bservice/data_source_bservice_list.go b/internal/service/cloudapi/bservice/data_source_bservice_list.go index d3b2e43..0a367a7 100644 --- a/internal/service/cloudapi/bservice/data_source_bservice_list.go +++ b/internal/service/cloudapi/bservice/data_source_bservice_list.go @@ -73,7 +73,7 @@ func flattenBasicServiceList(bsl BasicServiceList) []map[string]interface{} { } func dataSourceBasicServiceListRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - basicServiceList, err := utilityBasicServiceListCheckPresence(d, m) + basicServiceList, err := utilityBasicServiceListCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudapi/bservice/data_source_bservice_snapshot_list.go b/internal/service/cloudapi/bservice/data_source_bservice_snapshot_list.go index 93fe820..ab601e2 100644 --- a/internal/service/cloudapi/bservice/data_source_bservice_snapshot_list.go +++ b/internal/service/cloudapi/bservice/data_source_bservice_snapshot_list.go @@ -41,7 +41,7 @@ import ( ) func dataSourceBasicServiceSnapshotListRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - basicServiceSnapshotList, err := utilityBasicServiceSnapshotListCheckPresence(d, m) + basicServiceSnapshotList, err := utilityBasicServiceSnapshotListCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudapi/bservice/resource_bservice.go b/internal/service/cloudapi/bservice/resource_bservice.go index 7456728..9ce62e4 100644 --- a/internal/service/cloudapi/bservice/resource_bservice.go +++ b/internal/service/cloudapi/bservice/resource_bservice.go @@ -48,7 +48,7 @@ func resourceBasicServiceCreate(ctx context.Context, d *schema.ResourceData, m i log.Debugf("resourceBasicServiceCreate") if serviceId, ok := d.GetOk("service_id"); ok { - if exists, err := resourceBasicServiceExists(d, m); exists { + if exists, err := resourceBasicServiceExists(ctx, d, m); exists { if err != nil { return diag.FromErr(err) } @@ -78,7 +78,7 @@ func resourceBasicServiceCreate(ctx context.Context, d *schema.ResourceData, m i urlValues.Add("sshUser", sshUser.(string)) } - serviceId, err := c.DecortAPICall("POST", bserviceCreateAPI, urlValues) + serviceId, err := c.DecortAPICall(ctx, "POST", bserviceCreateAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -100,7 +100,7 @@ func resourceBasicServiceCreate(ctx context.Context, d *schema.ResourceData, m i func resourceBasicServiceRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { log.Debugf("resourceBasicServiceRead") - bs, err := utilityBasicServiceCheckPresence(d, m) + bs, err := utilityBasicServiceCheckPresence(ctx, d, m) if bs == nil { d.SetId("") return diag.FromErr(err) @@ -143,7 +143,7 @@ func resourceBasicServiceRead(ctx context.Context, d *schema.ResourceData, m int func resourceBasicServiceDelete(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { log.Debugf("resourceBasicServiceDelete") - bs, err := utilityBasicServiceCheckPresence(d, m) + bs, err := utilityBasicServiceCheckPresence(ctx, d, m) if bs == nil { if err != nil { return diag.FromErr(err) @@ -156,7 +156,7 @@ func resourceBasicServiceDelete(ctx context.Context, d *schema.ResourceData, m i urlValues.Add("serviceId", strconv.Itoa(d.Get("service_id").(int))) urlValues.Add("permanently", strconv.FormatBool(d.Get("permanently").(bool))) - _, err = c.DecortAPICall("POST", bserviceDeleteAPI, urlValues) + _, err = c.DecortAPICall(ctx, "POST", bserviceDeleteAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -165,10 +165,10 @@ func resourceBasicServiceDelete(ctx context.Context, d *schema.ResourceData, m i return nil } -func resourceBasicServiceExists(d *schema.ResourceData, m interface{}) (bool, error) { +func resourceBasicServiceExists(ctx context.Context, d *schema.ResourceData, m interface{}) (bool, error) { log.Debugf("resourceBasicServiceExists") - bservice, err := utilityBasicServiceCheckPresence(d, m) + bservice, err := utilityBasicServiceCheckPresence(ctx, d, m) if bservice == nil { if err != nil { return false, err @@ -192,7 +192,7 @@ func resourceBasicServiceEdit(ctx context.Context, d *schema.ResourceData, m int } urlValues.Add("serviceId", strconv.Itoa(d.Get("service_id").(int))) - _, err := c.DecortAPICall("POST", api, urlValues) + _, err := c.DecortAPICall(ctx, "POST", api, urlValues) if err != nil { return diag.FromErr(err) } @@ -204,7 +204,7 @@ func resourceBasicServiceEdit(ctx context.Context, d *schema.ResourceData, m int restore := d.Get("restore").(bool) if restore { urlValues.Add("serviceId", strconv.Itoa(d.Get("service_id").(int))) - _, err := c.DecortAPICall("POST", bserviceRestoreAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", bserviceRestoreAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -221,7 +221,7 @@ func resourceBasicServiceEdit(ctx context.Context, d *schema.ResourceData, m int } urlValues.Add("serviceId", strconv.Itoa(d.Get("service_id").(int))) - _, err := c.DecortAPICall("POST", api, urlValues) + _, err := c.DecortAPICall(ctx, "POST", api, urlValues) if err != nil { return diag.FromErr(err) } @@ -257,7 +257,7 @@ func resourceBasicServiceEdit(ctx context.Context, d *schema.ResourceData, m int snapshotConv := snapshot.(map[string]interface{}) urlValues.Add("serviceId", strconv.Itoa(d.Get("service_id").(int))) urlValues.Add("label", snapshotConv["label"].(string)) - _, err := c.DecortAPICall("POST", bserviceSnapshotDeleteAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", bserviceSnapshotDeleteAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -271,7 +271,7 @@ func resourceBasicServiceEdit(ctx context.Context, d *schema.ResourceData, m int snapshotConv := snapshot.(map[string]interface{}) urlValues.Add("serviceId", strconv.Itoa(d.Get("service_id").(int))) urlValues.Add("label", snapshotConv["label"].(string)) - _, err := c.DecortAPICall("POST", bserviceSnapshotCreateAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", bserviceSnapshotCreateAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -285,7 +285,7 @@ func resourceBasicServiceEdit(ctx context.Context, d *schema.ResourceData, m int snapshotConv := snapshot.(map[string]interface{}) urlValues.Add("serviceId", strconv.Itoa(d.Get("service_id").(int))) urlValues.Add("label", snapshotConv["label"].(string)) - _, err := c.DecortAPICall("POST", bserviceSnapshotRollbackAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", bserviceSnapshotRollbackAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -545,7 +545,6 @@ func ResourceBasicService() *schema.Resource { ReadContext: resourceBasicServiceRead, UpdateContext: resourceBasicServiceEdit, DeleteContext: resourceBasicServiceDelete, - Exists: resourceBasicServiceExists, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, diff --git a/internal/service/cloudapi/bservice/resource_bservice_group.go b/internal/service/cloudapi/bservice/resource_bservice_group.go index aa2d5a3..47271c8 100644 --- a/internal/service/cloudapi/bservice/resource_bservice_group.go +++ b/internal/service/cloudapi/bservice/resource_bservice_group.go @@ -51,7 +51,7 @@ func resourceBasicServiceGroupCreate(ctx context.Context, d *schema.ResourceData if compgroupId, ok := d.GetOk("compgroup_id"); ok { if _, ok := d.GetOk("service_id"); ok { - if exists, err := resourceBasicServiceGroupExists(d, m); exists { + if exists, err := resourceBasicServiceGroupExists(ctx, d, m); exists { if err != nil { return diag.FromErr(err) } @@ -119,7 +119,7 @@ func resourceBasicServiceGroupCreate(ctx context.Context, d *schema.ResourceData urlValues.Add("extnets", temp) } - compgroupId, err := c.DecortAPICall("POST", bserviceGroupAddAPI, urlValues) + compgroupId, err := c.DecortAPICall(ctx, "POST", bserviceGroupAddAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -141,7 +141,7 @@ func resourceBasicServiceGroupCreate(ctx context.Context, d *schema.ResourceData func resourceBasicServiceGroupRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { log.Debugf("resourceBasicServiceGroupRead") - bsg, err := utilityBasicServiceGroupCheckPresence(d, m) + bsg, err := utilityBasicServiceGroupCheckPresence(ctx, d, m) if bsg == nil { d.SetId("") return diag.FromErr(err) @@ -185,7 +185,7 @@ func resourceBasicServiceGroupRead(ctx context.Context, d *schema.ResourceData, func resourceBasicServiceGroupDelete(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { log.Debugf("resourceBasicServiceGroupDelete") - bsg, err := utilityBasicServiceGroupCheckPresence(d, m) + bsg, err := utilityBasicServiceGroupCheckPresence(ctx, d, m) if bsg == nil { if err != nil { return diag.FromErr(err) @@ -198,7 +198,7 @@ func resourceBasicServiceGroupDelete(ctx context.Context, d *schema.ResourceData urlValues.Add("serviceId", strconv.Itoa(d.Get("service_id").(int))) urlValues.Add("compgroupId", strconv.Itoa(d.Get("compgroup_id").(int))) - _, err = c.DecortAPICall("POST", bserviceGroupRemoveAPI, urlValues) + _, err = c.DecortAPICall(ctx, "POST", bserviceGroupRemoveAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -207,10 +207,10 @@ func resourceBasicServiceGroupDelete(ctx context.Context, d *schema.ResourceData return nil } -func resourceBasicServiceGroupExists(d *schema.ResourceData, m interface{}) (bool, error) { +func resourceBasicServiceGroupExists(ctx context.Context, d *schema.ResourceData, m interface{}) (bool, error) { log.Debugf("resourceBasicServiceGroupExists") - bserviceGroup, err := utilityBasicServiceGroupCheckPresence(d, m) + bserviceGroup, err := utilityBasicServiceGroupCheckPresence(ctx, d, m) if bserviceGroup == nil { if err != nil { return false, err @@ -232,7 +232,7 @@ func resourceBasicServiceGroupEdit(ctx context.Context, d *schema.ResourceData, urlValues.Add("compgroupId", strconv.Itoa(d.Get("compgroup_id").(int))) urlValues.Add("count", strconv.Itoa(d.Get("comp_count").(int))) urlValues.Add("mode", strings.ToUpper(d.Get("mode").(string))) - _, err := c.DecortAPICall("POST", bserviceGroupResizeAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", bserviceGroupResizeAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -251,7 +251,7 @@ func resourceBasicServiceGroupEdit(ctx context.Context, d *schema.ResourceData, urlValues.Add("serviceId", strconv.Itoa(d.Get("service_id").(int))) urlValues.Add("compgroupId", strconv.Itoa(d.Get("compgroup_id").(int))) - _, err := c.DecortAPICall("POST", api, urlValues) + _, err := c.DecortAPICall(ctx, "POST", api, urlValues) if err != nil { return diag.FromErr(err) } @@ -270,7 +270,7 @@ func resourceBasicServiceGroupEdit(ctx context.Context, d *schema.ResourceData, urlValues.Add("serviceId", strconv.Itoa(d.Get("service_id").(int))) urlValues.Add("compgroupId", strconv.Itoa(d.Get("compgroup_id").(int))) - _, err := c.DecortAPICall("POST", bserviceGroupUpdateAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", bserviceGroupUpdateAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -296,7 +296,7 @@ func resourceBasicServiceGroupEdit(ctx context.Context, d *schema.ResourceData, urlValues.Add("serviceId", strconv.Itoa(d.Get("service_id").(int))) urlValues.Add("compgroupId", strconv.Itoa(d.Get("compgroup_id").(int))) urlValues.Add("extnets", temp) - _, err := c.DecortAPICall("POST", bserviceGroupUpdateExtnetAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", bserviceGroupUpdateExtnetAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -322,7 +322,7 @@ func resourceBasicServiceGroupEdit(ctx context.Context, d *schema.ResourceData, urlValues.Add("serviceId", strconv.Itoa(d.Get("service_id").(int))) urlValues.Add("compgroupId", strconv.Itoa(d.Get("compgroup_id").(int))) urlValues.Add("vinses", temp) - _, err := c.DecortAPICall("POST", bserviceGroupUpdateVinsAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", bserviceGroupUpdateVinsAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -356,7 +356,7 @@ func resourceBasicServiceGroupEdit(ctx context.Context, d *schema.ResourceData, urlValues.Add("compgroupId", strconv.Itoa(d.Get("compgroup_id").(int))) urlValues.Add("parentId", strconv.Itoa(parentConv)) - _, err := c.DecortAPICall("POST", bserviceGroupParentRemoveAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", bserviceGroupParentRemoveAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -371,7 +371,7 @@ func resourceBasicServiceGroupEdit(ctx context.Context, d *schema.ResourceData, urlValues.Add("serviceId", strconv.Itoa(d.Get("service_id").(int))) urlValues.Add("compgroupId", strconv.Itoa(d.Get("compgroup_id").(int))) urlValues.Add("parentId", strconv.Itoa(parentConv)) - _, err := c.DecortAPICall("POST", bserviceGroupParentAddAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", bserviceGroupParentAddAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -389,7 +389,7 @@ func resourceBasicServiceGroupEdit(ctx context.Context, d *schema.ResourceData, urlValues.Add("compgroupId", strconv.Itoa(d.Get("compgroup_id").(int))) urlValues.Add("computeId", strconv.Itoa(rc.(int))) - _, err := c.DecortAPICall("POST", bserviceGroupComputeRemoveAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", bserviceGroupComputeRemoveAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -652,7 +652,6 @@ func ResourceBasicServiceGroup() *schema.Resource { ReadContext: resourceBasicServiceGroupRead, UpdateContext: resourceBasicServiceGroupEdit, DeleteContext: resourceBasicServiceGroupDelete, - Exists: resourceBasicServiceGroupExists, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, diff --git a/internal/service/cloudapi/bservice/utility_bservicce_deleted_list.go b/internal/service/cloudapi/bservice/utility_bservicce_deleted_list.go index 29d1b7f..114bda1 100644 --- a/internal/service/cloudapi/bservice/utility_bservicce_deleted_list.go +++ b/internal/service/cloudapi/bservice/utility_bservicce_deleted_list.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package bservice import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityBasicServiceDeletedListCheckPresence(d *schema.ResourceData, m interface{}) (BasicServiceList, error) { +func utilityBasicServiceDeletedListCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (BasicServiceList, error) { basicServiceDeletedList := BasicServiceList{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -61,7 +62,7 @@ func utilityBasicServiceDeletedListCheckPresence(d *schema.ResourceData, m inter } log.Debugf("utilityBasicServiceDeletedListCheckPresence") - basicServiceDeletedListRaw, err := c.DecortAPICall("POST", bserviceListDeletedAPI, urlValues) + basicServiceDeletedListRaw, err := c.DecortAPICall(ctx, "POST", bserviceListDeletedAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/bservice/utility_bservice.go b/internal/service/cloudapi/bservice/utility_bservice.go index 57ff329..d2fc168 100644 --- a/internal/service/cloudapi/bservice/utility_bservice.go +++ b/internal/service/cloudapi/bservice/utility_bservice.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package bservice import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityBasicServiceCheckPresence(d *schema.ResourceData, m interface{}) (*BasicServiceExtend, error) { +func utilityBasicServiceCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (*BasicServiceExtend, error) { bservice := &BasicServiceExtend{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -54,7 +55,7 @@ func utilityBasicServiceCheckPresence(d *schema.ResourceData, m interface{}) (*B } log.Debugf("utilityBasicServiceCheckPresence") - bserviceRaw, err := c.DecortAPICall("POST", bserviceGetAPI, urlValues) + bserviceRaw, err := c.DecortAPICall(ctx, "POST", bserviceGetAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/bservice/utility_bservice_group.go b/internal/service/cloudapi/bservice/utility_bservice_group.go index b91d2a7..613258c 100644 --- a/internal/service/cloudapi/bservice/utility_bservice_group.go +++ b/internal/service/cloudapi/bservice/utility_bservice_group.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package bservice import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityBasicServiceGroupCheckPresence(d *schema.ResourceData, m interface{}) (*BasicServiceGroup, error) { +func utilityBasicServiceGroupCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (*BasicServiceGroup, error) { bserviceGroup := &BasicServiceGroup{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -55,7 +56,7 @@ func utilityBasicServiceGroupCheckPresence(d *schema.ResourceData, m interface{} } log.Debugf("utilityBasicServiceGroupCheckPresence") - bserviceGroupRaw, err := c.DecortAPICall("POST", bserviceGroupGetAPI, urlValues) + bserviceGroupRaw, err := c.DecortAPICall(ctx, "POST", bserviceGroupGetAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/bservice/utility_bservice_list.go b/internal/service/cloudapi/bservice/utility_bservice_list.go index 73ec82d..f828fa3 100644 --- a/internal/service/cloudapi/bservice/utility_bservice_list.go +++ b/internal/service/cloudapi/bservice/utility_bservice_list.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package bservice import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityBasicServiceListCheckPresence(d *schema.ResourceData, m interface{}) (BasicServiceList, error) { +func utilityBasicServiceListCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (BasicServiceList, error) { basicServiceList := BasicServiceList{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -61,7 +62,7 @@ func utilityBasicServiceListCheckPresence(d *schema.ResourceData, m interface{}) } log.Debugf("utilityBasicServiceListCheckPresence") - basicServiceListRaw, err := c.DecortAPICall("POST", bserviceListAPI, urlValues) + basicServiceListRaw, err := c.DecortAPICall(ctx, "POST", bserviceListAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/bservice/utility_bservice_snapshot_list.go b/internal/service/cloudapi/bservice/utility_bservice_snapshot_list.go index 3bacdbe..4b7c983 100644 --- a/internal/service/cloudapi/bservice/utility_bservice_snapshot_list.go +++ b/internal/service/cloudapi/bservice/utility_bservice_snapshot_list.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package bservice import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityBasicServiceSnapshotListCheckPresence(d *schema.ResourceData, m interface{}) (BasicServiceSnapshots, error) { +func utilityBasicServiceSnapshotListCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (BasicServiceSnapshots, error) { basicServiceSnapshotList := BasicServiceSnapshots{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -52,7 +53,7 @@ func utilityBasicServiceSnapshotListCheckPresence(d *schema.ResourceData, m inte } log.Debugf("utilityBasicServiceSnapshotListCheckPresence") - basicServiceSnapshotListRaw, err := c.DecortAPICall("POST", bserviceSnapshotListAPI, urlValues) + basicServiceSnapshotListRaw, err := c.DecortAPICall(ctx, "POST", bserviceSnapshotListAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/disks/data_source_disk.go b/internal/service/cloudapi/disks/data_source_disk.go index acaeb0a..46b8cdd 100644 --- a/internal/service/cloudapi/disks/data_source_disk.go +++ b/internal/service/cloudapi/disks/data_source_disk.go @@ -82,7 +82,7 @@ func flattenDisk(d *schema.ResourceData, disk_facts string) error { } func dataSourceDiskRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - disk_facts, err := utilityDiskCheckPresence(d, m) + disk_facts, err := utilityDiskCheckPresence(ctx, d, m) if disk_facts == "" { // if empty string is returned from utilityDiskCheckPresence then there is no // such Disk and err tells so - just return it to the calling party diff --git a/internal/service/cloudapi/disks/data_source_disk_list.go b/internal/service/cloudapi/disks/data_source_disk_list.go index 86914ef..dc73729 100644 --- a/internal/service/cloudapi/disks/data_source_disk_list.go +++ b/internal/service/cloudapi/disks/data_source_disk_list.go @@ -120,7 +120,7 @@ func flattendDiskSnapshotList(sl SnapshotRecordList) []interface{} { } func dataSourceDiskListRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - diskList, err := utilityDiskListCheckPresence(d, m) + diskList, err := utilityDiskListCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudapi/disks/resource_disk.go b/internal/service/cloudapi/disks/resource_disk.go index b29f199..1fe2b4a 100644 --- a/internal/service/cloudapi/disks/resource_disk.go +++ b/internal/service/cloudapi/disks/resource_disk.go @@ -73,7 +73,7 @@ func resourceDiskCreate(ctx context.Context, d *schema.ResourceData, m interface urlValues.Add("description", argVal.(string)) } - apiResp, err := c.DecortAPICall("POST", DisksCreateAPI, urlValues) + apiResp, err := c.DecortAPICall(ctx, "POST", DisksCreateAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -91,7 +91,7 @@ func resourceDiskCreate(ctx context.Context, d *schema.ResourceData, m interface } func resourceDiskRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - diskFacts, err := utilityDiskCheckPresence(d, m) + diskFacts, err := utilityDiskCheckPresence(ctx, d, m) if diskFacts == "" { // if empty string is returned from utilityDiskCheckPresence then there is no // such Disk and err tells so - just return it to the calling party @@ -121,7 +121,7 @@ func resourceDiskUpdate(ctx context.Context, d *schema.ResourceData, m interface sizeParams := &url.Values{} sizeParams.Add("diskId", d.Id()) sizeParams.Add("size", fmt.Sprintf("%d", newSize.(int))) - _, err := c.DecortAPICall("POST", DisksResizeAPI, sizeParams) + _, err := c.DecortAPICall(ctx, "POST", DisksResizeAPI, sizeParams) if err != nil { return diag.FromErr(err) } @@ -137,7 +137,7 @@ func resourceDiskUpdate(ctx context.Context, d *schema.ResourceData, m interface renameParams := &url.Values{} renameParams.Add("diskId", d.Id()) renameParams.Add("name", newName.(string)) - _, err := c.DecortAPICall("POST", DisksRenameAPI, renameParams) + _, err := c.DecortAPICall(ctx, "POST", DisksRenameAPI, renameParams) if err != nil { return diag.FromErr(err) } @@ -165,7 +165,7 @@ func resourceDiskDelete(ctx context.Context, d *schema.ResourceData, m interface log.Debugf("resourceDiskDelete: called for Disk ID / name %d / %s, Account ID %d", d.Get("disk_id").(int), d.Get("name").(string), d.Get("account_id").(int)) - diskFacts, err := utilityDiskCheckPresence(d, m) + diskFacts, err := utilityDiskCheckPresence(ctx, d, m) if diskFacts == "" { if err != nil { return diag.FromErr(err) @@ -187,7 +187,7 @@ func resourceDiskDelete(ctx context.Context, d *schema.ResourceData, m interface params.Add("permanently", "1") c := m.(*controller.ControllerCfg) - _, err = c.DecortAPICall("POST", DisksDeleteAPI, params) + _, err = c.DecortAPICall(ctx, "POST", DisksDeleteAPI, params) if err != nil { return diag.FromErr(err) } @@ -195,12 +195,12 @@ func resourceDiskDelete(ctx context.Context, d *schema.ResourceData, m interface return nil } -func resourceDiskExists(d *schema.ResourceData, m interface{}) (bool, error) { +func resourceDiskExists(ctx context.Context, d *schema.ResourceData, m interface{}) (bool, error) { // Reminder: according to Terraform rules, this function should not modify its ResourceData argument log.Debugf("resourceDiskExists: called for Disk ID / name %d / %s, Account ID %d", d.Get("disk_id").(int), d.Get("name").(string), d.Get("account_id").(int)) - diskFacts, err := utilityDiskCheckPresence(d, m) + diskFacts, err := utilityDiskCheckPresence(ctx, d, m) if diskFacts == "" { if err != nil { return false, err @@ -320,7 +320,6 @@ func ResourceDisk() *schema.Resource { ReadContext: resourceDiskRead, UpdateContext: resourceDiskUpdate, DeleteContext: resourceDiskDelete, - Exists: resourceDiskExists, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, diff --git a/internal/service/cloudapi/disks/utility_disk.go b/internal/service/cloudapi/disks/utility_disk.go index a76edf0..73053a8 100644 --- a/internal/service/cloudapi/disks/utility_disk.go +++ b/internal/service/cloudapi/disks/utility_disk.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package disks import ( + "context" "encoding/json" "fmt" "net/url" @@ -43,7 +44,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityDiskCheckPresence(d *schema.ResourceData, m interface{}) (string, error) { +func utilityDiskCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (string, error) { // This function tries to locate Disk by one of the following algorithms depending on // the parameters passed: // - if disk ID is specified -> by disk ID @@ -81,7 +82,7 @@ func utilityDiskCheckPresence(d *schema.ResourceData, m interface{}) (string, er // disk ID is specified, try to get disk instance straight by this ID log.Debugf("utilityDiskCheckPresence: locating disk by its ID %d", theId) urlValues.Add("diskId", fmt.Sprintf("%d", theId)) - diskFacts, err := c.DecortAPICall("POST", DisksGetAPI, urlValues) + diskFacts, err := c.DecortAPICall(ctx, "POST", DisksGetAPI, urlValues) if err != nil { return "", err } @@ -100,7 +101,7 @@ func utilityDiskCheckPresence(d *schema.ResourceData, m interface{}) (string, er // obtain Account ID by account name - it should not be zero on success urlValues.Add("accountId", fmt.Sprintf("%d", d.Get("account_id").(int))) - diskFacts, err := c.DecortAPICall("POST", DisksListAPI, urlValues) + diskFacts, err := c.DecortAPICall(ctx, "POST", DisksListAPI, urlValues) if err != nil { return "", err } diff --git a/internal/service/cloudapi/disks/utility_disk_list.go b/internal/service/cloudapi/disks/utility_disk_list.go index 9100172..50d3cf4 100644 --- a/internal/service/cloudapi/disks/utility_disk_list.go +++ b/internal/service/cloudapi/disks/utility_disk_list.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package disks import ( + "context" "encoding/json" "net/url" "strconv" @@ -43,7 +44,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityDiskListCheckPresence(d *schema.ResourceData, m interface{}) (DisksListResp, error) { +func utilityDiskListCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (DisksListResp, error) { diskList := DisksListResp{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -62,7 +63,7 @@ func utilityDiskListCheckPresence(d *schema.ResourceData, m interface{}) (DisksL } log.Debugf("utilityDiskListCheckPresence: load grid list") - diskListRaw, err := c.DecortAPICall("POST", DisksListAPI, urlValues) + diskListRaw, err := c.DecortAPICall(ctx, "POST", DisksListAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/extnet/data_source_extnet.go b/internal/service/cloudapi/extnet/data_source_extnet.go index ec16727..9744b3c 100644 --- a/internal/service/cloudapi/extnet/data_source_extnet.go +++ b/internal/service/cloudapi/extnet/data_source_extnet.go @@ -42,7 +42,7 @@ import ( ) func dataSourceExtnetRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - e, err := utilityExtnetCheckPresence(d, m) + e, err := utilityExtnetCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudapi/extnet/data_source_extnet_computes_list.go b/internal/service/cloudapi/extnet/data_source_extnet_computes_list.go index 521f2a7..2ab06e4 100644 --- a/internal/service/cloudapi/extnet/data_source_extnet_computes_list.go +++ b/internal/service/cloudapi/extnet/data_source_extnet_computes_list.go @@ -72,7 +72,7 @@ func flattenExtnetComputesList(ecl ExtnetComputesList) []map[string]interface{} } func dataSourceExtnetComputesListRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - extnetComputesList, err := utilityExtnetComputesListCheckPresence(d, m) + extnetComputesList, err := utilityExtnetComputesListCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudapi/extnet/data_source_extnet_default.go b/internal/service/cloudapi/extnet/data_source_extnet_default.go index bf14365..22463eb 100644 --- a/internal/service/cloudapi/extnet/data_source_extnet_default.go +++ b/internal/service/cloudapi/extnet/data_source_extnet_default.go @@ -42,7 +42,7 @@ import ( ) func dataSourceExtnetDefaultRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - extnetId, err := utilityExtnetDefaultCheckPresence(d, m) + extnetId, err := utilityExtnetDefaultCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudapi/extnet/data_source_extnet_list.go b/internal/service/cloudapi/extnet/data_source_extnet_list.go index 4d88625..1984b13 100644 --- a/internal/service/cloudapi/extnet/data_source_extnet_list.go +++ b/internal/service/cloudapi/extnet/data_source_extnet_list.go @@ -54,7 +54,7 @@ func flattenExtnetList(el ExtnetList) []map[string]interface{} { } func dataSourceExtnetListRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - extnetList, err := utilityExtnetListCheckPresence(d, m) + extnetList, err := utilityExtnetListCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudapi/extnet/utility_extnet.go b/internal/service/cloudapi/extnet/utility_extnet.go index 037dcf9..b3c05d4 100644 --- a/internal/service/cloudapi/extnet/utility_extnet.go +++ b/internal/service/cloudapi/extnet/utility_extnet.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package extnet import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityExtnetCheckPresence(d *schema.ResourceData, m interface{}) (*ExtnetDetailed, error) { +func utilityExtnetCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (*ExtnetDetailed, error) { extnet := &ExtnetDetailed{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -50,7 +51,7 @@ func utilityExtnetCheckPresence(d *schema.ResourceData, m interface{}) (*ExtnetD urlValues.Add("net_id", strconv.Itoa(d.Get("net_id").(int))) log.Debugf("utilityExtnetCheckPresence") - extnetRaw, err := c.DecortAPICall("POST", extnetGetAPI, urlValues) + extnetRaw, err := c.DecortAPICall(ctx, "POST", extnetGetAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/extnet/utility_extnet_computes_list.go b/internal/service/cloudapi/extnet/utility_extnet_computes_list.go index 69f0c5e..68f3d83 100644 --- a/internal/service/cloudapi/extnet/utility_extnet_computes_list.go +++ b/internal/service/cloudapi/extnet/utility_extnet_computes_list.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package extnet import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityExtnetComputesListCheckPresence(d *schema.ResourceData, m interface{}) (ExtnetComputesList, error) { +func utilityExtnetComputesListCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (ExtnetComputesList, error) { extnetComputesList := ExtnetComputesList{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -50,7 +51,7 @@ func utilityExtnetComputesListCheckPresence(d *schema.ResourceData, m interface{ urlValues.Add("accountId", strconv.Itoa(d.Get("account_id").(int))) log.Debugf("utilityExtnetComputesListCheckPresence") - extnetComputesListRaw, err := c.DecortAPICall("POST", extnetListComputesAPI, urlValues) + extnetComputesListRaw, err := c.DecortAPICall(ctx, "POST", extnetListComputesAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/extnet/utility_extnet_default.go b/internal/service/cloudapi/extnet/utility_extnet_default.go index cdf6686..7b7257b 100644 --- a/internal/service/cloudapi/extnet/utility_extnet_default.go +++ b/internal/service/cloudapi/extnet/utility_extnet_default.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package extnet import ( + "context" "net/url" "github.com/rudecs/terraform-provider-decort/internal/controller" @@ -40,12 +41,12 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityExtnetDefaultCheckPresence(_ *schema.ResourceData, m interface{}) (string, error) { +func utilityExtnetDefaultCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (string, error) { c := m.(*controller.ControllerCfg) urlValues := &url.Values{} log.Debugf("utilityExtnetDefaultCheckPresence") - res, err := c.DecortAPICall("POST", extnetGetDefaultAPI, urlValues) + res, err := c.DecortAPICall(ctx, "POST", extnetGetDefaultAPI, urlValues) if err != nil { return "", err } diff --git a/internal/service/cloudapi/extnet/utility_extnet_list.go b/internal/service/cloudapi/extnet/utility_extnet_list.go index 56411bf..91b2d5a 100644 --- a/internal/service/cloudapi/extnet/utility_extnet_list.go +++ b/internal/service/cloudapi/extnet/utility_extnet_list.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package extnet import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityExtnetListCheckPresence(d *schema.ResourceData, m interface{}) (ExtnetList, error) { +func utilityExtnetListCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (ExtnetList, error) { extnetList := ExtnetList{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -58,7 +59,7 @@ func utilityExtnetListCheckPresence(d *schema.ResourceData, m interface{}) (Extn } log.Debugf("utilityExtnetListCheckPresence") - extnetListRaw, err := c.DecortAPICall("POST", extnetListAPI, urlValues) + extnetListRaw, err := c.DecortAPICall(ctx, "POST", extnetListAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/k8s/resource_k8s.go b/internal/service/cloudapi/k8s/resource_k8s.go index 59d240c..a7f6301 100644 --- a/internal/service/cloudapi/k8s/resource_k8s.go +++ b/internal/service/cloudapi/k8s/resource_k8s.go @@ -94,7 +94,7 @@ func resourceK8sCreate(ctx context.Context, d *schema.ResourceData, m interface{ //urlValues.Add("desc", desc.(string)) //} - resp, err := c.DecortAPICall("POST", K8sCreateAPI, urlValues) + resp, err := c.DecortAPICall(ctx, "POST", K8sCreateAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -103,7 +103,7 @@ func resourceK8sCreate(ctx context.Context, d *schema.ResourceData, m interface{ urlValues.Add("auditId", strings.Trim(resp, `"`)) for { - resp, err := c.DecortAPICall("POST", AsyncTaskGetAPI, urlValues) + resp, err := c.DecortAPICall(ctx, "POST", AsyncTaskGetAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -126,7 +126,7 @@ func resourceK8sCreate(ctx context.Context, d *schema.ResourceData, m interface{ time.Sleep(time.Second * 10) } - k8s, err := utilityK8sCheckPresence(d, m) + k8s, err := utilityK8sCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } @@ -136,7 +136,7 @@ func resourceK8sCreate(ctx context.Context, d *schema.ResourceData, m interface{ urlValues = &url.Values{} urlValues.Add("lbId", strconv.Itoa(k8s.LbID)) - resp, err = c.DecortAPICall("POST", LbGetAPI, urlValues) + resp, err = c.DecortAPICall(ctx, "POST", LbGetAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -150,7 +150,7 @@ func resourceK8sCreate(ctx context.Context, d *schema.ResourceData, m interface{ urlValues = &url.Values{} urlValues.Add("k8sId", d.Id()) - kubeconfig, err := c.DecortAPICall("POST", K8sGetConfigAPI, urlValues) + kubeconfig, err := c.DecortAPICall(ctx, "POST", K8sGetConfigAPI, urlValues) if err != nil { log.Warnf("could not get kubeconfig: %v", err) } @@ -162,7 +162,7 @@ func resourceK8sCreate(ctx context.Context, d *schema.ResourceData, m interface{ func resourceK8sRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { log.Debugf("resourceK8sRead: called with id %s, rg %d", d.Id(), d.Get("rg_id").(int)) - k8s, err := utilityK8sCheckPresence(d, m) + k8s, err := utilityK8sCheckPresence(ctx, d, m) if k8s == nil { d.SetId("") return diag.FromErr(err) @@ -180,7 +180,7 @@ func resourceK8sRead(ctx context.Context, d *schema.ResourceData, m interface{}) urlValues := &url.Values{} urlValues.Add("lbId", strconv.Itoa(k8s.LbID)) - resp, err := c.DecortAPICall("POST", LbGetAPI, urlValues) + resp, err := c.DecortAPICall(ctx, "POST", LbGetAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -194,7 +194,7 @@ func resourceK8sRead(ctx context.Context, d *schema.ResourceData, m interface{}) urlValues = &url.Values{} urlValues.Add("k8sId", d.Id()) - kubeconfig, err := c.DecortAPICall("POST", K8sGetConfigAPI, urlValues) + kubeconfig, err := c.DecortAPICall(ctx, "POST", K8sGetConfigAPI, urlValues) if err != nil { log.Warnf("could not get kubeconfig: %v", err) } @@ -213,14 +213,14 @@ func resourceK8sUpdate(ctx context.Context, d *schema.ResourceData, m interface{ urlValues.Add("k8sId", d.Id()) urlValues.Add("name", d.Get("name").(string)) - _, err := c.DecortAPICall("POST", K8sUpdateAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", K8sUpdateAPI, urlValues) if err != nil { return diag.FromErr(err) } } if d.HasChange("workers") { - k8s, err := utilityK8sCheckPresence(d, m) + k8s, err := utilityK8sCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } @@ -234,13 +234,13 @@ func resourceK8sUpdate(ctx context.Context, d *schema.ResourceData, m interface{ if newWorkers.Num > wg.Num { urlValues.Add("num", strconv.Itoa(newWorkers.Num-wg.Num)) - if _, err := c.DecortAPICall("POST", K8sWorkerAddAPI, urlValues); err != nil { + if _, err := c.DecortAPICall(ctx, "POST", K8sWorkerAddAPI, urlValues); err != nil { return diag.FromErr(err) } } else { for i := wg.Num - 1; i >= newWorkers.Num; i-- { urlValues.Set("workerId", strconv.Itoa(wg.DetailedInfo[i].ID)) - if _, err := c.DecortAPICall("POST", K8sWorkerDeleteAPI, urlValues); err != nil { + if _, err := c.DecortAPICall(ctx, "POST", K8sWorkerDeleteAPI, urlValues); err != nil { return diag.FromErr(err) } } @@ -253,7 +253,7 @@ func resourceK8sUpdate(ctx context.Context, d *schema.ResourceData, m interface{ func resourceK8sDelete(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { log.Debugf("resourceK8sDelete: called with id %s, rg %d", d.Id(), d.Get("rg_id").(int)) - k8s, err := utilityK8sCheckPresence(d, m) + k8s, err := utilityK8sCheckPresence(ctx, d, m) if k8s == nil { if err != nil { return diag.FromErr(err) @@ -266,7 +266,7 @@ func resourceK8sDelete(ctx context.Context, d *schema.ResourceData, m interface{ urlValues.Add("k8sId", d.Id()) urlValues.Add("permanently", "true") - _, err = c.DecortAPICall("POST", K8sDeleteAPI, urlValues) + _, err = c.DecortAPICall(ctx, "POST", K8sDeleteAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -274,10 +274,10 @@ func resourceK8sDelete(ctx context.Context, d *schema.ResourceData, m interface{ return nil } -func resourceK8sExists(d *schema.ResourceData, m interface{}) (bool, error) { +func resourceK8sExists(ctx context.Context, d *schema.ResourceData, m interface{}) (bool, error) { log.Debugf("resourceK8sExists: called with id %s, rg %d", d.Id(), d.Get("rg_id").(int)) - k8s, err := utilityK8sCheckPresence(d, m) + k8s, err := utilityK8sCheckPresence(ctx, d, m) if k8s == nil { return false, err } @@ -385,7 +385,6 @@ func ResourceK8s() *schema.Resource { ReadContext: resourceK8sRead, UpdateContext: resourceK8sUpdate, DeleteContext: resourceK8sDelete, - Exists: resourceK8sExists, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, diff --git a/internal/service/cloudapi/k8s/resource_k8s_wg.go b/internal/service/cloudapi/k8s/resource_k8s_wg.go index 420130d..d1eeafb 100644 --- a/internal/service/cloudapi/k8s/resource_k8s_wg.go +++ b/internal/service/cloudapi/k8s/resource_k8s_wg.go @@ -55,7 +55,7 @@ func resourceK8sWgCreate(ctx context.Context, d *schema.ResourceData, m interfac urlValues.Add("workerRam", strconv.Itoa(d.Get("ram").(int))) urlValues.Add("workerDisk", strconv.Itoa(d.Get("disk").(int))) - resp, err := c.DecortAPICall("POST", K8sWgCreateAPI, urlValues) + resp, err := c.DecortAPICall(ctx, "POST", K8sWgCreateAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -97,7 +97,7 @@ func resourceK8sWgCreate(ctx context.Context, d *schema.ResourceData, m interfac func resourceK8sWgRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { log.Debugf("resourceK8sWgRead: called with k8s id %d", d.Get("k8s_id").(int)) - wg, err := utilityK8sWgCheckPresence(d, m) + wg, err := utilityK8sWgCheckPresence(ctx, d, m) if wg == nil { d.SetId("") return diag.FromErr(err) @@ -117,7 +117,7 @@ func resourceK8sWgUpdate(ctx context.Context, d *schema.ResourceData, m interfac c := m.(*controller.ControllerCfg) - wg, err := utilityK8sWgCheckPresence(d, m) + wg, err := utilityK8sWgCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } @@ -128,14 +128,14 @@ func resourceK8sWgUpdate(ctx context.Context, d *schema.ResourceData, m interfac if newNum := d.Get("num").(int); newNum > wg.Num { urlValues.Add("num", strconv.Itoa(newNum-wg.Num)) - _, err := c.DecortAPICall("POST", K8sWorkerAddAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", K8sWorkerAddAPI, urlValues) if err != nil { return diag.FromErr(err) } } else { for i := wg.Num - 1; i >= newNum; i-- { urlValues.Set("workerId", strconv.Itoa(wg.DetailedInfo[i].ID)) - _, err := c.DecortAPICall("POST", K8sWorkerDeleteAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", K8sWorkerDeleteAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -148,7 +148,7 @@ func resourceK8sWgUpdate(ctx context.Context, d *schema.ResourceData, m interfac func resourceK8sWgDelete(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { log.Debugf("resourceK8sWgDelete: called with k8s id %d", d.Get("k8s_id").(int)) - wg, err := utilityK8sWgCheckPresence(d, m) + wg, err := utilityK8sWgCheckPresence(ctx, d, m) if wg == nil { if err != nil { return diag.FromErr(err) @@ -161,7 +161,7 @@ func resourceK8sWgDelete(ctx context.Context, d *schema.ResourceData, m interfac urlValues.Add("k8sId", strconv.Itoa(d.Get("k8s_id").(int))) urlValues.Add("workersGroupId", strconv.Itoa(wg.ID)) - _, err = c.DecortAPICall("POST", K8sWgDeleteAPI, urlValues) + _, err = c.DecortAPICall(ctx, "POST", K8sWgDeleteAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -169,10 +169,10 @@ func resourceK8sWgDelete(ctx context.Context, d *schema.ResourceData, m interfac return nil } -func resourceK8sWgExists(d *schema.ResourceData, m interface{}) (bool, error) { +func resourceK8sWgExists(ctx context.Context, d *schema.ResourceData, m interface{}) (bool, error) { log.Debugf("resourceK8sWgExists: called with k8s id %d", d.Get("k8s_id").(int)) - wg, err := utilityK8sWgCheckPresence(d, m) + wg, err := utilityK8sWgCheckPresence(ctx, d, m) if wg == nil { if err != nil { return false, err @@ -240,7 +240,6 @@ func ResourceK8sWg() *schema.Resource { ReadContext: resourceK8sWgRead, UpdateContext: resourceK8sWgUpdate, DeleteContext: resourceK8sWgDelete, - Exists: resourceK8sWgExists, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, diff --git a/internal/service/cloudapi/k8s/utility_k8s.go b/internal/service/cloudapi/k8s/utility_k8s.go index b9a5db7..2c4270c 100644 --- a/internal/service/cloudapi/k8s/utility_k8s.go +++ b/internal/service/cloudapi/k8s/utility_k8s.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package k8s import ( + "context" "encoding/json" "net/url" @@ -39,12 +40,12 @@ import ( "github.com/rudecs/terraform-provider-decort/internal/controller" ) -func utilityK8sCheckPresence(d *schema.ResourceData, m interface{}) (*K8sRecord, error) { +func utilityK8sCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (*K8sRecord, error) { c := m.(*controller.ControllerCfg) urlValues := &url.Values{} urlValues.Add("k8sId", d.Id()) - resp, err := c.DecortAPICall("POST", K8sGetAPI, urlValues) + resp, err := c.DecortAPICall(ctx, "POST", K8sGetAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/k8s/utility_k8s_wg.go b/internal/service/cloudapi/k8s/utility_k8s_wg.go index e95f6c6..9aef352 100644 --- a/internal/service/cloudapi/k8s/utility_k8s_wg.go +++ b/internal/service/cloudapi/k8s/utility_k8s_wg.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package k8s import ( + "context" "encoding/json" "net/url" "strconv" @@ -40,12 +41,12 @@ import ( "github.com/rudecs/terraform-provider-decort/internal/controller" ) -func utilityK8sWgCheckPresence(d *schema.ResourceData, m interface{}) (*K8sNodeRecord, error) { +func utilityK8sWgCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (*K8sNodeRecord, error) { c := m.(*controller.ControllerCfg) urlValues := &url.Values{} urlValues.Add("k8sId", strconv.Itoa(d.Get("k8s_id").(int))) - resp, err := c.DecortAPICall("POST", K8sGetAPI, urlValues) + resp, err := c.DecortAPICall(ctx, "POST", K8sGetAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/kvmvm/data_source_compute.go b/internal/service/cloudapi/kvmvm/data_source_compute.go index 6e66b98..7738409 100644 --- a/internal/service/cloudapi/kvmvm/data_source_compute.go +++ b/internal/service/cloudapi/kvmvm/data_source_compute.go @@ -196,7 +196,7 @@ func flattenCompute(d *schema.ResourceData, compFacts string) error { } func dataSourceComputeRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - compFacts, err := utilityComputeCheckPresence(d, m) + compFacts, err := utilityComputeCheckPresence(ctx, d, m) if compFacts == "" { // if empty string is returned from utilityComputeCheckPresence then there is no // such Compute and err tells so - just return it to the calling party diff --git a/internal/service/cloudapi/kvmvm/resource_compute.go b/internal/service/cloudapi/kvmvm/resource_compute.go index 575c2a8..75dde35 100644 --- a/internal/service/cloudapi/kvmvm/resource_compute.go +++ b/internal/service/cloudapi/kvmvm/resource_compute.go @@ -112,7 +112,7 @@ func resourceComputeCreate(ctx context.Context, d *schema.ResourceData, m interf } } - apiResp, err := c.DecortAPICall("POST", computeCreateAPI, urlValues) + apiResp, err := c.DecortAPICall(ctx, "POST", computeCreateAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -124,41 +124,26 @@ func resourceComputeCreate(ctx context.Context, d *schema.ResourceData, m interf log.Debugf("resourceComputeCreate: new simple Compute ID %d, name %s created", compId, d.Get("name").(string)) // Configure data disks if any - extraDisksOk := true argVal, argSet = d.GetOk("extra_disks") if argSet && argVal.(*schema.Set).Len() > 0 { // urlValues.Add("desc", argVal.(string)) log.Debugf("resourceComputeCreate: calling utilityComputeExtraDisksConfigure to attach %d extra disk(s)", argVal.(*schema.Set).Len()) - err = utilityComputeExtraDisksConfigure(d, m, false) // do_delta=false, as we are working on a new compute + err = utilityComputeExtraDisksConfigure(ctx, d, m, false) // do_delta=false, as we are working on a new compute if err != nil { log.Errorf("resourceComputeCreate: error when attaching extra disk(s) to a new Compute ID %d: %v", compId, err) - extraDisksOk = false + return diag.FromErr(err) } } - if extraDisksOk { - d.SetPartial("extra_disks") - } - // Configure external networks if any - netsOk := true argVal, argSet = d.GetOk("network") if argSet && argVal.(*schema.Set).Len() > 0 { log.Debugf("resourceComputeCreate: calling utilityComputeNetworksConfigure to attach %d network(s)", argVal.(*schema.Set).Len()) - err = utilityComputeNetworksConfigure(d, m, false) // do_delta=false, as we are working on a new compute + err = utilityComputeNetworksConfigure(ctx, d, m, false) // do_delta=false, as we are working on a new compute if err != nil { log.Errorf("resourceComputeCreate: error when attaching networks to a new Compute ID %d: %s", compId, err) - netsOk = false + return diag.FromErr(err) } } - if netsOk { - // there were no errors reported when configuring networks - d.SetPartial("network") - } - - if extraDisksOk && netsOk { - // if there were no errors in setting any of the subresources, we may leave Partial mode - d.Partial(false) - } // Note bene: we created compute in a STOPPED state (this is required to properly attach 1st network interface), // now we need to start it before we report the sequence complete @@ -166,7 +151,7 @@ func resourceComputeCreate(ctx context.Context, d *schema.ResourceData, m interf reqValues := &url.Values{} reqValues.Add("computeId", fmt.Sprintf("%d", compId)) log.Debugf("resourceComputeCreate: starting Compute ID %d after completing its resource configuration", compId) - if _, err := c.DecortAPICall("POST", ComputeStartAPI, reqValues); err != nil { + if _, err := c.DecortAPICall(ctx, "POST", ComputeStartAPI, reqValues); err != nil { return diag.FromErr(err) } } @@ -184,7 +169,7 @@ func resourceComputeRead(ctx context.Context, d *schema.ResourceData, m interfac log.Debugf("resourceComputeRead: called for Compute name %s, RG ID %d", d.Get("name").(string), d.Get("rg_id").(int)) - compFacts, err := utilityComputeCheckPresence(d, m) + compFacts, err := utilityComputeCheckPresence(ctx, d, m) if compFacts == "" { if err != nil { return diag.FromErr(err) @@ -222,8 +207,6 @@ func resourceComputeUpdate(ctx context.Context, d *schema.ResourceData, m interf doUpdate := false params.Add("computeId", d.Id()) - d.Partial(true) - oldCpu, newCpu := d.GetChange("cpu") if oldCpu.(int) != newCpu.(int) { params.Add("cpu", fmt.Sprintf("%d", newCpu.(int))) @@ -245,13 +228,10 @@ func resourceComputeUpdate(ctx context.Context, d *schema.ResourceData, m interf oldCpu.(int), newCpu.(int), oldRam.(int), newRam.(int)) params.Add("force", "true") - _, err := c.DecortAPICall("POST", ComputeResizeAPI, params) + _, err := c.DecortAPICall(ctx, "POST", ComputeResizeAPI, params) if err != nil { return diag.FromErr(err) } - - d.SetPartial("cpu") - d.SetPartial("ram") } // 2. Resize (grow) Boot disk @@ -262,23 +242,22 @@ func resourceComputeUpdate(ctx context.Context, d *schema.ResourceData, m interf bdsParams.Add("size", fmt.Sprintf("%d", newSize.(int))) log.Debugf("resourceComputeUpdate: compute ID %s, boot disk ID %d resize %d -> %d", d.Id(), d.Get("boot_disk_id").(int), oldSize.(int), newSize.(int)) - _, err := c.DecortAPICall("POST", DisksResizeAPI, bdsParams) + _, err := c.DecortAPICall(ctx, "POST", DisksResizeAPI, bdsParams) if err != nil { return diag.FromErr(err) } - d.SetPartial("boot_disk_size") } else if oldSize.(int) > newSize.(int) { log.Warnf("resourceComputeUpdate: compute ID %s - shrinking boot disk is not allowed", d.Id()) } // 3. Calculate and apply changes to data disks - err := utilityComputeExtraDisksConfigure(d, m, true) // pass do_delta = true to apply changes, if any + err := utilityComputeExtraDisksConfigure(ctx, d, m, true) // pass do_delta = true to apply changes, if any if err != nil { return diag.FromErr(err) } // 4. Calculate and apply changes to network connections - err = utilityComputeNetworksConfigure(d, m, true) // pass do_delta = true to apply changes, if any + err = utilityComputeNetworksConfigure(ctx, d, m, true) // pass do_delta = true to apply changes, if any if err != nil { return diag.FromErr(err) } @@ -287,11 +266,11 @@ func resourceComputeUpdate(ctx context.Context, d *schema.ResourceData, m interf params := &url.Values{} params.Add("computeId", d.Id()) if d.Get("started").(bool) { - if _, err := c.DecortAPICall("POST", ComputeStartAPI, params); err != nil { + if _, err := c.DecortAPICall(ctx, "POST", ComputeStartAPI, params); err != nil { return diag.FromErr(err) } } else { - if _, err := c.DecortAPICall("POST", ComputeStopAPI, params); err != nil { + if _, err := c.DecortAPICall(ctx, "POST", ComputeStopAPI, params); err != nil { return diag.FromErr(err) } } @@ -310,7 +289,7 @@ func resourceComputeDelete(ctx context.Context, d *schema.ResourceData, m interf log.Debugf("resourceComputeDelete: called for Compute name %s, RG ID %d", d.Get("name").(string), d.Get("rg_id").(int)) - compFacts, err := utilityComputeCheckPresence(d, m) + compFacts, err := utilityComputeCheckPresence(ctx, d, m) if compFacts == "" { if err != nil { return diag.FromErr(err) @@ -340,7 +319,7 @@ func resourceComputeDelete(ctx context.Context, d *schema.ResourceData, m interf detachParams.Add("computeId", d.Id()) detachParams.Add("diskId", fmt.Sprintf("%d", diskFacts.ID)) - _, err = c.DecortAPICall("POST", ComputeDiskDetachAPI, detachParams) + _, err = c.DecortAPICall(ctx, "POST", ComputeDiskDetachAPI, detachParams) if err != nil { // We do not fail compute deletion on data disk detach errors log.Errorf("resourceComputeDelete: error when detaching Disk ID %d: %s", diskFacts.ID, err) @@ -353,7 +332,7 @@ func resourceComputeDelete(ctx context.Context, d *schema.ResourceData, m interf params.Add("permanently", "1") // TODO: this is for the upcoming API update - params.Add("detachdisks", "1") - _, err = c.DecortAPICall("POST", ComputeDeleteAPI, params) + _, err = c.DecortAPICall(ctx, "POST", ComputeDeleteAPI, params) if err != nil { return diag.FromErr(err) } @@ -361,12 +340,12 @@ func resourceComputeDelete(ctx context.Context, d *schema.ResourceData, m interf return nil } -func resourceComputeExists(d *schema.ResourceData, m interface{}) (bool, error) { +func resourceComputeExists(ctx context.Context, d *schema.ResourceData, m interface{}) (bool, error) { // Reminder: according to Terraform rules, this function should not modify its ResourceData argument log.Debugf("resourceComputeExist: called for Compute name %s, RG ID %d", d.Get("name").(string), d.Get("rg_id").(int)) - compFacts, err := utilityComputeCheckPresence(d, m) + compFacts, err := utilityComputeCheckPresence(ctx, d, m) if compFacts == "" { if err != nil { return false, err @@ -384,7 +363,6 @@ func ResourceCompute() *schema.Resource { ReadContext: resourceComputeRead, UpdateContext: resourceComputeUpdate, DeleteContext: resourceComputeDelete, - Exists: resourceComputeExists, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, diff --git a/internal/service/cloudapi/kvmvm/utility_compute.go b/internal/service/cloudapi/kvmvm/utility_compute.go index 894e81d..0bf64ea 100644 --- a/internal/service/cloudapi/kvmvm/utility_compute.go +++ b/internal/service/cloudapi/kvmvm/utility_compute.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package kvmvm import ( + "context" "encoding/json" "fmt" "net/url" @@ -43,7 +44,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityComputeExtraDisksConfigure(d *schema.ResourceData, m interface{}, do_delta bool) error { +func utilityComputeExtraDisksConfigure(ctx context.Context, d *schema.ResourceData, m interface{}, do_delta bool) error { // d is filled with data according to computeResource schema, so extra disks config is retrieved via "extra_disks" key // If do_delta is true, this function will identify changes between new and existing specs for extra disks and try to // update compute configuration accordingly @@ -71,7 +72,7 @@ func utilityComputeExtraDisksConfigure(d *schema.ResourceData, m interface{}, do urlValues := &url.Values{} urlValues.Add("computeId", d.Id()) urlValues.Add("diskId", fmt.Sprintf("%d", disk.(int))) - _, err := c.DecortAPICall("POST", ComputeDiskAttachAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", ComputeDiskAttachAPI, urlValues) if err != nil { // failed to attach extra disk - partial resource update apiErrCount++ @@ -94,7 +95,7 @@ func utilityComputeExtraDisksConfigure(d *schema.ResourceData, m interface{}, do urlValues := &url.Values{} urlValues.Add("computeId", d.Id()) urlValues.Add("diskId", fmt.Sprintf("%d", diskId.(int))) - _, err := c.DecortAPICall("POST", ComputeDiskDetachAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", ComputeDiskDetachAPI, urlValues) if err != nil { // failed to detach disk - there will be partial resource update log.Errorf("utilityComputeExtraDisksConfigure: failed to detach disk ID %d from Compute ID %s: %s", diskId.(int), d.Id(), err) @@ -109,7 +110,7 @@ func utilityComputeExtraDisksConfigure(d *schema.ResourceData, m interface{}, do urlValues := &url.Values{} urlValues.Add("computeId", d.Id()) urlValues.Add("diskId", fmt.Sprintf("%d", diskId.(int))) - _, err := c.DecortAPICall("POST", ComputeDiskAttachAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", ComputeDiskAttachAPI, urlValues) if err != nil { // failed to attach disk - there will be partial resource update log.Errorf("utilityComputeExtraDisksConfigure: failed to attach disk ID %d to Compute ID %s: %s", diskId.(int), d.Id(), err) @@ -127,7 +128,7 @@ func utilityComputeExtraDisksConfigure(d *schema.ResourceData, m interface{}, do return nil } -func utilityComputeNetworksConfigure(d *schema.ResourceData, m interface{}, do_delta bool) error { +func utilityComputeNetworksConfigure(ctx context.Context, d *schema.ResourceData, m interface{}, do_delta bool) error { // "d" is filled with data according to computeResource schema, so extra networks config is retrieved via "network" key // If do_delta is true, this function will identify changes between new and existing specs for network and try to // update compute configuration accordingly @@ -156,7 +157,7 @@ func utilityComputeNetworksConfigure(d *schema.ResourceData, m interface{}, do_d if ipSet { urlValues.Add("ipAddr", ipaddr.(string)) } - _, err := c.DecortAPICall("POST", ComputeNetAttachAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", ComputeNetAttachAPI, urlValues) if err != nil { // failed to attach network - partial resource update apiErrCount++ @@ -180,7 +181,7 @@ func utilityComputeNetworksConfigure(d *schema.ResourceData, m interface{}, do_d urlValues.Add("computeId", d.Id()) urlValues.Add("ipAddr", net_data["ip_address"].(string)) urlValues.Add("mac", net_data["mac"].(string)) - _, err := c.DecortAPICall("POST", ComputeNetDetachAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", ComputeNetDetachAPI, urlValues) if err != nil { // failed to detach this network - there will be partial resource update log.Errorf("utilityComputeNetworksConfigure: failed to detach net ID %d of type %s from Compute ID %s: %s", @@ -201,7 +202,7 @@ func utilityComputeNetworksConfigure(d *schema.ResourceData, m interface{}, do_d if net_data["ip_address"].(string) != "" { urlValues.Add("ipAddr", net_data["ip_address"].(string)) } - _, err := c.DecortAPICall("POST", ComputeNetAttachAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", ComputeNetAttachAPI, urlValues) if err != nil { // failed to attach this network - there will be partial resource update log.Errorf("utilityComputeNetworksConfigure: failed to attach net ID %d of type %s to Compute ID %s: %s", @@ -220,7 +221,7 @@ func utilityComputeNetworksConfigure(d *schema.ResourceData, m interface{}, do_d return nil } -func utilityComputeCheckPresence(d *schema.ResourceData, m interface{}) (string, error) { +func utilityComputeCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (string, error) { // This function tries to locate Compute by one of the following approaches: // - if compute_id is specified - locate by compute ID // - if compute_name is specified - locate by a combination of compute name and resource @@ -255,7 +256,7 @@ func utilityComputeCheckPresence(d *schema.ResourceData, m interface{}) (string, // compute ID is specified, try to get compute instance straight by this ID log.Debugf("utilityComputeCheckPresence: locating compute by its ID %d", theId) urlValues.Add("computeId", fmt.Sprintf("%d", theId)) - computeFacts, err := c.DecortAPICall("POST", ComputeGetAPI, urlValues) + computeFacts, err := c.DecortAPICall(ctx, "POST", ComputeGetAPI, urlValues) if err != nil { return "", err } @@ -275,7 +276,7 @@ func utilityComputeCheckPresence(d *schema.ResourceData, m interface{}) (string, } urlValues.Add("rgId", fmt.Sprintf("%d", rgId)) - apiResp, err := c.DecortAPICall("POST", RgListComputesAPI, urlValues) + apiResp, err := c.DecortAPICall(ctx, "POST", RgListComputesAPI, urlValues) if err != nil { return "", err } @@ -297,7 +298,7 @@ func utilityComputeCheckPresence(d *schema.ResourceData, m interface{}) (string, // we found the Compute we need - now get detailed information via compute/get API cgetValues := &url.Values{} cgetValues.Add("computeId", fmt.Sprintf("%d", item.ID)) - apiResp, err = c.DecortAPICall("POST", ComputeGetAPI, cgetValues) + apiResp, err = c.DecortAPICall(ctx, "POST", ComputeGetAPI, cgetValues) if err != nil { return "", err } diff --git a/internal/service/cloudapi/pfw/resource_pfw.go b/internal/service/cloudapi/pfw/resource_pfw.go index 381bcb2..199187b 100644 --- a/internal/service/cloudapi/pfw/resource_pfw.go +++ b/internal/service/cloudapi/pfw/resource_pfw.go @@ -59,14 +59,14 @@ func resourcePfwCreate(ctx context.Context, d *schema.ResourceData, m interface{ urlValues.Add("publicPortEnd", strconv.Itoa(portEnd.(int))) } - pfwId, err := c.DecortAPICall("POST", ComputePfwAddAPI, urlValues) + pfwId, err := c.DecortAPICall(ctx, "POST", ComputePfwAddAPI, urlValues) if err != nil { return diag.FromErr(err) } d.SetId(fmt.Sprintf("%d-%s", d.Get("compute_id").(int), pfwId)) - pfw, err := utilityPfwCheckPresence(d, m) + pfw, err := utilityPfwCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } @@ -82,7 +82,7 @@ func resourcePfwCreate(ctx context.Context, d *schema.ResourceData, m interface{ func resourcePfwRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { log.Debugf("resourcePfwRead: called for compute %d, rule %s", d.Get("compute_id").(int), d.Id()) - pfw, err := utilityPfwCheckPresence(d, m) + pfw, err := utilityPfwCheckPresence(ctx, d, m) if pfw == nil { d.SetId("") return diag.FromErr(err) @@ -101,7 +101,7 @@ func resourcePfwRead(ctx context.Context, d *schema.ResourceData, m interface{}) func resourcePfwDelete(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { log.Debugf("resourcePfwDelete: called for compute %d, rule %s", d.Get("compute_id").(int), d.Id()) - pfw, err := utilityPfwCheckPresence(d, m) + pfw, err := utilityPfwCheckPresence(ctx, d, m) if pfw == nil { if err != nil { return diag.FromErr(err) @@ -114,7 +114,7 @@ func resourcePfwDelete(ctx context.Context, d *schema.ResourceData, m interface{ urlValues.Add("computeId", strconv.Itoa(d.Get("compute_id").(int))) urlValues.Add("ruleId", strconv.Itoa(pfw.ID)) - _, err = c.DecortAPICall("POST", ComputePfwDelAPI, urlValues) + _, err = c.DecortAPICall(ctx, "POST", ComputePfwDelAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -122,10 +122,10 @@ func resourcePfwDelete(ctx context.Context, d *schema.ResourceData, m interface{ return nil } -func resourcePfwExists(d *schema.ResourceData, m interface{}) (bool, error) { +func resourcePfwExists(ctx context.Context, d *schema.ResourceData, m interface{}) (bool, error) { log.Debugf("resourcePfwExists: called for compute %d, rule %s", d.Get("compute_id").(int), d.Id()) - pfw, err := utilityPfwCheckPresence(d, m) + pfw, err := utilityPfwCheckPresence(ctx, d, m) if pfw == nil { if err != nil { return false, err @@ -193,7 +193,6 @@ func ResourcePfw() *schema.Resource { CreateContext: resourcePfwCreate, ReadContext: resourcePfwRead, DeleteContext: resourcePfwDelete, - Exists: resourcePfwExists, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, diff --git a/internal/service/cloudapi/pfw/utility_pfw.go b/internal/service/cloudapi/pfw/utility_pfw.go index af7937f..0f5729f 100644 --- a/internal/service/cloudapi/pfw/utility_pfw.go +++ b/internal/service/cloudapi/pfw/utility_pfw.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package pfw import ( + "context" "encoding/json" "net/url" "strconv" @@ -41,12 +42,12 @@ import ( "github.com/rudecs/terraform-provider-decort/internal/controller" ) -func utilityPfwCheckPresence(d *schema.ResourceData, m interface{}) (*PfwRecord, error) { +func utilityPfwCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (*PfwRecord, error) { c := m.(*controller.ControllerCfg) urlValues := &url.Values{} urlValues.Add("computeId", strconv.Itoa(d.Get("compute_id").(int))) - resp, err := c.DecortAPICall("POST", ComputePfwListAPI, urlValues) + resp, err := c.DecortAPICall(ctx, "POST", ComputePfwListAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/rg/data_source_rg.go b/internal/service/cloudapi/rg/data_source_rg.go index 33f7f0e..09d42ec 100644 --- a/internal/service/cloudapi/rg/data_source_rg.go +++ b/internal/service/cloudapi/rg/data_source_rg.go @@ -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 diff --git a/internal/service/cloudapi/rg/data_source_rg_list.go b/internal/service/cloudapi/rg/data_source_rg_list.go index cfd71ba..b33c5ea 100644 --- a/internal/service/cloudapi/rg/data_source_rg_list.go +++ b/internal/service/cloudapi/rg/data_source_rg_list.go @@ -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) } diff --git a/internal/service/cloudapi/rg/resource_rg.go b/internal/service/cloudapi/rg/resource_rg.go index 815c427..d893334 100644 --- a/internal/service/cloudapi/rg/resource_rg.go +++ b/internal/service/cloudapi/rg/resource_rg.go @@ -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, diff --git a/internal/service/cloudapi/rg/utility_rg.go b/internal/service/cloudapi/rg/utility_rg.go index f2253e8..c7c3b94 100644 --- a/internal/service/cloudapi/rg/utility_rg.go +++ b/internal/service/cloudapi/rg/utility_rg.go @@ -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 } diff --git a/internal/service/cloudapi/rg/utility_rg_list.go b/internal/service/cloudapi/rg/utility_rg_list.go index 19a3b81..3342105 100644 --- a/internal/service/cloudapi/rg/utility_rg_list.go +++ b/internal/service/cloudapi/rg/utility_rg_list.go @@ -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 } diff --git a/internal/service/cloudapi/snapshot/data_source_snapshot_list.go b/internal/service/cloudapi/snapshot/data_source_snapshot_list.go index 61a1cb5..0fe01c1 100644 --- a/internal/service/cloudapi/snapshot/data_source_snapshot_list.go +++ b/internal/service/cloudapi/snapshot/data_source_snapshot_list.go @@ -56,7 +56,7 @@ func flattenSnapshotList(gl SnapshotList) []map[string]interface{} { } func dataSourceSnapshotListRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - snapshotList, err := utilitySnapshotListCheckPresence(d, m) + snapshotList, err := utilitySnapshotListCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudapi/snapshot/resource_snapshot.go b/internal/service/cloudapi/snapshot/resource_snapshot.go index b208092..9a8fbc7 100644 --- a/internal/service/cloudapi/snapshot/resource_snapshot.go +++ b/internal/service/cloudapi/snapshot/resource_snapshot.go @@ -52,7 +52,7 @@ func resourceSnapshotCreate(ctx context.Context, d *schema.ResourceData, m inter urlValues.Add("label", d.Get("label").(string)) urlValues.Add("computeId", strconv.Itoa(d.Get("compute_id").(int))) - snapshotId, err := c.DecortAPICall("POST", snapshotCreateAPI, urlValues) + snapshotId, err := c.DecortAPICall(ctx, "POST", snapshotCreateAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -71,7 +71,7 @@ func resourceSnapshotCreate(ctx context.Context, d *schema.ResourceData, m inter } func resourceSnapshotRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - snapshot, err := utilitySnapshotCheckPresence(d, m) + snapshot, err := utilitySnapshotCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } @@ -92,7 +92,7 @@ func resourceSnapshotDelete(ctx context.Context, d *schema.ResourceData, m inter urlValues.Add("computeId", strconv.Itoa(d.Get("compute_id").(int))) urlValues.Add("label", d.Get("label").(string)) - _, err := c.DecortAPICall("POST", snapshotDeleteAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", snapshotDeleteAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -101,8 +101,8 @@ func resourceSnapshotDelete(ctx context.Context, d *schema.ResourceData, m inter return nil } -func resourceSnapshotExists(d *schema.ResourceData, m interface{}) (bool, error) { - snapshot, err := utilitySnapshotCheckPresence(d, m) +func resourceSnapshotExists(ctx context.Context, d *schema.ResourceData, m interface{}) (bool, error) { + snapshot, err := utilitySnapshotCheckPresence(ctx, d, m) if err != nil { return false, err } @@ -116,7 +116,7 @@ func resourceSnapshotExists(d *schema.ResourceData, m interface{}) (bool, error) func resourceSnapshotEdit(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { if d.HasChange("rollback") { if d.Get("rollback").(bool) { - err := resourceSnapshotRollback(d, m) + err := resourceSnapshotRollback(ctx, d, m) if err != nil { return diag.FromErr(err) } @@ -126,14 +126,14 @@ func resourceSnapshotEdit(ctx context.Context, d *schema.ResourceData, m interfa return nil } -func resourceSnapshotRollback(d *schema.ResourceData, m interface{}) error { +func resourceSnapshotRollback(ctx context.Context, d *schema.ResourceData, m interface{}) error { c := m.(*controller.ControllerCfg) urlValues := &url.Values{} urlValues.Add("computeId", strconv.Itoa(d.Get("compute_id").(int))) urlValues.Add("label", d.Get("label").(string)) - _, err := c.DecortAPICall("POST", snapshotRollbackAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", snapshotRollbackAPI, urlValues) if err != nil { return err } @@ -188,7 +188,6 @@ func ResourceSnapshot() *schema.Resource { ReadContext: resourceSnapshotRead, UpdateContext: resourceSnapshotEdit, DeleteContext: resourceSnapshotDelete, - Exists: resourceSnapshotExists, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, diff --git a/internal/service/cloudapi/snapshot/utility_snapshot.go b/internal/service/cloudapi/snapshot/utility_snapshot.go index e126a10..b99509b 100644 --- a/internal/service/cloudapi/snapshot/utility_snapshot.go +++ b/internal/service/cloudapi/snapshot/utility_snapshot.go @@ -32,13 +32,14 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package snapshot import ( + "context" "errors" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilitySnapshotCheckPresence(d *schema.ResourceData, m interface{}) (*Snapshot, error) { - snapShotList, err := utilitySnapshotListCheckPresence(d, m) +func utilitySnapshotCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (*Snapshot, error) { + snapShotList, err := utilitySnapshotListCheckPresence(ctx, d, m) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/snapshot/utility_snapshot_list.go b/internal/service/cloudapi/snapshot/utility_snapshot_list.go index 4f80c90..e06ac5b 100644 --- a/internal/service/cloudapi/snapshot/utility_snapshot_list.go +++ b/internal/service/cloudapi/snapshot/utility_snapshot_list.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package snapshot import ( + "context" "encoding/json" "net/url" "strconv" @@ -40,12 +41,12 @@ import ( "github.com/rudecs/terraform-provider-decort/internal/controller" ) -func utilitySnapshotListCheckPresence(d *schema.ResourceData, m interface{}) (SnapshotList, error) { +func utilitySnapshotListCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (SnapshotList, error) { c := m.(*controller.ControllerCfg) urlValues := &url.Values{} urlValues.Add("computeId", strconv.Itoa(d.Get("compute_id").(int))) - resp, err := c.DecortAPICall("POST", snapshotListAPI, urlValues) + resp, err := c.DecortAPICall(ctx, "POST", snapshotListAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/vgpu/data_source_vgpu.go b/internal/service/cloudapi/vgpu/data_source_vgpu.go index 0c66086..763b26d 100644 --- a/internal/service/cloudapi/vgpu/data_source_vgpu.go +++ b/internal/service/cloudapi/vgpu/data_source_vgpu.go @@ -40,7 +40,7 @@ import ( ) func dataSourceVGPURead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - vgpu, err := utilityVGPUCheckPresence(d, m) + vgpu, err := utilityVGPUCheckPresence(ctx, d, m) if vgpu == nil { d.SetId("") return diag.FromErr(err) diff --git a/internal/service/cloudapi/vgpu/utility_vgpu.go b/internal/service/cloudapi/vgpu/utility_vgpu.go index fd00ee4..65366cd 100644 --- a/internal/service/cloudapi/vgpu/utility_vgpu.go +++ b/internal/service/cloudapi/vgpu/utility_vgpu.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package vgpu import ( + "context" "encoding/json" "net/url" "strconv" @@ -40,7 +41,7 @@ import ( "github.com/rudecs/terraform-provider-decort/internal/controller" ) -func utilityVGPUCheckPresence(d *schema.ResourceData, m interface{}) (*VGPU, error) { +func utilityVGPUCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (*VGPU, error) { c := m.(*controller.ControllerCfg) urlValues := &url.Values{} urlValues.Add("size", "50") @@ -59,7 +60,7 @@ func utilityVGPUCheckPresence(d *schema.ResourceData, m interface{}) (*VGPU, err for page := 1; ; page++ { urlValues.Set("page", strconv.Itoa(page)) - resp, err := c.DecortAPICall("POST", vgpuListAPI, urlValues) + resp, err := c.DecortAPICall(ctx, "POST", vgpuListAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudapi/vins/data_source_vins.go b/internal/service/cloudapi/vins/data_source_vins.go index b6419b7..2bcd362 100644 --- a/internal/service/cloudapi/vins/data_source_vins.go +++ b/internal/service/cloudapi/vins/data_source_vins.go @@ -97,7 +97,7 @@ func flattenVins(d *schema.ResourceData, vins_facts string) diag.Diagnostics { } func dataSourceVinsRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - vinsFacts, err := utilityVinsCheckPresence(d, m) + vinsFacts, err := utilityVinsCheckPresence(ctx, d, m) if vinsFacts == "" { // if empty string is returned from utilityVinsCheckPresence then there is no // such ViNS and err tells so - just return it to the calling party diff --git a/internal/service/cloudapi/vins/data_source_vins_list.go b/internal/service/cloudapi/vins/data_source_vins_list.go index 76365db..2178eb5 100644 --- a/internal/service/cloudapi/vins/data_source_vins_list.go +++ b/internal/service/cloudapi/vins/data_source_vins_list.go @@ -67,7 +67,7 @@ func flattenVinsList(vl VinsList) []map[string]interface{} { } func dataSourceVinsListRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - vinsList, err := utilityVinsListCheckPresence(d, m) + vinsList, err := utilityVinsListCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudapi/vins/resource_vins.go b/internal/service/cloudapi/vins/resource_vins.go index fc0170d..22729f6 100644 --- a/internal/service/cloudapi/vins/resource_vins.go +++ b/internal/service/cloudapi/vins/resource_vins.go @@ -115,7 +115,7 @@ func resourceVinsCreate(ctx context.Context, d *schema.ResourceData, m interface urlValues.Add("desc", argVal.(string)) } - apiResp, err := c.DecortAPICall("POST", apiToCall, urlValues) + apiResp, err := c.DecortAPICall(ctx, "POST", apiToCall, urlValues) if err != nil { return diag.FromErr(err) } @@ -133,7 +133,7 @@ func resourceVinsCreate(ctx context.Context, d *schema.ResourceData, m interface } func resourceVinsRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - vinsFacts, err := utilityVinsCheckPresence(d, m) + vinsFacts, err := utilityVinsCheckPresence(ctx, d, m) if vinsFacts == "" { // if empty string is returned from utilityVinsCheckPresence then there is no // such ViNS and err tells so - just return it to the calling party @@ -161,7 +161,7 @@ func resourceVinsUpdate(ctx context.Context, d *schema.ResourceData, m interface if oldExtNetId.(int) > 0 { // there was preexisting external net connection - disconnect ViNS - _, err := c.DecortAPICall("POST", VinsExtNetDisconnectAPI, extnetParams) + _, err := c.DecortAPICall(ctx, "POST", VinsExtNetDisconnectAPI, extnetParams) if err != nil { return diag.FromErr(err) } @@ -170,7 +170,7 @@ func resourceVinsUpdate(ctx context.Context, d *schema.ResourceData, m interface if newExtNedId.(int) > 0 { // new external network connection requested - connect ViNS extnetParams.Add("netId", fmt.Sprintf("%d", newExtNedId.(int))) - _, err := c.DecortAPICall("POST", VinsExtNetConnectAPI, extnetParams) + _, err := c.DecortAPICall(ctx, "POST", VinsExtNetConnectAPI, extnetParams) if err != nil { return diag.FromErr(err) } @@ -186,7 +186,7 @@ func resourceVinsDelete(ctx context.Context, d *schema.ResourceData, m interface log.Debugf("resourceVinsDelete: called for ViNS ID / name %s / %s, Account ID %d, RG ID %d", d.Id(), d.Get("name").(string), d.Get("account_id").(int), d.Get("rg_id").(int)) - vinsFacts, err := utilityVinsCheckPresence(d, m) + vinsFacts, err := utilityVinsCheckPresence(ctx, d, m) if vinsFacts == "" { if err != nil { return diag.FromErr(err) @@ -202,7 +202,7 @@ func resourceVinsDelete(ctx context.Context, d *schema.ResourceData, m interface params.Add("permanently", "1") // delete ViNS immediately bypassing recycle bin c := m.(*controller.ControllerCfg) - _, err = c.DecortAPICall("POST", VinsDeleteAPI, params) + _, err = c.DecortAPICall(ctx, "POST", VinsDeleteAPI, params) if err != nil { return diag.FromErr(err) } @@ -210,12 +210,12 @@ func resourceVinsDelete(ctx context.Context, d *schema.ResourceData, m interface return nil } -func resourceVinsExists(d *schema.ResourceData, m interface{}) (bool, error) { +func resourceVinsExists(ctx context.Context, d *schema.ResourceData, m interface{}) (bool, error) { // Reminder: according to Terraform rules, this function should not modify its ResourceData argument log.Debugf("resourceVinsExists: called for ViNS name %s, Account ID %d, RG ID %d", d.Get("name").(string), d.Get("account_id").(int), d.Get("rg_id").(int)) - vinsFacts, err := utilityVinsCheckPresence(d, m) + vinsFacts, err := utilityVinsCheckPresence(ctx, d, m) if vinsFacts == "" { if err != nil { return false, err @@ -305,7 +305,6 @@ func ResourceVins() *schema.Resource { ReadContext: resourceVinsRead, UpdateContext: resourceVinsUpdate, DeleteContext: resourceVinsDelete, - Exists: resourceVinsExists, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, diff --git a/internal/service/cloudapi/vins/utility_vins.go b/internal/service/cloudapi/vins/utility_vins.go index c8e363b..a53ea85 100644 --- a/internal/service/cloudapi/vins/utility_vins.go +++ b/internal/service/cloudapi/vins/utility_vins.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package vins import ( + "context" "encoding/json" "fmt" "net/url" @@ -45,7 +46,7 @@ import ( // On success this function returns a string, as returned by API vins/get, which could be unmarshalled // into VinsGetResp structure -func utilityVinsCheckPresence(d *schema.ResourceData, m interface{}) (string, error) { +func utilityVinsCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (string, error) { // This function tries to locate ViNS by one of the following algorithms depending // on the parameters passed: // - if resource group ID is specified -> it looks for a ViNS at the RG level @@ -80,7 +81,7 @@ func utilityVinsCheckPresence(d *schema.ResourceData, m interface{}) (string, er // ViNS ID is specified, try to get compute instance straight by this ID log.Debugf("utilityVinsCheckPresence: locating ViNS by its ID %d", theId) urlValues.Add("vinsId", fmt.Sprintf("%d", theId)) - vinsFacts, err := c.DecortAPICall("POST", VinsGetAPI, urlValues) + vinsFacts, err := c.DecortAPICall(ctx, "POST", VinsGetAPI, urlValues) if err != nil { return "", err } @@ -111,7 +112,7 @@ func utilityVinsCheckPresence(d *schema.ResourceData, m interface{}) (string, er urlValues.Add("accountId", fmt.Sprintf("%d", accountId.(int))) } - apiResp, err := c.DecortAPICall("POST", VinsSearchAPI, urlValues) + apiResp, err := c.DecortAPICall(ctx, "POST", VinsSearchAPI, urlValues) if err != nil { return "", err } @@ -140,7 +141,7 @@ func utilityVinsCheckPresence(d *schema.ResourceData, m interface{}) (string, er // manage ViNS, so we have to get detailed info by calling API vins/get rqValues := &url.Values{} rqValues.Add("vinsId", fmt.Sprintf("%d", item.ID)) - vinsGetResp, err := c.DecortAPICall("POST", VinsGetAPI, rqValues) + vinsGetResp, err := c.DecortAPICall(ctx, "POST", VinsGetAPI, rqValues) if err != nil { return "", err } diff --git a/internal/service/cloudapi/vins/utility_vins_list.go b/internal/service/cloudapi/vins/utility_vins_list.go index c886c68..4746f23 100644 --- a/internal/service/cloudapi/vins/utility_vins_list.go +++ b/internal/service/cloudapi/vins/utility_vins_list.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package vins import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityVinsListCheckPresence(d *schema.ResourceData, m interface{}) (VinsList, error) { +func utilityVinsListCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (VinsList, error) { vinsList := VinsList{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -58,7 +59,7 @@ func utilityVinsListCheckPresence(d *schema.ResourceData, m interface{}) (VinsLi } log.Debugf("utilityVinsListCheckPresence") - vinsListRaw, err := c.DecortAPICall("POST", VinsListAPI, urlValues) + vinsListRaw, err := c.DecortAPICall(ctx, "POST", VinsListAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudbroker/grid/data_source_grid.go b/internal/service/cloudbroker/grid/data_source_grid.go index 7ba9abe..634d987 100644 --- a/internal/service/cloudbroker/grid/data_source_grid.go +++ b/internal/service/cloudbroker/grid/data_source_grid.go @@ -50,7 +50,7 @@ func flattenGrid(d *schema.ResourceData, grid *Grid) { } func dataSourceGridRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - grid, err := utilityGridCheckPresence(d, m) + grid, err := utilityGridCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudbroker/grid/data_source_grid_list.go b/internal/service/cloudbroker/grid/data_source_grid_list.go index 4521c90..476a739 100644 --- a/internal/service/cloudbroker/grid/data_source_grid_list.go +++ b/internal/service/cloudbroker/grid/data_source_grid_list.go @@ -58,7 +58,7 @@ func flattenGridList(gl GridList) []map[string]interface{} { } func dataSourceGridListRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - gridList, err := utilityGridListCheckPresence(d, m) + gridList, err := utilityGridListCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudbroker/grid/utility_grid.go b/internal/service/cloudbroker/grid/utility_grid.go index ef30e99..8b7698e 100644 --- a/internal/service/cloudbroker/grid/utility_grid.go +++ b/internal/service/cloudbroker/grid/utility_grid.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package grid import ( + "context" "encoding/json" "errors" "net/url" @@ -43,7 +44,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityGridCheckPresence(d *schema.ResourceData, m interface{}) (*Grid, error) { +func utilityGridCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (*Grid, error) { grid := &Grid{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -55,7 +56,7 @@ func utilityGridCheckPresence(d *schema.ResourceData, m interface{}) (*Grid, err } log.Debugf("utilityGridCheckPresence: load grid") - gridRaw, err := c.DecortAPICall("POST", GridGetAPI, urlValues) + gridRaw, err := c.DecortAPICall(ctx, "POST", GridGetAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudbroker/grid/utility_grid_list.go b/internal/service/cloudbroker/grid/utility_grid_list.go index c679411..a81e06c 100644 --- a/internal/service/cloudbroker/grid/utility_grid_list.go +++ b/internal/service/cloudbroker/grid/utility_grid_list.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package grid import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityGridListCheckPresence(d *schema.ResourceData, m interface{}) (GridList, error) { +func utilityGridListCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (GridList, error) { gridList := GridList{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -55,7 +56,7 @@ func utilityGridListCheckPresence(d *schema.ResourceData, m interface{}) (GridLi } log.Debugf("utilityGridListCheckPresence: load grid list") - gridListRaw, err := c.DecortAPICall("POST", GridListGetAPI, urlValues) + gridListRaw, err := c.DecortAPICall(ctx, "POST", GridListGetAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudbroker/image/data_source_image.go b/internal/service/cloudbroker/image/data_source_image.go index fe0ee4b..8b0b92c 100644 --- a/internal/service/cloudbroker/image/data_source_image.go +++ b/internal/service/cloudbroker/image/data_source_image.go @@ -83,7 +83,7 @@ func flattenImage(d *schema.ResourceData, image *Image) { } func dataSourceImageRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - image, err := utilityImageCheckPresence(d, m) + image, err := utilityImageCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) diff --git a/internal/service/cloudbroker/image/data_source_image_list.go b/internal/service/cloudbroker/image/data_source_image_list.go index 1108d23..5e7f7ae 100644 --- a/internal/service/cloudbroker/image/data_source_image_list.go +++ b/internal/service/cloudbroker/image/data_source_image_list.go @@ -89,7 +89,7 @@ func flattenImageList(il ImageList) []map[string]interface{} { } func dataSourceImageListRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - imageList, err := utilityImageListCheckPresence(d, m) + imageList, err := utilityImageListCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudbroker/image/data_source_image_list_stacks.go b/internal/service/cloudbroker/image/data_source_image_list_stacks.go index 2a47dd5..c672748 100644 --- a/internal/service/cloudbroker/image/data_source_image_list_stacks.go +++ b/internal/service/cloudbroker/image/data_source_image_list_stacks.go @@ -67,7 +67,7 @@ func flattenImageListStacks(_ *schema.ResourceData, stack ImageListStacks) []map } func dataSourceImageListStacksRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - imageListStacks, err := utilityImageListStacksCheckPresence(d, m) + imageListStacks, err := utilityImageListStacksCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudbroker/image/resource_cdrom_image.go b/internal/service/cloudbroker/image/resource_cdrom_image.go index af794eb..8b0068c 100644 --- a/internal/service/cloudbroker/image/resource_cdrom_image.go +++ b/internal/service/cloudbroker/image/resource_cdrom_image.go @@ -90,7 +90,7 @@ func resourceCDROMImageCreate(ctx context.Context, d *schema.ResourceData, m int urlValues.Add("architecture", architecture.(string)) } - imageId, err := c.DecortAPICall("POST", imageCreateCDROMAPI, urlValues) + imageId, err := c.DecortAPICall(ctx, "POST", imageCreateCDROMAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -98,7 +98,7 @@ func resourceCDROMImageCreate(ctx context.Context, d *schema.ResourceData, m int d.SetId(imageId) d.Set("image_id", imageId) - image, err := utilityImageCheckPresence(d, m) + image, err := utilityImageCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } @@ -118,7 +118,7 @@ func resourceCDROMImageCreate(ctx context.Context, d *schema.ResourceData, m int func resourceCDROMImageDelete(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { log.Debugf("resourceCDROMImageDelete: called for %s, id: %s", d.Get("name").(string), d.Id()) - image, err := utilityImageCheckPresence(d, m) + image, err := utilityImageCheckPresence(ctx, d, m) if image == nil { if err != nil { return diag.FromErr(err) @@ -134,7 +134,7 @@ func resourceCDROMImageDelete(ctx context.Context, d *schema.ResourceData, m int urlValues.Add("permanently", strconv.FormatBool(permanently.(bool))) } - _, err = c.DecortAPICall("POST", imageDeleteCDROMAPI, urlValues) + _, err = c.DecortAPICall(ctx, "POST", imageDeleteCDROMAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -379,7 +379,6 @@ func ResourceCDROMImage() *schema.Resource { ReadContext: resourceImageRead, UpdateContext: resourceImageEdit, DeleteContext: resourceCDROMImageDelete, - Exists: resourceImageExists, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, diff --git a/internal/service/cloudbroker/image/resource_delete_images.go b/internal/service/cloudbroker/image/resource_delete_images.go index 5548285..233191a 100644 --- a/internal/service/cloudbroker/image/resource_delete_images.go +++ b/internal/service/cloudbroker/image/resource_delete_images.go @@ -74,7 +74,7 @@ func resourceDeleteListImages(ctx context.Context, d *schema.ResourceData, m int urlValues.Add("permanently", strconv.FormatBool(d.Get("permanently").(bool))) urlValues.Add("imageIds", temp) - _, err := c.DecortAPICall("POST", imageDeleteImagesAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", imageDeleteImagesAPI, urlValues) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudbroker/image/resource_image.go b/internal/service/cloudbroker/image/resource_image.go index 464e687..b578709 100644 --- a/internal/service/cloudbroker/image/resource_image.go +++ b/internal/service/cloudbroker/image/resource_image.go @@ -103,7 +103,7 @@ func resourceImageCreate(ctx context.Context, d *schema.ResourceData, m interfac } else { api = imageSyncCreateAPI } - imageId, err := c.DecortAPICall("POST", api, urlValues) + imageId, err := c.DecortAPICall(ctx, "POST", api, urlValues) if err != nil { return diag.FromErr(err) } @@ -111,7 +111,7 @@ func resourceImageCreate(ctx context.Context, d *schema.ResourceData, m interfac d.SetId(imageId) d.Set("image_id", imageId) - image, err := utilityImageCheckPresence(d, m) + image, err := utilityImageCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } @@ -131,7 +131,7 @@ func resourceImageCreate(ctx context.Context, d *schema.ResourceData, m interfac func resourceImageRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { log.Debugf("resourceImageRead: called for %s id: %s", d.Get("name").(string), d.Id()) - image, err := utilityImageCheckPresence(d, m) + image, err := utilityImageCheckPresence(ctx, d, m) if image == nil { d.SetId("") return diag.FromErr(err) @@ -182,7 +182,7 @@ func resourceImageRead(ctx context.Context, d *schema.ResourceData, m interface{ func resourceImageDelete(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { log.Debugf("resourceImageDelete: called for %s, id: %s", d.Get("name").(string), d.Id()) - image, err := utilityImageCheckPresence(d, m) + image, err := utilityImageCheckPresence(ctx, d, m) if image == nil { if err != nil { return diag.FromErr(err) @@ -202,7 +202,7 @@ func resourceImageDelete(ctx context.Context, d *schema.ResourceData, m interfac urlValues.Add("permanently", strconv.FormatBool(permanently.(bool))) } - _, err = c.DecortAPICall("POST", imageDeleteAPI, urlValues) + _, err = c.DecortAPICall(ctx, "POST", imageDeleteAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -211,10 +211,10 @@ func resourceImageDelete(ctx context.Context, d *schema.ResourceData, m interfac return nil } -func resourceImageExists(d *schema.ResourceData, m interface{}) (bool, error) { +func resourceImageExists(ctx context.Context, d *schema.ResourceData, m interface{}) (bool, error) { log.Debugf("resourceImageExists: called for %s, id: %s", d.Get("name").(string), d.Id()) - image, err := utilityImageCheckPresence(d, m) + image, err := utilityImageCheckPresence(ctx, d, m) if image == nil { if err != nil { return false, err @@ -225,13 +225,13 @@ func resourceImageExists(d *schema.ResourceData, m interface{}) (bool, error) { return true, nil } -func resourceImageEditName(d *schema.ResourceData, m interface{}) error { +func resourceImageEditName(ctx context.Context, d *schema.ResourceData, m interface{}) error { log.Debugf("resourceImageEditName: called for %s, id: %s", d.Get("name").(string), d.Id()) c := m.(*controller.ControllerCfg) urlValues := &url.Values{} urlValues.Add("imageId", strconv.Itoa(d.Get("image_id").(int))) urlValues.Add("name", d.Get("name").(string)) - _, err := c.DecortAPICall("POST", imageEditNameAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", imageEditNameAPI, urlValues) if err != nil { return err } @@ -245,7 +245,7 @@ func resourceImageEdit(ctx context.Context, d *schema.ResourceData, m interface{ urlValues := &url.Values{} if d.HasChange("enabled") { - err := resourceImageChangeEnabled(d, m) + err := resourceImageChangeEnabled(ctx, d, m) if err != nil { return diag.FromErr(err) } @@ -253,7 +253,7 @@ func resourceImageEdit(ctx context.Context, d *schema.ResourceData, m interface{ } if d.HasChange("name") { - err := resourceImageEditName(d, m) + err := resourceImageEditName(ctx, d, m) if err != nil { return diag.FromErr(err) } @@ -261,14 +261,14 @@ func resourceImageEdit(ctx context.Context, d *schema.ResourceData, m interface{ } if d.HasChange("shared_with") { - err := resourceImageShare(d, m) + err := resourceImageShare(ctx, d, m) if err != nil { return diag.FromErr(err) } urlValues = &url.Values{} } if d.HasChange("computeci_id") { - err := resourceImageChangeComputeci(d, m) + err := resourceImageChangeComputeci(ctx, d, m) if err != nil { return diag.FromErr(err) } @@ -276,7 +276,7 @@ func resourceImageEdit(ctx context.Context, d *schema.ResourceData, m interface{ } if d.HasChange("enabled_stacks") { - err := resourceImageUpdateNodes(d, m) + err := resourceImageUpdateNodes(ctx, d, m) if err != nil { return diag.FromErr(err) } @@ -284,7 +284,7 @@ func resourceImageEdit(ctx context.Context, d *schema.ResourceData, m interface{ } if d.HasChange("link_to") { - err := resourceImageLink(d, m) + err := resourceImageLink(ctx, d, m) if err != nil { return diag.FromErr(err) } @@ -302,7 +302,7 @@ func resourceImageEdit(ctx context.Context, d *schema.ResourceData, m interface{ urlValues.Add("bootable", strconv.FormatBool(d.Get("bootable").(bool))) urlValues.Add("hotresize", strconv.FormatBool(d.Get("hot_resize").(bool))) - _, err := c.DecortAPICall("POST", imageEditAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", imageEditAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -311,7 +311,7 @@ func resourceImageEdit(ctx context.Context, d *schema.ResourceData, m interface{ return nil } -func resourceImageChangeEnabled(d *schema.ResourceData, m interface{}) error { +func resourceImageChangeEnabled(ctx context.Context, d *schema.ResourceData, m interface{}) error { var api string c := m.(*controller.ControllerCfg) @@ -322,7 +322,7 @@ func resourceImageChangeEnabled(d *schema.ResourceData, m interface{}) error { } else { api = imageDisableAPI } - resp, err := c.DecortAPICall("POST", api, urlValues) + resp, err := c.DecortAPICall(ctx, "POST", api, urlValues) if err != nil { return err } @@ -336,13 +336,13 @@ func resourceImageChangeEnabled(d *schema.ResourceData, m interface{}) error { return nil } -func resourceImageLink(d *schema.ResourceData, m interface{}) error { +func resourceImageLink(ctx context.Context, d *schema.ResourceData, m interface{}) error { log.Debugf("resourceVirtualImageLink: called for %s, id: %s", d.Get("name").(string), d.Id()) c := m.(*controller.ControllerCfg) urlValues := &url.Values{} urlValues.Add("imageId", strconv.Itoa(d.Get("image_id").(int))) urlValues.Add("targetId", strconv.Itoa(d.Get("link_to").(int))) - _, err := c.DecortAPICall("POST", imageLinkAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", imageLinkAPI, urlValues) if err != nil { return err } @@ -350,7 +350,7 @@ func resourceImageLink(d *schema.ResourceData, m interface{}) error { return nil } -func resourceImageShare(d *schema.ResourceData, m interface{}) error { +func resourceImageShare(ctx context.Context, d *schema.ResourceData, m interface{}) error { log.Debugf("resourceImageShare: called for %s, id: %s", d.Get("name").(string), d.Id()) c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -369,7 +369,7 @@ func resourceImageShare(d *schema.ResourceData, m interface{}) error { } temp = "[" + temp + "]" urlValues.Add("accounts", temp) - _, err := c.DecortAPICall("POST", imageShareAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", imageShareAPI, urlValues) if err != nil { return err } @@ -377,7 +377,7 @@ func resourceImageShare(d *schema.ResourceData, m interface{}) error { return nil } -func resourceImageChangeComputeci(d *schema.ResourceData, m interface{}) error { +func resourceImageChangeComputeci(ctx context.Context, d *schema.ResourceData, m interface{}) error { c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -393,7 +393,7 @@ func resourceImageChangeComputeci(d *schema.ResourceData, m interface{}) error { api = imageComputeciSetAPI } - _, err := c.DecortAPICall("POST", api, urlValues) + _, err := c.DecortAPICall(ctx, "POST", api, urlValues) if err != nil { return err } @@ -401,7 +401,7 @@ func resourceImageChangeComputeci(d *schema.ResourceData, m interface{}) error { return nil } -func resourceImageUpdateNodes(d *schema.ResourceData, m interface{}) error { +func resourceImageUpdateNodes(ctx context.Context, d *schema.ResourceData, m interface{}) error { log.Debugf("resourceImageUpdateNodes: called for %s, id: %s", d.Get("name").(string), d.Id()) c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -418,7 +418,7 @@ func resourceImageUpdateNodes(d *schema.ResourceData, m interface{}) error { } temp = "[" + temp + "]" urlValues.Add("enabledStacks", temp) - _, err := c.DecortAPICall("POST", imageUpdateNodesAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", imageUpdateNodesAPI, urlValues) if err != nil { return err } @@ -677,7 +677,6 @@ func ResourceImage() *schema.Resource { ReadContext: resourceImageRead, UpdateContext: resourceImageEdit, DeleteContext: resourceImageDelete, - Exists: resourceImageExists, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, diff --git a/internal/service/cloudbroker/image/resource_virtual_image.go b/internal/service/cloudbroker/image/resource_virtual_image.go index f778367..ec540d7 100644 --- a/internal/service/cloudbroker/image/resource_virtual_image.go +++ b/internal/service/cloudbroker/image/resource_virtual_image.go @@ -51,7 +51,7 @@ func resourceVirtualImageCreate(ctx context.Context, d *schema.ResourceData, m i urlValues.Add("name", d.Get("name").(string)) urlValues.Add("targetId", strconv.Itoa(d.Get("target_id").(int))) - imageId, err := c.DecortAPICall("POST", imageCreateVirtualAPI, urlValues) + imageId, err := c.DecortAPICall(ctx, "POST", imageCreateVirtualAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -59,7 +59,7 @@ func resourceVirtualImageCreate(ctx context.Context, d *schema.ResourceData, m i d.SetId(imageId) d.Set("image_id", imageId) - image, err := utilityImageCheckPresence(d, m) + image, err := utilityImageCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } @@ -326,7 +326,6 @@ func ResourceVirtualImage() *schema.Resource { ReadContext: resourceImageRead, UpdateContext: resourceImageEdit, DeleteContext: resourceImageDelete, - Exists: resourceImageExists, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, diff --git a/internal/service/cloudbroker/image/utility_image.go b/internal/service/cloudbroker/image/utility_image.go index 10c30ed..04981da 100644 --- a/internal/service/cloudbroker/image/utility_image.go +++ b/internal/service/cloudbroker/image/utility_image.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package image import ( + "context" "encoding/json" "errors" "fmt" @@ -42,7 +43,7 @@ import ( "github.com/rudecs/terraform-provider-decort/internal/controller" ) -func utilityImageCheckPresence(d *schema.ResourceData, m interface{}) (*Image, error) { +func utilityImageCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (*Image, error) { c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -52,7 +53,7 @@ func utilityImageCheckPresence(d *schema.ResourceData, m interface{}) (*Image, e urlValues.Add("imageId", d.Id()) } - resp, err := c.DecortAPICall("POST", imageGetAPI, urlValues) + resp, err := c.DecortAPICall(ctx, "POST", imageGetAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudbroker/image/utility_image_list.go b/internal/service/cloudbroker/image/utility_image_list.go index dffabdf..42adce0 100644 --- a/internal/service/cloudbroker/image/utility_image_list.go +++ b/internal/service/cloudbroker/image/utility_image_list.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package image import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityImageListCheckPresence(d *schema.ResourceData, m interface{}) (ImageList, error) { +func utilityImageListCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (ImageList, error) { imageList := ImageList{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -62,7 +63,7 @@ func utilityImageListCheckPresence(d *schema.ResourceData, m interface{}) (Image } log.Debugf("utilityImageListCheckPresence: load image list") - imageListRaw, err := c.DecortAPICall("POST", imageListGetAPI, urlValues) + imageListRaw, err := c.DecortAPICall(ctx, "POST", imageListGetAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudbroker/image/utility_image_list_stacks.go b/internal/service/cloudbroker/image/utility_image_list_stacks.go index 8062078..3b5a51a 100644 --- a/internal/service/cloudbroker/image/utility_image_list_stacks.go +++ b/internal/service/cloudbroker/image/utility_image_list_stacks.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package image import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityImageListStacksCheckPresence(d *schema.ResourceData, m interface{}) (ImageListStacks, error) { +func utilityImageListStacksCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (ImageListStacks, error) { imageListStacks := ImageListStacks{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -50,7 +51,7 @@ func utilityImageListStacksCheckPresence(d *schema.ResourceData, m interface{}) urlValues.Add("imageId", strconv.Itoa(d.Get("image_id").(int))) log.Debugf("utilityImageListStacksCheckPresence: load image list") - imageListRaw, err := c.DecortAPICall("POST", imageListStacksApi, urlValues) + imageListRaw, err := c.DecortAPICall(ctx, "POST", imageListStacksApi, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudbroker/pcidevice/data_source_pcidevice.go b/internal/service/cloudbroker/pcidevice/data_source_pcidevice.go index 880ff91..90a9ac3 100644 --- a/internal/service/cloudbroker/pcidevice/data_source_pcidevice.go +++ b/internal/service/cloudbroker/pcidevice/data_source_pcidevice.go @@ -42,7 +42,7 @@ import ( ) func dataSourcePcideviceRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - pcidevice, err := utilityPcideviceCheckPresence(d, m) + pcidevice, err := utilityPcideviceCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudbroker/pcidevice/data_source_pcidevice_list.go b/internal/service/cloudbroker/pcidevice/data_source_pcidevice_list.go index b570cbf..ce9baef 100644 --- a/internal/service/cloudbroker/pcidevice/data_source_pcidevice_list.go +++ b/internal/service/cloudbroker/pcidevice/data_source_pcidevice_list.go @@ -64,7 +64,7 @@ func flattenPcideviceList(pl PcideviceList) []map[string]interface{} { } func dataSourcePcideviceListRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - pcideviceList, err := utilityPcideviceListCheckPresence(d, m) + pcideviceList, err := utilityPcideviceListCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudbroker/pcidevice/resource_pcidevice.go b/internal/service/cloudbroker/pcidevice/resource_pcidevice.go index 63408a2..dbf033c 100644 --- a/internal/service/cloudbroker/pcidevice/resource_pcidevice.go +++ b/internal/service/cloudbroker/pcidevice/resource_pcidevice.go @@ -48,7 +48,7 @@ func resourcePcideviceCreate(ctx context.Context, d *schema.ResourceData, m inte log.Debugf("resourcePcideviceCreate: called for pcidevice %s", d.Get("name").(string)) if deviceId, ok := d.GetOk("device_id"); ok { - if exists, err := resourcePcideviceExists(d, m); exists { + if exists, err := resourcePcideviceExists(ctx, d, m); exists { if err != nil { return diag.FromErr(err) } @@ -74,7 +74,7 @@ func resourcePcideviceCreate(ctx context.Context, d *schema.ResourceData, m inte urlValues.Add("description", description.(string)) } - pcideviceId, err := c.DecortAPICall("POST", pcideviceCreateAPI, urlValues) + pcideviceId, err := c.DecortAPICall(ctx, "POST", pcideviceCreateAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -91,7 +91,7 @@ func resourcePcideviceCreate(ctx context.Context, d *schema.ResourceData, m inte } func resourcePcideviceRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - pcidevice, err := utilityPcideviceCheckPresence(d, m) + pcidevice, err := utilityPcideviceCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } @@ -121,7 +121,7 @@ func resourcePcideviceDelete(ctx context.Context, d *schema.ResourceData, m inte urlValues.Add("deviceId", d.Id()) urlValues.Add("force", strconv.FormatBool(d.Get("force").(bool))) - _, err := c.DecortAPICall("POST", pcideviceDeleteAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", pcideviceDeleteAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -131,8 +131,8 @@ func resourcePcideviceDelete(ctx context.Context, d *schema.ResourceData, m inte return nil } -func resourcePcideviceExists(d *schema.ResourceData, m interface{}) (bool, error) { - pcidevice, err := utilityPcideviceCheckPresence(d, m) +func resourcePcideviceExists(ctx context.Context, d *schema.ResourceData, m interface{}) (bool, error) { + pcidevice, err := utilityPcideviceCheckPresence(ctx, d, m) if err != nil { return false, err } @@ -158,7 +158,7 @@ func resourcePcideviceEdit(ctx context.Context, d *schema.ResourceData, m interf api = pcideviceDisableAPI } - _, err := c.DecortAPICall("POST", api, urlValues) + _, err := c.DecortAPICall(ctx, "POST", api, urlValues) if err != nil { return diag.FromErr(err) } @@ -255,7 +255,6 @@ func ResourcePcidevice() *schema.Resource { ReadContext: resourcePcideviceRead, UpdateContext: resourcePcideviceEdit, DeleteContext: resourcePcideviceDelete, - Exists: resourcePcideviceExists, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, diff --git a/internal/service/cloudbroker/pcidevice/utility_pcidevice.go b/internal/service/cloudbroker/pcidevice/utility_pcidevice.go index fb4ffcd..9b22947 100644 --- a/internal/service/cloudbroker/pcidevice/utility_pcidevice.go +++ b/internal/service/cloudbroker/pcidevice/utility_pcidevice.go @@ -32,13 +32,14 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package pcidevice import ( + "context" "strconv" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilityPcideviceCheckPresence(d *schema.ResourceData, m interface{}) (*Pcidevice, error) { - pcideviceList, err := utilityPcideviceListCheckPresence(d, m) +func utilityPcideviceCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (*Pcidevice, error) { + pcideviceList, err := utilityPcideviceListCheckPresence(ctx, d, m) if err != nil { return nil, err } diff --git a/internal/service/cloudbroker/pcidevice/utility_pcidevice_list.go b/internal/service/cloudbroker/pcidevice/utility_pcidevice_list.go index 1dd503d..ada9adc 100644 --- a/internal/service/cloudbroker/pcidevice/utility_pcidevice_list.go +++ b/internal/service/cloudbroker/pcidevice/utility_pcidevice_list.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package pcidevice import ( + "context" "encoding/json" "net/url" @@ -39,12 +40,12 @@ import ( "github.com/rudecs/terraform-provider-decort/internal/controller" ) -func utilityPcideviceListCheckPresence(_ *schema.ResourceData, m interface{}) (PcideviceList, error) { +func utilityPcideviceListCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (PcideviceList, error) { pcideviceList := PcideviceList{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} - pcideviceListRaw, err := c.DecortAPICall("POST", pcideviceListAPI, urlValues) + pcideviceListRaw, err := c.DecortAPICall(ctx, "POST", pcideviceListAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudbroker/sep/data_source_sep.go b/internal/service/cloudbroker/sep/data_source_sep.go index 76d3ea8..80a187a 100644 --- a/internal/service/cloudbroker/sep/data_source_sep.go +++ b/internal/service/cloudbroker/sep/data_source_sep.go @@ -43,7 +43,7 @@ import ( ) func dataSourceSepRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - desSep, err := utilitySepCheckPresence(d, m) + desSep, err := utilitySepCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudbroker/sep/data_source_sep_config.go b/internal/service/cloudbroker/sep/data_source_sep_config.go index 2d8d4ed..def1007 100644 --- a/internal/service/cloudbroker/sep/data_source_sep_config.go +++ b/internal/service/cloudbroker/sep/data_source_sep_config.go @@ -42,7 +42,7 @@ import ( ) func dataSourceSepConfigRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - sepConfig, err := utilitySepConfigCheckPresence(d, m) + sepConfig, err := utilitySepConfigCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudbroker/sep/data_source_sep_consumption.go b/internal/service/cloudbroker/sep/data_source_sep_consumption.go index c4aa957..1b3406b 100644 --- a/internal/service/cloudbroker/sep/data_source_sep_consumption.go +++ b/internal/service/cloudbroker/sep/data_source_sep_consumption.go @@ -41,7 +41,7 @@ import ( ) func dataSourceSepConsumptionRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - sepCons, err := utilitySepConsumptionCheckPresence(d, m) + sepCons, err := utilitySepConsumptionCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudbroker/sep/data_source_sep_disk_list.go b/internal/service/cloudbroker/sep/data_source_sep_disk_list.go index 8e0fe92..4df4366 100644 --- a/internal/service/cloudbroker/sep/data_source_sep_disk_list.go +++ b/internal/service/cloudbroker/sep/data_source_sep_disk_list.go @@ -41,7 +41,7 @@ import ( ) func dataSourceSepDiskListRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - sepDiskList, err := utilitySepDiskListCheckPresence(d, m) + sepDiskList, err := utilitySepDiskListCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudbroker/sep/data_source_sep_list.go b/internal/service/cloudbroker/sep/data_source_sep_list.go index fe9bd5d..c8b7e41 100644 --- a/internal/service/cloudbroker/sep/data_source_sep_list.go +++ b/internal/service/cloudbroker/sep/data_source_sep_list.go @@ -69,7 +69,7 @@ func flattenSepList(sl SepList) []map[string]interface{} { } func dataSourceSepListRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - sepList, err := utilitySepListCheckPresence(d, m) + sepList, err := utilitySepListCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudbroker/sep/data_source_sep_pool.go b/internal/service/cloudbroker/sep/data_source_sep_pool.go index 92238e8..d045d14 100644 --- a/internal/service/cloudbroker/sep/data_source_sep_pool.go +++ b/internal/service/cloudbroker/sep/data_source_sep_pool.go @@ -42,7 +42,7 @@ import ( ) func dataSourceSepPoolRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { - sepPool, err := utilitySepPoolCheckPresence(d, m) + sepPool, err := utilitySepPoolCheckPresence(ctx, d, m) if err != nil { return diag.FromErr(err) } diff --git a/internal/service/cloudbroker/sep/resource_sep.go b/internal/service/cloudbroker/sep/resource_sep.go index 95c341f..25b54cf 100644 --- a/internal/service/cloudbroker/sep/resource_sep.go +++ b/internal/service/cloudbroker/sep/resource_sep.go @@ -51,7 +51,7 @@ func resourceSepCreate(ctx context.Context, d *schema.ResourceData, m interface{ log.Debugf("resourceSepCreate: called for sep %s", d.Get("name").(string)) if sepId, ok := d.GetOk("sep_id"); ok { - if exists, err := resourceSepExists(d, m); exists { + if exists, err := resourceSepExists(ctx, d, m); exists { if err != nil { return diag.FromErr(err) } @@ -109,7 +109,7 @@ func resourceSepCreate(ctx context.Context, d *schema.ResourceData, m interface{ temp = "[" + temp + "]" urlValues.Add("provider_nids", temp) - sepId, err := c.DecortAPICall("POST", sepCreateAPI, urlValues) + sepId, err := c.DecortAPICall(ctx, "POST", sepCreateAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -131,7 +131,7 @@ func resourceSepCreate(ctx context.Context, d *schema.ResourceData, m interface{ func resourceSepRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { log.Debugf("resourceSepRead: called for %s id: %d", d.Get("name").(string), d.Get("sep_id").(int)) - sep, err := utilitySepCheckPresence(d, m) + sep, err := utilitySepCheckPresence(ctx, d, m) if sep == nil { d.SetId("") return diag.FromErr(err) @@ -159,7 +159,7 @@ func resourceSepRead(ctx context.Context, d *schema.ResourceData, m interface{}) func resourceSepDelete(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { log.Debugf("resourceSepDelete: called for %s, id: %d", d.Get("name").(string), d.Get("sep_id").(int)) - sepDes, err := utilitySepCheckPresence(d, m) + sepDes, err := utilitySepCheckPresence(ctx, d, m) if sepDes == nil { if err != nil { return diag.FromErr(err) @@ -171,7 +171,7 @@ func resourceSepDelete(ctx context.Context, d *schema.ResourceData, m interface{ urlValues := &url.Values{} urlValues.Add("sep_id", strconv.Itoa(d.Get("sep_id").(int))) - _, err = c.DecortAPICall("POST", sepDeleteAPI, urlValues) + _, err = c.DecortAPICall(ctx, "POST", sepDeleteAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -180,10 +180,10 @@ func resourceSepDelete(ctx context.Context, d *schema.ResourceData, m interface{ return nil } -func resourceSepExists(d *schema.ResourceData, m interface{}) (bool, error) { +func resourceSepExists(ctx context.Context, d *schema.ResourceData, m interface{}) (bool, error) { log.Debugf("resourceSepExists: called for %s, id: %d", d.Get("name").(string), d.Get("sep_id").(int)) - sepDes, err := utilitySepCheckPresence(d, m) + sepDes, err := utilitySepCheckPresence(ctx, d, m) if sepDes == nil { if err != nil { return false, err @@ -204,7 +204,7 @@ func resourceSepEdit(ctx context.Context, d *schema.ResourceData, m interface{}) if decommission { urlValues.Add("sep_id", strconv.Itoa(d.Get("sep_id").(int))) urlValues.Add("clear_physically", strconv.FormatBool(d.Get("clear_physically").(bool))) - _, err := c.DecortAPICall("POST", sepDecommissionAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", sepDecommissionAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -216,7 +216,7 @@ func resourceSepEdit(ctx context.Context, d *schema.ResourceData, m interface{}) updCapacityLimit := d.Get("upd_capacity_limit").(bool) if updCapacityLimit { urlValues.Add("sep_id", strconv.Itoa(d.Get("sep_id").(int))) - _, err := c.DecortAPICall("POST", sepUpdateCapacityLimitAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", sepUpdateCapacityLimitAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -227,11 +227,11 @@ func resourceSepEdit(ctx context.Context, d *schema.ResourceData, m interface{}) if d.HasChange("config") { urlValues.Add("sep_id", strconv.Itoa(d.Get("sep_id").(int))) urlValues.Add("config", d.Get("config").(string)) - _, err := c.DecortAPICall("POST", sepConfigValidateAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", sepConfigValidateAPI, urlValues) if err != nil { return diag.FromErr(err) } - _, err = c.DecortAPICall("POST", sepConfigInsertAPI, urlValues) + _, err = c.DecortAPICall(ctx, "POST", sepConfigInsertAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -247,7 +247,7 @@ func resourceSepEdit(ctx context.Context, d *schema.ResourceData, m interface{}) urlValues.Add("field_value", field["field_value"].(string)) urlValues.Add("field_type", field["field_type"].(string)) - _, err := c.DecortAPICall("POST", sepConfigFieldEditAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", sepConfigFieldEditAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -255,7 +255,7 @@ func resourceSepEdit(ctx context.Context, d *schema.ResourceData, m interface{}) urlValues = &url.Values{} if d.HasChange("enable") { - err := resourceSepChangeEnabled(d, m) + err := resourceSepChangeEnabled(ctx, d, m) if err != nil { return diag.FromErr(err) } @@ -263,7 +263,7 @@ func resourceSepEdit(ctx context.Context, d *schema.ResourceData, m interface{}) urlValues = &url.Values{} if d.HasChange("consumed_by") { - err := resourceSepUpdateNodes(d, m) + err := resourceSepUpdateNodes(ctx, d, m) if err != nil { return diag.FromErr(err) } @@ -271,7 +271,7 @@ func resourceSepEdit(ctx context.Context, d *schema.ResourceData, m interface{}) urlValues = &url.Values{} if d.HasChange("provided_by") { - err := resourceSepUpdateProviders(d, m) + err := resourceSepUpdateProviders(ctx, d, m) if err != nil { return diag.FromErr(err) } @@ -285,7 +285,7 @@ func resourceSepEdit(ctx context.Context, d *schema.ResourceData, m interface{}) return nil } -func resourceSepChangeEnabled(d *schema.ResourceData, m interface{}) error { +func resourceSepChangeEnabled(ctx context.Context, d *schema.ResourceData, m interface{}) error { var api string c := m.(*controller.ControllerCfg) @@ -296,7 +296,7 @@ func resourceSepChangeEnabled(d *schema.ResourceData, m interface{}) error { } else { api = sepDisableAPI } - resp, err := c.DecortAPICall("POST", api, urlValues) + resp, err := c.DecortAPICall(ctx, "POST", api, urlValues) if err != nil { return err } @@ -310,7 +310,7 @@ func resourceSepChangeEnabled(d *schema.ResourceData, m interface{}) error { return nil } -func resourceSepUpdateNodes(d *schema.ResourceData, m interface{}) error { +func resourceSepUpdateNodes(ctx context.Context, d *schema.ResourceData, m interface{}) error { log.Debugf("resourceSepUpdateNodes: called for %s, id: %d", d.Get("name").(string), d.Get("sep_id").(int)) c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -345,7 +345,7 @@ func resourceSepUpdateNodes(d *schema.ResourceData, m interface{}) error { } temp = "[" + temp + "]" urlValues.Add("consumer_nids", temp) - _, err := c.DecortAPICall("POST", api, urlValues) + _, err := c.DecortAPICall(ctx, "POST", api, urlValues) if err != nil { return err } @@ -362,7 +362,7 @@ func findElInt(sl []interface{}, el interface{}) bool { return false } -func resourceSepUpdateProviders(d *schema.ResourceData, m interface{}) error { +func resourceSepUpdateProviders(ctx context.Context, d *schema.ResourceData, m interface{}) error { log.Debugf("resourceSepUpdateProviders: called for %s, id: %d", d.Get("name").(string), d.Get("sep_id").(int)) c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -379,7 +379,7 @@ func resourceSepUpdateProviders(d *schema.ResourceData, m interface{}) error { } temp = "[" + temp + "]" urlValues.Add("provider_nids", temp) - _, err := c.DecortAPICall("POST", sepAddProviderNodesAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", sepAddProviderNodesAPI, urlValues) if err != nil { return err } @@ -524,7 +524,6 @@ func ResourceSep() *schema.Resource { ReadContext: resourceSepRead, UpdateContext: resourceSepEdit, DeleteContext: resourceSepDelete, - Exists: resourceSepExists, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, diff --git a/internal/service/cloudbroker/sep/resource_sep_config.go b/internal/service/cloudbroker/sep/resource_sep_config.go index dca075f..f48b51d 100644 --- a/internal/service/cloudbroker/sep/resource_sep_config.go +++ b/internal/service/cloudbroker/sep/resource_sep_config.go @@ -49,7 +49,7 @@ func resourceSepConfigCreate(ctx context.Context, d *schema.ResourceData, m inte log.Debugf("resourceSepConfigCreate: called for sep id %d", d.Get("sep_id").(int)) if _, ok := d.GetOk("sep_id"); ok { - if exists, err := resourceSepConfigExists(d, m); exists { + if exists, err := resourceSepConfigExists(ctx, d, m); exists { if err != nil { return diag.FromErr(err) } @@ -71,7 +71,7 @@ func resourceSepConfigCreate(ctx context.Context, d *schema.ResourceData, m inte func resourceSepConfigRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { log.Debugf("resourceSepConfigRead: called for sep id: %d", d.Get("sep_id").(int)) - sepConfig, err := utilitySepConfigCheckPresence(d, m) + sepConfig, err := utilitySepConfigCheckPresence(ctx, d, m) if sepConfig == nil { d.SetId("") return diag.FromErr(err) @@ -86,10 +86,10 @@ func resourceSepConfigDelete(ctx context.Context, d *schema.ResourceData, m inte return nil } -func resourceSepConfigExists(d *schema.ResourceData, m interface{}) (bool, error) { +func resourceSepConfigExists(ctx context.Context, d *schema.ResourceData, m interface{}) (bool, error) { log.Debugf("resourceSepConfigExists: called for sep id: %d", d.Get("sep_id").(int)) - sepDesConfig, err := utilitySepConfigCheckPresence(d, m) + sepDesConfig, err := utilitySepConfigCheckPresence(ctx, d, m) if sepDesConfig == nil { if err != nil { return false, err @@ -108,11 +108,11 @@ func resourceSepConfigEdit(ctx context.Context, d *schema.ResourceData, m interf if d.HasChange("config") { urlValues.Add("sep_id", strconv.Itoa(d.Get("sep_id").(int))) urlValues.Add("config", d.Get("config").(string)) - _, err := c.DecortAPICall("POST", sepConfigValidateAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", sepConfigValidateAPI, urlValues) if err != nil { return diag.FromErr(err) } - _, err = c.DecortAPICall("POST", sepConfigInsertAPI, urlValues) + _, err = c.DecortAPICall(ctx, "POST", sepConfigInsertAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -128,7 +128,7 @@ func resourceSepConfigEdit(ctx context.Context, d *schema.ResourceData, m interf urlValues.Add("field_value", field["field_value"].(string)) urlValues.Add("field_type", field["field_type"].(string)) - _, err := c.DecortAPICall("POST", sepConfigFieldEditAPI, urlValues) + _, err := c.DecortAPICall(ctx, "POST", sepConfigFieldEditAPI, urlValues) if err != nil { return diag.FromErr(err) } @@ -186,7 +186,6 @@ func ResourceSepConfig() *schema.Resource { ReadContext: resourceSepConfigRead, UpdateContext: resourceSepConfigEdit, DeleteContext: resourceSepConfigDelete, - Exists: resourceSepConfigExists, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, diff --git a/internal/service/cloudbroker/sep/utility_sep.go b/internal/service/cloudbroker/sep/utility_sep.go index a8f3f9d..724fcdf 100644 --- a/internal/service/cloudbroker/sep/utility_sep.go +++ b/internal/service/cloudbroker/sep/utility_sep.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package sep import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilitySepCheckPresence(d *schema.ResourceData, m interface{}) (*Sep, error) { +func utilitySepCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (*Sep, error) { c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -55,7 +56,7 @@ func utilitySepCheckPresence(d *schema.ResourceData, m interface{}) (*Sep, error } log.Debugf("utilitySepCheckPresence: load sep") - sepRaw, err := c.DecortAPICall("POST", sepGetAPI, urlValues) + sepRaw, err := c.DecortAPICall(ctx, "POST", sepGetAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudbroker/sep/utility_sep_config.go b/internal/service/cloudbroker/sep/utility_sep_config.go index d63f19f..e4e247c 100644 --- a/internal/service/cloudbroker/sep/utility_sep_config.go +++ b/internal/service/cloudbroker/sep/utility_sep_config.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package sep import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilitySepConfigCheckPresence(d *schema.ResourceData, m interface{}) (SepConfig, error) { +func utilitySepConfigCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (SepConfig, error) { c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -51,7 +52,7 @@ func utilitySepConfigCheckPresence(d *schema.ResourceData, m interface{}) (SepCo urlValues.Add("sep_id", strconv.Itoa(d.Get("sep_id").(int))) log.Debugf("utilitySepConfigCheckPresence: load sep config") - sepConfigRaw, err := c.DecortAPICall("POST", sepGetConfigAPI, urlValues) + sepConfigRaw, err := c.DecortAPICall(ctx, "POST", sepGetConfigAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudbroker/sep/utility_sep_consumption.go b/internal/service/cloudbroker/sep/utility_sep_consumption.go index 5ce0d8e..88b0985 100644 --- a/internal/service/cloudbroker/sep/utility_sep_consumption.go +++ b/internal/service/cloudbroker/sep/utility_sep_consumption.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package sep import ( + "context" "encoding/json" "net/url" "strconv" @@ -40,7 +41,7 @@ import ( "github.com/rudecs/terraform-provider-decort/internal/controller" ) -func utilitySepConsumptionCheckPresence(d *schema.ResourceData, m interface{}) (*SepConsumption, error) { +func utilitySepConsumptionCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (*SepConsumption, error) { c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -48,7 +49,7 @@ func utilitySepConsumptionCheckPresence(d *schema.ResourceData, m interface{}) ( urlValues.Add("sep_id", strconv.Itoa(d.Get("sep_id").(int))) - sepConsRaw, err := c.DecortAPICall("POST", sepConsumptionAPI, urlValues) + sepConsRaw, err := c.DecortAPICall(ctx, "POST", sepConsumptionAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudbroker/sep/utility_sep_disk_list.go b/internal/service/cloudbroker/sep/utility_sep_disk_list.go index 2a2676a..47b0aa8 100644 --- a/internal/service/cloudbroker/sep/utility_sep_disk_list.go +++ b/internal/service/cloudbroker/sep/utility_sep_disk_list.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package sep import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilitySepDiskListCheckPresence(d *schema.ResourceData, m interface{}) ([]int, error) { +func utilitySepDiskListCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) ([]int, error) { c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -55,7 +56,7 @@ func utilitySepDiskListCheckPresence(d *schema.ResourceData, m interface{}) ([]i } log.Debugf("utilitySepDiskListCheckPresence: load sep") - sepDiskListRaw, err := c.DecortAPICall("POST", sepDiskListAPI, urlValues) + sepDiskListRaw, err := c.DecortAPICall(ctx, "POST", sepDiskListAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudbroker/sep/utility_sep_list.go b/internal/service/cloudbroker/sep/utility_sep_list.go index ab1fd2f..96dbe0e 100644 --- a/internal/service/cloudbroker/sep/utility_sep_list.go +++ b/internal/service/cloudbroker/sep/utility_sep_list.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package sep import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilitySepListCheckPresence(d *schema.ResourceData, m interface{}) (SepList, error) { +func utilitySepListCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (SepList, error) { sepList := SepList{} c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -55,7 +56,7 @@ func utilitySepListCheckPresence(d *schema.ResourceData, m interface{}) (SepList } log.Debugf("utilitySepListCheckPresence: load image list") - sepListRaw, err := c.DecortAPICall("POST", sepListAPI, urlValues) + sepListRaw, err := c.DecortAPICall(ctx, "POST", sepListAPI, urlValues) if err != nil { return nil, err } diff --git a/internal/service/cloudbroker/sep/utility_sep_pool.go b/internal/service/cloudbroker/sep/utility_sep_pool.go index a9064fc..4270569 100644 --- a/internal/service/cloudbroker/sep/utility_sep_pool.go +++ b/internal/service/cloudbroker/sep/utility_sep_pool.go @@ -32,6 +32,7 @@ Documentation: https://github.com/rudecs/terraform-provider-decort/wiki package sep import ( + "context" "encoding/json" "net/url" "strconv" @@ -42,7 +43,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -func utilitySepPoolCheckPresence(d *schema.ResourceData, m interface{}) (SepPool, error) { +func utilitySepPoolCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (SepPool, error) { c := m.(*controller.ControllerCfg) urlValues := &url.Values{} @@ -52,7 +53,7 @@ func utilitySepPoolCheckPresence(d *schema.ResourceData, m interface{}) (SepPool urlValues.Add("pool_name", d.Get("pool_name").(string)) log.Debugf("utilitySepDesPoolCheckPresence: load sep") - sepPoolRaw, err := c.DecortAPICall("POST", sepGetPoolAPI, urlValues) + sepPoolRaw, err := c.DecortAPICall(ctx, "POST", sepGetPoolAPI, urlValues) if err != nil { return nil, err }