fix: replace log with slog
Some checks failed
CI / build (push) Failing after 4m25s
CI / lint (push) Failing after 3m33s
CI / pkl-validate (push) Successful in 12s
CI / integration-tests (push) Has been skipped
CI / conformance-tests (latest) (push) Has been skipped

This commit is contained in:
2026-02-11 21:22:02 +01:00
parent 638e9f42d5
commit 6fd95c24fb
3 changed files with 32 additions and 17 deletions

View File

@@ -5,7 +5,7 @@ import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"io" "io"
"log" "log/slog"
"net/http" "net/http"
"net/url" "net/url"
"os" "os"
@@ -50,24 +50,24 @@ func authenticatedRequest(method, url, authorization string, urlparams url.Value
request, err := http.NewRequest(method, url, body) request, err := http.NewRequest(method, url, body)
if err != nil { if err != nil {
log.Println("Error: ", err) slog.Error("Error creating request", "err", err)
return nil, err return nil, err
} }
request.Header.Set("Authorization", authorization) request.Header.Set("Authorization", authorization)
resp, err := client.Do(request) resp, err := client.Do(request)
if err != nil { if err != nil {
log.Println("Error: ", err) slog.Error("Error executing request", "err", err)
return nil, err return nil, err
} }
data, err := io.ReadAll(resp.Body) data, err := io.ReadAll(resp.Body)
if err != nil { if err != nil {
log.Println("Error: ", err) slog.Error("Error reading response", "err", err)
return nil, 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 return data, nil
} }

34
lxc.go
View File

@@ -4,7 +4,7 @@ import (
"context" "context"
"encoding/json" "encoding/json"
"fmt" "fmt"
"log" "log/slog"
"net/http" "net/http"
"net/url" "net/url"
"strconv" "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) { func (p *Plugin) CreateLXC(ctx context.Context, req *resource.CreateRequest) (*resource.CreateResult, error) {
props, err := parseLXCProperties(req.Properties) props, err := parseLXCProperties(req.Properties)
if err != nil { if err != nil {
log.Println(err.Error()) slog.Error(err.Error())
return &resource.CreateResult{ return &resource.CreateResult{
ProgressResult: &resource.ProgressResult{ ProgressResult: &resource.ProgressResult{
Operation: resource.OperationCreate, Operation: resource.OperationCreate,
@@ -42,7 +42,7 @@ func (p *Plugin) CreateLXC(ctx context.Context, req *resource.CreateRequest) (*r
config, err := parseTargetConfig(req.TargetConfig) config, err := parseTargetConfig(req.TargetConfig)
if err != nil { if err != nil {
log.Println(err.Error()) slog.Error(err.Error())
return &resource.CreateResult{ return &resource.CreateResult{
ProgressResult: &resource.ProgressResult{ ProgressResult: &resource.ProgressResult{
Operation: resource.OperationCreate, Operation: resource.OperationCreate,
@@ -55,7 +55,7 @@ func (p *Plugin) CreateLXC(ctx context.Context, req *resource.CreateRequest) (*r
username, token, err := getCredentials() username, token, err := getCredentials()
if err != nil { if err != nil {
log.Println(err.Error()) slog.Error(err.Error())
return &resource.CreateResult{ return &resource.CreateResult{
ProgressResult: &resource.ProgressResult{ ProgressResult: &resource.ProgressResult{
Operation: resource.OperationCreate, 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) data, err := authenticatedRequest(http.MethodPost, config.URL+"/api2/json/nodes/"+config.NODE+"/lxc", createAuthorizationString(username, token), urlparams)
if err != nil { if err != nil {
slog.Error(err.Error())
return &resource.CreateResult{ return &resource.CreateResult{
ProgressResult: &resource.ProgressResult{ ProgressResult: &resource.ProgressResult{
Operation: resource.OperationCreate, Operation: resource.OperationCreate,
@@ -98,6 +99,7 @@ func (p *Plugin) CreateLXC(ctx context.Context, req *resource.CreateRequest) (*r
err = json.Unmarshal(data, &taskData) err = json.Unmarshal(data, &taskData)
if err != nil { if err != nil {
slog.Error(err.Error())
return &resource.CreateResult{ return &resource.CreateResult{
ProgressResult: &resource.ProgressResult{ ProgressResult: &resource.ProgressResult{
Operation: resource.OperationCreate, 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) { func (p *Plugin) ReadLXC(ctx context.Context, req *resource.ReadRequest) (*resource.ReadResult, error) {
username, token, err := getCredentials() username, token, err := getCredentials()
if err != nil { if err != nil {
slog.Error(err.Error())
return &resource.ReadResult{ return &resource.ReadResult{
ErrorCode: resource.OperationErrorCodeInvalidRequest, ErrorCode: resource.OperationErrorCodeInvalidRequest,
}, err }, err
@@ -128,11 +131,13 @@ func (p *Plugin) ReadLXC(ctx context.Context, req *resource.ReadRequest) (*resou
config, err := parseTargetConfig(req.TargetConfig) config, err := parseTargetConfig(req.TargetConfig)
if err != nil { if err != nil {
slog.Error(err.Error())
return &resource.ReadResult{}, nil return &resource.ReadResult{}, nil
} }
data, err := authenticatedRequest(http.MethodGet, config.URL+"/api2/json/nodes/"+config.NODE+"/lxc/"+req.NativeID+"/config", createAuthorizationString(username, token), nil) data, err := authenticatedRequest(http.MethodGet, config.URL+"/api2/json/nodes/"+config.NODE+"/lxc/"+req.NativeID+"/config", createAuthorizationString(username, token), nil)
if err != nil { if err != nil {
slog.Error(err.Error())
return &resource.ReadResult{ return &resource.ReadResult{
ErrorCode: resource.OperationErrorCodeNetworkFailure, ErrorCode: resource.OperationErrorCodeNetworkFailure,
}, err }, err
@@ -142,7 +147,7 @@ func (p *Plugin) ReadLXC(ctx context.Context, req *resource.ReadRequest) (*resou
err = json.Unmarshal(data, &props) err = json.Unmarshal(data, &props)
if err != nil { if err != nil {
log.Println("Error unmarshaling json: ", data) slog.Error("Error unmarshalling json", "data", data, "err", err.Error())
return &resource.ReadResult{ return &resource.ReadResult{
ErrorCode: resource.OperationErrorCodeInvalidRequest, ErrorCode: resource.OperationErrorCodeInvalidRequest,
}, err }, err
@@ -161,6 +166,7 @@ func (p *Plugin) ReadLXC(ctx context.Context, req *resource.ReadRequest) (*resou
propsJSON, err := json.Marshal(properties) propsJSON, err := json.Marshal(properties)
if err != nil { if err != nil {
slog.Error(err.Error())
return &resource.ReadResult{ return &resource.ReadResult{
ErrorCode: resource.OperationErrorCodeInternalFailure, ErrorCode: resource.OperationErrorCodeInternalFailure,
}, err }, 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) { func (p *Plugin) UpdateLXC(ctx context.Context, req *resource.UpdateRequest) (*resource.UpdateResult, error) {
prior, err := parseLXCProperties(req.PriorProperties) prior, err := parseLXCProperties(req.PriorProperties)
if err != nil { if err != nil {
slog.Error(err.Error())
return &resource.UpdateResult{ return &resource.UpdateResult{
ProgressResult: &resource.ProgressResult{ ProgressResult: &resource.ProgressResult{
Operation: resource.OperationUpdate, Operation: resource.OperationUpdate,
@@ -187,6 +194,7 @@ func (p *Plugin) UpdateLXC(ctx context.Context, req *resource.UpdateRequest) (*r
desir, err := parseLXCProperties(req.DesiredProperties) desir, err := parseLXCProperties(req.DesiredProperties)
if err != nil { if err != nil {
slog.Error(err.Error())
return &resource.UpdateResult{ return &resource.UpdateResult{
ProgressResult: &resource.ProgressResult{ ProgressResult: &resource.ProgressResult{
Operation: resource.OperationUpdate, Operation: resource.OperationUpdate,
@@ -218,7 +226,7 @@ func (p *Plugin) UpdateLXC(ctx context.Context, req *resource.UpdateRequest) (*r
config, err := parseTargetConfig(req.TargetConfig) config, err := parseTargetConfig(req.TargetConfig)
if err != nil { if err != nil {
log.Println(err.Error()) slog.Error(err.Error())
return &resource.UpdateResult{ return &resource.UpdateResult{
ProgressResult: &resource.ProgressResult{ ProgressResult: &resource.ProgressResult{
Operation: resource.OperationCreate, Operation: resource.OperationCreate,
@@ -231,6 +239,7 @@ func (p *Plugin) UpdateLXC(ctx context.Context, req *resource.UpdateRequest) (*r
username, token, err := getCredentials() username, token, err := getCredentials()
if err != nil { if err != nil {
slog.Error(err.Error())
return &resource.UpdateResult{ return &resource.UpdateResult{
ProgressResult: &resource.ProgressResult{ ProgressResult: &resource.ProgressResult{
Operation: resource.OperationUpdate, 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) _, err = authenticatedRequest("PUT", config.URL+"/api2/json/nodes/"+config.NODE+"/lxc/"+desir.VMID+"/config", createAuthorizationString(username, token), urlparams)
if err != nil { if err != nil {
slog.Error(err.Error())
return &resource.UpdateResult{ return &resource.UpdateResult{
ProgressResult: &resource.ProgressResult{ ProgressResult: &resource.ProgressResult{
Operation: resource.OperationCreate, 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) { func (p *Plugin) DeleteLXC(ctx context.Context, req *resource.DeleteRequest) (*resource.DeleteResult, error) {
config, err := parseTargetConfig(req.TargetConfig) config, err := parseTargetConfig(req.TargetConfig)
if err != nil { if err != nil {
log.Println(err.Error()) slog.Error(err.Error())
return &resource.DeleteResult{ return &resource.DeleteResult{
ProgressResult: &resource.ProgressResult{ ProgressResult: &resource.ProgressResult{
Operation: resource.OperationCreate, Operation: resource.OperationCreate,
@@ -297,7 +307,7 @@ func (p *Plugin) DeleteLXC(ctx context.Context, req *resource.DeleteRequest) (*r
username, token, err := getCredentials() username, token, err := getCredentials()
if err != nil { if err != nil {
log.Println(err.Error()) slog.Error(err.Error())
return &resource.DeleteResult{ return &resource.DeleteResult{
ProgressResult: &resource.ProgressResult{ ProgressResult: &resource.ProgressResult{
Operation: resource.OperationCreate, 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) _, err = authenticatedRequest(http.MethodDelete, config.URL+"/api2/json/nodes/"+config.NODE+"/lxc/"+req.NativeID, createAuthorizationString(username, token), nil)
if err != nil { if err != nil {
slog.Error(err.Error())
return &resource.DeleteResult{ return &resource.DeleteResult{
ProgressResult: &resource.ProgressResult{ ProgressResult: &resource.ProgressResult{
Operation: resource.OperationCreate, Operation: resource.OperationCreate,
@@ -347,7 +358,7 @@ type RequestStatusProxmoxResponse struct {
func (p *Plugin) StatusLXC(ctx context.Context, req *resource.StatusRequest) (*resource.StatusResult, error) { func (p *Plugin) StatusLXC(ctx context.Context, req *resource.StatusRequest) (*resource.StatusResult, error) {
config, err := parseTargetConfig(req.TargetConfig) config, err := parseTargetConfig(req.TargetConfig)
if err != nil { if err != nil {
log.Println(err.Error()) slog.Error(err.Error())
return &resource.StatusResult{ return &resource.StatusResult{
ProgressResult: &resource.ProgressResult{ ProgressResult: &resource.ProgressResult{
Operation: resource.OperationCheckStatus, Operation: resource.OperationCheckStatus,
@@ -360,6 +371,7 @@ func (p *Plugin) StatusLXC(ctx context.Context, req *resource.StatusRequest) (*r
username, token, err := getCredentials() username, token, err := getCredentials()
if err != nil { if err != nil {
slog.Error(err.Error())
return &resource.StatusResult{ return &resource.StatusResult{
ProgressResult: &resource.ProgressResult{ ProgressResult: &resource.ProgressResult{
Operation: resource.OperationCheckStatus, Operation: resource.OperationCheckStatus,
@@ -376,6 +388,7 @@ func (p *Plugin) StatusLXC(ctx context.Context, req *resource.StatusRequest) (*r
err = json.Unmarshal(data, &proxmoxResponse) err = json.Unmarshal(data, &proxmoxResponse)
if err != nil { if err != nil {
slog.Error(err.Error())
return &resource.StatusResult{ return &resource.StatusResult{
ProgressResult: &resource.ProgressResult{ ProgressResult: &resource.ProgressResult{
Operation: resource.OperationCheckStatus, Operation: resource.OperationCheckStatus,
@@ -407,6 +420,7 @@ func (p *Plugin) ListLXC(ctx context.Context, req *resource.ListRequest) (*resou
username, token, err := getCredentials() username, token, err := getCredentials()
if err != nil { if err != nil {
slog.Error(err.Error())
return &resource.ListResult{ return &resource.ListResult{
NativeIDs: []string{}, NativeIDs: []string{},
}, err }, err
@@ -414,6 +428,7 @@ func (p *Plugin) ListLXC(ctx context.Context, req *resource.ListRequest) (*resou
config, err := parseTargetConfig(req.TargetConfig) config, err := parseTargetConfig(req.TargetConfig)
if err != nil { if err != nil {
slog.Error(err.Error())
return &resource.ListResult{ return &resource.ListResult{
NativeIDs: []string{}, NativeIDs: []string{},
}, err }, 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) data, err := authenticatedRequest(http.MethodGet, config.URL+"/api2/json/nodes/"+config.NODE+"/lxc", createAuthorizationString(username, token), nil)
if err != nil { if err != nil {
slog.Error(err.Error())
return &resource.ListResult{ return &resource.ListResult{
NativeIDs: []string{}, NativeIDs: []string{},
}, err }, err

View File

@@ -3,10 +3,9 @@ package main
import ( import (
"context" "context"
"encoding/json" "encoding/json"
"log" "log/slog"
"net/http" "net/http"
"strconv" "strconv"
"strings"
"testing" "testing"
"time" "time"
@@ -170,7 +169,7 @@ func TestList(t *testing.T) {
}) })
require.NoError(t, err, "ListRequest should not return an error") 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") require.Contains(t, result.NativeIDs, "200", "List should include created LXC")
} }