fixing with shelquote

pull/5530/head
Medya Gh 2019-10-08 17:08:38 -07:00
parent 91618aa38b
commit 25e3d870e5
5 changed files with 17 additions and 9 deletions

1
go.mod
View File

@ -44,6 +44,7 @@ require (
github.com/juju/testing v0.0.0-20190723135506-ce30eb24acd2 // indirect
github.com/juju/utils v0.0.0-20180820210520-bf9cc5bdd62d // indirect
github.com/juju/version v0.0.0-20180108022336-b64dbd566305 // indirect
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51
github.com/libvirt/libvirt-go v3.4.0+incompatible
github.com/machine-drivers/docker-machine-driver-vmware v0.1.1
github.com/mattn/go-isatty v0.0.8

2
go.sum
View File

@ -296,6 +296,8 @@ github.com/juju/version v0.0.0-20180108022336-b64dbd566305 h1:lQxPJ1URr2fjsKnJRt
github.com/juju/version v0.0.0-20180108022336-b64dbd566305/go.mod h1:kE8gK5X0CImdr7qpSKl3xB2PmpySSmfj7zVbkZFs81U=
github.com/kardianos/osext v0.0.0-20150410034420-8fef92e41e22/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8=
github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34=
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs=
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=

View File

@ -26,6 +26,7 @@ import (
"github.com/docker/machine/libmachine/drivers"
"github.com/docker/machine/libmachine/state"
"github.com/golang/glog"
"github.com/kballard/go-shellquote"
"github.com/pkg/errors"
"k8s.io/apimachinery/pkg/util/net"
pkgdrivers "k8s.io/minikube/pkg/drivers"
@ -172,8 +173,7 @@ func (d *Driver) Remove() error {
return errors.Wrap(err, "kill")
}
glog.Infof("Removing: %s", cleanupPaths)
c := exec.Command("/bin/bash", "-c", fmt.Sprintf("sudo rm -rf %s", strings.Join(cleanupPaths, " ")))
c := exec.Command("sudo", "rm", "-rf", shellquote.Join(cleanupPaths...))
if rr, err := d.exec.RunCmd(c); err != nil {
glog.Errorf("cleanup incomplete: %v , output: %s", err, rr.Output())
}
@ -225,12 +225,12 @@ func (d *Driver) RunSSHCommandFromDriver() error {
func stopKubelet(cr command.Runner) error {
glog.Infof("stopping kubelet.service ...")
stop := func() error {
cmdStop := exec.Command("/bin/bash", "-c", "sudo systemctl stop kubelet.service")
cmdStop := exec.Command("sudo", "systemctl", "stop", "kubelet.service")
if rr, err := cr.RunCmd(cmdStop); err != nil {
glog.Errorf("temporary error for %q : %v", rr.Command(), err)
}
var out bytes.Buffer
cmdCheck := exec.Command("/bin/bash", "-c", "sudo systemctl show -p SubState kubelet")
cmdCheck := exec.Command("sudo", "systemctl", "show", "-p", "SubState", "kubelet")
cmdCheck.Stdout = &out
cmdCheck.Stderr = &out
if rr, err := cr.RunCmd(cmdCheck); err != nil {
@ -252,7 +252,7 @@ func stopKubelet(cr command.Runner) error {
// restartKubelet restarts the kubelet
func restartKubelet(cr command.Runner) error {
glog.Infof("restarting kubelet.service ...")
c := exec.Command("/bin/bash", "-c", "sudo systemctl restart kubelet.service")
c := exec.Command("sudo", "systemctl", "restart", "kubelet.service")
if rr, err := cr.RunCmd(c); err != nil {
return errors.Wrapf(err, "restartKubelet output: %s", rr.Output())
}
@ -262,7 +262,7 @@ func restartKubelet(cr command.Runner) error {
// checkKubelet returns an error if the kubelet is not running.
func checkKubelet(cr command.Runner) error {
glog.Infof("checking for running kubelet ...")
c := exec.Command("/bin/bash", "-c", "systemctl is-active --quiet service kubelet")
c := exec.Command("systemctl", "is-active", "--quiet", "service", "kubelet")
if rr, err := cr.RunCmd(c); err != nil {
return errors.Wrapf(err, "checkKubelet output: %s", rr.Output())
}

View File

@ -447,7 +447,7 @@ func (k *Bootstrapper) RestartCluster(k8s config.KubernetesConfig) error {
}
// restart the proxy and coredns
if rr, err := k.c.RunCmd(exec.Command(fmt.Sprintf("%s phase addon all --config %s", baseCmd, yamlConfigPath))); err != nil {
if rr, err := k.c.RunCmd(exec.Command("/bin/bash", "-c", fmt.Sprintf("%s phase addon all --config %s", baseCmd, yamlConfigPath))); err != nil {
return errors.Wrapf(err, fmt.Sprintf("addon phase cmd:%q output:%q", rr.Command(), rr.Output()))
}

View File

@ -23,11 +23,11 @@ import (
"io"
"os/exec"
"path"
"strings"
"sync"
"time"
"github.com/golang/glog"
"github.com/kballard/go-shellquote"
"github.com/pkg/errors"
"golang.org/x/crypto/ssh"
"golang.org/x/sync/errgroup"
@ -125,7 +125,12 @@ func (s *SSHRunner) RunCmd(cmd *exec.Cmd) (*RunResult, error) {
}()
elapsed := time.Since(start)
err = teeSSH(sess, strings.Join(cmd.Args, " "), &outb, &errb)
fmt.Println("------------------------------MEDYAAAAAAAA------------------------------")
fmt.Printf("raw args:+%v", cmd.Args)
fmt.Printf("shellquote:{{{%s}}}", shellquote.Join(cmd.Args...))
fmt.Println("------------------------------END MEDYAAAAAAAA------------------------------")
err = teeSSH(sess, shellquote.Join(cmd.Args...), &outb, &errb)
if err == nil {
// Reduce log spam
if elapsed > (1 * time.Second) {