Skip to content

Commit

Permalink
Pull request #24: BMA-5998 Improve debugging with better error messag…
Browse files Browse the repository at this point in the history
…es and logging

Merge in INFRA/terraform-provider-leaseweb from feature/BMA-5998/improve-debugging to master

* commit 'a6dc796b8c6a9b33b6f1126b0148b3b319cc477c':
  BMA-5998 Display JSON request encoding errors similar to response decoding ones
  BMA-5998 Add API context to response body decoding error
  BMA-5998 Extract API context message to variable
  BMA-5998 Add prefix message to response body JSON decoding error
  BMA-5998 Remove separate logAPIRequest function
  BMA-5998 Introduce doAPIRequest helper function
  BMA-5998 Add some missing deferred closing of response.Body
  BMA-5998 Log URL query parameters as part of the URL
  BMA-5998 Use http method constants
  BMA-5988 Fix confusing error variables name
  BMA-5998 Add correlation ID in API request error logging
  BMA-5998 Add error details in API request error logging
  BMA-5998 Add logging of API requests error
  BMA-5998 Add logging of API requests
  BMA-5988 Extract API URL and method to variables
  BMA-5988 Pass context to all API client functions
  BMA-5998 Improve error message context with more specific information
  BMA-5998 Display error information from response body
  • Loading branch information
tardypad committed Nov 16, 2022
2 parents 7b42d47 + a6dc796 commit 3d9e406
Show file tree
Hide file tree
Showing 9 changed files with 436 additions and 302 deletions.
672 changes: 403 additions & 269 deletions leaseweb/api_client.go

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion leaseweb/data_source_dedicated_server_control_panels.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ control panels available for installation on a dedicated server.
func dataSourceDedicatedServerControlPanelsRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
var diags diag.Diagnostics
operatingSystemID := d.Get("operating_system_id").(string)
controlPanels, err := getControlPanels(operatingSystemID)
controlPanels, err := getControlPanels(ctx, operatingSystemID)
if err != nil {
return diag.FromErr(err)
}
Expand Down
2 changes: 1 addition & 1 deletion leaseweb/data_source_dedicated_server_operating_systems.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ operating systems available for installation on a dedicated server.
func dataSourceDedicatedServerOperatingSystemsRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
var diags diag.Diagnostics

