Clark Boylan 183e186fe0 Fix error checking with zuul graceful stops
The previous code had attempted to handle the case where the container
isn't running and we exec a zuul graceful stop in the container.
Unfortunately I got the string to check for wrong. I think I must've
checked the `docker exec` output and not the `docker-compose exec`
output.

This change updates the string to match exactly what ansible complained
about:

  TASK [zuul-merger : Gracefully stop Zuul Merger] *******************************
  fatal: [zm05.opendev.org]: FAILED! => {
      "changed": true,
      "cmd": "docker-compose exec merger zuul-merger stop",
      "delta": "0:00:00.573561",
      "end": "2022-09-14 01:59:41.721044",
      "failed_when_result": true,
      "rc": 1,
      "start": "2022-09-14 01:59:41.147483"
  }

  STDERR:

  No container found for merger_1

  MSG:

  non-zero return code

Specifically we check for 'No container found' in stderr.

Change-Id: I737b9da14c210215926804816d1e032540d694dc
2022-09-14 08:12:59 -07:00

36 lines
1.2 KiB
YAML

- name: Check if Zuul Executor containers are running
# It is possible they are stopped due to some external circumstance.
# NOTE: docker-compose ps -q reports exited containers unlike docker ps -q
command:
cmd: docker-compose ps -q
chdir: /etc/zuul-executor
become: true
become_user: root
register: executor_container_list
- name: Gracefully stop Zuul Executor
shell:
cmd: docker-compose exec executor zuul-executor graceful
chdir: /etc/zuul-executor
become: true
become_user: root
# Only run the docker exec command if a container is running
when: executor_container_list.stdout_lines | length > 0
register: ze_graceful
failed_when:
- ze_graceful.rc != 0
# If the exec fails because the container is not running we continue.
- "'No container found' not in ze_graceful.stderr"
- name: Wait for Zuul Executor to stop
shell:
cmd: docker-compose ps -q | xargs docker wait
chdir: /etc/zuul-executor
become: true
become_user: root
when: executor_container_list.stdout_lines | length > 0
- name: Remove Zuul Executor containers
shell:
cmd: docker-compose down
chdir: /etc/zuul-executor
become: true
become_user: root