Commit Graph

199 Commits

Author SHA1 Message Date
Ben Firshman 05e15e27ef Use sys.exit instead of global 2014-02-19 22:42:21 +00:00
Ben Firshman d368e2fca9 Ship 0.2.2 2014-02-17 21:37:31 +00:00
Ben Firshman b9c8e3e057 Fix scale not binding ports 2014-02-17 21:33:05 +00:00
Ben Firshman 4a6897ef3b Merge pull request #91 from barnybug/master
Implement topological sort using Cormen/Tarjan algorithm to handle a->b->c dependencies and detect a->b->c->a cycles.
2014-02-12 19:39:08 +00:00
Aanand Prasad fbff8983e4 Merge pull request #83 from dustinlacewell/print-logs-during-attach
Tell fig up to print logs before attaching
2014-02-12 11:35:24 -08:00
Barnaby Gray 6431d52a2e Implement topological sort using Cormen/Tarjan algorithm to handle a->b->c dependencies and detect a->b->c->a cycles. 2014-02-12 09:09:55 +00:00
Ben Firshman 4723345473 Stop projects in reverse order to starting 2014-02-09 16:01:13 -08:00
Dustin Lacewell 511a9beede Tell fig up to print logs before attaching 2014-02-05 17:19:18 -08:00
Aanand Prasad 6bad9484be Ship 0.2.1 2014-02-04 18:14:19 -08:00
Ben Firshman d52f73b29a Merge pull request #79 from orchardup/strict-config
Throw an error if you specify an unrecognised option in `fig.yml`
2014-02-04 18:10:42 -08:00
Aanand Prasad edf8f14ac0 Throw an error if you specify an unrecognised option in `fig.yml`
Closes #27.
2014-02-04 17:46:04 -08:00
Aanand Prasad 2b89494405 Fix Ubuntu check - forgot to actually inspect the distro 2014-02-04 15:31:05 -08:00
Aanand Prasad 2bac1c10b0 Show installation instructions if it looks like Docker isn't installed 2014-02-04 15:19:50 -08:00
Aanand Prasad 5126649de4 Friendlier connection error for docker-osx users 2014-02-04 14:42:55 -08:00
Ben Firshman f94ce7767c Ship 0.2.0 2014-01-31 10:52:57 +00:00
Ben Firshman 62607f4f04 Merge pull request #67 from orchardup/link-services-to-themselves
Link services to themselves
2014-01-31 02:46:52 -08:00
Ben Firshman e4e9f0bc19 Link services to themselves
E.g. `fig run db ...` will be able to access the db service.
2014-01-30 13:11:23 +00:00
Cameron Maske ae7573b9b8 Fix for #48.
Rework of how services are sorted based on dependencies using a topological sort.
Includes error handling to detect circular/self imports (should raise a DependecyError).
Added in logging to the CLI to log out any DependencyErrors.
Removed the compact module as it is no longer used.
2014-01-29 18:38:25 +00:00
Ben Firshman 21837ac132 Update docker-py
From 2014572941
2014-01-28 14:51:19 +00:00
Ben Firshman 303e0cfd86 Update docker-py
From b79fee71ce
2014-01-28 13:34:40 +00:00
Ben Firshman 8b75f7c7d3 Merge pull request #58 from mrchrisadams/load_yaml_as_well_as_yml
Support loading in Figfiles with .yaml extension
2014-01-28 03:35:25 -08:00
Chris Adams 239da2ef69 Add missing return value for filename check
Oh my, how embarrassing.
2014-01-28 09:51:33 +00:00
Chris Adams 1d18d747a5 Support loading in Figfiles with .yaml extension
Add basic boilerplate text - feel free to change
2014-01-28 00:43:23 +00:00
Ben Firshman 5035a10cbe Ship 0.1.4 2014-01-27 17:57:02 +00:00
Ben Firshman 3e7e6e7656 Add link alias without project name
REDIS_1_PORT_6379_TCP_ADDR instead of
FIGTEST_REDIS_1_PORT_6379_TCP_ADDR.

