2058 Commits

Author SHA1 Message Date
Daniel Nephin
efec2aae6c Fixes #2008 - re-use list_or_dict schema for all the types
At the same time, moves extra_hosts validation to the config module.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-11-23 13:31:58 -05:00
Daniel Nephin
12b82a20ff Move restart spec to the config.types module.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-11-23 13:31:58 -05:00
Daniel Nephin
068edfa313 Move parsing of volumes_from to the last step of config parsing.
Includes creating a new compose.config.types module for all the domain objects.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-11-23 13:31:58 -05:00
Daniel Nephin
c9ca5e86b0 Remove project name validation
project name is already normalized to a valid name before creating a service.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-11-23 13:30:54 -05:00
Aanand Prasad
83ddec8df7 Merge pull request #2439 from solarce/sol-matrix-trusty-fix
Fixing matrix include so `os: linux` goes to trusty
2015-11-23 18:01:22 +00:00
Aanand Prasad
665de9a494 Merge pull request #2436 from dnephin/reduce_cyclomatic_complexity
Reduce cyclomatic complexity
2015-11-23 17:51:54 +00:00
Daniel Nephin
b4edf0c454 Move parallel_execute to a new module.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-11-23 11:34:48 -05:00
Aanand Prasad
aafacd3495 Merge pull request #2418 from dnephin/fix_env_with_extends
Fix env_file and environment when used with extends
2015-11-23 14:48:04 +00:00
Brandon Burton
13081d4516 Fixing matrix include so os: linux goes to trusty
Signed-off-by: Brandon Burton <brandon@inatree.org>
2015-11-20 16:07:37 -08:00
Daniel Nephin
64447879d2 Reduce complexity of merge_service_dicts
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-11-20 17:09:55 -05:00
Daniel Nephin
d1adbb9b25 Refactor parallel_execute.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-11-20 17:09:51 -05:00
Daniel Nephin
c4096525c2 Merge pull request #2364 from dnephin/handle_signals_properly
Handle SIGTERM/SIGINT properly for up and run
2015-11-20 11:58:04 -05:00
Daniel Nephin
8bc84c74e7 Merge pull request #2417 from dnephin/inlude_git_sha_in_version
Add the git sha to version output
2015-11-20 11:39:38 -05:00
Daniel Nephin
331450dace Merge pull request #2390 from dnephin/fix_extra_warnings_on_masked_volumes
Fix extra warnings on masked volumes
2015-11-20 11:37:54 -05:00
Daniel Nephin
91fb6156c6 Merge pull request #2393 from seguins/1814-restart-stopped-containers
Fix restart with stopped containers.
2015-11-20 11:35:24 -05:00
Daniel Nephin
46446111e5 Merge pull request #2400 from dnephin/fix_stream_with_empty_object
Fix a bug in progress_stream when an `ADD <url>` was used
2015-11-20 11:33:45 -05:00
Joffrey F
dd1a2b36fa Merge pull request #2389 from hypriot/use-uname-for-target
Use uname to build target name for different platforms
2015-11-19 10:36:33 -08:00
Joffrey F
449cdcc966 Merge pull request #2420 from simonvanderveldt/fix-script-runsh-env-vars
run.sh script: Also pass DOCKER_TLS_VERIFY and DOCKER_CERT_PATH env vars to compose container
2015-11-19 10:35:28 -08:00
Daniel Nephin
21a72e350b Merge pull request #2413 from SvenDowideit/stop-docs-validation-errors
2 small changes to clear up docs-validation complaints
2015-11-19 12:52:43 -05:00
Sven Dowideit
acf31181e8 Some small changes to clear up docs-validation complaints
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2015-11-19 13:35:09 +10:00
Daniel Nephin
1e8f76767f Fix env_file and environment when used with extends.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-11-18 16:07:11 -05:00
Daniel Nephin
c78c32c2e8 Fixes #2398 - the build progress stream can contain empty json objects.
Previously these empty objects would hit a bug in splitting objects causing it crash.
With this fix the empty objects are returned properly.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-11-18 16:04:41 -05:00
Simon van der Veldt
efbfa9e38f run.sh script: Also pass DOCKER_TLS_VERIFY and DOCKER_CERT_PATH
env vars to compose container

Signed-off-by: Simon van der Veldt <simon.vanderveldt@gmail.com>
2015-11-18 21:40:16 +01:00
Daniel Nephin
d4b9845201 Add the git sha to version output
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-11-18 13:21:14 -05:00
Daniel Nephin
2f20dfe508 Merge pull request #2409 from dnephin/fix_the_build
Fix texttable dep. 0.8.2 was removed from pypi.
2015-11-17 20:06:40 -05:00
Daniel Nephin
265828f4eb Fix texttable dep. 0.8.2 was removed from pypi.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-11-17 18:36:58 -05:00
Stéphane Seguin
61f91ebff7 Fix restart with stopped containers.
Fixes #1814

