MCPcopy Index your code
hub / github.com/docker/docker-py / _check_api_features

Function _check_api_features

docker/api/service.py:5–96  ·  view source on GitHub ↗
(version, task_template, update_config, endpoint_spec,
                        rollback_config)

Source from the content-addressed store, hash-verified

3
4
5def _check_api_features(version, task_template, update_config, endpoint_spec,
6 rollback_config):
7
8 def raise_version_error(param, min_version):
9 raise errors.InvalidVersion(
10 f'{param} is not supported in API version < {min_version}'
11 )
12
13 if update_config is not None:
14 if utils.version_lt(version, '1.25'):
15 if 'MaxFailureRatio' in update_config:
16 raise_version_error('UpdateConfig.max_failure_ratio', '1.25')
17 if 'Monitor' in update_config:
18 raise_version_error('UpdateConfig.monitor', '1.25')
19
20 if utils.version_lt(version, '1.28'):
21 if update_config.get('FailureAction') == 'rollback':
22 raise_version_error(
23 'UpdateConfig.failure_action rollback', '1.28'
24 )
25
26 if utils.version_lt(version, '1.29'):
27 if 'Order' in update_config:
28 raise_version_error('UpdateConfig.order', '1.29')
29
30 if rollback_config is not None:
31 if utils.version_lt(version, '1.28'):
32 raise_version_error('rollback_config', '1.28')
33
34 if utils.version_lt(version, '1.29'):
35 if 'Order' in update_config:
36 raise_version_error('RollbackConfig.order', '1.29')
37
38 if endpoint_spec is not None:
39 if utils.version_lt(version, '1.32') and 'Ports' in endpoint_spec:
40 if any(p.get('PublishMode') for p in endpoint_spec['Ports']):
41 raise_version_error('EndpointSpec.Ports[].mode', '1.32')
42
43 if task_template is not None:
44 if 'ForceUpdate' in task_template and utils.version_lt(
45 version, '1.25'):
46 raise_version_error('force_update', '1.25')
47
48 if task_template.get('Placement'):
49 if utils.version_lt(version, '1.30'):
50 if task_template['Placement'].get('Platforms'):
51 raise_version_error('Placement.platforms', '1.30')
52 if utils.version_lt(version, '1.27'):
53 if task_template['Placement'].get('Preferences'):
54 raise_version_error('Placement.preferences', '1.27')
55
56 if task_template.get('ContainerSpec'):
57 container_spec = task_template.get('ContainerSpec')
58
59 if utils.version_lt(version, '1.25'):
60 if container_spec.get('TTY'):
61 raise_version_error('ContainerSpec.tty', '1.25')
62 if container_spec.get('Hostname') is not None:

Callers 2

create_serviceMethod · 0.85
update_serviceMethod · 0.85

Calls 2

raise_version_errorFunction · 0.85
getMethod · 0.45

Tested by

no test coverage detected