summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorercildoune <49232938+ercildoune@users.noreply.github.com>2022-07-30 02:54:55 +0800
committerGitHub <noreply@github.com>2022-07-29 14:54:55 -0400
commit26753c81defff28a1a38a34788e9653c8eb87c3d (patch)
tree5943d5e873ea51485713edb2a91d79ef76ae8251
parent0031ac2186406c9b48c6fc5253affd4b62fef0f5 (diff)
downloaddocker-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.py1
-rw-r--r--tests/integration/models_services_test.py7
-rw-r--r--tests/unit/models_services_test.py2
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'},
}