builder/vmware: check for ifconfig in /sbin [GH-591]

This commit is contained in:
Mitchell Hashimoto 2013-11-04 14:34:51 -08:00
parent cf0ac15ecc
commit 7aab3381f1
2 changed files with 16 additions and 3 deletions

View File

@ -22,6 +22,7 @@ BUG FIXES:
[GH-554]
* builder/openstack: Properly scrub password from logs [GH-554]
* builder/virtualbox: No panic if SSH host port min/max is the same. [GH-594]
* builder/vmware: checks if `ifconfig` is in `/sbin` [GH-591]
* builder/vmware: Host IP lookup works for non-C locales. [GH-592]
* common/uuid: Use cryptographically secure PRNG when generating
UUIDs. [GH-552]

View File

@ -3,6 +3,7 @@ package vmware
import (
"bytes"
"errors"
"os"
"os/exec"
"regexp"
)
@ -13,9 +14,20 @@ type IfconfigIPFinder struct {
}
func (f *IfconfigIPFinder) HostIP() (string, error) {
ifconfigPath, err := exec.LookPath("ifconfig")
if err != nil {
return "", err
var ifconfigPath string
// On some systems, ifconfig is in /sbin which is generally not
// on the PATH for a standard user, so we just check that first.
if _, err := os.Stat("/sbin/ifconfig"); err == nil {
ifconfigPath = "/sbin/ifconfig"
}
if ifconfigPath == "" {
var err error
ifconfigPath, err = exec.LookPath("ifconfig")
if err != nil {
return "", err
}
}
stdout := new(bytes.Buffer)