Commit Graph

49 Commits

Author SHA1 Message Date
Nicolas De Loof 8ed715fd4f Fixes #2302 Possibility to create master with manager, but without agent
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2016-04-28 20:16:56 +02:00
Nicolas De Loof ab1ca913ad Introduce —swarm-join-opt to pass options to agent nodes
Fixes #3285
Fix regression introduced by PR #3287

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2016-04-28 09:40:31 +02:00
John Sirois 705865fa70 Fixup create command flag application.
Previously StringSlice flag defaults were not respected.  These use
special handling and that handling did not take account of default
values, always over-writing them.  Expand the CommandLine interface to
take advantage of the underlying codegansta/cli.Context IsSet method and
guard default string slice overwrites with an IsSet test.

Signed-off-by: John Sirois <john.sirois@gmail.com>
2016-03-29 11:53:22 -06:00
David Gageot fa986949e0 Merge pull request #3120 from daehyeok/Driver_env
DRIVER environment variable
2016-03-04 07:29:26 +01:00
Daehyeok Mun aa461f079d DRIVER environment variable
Signed-off-by: Daehyeok Mun <daehyeok@gmail.com>
2016-03-02 17:44:15 -07:00
David Gageot e3ff59bd92 Export flags for consumers of libmachine
Signed-off-by: David Gageot <david@gageot.net>
2016-03-02 22:27:59 +01:00
Jean-Laurent de Morlhon 1eaf5a464f Merge pull request #3020 from mssola/swarm-experimental
Added a flag to enable experimental Swarm features
2016-02-13 14:10:44 -08:00
Miquel Sabaté Solà 7e201c4005 Added a flag to enable experimental Swarm features
The `create` command now has the `--swarm-experimental` boolean flag, that
tells the Swarm provisioner to enable experimental features in Swarm.

