From 6fd95c24fb41769064ab30860f7b6049c5851c22 Mon Sep 17 00:00:00 2001 From: ManInDark <61268856+ManInDark@users.noreply.github.com> Date: Wed, 11 Feb 2026 21:22:02 +0100 Subject: [PATCH] fix: replace log with slog --- helper.go | 10 +++++----- lxc.go | 34 +++++++++++++++++++++++++--------- proxmox_test.go | 5 ++--- 3 files changed, 32 insertions(+), 17 deletions(-) diff --git a/helper.go b/helper.go index 9c30010..c60b76e 100644 --- a/helper.go +++ b/helper.go @@ -5,7 +5,7 @@ import ( "encoding/json" "fmt" "io" - "log" + "log/slog" "net/http" "net/url" "os" @@ -50,24 +50,24 @@ func authenticatedRequest(method, url, authorization string, urlparams url.Value request, err := http.NewRequest(method, url, body) if err != nil { - log.Println("Error: ", err) + slog.Error("Error creating request", "err", err) return nil, err } request.Header.Set("Authorization", authorization) resp, err := client.Do(request) if err != nil { - log.Println("Error: ", err) + slog.Error("Error executing request", "err", err) return nil, err } data, err := io.ReadAll(resp.Body) if err != nil { - log.Println("Error: ", err) + slog.Error("Error reading response", "err", err) return nil, err } - log.Println("URL: ", method, "Status Code:", resp.Status, "Body: ", string(data)) + slog.Debug("Executed Request", "url", method, "status code", resp.Status, "body", string(data)) return data, nil } diff --git a/lxc.go b/lxc.go index a40b948..1a8189b 100644 --- a/lxc.go +++ b/lxc.go @@ -4,7 +4,7 @@ import ( "context" "encoding/json" "fmt" - "log" + "log/slog" "net/http" "net/url" "strconv" @@ -29,7 +29,7 @@ func parseLXCProperties(data json.RawMessage) (*LXCProperties, error) { func (p *Plugin) CreateLXC(ctx context.Context, req *resource.CreateRequest) (*resource.CreateResult, error) { props, err := parseLXCProperties(req.Properties) if err != nil { - log.Println(err.Error()) + slog.Error(err.Error()) return &resource.CreateResult{ ProgressResult: &resource.ProgressResult{ Operation: resource.OperationCreate, @@ -42,7 +42,7 @@ func (p *Plugin) CreateLXC(ctx context.Context, req *resource.CreateRequest) (*r config, err := parseTargetConfig(req.TargetConfig) if err != nil { - log.Println(err.Error()) + slog.Error(err.Error()) return &resource.CreateResult{ ProgressResult: &resource.ProgressResult{ Operation: resource.OperationCreate, @@ -55,7 +55,7 @@ func (p *Plugin) CreateLXC(ctx context.Context, req *resource.CreateRequest) (*r username, token, err := getCredentials() if err != nil { - log.Println(err.Error()) + slog.Error(err.Error()) return &resource.CreateResult{ ProgressResult: &resource.ProgressResult{ Operation: resource.OperationCreate, @@ -83,6 +83,7 @@ func (p *Plugin) CreateLXC(ctx context.Context, req *resource.CreateRequest) (*r data, err := authenticatedRequest(http.MethodPost, config.URL+"/api2/json/nodes/"+config.NODE+"/lxc", createAuthorizationString(username, token), urlparams) if err != nil { + slog.Error(err.Error()) return &resource.CreateResult{ ProgressResult: &resource.ProgressResult{ Operation: resource.OperationCreate, @@ -98,6 +99,7 @@ func (p *Plugin) CreateLXC(ctx context.Context, req *resource.CreateRequest) (*r err = json.Unmarshal(data, &taskData) if err != nil { + slog.Error(err.Error()) return &resource.CreateResult{ ProgressResult: &resource.ProgressResult{ Operation: resource.OperationCreate, @@ -121,6 +123,7 @@ func (p *Plugin) CreateLXC(ctx context.Context, req *resource.CreateRequest) (*r func (p *Plugin) ReadLXC(ctx context.Context, req *resource.ReadRequest) (*resource.ReadResult, error) { username, token, err := getCredentials() if err != nil { + slog.Error(err.Error()) return &resource.ReadResult{ ErrorCode: resource.OperationErrorCodeInvalidRequest, }, err @@ -128,11 +131,13 @@ func (p *Plugin) ReadLXC(ctx context.Context, req *resource.ReadRequest) (*resou config, err := parseTargetConfig(req.TargetConfig) if err != nil { + slog.Error(err.Error()) return &resource.ReadResult{}, nil } data, err := authenticatedRequest(http.MethodGet, config.URL+"/api2/json/nodes/"+config.NODE+"/lxc/"+req.NativeID+"/config", createAuthorizationString(username, token), nil) if err != nil { + slog.Error(err.Error()) return &resource.ReadResult{ ErrorCode: resource.OperationErrorCodeNetworkFailure, }, err @@ -142,7 +147,7 @@ func (p *Plugin) ReadLXC(ctx context.Context, req *resource.ReadRequest) (*resou err = json.Unmarshal(data, &props) if err != nil { - log.Println("Error unmarshaling json: ", data) + slog.Error("Error unmarshalling json", "data", data, "err", err.Error()) return &resource.ReadResult{ ErrorCode: resource.OperationErrorCodeInvalidRequest, }, err @@ -161,6 +166,7 @@ func (p *Plugin) ReadLXC(ctx context.Context, req *resource.ReadRequest) (*resou propsJSON, err := json.Marshal(properties) if err != nil { + slog.Error(err.Error()) return &resource.ReadResult{ ErrorCode: resource.OperationErrorCodeInternalFailure, }, err @@ -175,6 +181,7 @@ func (p *Plugin) ReadLXC(ctx context.Context, req *resource.ReadRequest) (*resou func (p *Plugin) UpdateLXC(ctx context.Context, req *resource.UpdateRequest) (*resource.UpdateResult, error) { prior, err := parseLXCProperties(req.PriorProperties) if err != nil { + slog.Error(err.Error()) return &resource.UpdateResult{ ProgressResult: &resource.ProgressResult{ Operation: resource.OperationUpdate, @@ -187,6 +194,7 @@ func (p *Plugin) UpdateLXC(ctx context.Context, req *resource.UpdateRequest) (*r desir, err := parseLXCProperties(req.DesiredProperties) if err != nil { + slog.Error(err.Error()) return &resource.UpdateResult{ ProgressResult: &resource.ProgressResult{ Operation: resource.OperationUpdate, @@ -218,7 +226,7 @@ func (p *Plugin) UpdateLXC(ctx context.Context, req *resource.UpdateRequest) (*r config, err := parseTargetConfig(req.TargetConfig) if err != nil { - log.Println(err.Error()) + slog.Error(err.Error()) return &resource.UpdateResult{ ProgressResult: &resource.ProgressResult{ Operation: resource.OperationCreate, @@ -231,6 +239,7 @@ func (p *Plugin) UpdateLXC(ctx context.Context, req *resource.UpdateRequest) (*r username, token, err := getCredentials() if err != nil { + slog.Error(err.Error()) return &resource.UpdateResult{ ProgressResult: &resource.ProgressResult{ Operation: resource.OperationUpdate, @@ -255,6 +264,7 @@ func (p *Plugin) UpdateLXC(ctx context.Context, req *resource.UpdateRequest) (*r _, err = authenticatedRequest("PUT", config.URL+"/api2/json/nodes/"+config.NODE+"/lxc/"+desir.VMID+"/config", createAuthorizationString(username, token), urlparams) if err != nil { + slog.Error(err.Error()) return &resource.UpdateResult{ ProgressResult: &resource.ProgressResult{ Operation: resource.OperationCreate, @@ -284,7 +294,7 @@ func (p *Plugin) UpdateLXC(ctx context.Context, req *resource.UpdateRequest) (*r func (p *Plugin) DeleteLXC(ctx context.Context, req *resource.DeleteRequest) (*resource.DeleteResult, error) { config, err := parseTargetConfig(req.TargetConfig) if err != nil { - log.Println(err.Error()) + slog.Error(err.Error()) return &resource.DeleteResult{ ProgressResult: &resource.ProgressResult{ Operation: resource.OperationCreate, @@ -297,7 +307,7 @@ func (p *Plugin) DeleteLXC(ctx context.Context, req *resource.DeleteRequest) (*r username, token, err := getCredentials() if err != nil { - log.Println(err.Error()) + slog.Error(err.Error()) return &resource.DeleteResult{ ProgressResult: &resource.ProgressResult{ Operation: resource.OperationCreate, @@ -311,6 +321,7 @@ func (p *Plugin) DeleteLXC(ctx context.Context, req *resource.DeleteRequest) (*r _, err = authenticatedRequest(http.MethodDelete, config.URL+"/api2/json/nodes/"+config.NODE+"/lxc/"+req.NativeID, createAuthorizationString(username, token), nil) if err != nil { + slog.Error(err.Error()) return &resource.DeleteResult{ ProgressResult: &resource.ProgressResult{ Operation: resource.OperationCreate, @@ -347,7 +358,7 @@ type RequestStatusProxmoxResponse struct { func (p *Plugin) StatusLXC(ctx context.Context, req *resource.StatusRequest) (*resource.StatusResult, error) { config, err := parseTargetConfig(req.TargetConfig) if err != nil { - log.Println(err.Error()) + slog.Error(err.Error()) return &resource.StatusResult{ ProgressResult: &resource.ProgressResult{ Operation: resource.OperationCheckStatus, @@ -360,6 +371,7 @@ func (p *Plugin) StatusLXC(ctx context.Context, req *resource.StatusRequest) (*r username, token, err := getCredentials() if err != nil { + slog.Error(err.Error()) return &resource.StatusResult{ ProgressResult: &resource.ProgressResult{ Operation: resource.OperationCheckStatus, @@ -376,6 +388,7 @@ func (p *Plugin) StatusLXC(ctx context.Context, req *resource.StatusRequest) (*r err = json.Unmarshal(data, &proxmoxResponse) if err != nil { + slog.Error(err.Error()) return &resource.StatusResult{ ProgressResult: &resource.ProgressResult{ Operation: resource.OperationCheckStatus, @@ -407,6 +420,7 @@ func (p *Plugin) ListLXC(ctx context.Context, req *resource.ListRequest) (*resou username, token, err := getCredentials() if err != nil { + slog.Error(err.Error()) return &resource.ListResult{ NativeIDs: []string{}, }, err @@ -414,6 +428,7 @@ func (p *Plugin) ListLXC(ctx context.Context, req *resource.ListRequest) (*resou config, err := parseTargetConfig(req.TargetConfig) if err != nil { + slog.Error(err.Error()) return &resource.ListResult{ NativeIDs: []string{}, }, err @@ -423,6 +438,7 @@ func (p *Plugin) ListLXC(ctx context.Context, req *resource.ListRequest) (*resou data, err := authenticatedRequest(http.MethodGet, config.URL+"/api2/json/nodes/"+config.NODE+"/lxc", createAuthorizationString(username, token), nil) if err != nil { + slog.Error(err.Error()) return &resource.ListResult{ NativeIDs: []string{}, }, err diff --git a/proxmox_test.go b/proxmox_test.go index 51350e6..1b3fab2 100644 --- a/proxmox_test.go +++ b/proxmox_test.go @@ -3,10 +3,9 @@ package main import ( "context" "encoding/json" - "log" + "log/slog" "net/http" "strconv" - "strings" "testing" "time" @@ -170,7 +169,7 @@ func TestList(t *testing.T) { }) require.NoError(t, err, "ListRequest should not return an error") - log.Printf("Received Ids: %s", strings.Join(result.NativeIDs, ", ")) + slog.Info("Received Ids", "ids", result.NativeIDs) require.Contains(t, result.NativeIDs, "200", "List should include created LXC") }