---
# Copyright 2017-present Open Networking Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# collect-diag-playbook.yml
# Collects diagnostic information for the currently running POD

- name: Create diag_dir fact
  hosts: head
  tasks:
    - name: Set diag_dir name to diag-rfc3339_datetime
      set_fact:
        diag_dir: "diag-{{ ansible_date_time.iso8601_basic_short }}"

- name: Diagnostics on head node
  hosts: head
  roles:
    - head-diag

- name: Diagnostics on compute nodes
  hosts: compute
  roles:
    - compute-diag

- name: Collect compute node diagnostics on head node
  hosts: head
  tasks:
    - name: rsync diag_dir from compute nodes to head node
      when: groups['compute'] | length > 0
      command: >
        rsync -a
          "ubuntu@{{ item }}:/tmp/{{ hostvars[groups['head'][0]]['diag_dir'] }}/{{ item }}"
          "~/{{ hostvars[groups['head'][0]]['diag_dir'] }}/"
      with_items: "{{ groups['compute'] }}"
      tags:
        - skip_ansible_lint # the synchronize module can't set the remote username with delegate_to

