diff options
author | ercildoune <49232938+ercildoune@users.noreply.github.com> | 2022-07-30 02:54:55 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-29 14:54:55 -0400 |
commit | 26753c81defff28a1a38a34788e9653c8eb87c3d (patch) | |
tree | 5943d5e873ea51485713edb2a91d79ef76ae8251 | |
parent | 0031ac2186406c9b48c6fc5253affd4b62fef0f5 (diff) | |
download | docker-py-26753c81defff28a1a38a34788e9653c8eb87c3d.tar.gz |
api: add rollback_config to service create (#2917)
`rollback_config` was not in the list of `CREATE_SERVICE_KWARGS`
which prevented it from being an argument when creating services.
It has now been added and the problem fixed, allowing services to
have a rollback_config during creation and updating.
Fixes #2832.
Signed-off-by: Fraser Patten <pattenf00@gmail.com>
Signed-off-by: Milas Bowman <milas.bowman@docker.com>
Co-authored-by: Milas Bowman <milas.bowman@docker.com>
-rw-r--r-- | docker/models/services.py | 1 | ||||
-rw-r--r-- | tests/integration/models_services_test.py | 7 | ||||
-rw-r--r-- | tests/unit/models_services_test.py | 2 |
3 files changed, 9 insertions, 1 deletions
diff --git a/docker/models/services.py b/docker/models/services.py index 200dd33..9255068 100644 --- a/docker/models/services.py +++ b/docker/models/services.py @@ -320,6 +320,7 @@ CREATE_SERVICE_KWARGS = [ 'labels', 'mode', 'update_config', + 'rollback_config', 'endpoint_spec', ] diff --git a/tests/integration/models_services_test.py b/tests/integration/models_services_test.py index 982842b..f1439a4 100644 --- a/tests/integration/models_services_test.py +++ b/tests/integration/models_services_test.py @@ -30,13 +30,18 @@ class ServiceTest(unittest.TestCase): # ContainerSpec arguments image="alpine", command="sleep 300", - container_labels={'container': 'label'} + container_labels={'container': 'label'}, + rollback_config={'order': 'start-first'} ) assert service.name == name assert service.attrs['Spec']['Labels']['foo'] == 'bar' container_spec = service.attrs['Spec']['TaskTemplate']['ContainerSpec'] assert "alpine" in container_spec['Image'] assert container_spec['Labels'] == {'container': 'label'} + spec_rollback = service.attrs['Spec'].get('RollbackConfig', None) + assert spec_rollback is not None + assert ('Order' in spec_rollback and + spec_rollback['Order'] == 'start-first') def test_create_with_network(self): client = docker.from_env(version=TEST_API_VERSION) diff --git a/tests/unit/models_services_test.py b/tests/unit/models_services_test.py index b9192e4..94a27f0 100644 --- a/tests/unit/models_services_test.py +++ b/tests/unit/models_services_test.py @@ -11,6 +11,7 @@ class CreateServiceKwargsTest(unittest.TestCase): 'labels': {'key': 'value'}, 'hostname': 'test_host', 'mode': 'global', + 'rollback_config': {'rollback': 'config'}, 'update_config': {'update': 'config'}, 'networks': ['somenet'], 'endpoint_spec': {'blah': 'blah'}, @@ -37,6 +38,7 @@ class CreateServiceKwargsTest(unittest.TestCase): 'name': 'somename', 'labels': {'key': 'value'}, 'mode': 'global', + 'rollback_config': {'rollback': 'config'}, 'update_config': {'update': 'config'}, 'endpoint_spec': {'blah': 'blah'}, } |