func (provisioner *RedHatProvisioner) Service(name string, action serviceaction.ServiceAction) error { reloadDaemon := false switch action { case serviceaction.Start, serviceaction.Restart: reloadDaemon = true } // systemd needs reloaded when config changes on disk; we cannot // be sure exactly when it changes from the provisioner so // we call a reload on every restart to be safe if reloadDaemon { reload_command := provisioner.Driver.SSHSudo("systemctl daemon-reload") if _, err := provisioner.SSHCommand(reload_command); err != nil { return err } } systemctl_command := provisioner.Driver.SSHSudo("systemctl %s %s") command := fmt.Sprintf(systemctl_command, action.String(), name) if _, err := provisioner.SSHCommand(command); err != nil { return err } return nil }
func (provisioner *CoreOSProvisioner) Service(name string, action serviceaction.ServiceAction) error { // daemon-reload to catch config updates; systemd -- ugh if _, err := provisioner.SSHCommand("sudo systemctl daemon-reload"); err != nil { return err } command := fmt.Sprintf("sudo systemctl %s %s", action.String(), name) if _, err := provisioner.SSHCommand(command); err != nil { return err } // wait until docker is running if (name == "docker") && (action.String() == "start") { ip, err := provisioner.GetDriver().GetIP() if err != nil { return err } if err := utils.WaitForDocker(ip, 2376); err != nil { return err } } return nil }
func (provisioner *UbuntuProvisioner) Service(name string, action serviceaction.ServiceAction) error { command := fmt.Sprintf("sudo service %s %s", name, action.String()) if _, err := provisioner.SSHCommand(command); err != nil { return err } return nil }
func (provisioner *RancherProvisioner) Service(name string, action serviceaction.ServiceAction) error { command := fmt.Sprintf("sudo system-docker %s %s", action.String(), name) if _, err := provisioner.SSHCommand(command); err != nil { return err } return nil }
func (provisioner *Boot2DockerProvisioner) Service(name string, action serviceaction.ServiceAction) error { var ( err error ) if _, err = provisioner.SSHCommand(fmt.Sprintf("sudo /etc/init.d/%s %s", name, action.String())); err != nil { return err } return nil }
func (provisioner *DebianProvisioner) Service(name string, action serviceaction.ServiceAction) error { // daemon-reload to catch config updates; systemd -- ugh if _, err := provisioner.SSHCommand("sudo systemctl daemon-reload"); err != nil { return err } command := fmt.Sprintf("sudo systemctl -f %s %s", action.String(), name) if _, err := provisioner.SSHCommand(command); err != nil { return err } return nil }
func (provisioner *CoreOSProvisioner) Service(name string, action serviceaction.ServiceAction) error { if _, err := provisioner.SSHCommand("sudo systemctl daemon-reload"); err != nil { return err } command := fmt.Sprintf("sudo systemctl %s %s", action.String(), name) if _, err := provisioner.SSHCommand(command); err != nil { return err } // wait until docker is running if (name == "docker") && (action.String() == "start") { if err := waitForDocker(provisioner, 2376); err != nil { return err } } return nil }
func (provisioner *Boot2DockerProvisioner) Service(name string, action serviceaction.ServiceAction) error { _, err := provisioner.SSHCommand(fmt.Sprintf("sudo /etc/init.d/%s %s", name, action.String())) return err }
func (provisioner *WindowsProvisioner) Service(name string, action serviceaction.ServiceAction) error { ip, err := provisioner.Driver.GetIP() if err != nil { return err } d := provisioner.Driver out, stderr, exit, err := drivers.WinRMRunCmdWithNTLM(ip, d.GetSSHUsername(), d.GetSSHPassword(), fmt.Sprintf("net %s %s", action.String(), name)) if (err != nil) || (exit != 0) { log.Error("service stdout:", out, ", stderr:", stderr, ", err:", err, ", exit:", exit) return err } return nil }