1
0
mirror of https://github.com/rancher/os.git synced 2025-06-24 05:57:03 +00:00
os/cmd/control/reload.go

54 lines
1.1 KiB
Go
Raw Normal View History

2015-02-23 03:56:25 +00:00
package control
import (
log "github.com/Sirupsen/logrus"
"github.com/codegangsta/cli"
"github.com/rancherio/os/config"
"github.com/rancherio/os/docker"
)
//func parseContainers(cfg *config.Config) map[string]*docker.Container {
// result := map[string]*docker.Container{}
//
// for _, containerConfig := range cfg.SystemContainers {
// container := docker.NewContainer(config.DOCKER_SYSTEM_HOST, &containerConfig)
// if containerConfig.Id != "" {
// result[containerConfig.Id] = container
// }
// }
//
// return result
//}
2015-02-23 03:56:25 +00:00
func reload(c *cli.Context) {
_, err := config.LoadConfig()
2015-02-23 03:56:25 +00:00
if err != nil {
log.Fatal(err)
}
containers := map[string]*docker.Container{} //parseContainers(cfg)
2015-02-23 03:56:25 +00:00
toStart := make([]*docker.Container, 0, len(c.Args()))
for _, id := range c.Args() {
if container, ok := containers[id]; ok {
toStart = append(toStart, container.Stage())
}
}
var firstErr error
for _, c := range toStart {
err := c.Start().Err
if err != nil {
log.Errorf("Failed to start %s : %v", c.ContainerCfg.Id, err)
if firstErr != nil {
firstErr = err
}
}
}
if firstErr != nil {
log.Fatal(firstErr)
}
}