mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-04-15 00:11:29 +00:00
snap_connect: new module to manage snap interface connections (#11682)
* snap_connect: new module to manage snap interface connections Fixes #7722 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * simplify _get_connections() --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
982f9472c5
commit
b79a45753f
7 changed files with 302 additions and 0 deletions
13
tests/integration/targets/snap_connect/aliases
Normal file
13
tests/integration/targets/snap_connect/aliases
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
azp/posix/1
|
||||
azp/posix/vm
|
||||
skip/alpine
|
||||
skip/fedora
|
||||
skip/freebsd
|
||||
skip/osx
|
||||
skip/macos
|
||||
skip/docker
|
||||
skip/rhel8.8 # TODO: fix
|
||||
7
tests/integration/targets/snap_connect/meta/main.yml
Normal file
7
tests/integration/targets/snap_connect/meta/main.yml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
dependencies:
|
||||
- setup_snap
|
||||
13
tests/integration/targets/snap_connect/tasks/main.yml
Normal file
13
tests/integration/targets/snap_connect/tasks/main.yml
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
---
|
||||
####################################################################
|
||||
# WARNING: These are designed specifically for Ansible tests #
|
||||
# and should not be used as examples of how to write Ansible roles #
|
||||
####################################################################
|
||||
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
- name: Test
|
||||
include_tasks: test.yml
|
||||
when: has_snap
|
||||
99
tests/integration/targets/snap_connect/tasks/test.yml
Normal file
99
tests/integration/targets/snap_connect/tasks/test.yml
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
---
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# test-snapd-upower-observe-consumer declares a single plug: upower-observe
|
||||
# which auto-connects to the :upower-observe system slot.
|
||||
# We use this well-known test snap to exercise connect/disconnect.
|
||||
|
||||
- name: Ensure snap 'test-snapd-upower-observe-consumer' is not installed
|
||||
community.general.snap:
|
||||
name: test-snapd-upower-observe-consumer
|
||||
state: absent
|
||||
|
||||
- name: Ensure snap 'test-snapd-upower-observe-consumer' is installed
|
||||
community.general.snap:
|
||||
name: test-snapd-upower-observe-consumer
|
||||
|
||||
################################################################################
|
||||
|
||||
- name: Disconnect upower-observe plug (ensure clean state)
|
||||
community.general.snap_connect:
|
||||
plug: test-snapd-upower-observe-consumer:upower-observe
|
||||
slot: ":upower-observe"
|
||||
state: absent
|
||||
|
||||
- name: Connect upower-observe plug (check mode)
|
||||
community.general.snap_connect:
|
||||
plug: test-snapd-upower-observe-consumer:upower-observe
|
||||
slot: ":upower-observe"
|
||||
check_mode: true
|
||||
register: connect_0
|
||||
|
||||
- name: Connect upower-observe plug
|
||||
community.general.snap_connect:
|
||||
plug: test-snapd-upower-observe-consumer:upower-observe
|
||||
slot: ":upower-observe"
|
||||
register: connect_1
|
||||
|
||||
- name: Connect upower-observe plug (check mode idempotent)
|
||||
community.general.snap_connect:
|
||||
plug: test-snapd-upower-observe-consumer:upower-observe
|
||||
slot: ":upower-observe"
|
||||
check_mode: true
|
||||
register: connect_2
|
||||
|
||||
- name: Connect upower-observe plug (idempotent)
|
||||
community.general.snap_connect:
|
||||
plug: test-snapd-upower-observe-consumer:upower-observe
|
||||
slot: ":upower-observe"
|
||||
register: connect_3
|
||||
|
||||
- name: Assert connect results
|
||||
assert:
|
||||
that:
|
||||
- connect_0 is changed
|
||||
- connect_1 is changed
|
||||
- connect_2 is not changed
|
||||
- connect_3 is not changed
|
||||
|
||||
################################################################################
|
||||
|
||||
- name: Disconnect upower-observe plug (check mode)
|
||||
community.general.snap_connect:
|
||||
plug: test-snapd-upower-observe-consumer:upower-observe
|
||||
slot: ":upower-observe"
|
||||
state: absent
|
||||
check_mode: true
|
||||
register: disconnect_0
|
||||
|
||||
- name: Disconnect upower-observe plug
|
||||
community.general.snap_connect:
|
||||
plug: test-snapd-upower-observe-consumer:upower-observe
|
||||
slot: ":upower-observe"
|
||||
state: absent
|
||||
register: disconnect_1
|
||||
|
||||
- name: Disconnect upower-observe plug (check mode idempotent)
|
||||
community.general.snap_connect:
|
||||
plug: test-snapd-upower-observe-consumer:upower-observe
|
||||
slot: ":upower-observe"
|
||||
state: absent
|
||||
check_mode: true
|
||||
register: disconnect_2
|
||||
|
||||
- name: Disconnect upower-observe plug (idempotent)
|
||||
community.general.snap_connect:
|
||||
plug: test-snapd-upower-observe-consumer:upower-observe
|
||||
slot: ":upower-observe"
|
||||
state: absent
|
||||
register: disconnect_3
|
||||
|
||||
- name: Assert disconnect results
|
||||
assert:
|
||||
that:
|
||||
- disconnect_0 is changed
|
||||
- disconnect_1 is changed
|
||||
- disconnect_2 is not changed
|
||||
- disconnect_3 is not changed
|
||||
Loading…
Add table
Add a link
Reference in a new issue