- name: list sessions consul_session: state: list register: result - assert: that: - result is changed - "'sessions' in result" - name: create a session consul_session: state: present name: testsession register: result - assert: that: - result is changed - result['name'] == 'testsession' - "'session_id' in result" - set_fact: session_id: "{{ result['session_id'] }}" - name: list sessions after creation consul_session: state: list register: result - set_fact: session_count: "{{ result['sessions'] | length }}" - assert: that: - result is changed # selectattr not available on Jinja 2.2 provided by CentOS 6 # hence the two following tasks (set_fact/assert) are used # - (result['sessions'] | selectattr('ID', 'match', '^' ~ session_id ~ '$') | first)['Name'] == 'testsession' - name: search created session set_fact: test_session_found: True loop: "{{ result['sessions'] }}" when: "item.get('ID') == session_id and item.get('Name') == 'testsession'" - name: ensure session was created assert: that: - test_session_found|default(False) - name: fetch info about a session consul_session: state: info id: '{{ session_id }}' register: result - assert: that: - result is changed - name: ensure 'id' parameter is required when state=info consul_session: state: info name: test register: result ignore_errors: True - assert: that: - result is failed - name: ensure unknown scheme fails consul_session: state: info id: '{{ session_id }}' scheme: non_existent register: result ignore_errors: True - assert: that: - result is failed - when: pyopenssl_version.stdout is version('0.15', '>=') block: - name: ensure SSL certificate is checked consul_session: state: info id: '{{ session_id }}' port: 8501 scheme: https register: result ignore_errors: True - name: previous task should fail since certificate is not known assert: that: - result is failed - "'certificate verify failed' in result.msg" - name: ensure SSL certificate isn't checked when validate_certs is disabled consul_session: state: info id: '{{ session_id }}' port: 8501 scheme: https validate_certs: False register: result - name: previous task should succeed since certificate isn't checked assert: that: - result is changed - name: ensure a secure connection is possible consul_session: state: info id: '{{ session_id }}' port: 8501 scheme: https environment: REQUESTS_CA_BUNDLE: '{{ remote_dir }}/cert.pem' register: result - assert: that: - result is changed - name: delete a session consul_session: state: absent id: '{{ session_id }}' register: result - assert: that: - result is changed - name: list sessions after deletion consul_session: state: list register: result - assert: that: - result is changed # selectattr and equalto not available on Jinja 2.2 provided by CentOS 6 # hence the two following tasks (command/assert) are used # - (result['sessions'] | selectattr('ID', 'equalto', session_id) | list | length) == 0 - name: search deleted session command: echo 'session found' loop: "{{ result['sessions'] }}" when: "item.get('ID') == session_id and item.get('Name') == 'testsession'" register: search_deleted - name: ensure session was deleted assert: that: - search_deleted is skipped # each iteration is skipped - search_deleted is not changed # and then unchanged