diff --git a/cmd/control/config.go b/cmd/control/config.go index a711d66e..7b21a775 100644 --- a/cmd/control/config.go +++ b/cmd/control/config.go @@ -165,12 +165,12 @@ func configGet(c *cli.Context) { cfg, err := config.LoadConfig() if err != nil { - log.Panicln(err) + log.WithFields(log.Fields{"err": err}).Fatal("config get: failed to load config") } val, err := cfg.Get(arg) if err != nil { - log.WithFields(log.Fields{"cfg": cfg, "arg": arg, "val": val}).Panicln(err) + log.WithFields(log.Fields{"cfg": cfg, "key": arg, "val": val, "err": err}).Fatal("config get: failed to retrieve value") } printYaml := false diff --git a/config/config.go b/config/config.go index 03c5cf13..77f384cd 100644 --- a/config/config.go +++ b/config/config.go @@ -49,7 +49,7 @@ func (c *CloudConfig) Merge(bytes []byte) error { func LoadConfig() (*CloudConfig, error) { cfg := NewConfig() if err := cfg.Reload(); err != nil { - log.WithFields(log.Fields{"cfg": cfg}).Panicln(err) + log.WithFields(log.Fields{"cfg": cfg, "err": err}).Error("Failed to reload config") return nil, err } @@ -73,12 +73,12 @@ func (c *CloudConfig) merge(values map[interface{}]interface{}) error { func (c *CloudConfig) readFiles() error { data, err := readConfig(nil, CloudConfigFile, LocalConfigFile, PrivateConfigFile) if err != nil { - log.Panicln(err) + log.WithFields(log.Fields{"err": err}).Error("Error reading config files") return err } if err := c.merge(data); err != nil { - log.WithFields(log.Fields{"cfg": c, "data": data}).Panicln(err) + log.WithFields(log.Fields{"cfg": c, "data": data, "err": err}).Error("Error merging config data") return err } @@ -89,7 +89,7 @@ func (c *CloudConfig) readCmdline() error { log.Debug("Reading config cmdline") cmdLine, err := ioutil.ReadFile("/proc/cmdline") if err != nil { - log.Panicln(err) + log.WithFields(log.Fields{"err": err}).Error("Failed to read kernel params") return err } @@ -102,8 +102,7 @@ func (c *CloudConfig) readCmdline() error { cmdLineObj := parseCmdline(strings.TrimSpace(string(cmdLine))) if err := c.merge(cmdLineObj); err != nil { - log.WithFields(log.Fields{"cfg": c, "cmdLine": cmdLine, "data": cmdLineObj}).Panicln(err) - return err + log.WithFields(log.Fields{"cfg": c, "cmdLine": cmdLine, "data": cmdLineObj, "err": err}).Warn("Error adding kernel params to config") } return nil } @@ -129,7 +128,7 @@ func Dump(private, full bool) (string, error) { return "", err } - if err := c.readGlobals(); err != nil { + if err := c.readCmdline(); err != nil { return "", err } @@ -158,16 +157,10 @@ func (c *CloudConfig) amendNils() error { return nil } -func (c *CloudConfig) readGlobals() error { - return util.ShortCircuit( - c.readCmdline, - ) -} - func (c *CloudConfig) Reload() error { return util.ShortCircuit( c.readFiles, - c.readGlobals, + c.readCmdline, c.amendNils, ) } diff --git a/init/init.go b/init/init.go index 43bc801a..6d4b2855 100644 --- a/init/init.go +++ b/init/init.go @@ -168,8 +168,10 @@ func RunInit() error { } if cfg.Rancher.Debug { - cfgString, _ := config.Dump(false, true) - if cfgString != "" { + cfgString, err := config.Dump(false, true) + if err != nil { + log.WithFields(log.Fields{"err": err}).Error("Error serializing config") + } else { log.Debugf("Config: %s", cfgString) } } diff --git a/util/util.go b/util/util.go index e4482b75..6eb8e7d8 100644 --- a/util/util.go +++ b/util/util.go @@ -155,7 +155,7 @@ func RandSeq(n int) string { func Convert(from, to interface{}) error { bytes, err := yaml.Marshal(from) if err != nil { - log.WithFields(log.Fields{"from": from}).Panicln(err) + log.WithFields(log.Fields{"from": from, "err": err}).Warn("Error serializing to YML") return err }