docker_swarm_service: Remove defaults (#51216)

* Drop descriptions of docker-py constraints <=3.0.0

* Properly indent documentation

* Clearer examples

* Spelling

* Fix example

* Revert "Drop descriptions of docker-py constraints <=3.0.0"

This reverts commit 8106215af62ae5880c3b748cec562a85f2247bdc.

# Conflicts:
#	lib/ansible/modules/cloud/docker/docker_swarm_service.py

* Add min versions for placement preferences

* Add endpoint_mode and publish to option_minimal_versions

* Restrict update max_failure_ratio and monitor versions

* Remove defaults and only pass required arguments

* Fix indentation

* Fix args documentation

* Fix replicas documentation

Co-Authored-By: hannseman <hannes@5monkeys.se>

* Add type to all documented options

* Add suboptions for mounts, secrets and configs

* Add suboptions to argument spec

* Remove redundant validation and casting

* Don’t default Spec.EndpointSpec.Mode to vip

* Use single quotes as string literal

* Catch ImportError explicitly

* Move init to top of class

* Align closing brackets

* Spelling

* Import LooseVersion

* Documentation fixes

* Documentation fix

* Documentation fixes

* Remove required: false and default=None

* Defaults for update_delay and update_parallelism

* Set correct key for default

* Handle empty idempotency

* Clearer image documentation

Co-Authored-By: hannseman <hannes@5monkeys.se>

* Clearer constraint documentation

Co-Authored-By: hannseman <hannes@5monkeys.se>

* Better documentation of corresponding service opts
This commit is contained in:
Hannes Ljungberg 2019-02-10 15:17:59 +01:00 committed by John R Barker
parent 2721ed260e
commit 153e996760
3 changed files with 1122 additions and 702 deletions

File diff suppressed because it is too large Load diff

View file

@ -94,6 +94,20 @@
- "3400"
register: args_3
- name: args (empty)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
args: []
register: args_4
- name: args (empty idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
args: []
register: args_5
- name: cleanup
docker_swarm_service:
name: "{{ service_name }}"
@ -105,6 +119,8 @@
- args_1 is changed
- args_2 is not changed
- args_3 is changed
- args_4 is changed
- args_5 is not changed
####################################################################
## configs #########################################################
@ -154,6 +170,14 @@
configs: []
register: configs_4
- name: configs (empty idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
configs: []
register: configs_5
- name: cleanup
docker_swarm_service:
name: "{{ service_name }}"
@ -166,6 +190,7 @@
- configs_2 is not changed
- configs_3 is changed
- configs_4 is changed
- configs_5 is not changed
when: docker_api_version is version('1.30', '>=')
- assert:
that:
@ -195,7 +220,7 @@
- "node.role == manager"
register: constraints_2
- name: constraints (idempotency)
- name: constraints (change)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
@ -204,6 +229,22 @@
- "node.role == worker"
register: constraints_3
- name: constraints (empty)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
constraints: []
register: constraints_4
- name: constraints (empty idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
constraints: []
register: constraints_5
- name: cleanup
docker_swarm_service:
name: "{{ service_name }}"
@ -215,6 +256,8 @@
- constraints_1 is changed
- constraints_2 is not changed
- constraints_3 is changed
- constraints_4 is changed
- constraints_5 is not changed
####################################################################
## command #########################################################
@ -251,12 +294,26 @@
- "sleep 10m"
register: command_4
- name: command (empty)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: []
register: command_5
- name: command (empty idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: []
register: command_6
- name: command (string failure)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: yes
register: command_5
register: command_7
ignore_errors: yes
- name: command (list failure)
@ -266,7 +323,7 @@
command:
- "/bin/sh"
- yes
register: command_6
register: command_8
ignore_errors: yes
- name: cleanup
@ -281,8 +338,10 @@
- command_2 is not changed
- command_3 is changed
- command_4 is not changed
- command_5 is failed
- command_6 is failed
- command_5 is changed
- command_6 is not changed
- command_7 is failed
- command_8 is failed
####################################################################
## container_labels ################################################
@ -318,6 +377,22 @@
test_2: "3"
register: container_labels_3
- name: container_labels (empty)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
container_labels: {}
register: container_labels_4
- name: container_labels (empty idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
container_labels: {}
register: container_labels_5
- name: cleanup
docker_swarm_service:
name: "{{ service_name }}"
@ -329,6 +404,8 @@
- container_labels_1 is changed
- container_labels_2 is not changed
- container_labels_3 is changed
- container_labels_4 is changed
- container_labels_5 is not changed
####################################################################
## dns #############################################################
@ -374,6 +451,22 @@
- 9.9.9.9
register: dns_4
- name: dns_servers (empty)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
dns: []
register: dns_5
- name: dns_servers (empty idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
dns: []
register: dns_6
- name: cleanup
docker_swarm_service:
name: "{{ service_name }}"
@ -386,6 +479,8 @@
- dns_2 is not changed
- dns_3 is changed
- dns_4 is changed
- dns_5 is changed
- dns_6 is not changed
when: docker_api_version is version('1.25', '>=')
- assert:
that:
@ -430,6 +525,24 @@
register: dns_options_3
ignore_errors: yes
- name: dns_options (empty)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
dns_options: []
register: dns_options_4
ignore_errors: yes
- name: dns_options (empty idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
dns_options: []
register: dns_options_5
ignore_errors: yes
- name: cleanup
docker_swarm_service:
name: "{{ service_name }}"
@ -441,6 +554,8 @@
- dns_options_1 is changed
- dns_options_2 is not changed
- dns_options_3 is changed
- dns_options_4 is changed
- dns_options_5 is not changed
when: docker_api_version is version('1.25', '>=')
- assert:
that:
@ -492,6 +607,22 @@
- example.com
register: dns_search_4
- name: dns_search (empty)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
dns_search: []
register: dns_search_5
- name: dns_search (empty idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
dns_search: []
register: dns_search_6
- name: cleanup
docker_swarm_service:
name: "{{ service_name }}"
@ -504,6 +635,8 @@
- dns_search_2 is not changed
- dns_search_3 is changed
- dns_search_4 is changed
- dns_search_5 is changed
- dns_search_6 is not changed
when: docker_api_version is version('1.25', '>=')
- assert:
that:
@ -585,6 +718,22 @@
- "TEST2=val3"
register: env_3
- name: env (empty)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
env: []
register: env_4
- name: env (empty idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
env: []
register: env_5
- name: cleanup
docker_swarm_service:
name: "{{ service_name }}"
@ -596,6 +745,8 @@
- env_1 is changed
- env_2 is not changed
- env_3 is changed
- env_4 is changed
- env_5 is not changed
###################################################################
## force_update ###################################################
@ -757,6 +908,22 @@
test_3: "3"
register: labels_3
- name: labels (empty)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
labels: {}
register: labels_4
- name: labels (empty idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
labels: {}
register: labels_5
- name: cleanup
docker_swarm_service:
name: "{{ service_name }}"
@ -768,6 +935,8 @@
- labels_1 is changed
- labels_2 is not changed
- labels_3 is changed
- labels_4 is changed
- labels_5 is not changed
###################################################################
## limit_cpu ######################################################
@ -927,6 +1096,24 @@
max-file: "1"
register: log_driver_options_3
- name: log_driver_options (empty)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
log_driver: json-file
log_driver_options: {}
register: log_driver_options_4
- name: log_driver_options (empty idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
log_driver: json-file
log_driver_options: {}
register: log_driver_options_5
- name: cleanup
docker_swarm_service:
name: "{{ service_name }}"
@ -938,6 +1125,8 @@
- log_driver_options_1 is changed
- log_driver_options_2 is not changed
- log_driver_options_3 is changed
- log_driver_options_4 is changed
- log_driver_options_5 is not changed
###################################################################
## mode ###########################################################
@ -1030,6 +1219,14 @@
mounts: []
register: mounts_4
- name: mounts (empty idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
mounts: []
register: mounts_5
- name: cleanup
docker_swarm_service:
name: "{{ service_name }}"
@ -1042,6 +1239,7 @@
- mounts_2 is not changed
- mounts_3 is changed
- mounts_4 is changed
- mounts_5 is not changed
####################################################################
## networks ########################################################
@ -1073,6 +1271,14 @@
networks: []
register: networks_3
- name: networks (empty idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
networks: []
register: networks_4
- name: cleanup
docker_swarm_service:
name: "{{ service_name }}"
@ -1084,6 +1290,7 @@
- networks_1 is changed
- networks_2 is not changed
- networks_3 is changed
- networks_4 is not changed
####################################################################
## placement_preferences ###########################################
@ -1116,6 +1323,22 @@
- spread: "node.labels.test2"
register: placement_preferences_3
- name: placement_preferences (empty)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
placement_preferences: []
register: placement_preferences_4
- name: placement_preferences (empty idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
placement_preferences: []
register: placement_preferences_5
- name: cleanup
docker_swarm_service:
name: "{{ service_name }}"
@ -1127,6 +1350,8 @@
- placement_preferences_1 is changed
- placement_preferences_2 is not changed
- placement_preferences_3 is changed
- placement_preferences_4 is changed
- placement_preferences_5 is not changed
####################################################################
## publish #########################################################
@ -1205,6 +1430,22 @@
mode: host
register: publish_5
- name: publish (empty)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
publish: []
register: publish_6
- name: publish (empty idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
publish: []
register: publish_7
- name: cleanup
docker_swarm_service:
name: "{{ service_name }}"
@ -1218,6 +1459,8 @@
- publish_3 is changed
- publish_4 is changed
- publish_5 is not changed
- publish_6 is changed
- publish_7 is not changed
when: docker_api_version is version('1.25', '>=')
- assert:
that:
@ -1593,6 +1836,14 @@
secrets: []
register: secrets_4
- name: secrets (empty idempotency)
docker_swarm_service:
name: "{{ service_name }}"
image: alpine:3.8
command: '/bin/sh -v -c "sleep 10m"'
secrets: []
register: secrets_5
- name: cleanup
docker_swarm_service:
name: "{{ service_name }}"
@ -1605,6 +1856,7 @@
- secrets_2 is not changed
- secrets_3 is changed
- secrets_4 is changed
- secrets_5 is not changed
when: docker_api_version is version('1.25', '>=')
- assert:
that:

View file

@ -3,40 +3,40 @@
service_expected_output:
args: [sleep, '1800']
configs: null
constraints: []
container_labels: {}
constraints: null
container_labels: null
command: null
dns: []
dns_options: []
dns_search: []
dns: null
dns_options: null
dns_search: null
endpoint_mode: vip
env: []
env: null
force_update: null
hostname: ''
hostname: null
image: busybox
labels: {}
limit_cpu: 0.0
limit_memory: 0
log_driver: json-file
log_driver_options: {}
labels: null
limit_cpu: null
limit_memory: null
log_driver: null
log_driver_options: null
mode: global
mounts: []
networks: []
mounts: null
networks: null
placement_preferences: null
publish:
- {mode: null, protocol: tcp, published_port: 60001, target_port: 60001}
- {mode: null, protocol: udp, published_port: 60001, target_port: 60001}
replicas: null
reserve_cpu: 0.0
reserve_memory: 0
restart_policy: none
restart_policy_attempts: 0
restart_policy_delay: 0
restart_policy_window: 0
tty: false
reserve_cpu: null
reserve_memory: null
restart_policy: null
restart_policy_attempts: null
restart_policy_delay: null
restart_policy_window: null
tty: null
update_delay: 10
update_failure_action: continue
update_max_failure_ratio: 0.0
update_monitor: 5000000000
update_failure_action: null
update_max_failure_ratio: null
update_monitor: null
update_order: null
update_parallelism: 1