Commit Graph

323 Commits

Author SHA1 Message Date
Mazz Mosley 42c890796b Use docker.client.create_host_config
create_host_config from docker.utils will be deprecated so that
the new create_host_config has access to the _version so
we can ensure that network_mode only gets set to 'default' by
default if the version is high enough and won't explode.

Signed-off-by: Mazz Mosley <mazz@houseofmnowster.com>
2015-09-17 17:11:00 +01:00
Aanand Prasad 1dabf1c366 Merge pull request #1878 from mnowster/change-default-log-driver-value
Change default `log_driver` value
2015-09-15 17:23:00 +01:00
Mazz Mosley fb96ed113a Stop sending json-file by default
By doing this we were over-riding any of the daemon's defaults.
Instead we can send an empty string which docker-py sends on
and the daemon interprets as, 'json-file' as a default if it
hasn't got any other daemon level config options.

Signed-off-by: Mazz Mosley <mazz@houseofmnowster.com>
2015-09-15 15:47:39 +01:00
Mazz Mosley 4b2fd7699b Relax constraints on key naming for environment
One of the use cases is swarm requires at least : character, so going
from conservative to relaxed.

Signed-off-by: Mazz Mosley <mazz@houseofmnowster.com>
2015-09-15 15:33:30 +01:00
Mazz Mosley 8caeffe27e Log a warning when boolean is found in `environment`
We're going to warn people that allowing a boolean in the environment is
being deprecated, so in a future release we can disallow it. This is to
ensure boolean variables are quoted in strings to ensure they don't get
mis-parsed by YML.

Signed-off-by: Mazz Mosley <mazz@houseofmnowster.com>
2015-09-15 15:33:30 +01:00
Mazz Mosley a594a2ccc2 Disallow booleans in environment
When users were putting true/false/yes/no in the environment key,
the YML parser was converting them into True/False, rather than leaving
them as a string.

This change will force people to put them in quotes, thus ensuring
that the value gets passed through as intended.

Signed-off-by: Mazz Mosley <mazz@houseofmnowster.com>
2015-09-15 15:33:30 +01:00
Mazz Mosley 1007ad0f86 Refactor to simplify _parse_valid_types
Signed-off-by: Mazz Mosley <mazz@houseofmnowster.com>
2015-09-15 14:29:00 +01:00
Mazz Mosley cf7b595385 Improve error messages from oneOf schema errors
oneOf schema ValidationError takes a little more work to parse and
pull out more detail so we can give a better error message back to
the user.

Signed-off-by: Mazz Mosley <mazz@houseofmnowster.com>
2015-09-15 14:29:00 +01:00
Mazz Mosley 418ec5336b Improved messaging for simple type validator
English language is a tricky old thing and I've pulled out the validator type
parsing so that we can prefix our validator types with the correct article,
'an' or 'a'.

Doing a bit of extra hard work to ensure the error message is clear and
well constructed english.

Signed-off-by: Mazz Mosley <mazz@houseofmnowster.com>
2015-09-14 17:23:58 +01:00
Mazz Mosley 32cd404c8c Remove redundant oneOf definitions
For simple definitions where a field can be multiple types, we can
specify the allowed types in an array. It's simpler and clearer.

This is only applicable to *simple* definitions, like number, string, list,
object without any other constraints.

Signed-off-by: Mazz Mosley <mazz@houseofmnowster.com>
2015-09-14 17:23:58 +01:00
Aanand Prasad dbc68ca747 Merge pull request #2018 from dnephin/fix_scale_test
Handle unexpected errors, but don't ignore background threads
2015-09-11 15:42:01 -07:00
Daniel Nephin 61415cd8bc Fixes #1955 - Handle unexpected errors, but don't ignore background threads.
Signed-off-by: Daniel Nephin <dnephin@gmail.com>
2015-09-11 17:41:10 -04:00
Aanand Prasad e9871b084e Merge pull request #2020 from dnephin/fix_compose_with_logs_none
Fix compose up with other log drivers
2015-09-11 11:22:12 -07:00
Aanand Prasad 60701a71dc Merge pull request #2026 from ggtools/validation
Fix type for `tty` & `stdin_open`
2015-09-11 11:14:47 -07:00
Daniel Nephin 7d8ae9aa6d Refactor LogPrinter to make it immutable and remove logic from the constructor.
Signed-off-by: Daniel Nephin <dnephin@gmail.com>
2015-09-11 12:56:56 -04:00
Daniel Nephin 413b76e228 Fix warning message when a container uses a non-json log driver
Signed-off-by: Daniel Nephin <dnephin@gmail.com>
2015-09-11 12:54:27 -04:00
Aanand Prasad 87a50317ad Merge pull request #1954 from nhumrich/master
Allow for user relative paths on EXTEND
2015-09-10 16:35:40 -07:00
Christophe Labouisse e80f0bdf86 Fix type for `tty` & `stdin_open`
Signed-off-by: Christophe Labouisse <christophe@labouisse.org>
2015-09-10 23:49:07 +02:00
Nick H a372275c6e Allow for user relative paths
'~/' in a path currently doesnt work, you get the following error:

