Commit Graph

40 Commits

Author SHA1 Message Date
Nathan LeClaire c04eb43021 Remove redundant error log
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-10-28 13:56:29 -07: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
David Gageot 6bbec2df68 Report VirtualBox errors
Signed-off-by: David Gageot <david@gageot.net>
2015-10-21 21:03:51 +02:00
Dave Henderson 486e359e63 Fixing JSON marshaling of large numbers during migration
- Added some context to an error message - it's useful to know _which_
  plugin failed when invoking the binary failed
- Replaced `json.Umarshal` with a `json.Decoder`, so that the
  `UseNumber` function can be called, which prevents large integers from
  being interpreted as `float64`s.
- Fixed a couple `log.Warn` calls that should've been `log.Warnf`

Signed-off-by: Dave Henderson <dhenderson@gmail.com>
2015-10-19 18:00:19 -04: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 bd03e83239 Merge pull request #1873 from djimenez/detectShellWindows
Issue #1867 improve detectShell for windows
2015-10-05 13:32:53 -07:00
Alexey Grachov b970dddc8b Remove dead code.
Function getMachineDir is not used.

Signed-off-by: Alexey Grachov <grachov.alexey@gmail.com>
2015-09-29 20:30:20 +03:00
Nathan LeClaire 0a2b9c2784 Fix flag accidentally left out in PR carry
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-09-23 17:57:52 -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 2a15d98575 First steps to make ssh command smoother
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-09-21 12:16:47 -07:00
Donovan Jimenez 1dfca96c69 Issue #1867 improve detectShell for windows
newer versions of git bash use mintty which doesn't set TERM=cygwin but
does set SHELL appropriately. Allow for SHELL to be detected on windows
and only output the message if its not.

Signed-off-by: Donovan Jimenez <donovan.jimenez@gmail.com>
2015-09-17 15:53:33 -04:00
Xiaohui dcdd1a4757 cleanup log.*ln, unuseful methods, some typos error …
1. cleanup log.*ln for #1081
2. add "\n" to config command
3. typos error
4. remove unuseful methods: getBasedir@commands.go, and
GetDefaultTestHost@commands_test

Signed-off-by: Xiaohui Liu <xiaohui.liu@ucloud.cn>
2015-09-14 15:25:50 +08:00
Nathan LeClaire 03d4683755 Merge pull request #1503 from sergiobuj/add_status_command
Add status command
2015-07-22 15:55:45 -07: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
Sergio Botero 87cf7e222e Add status command
closes #1471 by adding the status command that prints the state of a
machine.

Signed-off-by: Sergio Botero <sergiobuj@gmail.com>
2015-07-14 19:10:40 -07: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 7bd70db83b
windows: error message if using powershell/cmd and none specified
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-06-09 13:18:15 -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
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 333b7e88a7 Implement docker-machine scp
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-05-13 17:22:42 -07:00
Dave Henderson a3c8b3474e Adding --filter flag to ls command
Initially supporting `swarm=`, `state=`, and `driver=` filters.

Signed-off-by: Dave Henderson <Dave.Henderson@ca.ibm.com>
2015-05-11 20:01:50 -04: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
Evan Hazlett f3bcda1cff Merge pull request #1137 from nathanleclaire/fixup
Fix formatting and non-returning of error
2015-05-07 11:52:40 -07:00
Nathan LeClaire 8887ca2fed Fix formatting and non-returning of error
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-05-06 17:52:29 -07:00
Evan Hazlett 7aa8364a4a Merge pull request #1117 from ehazlett/fix-windows-shell-detection
windows: fix shell detection to not bail on bash envs
2015-05-06 15:54:37 -07:00
Evan Hazlett c4dd9198c1
windows: fix shell detection to not bail on bash envs
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-05 12:19:53 -07:00
Evan Hazlett 7fc50f3de3 add generic driver
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-05 11:04:47 -07:00
Darren Shepherd 43b5786001 Default storage driver to "" and let provisioner choose default
The storage driver will be "" by default an the provisioner must choose
their default provisioner.  If the user chosen storage driver is not
supported the provisioner should return an error.

Signed-off-by: Darren Shepherd <darren@rancher.com>
2015-05-05 09:12:33 -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
Vincent Bernat fd569c8fdf driver: exoscale driver
Add support for exoscale, a Swiss cloud provider. This pull "egoscale",
a Go binding for exoscale, in godeps.

Signed-off-by: Vincent Bernat <Vincent.Bernat@exoscale.ch>
2015-04-30 22:32:02 +02: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
Evan Hazlett e13e2b61c6 use template for shell config; more powershell and cmd fixes
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-04-29 09:28:35 -04:00
Evan Hazlett cba15e843f powershell support
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-04-29 09:28:34 -04:00
Dave Henderson 5b6cbe226d Sorting commands in alphabetical order
Signed-off-by: Dave Henderson <Dave.Henderson@ca.ibm.com>
2015-04-26 14:26:18 -04:00
Dave Henderson a0f079a627 Enhancing `docker-machine ip` to support multiple host arguments
Fixes #999

Signed-off-by: Dave Henderson <Dave.Henderson@ca.ibm.com>
2015-04-22 22:10:45 -04:00
Dave Henderson c93a17481c Adding --format/-f option to `inspect` subcommand
Signed-off-by: Dave Henderson <Dave.Henderson@ca.ibm.com>
2015-04-20 19:27:38 -04: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