Commit Graph

32 Commits

Author SHA1 Message Date
Jean-Laurent de Morlhon 1079735af8 Remove withFields
Signed-off-by: Jean-Laurent de Morlhon <jeanlaurent@morlhon.net>
2015-12-07 10:34:43 +01:00
Thomas Recloux 697b543789 Rackspace : update default image to ubuntu 15.10
Signed-off-by: Thomas Recloux <thomas.recloux@gmail.com>
2015-12-03 19:14:14 +01:00
Olivier Gambier 89d9854943 Another pass at linting
Signed-off-by: Olivier Gambier <olivier@docker.com>
2015-11-10 16:58:14 +01:00
Amir Mohammad Saied a6c44f5d4e Use rackspace's specialized client
`openstack.NewDerivedDriver` sets client to `openstack.GenericClient`
therefore `rackspace.Client` is getting ignored.

`rackspace.Client.Authenticate` has different semantics than
`openstack.GenericClient.Authenticate`, thus almost all operations with
`rackspace` driver fail at the moment.

Signed-off-by: Amir Mohammad Saied <amirsaied@gmail.com>
2015-11-06 18:30:31 +00:00
Olivier Gambier d2ada6488c Lint
Signed-off-by: Olivier Gambier <olivier@docker.com>
2015-11-05 13:34:07 -08:00
David Gageot 11922080a1 FIX #2171 Fix faulty flag and add tests for SetConfigFromFlags
Signed-off-by: David Gageot <david@gageot.net>
2015-11-05 18:57:03 +01:00
Nathan LeClaire c8edb33ecd Move towards using external binaries / RPC plugins
- First RPC steps

- Work on some flaws in RPC model

- Remove unused TLS settings from Engine and Swarm options

- Add code to correctly encode data over the network

- Add client driver for RPC

- Rename server driver file

- Start to make marshal make sense

- Fix silly RPC method args and add client

- Fix some issues with RPC calls, and marshaling

- Simplify plugin main.go

- Move towards 100% plugin in CLI

- Ensure that plugin servers are cleaned up properly

- Make flag parsing for driver flags work properly

Includes some work carried from @dmp42 updating the build process and
tests to use the new method.

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-10-16 16:34:56 -07:00
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
Nathan LeClaire fb2e843e99 - Re-introduce config migration; fix panics occurring from older configs
- Introduce boilerplate for config.json migrations

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-07-28 15:38:16 -07:00
Nathan LeClaire 142ffadc2c Refactor logging to focus on simple STDOUT/STDERR
This also lays the foundation for the possibility of log drivers in the
future, if it is decided that is a direction to pursue.

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-04-30 12:04:52 -07:00
Vincent Bernat 91d12d06ec drivers: remove unneeded `GetDockerConfigDir()` and `dockerConfigDir` const
This method is not part of the driver interface anymore.

Signed-off-by: Vincent Bernat <Vincent.Bernat@exoscale.ch>
2015-04-10 17:03:11 +02:00
Evan Hazlett b9f191cedd Merge pull request #706 from ehazlett/rackspace-flavor-env-var
rackspace: enable env var for flavor id
2015-04-03 10:39:45 -04:00
Evan Hazlett 10e8c446a7
rackspace: update env var and docs for flavor-id
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-04-02 10:01:42 -04:00
Guillaume Giamarchi fb1362ea05 Remove dead code
Signed-off-by: Guillaume Giamarchi <guillaume.giamarchi@gmail.com>
2015-03-27 19:25:11 +01:00
Ash Wilson cab014cd28 Prepend a string to the User-Agent.
For both OpenStack and Rackspace drivers.

Signed-off-by: Ash Wilson <ash.wilson@rackspace.com>
2015-03-23 11:42:24 -04:00
Evan Hazlett 505c83629f rackspace: enable env var for flavor id
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-03-04 13:19:08 -08:00
Evan Hazlett 54f36078f4 do not show debug for docker install by default; refactor install out of drivers
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-02-23 17:14:32 -05:00
Evan Hazlett 3a3ef6f45e add discovery to machine config; show swarm membership
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-02-20 13:07:21 -08:00
Evan Hazlett a949e12b6e store swarm config in driver; vendor Godeps; generate swarm token
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-02-20 13:07:21 -08:00
Nathan LeClaire d1fdc87f54 Add structure to generate code coverage representation
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-02-02 13:41:42 -08:00
Evan Hazlett 3212d0c509 tls for openstack/rackspace
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-01-15 22:56:25 -05:00
Guillaume Giamarchi 9d91f458f5 Set machine hostname
Signed-off-by: Guillaume Giamarchi <guillaume.giamarchi@gmail.com>
2015-01-14 23:20:23 +01:00
Ash Wilson cd97f87f6c Add a Rackspace Docker install option.
Signed-off-by: Ash Wilson <ash.wilson@rackspace.com>
2015-01-14 23:15:32 +01:00
Ash Wilson c5c15618e8 Allow derived drivers to enable the Docker install.
Signed-off-by: Ash Wilson <ash.wilson@rackspace.com>
2015-01-14 23:15:26 +01:00
Ash Wilson 5636679367 Rackspace driver enhancements & fixes
* checkConfig is no longer a thing.
* Change the default Rackspace image to Ubuntu 14.04.
* Remove an unnecessary Network service.
* Show a nicer error when the Region is omitted.

Signed-off-by: Ash Wilson <ash.wilson@rackspace.com>
2015-01-14 23:13:40 +01:00
Guillaume Giamarchi c16adeb46f Refactor option management to use codegangsta/cli
Signed-off-by: Guillaume Giamarchi <guillaume.giamarchi@gmail.com>
2015-01-14 23:11:06 +01:00
Ash Wilson 2fb9061142 Turn selected logging messages to "debug".
Otherwise, they interfere with the output of `machine url` and `machine ls`. `machine url`
is more important because it breaks the export statement to configure docker if it includes
additional output.

Signed-off-by: Ash Wilson <ash.wilson@rackspace.com>
2015-01-14 22:01:32 +01:00
Ash Wilson 5f0fe8e704 Override GetInstanceIpAddresses for Rackspace.
Signed-off-by: Ash Wilson <ash.wilson@rackspace.com>
2015-01-14 22:01:32 +01:00
Ash Wilson 816cc3c491 Fixes on OpenStack and Rackspace drivers
* Use the initialized client
* Fix the endpointType conditional
* Don't die if OS-EXT-IPS is not present
* Only log Openstack creation for Openstack drivers
* There's no option for MachineName, yet

Signed-off-by: Ash Wilson <ash.wilson@rackspace.com>
2015-01-14 22:01:32 +01:00
Ash Wilson 7c839273c1 Init methods are no-ops when already initialized.
Signed-off-by: Ash Wilson <ash.wilson@rackspace.com>
2015-01-14 22:01:32 +01:00
Ash Wilson b046940433 Validate and default Rackspace-specific options.
Signed-off-by: Ash Wilson <ash.wilson@rackspace.com>
2015-01-14 22:01:32 +01:00
Ash Wilson c12d3f8ecd Initial cut at a Rackspace driver.
* Wrap openstack.Client in an interface.
* Alternate openstack Driver creation method.
* Register the Rackspace driver in commands.go.

Signed-off-by: Ash Wilson <ash.wilson@rackspace.com>
2015-01-14 22:01:31 +01:00