
Change I754637115f8c7469efbc1856e88bbcb6fb83b4ce moved a bunch of log collection to use "stage-output". This uses "fetch-output" which automatically puts these logs in hostname subdirectories; but it does not have an option to put it in hosts/hostname as we were doing with the other logs. Although we could add such support, it probably doesn't make sense as most other multinode jobs will have the same layout with the host logs at the top level. Remove the intermediate "/hosts/" directory on system-config jobs so all logs remain at the top level, and we don't have this confusing split as to where logs are for each host. Change-Id: I56bd67c659ffb26a460d9406f6f090d431c8aa79
82 lines
2.2 KiB
YAML
82 lines
2.2 KiB
YAML
- hosts: localhost
|
|
tasks:
|
|
- name: Make log directories for testing hosts
|
|
file:
|
|
path: "{{ zuul.executor.log_root }}/{{ item }}/logs"
|
|
state: directory
|
|
recurse: true
|
|
loop: "{{ query('inventory_hostnames', 'all') }}"
|
|
|
|
- name: Ensure bridge ARA log directories exist
|
|
file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
with_items:
|
|
- "{{ zuul.executor.log_root }}/bridge.openstack.org/ara-report"
|
|
|
|
- hosts: all
|
|
tasks:
|
|
- name: List containers
|
|
command: "docker ps -a --format '{{ '{{ .Names }}' }}'"
|
|
register: docker_containers
|
|
ignore_errors: true
|
|
become: true
|
|
|
|
- name: Create container log dir
|
|
file:
|
|
path: "/var/log/docker"
|
|
state: directory
|
|
become: true
|
|
|
|
- name: Save container logs
|
|
loop: "{{ docker_containers.stdout_lines | default([]) }}"
|
|
shell: "docker logs {{ item }} &> /var/log/docker/{{item}}.txt"
|
|
args:
|
|
executable: /bin/bash
|
|
become: true
|
|
|
|
- name: Open container logs permissions
|
|
file:
|
|
dest: /var/log/docker
|
|
mode: u=rwX,g=rX,o=rX
|
|
recurse: yes
|
|
become: yes
|
|
|
|
- include_role:
|
|
name: stage-output
|
|
|
|
- hosts: bridge.openstack.org
|
|
tasks:
|
|
- name: Set log directory
|
|
set_fact:
|
|
log_dir: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}"
|
|
|
|
# Because during the test we run ansible as root, we need
|
|
# to allow ourselves permissions to copy the results
|
|
- name: Open ARA results permissions
|
|
file:
|
|
dest: /var/cache/ansible
|
|
mode: u=rwX,g=rX,o=rX
|
|
recurse: yes
|
|
become: yes
|
|
|
|
# Note called ansible.sqlite so the middleware on
|
|
# logs.o.o picks it up for display
|
|
- name: Collect testing ARA results
|
|
synchronize:
|
|
dest: "{{ log_dir }}/ara-report/ansible.sqlite"
|
|
mode: pull
|
|
src: "/var/cache/ansible/ara.sqlite"
|
|
verify_host: true
|
|
ignore_errors: true
|
|
|
|
- name: Collect ansible configuration
|
|
synchronize:
|
|
dest: "{{ log_dir }}/etc"
|
|
mode: pull
|
|
src: "/etc/ansible"
|
|
verify_host: true
|
|
rsync_opts:
|
|
- "--exclude=__pycache__"
|
|
ignore_errors: true
|