mirror of https://github.com/docker/docs.git
Merge pull request #2790 from daehyeok/vmwarefusion_dhcp
VMWARE Fusion get IP from multiple leases files
This commit is contained in:
commit
dd5dd5d178
|
@ -449,19 +449,10 @@ func (d *Driver) vmdkPath() string {
|
|||
}
|
||||
|
||||
func (d *Driver) getIPfromDHCPLease() (string, error) {
|
||||
var vmxfh *os.File
|
||||
var dhcpfh *os.File
|
||||
var vmxcontent []byte
|
||||
var dhcpcontent []byte
|
||||
var macaddr string
|
||||
var err error
|
||||
var lastipmatch string
|
||||
var currentip string
|
||||
var lastleaseendtime time.Time
|
||||
var currentleadeendtime time.Time
|
||||
|
||||
// DHCP lease table for NAT vmnet interface
|
||||
var dhcpfile = "/var/db/vmware/vmnet-dhcpd-vmnet8.leases"
|
||||
var vmxfh *os.File
|
||||
var vmxcontent []byte
|
||||
var err error
|
||||
|
||||
if vmxfh, err = os.Open(d.vmxPath()); err != nil {
|
||||
return "", err
|
||||
|
@ -473,6 +464,7 @@ func (d *Driver) getIPfromDHCPLease() (string, error) {
|
|||
}
|
||||
|
||||
// Look for generatedAddress as we're passing a VMX with addressType = "generated".
|
||||
var macaddr string
|
||||
vmxparse := regexp.MustCompile(`^ethernet0.generatedAddress\s*=\s*"(.*?)"\s*$`)
|
||||
for _, line := range strings.Split(string(vmxcontent), "\n") {
|
||||
if matches := vmxparse.FindStringSubmatch(line); matches == nil {
|
||||
|
@ -487,6 +479,29 @@ func (d *Driver) getIPfromDHCPLease() (string, error) {
|
|||
}
|
||||
|
||||
log.Debugf("MAC address in VMX: %s", macaddr)
|
||||
|
||||
// DHCP lease table for NAT vmnet interface
|
||||
leasesFiles, _ := filepath.Glob("/var/db/vmware/*.leases")
|
||||
for _, dhcpfile := range leasesFiles {
|
||||
log.Debugf("Trying to find IP address in leases file: %s", dhcpfile)
|
||||
if ipaddr, err := d.getIPfromDHCPLeaseFile(dhcpfile, macaddr); err == nil {
|
||||
return ipaddr, err
|
||||
}
|
||||
}
|
||||
|
||||
return "", fmt.Errorf("IP not found for MAC %s in DHCP leases", macaddr)
|
||||
}
|
||||
|
||||
func (d *Driver) getIPfromDHCPLeaseFile(dhcpfile, macaddr string) (string, error) {
|
||||
|
||||
var dhcpfh *os.File
|
||||
var dhcpcontent []byte
|
||||
var lastipmatch string
|
||||
var currentip string
|
||||
var lastleaseendtime time.Time
|
||||
var currentleadeendtime time.Time
|
||||
var err error
|
||||
|
||||
if dhcpfh, err = os.Open(dhcpfile); err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
@ -526,8 +541,8 @@ func (d *Driver) getIPfromDHCPLease() (string, error) {
|
|||
}
|
||||
|
||||
log.Debugf("IP found in DHCP lease table: %s", currentip)
|
||||
return currentip, nil
|
||||
|
||||
return currentip, nil
|
||||
}
|
||||
|
||||
func (d *Driver) publicSSHKeyPath() string {
|
||||
|
|
Loading…
Reference in New Issue