Skip to content

Commit

Permalink
Update pkg/resources/redis/crud.go
Browse files Browse the repository at this point in the history
Co-authored-by: LeCrabe <[email protected]>
  • Loading branch information
miton18 and TheCrabe committed Feb 19, 2025
1 parent fcb1727 commit f584ce6
Showing 1 changed file with 34 additions and 34 deletions.
68 changes: 34 additions & 34 deletions pkg/resources/redis/crud.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ func (r *ResourceRedis) Configure(ctx context.Context, req resource.ConfigureReq

// Create a new resource
func (r *ResourceRedis) Create(ctx context.Context, req resource.CreateRequest, resp *resource.CreateResponse) {
kv := Redis{}
rd := Redis{}

resp.Diagnostics.Append(req.Plan.Get(ctx, &kv)...)
resp.Diagnostics.Append(req.Plan.Get(ctx, &rd)...)
if resp.Diagnostics.HasError() {
return
}
Expand All @@ -49,17 +49,17 @@ func (r *ResourceRedis) Create(ctx context.Context, req resource.CreateRequest,

addonsProviders := addonsProvidersRes.Payload()
provider := pkg.LookupAddonProvider(*addonsProviders, "redis-addon")
plan := pkg.LookupProviderPlan(provider, kv.Plan.ValueString())
plan := pkg.LookupProviderPlan(provider, rd.Plan.ValueString())
if plan == nil {
resp.Diagnostics.AddError("This plan does not exists", "available plans are: "+strings.Join(pkg.ProviderPlansAsList(provider), ", "))
return
}

addonReq := tmp.AddonRequest{
Name: kv.Name.ValueString(),
Name: rd.Name.ValueString(),
Plan: plan.ID,
ProviderID: "redis-addon",
Region: kv.Region.ValueString(),
Region: rd.Region.ValueString(),
}

res := tmp.CreateAddon(ctx, r.cc, r.org, addonReq)
Expand All @@ -68,15 +68,15 @@ func (r *ResourceRedis) Create(ctx context.Context, req resource.CreateRequest,
return
}

kv.ID = pkg.FromStr(res.Payload().RealID)
kv.CreationDate = pkg.FromI(res.Payload().CreationDate)
rd.ID = pkg.FromStr(res.Payload().RealID)
rd.CreationDate = pkg.FromI(res.Payload().CreationDate)

resp.Diagnostics.Append(resp.State.Set(ctx, kv)...)
resp.Diagnostics.Append(resp.State.Set(ctx, rd)...)
if resp.Diagnostics.HasError() {
return
}

envRes := tmp.GetAddonEnv(ctx, r.cc, r.org, kv.ID.ValueString())
envRes := tmp.GetAddonEnv(ctx, r.cc, r.org, rd.ID.ValueString())
if envRes.HasError() {
resp.Diagnostics.AddError("failed to get Redis connection infos", envRes.Error().Error())
return
Expand All @@ -94,11 +94,11 @@ func (r *ResourceRedis) Create(ctx context.Context, req resource.CreateRequest,
if err != nil {
resp.Diagnostics.AddError("invalid port received", "expect REDIS_PORT to be an Integer")
}
kv.Host = envAsMap["REDIS_HOST"]
kv.Port = pkg.FromI(port)
kv.Token = envAsMap["REDIS_PASSWORD"]
rd.Host = envAsMap["REDIS_HOST"]
rd.Port = pkg.FromI(port)
rd.Token = envAsMap["REDIS_PASSWORD"]

resp.Diagnostics.Append(resp.State.Set(ctx, kv)...)
resp.Diagnostics.Append(resp.State.Set(ctx, rd)...)
if resp.Diagnostics.HasError() {
return
}
Expand All @@ -108,33 +108,33 @@ func (r *ResourceRedis) Create(ctx context.Context, req resource.CreateRequest,
func (r *ResourceRedis) Read(ctx context.Context, req resource.ReadRequest, resp *resource.ReadResponse) {
tflog.Debug(ctx, "Redis READ", map[string]interface{}{"request": req})

var kv Redis
diags := req.State.Get(ctx, &kv)
var rd Redis
diags := req.State.Get(ctx, &rd)
resp.Diagnostics.Append(diags...)
if resp.Diagnostics.HasError() {
return
}

addonKVRes := tmp.GetAddon(ctx, r.cc, r.org, kv.ID.ValueString())
if addonKVRes.IsNotFoundError() {
addonRes := tmp.GetAddon(ctx, r.cc, r.org, rd.ID.ValueString())
if addonRes.IsNotFoundError() {
diags = resp.State.SetAttribute(ctx, path.Root("id"), types.StringUnknown())
resp.Diagnostics.Append(diags...)
if resp.Diagnostics.HasError() {
return
}
}
if addonKVRes.IsNotFoundError() {
if addonRes.IsNotFoundError() {
resp.State.RemoveResource(ctx)
return
}
if addonKVRes.HasError() {
resp.Diagnostics.AddError("failed to get Redis resource", addonKVRes.Error().Error())
if addonRes.HasError() {
resp.Diagnostics.AddError("failed to get Redis resource", addonRes.Error().Error())
}

addonKV := addonKVRes.Payload()
tflog.Debug(ctx, "redis", map[string]interface{}{"payload": fmt.Sprintf("%+v", addonKV)})
addonRD := addonRes.Payload()
tflog.Debug(ctx, "redis", map[string]interface{}{"payload": fmt.Sprintf("%+v", addonRD)})

envRes := tmp.GetAddonEnv(ctx, r.cc, r.org, kv.ID.ValueString())
envRes := tmp.GetAddonEnv(ctx, r.cc, r.org, rd.ID.ValueString())
if envRes.HasError() {
resp.Diagnostics.AddError("failed to get Redis connection infos", envRes.Error().Error())
return
Expand All @@ -153,14 +153,14 @@ func (r *ResourceRedis) Read(ctx context.Context, req resource.ReadRequest, resp
resp.Diagnostics.AddError("invalid port received", "expect REDIS_PORT to be an Integer")
}

kv.Name = pkg.FromStr(addonKV.Name)
kv.Host = envAsMap["REDIS_HOST"]
kv.Plan = pkg.FromStr(addonKV.Plan.Slug)
kv.Port = pkg.FromI(port)
kv.Region = pkg.FromStr(addonKV.Region)
kv.Token = envAsMap["REDIS_PASSWORD"]
rd.Name = pkg.FromStr(addonRD.Name)
rd.Host = envAsMap["REDIS_HOST"]
rd.Plan = pkg.FromStr(addonRD.Plan.Slug)
rd.Port = pkg.FromI(port)
rd.Region = pkg.FromStr(addonRD.Region)
rd.Token = envAsMap["REDIS_PASSWORD"]

diags = resp.State.Set(ctx, kv)
diags = resp.State.Set(ctx, rd)
resp.Diagnostics.Append(diags...)
if resp.Diagnostics.HasError() {
return
Expand All @@ -174,16 +174,16 @@ func (r *ResourceRedis) Update(ctx context.Context, req resource.UpdateRequest,

// Delete resource
func (r *ResourceRedis) Delete(ctx context.Context, req resource.DeleteRequest, resp *resource.DeleteResponse) {
kv := Redis{}
rd := Redis{}

diags := req.State.Get(ctx, &kv)
diags := req.State.Get(ctx, &rd)
resp.Diagnostics.Append(diags...)
if resp.Diagnostics.HasError() {
return
}
tflog.Debug(ctx, "Redis DELETE", map[string]interface{}{"kv": kv})
tflog.Debug(ctx, "Redis DELETE", map[string]interface{}{"rd": rd})

res := tmp.DeleteAddon(ctx, r.cc, r.org, kv.ID.ValueString())
res := tmp.DeleteAddon(ctx, r.cc, r.org, rd.ID.ValueString())
if res.IsNotFoundError() {
resp.State.RemoveResource(ctx)
return
Expand Down

0 comments on commit f584ce6

Please sign in to comment.