Commit Graph

127 Commits

Author SHA1 Message Date
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 b038ff4020 Fixes https://github.com/docker/machine/issues/2062
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-10-23 13:58:32 -07:00
David Gageot 3ab5520ea3 Fix Typos in integration tests
Signed-off-by: David Gageot <david@gageot.net>
2015-10-20 17:56:27 +02: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
Olivier Gambier 53ace516a4 Merge pull request #1960 from dgageot/1914-create-ignores-trailing-options
FIX #1914 Reject command lines with trailing flags
2015-10-14 10:28:38 -07:00
Nathan LeClaire 998ada5303 Fix Windows SSH issues
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-10-13 16:42:08 -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 fcb14b98d2 Merge pull request #1949 from dmp42/11-plugins-prep
Prepare build for plugins PR
2015-10-08 17:13:06 -07:00
Kendrick Coleman 3ed0377956 clarified hostname error with valid characters
this is a fix for #1922 to add in a valid character error message.

Signed-off-by: Kendrick Coleman <kendrickcoleman@gmail.com>
2015-10-08 15:15:09 -04:00
Olivier Gambier 56160e0058 Prepare build for plugins PR
Signed-off-by: Olivier Gambier <olivier@docker.com>
2015-10-07 18:02:58 -07:00
Kazuyuki SUZUKI 2bc53a6ac3 Add argument assertion to inspect/status/url commands
Signed-off-by: Kazuyuki Suzuki <kechol28@gmail.com>
2015-10-01 14:15:29 +09:00
Olivier Gambier b6cb3e2b2d Tests fixes / silence build / add unit tests
Signed-off-by: Olivier Gambier <olivier@docker.com>
2015-09-23 16:51:54 -07:00
Nathan LeClaire 670d647216 Update documentation and integration tests for no_proxy
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-09-23 14:48:51 -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
Olivier Gambier b1701ccb8f Fix missing dep on circle
Signed-off-by: Olivier Gambier <olivier@docker.com>
2015-09-19 12:03:32 -07:00
Olivier Gambier 5fbfbe1ff7 Rehauled build system and integration testing
- USE_CONTAINER allow to seamlessly run targets inside or outside containers
- all build calls have been harmonized, honoring the same env variables
- contributing doc has been streamlined according to that
- kill the distinction between remote and local docker builds
- got rid of some of the byzantine calls in various asorted scripts
- support for static build, debug builds, verbose

Signed-off-by: Olivier Gambier <olivier@docker.com>
2015-09-18 15:47:00 -07:00
Evan Hazlett c1acb74d7a Merge pull request #1508 from ericsage/filter_names
Add name filter for #1488
2015-08-11 06:33:09 -04:00
Nathan LeClaire d79f1eb9f3 Add some fixups to the integration tests
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-08-06 00:42:56 -07: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
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 c6e9849783 vbox: restrict regex matching for msys translated paths
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

vbox: remove tar loading from virtual disk creation

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

tests: use btrfs instead of overlay for custom option test

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-07-24 09:07:01 -04:00
Eric Sage b333ea5294 Add regex based name filter to ls command.
Signed-off-by: Eric Sage <eric.david.sage@gmail.com>

Add regex support

Signed-off-by: Eric Sage <eric.david.sage@gmail.com>

Allow bad regex passthrough to reg string amtch

Signed-off-by: Eric Sage <eric.david.sage@gmail.com>

Add unit test

Signed-off-by: Eric Sage <eric.david.sage@gmail.com>

Add integration tests

Signed-off-by: Eric Sage <eric.david.sage@gmail.com>

Add documentation for name filter.

Signed-off-by: Eric Sage <eric.david.sage@gmail.com>
2015-07-22 21:06:26 -04: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 918ed6a135 Add integration test for status command
Use `log.Info` instead of `fmt.Println`

Signed-off-by: Sergio Botero <sergiobuj@gmail.com>
2015-07-14 19:10:43 -07:00
Nathan LeClaire 02e79e06dc Make some clean ups and fixes to the integration tests
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-06-17 17:27:52 -07:00
Evan Hazlett 30c2086cdf Merge pull request #1304 from nathanleclaire/integration_continues
Add some helpers and patch ups to the integration tests
2015-06-05 11:07:44 -04:00
Nathan LeClaire e75b6a5e5f Add some helpers and patch ups to the integration tests
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-06-04 15:41:37 -07:00
Vincent Bernat 6d075aed02 test: don't invoke docker-machine directly
Use `machine` helper for that.

