Commit Graph

82 Commits

Author SHA1 Message Date
Nathan LeClaire
b5927f10c4 Make libmachine usable by outside world
- Clear out some cruft tightly coupling libmachine to filestore

- Comment out drivers other than virtualbox for now

- Change way too many things

- Mostly, break out the code to be more modular.

- Destroy all traces of "provider" in its current form.  It will be
brought back as something more sensible, instead of something which
overlaps in function with both Host and Store.

- Fix mis-managed config passthru

- Remove a few instances of state stored in env vars

- This should be explicitly communicated in Go-land, not through the
shell.

- Rename "store" module to "persist"

- This is done mostly to avoid confusion about the fact that a concrete
instance of a "Store" interface is oftentimes referred to as "store" in
the code.

- Rip out repetitive antipattern for getting store

- This replaces the previous repetive idiom for getting the cert info, and
consequently the store, with a much less repetitive idiom.

- Also, some redundant methods in commands.go for accessing hosts have
either been simplified or removed entirely.

- First steps towards fixing up tests

- Test progress continues

- Replace unit tests with integration tests

- MAKE ALL UNIT TESTS PASS YAY

- Add helper test files

- Don't write to disk in libmachine/host

- Heh.. coverage check strikes again

- Fix remove code

- Move cert code around

- Continued progress: simplify Driver

- Fixups and make creation work with new model

- Move drivers module inside of libmachine

- Move ssh module inside of libmachine

- Move state module to libmachine

- Move utils module to libmachine

- Move version module to libmachine

- Move log module to libmachine

- Modify some constructor methods around

- Change Travis build dep structure

- Boring gofmt fix

- Add version module

- Move NewHost to store

- Update some boring cert path infos to make API easier to use

- Fix up some issues around the new model

- Clean up some cert path stuff

- Don't use shady functions to get store path :D

- Continue artifact work

- Fix silly machines dir bug

- Continue fixing silly path issues

- Change up output of vbm a bit

- Continue work to make example go

- Change output a little more

- Last changes needed to make create finish properly

- Fix config.go to use libmachine

- Cut down code duplication and make both methods work with libmachine

- Add pluggable logging implementation

- Return error when machine already in desired state

- Update example to show log method

- Fix file:// bug

- Fix Swarm defaults

- Remove unused TLS settings from Engine and Swarm options

- Remove spurious error

- Correct bug detecting if migration was performed

- Fix compilation errors from tests

- Fix most of remaining test issues

- Fix final silly bug in tests

- Remove extraneous debug code

- Add -race to test command

- Appease the gofmt

- Appease the generate coverage

- Making executive decision to remove Travis coverage check

In the early days I thought this would be a good idea because it would
encourage people to write tests in case they added a new module.  Well,
in fact it has just turned into a giant nuisance and made refactoring
work like this even more difficult.

- Move Get to Load
- Move HostListItem code to CLI

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-09-23 12:30:15 -07:00
Olivier Gambier
09d3dad46b Fix vet errors and enforce vet on travis
Signed-off-by: Olivier Gambier <olivier@docker.com>
2015-09-19 16:09:44 -07:00
Evan Hazlett
b8150450a6 fix debian provisioning bug with systemd
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-09-17 15:16:18 -04:00
Xiaohui
102007b231 separate pkgaction into 'pkgaction' and 'serviceaction'
ignored IntellJ IDEA files

Signed-off-by: Xiaohui Liu <xiaohui.liu@ucloud.cn>
2015-09-17 11:15:38 +08:00
Matt McNaughton
a0b9d179b1 Fix Go Vet errors
This commit makes no changes to code execution, but rather resolves some
`go vet` errors, the majority of which relate to `fatal` being used
instead of `fatalf` during testing.

Signed-off-by: Matt McNaughton <mattjmcnaughton@gmail.com>
2015-09-14 22:37:16 -04:00
Evan Hazlett
08208bd141 Merge pull request #1463 from mschygulla/coreos-provisioner
Provisioner for CoreOS
2015-09-02 14:44:50 -04:00
Evan Hazlett
ca2ab8c137 remove sudo -E for provisioning
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-08-13 17:16:41 -04:00
Evan Hazlett
52a9c70277 debian/ubuntu: do not upgrade the system for a single package
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-08-13 08:55:16 -04:00
Evan Hazlett
f3f8b268e0 fixes upgrade for debian/ubuntu for new package name
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-08-13 01:24:15 -04:00
Martin Schygulla
8328e96d93 Provisioner for CoreOS
Signed-off-by: Martin Schygulla <martin.schygulla@gmail.com>
2015-08-11 15:38:39 +02:00
Nathan LeClaire
8ba5a57072 Revert "Merge pull request #1552 from ehazlett/b2d-next"
This reverts commit 736ebb14fb, reversing
changes made to c6660bf62c.

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-08-03 14:46:52 -07:00
Nathan LeClaire
802393f253 Skip and warn on wonky /etc/os-release lines
If the lines don't split cleanly (occasionally STDERR gets mixed in, for
instance, due to our current SSH output setup), we should simply
log.Warn in the output instead of bailing completely.

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-07-28 18:07:51 -07:00
Evan Hazlett
736ebb14fb Merge pull request #1552 from ehazlett/b2d-next
VirtualBox: Update to support new B2D
2015-07-24 18:20:42 -04:00
Evan Hazlett
65b5624221 proper check for hyper-v during upgrade
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-07-24 13:33:46 -04:00
Evan Hazlett
030783af74 swarm: use --advertise instead of --addr for join
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-07-24 13:15:00 -04:00
Evan Hazlett
5af751ecf1 b2d: re-enable upgrade for local
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-07-24 09:38:01 -04:00
Evan Hazlett
cb80c434ac b2d: use direct urls until release; devicemapper for engine opts tests
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

