Skip to content

Commit 828b865

Browse files
committed
Fix resetting ContainerSpec properties to None
Signed-off-by: Viktor Adam <[email protected]>
1 parent c78e73b commit 828b865

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

docker/api/service.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -428,7 +428,8 @@ def _merge_task_template(current, override):
428428
if 'ContainerSpec' not in merged:
429429
merged['ContainerSpec'] = {}
430430
for cs_key, cs_value in override['ContainerSpec'].items():
431-
merged['ContainerSpec'][cs_key] = cs_value
432-
else:
431+
if cs_value is not None:
432+
merged['ContainerSpec'][cs_key] = cs_value
433+
elif ts_value is not None:
433434
merged[ts_key] = ts_value
434435
return merged

tests/integration/models_services_test.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -193,15 +193,15 @@ def test_scale_service(self):
193193
tasks = service.tasks()
194194
assert len(tasks) == 1
195195
service.update(
196-
# create argument
197-
name=service.name,
198196
mode=docker.types.ServiceMode('replicated', replicas=2),
199-
# ContainerSpec argument
200-
command="sleep 600"
201197
)
202198
while len(tasks) == 1:
203199
tasks = service.tasks()
204200
assert len(tasks) >= 2
201+
# check that the container spec is not overridden with None
202+
service.reload()
203+
spec = service.attrs['Spec']['TaskTemplate']['ContainerSpec']
204+
assert spec.get('Command') == ['sleep', '300']
205205

206206
@helpers.requires_api_version('1.25')
207207
def test_restart_service(self):

0 commit comments

Comments
 (0)