diff --git a/go.mod b/go.mod index c847bc66..f95fff72 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/dominikbraun/graph v0.23.0 github.com/ettle/strcase v0.2.0 github.com/flant/kube-client v1.6.0 - github.com/flant/shell-operator v1.15.3 + github.com/flant/shell-operator v1.16.4 github.com/go-chi/chi/v5 v5.2.3 github.com/go-openapi/loads v0.23.1 github.com/go-openapi/spec v0.22.0 diff --git a/go.sum b/go.sum index 820d9cce..6ede8dc1 100644 --- a/go.sum +++ b/go.sum @@ -163,8 +163,8 @@ github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2 github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/flant/kube-client v1.6.0 h1:g6ksfIgTlrvLgp/Iu1a9c5aC4yPClLplq3w9e/qtYbk= github.com/flant/kube-client v1.6.0/go.mod h1:dYJyx7aMldXR/F8hlhRxlcEhSkxKcMZV2Oz8d+o/Up4= -github.com/flant/shell-operator v1.15.3 h1:gQSZQHQfSHuXLnBLUQfC88JXkyOOCwurbG/Z85C9SiE= -github.com/flant/shell-operator v1.15.3/go.mod h1:92ITJRem0aPbJPJT+GT2yo9Xp5wpMfGzSz8rdTdavmA= +github.com/flant/shell-operator v1.16.4 h1:yuNKohNC74N5pIGuLmbbA4YkFlP1HgaY/xd4JtaR8mg= +github.com/flant/shell-operator v1.16.4/go.mod h1:92ITJRem0aPbJPJT+GT2yo9Xp5wpMfGzSz8rdTdavmA= github.com/flopp/go-findfont v0.1.0 h1:lPn0BymDUtJo+ZkV01VS3661HL6F4qFlkhcJN55u6mU= github.com/flopp/go-findfont v0.1.0/go.mod h1:wKKxRDjD024Rh7VMwoU90i6ikQRCr+JTHB5n4Ejkqvw= github.com/fluxcd/flagger v1.36.1 h1:X2PumtNwZz9YSGaOtZLFm2zAKLgHhFkbNv8beg7ifyc= diff --git a/pkg/module_manager/models/hooks/kind/batch_hook.go b/pkg/module_manager/models/hooks/kind/batch_hook.go index e90a3874..f80561cc 100644 --- a/pkg/module_manager/models/hooks/kind/batch_hook.go +++ b/pkg/module_manager/models/hooks/kind/batch_hook.go @@ -135,7 +135,7 @@ func (h *BatchHook) Execute(ctx context.Context, configVersion string, bContext } // Remove tmp files after execution defer func() { - if shapp.DebugKeepTmpFilesVar == "yes" { + if shapp.DebugKeepTmpFiles { return } for _, f := range tmpFiles { diff --git a/pkg/module_manager/models/hooks/kind/check.go b/pkg/module_manager/models/hooks/kind/check.go index e85fa26d..9ee36fe1 100644 --- a/pkg/module_manager/models/hooks/kind/check.go +++ b/pkg/module_manager/models/hooks/kind/check.go @@ -16,6 +16,8 @@ package kind import ( "context" + "encoding/json" + "errors" "fmt" "log/slog" "os" @@ -68,6 +70,15 @@ func (c *SettingsCheck) Check(ctx context.Context, settings utils.Values) (setti cmd := executor.NewExecutor("", c.path, []string{"hook", "check"}, envs).WithLogger(c.logger.Named("executor")) if _, err = cmd.RunAndLogLines(ctx, make(map[string]string)); err != nil { + var stderrErr *executor.StderrError + if errors.As(err, &stderrErr) { + if jsonErr := json.Unmarshal([]byte(stderrErr.Message), &result); jsonErr != nil { + return settingscheck.Result{}, fmt.Errorf("parse check result from stderr: %w (raw: %s)", jsonErr, stderrErr.Message) + } + + return result, nil + } + return settingscheck.Result{}, fmt.Errorf("run and log lines: %w", err) } diff --git a/pkg/module_manager/models/hooks/kind/shellhook.go b/pkg/module_manager/models/hooks/kind/shellhook.go index 2bf82091..6a16e3dd 100644 --- a/pkg/module_manager/models/hooks/kind/shellhook.go +++ b/pkg/module_manager/models/hooks/kind/shellhook.go @@ -138,7 +138,7 @@ func (sh *ShellHook) Execute(ctx context.Context, configVersion string, bContext } // Remove tmp files after execution defer func() { - if shapp.DebugKeepTmpFilesVar == "yes" { + if shapp.DebugKeepTmpFiles { return } for _, f := range tmpFiles { diff --git a/pkg/module_manager/module_manager.go b/pkg/module_manager/module_manager.go index 2d7f3b0e..33f4b4d8 100644 --- a/pkg/module_manager/module_manager.go +++ b/pkg/module_manager/module_manager.go @@ -925,7 +925,7 @@ func (mm *ModuleManager) DisableModuleHooks(moduleName string) { kubeHooks := ml.GetHooks(OnKubernetesEvent) for _, mh := range kubeHooks { - mh.GetHookController().StopMonitors() + mh.GetHookController().DisableKubernetesBindings() } schHooks := ml.GetHooks(Schedule)