diff --git a/helper.go b/helper.go index c60b76e..61a683b 100644 --- a/helper.go +++ b/helper.go @@ -37,6 +37,15 @@ func getCredentials() (username, token string, err error) { return username, token, nil } +func setupLogging() { + programLevel := new(slog.LevelVar) + env := os.Getenv("PROXMOX_LOG_LEVEL") + programLevel.UnmarshalText([]byte(env)) + logger := slog.New(slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{Level: programLevel})) + slog.Info("Set log level", "level", programLevel) + slog.SetDefault(logger) +} + func createAuthorizationString(username, token string) string { return "PVEAPIToken=" + username + "=" + token } diff --git a/proxmox.go b/proxmox.go index 2b94de6..c35bf07 100644 --- a/proxmox.go +++ b/proxmox.go @@ -55,26 +55,32 @@ func (p *Plugin) LabelConfig() plugin.LabelConfig { // ============================================================================= func (p *Plugin) Create(ctx context.Context, req *resource.CreateRequest) (*resource.CreateResult, error) { + setupLogging() return p.CreateLXC(ctx, req) } func (p *Plugin) Read(ctx context.Context, req *resource.ReadRequest) (*resource.ReadResult, error) { + setupLogging() return p.ReadLXC(ctx, req) } func (p *Plugin) Update(ctx context.Context, req *resource.UpdateRequest) (*resource.UpdateResult, error) { + setupLogging() return p.UpdateLXC(ctx, req) } func (p *Plugin) Delete(ctx context.Context, req *resource.DeleteRequest) (*resource.DeleteResult, error) { + setupLogging() return p.DeleteLXC(ctx, req) } func (p *Plugin) Status(ctx context.Context, req *resource.StatusRequest) (*resource.StatusResult, error) { + setupLogging() return p.StatusLXC(ctx, req) } // Called during discovery to find unmanaged resources. func (p *Plugin) List(ctx context.Context, req *resource.ListRequest) (*resource.ListResult, error) { + setupLogging() return p.ListLXC(ctx, req) }