#!/usr/bin/env ansible-playbook
---
- name: TEST DATA PARTITION
  hosts: mediaserver
  gather_facts: false
  tasks:
    - name: verify /data partition existence
      ansible.builtin.command: findmnt /data
      register: data_exist
      failed_when: false
      changed_when: false

    # /data exist
    - name: Verify if /data exist
      block:
        - name: get /data size
          ansible.builtin.command: df -BG /data --output=size | tail -n1 | grep -o '[0-9]*'
          register: data_size
          failed_when: false
          changed_when: false

        - name: print size
          ansible.builtin.debug:
            msg: /data size is {{ data_size.stdout }}G

        - name: create a test directory in /data
          ansible.builtin.file:
            path: /data/test
            state: directory
            mode: "0755"
            owner: nobody
            group: nogroup
          ignore_errors: true
          changed_when: false

        - name: create a test file in /data
          ansible.builtin.file:
            state: touch
            path: /data/test/file
            mode: "0644"
            owner: nobody
            group: nogroup
          ignore_errors: true
          become: true
          become_method: sudo
          become_user: nobody
          changed_when: false

      when: data_exist.rc == 0

    # /data missing
    - name: Verify if /home is big enough
      block:
        - name: get /home size
          ansible.builtin.command: df -BG /home --output=size | tail -n1 | grep -o '[0-9]*'
          register: home_size
          failed_when: false
          changed_when: false

        - name: verify size
          ansible.builtin.debug:
            msg: /home size is too short ({{ home_size.stdout }}G < 200G)
          when: home_size.stdout | int < 200
          ignore_errors: true
          failed_when: true

      when: data_exist.rc != 0