Merge pull request #3688 from asiragusa/master

virtualbox: virtualbox-hostonly-no-dhcp flag to avoid creation of the…
This commit is contained in:
Nathan LeClaire
2016-09-07 11:15:14 -07:00
committed by GitHub
3 changed files with 13 additions and 2 deletions

View File

@@ -38,6 +38,7 @@ Options:
- `--virtualbox-hostonly-cidr`: The CIDR of the host only adapter.
- `--virtualbox-hostonly-nictype`: Host Only Network Adapter Type. Possible values are are '82540EM' (Intel PRO/1000), 'Am79C973' (PCnet-FAST III) and 'virtio' Paravirtualized network adapter.
- `--virtualbox-hostonly-nicpromisc`: Host Only Network Adapter Promiscuous Mode. Possible options are deny , allow-vms, allow-all
- `--virtualbox-hostonly-no-dhcp`: Disable the Host Only DHCP Server
- `--virtualbox-no-share`: Disable the mount of your home directory
- `--virtualbox-no-dns-proxy`: Disable proxying all DNS requests to the host (Boolean value, default to false)
- `--virtualbox-no-vtx-check`: Disable checking for the availability of hardware virtualization before the vm is started
@@ -81,6 +82,7 @@ Environment variables and default values:
| `--virtualbox-hostonly-cidr` | `VIRTUALBOX_HOSTONLY_CIDR` | `192.168.99.1/24` |
| `--virtualbox-hostonly-nictype` | `VIRTUALBOX_HOSTONLY_NIC_TYPE` | `82540EM` |
| `--virtualbox-hostonly-nicpromisc` | `VIRTUALBOX_HOSTONLY_NIC_PROMISC` | `deny` |
| `--virtualbox-hostonly-no-dhcp` | `VIRTUALBOX_HOSTONLY_NO_DHCP` | `false` |
| `--virtualbox-no-share` | `VIRTUALBOX_NO_SHARE` | `false` |
| `--virtualbox-no-dns-proxy` | `VIRTUALBOX_NO_DNS_PROXY` | `false` |
| `--virtualbox-no-vtx-check` | `VIRTUALBOX_NO_VTX_CHECK` | `false` |

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
}