1
0
mirror of https://github.com/rancher/os.git synced 2025-08-01 23:17:50 +00:00

do not panic

This commit is contained in:
Ivan Mikushin 2015-08-20 18:06:48 +05:00
parent b0fb2ff875
commit aa1af05d46
4 changed files with 14 additions and 19 deletions

View File

@ -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

View File

@ -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,
)
}

View File

@ -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)
}
}

View File

@ -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
}