提交 298be78e 编写于 作者: M Medya Gh

remove duplicate code

上级 beec3b1c
......@@ -17,15 +17,11 @@ limitations under the License.
package drivers
import (
"fmt"
"io"
"io/ioutil"
"os"
"os/exec"
"path/filepath"
"strings"
"syscall"
"time"
"github.com/docker/machine/libmachine/drivers"
"github.com/docker/machine/libmachine/mcnflag"
......@@ -33,8 +29,6 @@ import (
"github.com/docker/machine/libmachine/ssh"
"github.com/golang/glog"
"github.com/pkg/errors"
"k8s.io/minikube/pkg/minikube/command"
"k8s.io/minikube/pkg/util/retry"
)
// This file is for common code shared among internal machine drivers
......@@ -145,29 +139,3 @@ func fixMachinePermissions(path string) error {
}
return nil
}
// StopKubelet idempotently stops the kubelet
func StopKubelet(cr command.Runner) error {
glog.Infof("stopping kubelet.service ...")
stop := func() error {
cmd := exec.Command("sudo", "systemctl", "stop", "-f", "kubelet.service")
if rr, err := cr.RunCmd(cmd); err != nil {
glog.Errorf("temporary error for %q : %v", rr.Command(), err)
}
cmd = exec.Command("sudo", "systemctl", "show", "-p", "SubState", "kubelet")
rr, err := cr.RunCmd(cmd)
if err != nil {
glog.Errorf("temporary error: for %q : %v", rr.Command(), err)
}
if !strings.Contains(rr.Stdout.String(), "dead") && !strings.Contains(rr.Stdout.String(), "failed") {
return fmt.Errorf("unexpected kubelet state: %q", rr.Stdout.String())
}
return nil
}
if err := retry.Expo(stop, 2*time.Second, time.Minute*3, 5); err != nil {
return errors.Wrapf(err, "error stopping kubelet")
}
return nil
}
......@@ -37,6 +37,7 @@ import (
"k8s.io/minikube/pkg/minikube/command"
"k8s.io/minikube/pkg/minikube/constants"
"k8s.io/minikube/pkg/minikube/download"
"k8s.io/minikube/pkg/minikube/kubelet"
)
// Driver represents a kic driver https://minikube.sigs.k8s.io/docs/reference/drivers/docker
......@@ -313,9 +314,9 @@ func (d *Driver) Start() error {
// Stop a host gracefully, including any containers that we are managing.
func (d *Driver) Stop() error {
// docker does not send right SIG for systemd to know to stop the systemd.
// to avoid bind adress be taken on an upgrade. more info https://github.com/kubernetes/minikube/issues/7171
if err := pkgdrivers.StopKubelet(d.exec); err != nil {
glog.Warning("couldn't stop kubelet %v", err)
// to avoid bind address be taken on an upgrade. more info https://github.com/kubernetes/minikube/issues/7171
if err := kubelet.Stop(d.exec); err != nil {
glog.Warningf("couldn't stop kubelet. will continue with stop anyways: %v", err)
}
cmd := exec.Command(d.NodeConfig.OCIBinary, "stop", d.MachineName)
......
......@@ -32,6 +32,7 @@ import (
"k8s.io/minikube/pkg/minikube/constants"
"k8s.io/minikube/pkg/minikube/cruntime"
"k8s.io/minikube/pkg/minikube/kubeconfig"
"k8s.io/minikube/pkg/minikube/kubelet"
"k8s.io/minikube/pkg/minikube/vmpath"
)
......@@ -153,8 +154,8 @@ func (d *Driver) GetState() (state.State, error) {
// Kill stops a host forcefully, including any containers that we are managing.
func (d *Driver) Kill() error {
if err := pkgdrivers.StopKubelet(d.exec); err != nil {
glog.Warning("couldn't stop kubelet %v. will continue with kill anyways.", err)
if err := kubelet.Stop(d.exec); err != nil {
glog.Warningf("couldn't stop kubelet. will continue with kill anyways: %v", err)
}
// First try to gracefully stop containers
......@@ -217,8 +218,8 @@ func (d *Driver) Start() error {
// Stop a host gracefully, including any containers that we are managing.
func (d *Driver) Stop() error {
if err := pkgdrivers.StopKubelet(d.exec); err != nil {
glog.Warning("couldn't stop kubelet %v. will continue with stop anyways.", err)
if err := kubelet.Stop(d.exec); err != nil {
glog.Warningf("couldn't stop kubelet. will continue with stop anyways: %v", err)
}
containers, err := d.runtime.ListContainers(cruntime.ListOptions{})
if err != nil {
......
......@@ -32,7 +32,7 @@ import (
func Stop(cr command.Runner) error {
glog.Infof("stopping kubelet ...")
stop := func() error {
cmd := exec.Command("sudo", "systemctl", "stop", "kubelet.service")
cmd := exec.Command("sudo", "systemctl", "stop", "-f", "kubelet.service")
if rr, err := cr.RunCmd(cmd); err != nil {
glog.Errorf("temporary error for %q : %v", rr.Command(), err)
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册