mirror of https://github.com/docker/docker-py.git
Fix regression on API < 1.25
Signed-off-by: Viktor Adam <rycus86@gmail.com>
This commit is contained in:
parent
bf5e7702df
commit
e75a03fd6d
|
@ -137,6 +137,8 @@ class ServiceApiMixin(object):
|
||||||
auth_header = auth.get_config_header(self, registry)
|
auth_header = auth.get_config_header(self, registry)
|
||||||
if auth_header:
|
if auth_header:
|
||||||
headers['X-Registry-Auth'] = auth_header
|
headers['X-Registry-Auth'] = auth_header
|
||||||
|
if utils.version_lt(self._version, '1.25'):
|
||||||
|
networks = networks or task_template.pop('Networks', None)
|
||||||
data = {
|
data = {
|
||||||
'Name': name,
|
'Name': name,
|
||||||
'Labels': labels,
|
'Labels': labels,
|
||||||
|
@ -411,7 +413,12 @@ class ServiceApiMixin(object):
|
||||||
|
|
||||||
if networks is not None:
|
if networks is not None:
|
||||||
converted_networks = utils.convert_service_networks(networks)
|
converted_networks = utils.convert_service_networks(networks)
|
||||||
data['TaskTemplate']['Networks'] = converted_networks
|
if utils.version_lt(self._version, '1.25'):
|
||||||
|
data['Networks'] = converted_networks
|
||||||
|
else:
|
||||||
|
data['TaskTemplate']['Networks'] = converted_networks
|
||||||
|
elif utils.version_lt(self._version, '1.25'):
|
||||||
|
data['Networks'] = current.get('Networks')
|
||||||
elif data['TaskTemplate'].get('Networks') is None:
|
elif data['TaskTemplate'].get('Networks') is None:
|
||||||
current_task_template = current.get('TaskTemplate', {})
|
current_task_template = current.get('TaskTemplate', {})
|
||||||
current_networks = current_task_template.get('Networks')
|
current_networks = current_task_template.get('Networks')
|
||||||
|
|
|
@ -179,6 +179,30 @@ class ServiceTest(unittest.TestCase):
|
||||||
service.reload()
|
service.reload()
|
||||||
assert not service.attrs['Spec'].get('Labels')
|
assert not service.attrs['Spec'].get('Labels')
|
||||||
|
|
||||||
|
def test_update_retains_networks(self):
|
||||||
|
client = docker.from_env(version=TEST_API_VERSION)
|
||||||
|
network_name = helpers.random_name()
|
||||||
|
network = client.networks.create(
|
||||||
|
network_name, driver='overlay'
|
||||||
|
)
|
||||||
|
service = client.services.create(
|
||||||
|
# create arguments
|
||||||
|
name=helpers.random_name(),
|
||||||
|
networks=[network.id],
|
||||||
|
# ContainerSpec arguments
|
||||||
|
image="alpine",
|
||||||
|
command="sleep 300"
|
||||||
|
)
|
||||||
|
service.update(
|
||||||
|
# create argument
|
||||||
|
name=service.name,
|
||||||
|
# ContainerSpec argument
|
||||||
|
command="sleep 600"
|
||||||
|
)
|
||||||
|
service.reload()
|
||||||
|
networks = service.attrs['Spec']['TaskTemplate']['Networks']
|
||||||
|
assert networks == [{'Target': network.id}]
|
||||||
|
|
||||||
def test_scale_service(self):
|
def test_scale_service(self):
|
||||||
client = docker.from_env(version=TEST_API_VERSION)
|
client = docker.from_env(version=TEST_API_VERSION)
|
||||||
service = client.services.create(
|
service = client.services.create(
|
||||||
|
|
Loading…
Reference in New Issue