Skip to content
This repository was archived by the owner on Feb 27, 2018. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions virtualbox/machine.go
Original file line numberDiff line numberDiff line change
Expand Up@@ -658,7 +658,7 @@ func (m *Machine) Modify() error {
"--cpuhotplug", m.Flag.Get(F_cpuhotplug),
"--pae", m.Flag.Get(F_pae),
"--longmode", m.Flag.Get(F_longmode),
"--synthcpu", m.Flag.Get(F_synthcpu),
//"--synthcpu", m.Flag.Get(F_synthcpu),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove before merging?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, probably a good idea.

"--hpet", m.Flag.Get(F_hpet),
"--hwvirtex", m.Flag.Get(F_hwvirtex),
"--triplefaultreset", m.Flag.Get(F_triplefaultreset),
Expand DownExpand Up@@ -690,13 +690,13 @@ func (m *Machine) Modify() error {

// AddNATPF adds a NAT port forarding rule to the n-th NIC with the given name.
func (m *Machine) AddNATPF(n int, name string, rule driver.PFRule) error {
return vbm("controlvm", m.Name, fmt.Sprintf("natpf%d", n),
return vbm("modifyvm", m.Name, fmt.Sprintf("--natpf%d", n),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems to make sense as this is what docker-machine does, but what's the effect / reason behind changing this?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The reason is that "controlvm" only works if the VM is already running: see https://www.virtualbox.org/manual/ch08.html#vboxmanage-controlvm

The controlvm subcommand allows you to change the state of a virtual machine that is currently running.

Is boot2docker-cli supposed to start the VM before performing this? If so, it doesn't do that on VBox 5.

Or did those commands work on VBox 4 without starting the VM first? I do not know.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm definitely also surprised by this change -- does it not work as-is after removing the --synthcpu flag? I'd prefer to have this PR be as conservative as possible (especially so we can merge a fix before 1.7.1 which is supposed to happen sometime today), and perhaps a new PR to bring us better parity with docker-machine afterwards (but I'd even more prefer that we encourage users to just use docker-machine directly instead).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally, the diff in this PR looks as much like the diff in docker-archive-public/docker.machine#1496 as we can and actually have VBox 5 "work".

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the record, yes, I believed this not to work without this change. That seems consistent with the VirtualBox documentation. After all, this call is being made while the VM is shut down, or is it not?

fmt.Sprintf("%s,%s", name, rule.Format()))
}

// DelNATPF deletes the NAT port forwarding rule with the given name from the n-th NIC.
func (m *Machine) DelNATPF(n int, name string) error {
return vbm("controlvm", m.Name, fmt.Sprintf("natpf%d", n), "delete", name)
return vbm("modifyvm", m.Name, fmt.Sprintf("--natpf%d", n), "delete", name)
}

// SetNIC set the n-th NIC.
Expand Down
6 changes: 6 additions & 0 deletions virtualbox/vbm.go
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,6 +3,7 @@ package virtualbox
import (
"bytes"
"errors"
"fmt"
"io"
"log"
"os"
Expand DownExpand Up@@ -99,6 +100,11 @@ func getHostOnlyNetworkInterface(mc *driver.MachineConfig) (string, error) {

for _, n := range nets {
if dhcp, ok := dhcps[n.NetworkName]; ok {
fmt.Printf("IPv4 / DHCP IP: %s == %s\n", dhcp.IPv4.IP, mc.DHCPIP)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove the print statements before merging?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, the print statements are essential for how I'm working with this:

For some reason, I didn't have any proper host-only networks. (That might be because I upgraded from VBox 4 / 5rc1 on this machine, when host-only networks didn't work yet.)

So what I'm doing is rerunning "boot2docker init" with these print statements, making changes to my host-only networks with the VBox GUI until they exactly match the network that boot2docker-cli expects to find.

I'm not sure what's really supposed to happen here. I guess boot2docker-cli should automatically create the host-only network it needs? Maybe we just need to fix that for VBox 5.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, boot2docker init should set everything up, so if its not working for vbox5, it needs to be fixed too.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's probably a bigger issue to tackle. Maybe even an issue with VirtualBox 5, I don't think the creation of host-only networks works anymore. I just reported the same issue for docker-machine: docker-archive-public/docker.machine#1521

fmt.Printf("IPv4 netmask: %s == %s\n", dhcp.IPv4.Mask, mc.NetMask)
fmt.Printf("DHCP lower bound: %s == %s\n", dhcp.LowerIP, mc.LowerIP)
fmt.Printf("DHCP upper bound: %s == %s\n", dhcp.UpperIP, mc.UpperIP)
fmt.Printf("DHCP enabled: %s == %s\n", dhcp.Enabled, mc.DHCPEnabled)
if dhcp.IPv4.IP.Equal(mc.DHCPIP) &&
dhcp.IPv4.Mask.String() == mc.NetMask.String() &&
dhcp.LowerIP.Equal(mc.LowerIP) &&
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Add VirtualBox 5 support by hheimbuerger · Pull Request #373 · boot2docker/boot2docker-cli · GitHub
Skip to content
This repository was archived by the owner on Feb 27, 2018. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions virtualbox/machine.go
Original file line numberDiff line numberDiff line change
Expand Up@@ -658,7 +658,7 @@ func (m *Machine) Modify() error {
"--cpuhotplug", m.Flag.Get(F_cpuhotplug),
"--pae", m.Flag.Get(F_pae),
"--longmode", m.Flag.Get(F_longmode),
"--synthcpu", m.Flag.Get(F_synthcpu),
//"--synthcpu", m.Flag.Get(F_synthcpu),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove before merging?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, probably a good idea.

"--hpet", m.Flag.Get(F_hpet),
"--hwvirtex", m.Flag.Get(F_hwvirtex),
"--triplefaultreset", m.Flag.Get(F_triplefaultreset),
Expand DownExpand Up@@ -690,13 +690,13 @@ func (m *Machine) Modify() error {

// AddNATPF adds a NAT port forarding rule to the n-th NIC with the given name.
func (m *Machine) AddNATPF(n int, name string, rule driver.PFRule) error {
return vbm("controlvm", m.Name, fmt.Sprintf("natpf%d", n),
return vbm("modifyvm", m.Name, fmt.Sprintf("--natpf%d", n),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems to make sense as this is what docker-machine does, but what's the effect / reason behind changing this?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The reason is that "controlvm" only works if the VM is already running: see https://www.virtualbox.org/manual/ch08.html#vboxmanage-controlvm

The controlvm subcommand allows you to change the state of a virtual machine that is currently running.

Is boot2docker-cli supposed to start the VM before performing this? If so, it doesn't do that on VBox 5.

Or did those commands work on VBox 4 without starting the VM first? I do not know.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm definitely also surprised by this change -- does it not work as-is after removing the --synthcpu flag? I'd prefer to have this PR be as conservative as possible (especially so we can merge a fix before 1.7.1 which is supposed to happen sometime today), and perhaps a new PR to bring us better parity with docker-machine afterwards (but I'd even more prefer that we encourage users to just use docker-machine directly instead).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally, the diff in this PR looks as much like the diff in docker-archive-public/docker.machine#1496 as we can and actually have VBox 5 "work".

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the record, yes, I believed this not to work without this change. That seems consistent with the VirtualBox documentation. After all, this call is being made while the VM is shut down, or is it not?

fmt.Sprintf("%s,%s", name, rule.Format()))
}

// DelNATPF deletes the NAT port forwarding rule with the given name from the n-th NIC.
func (m *Machine) DelNATPF(n int, name string) error {
return vbm("controlvm", m.Name, fmt.Sprintf("natpf%d", n), "delete", name)
return vbm("modifyvm", m.Name, fmt.Sprintf("--natpf%d", n), "delete", name)
}

// SetNIC set the n-th NIC.
Expand Down
6 changes: 6 additions & 0 deletions virtualbox/vbm.go
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,6 +3,7 @@ package virtualbox
import (
"bytes"
"errors"
"fmt"
"io"
"log"
"os"
Expand DownExpand Up@@ -99,6 +100,11 @@ func getHostOnlyNetworkInterface(mc *driver.MachineConfig) (string, error) {

for _, n := range nets {
if dhcp, ok := dhcps[n.NetworkName]; ok {
fmt.Printf("IPv4 / DHCP IP: %s == %s\n", dhcp.IPv4.IP, mc.DHCPIP)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove the print statements before merging?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, the print statements are essential for how I'm working with this:

For some reason, I didn't have any proper host-only networks. (That might be because I upgraded from VBox 4 / 5rc1 on this machine, when host-only networks didn't work yet.)

So what I'm doing is rerunning "boot2docker init" with these print statements, making changes to my host-only networks with the VBox GUI until they exactly match the network that boot2docker-cli expects to find.

I'm not sure what's really supposed to happen here. I guess boot2docker-cli should automatically create the host-only network it needs? Maybe we just need to fix that for VBox 5.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, boot2docker init should set everything up, so if its not working for vbox5, it needs to be fixed too.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's probably a bigger issue to tackle. Maybe even an issue with VirtualBox 5, I don't think the creation of host-only networks works anymore. I just reported the same issue for docker-machine: docker-archive-public/docker.machine#1521

fmt.Printf("IPv4 netmask: %s == %s\n", dhcp.IPv4.Mask, mc.NetMask)
fmt.Printf("DHCP lower bound: %s == %s\n", dhcp.LowerIP, mc.LowerIP)
fmt.Printf("DHCP upper bound: %s == %s\n", dhcp.UpperIP, mc.UpperIP)
fmt.Printf("DHCP enabled: %s == %s\n", dhcp.Enabled, mc.DHCPEnabled)
if dhcp.IPv4.IP.Equal(mc.DHCPIP) &&
dhcp.IPv4.Mask.String() == mc.NetMask.String() &&
dhcp.LowerIP.Equal(mc.LowerIP) &&
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Add VirtualBox 5 support by hheimbuerger · Pull Request #373 · boot2docker/boot2docker-cli · GitHub
Skip to content
This repository was archived by the owner on Feb 27, 2018. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions virtualbox/machine.go
Original file line numberDiff line numberDiff line change
Expand Up@@ -658,7 +658,7 @@ func (m *Machine) Modify() error {
"--cpuhotplug", m.Flag.Get(F_cpuhotplug),
"--pae", m.Flag.Get(F_pae),
"--longmode", m.Flag.Get(F_longmode),
"--synthcpu", m.Flag.Get(F_synthcpu),
//"--synthcpu", m.Flag.Get(F_synthcpu),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove before merging?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, probably a good idea.

"--hpet", m.Flag.Get(F_hpet),
"--hwvirtex", m.Flag.Get(F_hwvirtex),
"--triplefaultreset", m.Flag.Get(F_triplefaultreset),
Expand DownExpand Up@@ -690,13 +690,13 @@ func (m *Machine) Modify() error {

// AddNATPF adds a NAT port forarding rule to the n-th NIC with the given name.
func (m *Machine) AddNATPF(n int, name string, rule driver.PFRule) error {
return vbm("controlvm", m.Name, fmt.Sprintf("natpf%d", n),
return vbm("modifyvm", m.Name, fmt.Sprintf("--natpf%d", n),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems to make sense as this is what docker-machine does, but what's the effect / reason behind changing this?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The reason is that "controlvm" only works if the VM is already running: see https://www.virtualbox.org/manual/ch08.html#vboxmanage-controlvm

The controlvm subcommand allows you to change the state of a virtual machine that is currently running.

Is boot2docker-cli supposed to start the VM before performing this? If so, it doesn't do that on VBox 5.

Or did those commands work on VBox 4 without starting the VM first? I do not know.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm definitely also surprised by this change -- does it not work as-is after removing the --synthcpu flag? I'd prefer to have this PR be as conservative as possible (especially so we can merge a fix before 1.7.1 which is supposed to happen sometime today), and perhaps a new PR to bring us better parity with docker-machine afterwards (but I'd even more prefer that we encourage users to just use docker-machine directly instead).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally, the diff in this PR looks as much like the diff in docker-archive-public/docker.machine#1496 as we can and actually have VBox 5 "work".

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the record, yes, I believed this not to work without this change. That seems consistent with the VirtualBox documentation. After all, this call is being made while the VM is shut down, or is it not?

fmt.Sprintf("%s,%s", name, rule.Format()))
}

// DelNATPF deletes the NAT port forwarding rule with the given name from the n-th NIC.
func (m *Machine) DelNATPF(n int, name string) error {
return vbm("controlvm", m.Name, fmt.Sprintf("natpf%d", n), "delete", name)
return vbm("modifyvm", m.Name, fmt.Sprintf("--natpf%d", n), "delete", name)
}

// SetNIC set the n-th NIC.
Expand Down
6 changes: 6 additions & 0 deletions virtualbox/vbm.go
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,6 +3,7 @@ package virtualbox
import (
"bytes"
"errors"
"fmt"
"io"
"log"
"os"
Expand DownExpand Up@@ -99,6 +100,11 @@ func getHostOnlyNetworkInterface(mc *driver.MachineConfig) (string, error) {

for _, n := range nets {
if dhcp, ok := dhcps[n.NetworkName]; ok {
fmt.Printf("IPv4 / DHCP IP: %s == %s\n", dhcp.IPv4.IP, mc.DHCPIP)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove the print statements before merging?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, the print statements are essential for how I'm working with this:

For some reason, I didn't have any proper host-only networks. (That might be because I upgraded from VBox 4 / 5rc1 on this machine, when host-only networks didn't work yet.)

So what I'm doing is rerunning "boot2docker init" with these print statements, making changes to my host-only networks with the VBox GUI until they exactly match the network that boot2docker-cli expects to find.

I'm not sure what's really supposed to happen here. I guess boot2docker-cli should automatically create the host-only network it needs? Maybe we just need to fix that for VBox 5.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, boot2docker init should set everything up, so if its not working for vbox5, it needs to be fixed too.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's probably a bigger issue to tackle. Maybe even an issue with VirtualBox 5, I don't think the creation of host-only networks works anymore. I just reported the same issue for docker-machine: docker-archive-public/docker.machine#1521

fmt.Printf("IPv4 netmask: %s == %s\n", dhcp.IPv4.Mask, mc.NetMask)
fmt.Printf("DHCP lower bound: %s == %s\n", dhcp.LowerIP, mc.LowerIP)
fmt.Printf("DHCP upper bound: %s == %s\n", dhcp.UpperIP, mc.UpperIP)
fmt.Printf("DHCP enabled: %s == %s\n", dhcp.Enabled, mc.DHCPEnabled)
if dhcp.IPv4.IP.Equal(mc.DHCPIP) &&
dhcp.IPv4.Mask.String() == mc.NetMask.String() &&
dhcp.LowerIP.Equal(mc.LowerIP) &&
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Add VirtualBox 5 support by hheimbuerger · Pull Request #373 · boot2docker/boot2docker-cli · GitHub
Skip to content
This repository was archived by the owner on Feb 27, 2018. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions virtualbox/machine.go
Original file line numberDiff line numberDiff line change
Expand Up@@ -658,7 +658,7 @@ func (m *Machine) Modify() error {
"--cpuhotplug", m.Flag.Get(F_cpuhotplug),
"--pae", m.Flag.Get(F_pae),
"--longmode", m.Flag.Get(F_longmode),
"--synthcpu", m.Flag.Get(F_synthcpu),
//"--synthcpu", m.Flag.Get(F_synthcpu),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove before merging?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, probably a good idea.

"--hpet", m.Flag.Get(F_hpet),
"--hwvirtex", m.Flag.Get(F_hwvirtex),
"--triplefaultreset", m.Flag.Get(F_triplefaultreset),
Expand DownExpand Up@@ -690,13 +690,13 @@ func (m *Machine) Modify() error {

// AddNATPF adds a NAT port forarding rule to the n-th NIC with the given name.
func (m *Machine) AddNATPF(n int, name string, rule driver.PFRule) error {
return vbm("controlvm", m.Name, fmt.Sprintf("natpf%d", n),
return vbm("modifyvm", m.Name, fmt.Sprintf("--natpf%d", n),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems to make sense as this is what docker-machine does, but what's the effect / reason behind changing this?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The reason is that "controlvm" only works if the VM is already running: see https://www.virtualbox.org/manual/ch08.html#vboxmanage-controlvm

The controlvm subcommand allows you to change the state of a virtual machine that is currently running.

Is boot2docker-cli supposed to start the VM before performing this? If so, it doesn't do that on VBox 5.

Or did those commands work on VBox 4 without starting the VM first? I do not know.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm definitely also surprised by this change -- does it not work as-is after removing the --synthcpu flag? I'd prefer to have this PR be as conservative as possible (especially so we can merge a fix before 1.7.1 which is supposed to happen sometime today), and perhaps a new PR to bring us better parity with docker-machine afterwards (but I'd even more prefer that we encourage users to just use docker-machine directly instead).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally, the diff in this PR looks as much like the diff in docker-archive-public/docker.machine#1496 as we can and actually have VBox 5 "work".

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the record, yes, I believed this not to work without this change. That seems consistent with the VirtualBox documentation. After all, this call is being made while the VM is shut down, or is it not?

fmt.Sprintf("%s,%s", name, rule.Format()))
}

// DelNATPF deletes the NAT port forwarding rule with the given name from the n-th NIC.
func (m *Machine) DelNATPF(n int, name string) error {
return vbm("controlvm", m.Name, fmt.Sprintf("natpf%d", n), "delete", name)
return vbm("modifyvm", m.Name, fmt.Sprintf("--natpf%d", n), "delete", name)
}

// SetNIC set the n-th NIC.
Expand Down
6 changes: 6 additions & 0 deletions virtualbox/vbm.go
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,6 +3,7 @@ package virtualbox
import (
"bytes"
"errors"
"fmt"
"io"
"log"
"os"
Expand DownExpand Up@@ -99,6 +100,11 @@ func getHostOnlyNetworkInterface(mc *driver.MachineConfig) (string, error) {

for _, n := range nets {
if dhcp, ok := dhcps[n.NetworkName]; ok {
fmt.Printf("IPv4 / DHCP IP: %s == %s\n", dhcp.IPv4.IP, mc.DHCPIP)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove the print statements before merging?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, the print statements are essential for how I'm working with this:

For some reason, I didn't have any proper host-only networks. (That might be because I upgraded from VBox 4 / 5rc1 on this machine, when host-only networks didn't work yet.)

So what I'm doing is rerunning "boot2docker init" with these print statements, making changes to my host-only networks with the VBox GUI until they exactly match the network that boot2docker-cli expects to find.

I'm not sure what's really supposed to happen here. I guess boot2docker-cli should automatically create the host-only network it needs? Maybe we just need to fix that for VBox 5.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, boot2docker init should set everything up, so if its not working for vbox5, it needs to be fixed too.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's probably a bigger issue to tackle. Maybe even an issue with VirtualBox 5, I don't think the creation of host-only networks works anymore. I just reported the same issue for docker-machine: docker-archive-public/docker.machine#1521

fmt.Printf("IPv4 netmask: %s == %s\n", dhcp.IPv4.Mask, mc.NetMask)
fmt.Printf("DHCP lower bound: %s == %s\n", dhcp.LowerIP, mc.LowerIP)
fmt.Printf("DHCP upper bound: %s == %s\n", dhcp.UpperIP, mc.UpperIP)
fmt.Printf("DHCP enabled: %s == %s\n", dhcp.Enabled, mc.DHCPEnabled)
if dhcp.IPv4.IP.Equal(mc.DHCPIP) &&
dhcp.IPv4.Mask.String() == mc.NetMask.String() &&
dhcp.LowerIP.Equal(mc.LowerIP) &&
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Add VirtualBox 5 support by hheimbuerger · Pull Request #373 · boot2docker/boot2docker-cli · GitHub
Skip to content
This repository was archived by the owner on Feb 27, 2018. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions virtualbox/machine.go
Original file line numberDiff line numberDiff line change
Expand Up@@ -658,7 +658,7 @@ func (m *Machine) Modify() error {
"--cpuhotplug", m.Flag.Get(F_cpuhotplug),
"--pae", m.Flag.Get(F_pae),
"--longmode", m.Flag.Get(F_longmode),
"--synthcpu", m.Flag.Get(F_synthcpu),
//"--synthcpu", m.Flag.Get(F_synthcpu),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove before merging?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, probably a good idea.

"--hpet", m.Flag.Get(F_hpet),
"--hwvirtex", m.Flag.Get(F_hwvirtex),
"--triplefaultreset", m.Flag.Get(F_triplefaultreset),
Expand DownExpand Up@@ -690,13 +690,13 @@ func (m *Machine) Modify() error {

// AddNATPF adds a NAT port forarding rule to the n-th NIC with the given name.
func (m *Machine) AddNATPF(n int, name string, rule driver.PFRule) error {
return vbm("controlvm", m.Name, fmt.Sprintf("natpf%d", n),
return vbm("modifyvm", m.Name, fmt.Sprintf("--natpf%d", n),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems to make sense as this is what docker-machine does, but what's the effect / reason behind changing this?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The reason is that "controlvm" only works if the VM is already running: see https://www.virtualbox.org/manual/ch08.html#vboxmanage-controlvm

The controlvm subcommand allows you to change the state of a virtual machine that is currently running.

Is boot2docker-cli supposed to start the VM before performing this? If so, it doesn't do that on VBox 5.

Or did those commands work on VBox 4 without starting the VM first? I do not know.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm definitely also surprised by this change -- does it not work as-is after removing the --synthcpu flag? I'd prefer to have this PR be as conservative as possible (especially so we can merge a fix before 1.7.1 which is supposed to happen sometime today), and perhaps a new PR to bring us better parity with docker-machine afterwards (but I'd even more prefer that we encourage users to just use docker-machine directly instead).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally, the diff in this PR looks as much like the diff in docker-archive-public/docker.machine#1496 as we can and actually have VBox 5 "work".

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the record, yes, I believed this not to work without this change. That seems consistent with the VirtualBox documentation. After all, this call is being made while the VM is shut down, or is it not?

fmt.Sprintf("%s,%s", name, rule.Format()))
}

// DelNATPF deletes the NAT port forwarding rule with the given name from the n-th NIC.
func (m *Machine) DelNATPF(n int, name string) error {
return vbm("controlvm", m.Name, fmt.Sprintf("natpf%d", n), "delete", name)
return vbm("modifyvm", m.Name, fmt.Sprintf("--natpf%d", n), "delete", name)
}

// SetNIC set the n-th NIC.
Expand Down
6 changes: 6 additions & 0 deletions virtualbox/vbm.go
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,6 +3,7 @@ package virtualbox
import (
"bytes"
"errors"
"fmt"
"io"
"log"
"os"
Expand DownExpand Up@@ -99,6 +100,11 @@ func getHostOnlyNetworkInterface(mc *driver.MachineConfig) (string, error) {

for _, n := range nets {
if dhcp, ok := dhcps[n.NetworkName]; ok {
fmt.Printf("IPv4 / DHCP IP: %s == %s\n", dhcp.IPv4.IP, mc.DHCPIP)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove the print statements before merging?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, the print statements are essential for how I'm working with this:

For some reason, I didn't have any proper host-only networks. (That might be because I upgraded from VBox 4 / 5rc1 on this machine, when host-only networks didn't work yet.)

So what I'm doing is rerunning "boot2docker init" with these print statements, making changes to my host-only networks with the VBox GUI until they exactly match the network that boot2docker-cli expects to find.

I'm not sure what's really supposed to happen here. I guess boot2docker-cli should automatically create the host-only network it needs? Maybe we just need to fix that for VBox 5.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, boot2docker init should set everything up, so if its not working for vbox5, it needs to be fixed too.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's probably a bigger issue to tackle. Maybe even an issue with VirtualBox 5, I don't think the creation of host-only networks works anymore. I just reported the same issue for docker-machine: docker-archive-public/docker.machine#1521

fmt.Printf("IPv4 netmask: %s == %s\n", dhcp.IPv4.Mask, mc.NetMask)
fmt.Printf("DHCP lower bound: %s == %s\n", dhcp.LowerIP, mc.LowerIP)
fmt.Printf("DHCP upper bound: %s == %s\n", dhcp.UpperIP, mc.UpperIP)
fmt.Printf("DHCP enabled: %s == %s\n", dhcp.Enabled, mc.DHCPEnabled)
if dhcp.IPv4.IP.Equal(mc.DHCPIP) &&
dhcp.IPv4.Mask.String() == mc.NetMask.String() &&
dhcp.LowerIP.Equal(mc.LowerIP) &&
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Add VirtualBox 5 support by hheimbuerger · Pull Request #373 · boot2docker/boot2docker-cli · GitHub
Skip to content
This repository was archived by the owner on Feb 27, 2018. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions virtualbox/machine.go
Original file line numberDiff line numberDiff line change
Expand Up@@ -658,7 +658,7 @@ func (m *Machine) Modify() error {
"--cpuhotplug", m.Flag.Get(F_cpuhotplug),
"--pae", m.Flag.Get(F_pae),
"--longmode", m.Flag.Get(F_longmode),
"--synthcpu", m.Flag.Get(F_synthcpu),
//"--synthcpu", m.Flag.Get(F_synthcpu),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove before merging?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, probably a good idea.

"--hpet", m.Flag.Get(F_hpet),
"--hwvirtex", m.Flag.Get(F_hwvirtex),
"--triplefaultreset", m.Flag.Get(F_triplefaultreset),
Expand DownExpand Up@@ -690,13 +690,13 @@ func (m *Machine) Modify() error {

// AddNATPF adds a NAT port forarding rule to the n-th NIC with the given name.
func (m *Machine) AddNATPF(n int, name string, rule driver.PFRule) error {
return vbm("controlvm", m.Name, fmt.Sprintf("natpf%d", n),
return vbm("modifyvm", m.Name, fmt.Sprintf("--natpf%d", n),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems to make sense as this is what docker-machine does, but what's the effect / reason behind changing this?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The reason is that "controlvm" only works if the VM is already running: see https://www.virtualbox.org/manual/ch08.html#vboxmanage-controlvm

The controlvm subcommand allows you to change the state of a virtual machine that is currently running.

Is boot2docker-cli supposed to start the VM before performing this? If so, it doesn't do that on VBox 5.

Or did those commands work on VBox 4 without starting the VM first? I do not know.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm definitely also surprised by this change -- does it not work as-is after removing the --synthcpu flag? I'd prefer to have this PR be as conservative as possible (especially so we can merge a fix before 1.7.1 which is supposed to happen sometime today), and perhaps a new PR to bring us better parity with docker-machine afterwards (but I'd even more prefer that we encourage users to just use docker-machine directly instead).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally, the diff in this PR looks as much like the diff in docker-archive-public/docker.machine#1496 as we can and actually have VBox 5 "work".

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the record, yes, I believed this not to work without this change. That seems consistent with the VirtualBox documentation. After all, this call is being made while the VM is shut down, or is it not?

fmt.Sprintf("%s,%s", name, rule.Format()))
}

// DelNATPF deletes the NAT port forwarding rule with the given name from the n-th NIC.
func (m *Machine) DelNATPF(n int, name string) error {
return vbm("controlvm", m.Name, fmt.Sprintf("natpf%d", n), "delete", name)
return vbm("modifyvm", m.Name, fmt.Sprintf("--natpf%d", n), "delete", name)
}

// SetNIC set the n-th NIC.
Expand Down
6 changes: 6 additions & 0 deletions virtualbox/vbm.go
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,6 +3,7 @@ package virtualbox
import (
"bytes"
"errors"
"fmt"
"io"
"log"
"os"
Expand DownExpand Up@@ -99,6 +100,11 @@ func getHostOnlyNetworkInterface(mc *driver.MachineConfig) (string, error) {

for _, n := range nets {
if dhcp, ok := dhcps[n.NetworkName]; ok {
fmt.Printf("IPv4 / DHCP IP: %s == %s\n", dhcp.IPv4.IP, mc.DHCPIP)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove the print statements before merging?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, the print statements are essential for how I'm working with this:

For some reason, I didn't have any proper host-only networks. (That might be because I upgraded from VBox 4 / 5rc1 on this machine, when host-only networks didn't work yet.)

So what I'm doing is rerunning "boot2docker init" with these print statements, making changes to my host-only networks with the VBox GUI until they exactly match the network that boot2docker-cli expects to find.

I'm not sure what's really supposed to happen here. I guess boot2docker-cli should automatically create the host-only network it needs? Maybe we just need to fix that for VBox 5.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, boot2docker init should set everything up, so if its not working for vbox5, it needs to be fixed too.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's probably a bigger issue to tackle. Maybe even an issue with VirtualBox 5, I don't think the creation of host-only networks works anymore. I just reported the same issue for docker-machine: docker-archive-public/docker.machine#1521

fmt.Printf("IPv4 netmask: %s == %s\n", dhcp.IPv4.Mask, mc.NetMask)
fmt.Printf("DHCP lower bound: %s == %s\n", dhcp.LowerIP, mc.LowerIP)
fmt.Printf("DHCP upper bound: %s == %s\n", dhcp.UpperIP, mc.UpperIP)
fmt.Printf("DHCP enabled: %s == %s\n", dhcp.Enabled, mc.DHCPEnabled)
if dhcp.IPv4.IP.Equal(mc.DHCPIP) &&
dhcp.IPv4.Mask.String() == mc.NetMask.String() &&
dhcp.LowerIP.Equal(mc.LowerIP) &&
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Add VirtualBox 5 support by hheimbuerger · Pull Request #373 · boot2docker/boot2docker-cli · GitHub
Skip to content
This repository was archived by the owner on Feb 27, 2018. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions virtualbox/machine.go
Original file line numberDiff line numberDiff line change
Expand Up@@ -658,7 +658,7 @@ func (m *Machine) Modify() error {
"--cpuhotplug", m.Flag.Get(F_cpuhotplug),
"--pae", m.Flag.Get(F_pae),
"--longmode", m.Flag.Get(F_longmode),
"--synthcpu", m.Flag.Get(F_synthcpu),
//"--synthcpu", m.Flag.Get(F_synthcpu),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove before merging?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, probably a good idea.

"--hpet", m.Flag.Get(F_hpet),
"--hwvirtex", m.Flag.Get(F_hwvirtex),
"--triplefaultreset", m.Flag.Get(F_triplefaultreset),
Expand DownExpand Up@@ -690,13 +690,13 @@ func (m *Machine) Modify() error {

// AddNATPF adds a NAT port forarding rule to the n-th NIC with the given name.
func (m *Machine) AddNATPF(n int, name string, rule driver.PFRule) error {
return vbm("controlvm", m.Name, fmt.Sprintf("natpf%d", n),
return vbm("modifyvm", m.Name, fmt.Sprintf("--natpf%d", n),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems to make sense as this is what docker-machine does, but what's the effect / reason behind changing this?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The reason is that "controlvm" only works if the VM is already running: see https://www.virtualbox.org/manual/ch08.html#vboxmanage-controlvm

The controlvm subcommand allows you to change the state of a virtual machine that is currently running.

Is boot2docker-cli supposed to start the VM before performing this? If so, it doesn't do that on VBox 5.

Or did those commands work on VBox 4 without starting the VM first? I do not know.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm definitely also surprised by this change -- does it not work as-is after removing the --synthcpu flag? I'd prefer to have this PR be as conservative as possible (especially so we can merge a fix before 1.7.1 which is supposed to happen sometime today), and perhaps a new PR to bring us better parity with docker-machine afterwards (but I'd even more prefer that we encourage users to just use docker-machine directly instead).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally, the diff in this PR looks as much like the diff in docker-archive-public/docker.machine#1496 as we can and actually have VBox 5 "work".

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the record, yes, I believed this not to work without this change. That seems consistent with the VirtualBox documentation. After all, this call is being made while the VM is shut down, or is it not?

fmt.Sprintf("%s,%s", name, rule.Format()))
}

// DelNATPF deletes the NAT port forwarding rule with the given name from the n-th NIC.
func (m *Machine) DelNATPF(n int, name string) error {
return vbm("controlvm", m.Name, fmt.Sprintf("natpf%d", n), "delete", name)
return vbm("modifyvm", m.Name, fmt.Sprintf("--natpf%d", n), "delete", name)
}

// SetNIC set the n-th NIC.
Expand Down
6 changes: 6 additions & 0 deletions virtualbox/vbm.go
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,6 +3,7 @@ package virtualbox
import (
"bytes"
"errors"
"fmt"
"io"
"log"
"os"
Expand DownExpand Up@@ -99,6 +100,11 @@ func getHostOnlyNetworkInterface(mc *driver.MachineConfig) (string, error) {

for _, n := range nets {
if dhcp, ok := dhcps[n.NetworkName]; ok {
fmt.Printf("IPv4 / DHCP IP: %s == %s\n", dhcp.IPv4.IP, mc.DHCPIP)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove the print statements before merging?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, the print statements are essential for how I'm working with this:

For some reason, I didn't have any proper host-only networks. (That might be because I upgraded from VBox 4 / 5rc1 on this machine, when host-only networks didn't work yet.)

So what I'm doing is rerunning "boot2docker init" with these print statements, making changes to my host-only networks with the VBox GUI until they exactly match the network that boot2docker-cli expects to find.

I'm not sure what's really supposed to happen here. I guess boot2docker-cli should automatically create the host-only network it needs? Maybe we just need to fix that for VBox 5.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, boot2docker init should set everything up, so if its not working for vbox5, it needs to be fixed too.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's probably a bigger issue to tackle. Maybe even an issue with VirtualBox 5, I don't think the creation of host-only networks works anymore. I just reported the same issue for docker-machine: docker-archive-public/docker.machine#1521

fmt.Printf("IPv4 netmask: %s == %s\n", dhcp.IPv4.Mask, mc.NetMask)
fmt.Printf("DHCP lower bound: %s == %s\n", dhcp.LowerIP, mc.LowerIP)
fmt.Printf("DHCP upper bound: %s == %s\n", dhcp.UpperIP, mc.UpperIP)
fmt.Printf("DHCP enabled: %s == %s\n", dhcp.Enabled, mc.DHCPEnabled)
if dhcp.IPv4.IP.Equal(mc.DHCPIP) &&
dhcp.IPv4.Mask.String() == mc.NetMask.String() &&
dhcp.LowerIP.Equal(mc.LowerIP) &&
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Add VirtualBox 5 support by hheimbuerger · Pull Request #373 · boot2docker/boot2docker-cli · GitHub
Skip to content
This repository was archived by the owner on Feb 27, 2018. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions virtualbox/machine.go
Original file line numberDiff line numberDiff line change
Expand Up@@ -658,7 +658,7 @@ func (m *Machine) Modify() error {
"--cpuhotplug", m.Flag.Get(F_cpuhotplug),
"--pae", m.Flag.Get(F_pae),
"--longmode", m.Flag.Get(F_longmode),
"--synthcpu", m.Flag.Get(F_synthcpu),
//"--synthcpu", m.Flag.Get(F_synthcpu),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove before merging?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, probably a good idea.

"--hpet", m.Flag.Get(F_hpet),
"--hwvirtex", m.Flag.Get(F_hwvirtex),
"--triplefaultreset", m.Flag.Get(F_triplefaultreset),
Expand DownExpand Up@@ -690,13 +690,13 @@ func (m *Machine) Modify() error {

// AddNATPF adds a NAT port forarding rule to the n-th NIC with the given name.
func (m *Machine) AddNATPF(n int, name string, rule driver.PFRule) error {
return vbm("controlvm", m.Name, fmt.Sprintf("natpf%d", n),
return vbm("modifyvm", m.Name, fmt.Sprintf("--natpf%d", n),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems to make sense as this is what docker-machine does, but what's the effect / reason behind changing this?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The reason is that "controlvm" only works if the VM is already running: see https://www.virtualbox.org/manual/ch08.html#vboxmanage-controlvm

The controlvm subcommand allows you to change the state of a virtual machine that is currently running.

Is boot2docker-cli supposed to start the VM before performing this? If so, it doesn't do that on VBox 5.

Or did those commands work on VBox 4 without starting the VM first? I do not know.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm definitely also surprised by this change -- does it not work as-is after removing the --synthcpu flag? I'd prefer to have this PR be as conservative as possible (especially so we can merge a fix before 1.7.1 which is supposed to happen sometime today), and perhaps a new PR to bring us better parity with docker-machine afterwards (but I'd even more prefer that we encourage users to just use docker-machine directly instead).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally, the diff in this PR looks as much like the diff in docker-archive-public/docker.machine#1496 as we can and actually have VBox 5 "work".

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the record, yes, I believed this not to work without this change. That seems consistent with the VirtualBox documentation. After all, this call is being made while the VM is shut down, or is it not?

fmt.Sprintf("%s,%s", name, rule.Format()))
}

// DelNATPF deletes the NAT port forwarding rule with the given name from the n-th NIC.
func (m *Machine) DelNATPF(n int, name string) error {
return vbm("controlvm", m.Name, fmt.Sprintf("natpf%d", n), "delete", name)
return vbm("modifyvm", m.Name, fmt.Sprintf("--natpf%d", n), "delete", name)
}

// SetNIC set the n-th NIC.
Expand Down
6 changes: 6 additions & 0 deletions virtualbox/vbm.go
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,6 +3,7 @@ package virtualbox
import (
"bytes"
"errors"
"fmt"
"io"
"log"
"os"
Expand DownExpand Up@@ -99,6 +100,11 @@ func getHostOnlyNetworkInterface(mc *driver.MachineConfig) (string, error) {

for _, n := range nets {
if dhcp, ok := dhcps[n.NetworkName]; ok {
fmt.Printf("IPv4 / DHCP IP: %s == %s\n", dhcp.IPv4.IP, mc.DHCPIP)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove the print statements before merging?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, the print statements are essential for how I'm working with this:

For some reason, I didn't have any proper host-only networks. (That might be because I upgraded from VBox 4 / 5rc1 on this machine, when host-only networks didn't work yet.)

So what I'm doing is rerunning "boot2docker init" with these print statements, making changes to my host-only networks with the VBox GUI until they exactly match the network that boot2docker-cli expects to find.

I'm not sure what's really supposed to happen here. I guess boot2docker-cli should automatically create the host-only network it needs? Maybe we just need to fix that for VBox 5.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, boot2docker init should set everything up, so if its not working for vbox5, it needs to be fixed too.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's probably a bigger issue to tackle. Maybe even an issue with VirtualBox 5, I don't think the creation of host-only networks works anymore. I just reported the same issue for docker-machine: docker-archive-public/docker.machine#1521

fmt.Printf("IPv4 netmask: %s == %s\n", dhcp.IPv4.Mask, mc.NetMask)
fmt.Printf("DHCP lower bound: %s == %s\n", dhcp.LowerIP, mc.LowerIP)
fmt.Printf("DHCP upper bound: %s == %s\n", dhcp.UpperIP, mc.UpperIP)
fmt.Printf("DHCP enabled: %s == %s\n", dhcp.Enabled, mc.DHCPEnabled)
if dhcp.IPv4.IP.Equal(mc.DHCPIP) &&
dhcp.IPv4.Mask.String() == mc.NetMask.String() &&
dhcp.LowerIP.Equal(mc.LowerIP) &&
Expand Down