---
- name: Set SSH tunel
  command: ssh -o StrictHostKeyChecking=no -f -N -L localhost:9390:scans.cloud.infn.it:9390 jenkins@scans.cloud.infn.it 

- debug: 
    var: paas_ci_test.endpoints_to_scan

- name: Copy scan script
  copy: 
    src: files/scan.py
    dest: "{{ paas_ci_workdir + '/scan.py' }}"

- name: Copy utilities module
  copy: 
    src: files/scan_utilities.py
    dest: "{{ paas_ci_workdir + '/scan_utilities.py' }}"

- name: Copy gvm_library module
  copy: 
    src: files/scan_gvm_library.py
    dest: "{{ paas_ci_workdir + '/scan_gvm_library.py' }}"

- name: Adding execution permission to scan script
  file: 
    dest: "{{ paas_ci_workdir + '/scan.py' }}"
    mode: a+x 

- name: Load depdep log
  command: cat "{{ paas_ci_workdir + '/dep.json' }}"
  register: dep_json

- name: import depdep_log
  set_fact:
    imported_depdep_log: "{{ dep_json.stdout }}"

- name: Show depdep log
  debug:
    var: imported_depdep_log

- name: Show BEFORE paas_ci_test.endpoints_to_scan log
  debug:
    var: paas_ci_test.endpoints_to_scan

- name: Fail if "bar" is undefined
  set_fact:
    paas_ci_test.endpoints_to_scan: "None"
  when: paas_ci_test.endpoints_to_scan is undefined

- name: Show AFTER paas_ci_test.endpoints_to_scan log
  debug:
    var: paas_ci_test.endpoints_to_scan

- name:  Run scan
  command: "{{ paas_ci_workdir + '/scan.py' }} --endpoint-keys {{ paas_ci_test.endpoints_to_scan }} --dep-json {{ paas_ci_workdir + '/dep.json'}} --output-dir {{ paas_ci_workdir }}" 
  register: scan_output

- name: Scan logs
  debug:
    msg: "{{ lookup('file', item.path) }}"
  with_items: "{{ paas_ci_workdir + 'scan.log' }}"

- name: Show scan output
  debug:
    msg: "{{ scan_output }}"

- name: Find report files
  find:
    paths: "{{ paas_ci_workdir }}"
    patterns: '*infn.it-report.txt'
  register: report_files

- name: read summary report file
  shell: cat "{{ paas_ci_workdir + '/summary-report.json' }}"
  register: summary_report 

- name: import summary_report
  set_fact:
    summary_report_json: "{{ summary_report.stdout | from_json }}"

- name: Show reports
  debug:
    msg: "{{ lookup('file', item.path) }}"
  with_items: "{{ report_files.files }}"
  when: summary_report_json.global == 'NOK'

- name: Load scans log
  command: cat "{{ paas_ci_workdir + '/scan.log' }}"
  register: scans_log
  when: summary_report_json.global == 'NOK'

- name: import scans_log
  set_fact:
    imported_scans_log: "{{ scans_log.stdout }}"

- name: Show scans log
  debug:
    var: imported_scans_log
  when: summary_report_json.global == 'NOK'

- name: Detailed report summary
  debug:
    var: summary_report_json

- name: Report Summary
  assert:
    that:
      - summary_report_json.global == 'OK'
    fail_msg: "SCAN FAILED - deployment: {{ summary_report_json.deployment }}"
    success_msg: "SCAN PASSED - deployment: {{ summary_report_json.deployment }}"