Skip to content

Commit d7772b7

Browse files
author
Ulysses Souza
authored
Merge pull request #2234 from hannseman/placement-preference-tuples
Make PlacementPreference build correct context
2 parents 26f9e4b + d429a82 commit d7772b7

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

docker/types/services.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -692,7 +692,7 @@ def __init__(self, strategy, descriptor):
692692
'PlacementPreference strategy value is invalid ({}):'
693693
' must be "spread".'.format(strategy)
694694
)
695-
self['SpreadOver'] = descriptor
695+
self['Spread'] = {'SpreadDescriptor': descriptor}
696696

697697

698698
class DNSConfig(dict):

tests/integration/api_service_test.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -427,6 +427,21 @@ def test_create_service_with_placement_preferences(self):
427427
assert 'Placement' in svc_info['Spec']['TaskTemplate']
428428
assert svc_info['Spec']['TaskTemplate']['Placement'] == placemt
429429

430+
@requires_api_version('1.27')
431+
def test_create_service_with_placement_preferences_tuple(self):
432+
container_spec = docker.types.ContainerSpec(BUSYBOX, ['true'])
433+
placemt = docker.types.Placement(preferences=(
434+
('spread', 'com.dockerpy.test'),
435+
))
436+
task_tmpl = docker.types.TaskTemplate(
437+
container_spec, placement=placemt
438+
)
439+
name = self.get_service_name()
440+
svc_id = self.client.create_service(task_tmpl, name=name)
441+
svc_info = self.client.inspect_service(svc_id)
442+
assert 'Placement' in svc_info['Spec']['TaskTemplate']
443+
assert svc_info['Spec']['TaskTemplate']['Placement'] == placemt
444+
430445
def test_create_service_with_endpoint_spec(self):
431446
container_spec = docker.types.ContainerSpec(BUSYBOX, ['true'])
432447
task_tmpl = docker.types.TaskTemplate(container_spec)

0 commit comments

Comments
 (0)