--- - name: 'Create disk image' command: > dd if=/dev/zero of={{ ansible_user_dir }}/ansible_testing/img-uquota bs=1M count=20 - name: 'Create XFS filesystem' filesystem: dev: '{{ ansible_user_dir }}/ansible_testing/img-uquota' fstype: xfs - block: - name: 'Mount filesystem' mount: fstab: '{{ ansible_user_dir }}/ansible_testing/fstab' src: '{{ ansible_user_dir }}/ansible_testing/img-uquota' path: '{{ ansible_user_dir }}/ansible_testing/uquota' fstype: xfs opts: uquota state: mounted become: True - name: 'Apply default user limits' xfs_quota: bsoft: '{{ uquota_default_bsoft }}' bhard: '{{ uquota_default_bhard }}' isoft: '{{ uquota_default_isoft }}' ihard: '{{ uquota_default_ihard }}' mountpoint: '{{ ansible_user_dir }}/ansible_testing/uquota' rtbsoft: '{{ uquota_default_rtbsoft }}' rtbhard: '{{ uquota_default_rtbhard }}' type: user become: True register: test_uquota_default_before - name: Assert default user limits results assert: that: - test_uquota_default_before.changed - test_uquota_default_before.bsoft == uquota_default_bsoft|human_to_bytes - test_uquota_default_before.bhard == uquota_default_bhard|human_to_bytes - test_uquota_default_before.isoft == uquota_default_isoft - test_uquota_default_before.ihard == uquota_default_ihard - test_uquota_default_before.rtbsoft == uquota_default_rtbsoft|human_to_bytes - test_uquota_default_before.rtbhard == uquota_default_rtbhard|human_to_bytes - name: 'Apply user limits' xfs_quota: bsoft: '{{ uquota_user_bsoft }}' bhard: '{{ uquota_user_bhard }}' isoft: '{{ uquota_user_isoft }}' ihard: '{{ uquota_user_ihard }}' mountpoint: '{{ ansible_user_dir }}/ansible_testing/uquota' name: xfsquotauser rtbsoft: '{{ uquota_user_rtbsoft }}' rtbhard: '{{ uquota_user_rtbhard }}' type: user become: True register: test_uquota_user_before - name: Assert user limits results assert: that: - test_uquota_user_before.changed - test_uquota_user_before.bsoft == uquota_user_bsoft|human_to_bytes - test_uquota_user_before.bhard == uquota_user_bhard|human_to_bytes - test_uquota_user_before.isoft == uquota_user_isoft - test_uquota_user_before.ihard == uquota_user_ihard - test_uquota_user_before.rtbsoft == uquota_user_rtbsoft|human_to_bytes - test_uquota_user_before.rtbhard == uquota_user_rtbhard|human_to_bytes - name: 'Re-apply default user limits' xfs_quota: bsoft: '{{ uquota_default_bsoft }}' bhard: '{{ uquota_default_bhard }}' isoft: '{{ uquota_default_isoft }}' ihard: '{{ uquota_default_ihard }}' mountpoint: '{{ ansible_user_dir }}/ansible_testing/uquota' rtbsoft: '{{ uquota_default_rtbsoft }}' rtbhard: '{{ uquota_default_rtbhard }}' type: user become: True register: test_uquota_default_after - name: Assert default user limits results after re-apply assert: that: - not test_uquota_default_after.changed - name: 'Re-apply user limits' xfs_quota: bsoft: '{{ uquota_user_bsoft }}' bhard: '{{ uquota_user_bhard }}' isoft: '{{ uquota_user_isoft }}' ihard: '{{ uquota_user_ihard }}' mountpoint: '{{ ansible_user_dir }}/ansible_testing/uquota' name: xfsquotauser rtbsoft: '{{ uquota_user_rtbsoft }}' rtbhard: '{{ uquota_user_rtbhard }}' type: user become: True register: test_uquota_user_after - name: Assert user limits results for xfsquotauser after re-apply assert: that: - not test_uquota_user_after.changed - name: 'Reset default user limits' xfs_quota: mountpoint: '{{ ansible_user_dir }}/ansible_testing/uquota' state: absent type: user become: True register: test_reset_uquota_default - name: Assert reset of default user limits results assert: that: - test_reset_uquota_default.changed - test_reset_uquota_default.bsoft == 0 - test_reset_uquota_default.bhard == 0 - test_reset_uquota_default.isoft == 0 - test_reset_uquota_default.ihard == 0 - test_reset_uquota_default.rtbsoft == 0 - test_reset_uquota_default.rtbhard == 0 - name: 'Reset user limits for xfsquotauser' xfs_quota: mountpoint: '{{ ansible_user_dir }}/ansible_testing/uquota' name: xfsquotauser state: absent type: user become: True register: test_reset_uquota_user - name: Assert reset of default user limits results assert: that: - test_reset_uquota_user.changed - test_reset_uquota_user.bsoft == 0 - test_reset_uquota_user.bhard == 0 - test_reset_uquota_user.isoft == 0 - test_reset_uquota_user.ihard == 0 - test_reset_uquota_user.rtbsoft == 0 - test_reset_uquota_user.rtbhard == 0 always: - name: 'Unmount filesystem' mount: fstab: '{{ ansible_user_dir }}/ansible_testing/fstab' path: '{{ ansible_user_dir }}/ansible_testing/uquota' state: unmounted become: True - name: Remove disk image file: path: '{{ ansible_user_dir }}/ansible_testing/img-uquota' state: absent