engine: graph, util: Clean up error printing
We should improve on this more, but at least as a quick fix, stop splitting the error across two lines. This makes the logs really ugly.
This commit is contained in:
@@ -24,6 +24,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/purpleidea/mgmt/engine"
|
"github.com/purpleidea/mgmt/engine"
|
||||||
|
engineUtil "github.com/purpleidea/mgmt/engine/util"
|
||||||
"github.com/purpleidea/mgmt/pgraph"
|
"github.com/purpleidea/mgmt/pgraph"
|
||||||
"github.com/purpleidea/mgmt/util/errwrap"
|
"github.com/purpleidea/mgmt/util/errwrap"
|
||||||
|
|
||||||
@@ -155,7 +156,7 @@ func (obj *Engine) Process(vertex pgraph.Vertex) error {
|
|||||||
obj.Logf("%s: CheckApply(%t)", res, !noop)
|
obj.Logf("%s: CheckApply(%t)", res, !noop)
|
||||||
// if this fails, don't UpdateTimestamp()
|
// if this fails, don't UpdateTimestamp()
|
||||||
checkOK, err = res.CheckApply(!noop)
|
checkOK, err = res.CheckApply(!noop)
|
||||||
obj.Logf("%s: CheckApply(%t): Return(%t, %+v)", res, !noop, checkOK, err)
|
obj.Logf("%s: CheckApply(%t): Return(%t, %s)", res, !noop, checkOK, engineUtil.CleanError(err))
|
||||||
}
|
}
|
||||||
|
|
||||||
if checkOK && err != nil { // should never return this way
|
if checkOK && err != nil { // should never return this way
|
||||||
@@ -325,7 +326,7 @@ func (obj *Engine) Worker(vertex pgraph.Vertex) error {
|
|||||||
obj.state[vertex].cuid.StartTimer()
|
obj.state[vertex].cuid.StartTimer()
|
||||||
obj.Logf("Watch(%s)", vertex)
|
obj.Logf("Watch(%s)", vertex)
|
||||||
err = res.Watch(obj.state[vertex].doneCtx) // run the watch normally
|
err = res.Watch(obj.state[vertex].doneCtx) // run the watch normally
|
||||||
obj.Logf("Watch(%s): Exited(%+v)", vertex, err)
|
obj.Logf("Watch(%s): Exited(%s)", vertex, engineUtil.CleanError(err))
|
||||||
obj.state[vertex].cuid.StopTimer() // clean up nicely
|
obj.state[vertex].cuid.StopTimer() // clean up nicely
|
||||||
}
|
}
|
||||||
if err == nil { // || err == engine.ErrClosed
|
if err == nil { // || err == engine.ErrClosed
|
||||||
@@ -534,7 +535,7 @@ Loop:
|
|||||||
}
|
}
|
||||||
err = obj.Process(vertex)
|
err = obj.Process(vertex)
|
||||||
if obj.Debug {
|
if obj.Debug {
|
||||||
obj.Logf("Process(%s): Return(%+v)", vertex, err)
|
obj.Logf("Process(%s): Return(%s)", vertex, engineUtil.CleanError(err))
|
||||||
}
|
}
|
||||||
if err == nil {
|
if err == nil {
|
||||||
break RetryLoop
|
break RetryLoop
|
||||||
|
|||||||
@@ -183,7 +183,7 @@ func (obj *Engine) Commit() error {
|
|||||||
}
|
}
|
||||||
err := engine.Validate(res)
|
err := engine.Validate(res)
|
||||||
if obj.Debug {
|
if obj.Debug {
|
||||||
obj.Logf("Validate(%s): Return(%+v)", res, err)
|
obj.Logf("Validate(%s): Return(%s)", res, engineUtil.CleanError(err))
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errwrap.Wrapf(err, "the Res did not Validate")
|
return errwrap.Wrapf(err, "the Res did not Validate")
|
||||||
@@ -239,7 +239,7 @@ func (obj *Engine) Commit() error {
|
|||||||
obj.Logf("Worker(%s)", v)
|
obj.Logf("Worker(%s)", v)
|
||||||
// contains the Watch and CheckApply loops
|
// contains the Watch and CheckApply loops
|
||||||
err := obj.Worker(v)
|
err := obj.Worker(v)
|
||||||
obj.Logf("Worker(%s): Exited(%+v)", v, err)
|
obj.Logf("Worker(%s): Exited(%s)", v, engineUtil.CleanError(err))
|
||||||
obj.state[v].workerErr = err // store the error
|
obj.state[v].workerErr = err // store the error
|
||||||
// If the Rewatch metaparam is true, then this will get
|
// If the Rewatch metaparam is true, then this will get
|
||||||
// restarted if we do a graph cmp swap. This is why the
|
// restarted if we do a graph cmp swap. This is why the
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import (
|
|||||||
|
|
||||||
"github.com/purpleidea/mgmt/converger"
|
"github.com/purpleidea/mgmt/converger"
|
||||||
"github.com/purpleidea/mgmt/engine"
|
"github.com/purpleidea/mgmt/engine"
|
||||||
|
engineUtil "github.com/purpleidea/mgmt/engine/util"
|
||||||
"github.com/purpleidea/mgmt/pgraph"
|
"github.com/purpleidea/mgmt/pgraph"
|
||||||
"github.com/purpleidea/mgmt/util/errwrap"
|
"github.com/purpleidea/mgmt/util/errwrap"
|
||||||
)
|
)
|
||||||
@@ -253,7 +254,7 @@ func (obj *State) Init() error {
|
|||||||
|
|
||||||
err := res.Init(obj.init)
|
err := res.Init(obj.init)
|
||||||
if obj.Debug {
|
if obj.Debug {
|
||||||
obj.Logf("Init(%s): Return(%+v)", res, err)
|
obj.Logf("Init(%s): Return(%s)", res, engineUtil.CleanError(err))
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errwrap.Wrapf(err, "could not Init() resource")
|
return errwrap.Wrapf(err, "could not Init() resource")
|
||||||
@@ -295,7 +296,7 @@ func (obj *State) Cleanup() error {
|
|||||||
|
|
||||||
reterr := res.Cleanup()
|
reterr := res.Cleanup()
|
||||||
if obj.Debug {
|
if obj.Debug {
|
||||||
obj.Logf("Close(%s): Return(%+v)", res, reterr)
|
obj.Logf("Close(%s): Return(%s)", res, engineUtil.CleanError(reterr))
|
||||||
}
|
}
|
||||||
|
|
||||||
reterr = errwrap.Append(reterr, reverr)
|
reterr = errwrap.Append(reterr, reverr)
|
||||||
|
|||||||
@@ -400,3 +400,12 @@ func AutoEdgeCombiner(ae ...engine.AutoEdge) (engine.AutoEdge, error) {
|
|||||||
ae: ae,
|
ae: ae,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CleanError takes the engine errors and prints them on a single line.
|
||||||
|
// TODO: maybe we can improve this here, it's a bit ugly.
|
||||||
|
func CleanError(err error) string {
|
||||||
|
if err == nil {
|
||||||
|
return fmt.Sprintf("%v", err)
|
||||||
|
}
|
||||||
|
return strings.ReplaceAll(err.Error(), "\n", " ")
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user