virtualbox: virtualbox-hostonly-no-dhcp flag to avoid creation of the dhcp server

Signed-off-by: Alessandro Siragusa <alessandro.siragusa@gmail.com>
This commit is contained in:
Alessandro Siragusa
2016-05-12 12:15:32 +02:00
parent b0020f2dc4
commit a40308d650
2 changed files with 11 additions and 2 deletions

View File

@@ -286,7 +286,7 @@ func addHostOnlyDHCPServer(ifname string, d dhcpServer, vbox VBoxManager) error
command := "add"
if dhcp, ok := dhcps[name]; ok {
command = "modify"
if (dhcp.IPv4.IP.Equal(d.IPv4.IP)) && (dhcp.IPv4.Mask.String() == d.IPv4.Mask.String()) && (dhcp.LowerIP.Equal(d.LowerIP)) && (dhcp.UpperIP.Equal(d.UpperIP)) && dhcp.Enabled {
if (dhcp.IPv4.IP.Equal(d.IPv4.IP)) && (dhcp.IPv4.Mask.String() == d.IPv4.Mask.String()) && (dhcp.LowerIP.Equal(d.LowerIP)) && (dhcp.UpperIP.Equal(d.UpperIP)) && (dhcp.Enabled == d.Enabled) {
// dhcp is up to date
return nil
}

View File

@@ -29,6 +29,7 @@ const (
defaultHostOnlyNictype = "82540EM"
defaultHostOnlyPromiscMode = "deny"
defaultUIType = "headless"
defaultHostOnlyNoDHCP = false
defaultDiskSize = 20000
defaultDNSProxy = true
defaultDNSResolver = false
@@ -64,6 +65,7 @@ type Driver struct {
HostOnlyNicType string
HostOnlyPromiscMode string
UIType string
HostOnlyNoDHCP bool
NoShare bool
DNSProxy bool
NoVTXCheck bool
@@ -89,6 +91,7 @@ func NewDriver(hostName, storePath string) *Driver {
HostOnlyNicType: defaultHostOnlyNictype,
HostOnlyPromiscMode: defaultHostOnlyPromiscMode,
UIType: defaultUIType,
HostOnlyNoDHCP: defaultHostOnlyNoDHCP,
DNSProxy: defaultDNSProxy,
HostDNSResolver: defaultDNSResolver,
BaseDriver: &drivers.BaseDriver{
@@ -167,6 +170,11 @@ func (d *Driver) GetCreateFlags() []mcnflag.Flag {
Value: defaultUIType,
EnvVar: "VIRTUALBOX_UI_TYPE",
},
mcnflag.BoolFlag{
Name: "virtualbox-hostonly-no-dhcp",
Usage: "Disable the Host Only DHCP Server",
EnvVar: "VIRTUALBOX_HOSTONLY_NO_DHCP",
},
mcnflag.BoolFlag{
Name: "virtualbox-no-share",
Usage: "Disable the mount of your home directory",
@@ -230,6 +238,7 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error {
d.HostOnlyNicType = flags.String("virtualbox-hostonly-nictype")
d.HostOnlyPromiscMode = flags.String("virtualbox-hostonly-nicpromisc")
d.UIType = flags.String("virtualbox-ui-type")
d.HostOnlyNoDHCP = flags.Bool("virtualbox-hostonly-no-dhcp")
d.NoShare = flags.Bool("virtualbox-no-share")
d.DNSProxy = !flags.Bool("virtualbox-no-dns-proxy")
d.NoVTXCheck = flags.Bool("virtualbox-no-vtx-check")
@@ -832,7 +841,7 @@ func (d *Driver) setupHostOnlyNetwork(machineName string) (*hostOnlyNetwork, err
dhcp.IPv4.Mask = network.Mask
dhcp.LowerIP = net.IPv4(nAddr[0], nAddr[1], nAddr[2], byte(100))
dhcp.UpperIP = net.IPv4(nAddr[0], nAddr[1], nAddr[2], byte(254))
dhcp.Enabled = true
dhcp.Enabled = !d.HostOnlyNoDHCP
if err := addHostOnlyDHCPServer(hostOnlyAdapter.Name, dhcp, d.VBoxManager); err != nil {
return nil, err
}