func enable(c *cli.Context) { cfg, err := config.LoadConfig() if err != nil { logrus.Fatal(err) } var enabledServices []string for _, service := range c.Args() { if val, ok := cfg.Rancher.ServicesInclude[service]; !ok || !val { if strings.HasPrefix(service, "/") && !strings.HasPrefix(service, "/var/lib/rancher/conf") { logrus.Fatalf("ERROR: Service should be in path /var/lib/rancher/conf") } cfg.Rancher.ServicesInclude[service] = true enabledServices = append(enabledServices, service) } } if len(enabledServices) > 0 { if err := compose.StageServices(cfg, enabledServices...); err != nil { logrus.Fatal(err) } if err := cfg.Save(); err != nil { logrus.Fatal(err) } } }
func consoleSwitch(c *cli.Context) error { if len(c.Args()) != 1 { log.Fatal("Must specify exactly one console to switch to") } newConsole := c.Args()[0] cfg := config.LoadConfig() if newConsole == cfg.Rancher.Console { log.Warnf("Console is already set to %s", newConsole) } if !c.Bool("force") { in := bufio.NewReader(os.Stdin) fmt.Println("Switching consoles will destroy the current console container and restart Docker.") fmt.Println("Note: You will also be logged out.") if !yes(in, "Continue") { return nil } } if newConsole != "default" { if err := compose.StageServices(cfg, newConsole); err != nil { return err } } service, err := compose.CreateService(nil, "switch-console", &composeConfig.ServiceConfigV1{ LogDriver: "json-file", Privileged: true, Net: "host", Pid: "host", Image: fmt.Sprintf("rancher/os-base:%s", config.VERSION), Labels: map[string]string{ config.SCOPE: config.SYSTEM, }, Command: []string{"/usr/bin/switch-console", newConsole}, VolumesFrom: []string{"all-volumes"}, }) if err != nil { return err } if err = service.Delete(context.Background(), options.Delete{}); err != nil { return err } if err = service.Up(context.Background(), options.Up{}); err != nil { return err } return service.Log(context.Background(), true) }
func consoleEnable(c *cli.Context) error { if len(c.Args()) != 1 { log.Fatal("Must specify exactly one console to enable") } newConsole := c.Args()[0] cfg := config.LoadConfig() if newConsole != "default" { if err := compose.StageServices(cfg, newConsole); err != nil { return err } } if err := config.Set("rancher.console", newConsole); err != nil { log.Errorf("Failed to update 'rancher.console': %v", err) } return nil }