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

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

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

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

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

- name:  Run scan without endpoints_to_scan variable
  command: "{{ paas_ci_workdir + '/scan.py' }} --dep-json {{ paas_ci_workdir + '/dep.json'}} --output-dir {{ paas_ci_workdir }} --template-url {{ paas_ci_test.template_url }} --template-input {{ paas_ci_test.inputs }}"
  register: scan_output
  when: paas_ci_test.endpoints_to_scan is undefined

- name:  Run scan with endpoints_to_scan variable
  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 }} --template-url {{ paas_ci_test.template_url }} --template-input {{ paas_ci_test.inputs }}"
  register: scan_output
  when: paas_ci_test.endpoints_to_scan is defined

- name: Import scan logs
  shell: cat "{{ paas_ci_workdir + '/scan.log' }}"
  register: scan_log 

- name: Show scan logs
  debug:
    var: scan_log

- name: Find report files
  find:
    paths: "{{ paas_ci_workdir }}"
    patterns: '*-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: 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 }}"