Skip to content

Commit

Permalink
more reliable stop for none driver (kubernetes#4871)
Browse files Browse the repository at this point in the history
* more reliable stop for none driver

* print stop error

* better error logging

* misspell

* error formatting

* Passing lint interfacer nag
  • Loading branch information
medyagh authored and sharifelgamal committed Jul 25, 2019
1 parent 4ea0250 commit c603300
Showing 1 changed file with 26 additions and 1 deletion.
27 changes: 26 additions & 1 deletion pkg/drivers/none/none.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,10 @@ limitations under the License.
package none

import (
"bytes"
"fmt"
"strings"
"time"

"github.com/docker/machine/libmachine/drivers"
"github.com/docker/machine/libmachine/state"
Expand All @@ -29,6 +31,7 @@ import (
"k8s.io/minikube/pkg/minikube/command"
"k8s.io/minikube/pkg/minikube/constants"
"k8s.io/minikube/pkg/minikube/cruntime"
"k8s.io/minikube/pkg/util"
)

const driverName = constants.DriverNone
Expand Down Expand Up @@ -218,7 +221,29 @@ func (d *Driver) RunSSHCommandFromDriver() error {
// stopKubelet idempotently stops the kubelet
func stopKubelet(exec command.Runner) error {
glog.Infof("stopping kubelet.service ...")
return exec.Run("sudo systemctl stop kubelet.service")
stop := func() error {
cmdStop := "sudo systemctl stop kubelet.service"
cmdCheck := "sudo systemctl show -p SubState --value kubelet"
err := exec.Run(cmdStop)
if err != nil {
glog.Errorf("Temporary Error for %q : %v", cmdStop, err)
}
var out bytes.Buffer
errStatus := exec.CombinedOutputTo(cmdCheck, &out)
if errStatus != nil {
glog.Errorf("Temporary Error: for %q : %v", cmdCheck, errStatus)
}
if !strings.Contains(out.String(), "dead") {
return fmt.Errorf("expected to kubelet to be dead but it got : %q", out)
}
return nil
}

if err := util.RetryAfter(3, stop, 2*time.Second); err != nil {
return errors.Wrapf(err, "Error stopping kubelet")
}

return nil
}

// restartKubelet restarts the kubelet
Expand Down

0 comments on commit c603300

Please sign in to comment.