If vbox net service is down then ask users in setup to restart it

This commit is contained in:
Jeffrey Morgan 2015-06-11 15:08:43 -07:00
parent a12a90b765
commit 0ca35b5db1
3 changed files with 8 additions and 3 deletions

View File

@ -49,6 +49,8 @@ var _steps = [{
} catch (err) {
throw null;
}
} else if (!virtualBox.active()) {
yield util.exec(setupUtil.macSudoCmd(util.escapePath('/Library/Application Support/VirtualBox/LaunchDaemons/VirtualBoxStartup.sh') + ' restart'));
}
})
}, {
@ -157,7 +159,7 @@ var SetupStore = assign(Object.create(EventEmitter.prototype), {
var vboxNeedsInstall = !virtualBox.installed();
required.download = vboxNeedsInstall && (!fs.existsSync(vboxfile) || setupUtil.checksum(vboxfile) !== virtualBox.checksum());
required.install = vboxNeedsInstall;
required.install = vboxNeedsInstall || !virtualBox.active();
required.init = required.install || !(yield machine.exists()) || (yield machine.state()) !== 'Running' || !isoversion || util.compareVersions(isoversion, packagejson['docker-version']) < 0;
var exists = yield machine.exists();

View File

@ -59,7 +59,7 @@ var SetupUtil = {
}
},
macSudoCmd: function (cmd) {
return `${util.escapePath(resources.macsudo())} -p "Kitematic requires administrative privileges to install." sh -c \"${cmd}\"`;
return `${util.escapePath(resources.macsudo())} -p "Kitematic requires administrative privileges to install and/or start VirtualBox." sh -c \"${cmd}\"`;
},
simulateProgress(estimateSeconds, progress) {
var times = _.range(0, estimateSeconds * 1000, 200);

View File

@ -23,9 +23,12 @@ var VirtualBox = {
if(util.isWindows()) {
return fs.existsSync('C:\\Program Files\\Oracle\\VirtualBox\\VBoxManage.exe') && fs.existsSync('C:\\Program Files\\Oracle\\VirtualBox\\VirtualBox.exe');
} else {
return fs.existsSync('/usr/bin/VBoxManage') && fs.existsSync('/Applications/VirtualBox.app');
return fs.existsSync('/usr/bin/VBoxManage') && fs.existsSync('/Applications/VirtualBox.app') && fs.existsSync('/Applications/VirtualBox.app/Contents/MacOS/VBoxManage');
}
},
active: function () {
return fs.existsSync('/dev/vboxnetctl');
},
version: function () {
return new Promise((resolve, reject) => {
util.exec([this.command(), '-v']).then(stdout => {