Ref #37
2014-01-27 15:32:16 +00:00
Ben Firshman 1bab14213d Update docker-py
From 0a9512d008
2014-01-27 15:29:31 +00:00
Ben Firshman 33aada05a4 Bump version to 0.1.3 2014-01-23 11:58:48 +00:00
Aanand Prasad e8472be6d5 Fig bug in split_buffer where input was being discarded
Also, write some tests for it.
2014-01-22 17:44:04 +00:00
Aanand Prasad df9f66d437 Allow ports to be specified in '1234/tcp' format 2014-01-22 17:01:10 +00:00
Aanand Prasad ae67d55bf2 Fix bug where too many '/tcp' suffixes were added to port config 2014-01-22 16:52:42 +00:00
Ben Firshman deb7f3c5b6 Bump to version 0.1.2 2014-01-22 13:37:37 +00:00
Aanand Prasad 65071aafb0 Make sure attach() is called as soon as LogPrinter is initialized
Fixes #35.
2014-01-22 13:12:51 +00:00
Aanand Prasad 977ec7c941 Remove unused import 2014-01-20 19:25:28 +00:00
Aanand Prasad 40d04a076c Fix lag when using cursor keys in an interactive 'fig run' 2014-01-20 19:23:50 +00:00
Ben Firshman 8773bad99a Merge pull request #34 from orchardup/better-tty-handling-for-fig-run
Add option to disable pseudo-tty on fig run
2014-01-20 10:19:13 -08:00
Aanand Prasad 084db337a0 Update docker-py
Brought in changes from https://github.com/dotcloud/docker-py/pull/145
2014-01-20 18:09:25 +00:00
Ben Firshman 7e2d86c510 Use Container.create to recreate containers
self.create_container might do unexpected things.
2014-01-20 16:10:54 +00:00
Aanand Prasad 405079f744 Use raw socket in 'fig run', simplify _attach_to_container 2014-01-20 15:52:07 +00:00
Ben Firshman fc1bbb45b1 Add option to disable pseudo-tty on fig run
Also disable tty if stdin is not a tty.
2014-01-19 20:33:06 +00:00
Cameron Maske 62bba1684b Updated recreate_containers to attempt to base intermediate container's the previous container's image.
Added in additional functionality to reset any entrypoints for the intermediate container and pull/retry handling if the image does not exist.
Updated test coverage to check if an container is recreated with an entrypoint it is handled correctly.
2014-01-19 18:40:21 +00:00
Ben Firshman 07f3c78369 Update docker-py
From 4bc5d27e51
2014-01-19 16:50:08 +00:00
Ben Firshman b428988ef6 Bump to version 0.1.1 2014-01-17 19:14:48 +00:00
Aanand Prasad c6e19e34f7 Fix external port config
When exposing a port externally, it seems Docker only actually exposes it
if you specify the *internal* port as `xxxx/tcp`. So add that on if it's
not there.
2014-01-17 18:01:27 +00:00
Aanand Prasad 74fb400fef Version 0.1.0 2014-01-16 18:18:01 +00:00
Ben Firshman 56c6efdfce Add scale command
Closes #9
2014-01-16 18:09:46 +00:00
Ben Firshman 8ed86ed551 Add number to container 2014-01-16 18:05:59 +00:00
Aanand Prasad 9bd54d7be2 Merge pull request #19 from orchardup/use-docker-host-variable
Use DOCKER_HOST environment variable to find Docker daemon
2014-01-16 09:03:37 -08:00
Aanand Prasad 5c8fac5993 Merge pull request #18 from orchardup/shorten-long-commands-in-ps
Shorten long commands in ps
2014-01-16 08:47:25 -08:00
Aanand Prasad 3e2fd6a2a1 Use DOCKER_HOST environment variable to find Docker daemon
Removed all "smart" connection logic. Fig either uses the DOCKER_HOST
environment variable if it's present, or passes `None` to docker-py,
which does the "right thing" (i.e. falls back to the Unix socket).