Signed-off-by: Vincent Bernat <Vincent.Bernat@exoscale.ch>
2015-06-03 10:30:34 +02:00
Nathan LeClaire ed01843dc9 Refactor integration tests
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-06-02 10:10:52 -07: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
Evan Hazlett 7f3bfb3e87 Merge pull request #1206 from miketheman/vmwarefusion_1168
Address vmwarefusion driver hang condition
2015-05-22 09:57:17 -04:00
Mike Fiedler 67a5018999 Get machine state before looking up URL in vmwarefusion
- Add a call to GetState() in GetIP() to bail if the machine is stopped,
  similar to how it is done in the virtualbox driver.
- Add tests for `url` and `env` commands.

Fixes #1168

Signed-off-by: Mike Fiedler <miketheman@gmail.com>
2015-05-20 23:40:07 -04:00
Mike Fiedler cd049cb4b9 Convert vmwarefusion bats tests back to `machine`
In #615, the helper function `machine()` was created and used within the
vmwarefusion test suite (amongst others) to wrap a platform-specfic
binary during the test suite.

In #1034, it appears that this name was changed to the normal
docker-machine binary, which can incoke the system-installed one, not
the recently compiled one, potentially testing the incorrect binary.

See:
- https://github.com/docker/machine/pull/615#discussion_r25643553
- https://github.com/docker/machine/pull/1034/files#diff-62c88a2fede921556dbdeead731596b2R14

Signed-off-by: Mike Fiedler <miketheman@gmail.com>
2015-05-20 23:40:01 -04:00
Mike Fiedler 0282a7d544 Add tests for url/env commands when stopped w/virtualbox
Refs #1168

Signed-off-by: Mike Fiedler <miketheman@gmail.com>
2015-05-20 23:39:52 -04:00
Nathan LeClaire 2f78b7f92a Move code to use SSH "backends"
Default to shelling out to SSH when available.

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-05-19 15:02:57 -07:00
Evan Hazlett 48c033e271 Merge pull request #1140 from nathanleclaire/new_scp
Implement docker-machine scp
2015-05-15 13:21:37 -04:00
Evan Hazlett bc0a552b26 Merge pull request #1162 from hairyhenderson/bats-arm-support
Naming the binary properly on ARM when running integration tests
2015-05-14 16:37:42 -04: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 2019448f5f Naming the binary properly on ARM when running the BATS tests
Signed-off-by: Dave Henderson <Dave.Henderson@ca.ibm.com>
2015-05-12 20:47:55 -04:00
Nathan LeClaire 7f6d19ff47 Fix a few issues with certs
- regenerate-certs was busted, because of recent changes I made to
  Provision() method
- checksum was different between local certs and remote certs

This PR fixes both issues and adds tests to verify that both conditions
are checked in the future.

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-05-12 15:11:23 -07:00
Evan Hazlett aec395502e Merge pull request #1125 from hairyhenderson/ls-filter-1076
Adding --filter flag to ls command
2015-05-12 08:10:58 -04:00
Evan Hazlett 68eaa5282d Merge pull request #1152 from hairyhenderson/fix-cli-integration-tests
Fixing cli.bats tests
2015-05-12 08:08:20 -04: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
Dave Henderson 96c1d994ec Fixing cli.bats tests
Signed-off-by: Dave Henderson <Dave.Henderson@ca.ibm.com>
2015-05-11 09:55:34 -04:00
Nathan LeClaire e152ecc30b Add check for machine state before upgrade
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-05-06 13:20:33 -07:00
Nathan LeClaire 8c34f80940 Fix bug with quiet ls mode
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-05-06 11:48:16 -07:00
Evan Hazlett fdc8538de4 Merge pull request #1109 from ibuildthecloud/no-default-storage-driver
Default storage driver to "" and let provisioner choose default
2015-05-05 10:46: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 23f071c76f Fix integration tests
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-05-04 19:01:29 -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
Evan Hazlett a3eb0d077b Merge pull request #1040 from nathanleclaire/engine_options
Implement configurable engine options
2015-04-30 13:55:58 -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
Aaron Welch 2a44f40f6c for ubuntu provision append hostname to 127.0.1.1 line in /etc/hosts
Signed-off-by: Aaron Welch <welch@packet.net>
2015-04-26 15:39:22 -04:00
Fabio Rapposelli 25583edbb3 Update VMware Fusion and vSphere driver to run boot2docker 1.6.0
- Update custom ISO to docker 1.6.0.
- Shared folder support for VMware Fusion.
- Updated bats test for Fusion.

