Commit Graph

26 Commits

Author SHA1 Message Date
Thomas Recloux ca7ea324c4 Exoscale : update default image to ubuntu 15.10
Signed-off-by: Thomas Recloux <thomas.recloux@gmail.com>
2015-12-03 19:14:14 +01:00
Vladimir Varankin 0735f3f447 fix drivers GetUrl to build propper IPv6 addr
Signed-off-by: Vladimir Varankin <nek.narqo+git@gmail.com>
2015-11-13 13:19:15 +03:00
Olivier Gambier 89d9854943 Another pass at linting
Signed-off-by: Olivier Gambier <olivier@docker.com>
2015-11-10 16:58:14 +01:00
Olivier Gambier ae2d344c2b Carry on commits from #2033
A couple of small cleanup and enhancements that were dropped after the revert.

Signed-off-by: Olivier Gambier <olivier@docker.com>
2015-10-30 16:33:26 -07:00
David Gageot 6c5dc41e6d Revert "Remove useless duplication on GetSSHHostname"
This reverts commit b6462eb6d0.

Signed-off-by: David Gageot <david@gageot.net>
2015-10-26 18:47:14 +01:00
David Gageot 57dc1156de Revert "Remove duplication over GetIP"
This reverts commit 99aacc7b79.

Signed-off-by: David Gageot <david@gageot.net>
2015-10-26 18:47:03 +01:00
Olivier Gambier 99aacc7b79 Remove duplication over GetIP
+ ip address proper validation

Signed-off-by: Olivier Gambier <olivier@docker.com>
2015-10-21 13:48:13 -07:00
Olivier Gambier b6462eb6d0 Remove useless duplication on GetSSHHostname
Signed-off-by: Olivier Gambier <olivier@docker.com>
2015-10-21 13:48:13 -07:00
Olivier Gambier bf3cd8b8f4 Remove useless duplication on PreCreateCheck
Signed-off-by: Olivier Gambier <olivier@docker.com>
2015-10-21 13:48:13 -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
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
Evan Hazlett 69dc9fd7f3 Merge pull request #1273 from hairyhenderson/default-driver-impl
refactor: Extracting a base Driver struct
2015-07-09 01:59:05 -06:00
Dave Henderson 3d002187fe Refactoring drivers to embed drivers.DefaultDriver
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
2015-07-07 11:24:00 -04:00
Vincent Bernat 6a0e3ee0a5 exoscale: reuse "SecurityGroup" variable in "struct Driver"
Since the content of `struct Driver` is serialized to disk, any change
is problematic. A workaround is to keep using the `SecurityGroup` member
as a string (a comma-separated list of security groups).

Signed-off-by: Vincent Bernat <Vincent.Bernat@exoscale.ch>
2015-06-30 11:09:13 +02:00
Vincent Bernat 4ec3f206b4 exoscale: use `StringSlice` to specify security groups
This mean that the option has to be repeated to specify multiple
security groups.

Signed-off-by: Vincent Bernat <Vincent.Bernat@exoscale.ch>
2015-06-30 10:59:23 +02:00
Vincent Bernat 5ba232227e exoscale: ability to specify multiple security groups on instance creation
Without this feature, when a user needs a specific security group (i.e
most of the time if they want to expose a service to Internet), they
need to copy the rules needed for Docker itself into each custom
group. With this feature, they can spawn new instances with
`--exoscale-security-group docker-machine,my-custom-group`.

Signed-off-by: Vincent Bernat <Vincent.Bernat@exoscale.ch>
2015-06-30 10:59:23 +02:00
Vincent Bernat 3c16a870ac exoscale: move job waiting into a separate function
Waiting for a job to complete is split into a dedicated function,
outside of `waitForVM()`. Functions only waiting for the job to complete
will use this new function instead. The "job is done" testing logic is
also casted into a separate function.

The original `waitForVM()` function is now waiting for the job to
complete, then retrieve the VM. This introduces an extra API call which
could be avoided by having a `waitForJob()` return the last response but
this makes the code simpler for other users and adding a special variant
just for that seems to be overkill.

Signed-off-by: Vincent Bernat <Vincent.Bernat@exoscale.ch>
2015-06-03 09:33:17 +02:00
Vincent Bernat 2d25f56ff7 exoscale: use the new `utils.WaitForSpecificOrError` function to wait for job to finish
Instead of using a custom loop, use the newly introduced
`utils.WaitForSpecificOrError` function. Beware that on success, we use
the successful response to get the VM object (outside the loop).

Signed-off-by: Vincent Bernat <Vincent.Bernat@exoscale.ch>
2015-06-03 09:09:07 +02:00
Vincent Bernat 2a60a4ea32 exoscale: ensure we sleep a bit while waiting for the VM to be ready
Otherwise, the timeout is reached far too soon: instead of waiting for
the VM for two minutes, we wait only for a couple of seconds.

Signed-off-by: Vincent Bernat <Vincent.Bernat@exoscale.ch>
2015-06-03 09:09:07 +02:00
Vincent Bernat a6c58534ca exoscale: add the appropriate port to make Swarm work
Signed-off-by: Vincent Bernat <Vincent.Bernat@exoscale.ch>
2015-06-02 11:44:18 +02:00
Jan Broer bbbaa8952e exoscale: fixed 2 mins wait loop on failed operation
Signed-off-by: Jan Broer <janeczku@yahoo.de>
2015-05-23 06:09:01 +02:00
Evan Hazlett 19d3bdd389 Merge pull request #1208 from exoscale/fix/exoscale-ssh-keypair
exoscale: destroy the SSH keypair when removing the machine
2015-05-22 09:58:59 -04:00
Evan Hazlett f82032b28d remove provider
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2015-05-21 10:41:03 -04:00
Vincent Bernat d05a889c96 exoscale: simplify if/err pattern
Compact the if/err forms that can be compacted.

Signed-off-by: Vincent Bernat <Vincent.Bernat@exoscale.ch>
2015-05-21 14:34:42 +02:00
Vincent Bernat b772e66394 exoscale: destroy the SSH keypair when removing the machine
Otherwise, when recreating a machine with the same name, we would get an
error about this SSH keypair already existing.

To avoid any confusion, let's say that machine will handle all keypairs
and the user cannot provide its own. Therefore, move the keypairs into
their own "namespace" and remove the option to specify a keypair.

Signed-off-by: Vincent Bernat <Vincent.Bernat@exoscale.ch>
2015-05-21 14:34:42 +02: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