1
0
Fork 0
mirror of https://github.com/containers/ansible-podman-collections.git synced 2026-02-04 07:11:49 +00:00
ansible-podman-collections/tests/integration/targets/podman_system_connection/tasks/main.yml
Sergey f333fe7fca
Add podman system connection modules (#971)
Signed-off-by: Sagi Shnaidman <sshnaidm@redhat.com>
2025-08-25 09:35:27 +03:00

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"