operatingSystems, err := getOperatingSystems()
operatingSystems, err := getOperatingSystems(ctx)
if err != nil {
return diag.FromErr(err)
}
Expand Down
2 changes: 1 addition & 1 deletion leaseweb/data_source_dedicated_servers.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ func dataSourceDedicatedServersRead(ctx context.Context, d *schema.ResourceData,
var diags diag.Diagnostics

site := d.Get("site").(string)
servers, err := getAllServers(site)
servers, err := getAllServers(ctx, site)
if err != nil {
return diag.FromErr(err)
}
Expand Down
30 changes: 15 additions & 15 deletions leaseweb/resource_dedicated_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ func resourceDedicatedServerRead(ctx context.Context, d *schema.ResourceData, m
var diags diag.Diagnostics

// get basic data
server, err := getServer(serverID)
server, err := getServer(ctx, serverID)
if err != nil {
return diag.FromErr(err)
}
Expand All @@ -117,29 +117,29 @@ func resourceDedicatedServerRead(ctx context.Context, d *schema.ResourceData, m
})

// get IP data
ip, err := getServerIP(serverID, server.NetworkInterfaces.Public.IP)
ip, err := getServerIP(ctx, serverID, server.NetworkInterfaces.Public.IP)
if err != nil {
return diag.FromErr(err)
}
d.Set("reverse_lookup", ip.ReverseLookup)
d.Set("public_ip_null_routed", ip.NullRouted)

// get lease data
lease, err := getServerLease(serverID)
lease, err := getServerLease(ctx, serverID)
if err != nil {
return diag.FromErr(err)
}
d.Set("dhcp_lease", lease.GetBootfile())

// get power data
powerInfo, err := getPowerInfo(serverID)
powerInfo, err := getPowerInfo(ctx, serverID)
if err != nil {
return diag.FromErr(err)
}
d.Set("powered_on", powerInfo.IsPoweredOn())

// get public network interface data
publicNetworkInterfaceInfo, err := getNetworkInterfaceInfo(serverID, "public")
publicNetworkInterfaceInfo, err := getNetworkInterfaceInfo(ctx, serverID, "public")
d.Set("public_network_interface_opened", publicNetworkInterfaceInfo.IsOpened())

return diags
Expand All @@ -150,7 +150,7 @@ func resourceDedicatedServerUpdate(ctx context.Context, d *schema.ResourceData,

if d.HasChange("reference") {
reference := d.Get("reference").(string)
if err := updateReference(serverID, reference); err != nil {
if err := updateReference(ctx, serverID, reference); err != nil {
return diag.FromErr(err)
}

Expand All @@ -161,43 +161,43 @@ func resourceDedicatedServerUpdate(ctx context.Context, d *schema.ResourceData,
if d.HasChange("reverse_lookup") {
publicIP := d.Get("public_ip").(string)
reverseLookup := d.Get("reverse_lookup").(string)
if err := updateReverseLookup(serverID, publicIP, reverseLookup); err != nil {
if err := updateReverseLookup(ctx, serverID, publicIP, reverseLookup); err != nil {
return diag.FromErr(err)
}
}

if d.HasChange("dhcp_lease") {
bootFile := d.Get("dhcp_lease").(string)
if bootFile != "" {
if err := addDHCPLease(serverID, bootFile); err != nil {
if err := addDHCPLease(ctx, serverID, bootFile); err != nil {
return diag.FromErr(err)
}
} else {
if err := removeDHCPLease(serverID); err != nil {
if err := removeDHCPLease(ctx, serverID); err != nil {
return diag.FromErr(err)
}
}
}

if d.HasChange("powered_on") {
if d.Get("powered_on").(bool) {
if err := powerOnServer(serverID); err != nil {
if err := powerOnServer(ctx, serverID); err != nil {
return diag.FromErr(err)
}
} else {
if err := powerOffServer(serverID); err != nil {
if err := powerOffServer(ctx, serverID); err != nil {
return diag.FromErr(err)
}
}
}

if d.HasChange("public_network_interface_opened") {
if d.Get("public_network_interface_opened").(bool) {
if err := openNetworkInterface(serverID, "public"); err != nil {
if err := openNetworkInterface(ctx, serverID, "public"); err != nil {
return diag.FromErr(err)
}
} else {
if err := closeNetworkInterface(serverID, "public"); err != nil {
if err := closeNetworkInterface(ctx, serverID, "public"); err != nil {
return diag.FromErr(err)
}
}
Expand All @@ -206,11 +206,11 @@ func resourceDedicatedServerUpdate(ctx context.Context, d *schema.ResourceData,
if d.HasChange("public_ip_null_routed") {
publicIP := d.Get("public_ip").(string)
if d.Get("public_ip_null_routed").(bool) {
if err := nullIP(serverID, publicIP); err != nil {
if err := nullIP(ctx, serverID, publicIP); err != nil {
return diag.FromErr(err)
}
} else {
if err := unnullIP(serverID, publicIP); err != nil {
if err := unnullIP(ctx, serverID, publicIP); err != nil {
return diag.FromErr(err)
}
}
Expand Down
8 changes: 4 additions & 4 deletions leaseweb/resource_dedicated_server_credential.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ func resourceDedicatedServerCredentialCreate(ctx context.Context, d *schema.Reso
Password: d.Get("password").(string),
}

createdCredential, err := createDedicatedServerCredential(serverID, &credential)
createdCredential, err := createDedicatedServerCredential(ctx, serverID, &credential)
if err != nil {
return diag.FromErr(err)
}
Expand All @@ -94,7 +94,7 @@ func resourceDedicatedServerCredentialRead(ctx context.Context, d *schema.Resour

var diags diag.Diagnostics

credential, err := getDedicatedServerCredential(serverID, credentialType, username)
credential, err := getDedicatedServerCredential(ctx, serverID, credentialType, username)
if err != nil {
return diag.FromErr(err)
}
Expand All @@ -113,7 +113,7 @@ func resourceDedicatedServerCredentialUpdate(ctx context.Context, d *schema.Reso
Password: d.Get("password").(string),
}

if _, err := updateDedicatedServerCredential(serverID, &credential); err != nil {
if _, err := updateDedicatedServerCredential(ctx, serverID, &credential); err != nil {
return diag.FromErr(err)
}

Expand All @@ -131,7 +131,7 @@ func resourceDedicatedServerCredentialDelete(ctx context.Context, d *schema.Reso
Password: d.Get("password").(string),
}

if err := deleteDedicatedServerCredential(serverID, &credential); err != nil {
if err := deleteDedicatedServerCredential(ctx, serverID, &credential); err != nil {
return diag.FromErr(err)
}

Expand Down
6 changes: 3 additions & 3 deletions leaseweb/resource_dedicated_server_installation.go
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ func resourceDedicatedServerInstallationCreate(ctx context.Context, d *schema.Re
payload["partitions"] = partitions
}

installationJob, err := launchInstallationJob(serverID, &payload)
installationJob, err := launchInstallationJob(ctx, serverID, &payload)
if err != nil {
return diag.FromErr(err)
}
Expand All @@ -266,7 +266,7 @@ func resourceDedicatedServerInstallationCreate(ctx context.Context, d *schema.Re
Pending: []string{"ACTIVE"},
Target: []string{"FINISHED"},
Refresh: func() (interface{}, string, error) {
job, err := getJob(serverID, installationJob.UUID)
job, err := getJob(ctx, serverID, installationJob.UUID)
if err != nil {
return nil, "error", err
}
Expand All @@ -288,7 +288,7 @@ func resourceDedicatedServerInstallationRead(ctx context.Context, d *schema.Reso

var diags diag.Diagnostics

installationJob, err := getLatestInstallationJob(serverID)
installationJob, err := getLatestInstallationJob(ctx, serverID)
if err != nil {
return diag.FromErr(err)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ func resourceDedicatedServerNotificationSettingBandwidthCreate(ctx context.Conte
Unit: d.Get("unit").(string),
}

createdNotificationSetting, err := createDedicatedServerNotificationSetting(serverID, "bandwidth", &notificationSetting)
createdNotificationSetting, err := createDedicatedServerNotificationSetting(ctx, serverID, "bandwidth", &notificationSetting)
if err != nil {
return diag.FromErr(err)
}
Expand All @@ -99,7 +99,7 @@ func resourceDedicatedServerNotificationSettingBandwidthRead(ctx context.Context

var diags diag.Diagnostics

notificationSetting, err := getDedicatedServerNotificationSetting(serverID, "bandwidth", notificationSettingID)
notificationSetting, err := getDedicatedServerNotificationSetting(ctx, serverID, "bandwidth", notificationSettingID)
if err != nil {
return diag.FromErr(err)
}
Expand All @@ -120,7 +120,7 @@ func resourceDedicatedServerNotificationSettingBandwidthUpdate(ctx context.Conte
Unit: d.Get("unit").(string),
}

if _, err := updateDedicatedServerNotificationSetting(serverID, "bandwidth", notificationSettingID, &notificationSetting); err != nil {
if _, err := updateDedicatedServerNotificationSetting(ctx, serverID, "bandwidth", notificationSettingID, &notificationSetting); err != nil {
return diag.FromErr(err)
}

Expand All @@ -133,7 +133,7 @@ func resourceDedicatedServerNotificationSettingBandwidthDelete(ctx context.Conte
serverID := d.Get("dedicated_server_id").(string)
notificationSettingID := d.Get("id").(string)

if err := deleteDedicatedServerNotificationSetting(serverID, "bandwidth", notificationSettingID); err != nil {
if err := deleteDedicatedServerNotificationSetting(ctx, serverID, "bandwidth", notificationSettingID); err != nil {
return diag.FromErr(err)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ func resourceDedicatedServerNotificationSettingDatatrafficCreate(ctx context.Con
Unit: d.Get("unit").(string),
}

createdNotificationSetting, err := createDedicatedServerNotificationSetting(serverID, "datatraffic", &notificationSetting)
createdNotificationSetting, err := createDedicatedServerNotificationSetting(ctx, serverID, "datatraffic", &notificationSetting)
if err != nil {
return diag.FromErr(err)
}
Expand All @@ -99,7 +99,7 @@ func resourceDedicatedServerNotificationSettingDatatrafficRead(ctx context.Conte

var diags diag.Diagnostics

notificationSetting, err := getDedicatedServerNotificationSetting(serverID, "datatraffic", notificationSettingID)
notificationSetting, err := getDedicatedServerNotificationSetting(ctx, serverID, "datatraffic", notificationSettingID)
if err != nil {
return diag.FromErr(err)
}
Expand All @@ -120,7 +120,7 @@ func resourceDedicatedServerNotificationSettingDatatrafficUpdate(ctx context.Con
Unit: d.Get("unit").(string),
}

if _, err := updateDedicatedServerNotificationSetting(serverID, "datatraffic", notificationSettingID, &notificationSetting); err != nil {
if _, err := updateDedicatedServerNotificationSetting(ctx, serverID, "datatraffic", notificationSettingID, &notificationSetting); err != nil {
return diag.FromErr(err)
}

Expand All @@ -133,7 +133,7 @@ func resourceDedicatedServerNotificationSettingDatatrafficDelete(ctx context.Con
serverID := d.Get("dedicated_server_id").(string)
notificationSettingID := d.Get("id").(string)

if err := deleteDedicatedServerNotificationSetting(serverID, "datatraffic", notificationSettingID); err != nil {
if err := deleteDedicatedServerNotificationSetting(ctx, serverID, "datatraffic", notificationSettingID); err != nil {
return diag.FromErr(err)
}

Expand Down

0 comments on commit 3d9e406

Please sign in to comment.