- name: Devstack checks if stackviz archive exists
  stat:
    path: "/opt/cache/files/stackviz-latest.tar.gz"
  register: stackviz_archive

- debug:
    msg: "Stackviz archive could not be found in /opt/cache/files/stackviz-latest.tar.gz"
  when: not stackviz_archive.stat.exists

- name: Check if subunit data exists
  stat:
    path: "{{ zuul_work_dir }}/testrepository.subunit"
  register: subunit_input

- debug:
    msg: "Subunit file could not be found at {{ zuul_work_dir }}/testrepository.subunit"
  when: not subunit_input.stat.exists

- name: Install stackviz
  when:
    - stackviz_archive.stat.exists
    - subunit_input.stat.exists
  block:
    - include_role:
        name: ensure-pip

    - pip:
        name: "file://{{ stackviz_archive.stat.path }}"
        virtualenv: /tmp/stackviz
        virtualenv_command: '{{ ensure_pip_virtualenv_command }}'
        extra_args: -U

- name: Deploy stackviz static html+js
  command: cp -pR /tmp/stackviz/share/stackviz-html {{ stage_dir }}/stackviz
  when:
    - stackviz_archive.stat.exists
    - subunit_input.stat.exists

- name: Check if dstat data exists
  stat:
    path: "{{ devstack_base_dir }}/logs/dstat-csv.log"
  register: dstat_input
  when:
    - stackviz_archive.stat.exists
    - subunit_input.stat.exists

- name: Run stackviz with dstat
  shell: |
    cat {{ subunit_input.stat.path }} | \
      /tmp/stackviz/bin/stackviz-export \
        --dstat "{{ devstack_base_dir }}/logs/dstat-csv.log" \
        --env --stdin \
        {{ stage_dir }}/stackviz/data
  when:
    - stackviz_archive.stat.exists
    - subunit_input.stat.exists
    - dstat_input.stat.exists
  failed_when: False

- name: Run stackviz without dstat
  shell: |
    cat {{ subunit_input.stat.path }} | \
      /tmp/stackviz/bin/stackviz-export \
        --env --stdin \
        {{ stage_dir }}/stackviz/data
  when:
    - stackviz_archive.stat.exists
    - subunit_input.stat.exists
    - not dstat_input.stat.exists
  failed_when: False