Render output as colored tables with pass/fail verdict
This commit is contained in:
@@ -80,17 +80,27 @@ type tuneResult struct {
|
||||
err error
|
||||
}
|
||||
|
||||
func (r tuneResult) String() string {
|
||||
func (r tuneResult) status() string {
|
||||
switch {
|
||||
case r.err != nil:
|
||||
return fmt.Sprintf(" %-34s FAIL %s (%v)", r.item, r.state, r.err)
|
||||
return paint("FAIL", cRed)
|
||||
case r.fixed:
|
||||
return fmt.Sprintf(" %-34s FIXED %s", r.item, r.state)
|
||||
return paint("FIXED", cYellow)
|
||||
default:
|
||||
return fmt.Sprintf(" %-34s ok %s", r.item, r.state)
|
||||
return paint("ok", cGreen)
|
||||
}
|
||||
}
|
||||
|
||||
func (r tuneResult) detail() string {
|
||||
if r.err != nil {
|
||||
if r.state == "" {
|
||||
return r.err.Error()
|
||||
}
|
||||
return fmt.Sprintf("%s: %v", r.state, r.err)
|
||||
}
|
||||
return r.state
|
||||
}
|
||||
|
||||
func ethtoolCall(fd int, ifname string, data unsafe.Pointer) error {
|
||||
var ifr ethtoolIfreq
|
||||
if len(ifname) >= unix.IFNAMSIZ {
|
||||
@@ -346,24 +356,25 @@ func applyTuning(cfg tuneConfig, ifnames []string) []tuneResult {
|
||||
return out
|
||||
}
|
||||
|
||||
func verifyTuning(cfg tuneConfig, ifnames []string) []string {
|
||||
func verifyTuning(cfg tuneConfig, ifnames []string) []tuneResult {
|
||||
fd, err := unix.Socket(unix.AF_INET, unix.SOCK_DGRAM, 0)
|
||||
if err != nil {
|
||||
return []string{fmt.Sprintf("drift check failed: %v", err)}
|
||||
return []tuneResult{{item: "drift check", err: err}}
|
||||
}
|
||||
defer unix.Close(fd)
|
||||
|
||||
var warnings []string
|
||||
var drifted []tuneResult
|
||||
if r := checkGovernor(cfg.governor, cfg.enabled); r.fixed || r.err != nil {
|
||||
warnings = append(warnings, "host config drifted:"+r.String())
|
||||
drifted = append(drifted, r)
|
||||
}
|
||||
for _, ifname := range ifnames {
|
||||
if r := checkCoalesce(fd, ifname, cfg.rxUsecs, cfg.txUsecs, cfg.enabled); r.fixed || r.err != nil {
|
||||
warnings = append(warnings, "host config drifted:"+r.String())
|
||||
drifted = append(drifted, r)
|
||||
}
|
||||
if r, _ := checkRings(fd, ifname, cfg.rxRing, cfg.txRing, false); r.err != nil {
|
||||
warnings = append(warnings, "host config drifted (not corrected, would reset link):"+r.String())
|
||||
r.state = "left alone, resizing would reset the link"
|
||||
drifted = append(drifted, r)
|
||||
}
|
||||
}
|
||||
return warnings
|
||||
return drifted
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user