Signed-off-by: Stéphane Seguin <stephseguin93@gmail.com>
2015-11-14 12:23:23 +01:00
Daniel Nephin
e1308a8329 Fix extra warnings on masked volumes.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-11-13 10:49:17 -05:00
Stefan Scherer
c99f2f8efd Use uname to build target name for different platforms
Signed-off-by: Stefan Scherer <scherer_stefan@icloud.com>
2015-11-13 08:33:51 +01:00
Daniel Nephin
6236bb0019 Handle both SIGINT and SIGTERM for docker-compose run.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-11-12 17:41:44 -05:00
Daniel Nephin
ea4230e7a2 Handle both SIGINT and SIGTERM for docker-compose up.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-11-12 17:41:44 -05:00
Daniel Nephin
9f6a5a964a Merge pull request #2355 from dnephin/refactor_handle_error
Refactor process_error and include a filename as part of the validation error messages
2015-11-12 15:01:32 -05:00
Daniel Nephin
9c305ac10f Remove name field from the list of ALLOWED_KEYS
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-11-12 13:26:13 -05:00
Daniel Nephin
589755d034 Inclide the filename in validation errors.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-11-12 12:44:45 -05:00
Daniel Nephin
fa96484d28 Refactor process_errors into smaller functions
So that it passed new max-complexity requirement

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-11-12 12:44:24 -05:00
Daniel Nephin
f7d8087694 Add ids to config schemas
Also enforce a max complexity for functions and add some new tests for config.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-11-12 12:40:36 -05:00
Joffrey F
0a35fd93cd Merge pull request #2373 from shin-/2370-env_vars_with_dashes
Allow dashes in environment variable names
2015-11-11 13:20:22 -08:00
Joffrey F
d6b44905f2 Add test for environment variable dashes support
Signed-off-by: Joffrey F <joffrey@docker.com>
2015-11-11 12:52:30 -08:00
Joffrey F
513dfda218 Allow dashes in environment variable names
See http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html
Environment variable names used by the utilities in the Shell and
Utilities volume of POSIX.1-2008 consist solely of uppercase letters,
digits, and the <underscore> ( '_' ) from the characters defined in
Portable Character Set and do not begin with a digit. Other characters may
be permitted by an implementation; applications shall tolerate the
presence of such names.

Signed-off-by: Joffrey F <joffrey@docker.com>
2015-11-11 12:45:02 -08:00
Daniel Nephin
a746d673b1 Merge pull request #2350 from dnephin/remove_name_from_schema
Remove name field from the config schema
2015-11-11 15:43:03 -05:00
Daniel Nephin
76f3c9c739 Merge pull request #2349 from dnephin/validate_all_files
Validate all files before merging them
2015-11-11 15:27:47 -05:00
Daniel Nephin
08bd2a318f Merge pull request #2371 from shin-/yvespp-master
Removed unneeded newlines on docker-compose pull with no tty (#2311 update)
2015-11-11 15:20:31 -05:00
Joffrey F
c573fcc70a Reorganize conditional branches to improve readability
Signed-off-by: Joffrey F <joffrey@docker.com>
2015-11-11 11:21:24 -08:00
Yves Peter
b8b4c84573 Fixes #1490
progress_stream would print a lot of new lines on "docker-compose pull" if there's no tty.

Signed-off-by: Yves Peter <ypdraw@gmail.com>
2015-11-11 11:20:59 -08:00
Aanand Prasad
2063b39868 Merge pull request #2336 from dnephin/warn_on_volume_masking
Add a warning when the host volume in the compose file is masked by a data volume
2015-11-11 17:21:29 +00:00
Daniel Nephin
19b2c41c7e Add a test for invalid field 'name', and fix an existing test for invalid service names.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-11-11 11:00:11 -05:00
Daniel Nephin
1f7faadc77 Remove name from config schema.
Refactors config validation of a service to use a ServiceConfig data object.
Instead of passing around a bunch of related scalars, we can use the
ServiceConfig object as a parameter to most of the service validation functions.

This allows for a fix to the config schema, where the name is a field in the
schema, but not actually in the configuration. My passing the name around as
part of the ServiceConfig object, we don't need to add it to the config options.
Fixes #2299

validate_against_service_schema() is moved from a conditional branch in
ServiceExtendsResolver() to happen as one of the last steps after all
configuration is merged. This schema only contains constraints which only need
to be true at the very end of merging.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-11-11 11:00:11 -05:00
Daniel Nephin
5e97b806d5 Fix a bug in ExtendsResolver where the service name of the extended service was wrong.
This bug can be seen by the change to the test case. When the extended service
uses a different name, the error was reported incorrectly.

By fixing this bug we can simplify self.signature and self.detect_cycles to
always use self.service_name.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-11-11 10:58:07 -05:00
Daniel Nephin
a92d86308f Rename ServiceLoader to ServiceExtendsResolver
ServiceLoader has evolved to be not really all that related to "loading" a
service. It's responsibility is more to do with handling the `extends`
field, which is only part of loading.  The class and its primary method
(make_service_dict()) were renamed to better reflect their responsibility.

As part of that change process_container_options() was removed from
make_service_dict() and renamed to process_service().  It contains logic for
handling the non-extends options.

This change allows us to remove the hacks from testcase.py and only call
the functions we need to format a service dict correctly for integration tests.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-11-11 10:58:07 -05:00
Daniel Nephin
98ad5a05e4 Validate additional files before merging them.
Consolidates all the top level config handling into `process_config_file` which
is now used for both files and merge sources.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-11-11 10:56:15 -05:00