diff --git a/drivers/digitalocean/digitalocean.go b/drivers/digitalocean/digitalocean.go index 0638c107fe..5232860025 100644 --- a/drivers/digitalocean/digitalocean.go +++ b/drivers/digitalocean/digitalocean.go @@ -226,13 +226,6 @@ func (d *Driver) GetURL() (string, error) { return fmt.Sprintf("tcp://%s:2376", ip), nil } -func (d *Driver) GetIP() (string, error) { - if d.IPAddress == "" { - return "", fmt.Errorf("IP address is not set") - } - return d.IPAddress, nil -} - func (d *Driver) GetState() (state.State, error) { droplet, _, err := d.getClient().Droplets.Get(d.DropletID) if err != nil { diff --git a/drivers/exoscale/exoscale.go b/drivers/exoscale/exoscale.go index 68bfe4ae60..de798f7bf2 100644 --- a/drivers/exoscale/exoscale.go +++ b/drivers/exoscale/exoscale.go @@ -146,13 +146,6 @@ func (d *Driver) GetURL() (string, error) { return fmt.Sprintf("tcp://%s:2376", ip), nil } -func (d *Driver) GetIP() (string, error) { - if d.IPAddress == "" { - return "", fmt.Errorf("IP address is not set") - } - return d.IPAddress, nil -} - func (d *Driver) GetState() (state.State, error) { client := egoscale.NewClient(d.URL, d.ApiKey, d.ApiSecretKey) vm, err := client.GetVirtualMachine(d.Id) diff --git a/drivers/generic/generic.go b/drivers/generic/generic.go index 9b35a37eac..9ae4580eaa 100644 --- a/drivers/generic/generic.go +++ b/drivers/generic/generic.go @@ -121,11 +121,7 @@ func (d *Driver) GetURL() (string, error) { return fmt.Sprintf("tcp://%s:2376", ip), nil } -func (d *Driver) GetIP() (string, error) { - if d.IPAddress == "" { - return "", fmt.Errorf("IP address is not set") } - return d.IPAddress, nil } func (d *Driver) GetState() (state.State, error) { diff --git a/libmachine/drivers/base.go b/libmachine/drivers/base.go index 17bd097dd8..c352b75fc1 100644 --- a/libmachine/drivers/base.go +++ b/libmachine/drivers/base.go @@ -26,6 +26,16 @@ func (d *BaseDriver) DriverName() string { } // GetIP returns the ip +func (d *BaseDriver) GetIP() (string, error) { + if d.IPAddress == "" { + return "", fmt.Errorf("IP address is not set") + } + ip := net.ParseIP(d.IPAddress) + if ip == nil { + return "", fmt.Errorf("IP address is invalid") + } + return d.IPAddress, nil +} func (d *BaseDriver) GetMachineName() string { return d.MachineName }