Reinforced the VMWare Workstation builder methodology for locating the dhcp.conf and dhcpd.leases files on Linux.

It was reported that on WS14 on Linux, that the path may be different than stated in the documentation. This modifies `workstationDhcpConfPath` and `workstationDhcpLeasesPath` functions to walk through every permutation while attempting to find the correct file.

This reinforces the fix for issue #5882.
pull/5900/head
Ali Rizvi-Santiago 8 years ago
parent d6e5342ece
commit 27ed479b0a

@ -8,6 +8,7 @@ import (
"errors"
"fmt"
"log"
"os"
"os/exec"
"path/filepath"
"regexp"
@ -50,7 +51,24 @@ func workstationDhcpLeasesPath(device string) string {
log.Printf("Error finding VMware root: %s", err)
return ""
}
return filepath.Join(base, device, "dhcpd/dhcpd.leases")
// Build the base path to VMware configuration for specified device: `/etc/vmware/${device}`
devicebase := filepath.Join(base, device)
// Walk through a list of paths searching for the correct permutation...
// ...as it appears that in >= WS14 and < WS14, the leases file may be labelled differently.
// Docs say we should expect: dhcpd/dhcpd.leases
paths := []string{"dhcpd/dhcpd.leases", "dhcpd/dhcp.leases", "dhcp/dhcpd.leases", "dhcp/dhcp.leases"}
for _, p := range paths {
fp := filepath.Join(devicebase, p)
if _, err := os.Stat(fp); !os.IsNotExist(err) {
return fp
}
}
log.Printf("Error finding VMWare DHCP Server Leases (dhcpd.leases) under device path: %s", devicebase)
return ""
}
func workstationDhcpConfPath(device string) string {
@ -59,7 +77,24 @@ func workstationDhcpConfPath(device string) string {
log.Printf("Error finding VMware root: %s", err)
return ""
}
return filepath.Join(base, device, "dhcp/dhcp.conf")
// Build the base path to VMware configuration for specified device: `/etc/vmware/${device}`
devicebase := filepath.Join(base, device)
// Walk through a list of paths searching for the correct permutation...
// ...as it appears that in >= WS14 and < WS14, the dhcp config may be labelled differently.
// Docs say we should expect: dhcp/dhcp.conf
paths := []string{"dhcp/dhcp.conf", "dhcp/dhcpd.conf", "dhcpd/dhcp.conf", "dhcpd/dhcpd.conf"}
for _, p := range paths {
fp := filepath.Join(devicebase, p)
if _, err := os.Stat(fp); !os.IsNotExist(err) {
return fp
}
}
log.Printf("Error finding VMWare DHCP Server Configuration (dhcp.conf) under device path: %s", devicebase)
return ""
}
func workstationVmnetnatConfPath(device string) string {

Loading…
Cancel
Save