Kaydet (Commit) a66c8924 authored tarafından Viktor Adam's avatar Viktor Adam

Renaming new argument

Signed-off-by: 's avatarViktor Adam <rycus86@gmail.com>
üst 828b865b
......@@ -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']
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment