add path to the error msg
parent
cca2b6a39b
commit
5906bd3b93
|
|
@ -535,10 +535,10 @@ func updateDriver(driverName string) {
|
||||||
out.WarningT("Error parsing minikube version: {{.error}}", out.V{"error": err})
|
out.WarningT("Error parsing minikube version: {{.error}}", out.V{"error": err})
|
||||||
} else if err := auxdriver.InstallOrUpdate(driverName, localpath.MakeMiniPath("bin"), v, viper.GetBool(interactive), viper.GetBool(autoUpdate)); err != nil {
|
} else if err := auxdriver.InstallOrUpdate(driverName, localpath.MakeMiniPath("bin"), v, viper.GetBool(interactive), viper.GetBool(autoUpdate)); err != nil {
|
||||||
if errors.Is(err, auxdriver.ErrAuxDriverVersionCommandFailed) {
|
if errors.Is(err, auxdriver.ErrAuxDriverVersionCommandFailed) {
|
||||||
exit.Error(reason.DrvAuxNotHealthy, "Aux driver failed for:"+driverName, err)
|
exit.Error(reason.DrvAuxNotHealthy, "Aux driver "+driverName, err)
|
||||||
}
|
}
|
||||||
if errors.Is(err, auxdriver.ErrAuxDriverVersionNotinPath) {
|
if errors.Is(err, auxdriver.ErrAuxDriverVersionNotinPath) {
|
||||||
exit.Error(reason.DrvAuxNotHealthy, "Aux driver not found in path "+driverName, err)
|
exit.Error(reason.DrvAuxNotHealthy, "Aux driver"+driverName, err)
|
||||||
} //if failed to update but not a fatal error, log it and continue (old version might still work)
|
} //if failed to update but not a fatal error, log it and continue (old version might still work)
|
||||||
out.WarningT("Unable to update {{.driver}} driver: {{.error}}", out.V{"driver": driverName, "error": err})
|
out.WarningT("Unable to update {{.driver}} driver: {{.error}}", out.V{"driver": driverName, "error": err})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -38,11 +38,19 @@ import (
|
||||||
"k8s.io/minikube/pkg/util/lock"
|
"k8s.io/minikube/pkg/util/lock"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func newAuxUnthealthyError(path string) error {
|
||||||
|
return errors.New(fmt.Sprintf(`failed to execute auxiliary version command "%s --version"`, path))
|
||||||
|
}
|
||||||
|
|
||||||
|
func newAuxNotFoundError(path string) error {
|
||||||
|
return errors.New(fmt.Sprintf("auxiliary not pound in path command %s", path))
|
||||||
|
}
|
||||||
|
|
||||||
// ErrAuxDriverVersionCommandFailed indicates the aux driver 'version' command failed to run
|
// ErrAuxDriverVersionCommandFailed indicates the aux driver 'version' command failed to run
|
||||||
var ErrAuxDriverVersionCommandFailed = errors.New("failed to execute auxiliary driver version command")
|
var ErrAuxDriverVersionCommandFailed error
|
||||||
|
|
||||||
// ErrAuxDriverVersionNotinPath was not found in PATH
|
// ErrAuxDriverVersionNotinPath was not found in PATH
|
||||||
var ErrAuxDriverVersionNotinPath = errors.New("auxiliary driver was not found in path")
|
var ErrAuxDriverVersionNotinPath error
|
||||||
|
|
||||||
// InstallOrUpdate downloads driver if it is not present, or updates it if there's a newer version
|
// InstallOrUpdate downloads driver if it is not present, or updates it if there's a newer version
|
||||||
func InstallOrUpdate(name string, directory string, v semver.Version, interactive bool, autoUpdate bool) error {
|
func InstallOrUpdate(name string, directory string, v semver.Version, interactive bool, autoUpdate bool) error {
|
||||||
|
|
@ -81,29 +89,6 @@ func InstallOrUpdate(name string, directory string, v semver.Version, interactiv
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// verifyExecutes ensures the installed auxiliary driver binary executes successfully.
|
|
||||||
func verifyExecutes(name string) error {
|
|
||||||
if name != driver.KVM2 && name != driver.HyperKit {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
executable := fmt.Sprintf("docker-machine-driver-%s", name)
|
|
||||||
path, err := exec.LookPath(executable)
|
|
||||||
if err != nil {
|
|
||||||
return ErrAuxDriverVersionNotinPath
|
|
||||||
}
|
|
||||||
|
|
||||||
cmd := exec.Command(path, "version")
|
|
||||||
output, err := cmd.CombinedOutput()
|
|
||||||
if err != nil {
|
|
||||||
details := strings.TrimSpace(string(output))
|
|
||||||
klog.Warningf("%s failed: %v: %s", strings.Join(cmd.Args, " "), err, details)
|
|
||||||
return ErrAuxDriverVersionCommandFailed
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// fixDriverPermissions fixes the permissions on a driver
|
// fixDriverPermissions fixes the permissions on a driver
|
||||||
func fixDriverPermissions(name string, path string, interactive bool) error {
|
func fixDriverPermissions(name string, path string, interactive bool) error {
|
||||||
if name != driver.HyperKit {
|
if name != driver.HyperKit {
|
||||||
|
|
@ -154,6 +139,7 @@ func validateDriver(executable string, v semver.Version) (string, error) {
|
||||||
path, err := exec.LookPath(executable)
|
path, err := exec.LookPath(executable)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
klog.Warningf("driver not in path : %s, %v", path, err.Error())
|
klog.Warningf("driver not in path : %s, %v", path, err.Error())
|
||||||
|
ErrAuxDriverVersionNotinPath = newAuxNotFoundError(path)
|
||||||
return path, ErrAuxDriverVersionNotinPath
|
return path, ErrAuxDriverVersionNotinPath
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -161,6 +147,7 @@ func validateDriver(executable string, v semver.Version) (string, error) {
|
||||||
output, err := cmd.CombinedOutput()
|
output, err := cmd.CombinedOutput()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
klog.Warningf("%s failed: %v: %s", strings.Join(cmd.Args, " "), err, output)
|
klog.Warningf("%s failed: %v: %s", strings.Join(cmd.Args, " "), err, output)
|
||||||
|
ErrAuxDriverVersionCommandFailed = newAuxUnthealthyError(path)
|
||||||
return path, ErrAuxDriverVersionCommandFailed
|
return path, ErrAuxDriverVersionCommandFailed
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue