docker_swarm: support older docker-py versions (#53129)

* Decreasing docker_swarm requirements.

* Fixing docker-py / docker API version requirements, and some comments.

* Add changelog.

* Only send parameters specified by user to docker daemon.

* Extend labels test: not specifying == keep labels.

* Bump minimally required docker-py version for docker_node and docker_node_facts to 2.4.0.

* Prevent crashing when publish or healthcheck is not provided.

* Similarly to docker_swarm tests, only execute docker_node tests on real VMs and restart docker daemon when tests are done.
This commit is contained in:
Felix Fontein
2019-03-04 12:10:09 +01:00
committed by René Moser
parent 340aa26edf
commit 8e26c2dfbe
16 changed files with 261 additions and 73 deletions

View File

@@ -1,5 +1,31 @@
- include_tasks: test_node.yml
when: docker_py_version is version('1.10.0', '>=') and docker_api_version is version('1.24', '>=')
---
# Run the tests
- block:
- include_tasks: test_node.yml
- fail: msg="Too old docker / docker-py version to run docker_swarm_facts tests!"
when: not(docker_py_version is version('1.10.0', '>=') and docker_api_version is version('1.24', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)
always:
- name: Cleanup (trying)
docker_swarm:
state: absent
force: true
diff: no
ignore_errors: yes
- name: Restart docker daemon
service:
name: docker
state: restarted
become: yes
- name: Wait for docker daemon to be fully restarted
command: docker ps
- name: Cleanup
docker_swarm:
state: absent
force: true
diff: no
when: docker_py_version is version('2.4.0', '>=') and docker_api_version is version('1.25', '>=')
- fail: msg="Too old docker / docker-py version to run docker_node tests!"
when: not(docker_py_version is version('2.4.0', '>=') and docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6)