Switch to using machine IP over URL

This commit is contained in:
Jeffrey Morgan 2015-03-05 12:25:57 -05:00
parent ccf8776b43
commit 29bae21e6b
3 changed files with 15 additions and 14 deletions

View File

@ -5,18 +5,16 @@ var dockerode = require('dockerode');
var Docker = {
_host: null,
_client: null,
setup: function(url, name) {
setup: function(ip, name) {
var certDir = path.join(process.env[(process.platform === 'win32') ? 'USERPROFILE' : 'HOME'], '.docker/machine/machines', name);
if (!fs.existsSync(certDir)) {
return;
}
var ip = url.split(':')[1].replace('//', '');
var port = url.split(':')[2];
this._host = ip;
this._client = new dockerode({
protocol: 'https',
host: ip,
port: port,
port: 2376,
ca: fs.readFileSync(path.join(certDir, 'ca.pem')),
cert: fs.readFileSync(path.join(certDir, 'cert.pem')),
key: fs.readFileSync(path.join(certDir, 'key.pem'))

View File

@ -13,6 +13,7 @@ var template = require('./MenuTemplate');
var util = require('./Util');
var Menu = remote.require('menu');
var bugsnag = require('bugsnag-js');
var machine = require('./DockerMachine');
window.addEventListener('resize', function () {
fs.writeFileSync(path.join(util.supportDir(), 'size'), JSON.stringify({
@ -25,7 +26,7 @@ Menu.setApplicationMenu(Menu.buildFromTemplate(template()));
var settingsjson;
try {
settingsjson = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'settings.json'), 'utf8'));
settingsjson = require(path.join(__dirname, '..', 'settings.json'), 'utf8');
} catch (err) {
settingsjson = {};
}
@ -82,8 +83,8 @@ setInterval(function () {
}, 14400000);
router.run(Handler => React.render(<Handler/>, document.body));
SetupStore.setup().then(machine => {
docker.setup(machine.url, machine.name);
SetupStore.setup().then(ip => {
docker.setup(ip, machine.name());
Menu.setApplicationMenu(Menu.buildFromTemplate(template()));
ContainerStore.on(ContainerStore.SERVER_ERROR_EVENT, (err) => {
bugsnag.notify(err);

View File

@ -219,19 +219,21 @@ var SetupStore = assign(Object.create(EventEmitter.prototype), {
}
}
_currentStep = null;
return yield machine.info();
return yield machine.ip();
}),
setup: Promise.coroutine(function * () {
while (true) {
var info = yield this.run();
if (!info.url) {
var ip = yield this.run();
ip = null;
if (!ip || !ip.length) {
metrics.track('Setup Failed', {
step: 'done',
message: 'Machine URL not set'
message: 'Machine IP not set'
});
var virtualboxVersion = virtualBox.installed() ? yield virtualBox.version() : 'Not installed';
bugsnag.notify('SetupError', 'Machine url was not set', {
machine: info,
bugsnag.notify('SetupError', 'Machine ip was not set', {
machine: yield machine.info(),
ip: ip,
step: 'done',
virtualbox: virtualboxVersion
});
@ -239,7 +241,7 @@ var SetupStore = assign(Object.create(EventEmitter.prototype), {
yield this.pause();
} else {
metrics.track('Setup Finished');
return info;
return ip;
}
}
})