Fixes #2861

Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
2016-02-13 12:21:20 +01:00
David Kirk 090c575c0d Add env var support.
Signed-off-by: David Kirk <davemkirk@gmail.com>
2016-02-10 21:25:28 -06:00
Jean-Laurent de Morlhon 8eb22b411b Fix #2029 - local drivers dont run with engine-install-url
Signed-off-by: Jean-Laurent de Morlhon <jeanlaurent@morlhon.net>
2016-01-28 18:05:58 +01:00
Jean-Laurent de Morlhon 9de45af808 Fix #2860
Signed-off-by: Jean-Laurent de Morlhon <jeanlaurent@morlhon.net>
2016-01-25 16:17:44 +01:00
David Gageot d518e171b9 Fix bugsnag reports for create
Signed-off-by: David Gageot <david@gageot.net>
2016-01-18 11:42:21 +01:00
David Gageot f96595d7d0 Fix Bugnag Report not being sent
Signed-off-by: David Gageot <david@gageot.net>
2016-01-07 12:09:00 +01:00
David Gageot cd9301e252 Merge pull request #2730 from dgageot/close-api
Close api
2016-01-05 15:50:44 +01:00
David Gageot 00eee7db1d Simplify Api
Signed-off-by: David Gageot <david@gageot.net>
2016-01-04 14:59:25 +01:00
David Gageot 5cfdcfe7b6 Remove duplication on certificates code
Signed-off-by: David Gageot <david@gageot.net>
2016-01-04 10:40:21 +01:00
David Gageot 89d9e2fe90 Close drivers on exit
Signed-off-by: David Gageot <david@gageot.net>
2015-12-24 13:44:42 +01:00
David Gageot c421bb456e Simplify ls command tests
Signed-off-by: David Gageot <david@gageot.net>
2015-12-08 10:18:42 +01:00
David Gageot cfe3972d18 Minor
Signed-off-by: David Gageot <david@gageot.net>
2015-11-26 14:13:52 +01:00
David Gageot 518e3b8bde Rename to rawDriver
Signed-off-by: David Gageot <david@gageot.net>
2015-11-26 14:08:09 +01:00
Nathan LeClaire 19ce7b79bd Revise CommandLine interface to contain libmachine client and store
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-11-23 19:29:20 -08:00
Jean-Laurent de Morlhon a55bba3ed2 Move tls-san flag to a local flag for create
Signed-off-by: Jean-Laurent de Morlhon <jeanlaurent@morlhon.net>
2015-11-23 12:40:07 +01:00
Jean-Laurent de Morlhon b6519d43e9 More readable code
Signed-off-by: Jean-Laurent de Morlhon <jeanlaurent@morlhon.net>
2015-11-23 12:22:57 +01:00
Sam Alba 5b453e6305 Implemented '--tls-san' global arg for adding extra SANs (subject alt names) to server-side certificates
Signed-off-by: Sam Alba <sam.alba@gmail.com>
2015-11-23 12:17:29 +01:00
Nathan LeClaire 42b6249a8c Vendor codegangsta/cli properly
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-11-20 18:20:11 -08:00
Olivier Gambier 89d9854943 Another pass at linting
Signed-off-by: Olivier Gambier <olivier@docker.com>
2015-11-10 16:58:14 +01:00
David Gageot 68092b3524 FIX #2154 query virtualbox serially
Signed-off-by: David Gageot <david@gageot.net>
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-11-07 16:14:25 +01:00
Olivier Gambier d2ada6488c Lint
Signed-off-by: Olivier Gambier <olivier@docker.com>
2015-11-05 13:34:07 -08:00
David Gageot 99d6fe134d Introduce CommandLine interface
Signed-off-by: David Gageot <david@gageot.net>
2015-11-05 06:07:57 +01:00
Nathan LeClaire 9a4bc9a20d Ensure that ls will still work when plugin cannot be found
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-11-03 11:35:30 -08:00
Nathan LeClaire 060f0a0db2 Fix issues with create and ssh command help text
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-10-30 16:21:47 -07:00
David Gageot 86c52ec3e7 Make commands code easier to test
Signed-off-by: David Gageot <david@gageot.net>
2015-10-29 11:15:17 +01:00
Nathan LeClaire 76c7accda0 Add heartbeat / automatic server cleanup code
This replaces the previous method of attempting to clean up servers when
an unexpected exit occurs in the client (e.g. SIGINT or panic) by a
heartbeat protocol.  If the server does not hear from the connecting
client within a certain interval of time (500ms in this commit), it will
de-activate itself.  This prevents dangling Docker Machine server
processes from accumulating.

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-10-22 19:44:35 -07: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
David Gageot cd80b70d26 FIX #1914 Reject command lines with trailing flags
Signed-off-by: David Gageot <david@gageot.net>
2015-10-13 16:29:28 +02: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
Dave Henderson fb0af73b80 Verifying the --swarm-discovery flag
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
2015-07-29 08:01:18 -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
Nathan LeClaire 3eaab15a5b Rename libmachine.Machine to libmachine.Provider
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-07-09 10:24:29 -07: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
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 b672617287 Migrate engine-flag => engine-opt
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-05-11 11:57:09 -07:00
Nathan LeClaire c602e69448 Read active host from DOCKER_HOST instead of from file
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-05-04 16:29:04 -07:00
Evan Hazlett 092521a346 docs: update usage info for env shell options
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-01 14:55:50 -04: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
Evan Hazlett 03c245cf4f Merge pull request #1033 from ehazlett/env-shell-selection
shell selection for env
2015-04-30 14:03:23 -04:00
Evan Hazlett 49686b9a91
better hint for windows shells
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-04-30 10:36:38 -04:00
Nathan LeClaire 2574c8ba5d Implement configurable engine options
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-04-29 17:58:14 -07:00
Dave Henderson 53ef9d7477 Refactoring commands.go into new commands package, with separate file for each subcommand
Signed-off-by: Dave Henderson <Dave.Henderson@ca.ibm.com>
2015-04-15 19:04:44 -04:00