diff options
| author | Joffrey F <joffrey@docker.com> | 2018-01-31 12:29:26 -0800 |
|---|---|---|
| committer | Joffrey F <joffrey@docker.com> | 2018-01-31 12:42:11 -0800 |
| commit | 5347c168d022836bd19f63c5527c59169ae22f53 (patch) | |
| tree | a89da7f120f21332ab645995d97de70fc594d056 /docker/api | |
| parent | 0750337f6a77bdfb46579184ac4950a212e5d048 (diff) | |
| download | docker-py-1878-publishmode.tar.gz | |
Add support for publish mode for endpointspec ports1878-publishmode
Signed-off-by: Joffrey F <joffrey@docker.com>
Diffstat (limited to 'docker/api')
| -rw-r--r-- | docker/api/service.py | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/docker/api/service.py b/docker/api/service.py index 4f7123e..051d34f 100644 --- a/docker/api/service.py +++ b/docker/api/service.py @@ -3,7 +3,7 @@ from .. import auth, errors, utils from ..types import ServiceMode -def _check_api_features(version, task_template, update_config): +def _check_api_features(version, task_template, update_config, endpoint_spec): def raise_version_error(param, min_version): raise errors.InvalidVersion( @@ -23,6 +23,11 @@ def _check_api_features(version, task_template, update_config): if 'Order' in update_config: raise_version_error('UpdateConfig.order', '1.29') + if endpoint_spec is not None: + if utils.version_lt(version, '1.32') and 'Ports' in endpoint_spec: + if any(p.get('PublishMode') for p in endpoint_spec['Ports']): + raise_version_error('EndpointSpec.Ports[].mode', '1.32') + if task_template is not None: if 'ForceUpdate' in task_template and utils.version_lt( version, '1.25'): @@ -125,7 +130,9 @@ class ServiceApiMixin(object): ) endpoint_spec = endpoint_config - _check_api_features(self._version, task_template, update_config) + _check_api_features( + self._version, task_template, update_config, endpoint_spec + ) url = self._url('/services/create') headers = {} @@ -370,7 +377,9 @@ class ServiceApiMixin(object): ) endpoint_spec = endpoint_config - _check_api_features(self._version, task_template, update_config) + _check_api_features( + self._version, task_template, update_config, endpoint_spec + ) if fetch_current_spec: inspect_defaults = True |
