mirror of
https://github.com/containers/ansible-podman-collections.git
synced 2026-02-04 07:11:49 +00:00
280 lines
9.4 KiB
YAML
280 lines
9.4 KiB
YAML
- name: Test podman_system_connection
|
|
block:
|
|
|
|
- name: Print podman version
|
|
command: podman version
|
|
|
|
- name: Generate random values for connection names
|
|
set_fact:
|
|
test_connection_1: "{{ 'ansible-test-conn1-%0x' % ((2**32) | random) }}"
|
|
test_connection_2: "{{ 'ansible-test-conn2-%0x' % ((2**32) | random) }}"
|
|
test_connection_3: "{{ 'ansible-test-conn3-%0x' % ((2**32) | random) }}"
|
|
|
|
- name: Clean up any existing test connections
|
|
containers.podman.podman_system_connection:
|
|
executable: "{{ test_executable | default('podman') }}"
|
|
name: "{{ item }}"
|
|
state: absent
|
|
ignore_errors: true
|
|
loop:
|
|
- "{{ test_connection_1 }}"
|
|
- "{{ test_connection_2 }}"
|
|
- "{{ test_connection_3 }}"
|
|
|
|
- name: Test adding a basic unix socket connection
|
|
containers.podman.podman_system_connection:
|
|
executable: "{{ test_executable | default('podman') }}"
|
|
name: "{{ test_connection_1 }}"
|
|
destination: "unix:///tmp/test-socket-{{ test_connection_1 }}.sock"
|
|
state: present
|
|
register: add_result
|
|
|
|
- name: Check add connection results
|
|
assert:
|
|
that:
|
|
- add_result is changed
|
|
- add_result.connection.Name == test_connection_1
|
|
- "'unix://' in add_result.connection.URI"
|
|
- add_result.actions | length > 0
|
|
- "'added' in add_result.actions[0]"
|
|
|
|
- name: Test idempotency - add same connection again
|
|
containers.podman.podman_system_connection:
|
|
executable: "{{ test_executable | default('podman') }}"
|
|
name: "{{ test_connection_1 }}"
|
|
destination: "unix:///tmp/test-socket-{{ test_connection_1 }}.sock"
|
|
state: present
|
|
register: add_idem_result
|
|
|
|
- name: Check idempotency
|
|
assert:
|
|
that:
|
|
- add_idem_result is not changed
|
|
- add_idem_result.connection.Name == test_connection_1
|
|
|
|
- name: Test adding connection with unix socket
|
|
containers.podman.podman_system_connection:
|
|
executable: "{{ test_executable | default('podman') }}"
|
|
name: "{{ test_connection_2 }}"
|
|
destination: "unix:///tmp/test-socket-{{ test_connection_2 }}.sock"
|
|
state: present
|
|
register: add_custom_result
|
|
|
|
- name: Check custom connection results
|
|
assert:
|
|
that:
|
|
- add_custom_result is changed
|
|
- add_custom_result.connection.Name == test_connection_2
|
|
- "'unix://' in add_custom_result.connection.URI"
|
|
- add_custom_result.actions | length > 0
|
|
|
|
- name: Test adding connection with default flag
|
|
containers.podman.podman_system_connection:
|
|
executable: "{{ test_executable | default('podman') }}"
|
|
name: "{{ test_connection_3 }}"
|
|
destination: "unix:///tmp/test-socket-{{ test_connection_3 }}.sock"
|
|
default: true
|
|
state: present
|
|
register: add_default_result
|
|
|
|
- name: Check default connection results
|
|
assert:
|
|
that:
|
|
- add_default_result is changed
|
|
- add_default_result.connection.Name == test_connection_3
|
|
- add_default_result.connection.Default == true
|
|
|
|
- name: Test unix socket connection
|
|
containers.podman.podman_system_connection:
|
|
executable: "{{ test_executable | default('podman') }}"
|
|
name: "test-unix"
|
|
destination: "unix:///run/podman/podman.sock"
|
|
state: present
|
|
register: unix_result
|
|
|
|
- name: Check unix socket connection
|
|
assert:
|
|
that:
|
|
- unix_result is changed
|
|
- unix_result.connection.Name == "test-unix"
|
|
- "'unix://' in unix_result.connection.URI"
|
|
|
|
- name: Test unix socket connection again for idempotency
|
|
containers.podman.podman_system_connection:
|
|
executable: "{{ test_executable | default('podman') }}"
|
|
name: "test-unix"
|
|
destination: "unix:///run/podman/podman.sock"
|
|
state: present
|
|
register: unix_result2
|
|
|
|
- name: Check unix socket connection
|
|
assert:
|
|
that:
|
|
- unix_result2 is not changed
|
|
- unix_result2.connection.Name == "test-unix"
|
|
- "'unix://' in unix_result2.connection.URI"
|
|
|
|
- name: Test unix socket connection - different
|
|
containers.podman.podman_system_connection:
|
|
executable: "{{ test_executable | default('podman') }}"
|
|
name: "test-unix"
|
|
destination: "unix:///run/podman/podman2.sock"
|
|
state: present
|
|
register: unix_result3
|
|
|
|
- name: Check unix socket connection
|
|
assert:
|
|
that:
|
|
- unix_result3 is changed
|
|
- unix_result3.connection.Name == "test-unix"
|
|
- "'unix://' in unix_result3.connection.URI"
|
|
|
|
- name: Test TCP connection
|
|
containers.podman.podman_system_connection:
|
|
executable: "{{ test_executable | default('podman') }}"
|
|
name: "test-tcp"
|
|
destination: "tcp://localhost:8080"
|
|
state: present
|
|
register: tcp_result
|
|
|
|
- name: Check TCP connection
|
|
assert:
|
|
that:
|
|
- tcp_result is changed
|
|
- tcp_result.connection.Name == "test-tcp"
|
|
- "'tcp://' in tcp_result.connection.URI"
|
|
|
|
- name: Test connection rename
|
|
containers.podman.podman_system_connection:
|
|
executable: "{{ test_executable | default('podman') }}"
|
|
name: "{{ test_connection_1 }}"
|
|
new_name: "{{ test_connection_1 }}-renamed"
|
|
state: present
|
|
register: rename_result
|
|
|
|
- name: Check rename results
|
|
assert:
|
|
that:
|
|
- rename_result is changed
|
|
- rename_result.connection.Name == test_connection_1 + "-renamed"
|
|
|
|
- name: Test rename non-existent connection (should fail)
|
|
containers.podman.podman_system_connection:
|
|
executable: "{{ test_executable | default('podman') }}"
|
|
name: "non-existent-connection"
|
|
new_name: "new-name"
|
|
state: present
|
|
register: rename_fail_result
|
|
ignore_errors: true
|
|
|
|
- name: Check rename failure
|
|
assert:
|
|
that:
|
|
- rename_fail_result is failed
|
|
- "'Cannot rename non-existent connection' in rename_fail_result.msg"
|
|
|
|
- name: Test setting existing connection as default
|
|
containers.podman.podman_system_connection:
|
|
executable: "{{ test_executable | default('podman') }}"
|
|
name: "{{ test_connection_2 }}"
|
|
destination: "unix:///tmp/test-socket-{{ test_connection_2 }}.sock"
|
|
default: true
|
|
state: present
|
|
register: set_default_result
|
|
|
|
- name: Check set default results
|
|
assert:
|
|
that:
|
|
- set_default_result is changed
|
|
- set_default_result.actions | select('search', 'set as default') | list | length > 0
|
|
|
|
- name: Test removing connection
|
|
containers.podman.podman_system_connection:
|
|
executable: "{{ test_executable | default('podman') }}"
|
|
name: "{{ test_connection_2 }}"
|
|
state: absent
|
|
register: remove_result
|
|
|
|
- name: Check remove results
|
|
assert:
|
|
that:
|
|
- remove_result is changed
|
|
- "'removed' in remove_result.actions[0]"
|
|
|
|
- name: Test idempotency - remove non-existent connection
|
|
containers.podman.podman_system_connection:
|
|
executable: "{{ test_executable | default('podman') }}"
|
|
name: "{{ test_connection_2 }}"
|
|
state: absent
|
|
register: remove_idem_result
|
|
|
|
- name: Check remove idempotency
|
|
assert:
|
|
that:
|
|
- remove_idem_result is not changed
|
|
|
|
- name: Test check mode for adding connection
|
|
containers.podman.podman_system_connection:
|
|
executable: "{{ test_executable | default('podman') }}"
|
|
name: "check-mode-test"
|
|
destination: "unix:///tmp/test-socket-check.sock"
|
|
state: present
|
|
check_mode: true
|
|
register: check_add_result
|
|
|
|
- name: Verify check mode add
|
|
assert:
|
|
that:
|
|
- check_add_result is changed
|
|
- check_add_result.connection.Name == "check-mode-test"
|
|
|
|
- name: Verify connection was not actually added in check mode
|
|
containers.podman.podman_system_connection_info:
|
|
executable: "{{ test_executable | default('podman') }}"
|
|
name: "check-mode-test"
|
|
register: check_verify
|
|
|
|
- name: Check that connection doesn't exist
|
|
assert:
|
|
that:
|
|
- check_verify.connections | length == 0
|
|
|
|
- name: Test check mode for removing connection
|
|
containers.podman.podman_system_connection:
|
|
executable: "{{ test_executable | default('podman') }}"
|
|
name: "{{ test_connection_3 }}"
|
|
state: absent
|
|
check_mode: true
|
|
register: check_remove_result
|
|
|
|
- name: Verify check mode remove
|
|
assert:
|
|
that:
|
|
- check_remove_result is changed
|
|
|
|
- name: Verify connection still exists after check mode
|
|
containers.podman.podman_system_connection_info:
|
|
executable: "{{ test_executable | default('podman') }}"
|
|
name: "{{ test_connection_3 }}"
|
|
register: check_still_exists
|
|
|
|
- name: Check that connection still exists
|
|
assert:
|
|
that:
|
|
- check_still_exists.connections | length > 0
|
|
|
|
always:
|
|
- name: Clean up test connections
|
|
containers.podman.podman_system_connection:
|
|
executable: "{{ test_executable | default('podman') }}"
|
|
name: "{{ item }}"
|
|
state: absent
|
|
ignore_errors: true
|
|
loop:
|
|
- "{{ test_connection_1 }}"
|
|
- "{{ test_connection_1 }}-renamed"
|
|
- "{{ test_connection_2 }}"
|
|
- "{{ test_connection_3 }}"
|
|
- "test-unix"
|
|
- "test-tcp"
|
|
- "check-mode-test"
|