[Errno 2] No such file or directory: u'/home/USER/folder/~/some/path/.yml'

Signed-off-by: Nick H <nick.humrich@gmail.com>
2015-09-09 14:54:08 -06:00
Aanand Prasad 9ce30e75df Merge pull request #2016 from mnowster/remove-unique-constraint-for-command
Remove uniqueness constraint for command
2015-09-09 10:05:41 -07:00
Mazz Mosley 4bed5de291 Remove item unique constraint for command
The command value can be a list, which would be a Unix command-line
invocation broken up into individual values, thus needing the ability to
have non unique values.

Signed-off-by: Mazz Mosley <mazz@houseofmnowster.com>
2015-09-09 16:39:06 +01:00
Mazz Mosley 7223d5cee0 Remove mistaken field
detach is a run param, not a config param. Oops, sorry!

Signed-off-by: Mazz Mosley <mazz@houseofmnowster.com>
2015-09-09 16:23:54 +01:00
Aanand Prasad 85709d85d2 Merge pull request #1862 from mrfuxi/costom-container-name-in-logs
Use custom container name in logs
2015-09-08 14:36:28 -07:00
Aanand Prasad f7d86d3194 Merge pull request #1944 from funkyfuture/issue-1921
Adds pause- and unpause-command to docopt's TLC
2015-09-08 14:05:27 -07:00
Aanand Prasad 1c73ff33fe Merge pull request #1990 from shin-/1975-fix
Remove or space out suspension dots after service name
2015-09-08 12:27:39 -07:00
Mazz Mosley 866979c57b Allow entrypoint to be a list or string
Signed-off-by: Mazz Mosley <mazz@houseofmnowster.com>
2015-09-07 17:26:38 +01:00
Karol Duleba d83d6306c9 Use custom container name in logs. Fixes #1851
Signed-off-by: Karol Duleba <mr.fuxi@gmail.com>
2015-09-07 14:03:00 +01:00
Joffrey F 6da7a9194c Remove or space out suspension dots after service name for easier copy-pasting
Signed-off-by: Joffrey F <joffrey@docker.com>
2015-09-04 17:43:12 -07:00
Aanand Prasad 10cb0c921a Merge pull request #1963 from shin-/1923-catch-timeout
Exit gracefully when requests encounter a ReadTimeout exception.
2015-09-04 16:14:32 -07:00
Daniel Nephin 0484e22a84 Add enum34 and use it to create a ConvergenceStrategy enum.
Signed-off-by: Daniel Nephin <dnephin@gmail.com>
2015-09-04 10:45:53 -04:00
Aanand Prasad 6a47fa066e Merge pull request #1960 from dnephin/fix_smart_recreate_when_service_is_removed
Fix config_hash context to properly represent the service
2015-09-03 11:41:30 -07:00
Daniel Nephin db9f577ad6 Extract link names into a function.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-09-03 14:08:44 -04:00
Daniel Nephin 187ad4ce26 Refactor network_mode logic out of Service.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-09-03 13:02:46 -04:00
Daniel Nephin c183e52502 Fixes #1757 - include all service properties in the config_dict()
Signed-off-by: Daniel Nephin <dnephin@gmail.com>
2015-09-03 12:04:38 -04:00
Daniel Nephin 08ba857807 Cleanup some project logic.
Signed-off-by: Daniel Nephin <dnephin@gmail.com>
2015-09-03 12:04:38 -04:00
Daniel Nephin e801981fed Sort config keys
Signed-off-by: Daniel Nephin <dnephin@gmail.com>
2015-09-03 12:04:38 -04:00
Daniel Nephin ef56523883 Make external_links a regular service.option so that it's part of the config hash
Signed-off-by: Daniel Nephin <dnephin@gmail.com>
2015-09-03 12:04:38 -04:00
Mazz Mosley 7326608369 expose array can contain either strings or numbers
Signed-off-by: Mazz Mosley <mazz@houseofmnowster.com>
2015-09-03 16:44:01 +01:00
Aanand Prasad 6baed6c354 Merge pull request #1965 from dnephin/fix_compose_up_attach
Attach to all containers when no service names are specified
2015-09-02 17:37:43 -07:00
Joffrey F f9c7346380 HTTP_TIMEOUT as importable constant for consistency
Signed-off-by: Joffrey F <joffrey@docker.com>
2015-09-02 16:29:19 -07:00
Joffrey F b110bbe9e3 Refined error message when timeout is encountered.
Signed-off-by: Joffrey F <joffrey@docker.com>
2015-09-02 14:31:30 -07:00
Joffrey F e634fe3fd6 Deprecation warning when DOCKER_CLIENT_TIMEOUT is used
Signed-off-by: Joffrey F <joffrey@docker.com>
2015-09-02 14:28:57 -07:00
Daniel Nephin 48466d7d82 Fix #1961 - docker-compose up should attach to all containers with no service names are specified, and add tests.
Signed-off-by: Daniel Nephin <dnephin@gmail.com>
2015-09-02 16:08:18 -04:00
Joffrey F b54b932b54 Exit gracefully when requests encounter a ReadTimeout exception.
Signed-off-by: Joffrey F <joffrey@docker.com>
2015-09-02 11:54:20 -07:00
Mazz Mosley 9b8e404d13 Pass service_name to process_errors
Previously on Buffy... The process_errors was parsing a load of
ValidationErrors that we get back from jsonschema which included
assumptions about the state of the instance we're validating.