b2d-ng: use driver names for iso versions

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-07-24 09:07:01 -04:00
Evan Hazlett
e09f2fdd9c vbox: change to get latest released iso instead of pre-release
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

vbox: fix windows share dir for homedir

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

vbox: update tests for b2d

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-07-24 09:07:01 -04:00
Evan Hazlett
ab31d52165 update vbox driver to work with new b2d
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

vbox: lock down shared folders to user home dir

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

use env var for user for cross platform

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

vbox: remove sudo from setting ssh key for user

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

wip: use homedir for share

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-07-23 19:40:07 -04:00
Evan Hazlett
b43a76deec add GetOsReleaseInfo to provisioner to assist in testing; add tests for rpm repo
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-07-22 20:56:28 -04:00
Evan Hazlett
01bf2ea2d7 use yum repos for redhat like distros
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-07-22 20:56:27 -04:00
Ryan Grothouse
d553a2c757 added support for setting environment variables in docker engines
Signed-off-by: Ryan Grothouse <rgrothouse@gmail.com>
2015-07-16 16:12:06 -04:00
Emmanuel Bretelle
36ec026b38 [debian] Make enabling docker service work
Fixes #1495
/etc/systemd/system/docker.service was missing the [Install] section
making the enable action fail with:

```
root@jessie:~# systemctl enable docker
Synchronizing state for docker.service with sysvinit using
update-rc.d...
Executing /usr/sbin/update-rc.d docker defaults
Executing /usr/sbin/update-rc.d docker enable
The unit files have no [Install] section. They are not meant to be
enabled
using systemctl.
Possible reasons for having this kind of units are:
1) A unit may be statically enabled by being symlinked from another
unit's
   .wants/ or .requires/ directory.
2) A unit's purpose may be to act as a helper for some other unit which
has
   a requirement dependency on it.
3) A unit may be started when needed via activation (socket, path,
timer,
   D-Bus, udev, scripted systemctl call, ...).
```

Signed-off-by: Emmanuel Bretelle <chantr4@gmail.com>
2015-07-10 00:10:39 -07:00
Nathan LeClaire
fd35c7df48 Set boot2docker hostname properly
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-07-06 13:11:07 -07:00
Nathan LeClaire
3064d52b7f Remove upgrade restriction on VMware providers
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-06-18 10:40:49 -07:00
Evan Hazlett
9ed3cb9c86 provisioning: update rpms for 1.7
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-06-18 12:44:44 -04:00
Evan Hazlett
e37e90939b provisioning: update rpms for RC3
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-06-15 16:16:16 -04:00
Evan Hazlett
4a54559233 Merge pull request #1280 from ehazlett/native-ssh-fix
fix issue with native ssh; fix tty allocation for redhat
2015-06-02 16:48:02 -04:00
Evan Hazlett
cf0aee9fd7 support specifying swarm image and docker versions
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-06-01 16:20:56 -04:00
Evan Hazlett
0b5a389481 fix issue with native ssh; fix tty allocation for redhat
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-06-01 10:08:07 -04:00
Evan Hazlett
584dec8a74 redhat: use engine version 1.7rc1
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-28 08:51:42 -04:00
Evan Hazlett
be7c110dfd Merge pull request #1247 from ehazlett/redhat-tty-fix
redhat: fix tty provision bug
2015-05-27 13:57:44 -04:00
Evan Hazlett
ec5edb0354 redhat: fix tty provision bug
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-27 10:56:43 -04:00
Evan Hazlett
53d0da039a debian: rebase and fix configureSwarm
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-26 17:55:38 -04:00
Evan Hazlett
3e1a6ed98c debian: rebase and streamline sudo install
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-26 17:54:47 -04:00
Evan Hazlett
290ead9ea0 debian: use proper location for config
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-26 17:54:47 -04:00
Evan Hazlett
c318008aea add debian provisioner
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-26 17:54:47 -04:00
Nathan LeClaire
47bd262260 Implement configurable Swarm options
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-05-26 10:18:34 -07:00
Nathan LeClaire
3385e4ef94 Nitpick struct fields
I find it easier to identify and read if they are labelled

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-05-22 14:51:24 -07:00
Evan Hazlett
30ace6716e centos: update config path
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-21 13:45:51 -04:00
Evan Hazlett
065982b7d2 centos: add provisioner
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-21 13:45:51 -04:00
Evan Hazlett
cab167c21a fedora: remove configure repo
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-21 13:45:51 -04:00
Evan Hazlett
8e9ce9ccdf fedora: provisioner based off of redhat
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-21 13:45:49 -04:00
Evan Hazlett
7998852368 fedora: use proper location for config file
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-21 13:44:40 -04:00
Evan Hazlett
b4fa9f10a8 fedora: remove configure repo
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-21 13:44:40 -04:00
Evan Hazlett
f17556b2fa fedora: provisioner based off of redhat
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-21 13:44:40 -04:00
Evan Hazlett
bf7a5f2f53 redhat: remove aws check; update docs
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-21 13:44:40 -04:00
Evan Hazlett
380aaa2670 redhat: update before docker install; use simpler config in proper location
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-21 13:44:40 -04:00
Evan Hazlett
0dbfcd5535 redhat: remove configure repo as we use our own rpms now
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-21 13:44:40 -04:00
Evan Hazlett
0920a2de1b redhat: update RPM path
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-21 13:44:39 -04:00