diff options
author | Joffrey F <f.joffrey@gmail.com> | 2017-05-17 15:25:40 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-17 15:25:40 -0700 |
commit | fb16d1454402746d28e04367de41685b2b5014c1 (patch) | |
tree | fa70056269b5cfb2d66710e7f37797b8b4e5c4d2 /tests | |
parent | 7af7e1b73adbbe9385ee052ebd3755a1a62652f2 (diff) | |
parent | 9cc021dfa684ab1a614d473e78f9c4c0fc960585 (diff) | |
download | docker-py-fb16d1454402746d28e04367de41685b2b5014c1.tar.gz |
Merge pull request #1615 from docker/service-placement
Add support for placement preferences and platforms in TaskTemplate
Diffstat (limited to 'tests')
-rw-r--r-- | tests/integration/api_service_test.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/integration/api_service_test.py b/tests/integration/api_service_test.py index 914e516..8ac852d 100644 --- a/tests/integration/api_service_test.py +++ b/tests/integration/api_service_test.py @@ -270,6 +270,49 @@ class ServiceTest(BaseAPIIntegrationTest): assert (svc_info['Spec']['TaskTemplate']['Placement'] == {'Constraints': ['node.id=={}'.format(node_id)]}) + def test_create_service_with_placement_object(self): + node_id = self.client.nodes()[0]['ID'] + container_spec = docker.types.ContainerSpec(BUSYBOX, ['true']) + placemt = docker.types.Placement( + constraints=['node.id=={}'.format(node_id)] + ) + task_tmpl = docker.types.TaskTemplate( + container_spec, placement=placemt + ) + name = self.get_service_name() + svc_id = self.client.create_service(task_tmpl, name=name) + svc_info = self.client.inspect_service(svc_id) + assert 'Placement' in svc_info['Spec']['TaskTemplate'] + assert svc_info['Spec']['TaskTemplate']['Placement'] == placemt + + @requires_api_version('1.30') + def test_create_service_with_placement_platform(self): + container_spec = docker.types.ContainerSpec(BUSYBOX, ['true']) + placemt = docker.types.Placement(platforms=[('x86_64', 'linux')]) + task_tmpl = docker.types.TaskTemplate( + container_spec, placement=placemt + ) + name = self.get_service_name() + svc_id = self.client.create_service(task_tmpl, name=name) + svc_info = self.client.inspect_service(svc_id) + assert 'Placement' in svc_info['Spec']['TaskTemplate'] + assert svc_info['Spec']['TaskTemplate']['Placement'] == placemt + + @requires_api_version('1.27') + def test_create_service_with_placement_preferences(self): + container_spec = docker.types.ContainerSpec(BUSYBOX, ['true']) + placemt = docker.types.Placement(preferences=[ + {'Spread': {'SpreadDescriptor': 'com.dockerpy.test'}} + ]) + task_tmpl = docker.types.TaskTemplate( + container_spec, placement=placemt + ) + name = self.get_service_name() + svc_id = self.client.create_service(task_tmpl, name=name) + svc_info = self.client.inspect_service(svc_id) + assert 'Placement' in svc_info['Spec']['TaskTemplate'] + assert svc_info['Spec']['TaskTemplate']['Placement'] == placemt + def test_create_service_with_endpoint_spec(self): container_spec = docker.types.ContainerSpec(BUSYBOX, ['true']) task_tmpl = docker.types.TaskTemplate(container_spec) |