Now it's split in two and we're doing field separate to service,
those assumptions don't hold and we can't logically retrieve the
service_name from the error parsing when we're doing service schema
validation, have to explicitly pass this in.

process_errors is high on my list for some future re-factoring to help
make it a bit clearer, smaller state of doing things.

Signed-off-by: Mazz Mosley <mazz@houseofmnowster.com>
2015-09-02 15:42:38 +01:00
Mazz Mosley f51a5431ec Correct some schema field definitions
Now validation is split in two, the integration tests helped
highlight some places where the schema definition was incorrect.

Signed-off-by: Mazz Mosley <mazz@houseofmnowster.com>
2015-09-02 15:42:38 +01:00
Mazz Mosley 9979880c9f Add in volume_driver
I'd missed out this field by accident previously.

Signed-off-by: Mazz Mosley <mazz@houseofmnowster.com>
2015-09-02 15:42:38 +01:00
Mazz Mosley 4b487e3957 Refactor extends back out of __init__
If make_service_dict is our factory function then we'll give it the
responsibility of validation/construction and resolving.

Signed-off-by: Mazz Mosley <mazz@houseofmnowster.com>
2015-09-02 15:42:38 +01:00
Mazz Mosley 9fa6e42f55 process_errors handle both schemas
Now the schema has been split into two, we need to modify the
process_errors function to accomodate.

Previously if an error.path was empty then it meant they were root
errors. Now that service_schema checks after the service has been
resolved, our service name is a key within the dictionary and
so our root error logic check is no longer true.

Signed-off-by: Mazz Mosley <mazz@houseofmnowster.com>
2015-09-02 15:42:38 +01:00
Mazz Mosley 950577d60f Split validation into fields and service
We want to give feedback to the user as soon as possible about the
validity of the config supplied for the services.

When extending a service, we can validate that the fields are
correct against our schema but we must wait until the *end* of
the extends cycle once all of the extended dicts have been merged
into the service dict, to perform the final validation check on the
config to ensure it is a complete valid service.

Doing this before that had happened resulted in false reports of
invalid config, as common config when split out, by itself, is not
a valid service but *is* valid config to be included.

Signed-off-by: Mazz Mosley <mazz@houseofmnowster.com>
2015-09-02 15:42:38 +01:00