Signed-off-by: Fabio Rapposelli <fabio@vmware.com>
2015-04-20 10:34:13 -07:00
Nathan LeClaire 9b5f395c60 Implement upgrade functionality for boot2docker
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-03-30 16:18:38 -07:00
Tom Barlow ddf633a9e4 Rebased, added env var test for virtualbox CPU count
Signed-off-by: Tom Barlow <tomwbarlow@gmail.com>
2015-03-28 23:07:49 +00:00
Tom Barlow 6e71cd3917 Replaced export statements in virtualbox integration tests with inline variables
Signed-off-by: Tom Barlow <tomwbarlow@gmail.com>
2015-03-28 23:07:49 +00:00
Tom Barlow f01b9ce800 Specifying env vars inline on BATS doesn't seem to work, switched to export
Signed-off-by: Tom Barlow <tomwbarlow@gmail.com>
2015-03-28 23:07:49 +00:00
Tom Barlow c221a0a42f Moved cleanup of machine store to end of virtualbox integration test
Signed-off-by: Tom Barlow <tomwbarlow@gmail.com>
2015-03-28 23:07:49 +00:00
Tom Barlow 0e1db73829 Added bats integration test for virtualbox customisation via env vars
Signed-off-by: Tom Barlow <tomwbarlow@gmail.com>
2015-03-28 23:07:49 +00:00
Evan Hazlett ee7617c2e7 Merge pull request #887 from nathanleclaire/listen_on_socket
Fix unix:// not working inside VM issue
2015-03-27 11:39:45 -07:00
Nathan LeClaire d6db67d0be Fix unix:// not working inside VM issue
With the way that provisioning was implemented, there was an issue
getting connection to the UNIX socket to work with the new boot2docker
1.6rc2 ISO.  This issue is related to the fact that the docker
service was not truly stopped during the provisioning.  This PR fixes
the issue and provides some tests to help ensure that it does not come
up again.

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-03-27 10:41:12 -07:00
Ken Pepple d80c47df88 add integration tests for cpu count (PR #879) in virtualbox driver
Signed-off-by: Ken Pepple <ken@solinea.com>
2015-03-25 20:40:50 -07:00
Ken Pepple a84cc1ee6b add integration tests for custom create options in virtualbox
Signed-off-by: Ken Pepple <ken@solinea.com>
2015-03-25 12:48:50 -07:00
Evan Hazlett a9277a7977 Merge pull request #833 from slashk/vbox-pause-saved-int-test
add pause/savestate scnearios to virtualbox integration tests
2015-03-23 20:11:04 -04:00
Ken Pepple 81a9765d35 add pause/savestate scnearios to virtualbox integration tests
Signed-off-by: Ken Pepple <ken@solinea.com>
2015-03-21 13:13:54 -07:00
Nathan LeClaire 3b2c8f9845 Migrate (swarmConfig) => (swarmOptions)
and (SwarmConfig) => (SwarmOptions)

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>

Migrate (authConfig) => (authOptions)
        (AuthConfig) => (AuthOptions)

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>

Migrate (hostConfig) => (hostOptions)
        (HostConfig) => (HostOptions)

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-03-20 23:20:11 -07:00
Evan Hazlett 68397cfced
bats updates
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-03-20 23:44:22 -04:00
Evan Hazlett 28789604e9 provisioner: finished migration functions
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-03-20 23:17:42 -04:00
Evan Hazlett 4ca4a28788 libmachine: validate host config upon load
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-03-19 23:19:35 -04:00
Evan Hazlett da3da50897 DO: updated to new driver spec; updated integration tests
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-03-17 11:08:20 -04:00
Evan Hazlett 51aa826e14
digitalocean: update to driver interface
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-03-09 22:20:47 -04:00
Evan Hazlett 2b6daa29ed
update integration test for virtualbox
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-03-09 12:50:57 -04:00
Evan Hazlett ed4fa09311
more integration test robustness
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-03-07 18:19:15 -05:00