--- # Copyright (c) 2018, René Moser # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) - name: setup vultr_user: name: "{{ vultr_user_name }}" state: absent register: result - name: verify setup assert: that: - result is success - name: test fail if missing name vultr_user: register: result ignore_errors: yes - name: verify test fail if missing name assert: that: - result is failed - 'result.msg == "missing required arguments: name"' - name: test fail if missing params for state=present vultr_user: name: "{{ vultr_user_name }}" register: result ignore_errors: yes - name: verify fail if missing params for state=present assert: that: - result is failed - 'result.msg.startswith("state is present but all of the following are missing")' - name: test fail param not in choices vultr_user: name: "{{ vultr_user_name }}" email: john.doe@example.com password: s3cr3t acls: - bad - dns - manage_users register: result ignore_errors: yes - name: verify test fail if missing name assert: that: - result is failed - 'result.msg.startswith("value of acls must be one or more of")' - name: test create user in check mode vultr_user: name: "{{ vultr_user_name }}" email: john.doe@example.com password: s3cr3t acls: - upgrade - dns - manage_users register: result check_mode: yes - name: verify test create user in check mode assert: that: - result is changed - name: test create user vultr_user: name: "{{ vultr_user_name }}" email: john.doe@example.com password: s3cr3t acls: - upgrade - dns - manage_users register: result - name: verify test create user assert: that: - result is changed - result.vultr_user.name == '{{ vultr_user_name }}' - result.vultr_user.email == 'john.doe@example.com' - result.vultr_user.api_enabled == true - "'upgrade' in result.vultr_user.acls" - "'manage_users' in result.vultr_user.acls" - "'dns' in result.vultr_user.acls" - result.vultr_user.api_key is defined - name: test create user idempotence vultr_user: name: "{{ vultr_user_name }}" email: john.doe@example.com password: s3cr3t acls: - upgrade - dns - manage_users register: result - name: verify test create user idempotence assert: that: - result is not changed - result.vultr_user.name == '{{ vultr_user_name }}' - result.vultr_user.email == 'john.doe@example.com' - result.vultr_user.api_enabled == true - "'upgrade' in result.vultr_user.acls" - "'manage_users' in result.vultr_user.acls" - "'dns' in result.vultr_user.acls" - result.vultr_user.api_key is not defined - name: test update user in check mode vultr_user: name: "{{ vultr_user_name }}" email: jimmy@example.com password: s3cr3t api_enabled: false acls: - manage_users - upgrade - support register: result check_mode: yes - name: verify test update user in check mode assert: that: - result is changed - result.vultr_user.name == '{{ vultr_user_name }}' - result.vultr_user.email == 'john.doe@example.com' - "'upgrade' in result.vultr_user.acls" - "'manage_users' in result.vultr_user.acls" - "'dns' in result.vultr_user.acls" - result.vultr_user.api_enabled == true - result.vultr_user.api_key is not defined - name: test update user vultr_user: name: "{{ vultr_user_name }}" email: jimmy@example.com password: s3cr3t api_enabled: false acls: - manage_users - upgrade - support register: result - name: verify test update user assert: that: - result is changed - result.vultr_user.name == '{{ vultr_user_name }}' - result.vultr_user.email == 'jimmy@example.com' - "'upgrade' in result.vultr_user.acls" - "'manage_users' in result.vultr_user.acls" - "'support' in result.vultr_user.acls" - result.vultr_user.api_enabled == false - result.vultr_user.api_key is not defined - name: test update user idempotence vultr_user: name: "{{ vultr_user_name }}" email: jimmy@example.com password: s3cr3t api_enabled: false acls: - manage_users - upgrade - support register: result - name: verify test update user idempotence assert: that: - result is not changed - result.vultr_user.name == '{{ vultr_user_name }}' - result.vultr_user.email == 'jimmy@example.com' - "'upgrade' in result.vultr_user.acls" - "'manage_users' in result.vultr_user.acls" - "'support' in result.vultr_user.acls" - result.vultr_user.api_enabled == false - result.vultr_user.api_key is not defined - name: test absent user in check mode vultr_user: name: "{{ vultr_user_name }}" state: absent register: result check_mode: yes - name: verify test absent user in check mode assert: that: - result is changed - result.vultr_user.name == '{{ vultr_user_name }}' - result.vultr_user.email == 'jimmy@example.com' - "'upgrade' in result.vultr_user.acls" - "'manage_users' in result.vultr_user.acls" - "'support' in result.vultr_user.acls" - result.vultr_user.api_enabled == false - result.vultr_user.api_key is not defined - name: test absent user vultr_user: name: "{{ vultr_user_name }}" state: absent register: result - name: verify test absent user assert: that: - result is changed - result.vultr_user.name == '{{ vultr_user_name }}' - result.vultr_user.email == 'jimmy@example.com' - "'upgrade' in result.vultr_user.acls" - "'manage_users' in result.vultr_user.acls" - "'support' in result.vultr_user.acls" - result.vultr_user.api_enabled == false - result.vultr_user.api_key is not defined - name: test absent user idempotence vultr_user: name: "{{ vultr_user_name }}" state: absent register: result - name: verify test absent user idempotence assert: that: - result is not changed