From 6327ba116065e665077554ed4eef1b302caaf92e Mon Sep 17 00:00:00 2001 From: Priyanshu Krishnan <118425422+Krishnan-Priyanshu@users.noreply.github.com> Date: Wed, 18 Sep 2024 14:16:24 +0530 Subject: [PATCH] fix for s3 feature (#206) * fix for s3 feature * signing commit --- powerscale/helper/s3_global_setting_helper.go | 4 ++-- powerscale/helper/s3_key_helper.go | 10 ++++++++++ powerscale/provider/s3_global_setting_resource.go | 4 ++-- powerscale/provider/s3_zone_settings_resource.go | 4 ++++ 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/powerscale/helper/s3_global_setting_helper.go b/powerscale/helper/s3_global_setting_helper.go index 48294026..d603bab4 100644 --- a/powerscale/helper/s3_global_setting_helper.go +++ b/powerscale/helper/s3_global_setting_helper.go @@ -63,12 +63,12 @@ func SetGlobalSetting(ctx context.Context, client *client.Client, s3GSPlan model } // GetGlobalSetting reads the S3 Global Setting. -func GetGlobalSetting(ctx context.Context, client *client.Client, s3GlobalSettingState models.S3GlobalSettingResource) error { +func GetGlobalSetting(ctx context.Context, client *client.Client, s3GlobalSettingState *models.S3GlobalSettingResource) error { globalSettings, err := GetS3GlobalSetting(ctx, client) if err != nil { return err } - err = CopyFieldsToNonNestedModel(ctx, globalSettings.GetSettings(), &s3GlobalSettingState) + err = CopyFieldsToNonNestedModel(ctx, globalSettings.GetSettings(), s3GlobalSettingState) if err != nil { return err } diff --git a/powerscale/helper/s3_key_helper.go b/powerscale/helper/s3_key_helper.go index 053bd4ef..6caba341 100644 --- a/powerscale/helper/s3_key_helper.go +++ b/powerscale/helper/s3_key_helper.go @@ -20,6 +20,7 @@ package helper import ( "context" powerscale "dell/powerscale-go-client" + "fmt" "terraform-provider-powerscale/client" "terraform-provider-powerscale/powerscale/models" ) @@ -37,6 +38,9 @@ func GenerateS3Key(ctx context.Context, c *client.Client, state models.S3KeyReso } param = param.V10S3Key(eket) response, _, err := param.Execute() + if err != nil { + err = fmt.Errorf(GetErrorString(err, "s3 key generate error: ")) + } return response, err } @@ -47,6 +51,9 @@ func GetS3Key(ctx context.Context, c *client.Client, state models.S3KeyResourceD param = param.Zone(state.Zone.ValueString()) } response, _, err := param.Execute() + if err != nil { + err = fmt.Errorf(GetErrorString(err, "s3 key get error: ")) + } return response, err } @@ -57,5 +64,8 @@ func DeleteS3Key(ctx context.Context, c *client.Client, state models.S3KeyResour param = param.Zone(state.Zone.ValueString()) } _, err := param.Execute() + if err != nil { + err = fmt.Errorf(GetErrorString(err, "s3 key delete error: ")) + } return err } diff --git a/powerscale/provider/s3_global_setting_resource.go b/powerscale/provider/s3_global_setting_resource.go index 2c843cbb..695bd82e 100644 --- a/powerscale/provider/s3_global_setting_resource.go +++ b/powerscale/provider/s3_global_setting_resource.go @@ -141,7 +141,7 @@ func (r *S3GlobalSettingResource) Read(ctx context.Context, request resource.Rea return } - err := helper.GetGlobalSetting(ctx, r.client, s3GlobalSettingState) + err := helper.GetGlobalSetting(ctx, r.client, &s3GlobalSettingState) if err != nil { response.Diagnostics.AddError("Error reading s3 global setting", fmt.Sprintf("Could not read s3 global setting with error: %s", err.Error()), @@ -193,7 +193,7 @@ func (r S3GlobalSettingResource) Delete(ctx context.Context, request resource.De // ImportState imports the resource state. func (r S3GlobalSettingResource) ImportState(ctx context.Context, request resource.ImportStateRequest, response *resource.ImportStateResponse) { var s3GlobalSettingState models.S3GlobalSettingResource - err := helper.GetGlobalSetting(ctx, r.client, s3GlobalSettingState) + err := helper.GetGlobalSetting(ctx, r.client, &s3GlobalSettingState) if err != nil { response.Diagnostics.AddError("Error importing s3 global setting", fmt.Sprintf("Could not import s3 global setting with error: %s", err.Error()), diff --git a/powerscale/provider/s3_zone_settings_resource.go b/powerscale/provider/s3_zone_settings_resource.go index 965d7ed0..f81d32ea 100644 --- a/powerscale/provider/s3_zone_settings_resource.go +++ b/powerscale/provider/s3_zone_settings_resource.go @@ -213,5 +213,9 @@ func (r *S3ZoneSettingsResource) Delete(ctx context.Context, req resource.Delete // ImportState import state for existing S3ZoneSettings. func (r S3ZoneSettingsResource) ImportState(ctx context.Context, req resource.ImportStateRequest, resp *resource.ImportStateResponse) { + if req.ID == "" { + resp.Diagnostics.AddError("Cannot import S3 Zone Settings with empty zone name.", "S3 Zone Settings do not have empty zone name.") + return + } resource.ImportStatePassthroughID(ctx, path.Root("zone"), req, resp) }