This means we no longer know at URL-deciding time whether we can connect
to the Docker daemon, so we wrap `dispatch` in a `try/except` which
catches `requests.exceptions.ConnectionError`.
2014-01-16 16:40:55 +00:00
Aanand Prasad af1b0ed088 Account for length of the ellipsis string when truncating commands 2014-01-16 14:07:17 +00:00
Aanand Prasad feafea2c6d LogPrinter uses regular `attach()`, not websocket
Fixes #7.
2014-01-16 14:04:10 +00:00
Ben Firshman c4f5ed839f Shorten long commands in ps 2014-01-16 14:02:52 +00:00
Ben Firshman b4c905dc83 Merge pull request #14 from orchardup/vendor-docker-py
Vendor docker-py
2014-01-16 05:49:15 -08:00
Aanand Prasad 804e2cdcb1 Merge pull request #16 from orchardup/add-help-command
Add help command
2014-01-16 05:40:48 -08:00
Aanand Prasad 21528f08d4 Vendor docker-py
From 9dc03c5737
2014-01-16 13:30:01 +00:00
Ben Firshman b1e7f548f4 Add help command 2014-01-16 13:26:25 +00:00
Ben Firshman cdcea98290 Copy readme commands docs to CLI docstrings 2014-01-16 13:17:00 +00:00
Aanand Prasad 8c583d1bb2 Quieter log output when recreating
Moved log stuff to Service, which I think makes more sense anyway.
Maybe.
2014-01-16 12:32:16 +00:00
Aanand Prasad ea4753c49a Use an anonymous intermediate container so that when recreating containers, suffixes always start from 1 2014-01-16 12:32:15 +00:00
Aanand Prasad 3956d85a8c Refactor recreate_containers() in preparation for smart name-preserving logic 2014-01-16 12:32:15 +00:00
Aanand Prasad 8a0071d9c1 Reduce stop() timeout when recreating containers 2014-01-16 12:32:15 +00:00
Aanand Prasad 5db6c9f51b Rework 'fig up' to use recreate_containers() 2014-01-16 12:32:15 +00:00
Aanand Prasad f5f9357736 Remove project.create_containers(), revamp project.recreate_containers()
`recreate_containers` now returns two lists of old+new containers, along
with their services.
2014-01-16 12:32:15 +00:00
Aanand Prasad bdc6b47e1f service.recreate_containers() no longer removes the old containers
We need to keep them around until the new ones have been started.
2014-01-16 12:32:15 +00:00
Aanand Prasad 3669236aa1 Support volumes in config with an unspecified host path 2014-01-16 12:32:15 +00:00
Ben Firshman 3c5e334d9d Add recreate_containers method to service 2014-01-16 12:32:15 +00:00
Aanand Prasad a8e275a432 Implement UserError __unicode__ method 2014-01-16 12:32:04 +00:00
Ben Firshman 7a1fb3a8d2 Fix ordering of port mapping 2014-01-16 01:54:05 +00:00
Ben Firshman d4000e07a9 Switch order of connection logic so TCP is tried first 2014-01-16 00:58:46 +00:00
Aanand Prasad b92e998929 'fig logs' shows output for stopped containers 2014-01-14 12:42:30 +00:00
Ben Firshman d063f0e00c Add back missing compat module 2014-01-11 14:31:56 +00:00
Aanand Prasad 059d240824 Fix line buffering when there's UTF-8 in a container's output 2014-01-09 16:19:22 +00:00
Aanand Prasad 7a4b69edc0 Remove compat texttable module - breaks on Python 2.7 2014-01-09 15:32:59 +00:00
Aanand Prasad 892677a9d3 Very basic CLI smoke test
See #8.
2014-01-09 15:32:24 +00:00
Christopher Grebs 31f0907732 Add unicode_literals to main module 2014-01-06 17:58:50 +00:00
Christopher Grebs 9bec059cc7 e.explanation a 'str' object 2014-01-06 17:58:50 +00:00
Christopher Grebs f600fa8bf3 More future imports for safety 2014-01-06 17:58:50 +00:00
Christopher Grebs c6e91db32f Add texttable compat module that is py3k compatible 2014-01-06 17:58:50 +00:00
Christopher Grebs b101118d1e Add future import for print function 2014-01-06 17:58:50 +00:00
Christopher Grebs 30ea4508c3 Use print function 2014-01-06 17:58:50 +00:00
Christopher Grebs 3c91315426 Fix exception alias syntax 2014-01-06 17:58:49 +00:00
Christopher Grebs 93b9b6fd9f First version with python3 support.
* Moved requirements*.txt files to proper spec definitions in setup.py
 * Added a new fig.compat module to store some compatibility code
2014-01-06 17:58:49 +00:00
Tom Stuart 490742b892 Emit a friendly error when fig.yml is missing
I keep doing this by accident, so I'd rather not see the stack trace.
2014-01-03 11:59:03 +00:00
Tom Stuart aaf90639a0 Include service name in log message 2014-01-02 23:28:21 +00:00
Tom Stuart 5ba7040df2 Make logger available in project.py 2014-01-02 23:27:47 +00:00
Ben Firshman e0a21e3df4 Bump version to 0.0.2 2014-01-02 21:30:28 +00:00
Ben Firshman 36002f95ed Try connecting to localdocker:4243
See https://github.com/noplay/docker-osx/pull/22
2014-01-02 20:51:35 +00:00
Ben Firshman 9b289b6f3b Stop "fig up" containers gracefully
With double ctrl-c force.
2014-01-02 19:18:08 +00:00
Ben Firshman 6d0702e607 Send log output to stderr 2014-01-02 18:31:00 +00:00
Ben Firshman a39db86651 Add "fig build" command 2014-01-02 15:28:33 +00:00
Ben Firshman 770e78fdce Make usage alphabetical 2014-01-02 15:00:16 +00:00
Aanand Prasad c0676e3fa3 Add confirmation prompt to 'fig rm' 2013-12-31 13:42:58 +00:00
Aanand Prasad d4f3ed1840 Fix 'fig up' behaviour
- For each service, creates a container if there are none (stopped OR
  started)
- Attaches to all containers (unless -d is passed)
- Starts all containers
- On ^C, kills all containers (unless -d is passed)
2013-12-31 13:02:08 +00:00
Aanand Prasad 9ed6538693 Extract docker URL logic, use it in tests as well 2013-12-31 12:37:17 +00:00
Aanand Prasad ff65a3e1b0 Check default socket and localhost:4243 for Docker daemon 2013-12-31 12:18:27 +00:00
Aanand Prasad ebf9bf387c Remove unused import 2013-12-31 11:51:52 +00:00
Ben Firshman 23d6ae867d Add description to main help text 2013-12-20 21:34:27 +00:00
Ben Firshman fb445b3a06 Version 0.0.1 2013-12-20 21:31:00 +00:00
Aanand Prasad 0cafdc9c6c plum -> fig 2013-12-20 20:28:24 +00:00