mirror of https://github.com/docker/docker-py.git
Add support for insert_defaults in inspect_service
Signed-off-by: Joffrey F <joffrey@docker.com>
This commit is contained in:
parent
11a260225c
commit
1a4b181344
|
@ -136,12 +136,14 @@ class ServiceApiMixin(object):
|
|||
|
||||
@utils.minimum_version('1.24')
|
||||
@utils.check_resource('service')
|
||||
def inspect_service(self, service):
|
||||
def inspect_service(self, service, insert_defaults=None):
|
||||
"""
|
||||
Return information about a service.
|
||||
|
||||
Args:
|
||||
service (str): Service name or ID
|
||||
service (str): Service name or ID.
|
||||
insert_defaults (boolean): If true, default values will be merged
|
||||
into the service inspect output.
|
||||
|
||||
Returns:
|
||||
``True`` if successful.
|
||||
|
@ -151,7 +153,15 @@ class ServiceApiMixin(object):
|
|||
If the server returns an error.
|
||||
"""
|
||||
url = self._url('/services/{0}', service)
|
||||
return self._result(self._get(url), True)
|
||||
params = {}
|
||||
if insert_defaults is not None:
|
||||
if utils.version_lt(self._version, '1.29'):
|
||||
raise errors.InvalidVersion(
|
||||
'insert_defaults is not supported in API version < 1.29'
|
||||
)
|
||||
params['insertDefaults'] = insert_defaults
|
||||
|
||||
return self._result(self._get(url, params=params), True)
|
||||
|
||||
@utils.minimum_version('1.24')
|
||||
@utils.check_resource('task')
|
||||
|
|
|
@ -177,12 +177,14 @@ class ServiceCollection(Collection):
|
|||
service_id = self.client.api.create_service(**create_kwargs)
|
||||
return self.get(service_id)
|
||||
|
||||
def get(self, service_id):
|
||||
def get(self, service_id, insert_defaults=None):
|
||||
"""
|
||||
Get a service.
|
||||
|
||||
Args:
|
||||
service_id (str): The ID of the service.
|
||||
insert_defaults (boolean): If true, default values will be merged
|
||||
into the output.
|
||||
|
||||
Returns:
|
||||
(:py:class:`Service`): The service.
|
||||
|
@ -192,8 +194,13 @@ class ServiceCollection(Collection):
|
|||
If the service does not exist.
|
||||
:py:class:`docker.errors.APIError`
|
||||
If the server returns an error.
|
||||
:py:class:`docker.errors.InvalidVersion`
|
||||
If one of the arguments is not supported with the current
|
||||
API version.
|
||||
"""
|
||||
return self.prepare_model(self.client.api.inspect_service(service_id))
|
||||
return self.prepare_model(
|
||||
self.client.api.inspect_service(service_id, insert_defaults)
|
||||
)
|
||||
|
||||
def list(self, **kwargs):
|
||||
"""
|
||||
|
|
|
@ -99,6 +99,17 @@ class ServiceTest(BaseAPIIntegrationTest):
|
|||
assert 'ID' in svc_info
|
||||
assert svc_info['ID'] == svc_id['ID']
|
||||
|
||||
@requires_api_version('1.29')
|
||||
def test_inspect_service_insert_defaults(self):
|
||||
svc_name, svc_id = self.create_simple_service()
|
||||
svc_info = self.client.inspect_service(svc_id)
|
||||
svc_info_defaults = self.client.inspect_service(
|
||||
svc_id, insert_defaults=True
|
||||
)
|
||||
assert svc_info != svc_info_defaults
|
||||
assert 'RollbackConfig' in svc_info_defaults['Spec']
|
||||
assert 'RollbackConfig' not in svc_info['Spec']
|
||||
|
||||
def test_remove_service_by_id(self):
|
||||
svc_name, svc_id = self.create_simple_service()
|
||||
assert self.client.remove_service(svc_id)
|
||||
|
|
Loading…
Reference in New Issue