mirror of https://github.com/docker/docker-py.git
Renaming new argument
Signed-off-by: Viktor Adam <rycus86@gmail.com>
This commit is contained in:
parent
828b865bd7
commit
a66c89247a
|
@ -62,6 +62,21 @@ def _check_api_features(version, task_template, update_config):
|
|||
raise_version_error('ContainerSpec.privileges', '1.30')
|
||||
|
||||
|
||||
def _merge_task_template(current, override):
|
||||
merged = current.copy()
|
||||
if override is not None:
|
||||
for ts_key, ts_value in override.items():
|
||||
if ts_key == 'ContainerSpec':
|
||||
if 'ContainerSpec' not in merged:
|
||||
merged['ContainerSpec'] = {}
|
||||
for cs_key, cs_value in override['ContainerSpec'].items():
|
||||
if cs_value is not None:
|
||||
merged['ContainerSpec'][cs_key] = cs_value
|
||||
elif ts_value is not None:
|
||||
merged[ts_key] = ts_value
|
||||
return merged
|
||||
|
||||
|
||||
class ServiceApiMixin(object):
|
||||
@utils.minimum_version('1.24')
|
||||
def create_service(
|
||||
|
@ -306,7 +321,7 @@ class ServiceApiMixin(object):
|
|||
def update_service(self, service, version, task_template=None, name=None,
|
||||
labels=None, mode=None, update_config=None,
|
||||
networks=None, endpoint_config=None,
|
||||
endpoint_spec=None, use_current_spec=False):
|
||||
endpoint_spec=None, fetch_current_spec=False):
|
||||
"""
|
||||
Update a service.
|
||||
|
||||
|
@ -328,8 +343,8 @@ class ServiceApiMixin(object):
|
|||
the service to. Default: ``None``.
|
||||
endpoint_spec (EndpointSpec): Properties that can be configured to
|
||||
access and load balance a service. Default: ``None``.
|
||||
use_current_spec (boolean): Use the undefined settings from the
|
||||
previous specification of the service. Default: ``False``
|
||||
fetch_current_spec (boolean): Use the undefined settings from the
|
||||
current specification of the service. Default: ``False``
|
||||
|
||||
Returns:
|
||||
``True`` if successful.
|
||||
|
@ -347,11 +362,10 @@ class ServiceApiMixin(object):
|
|||
|
||||
_check_api_features(self._version, task_template, update_config)
|
||||
|
||||
if use_current_spec:
|
||||
if fetch_current_spec:
|
||||
inspect_defaults = True
|
||||
if utils.version_lt(self._version, '1.29'):
|
||||
inspect_defaults = None
|
||||
else:
|
||||
inspect_defaults = True
|
||||
current = self.inspect_service(
|
||||
service, insert_defaults=inspect_defaults
|
||||
)['Spec']
|
||||
|
@ -363,15 +377,9 @@ class ServiceApiMixin(object):
|
|||
data = {}
|
||||
headers = {}
|
||||
|
||||
if name is not None:
|
||||
data['Name'] = name
|
||||
else:
|
||||
data['Name'] = current.get('Name')
|
||||
data['Name'] = current.get('Name') if name is None else name
|
||||
|
||||
if labels is not None:
|
||||
data['Labels'] = labels
|
||||
else:
|
||||
data['Labels'] = current.get('Labels')
|
||||
data['Labels'] = current.get('Labels') if labels is None else labels
|
||||
|
||||
if mode is not None:
|
||||
if not isinstance(mode, dict):
|
||||
|
@ -380,7 +388,7 @@ class ServiceApiMixin(object):
|
|||
else:
|
||||
data['Mode'] = current.get('Mode')
|
||||
|
||||
data['TaskTemplate'] = self._merge_task_template(
|
||||
data['TaskTemplate'] = _merge_task_template(
|
||||
current.get('TaskTemplate', {}), task_template
|
||||
)
|
||||
|
||||
|
@ -418,18 +426,3 @@ class ServiceApiMixin(object):
|
|||
)
|
||||
self._raise_for_status(resp)
|
||||
return True
|
||||
|
||||
@staticmethod
|
||||
def _merge_task_template(current, override):
|
||||
merged = current.copy()
|
||||
if override is not None:
|
||||
for ts_key, ts_value in override.items():
|
||||
if ts_key == 'ContainerSpec':
|
||||
if 'ContainerSpec' not in merged:
|
||||
merged['ContainerSpec'] = {}
|
||||
for cs_key, cs_value in override['ContainerSpec'].items():
|
||||
if cs_value is not None:
|
||||
merged['ContainerSpec'][cs_key] = cs_value
|
||||
elif ts_value is not None:
|
||||
merged[ts_key] = ts_value
|
||||
return merged
|
||||
|
|
|
@ -299,10 +299,10 @@ def _get_create_service_kwargs(func_name, kwargs):
|
|||
if 'force_update' in kwargs:
|
||||
task_template_kwargs['force_update'] = kwargs.pop('force_update')
|
||||
|
||||
# use the current spec by default if updating the service
|
||||
# fetch the current spec by default if updating the service
|
||||
# through the model
|
||||
use_current_spec = kwargs.pop('use_current_spec', True)
|
||||
create_kwargs['use_current_spec'] = use_current_spec
|
||||
fetch_current_spec = kwargs.pop('fetch_current_spec', True)
|
||||
create_kwargs['fetch_current_spec'] = fetch_current_spec
|
||||
|
||||
# All kwargs should have been consumed by this point, so raise
|
||||
# error if any are left
|
||||
|
|
|
@ -726,7 +726,7 @@ class ServiceTest(BaseAPIIntegrationTest):
|
|||
|
||||
task_tmpl = docker.types.TaskTemplate(container_spec, force_update=10)
|
||||
self._update_service(
|
||||
svc_id, name, version_index, task_tmpl, use_current_spec=True
|
||||
svc_id, name, version_index, task_tmpl, fetch_current_spec=True
|
||||
)
|
||||
svc_info = self.client.inspect_service(svc_id)
|
||||
new_index = svc_info['Version']['Index']
|
||||
|
@ -753,7 +753,7 @@ class ServiceTest(BaseAPIIntegrationTest):
|
|||
task_tmpl = docker.types.TaskTemplate(container_spec, force_update=10)
|
||||
self._update_service(
|
||||
svc_id, name, version_index, task_tmpl, name=name,
|
||||
use_current_spec=True
|
||||
fetch_current_spec=True
|
||||
)
|
||||
svc_info = self.client.inspect_service(svc_id)
|
||||
new_index = svc_info['Version']['Index']
|
||||
|
@ -781,7 +781,7 @@ class ServiceTest(BaseAPIIntegrationTest):
|
|||
|
||||
self._update_service(
|
||||
svc_id, name, version_index, labels={'force': 'update'},
|
||||
use_current_spec=True
|
||||
fetch_current_spec=True
|
||||
)
|
||||
svc_info = self.client.inspect_service(svc_id)
|
||||
new_index = svc_info['Version']['Index']
|
||||
|
@ -811,7 +811,7 @@ class ServiceTest(BaseAPIIntegrationTest):
|
|||
|
||||
self._update_service(
|
||||
svc_id, name, version_index, labels={'force': 'update'},
|
||||
use_current_spec=True
|
||||
fetch_current_spec=True
|
||||
)
|
||||
svc_info = self.client.inspect_service(svc_id)
|
||||
new_index = svc_info['Version']['Index']
|
||||
|
@ -827,7 +827,7 @@ class ServiceTest(BaseAPIIntegrationTest):
|
|||
)
|
||||
task_tmpl = docker.types.TaskTemplate(container_spec)
|
||||
self._update_service(
|
||||
svc_id, name, new_index, task_tmpl, use_current_spec=True
|
||||
svc_id, name, new_index, task_tmpl, fetch_current_spec=True
|
||||
)
|
||||
svc_info = self.client.inspect_service(svc_id)
|
||||
newer_index = svc_info['Version']['Index']
|
||||
|
@ -858,7 +858,7 @@ class ServiceTest(BaseAPIIntegrationTest):
|
|||
|
||||
self._update_service(
|
||||
svc_id, name, version_index, labels={'force': 'update'},
|
||||
use_current_spec=True
|
||||
fetch_current_spec=True
|
||||
)
|
||||
svc_info = self.client.inspect_service(svc_id)
|
||||
new_index = svc_info['Version']['Index']
|
||||
|
@ -896,7 +896,7 @@ class ServiceTest(BaseAPIIntegrationTest):
|
|||
|
||||
self._update_service(
|
||||
svc_id, name, version_index, labels={'force': 'update'},
|
||||
use_current_spec=True
|
||||
fetch_current_spec=True
|
||||
)
|
||||
svc_info = self.client.inspect_service(svc_id)
|
||||
new_index = svc_info['Version']['Index']
|
||||
|
@ -908,7 +908,7 @@ class ServiceTest(BaseAPIIntegrationTest):
|
|||
|
||||
self._update_service(
|
||||
svc_id, name, new_index, networks=[net1['Id']],
|
||||
use_current_spec=True
|
||||
fetch_current_spec=True
|
||||
)
|
||||
svc_info = self.client.inspect_service(svc_id)
|
||||
assert 'Networks' in svc_info['Spec']['TaskTemplate']
|
||||
|
@ -951,7 +951,7 @@ class ServiceTest(BaseAPIIntegrationTest):
|
|||
|
||||
self._update_service(
|
||||
svc_id, name, version_index, labels={'force': 'update'},
|
||||
use_current_spec=True
|
||||
fetch_current_spec=True
|
||||
)
|
||||
svc_info = self.client.inspect_service(svc_id)
|
||||
new_index = svc_info['Version']['Index']
|
||||
|
@ -1003,7 +1003,7 @@ class ServiceTest(BaseAPIIntegrationTest):
|
|||
version_index = svc_info['Version']['Index']
|
||||
|
||||
self._update_service(
|
||||
svc_id, name, version_index, task_tmpl, use_current_spec=True
|
||||
svc_id, name, version_index, task_tmpl, fetch_current_spec=True
|
||||
)
|
||||
svc_info = self.client.inspect_service(svc_id)
|
||||
new_index = svc_info['Version']['Index']
|
||||
|
@ -1030,7 +1030,7 @@ class ServiceTest(BaseAPIIntegrationTest):
|
|||
version_index = svc_info['Version']['Index']
|
||||
|
||||
self._update_service(
|
||||
svc_id, name, version_index, labels={}, use_current_spec=True
|
||||
svc_id, name, version_index, labels={}, fetch_current_spec=True
|
||||
)
|
||||
svc_info = self.client.inspect_service(svc_id)
|
||||
new_index = svc_info['Version']['Index']
|
||||
|
@ -1061,7 +1061,7 @@ class ServiceTest(BaseAPIIntegrationTest):
|
|||
)
|
||||
task_tmpl = docker.types.TaskTemplate(container_spec)
|
||||
self._update_service(
|
||||
svc_id, name, version_index, task_tmpl, use_current_spec=True
|
||||
svc_id, name, version_index, task_tmpl, fetch_current_spec=True
|
||||
)
|
||||
svc_info = self.client.inspect_service(svc_id)
|
||||
new_index = svc_info['Version']['Index']
|
||||
|
@ -1100,7 +1100,7 @@ class ServiceTest(BaseAPIIntegrationTest):
|
|||
task_tmpl = docker.types.TaskTemplate(container_spec)
|
||||
self._update_service(
|
||||
svc_id, name, version_index, task_tmpl, name=name,
|
||||
networks=[net2['Id']], use_current_spec=True
|
||||
networks=[net2['Id']], fetch_current_spec=True
|
||||
)
|
||||
svc_info = self.client.inspect_service(svc_id)
|
||||
task_template = svc_info['Spec']['TaskTemplate']
|
||||
|
@ -1114,7 +1114,7 @@ class ServiceTest(BaseAPIIntegrationTest):
|
|||
|
||||
self._update_service(
|
||||
svc_id, name, new_index, name=name, networks=[net1['Id']],
|
||||
use_current_spec=True
|
||||
fetch_current_spec=True
|
||||
)
|
||||
svc_info = self.client.inspect_service(svc_id)
|
||||
task_template = svc_info['Spec']['TaskTemplate']
|
||||
|
@ -1136,7 +1136,7 @@ class ServiceTest(BaseAPIIntegrationTest):
|
|||
)
|
||||
self._update_service(
|
||||
svc_id, name, new_index, task_tmpl, name=name,
|
||||
use_current_spec=True
|
||||
fetch_current_spec=True
|
||||
)
|
||||
svc_info = self.client.inspect_service(svc_id)
|
||||
task_template = svc_info['Spec']['TaskTemplate']
|
||||
|
|
Loading…
Reference in New Issue