Merge pull request #224 from kitematic/regen-certs

Regenerate certificates on startup, fix permissions bug
This commit is contained in:
Jeffrey Morgan 2015-03-05 21:29:58 -05:00
commit 615206af1a
6 changed files with 22 additions and 11 deletions

View File

@ -77,15 +77,18 @@ describe('SetupStore', function () {
machine.isoversion.mockReturnValue('1.0'); machine.isoversion.mockReturnValue('1.0');
machine.stop.mockReturnValue(Promise.resolve()); machine.stop.mockReturnValue(Promise.resolve());
machine.start.mockReturnValue(Promise.resolve()); machine.start.mockReturnValue(Promise.resolve());
machine.regenerateCerts.mockReturnValue(Promise.resolve());
machine.upgrade.mockReturnValue(Promise.resolve()); machine.upgrade.mockReturnValue(Promise.resolve());
setupUtil.compareVersions.mockReturnValue(-1); setupUtil.compareVersions.mockReturnValue(-1);
machine.create.mockClear(); machine.create.mockClear();
machine.upgrade.mockClear(); machine.upgrade.mockClear();
machine.stop.mockClear(); machine.stop.mockClear();
machine.start.mockClear(); machine.start.mockClear();
machine.regenerateCerts.mockClear();
return setupStore.steps().init.run(() => {}).then(() => { return setupStore.steps().init.run(() => {}).then(() => {
expect(machine.create).not.toBeCalled(); expect(machine.create).not.toBeCalled();
expect(machine.stop).toBeCalled(); expect(machine.stop).toBeCalled();
expect(machine.regenerateCerts).toBeCalled();
expect(machine.start).toBeCalled(); expect(machine.start).toBeCalled();
expect(machine.upgrade).toBeCalled(); expect(machine.upgrade).toBeCalled();
}); });

View File

@ -40,7 +40,7 @@
] ]
}, },
"docker-version": "1.5.0", "docker-version": "1.5.0",
"docker-machine-version": "0.1.0", "docker-machine-version": "0.1.0-kitematic-0.5.8",
"atom-shell-version": "0.21.2", "atom-shell-version": "0.21.2",
"virtualbox-version": "4.3.24", "virtualbox-version": "4.3.24",
"virtualbox-filename": "VirtualBox-4.3.24.pkg", "virtualbox-filename": "VirtualBox-4.3.24.pkg",

View File

@ -83,6 +83,9 @@ var DockerMachine = {
return Promise.resolve(stdout.trim().replace('\n', '')); return Promise.resolve(stdout.trim().replace('\n', ''));
}); });
}, },
regenerateCerts: function () {
return util.exec([DockerMachine.command(), 'tls-regenerate-certs', '-f', NAME]);
},
state: function () { state: function () {
return DockerMachine.info().then(info => { return DockerMachine.info().then(info => {
return info ? info.state : null; return info ? info.state : null;

View File

@ -61,7 +61,7 @@ var _steps = [{
message: 'To run Docker containers on your computer, Kitematic is starting a Linux virtual machine. This may take a minute...', message: 'To run Docker containers on your computer, Kitematic is starting a Linux virtual machine. This may take a minute...',
totalPercent: 60, totalPercent: 60,
percent: 0, percent: 0,
seconds: 53, seconds: 58,
run: Promise.coroutine(function* (progressCallback) { run: Promise.coroutine(function* (progressCallback) {
setupUtil.simulateProgress(this.seconds, progressCallback); setupUtil.simulateProgress(this.seconds, progressCallback);
yield virtualBox.vmdestroy('kitematic-vm'); yield virtualBox.vmdestroy('kitematic-vm');
@ -86,6 +86,7 @@ var _steps = [{
yield machine.upgrade(); yield machine.upgrade();
} }
yield machine.start(); yield machine.start();
yield machine.regenerateCerts();
}) })
}]; }];

View File

@ -13,15 +13,15 @@ var SetupUtil = {
return true; return true;
} }
if (!fs.existsSync('/usr/local/bin/docker') || !fs.existsSync('/usr/local/bin/docker-machine')) { if (fs.statSync('/usr/local/bin').gid !== 80 || fs.statSync('/usr/local/bin').uid !== process.getuid()) {
return fs.statSync('/usr/local/bin').gid !== 80 || fs.statSync('/usr/local/bin').uid !== process.getuid();
}
if (fs.statSync('/usr/local/bin/docker').gid !== 80 || fs.statSync('/usr/local/bin/docker').uid !== process.getuid()) {
return true; return true;
} }
if (fs.statSync('/usr/local/bin/docker-machine').gid !== 80 || fs.statSync('/usr/local/bin/docker-machine').uid !== process.getuid()) { if (fs.existsSync('/usr/local/bin/docker') && (fs.statSync('/usr/local/bin/docker').gid !== 80 || fs.statSync('/usr/local/bin/docker').uid !== process.getuid())) {
return true;
}
if (fs.existsSync('/usr/local/bin/docker-machine') && (fs.statSync('/usr/local/bin/docker-machine').gid !== 80 || fs.statSync('/usr/local/bin/docker-machine').uid !== process.getuid())) {
return true; return true;
} }
return false; return false;
@ -50,9 +50,11 @@ var SetupUtil = {
}, },
fixBinariesCmd: function () { fixBinariesCmd: function () {
var cmd = []; var cmd = [];
cmd.push.apply(cmd, ['chown', `${process.getuid()}:${80}`, this.escapePath(path.join('/usr/local/bin', 'docker-machine'))]); cmd.push.apply(cmd, ['chown', `${process.getuid()}:${80}`, path.join('/usr/local/bin')]);
cmd.push('&&'); cmd.push('&&');
cmd.push.apply(cmd, ['chown', `${process.getuid()}:${80}`, this.escapePath(path.join('/usr/local/bin', 'docker'))]); cmd.push.apply(cmd, ['chown', `${process.getuid()}:${80}`, path.join('/usr/local/bin', 'docker-machine')]);
cmd.push('&&');
cmd.push.apply(cmd, ['chown', `${process.getuid()}:${80}`, path.join('/usr/local/bin', 'docker')]);
return cmd.join(' '); return cmd.join(' ');
}, },
installVirtualBoxCmd: function () { installVirtualBoxCmd: function () {

View File

@ -11,7 +11,9 @@ pushd $BASE/resources > /dev/null
if [ ! -f $DOCKER_MACHINE_CLI_FILE ]; then if [ ! -f $DOCKER_MACHINE_CLI_FILE ]; then
echo "-----> Downloading Docker Machine CLI..." echo "-----> Downloading Docker Machine CLI..."
rm -rf docker-machine* rm -rf docker-machine*
curl -L -o $DOCKER_MACHINE_CLI_FILE https://github.com/docker/machine/releases/download/v$DOCKER_MACHINE_CLI_VERSION/docker-machine_darwin-amd64 # Use temporary, new version of docker-machine that has some important fixes
# curl -L -o $DOCKER_MACHINE_CLI_FILE https://github.com/docker/machine/releases/download/v$DOCKER_MACHINE_CLI_VERSION/docker-machine_darwin-amd64
curl -L -o $DOCKER_MACHINE_CLI_FILE https://github.com/kitematic/kitematic/releases/download/v0.5.8/docker-machine_darwin-amd64
chmod +x $DOCKER_MACHINE_CLI_FILE chmod +x $DOCKER_MACHINE_CLI_FILE
fi fi