import rhel-system-roles-1.7.3-2.el8
This commit is contained in:
parent
9846ca6957
commit
7c20edc1b1
37
.gitignore
vendored
37
.gitignore
vendored
@ -1,18 +1,19 @@
|
|||||||
SOURCES/ansible-sshd-e1de59b3c54e9d48a010eeca73755df339c7e628.tar.gz
|
SOURCES/ansible-sshd-1c5c48835e01adc176febf945e1fd36b7d9af7fd.tar.gz
|
||||||
SOURCES/auto-maintenance-8f069305caa0a142c2c6ac14bd4d331282a1c079.tar.gz
|
SOURCES/auto-maintenance-2dd50c8a16af647e4c7a768c481335e97735958a.tar.gz
|
||||||
SOURCES/certificate-0376ceece57882ade8ffaf431b7866aae3e7fed1.tar.gz
|
SOURCES/certificate-1.1.0.tar.gz
|
||||||
SOURCES/crypto_policies-2e2941c5545571fc8bc494099bdf970f498b9d38.tar.gz
|
SOURCES/crypto_policies-1.2.0.tar.gz
|
||||||
SOURCES/ha_cluster-779bb78559de58bb5a1f25a4b92039c373ef59a4.tar.gz
|
SOURCES/ha_cluster-1.3.0.tar.gz
|
||||||
SOURCES/kdump-77596fdd976c6160d6152c200a5432c609725a14.tar.gz
|
SOURCES/kdump-1.1.0.tar.gz
|
||||||
SOURCES/kernel_settings-4c81fd1380712ab0641b6837f092dd9caeeae0a6.tar.gz
|
SOURCES/kernel_settings-1.1.0.tar.gz
|
||||||
SOURCES/logging-07e08107e7ccba5822f8a7aaec1a2ff0a221bede.tar.gz
|
SOURCES/logging-1.5.1.tar.gz
|
||||||
SOURCES/metrics-e81b2650108727f38b1c856699aad26af0f44a46.tar.gz
|
SOURCES/metrics-1.3.1.tar.gz
|
||||||
SOURCES/nbde_client-19f06159582550c8463f7d8492669e26fbdf760b.tar.gz
|
SOURCES/nbde_client-1.1.0.tar.gz
|
||||||
SOURCES/nbde_server-4dfc5e2aca74cb82f2a50eec7e975a2b78ad9678.tar.gz
|
SOURCES/nbde_server-1.1.0.tar.gz
|
||||||
SOURCES/network-bda206d45c87ee8c1a5284de84f5acf5e629de97.tar.gz
|
SOURCES/network-1.4.0.tar.gz
|
||||||
SOURCES/postfix-0.1.tar.gz
|
SOURCES/postfix-1.1.0.tar.gz
|
||||||
SOURCES/selinux-1.1.1.tar.gz
|
SOURCES/selinux-1.3.0.tar.gz
|
||||||
SOURCES/ssh-21adc637511db86b5ba279a70a7301ef3a170669.tar.gz
|
SOURCES/ssh-1.1.0.tar.gz
|
||||||
SOURCES/storage-485de47b0dc0787aea077ba448ecb954f53e40c4.tar.gz
|
SOURCES/storage-1.6.1.tar.gz
|
||||||
SOURCES/timesync-924650d0cd4117f73a7f0413ab745a8632bc5cec.tar.gz
|
SOURCES/timesync-1.6.0.tar.gz
|
||||||
SOURCES/tlog-1.1.0.tar.gz
|
SOURCES/tlog-1.2.0.tar.gz
|
||||||
|
SOURCES/vpn-1.2.0.tar.gz
|
||||||
|
@ -1,18 +1,19 @@
|
|||||||
77e952b62e634c69e36115845b4f24ee3bfe76b7 SOURCES/ansible-sshd-e1de59b3c54e9d48a010eeca73755df339c7e628.tar.gz
|
81dc493a73559dc310a806c8dad6c310f2456512 SOURCES/ansible-sshd-1c5c48835e01adc176febf945e1fd36b7d9af7fd.tar.gz
|
||||||
31d33f92384e423baebb073d3a6e3d271cbef5a5 SOURCES/auto-maintenance-8f069305caa0a142c2c6ac14bd4d331282a1c079.tar.gz
|
88baab8db9cba232b8deb8c690dccf2d3ef77b31 SOURCES/auto-maintenance-2dd50c8a16af647e4c7a768c481335e97735958a.tar.gz
|
||||||
7017c00e2ceede1f6019ba17a56e0145e6012013 SOURCES/certificate-0376ceece57882ade8ffaf431b7866aae3e7fed1.tar.gz
|
b677782b53c4ffe790528b4b2c12f31b07523b4c SOURCES/certificate-1.1.0.tar.gz
|
||||||
469a1a39a19d346c10bf07071a7af52832885047 SOURCES/crypto_policies-2e2941c5545571fc8bc494099bdf970f498b9d38.tar.gz
|
1dea114d52dd032bde01a2a64a9b8233daeaa8dc SOURCES/crypto_policies-1.2.0.tar.gz
|
||||||
838ed06d8d092271fff04bd5e7c16db4661e8567 SOURCES/ha_cluster-779bb78559de58bb5a1f25a4b92039c373ef59a4.tar.gz
|
d3c6ec22b1e60ad3b53b07009ac54e946355aa75 SOURCES/ha_cluster-1.3.0.tar.gz
|
||||||
fa3d5daf6cf1ceeaa87f58c16e11153cf250e2fa SOURCES/kdump-77596fdd976c6160d6152c200a5432c609725a14.tar.gz
|
3e3e61b4a8fecc8fb649ab32a3751bd3a3930281 SOURCES/kdump-1.1.0.tar.gz
|
||||||
471863c062a32a37a18c0ee1b7f0c50387baec99 SOURCES/kernel_settings-4c81fd1380712ab0641b6837f092dd9caeeae0a6.tar.gz
|
90ea8d850a2c46988e4128df36c1254b787d2fb7 SOURCES/kernel_settings-1.1.0.tar.gz
|
||||||
60efc730800600f87e386e16730980ea08417d34 SOURCES/logging-07e08107e7ccba5822f8a7aaec1a2ff0a221bede.tar.gz
|
61127d1b542bf7501ca16834c1716cb01883abfa SOURCES/logging-1.5.1.tar.gz
|
||||||
821d8ebef2d30a41f0fa65bdc5e550f09b375370 SOURCES/metrics-e81b2650108727f38b1c856699aad26af0f44a46.tar.gz
|
170825f78241811a16095f795a93cc9144c39a98 SOURCES/metrics-1.3.1.tar.gz
|
||||||
66b84d088e2c3989f00b3151cc7fdc40f768f9a5 SOURCES/nbde_client-19f06159582550c8463f7d8492669e26fbdf760b.tar.gz
|
f3298859354c92921a3b68fa76f877d4596915d6 SOURCES/nbde_client-1.1.0.tar.gz
|
||||||
0e4e133b75e245d17c0c5a1097ab95f047ae6f65 SOURCES/nbde_server-4dfc5e2aca74cb82f2a50eec7e975a2b78ad9678.tar.gz
|
a2c85f6a850285c8afb8635de0cbbb7eb2b46530 SOURCES/nbde_server-1.1.0.tar.gz
|
||||||
c2d1aaca43cbe787ee7b1e41e875a76b8f95831d SOURCES/network-bda206d45c87ee8c1a5284de84f5acf5e629de97.tar.gz
|
73207015b9e48cd2bdf86fab68f8f34e2181a94b SOURCES/network-1.4.0.tar.gz
|
||||||
66c82331f4ac9598c506c3999965b4d07dbfe49d SOURCES/postfix-0.1.tar.gz
|
8f10d7be6d7ea3d855cf5d22f32b5ba7bb8302be SOURCES/postfix-1.1.0.tar.gz
|
||||||
f2ad38bd93487962de511b1f4bc9dc6607a5ab36 SOURCES/selinux-1.1.1.tar.gz
|
0f6894033fc2110eac6b81b5e6b4ca9ca0af6632 SOURCES/selinux-1.3.0.tar.gz
|
||||||
aef51c665e61166e091440862cfa4e6a8fe3c29d SOURCES/ssh-21adc637511db86b5ba279a70a7301ef3a170669.tar.gz
|
b5e0786216e22508435c13b4da7b6fcce4ad82fe SOURCES/ssh-1.1.0.tar.gz
|
||||||
8b7d7c14e76aa1a872f22d5cd6d3c9a850868ed3 SOURCES/storage-485de47b0dc0787aea077ba448ecb954f53e40c4.tar.gz
|
5820c668d774e9a267011376138cca5a64fb23dd SOURCES/storage-1.6.1.tar.gz
|
||||||
ffd2a706e4e3007684aa9874c8457ad5c8920050 SOURCES/timesync-924650d0cd4117f73a7f0413ab745a8632bc5cec.tar.gz
|
7bf364246b52dd8df3de6b6c9bf4553410983439 SOURCES/timesync-1.6.0.tar.gz
|
||||||
486d7b845348755e7f189afd95f32bbe97c74661 SOURCES/tlog-1.1.0.tar.gz
|
ad38181af7223caa21b602e91d0feeb9085451e0 SOURCES/tlog-1.2.0.tar.gz
|
||||||
|
9f91e40a6657e262893f85158706934954bcbcb2 SOURCES/vpn-1.2.0.tar.gz
|
||||||
|
@ -1,28 +0,0 @@
|
|||||||
commit cafd95d0b03360d12e86170eb10fc1fc3dcade06
|
|
||||||
Author: Pavel Cahyna <pcahyna@redhat.com>
|
|
||||||
Date: Thu Jan 14 11:42:48 2021 +0100
|
|
||||||
|
|
||||||
Get rid of the extra final newline in string
|
|
||||||
|
|
||||||
Use the `-` chomping indicator to indicate that the trailing newline is
|
|
||||||
not intended as a part of the string.
|
|
||||||
https://yaml.org/spec/1.1/#chomping/
|
|
||||||
|
|
||||||
The trailing newline was causing an actual problem in the test.
|
|
||||||
|
|
||||||
Also use the `>` folded style, which is more appropriate here than the
|
|
||||||
`|` literal style.
|
|
||||||
|
|
||||||
diff --git a/tests/tests_ssh.yml b/tests/tests_ssh.yml
|
|
||||||
index 6d3699c..d3503f7 100644
|
|
||||||
--- a/tests/tests_ssh.yml
|
|
||||||
+++ b/tests/tests_ssh.yml
|
|
||||||
@@ -27,7 +27,7 @@
|
|
||||||
- include_role:
|
|
||||||
name: linux-system-roles.kdump
|
|
||||||
vars:
|
|
||||||
- kdump_ssh_user: |
|
|
||||||
+ kdump_ssh_user: >-
|
|
||||||
{{ hostvars[kdump_ssh_server_outside]['ansible_user_id'] }}
|
|
||||||
# This is the outside address. Ansible will connect to it to
|
|
||||||
# copy the ssh key.
|
|
@ -1,13 +0,0 @@
|
|||||||
diff --git a/meta/main.yml b/meta/main.yml
|
|
||||||
index 2478fa6..ad8f4c6 100644
|
|
||||||
--- a/meta/main.yml
|
|
||||||
+++ b/meta/main.yml
|
|
||||||
@@ -7,6 +7,6 @@ galaxy_info:
|
|
||||||
min_ansible_version: 2.4
|
|
||||||
platforms:
|
|
||||||
- name: Fedora
|
|
||||||
- versions: [ 27, 28 ]
|
|
||||||
+ versions: [ 31, 32 ]
|
|
||||||
- name: EL
|
|
||||||
- versions: [ 6, 7 ]
|
|
||||||
+ versions: [ 6, 7, 8 ]
|
|
@ -1,142 +0,0 @@
|
|||||||
diff --git a/tests/commonvars.yml b/tests/commonvars.yml
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..2cd3566
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/commonvars.yml
|
|
||||||
@@ -0,0 +1,2 @@
|
|
||||||
+restore_services:
|
|
||||||
+ - kdump
|
|
||||||
diff --git a/tests/get_services_state.yml b/tests/get_services_state.yml
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..4fe5d36
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/get_services_state.yml
|
|
||||||
@@ -0,0 +1,4 @@
|
|
||||||
+- name: Get initial state of services
|
|
||||||
+ tags: tests::cleanup
|
|
||||||
+ service_facts:
|
|
||||||
+ register: initial_state
|
|
||||||
diff --git a/tests/restore_services_state.yml b/tests/restore_services_state.yml
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..2035dfc
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/restore_services_state.yml
|
|
||||||
@@ -0,0 +1,22 @@
|
|
||||||
+- block:
|
|
||||||
+ - name: load common vars
|
|
||||||
+ include_vars:
|
|
||||||
+ file: commonvars.yml
|
|
||||||
+
|
|
||||||
+ - name: Get final state of services
|
|
||||||
+ service_facts:
|
|
||||||
+ register: final_state
|
|
||||||
+
|
|
||||||
+ - name: Restore state of services
|
|
||||||
+ service:
|
|
||||||
+ name: "{{ item }}"
|
|
||||||
+ state: "{{ 'started' if
|
|
||||||
+ initial_state.ansible_facts.services[sname]['state']
|
|
||||||
+ == 'running' else 'stopped' }}"
|
|
||||||
+ when:
|
|
||||||
+ - sname in final_state.ansible_facts.services
|
|
||||||
+ - sname in initial_state.ansible_facts.services
|
|
||||||
+ vars:
|
|
||||||
+ sname: "{{ item + '.service' }}"
|
|
||||||
+ with_items: "{{ restore_services }}"
|
|
||||||
+ tags: tests::cleanup
|
|
||||||
diff --git a/tests/tests_default.yml b/tests/tests_default.yml
|
|
||||||
index af0b2a0..6ce5241 100644
|
|
||||||
--- a/tests/tests_default.yml
|
|
||||||
+++ b/tests/tests_default.yml
|
|
||||||
@@ -3,3 +3,13 @@
|
|
||||||
|
|
||||||
roles:
|
|
||||||
- linux-system-roles.kdump
|
|
||||||
+
|
|
||||||
+ pre_tasks:
|
|
||||||
+ - name: Import tasks
|
|
||||||
+# tags: tests::tier1::cleanup
|
|
||||||
+ import_tasks: get_services_state.yml
|
|
||||||
+
|
|
||||||
+ post_tasks:
|
|
||||||
+ - name: Import tasks
|
|
||||||
+# tags: tests::tier1::cleanup
|
|
||||||
+ import_tasks: restore_services_state.yml
|
|
||||||
diff --git a/tests/tests_default_wrapper.yml b/tests/tests_default_wrapper.yml
|
|
||||||
index eba31a0..857aab8 100644
|
|
||||||
--- a/tests/tests_default_wrapper.yml
|
|
||||||
+++ b/tests/tests_default_wrapper.yml
|
|
||||||
@@ -1,6 +1,9 @@
|
|
||||||
---
|
|
||||||
- name: Create static inventory from hostvars
|
|
||||||
hosts: all
|
|
||||||
+ tags:
|
|
||||||
+# - 'tests::tier1'
|
|
||||||
+ - 'tests::slow'
|
|
||||||
tasks:
|
|
||||||
- name: create temporary file
|
|
||||||
tempfile:
|
|
||||||
@@ -17,10 +20,16 @@
|
|
||||||
|
|
||||||
|
|
||||||
- name: Run tests_default.yml normally
|
|
||||||
+ tags:
|
|
||||||
+# - 'tests::tier1'
|
|
||||||
+ - 'tests::slow'
|
|
||||||
import_playbook: tests_default.yml
|
|
||||||
|
|
||||||
- name: Run tests_default.yml in check_mode
|
|
||||||
hosts: all
|
|
||||||
+ tags:
|
|
||||||
+# - 'tests::tier1'
|
|
||||||
+ - 'tests::slow'
|
|
||||||
tasks:
|
|
||||||
- name: Run ansible-playbook with tests_default.yml in check mode
|
|
||||||
command: >
|
|
||||||
diff --git a/tests/tests_ssh.yml b/tests/tests_ssh.yml
|
|
||||||
index d12e884..6d3699c 100644
|
|
||||||
--- a/tests/tests_ssh.yml
|
|
||||||
+++ b/tests/tests_ssh.yml
|
|
||||||
@@ -10,6 +10,13 @@
|
|
||||||
# this is the address at which the ssh dump server can be reached
|
|
||||||
# from the managed host. Dumps will be uploaded there.
|
|
||||||
kdump_ssh_server_inside: "{{ kdump_ssh_source if kdump_ssh_source in hostvars[kdump_ssh_server_outside]['ansible_all_ipv4_addresses'] + hostvars[kdump_ssh_server_outside]['ansible_all_ipv6_addresses'] else hostvars[kdump_ssh_server_outside]['ansible_default_ipv4']['address'] }}"
|
|
||||||
+ tags:
|
|
||||||
+ # this test executes some tasks on localhost and relies on
|
|
||||||
+ # localhost being a different host than the managed host
|
|
||||||
+ # (localhost is being used as a second host in multihost
|
|
||||||
+ # scenario). This also means that localhost must be capable
|
|
||||||
+ # enough (not just a container - must be runnign a sshd).
|
|
||||||
+ - 'tests::multihost_localhost'
|
|
||||||
|
|
||||||
tasks:
|
|
||||||
- name: gather facts from {{ kdump_ssh_server_outside }}
|
|
||||||
diff --git a/tests/tests_ssh_wrapper.yml b/tests/tests_ssh_wrapper.yml
|
|
||||||
index 2203f3f..96a764e 100644
|
|
||||||
--- a/tests/tests_ssh_wrapper.yml
|
|
||||||
+++ b/tests/tests_ssh_wrapper.yml
|
|
||||||
@@ -1,6 +1,8 @@
|
|
||||||
---
|
|
||||||
- name: Create static inventory from hostvars
|
|
||||||
hosts: all
|
|
||||||
+ tags:
|
|
||||||
+ - 'tests::slow'
|
|
||||||
tasks:
|
|
||||||
- name: create temporary file
|
|
||||||
tempfile:
|
|
||||||
@@ -17,10 +19,15 @@
|
|
||||||
|
|
||||||
|
|
||||||
- name: Run tests_ssh.yml normally
|
|
||||||
+ tags:
|
|
||||||
+ - 'tests::slow'
|
|
||||||
import_playbook: tests_ssh.yml
|
|
||||||
|
|
||||||
- name: Run tests_ssh.yml in check_mode
|
|
||||||
hosts: all
|
|
||||||
+ tags:
|
|
||||||
+ - 'tests::slow'
|
|
||||||
+ - 'tests::multihost_localhost'
|
|
||||||
tasks:
|
|
||||||
- name: Run ansible-playbook with tests_ssh.yml in check mode
|
|
||||||
command: |
|
|
@ -1,24 +0,0 @@
|
|||||||
From 7ff86f2fa05998afcd8ae87d9cdd660ef5b6ee2c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jan Kurik <jkurik@redhat.com>
|
|
||||||
Date: Thu, 18 Feb 2021 17:09:48 +1100
|
|
||||||
Subject: [PATCH] Update mssql test to exclude non-x86_64 architectures
|
|
||||||
|
|
||||||
pcp-pmda-mssql (and SQL Server itself) are x86_64-only.
|
|
||||||
---
|
|
||||||
tests/tests_sanity_mssql.yml | 3 ++-
|
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/tests/tests_sanity_mssql.yml b/tests/tests_sanity_mssql.yml
|
|
||||||
index 6f1e2cc..8602c36 100644
|
|
||||||
--- a/tests/tests_sanity_mssql.yml
|
|
||||||
+++ b/tests/tests_sanity_mssql.yml
|
|
||||||
@@ -12,7 +12,8 @@
|
|
||||||
- meta: end_host
|
|
||||||
when: (ansible_distribution in ['RedHat'] and
|
|
||||||
( ansible_facts['distribution_version'] is version('8.4', '<'))) or
|
|
||||||
- ansible_distribution not in ['Fedora', 'RedHat']
|
|
||||||
+ ansible_distribution not in ['Fedora', 'RedHat'] or
|
|
||||||
+ ansible_architecture not in ['x86_64']
|
|
||||||
|
|
||||||
- name: Save state of services
|
|
||||||
import_tasks: get_services_state.yml
|
|
@ -1,835 +0,0 @@
|
|||||||
From 7ae16e9ff5291f06ba0d7224a0d6c36b780ea0a2 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Rich Megginson <rmeggins@redhat.com>
|
|
||||||
Date: Wed, 3 Mar 2021 11:37:56 -0700
|
|
||||||
Subject: [PATCH] fix most ansible-test issues, suppress the rest
|
|
||||||
|
|
||||||
Automation Hub, and possibly Galaxy in the future, require the
|
|
||||||
collection to be screened with `ansible-test sanity` among other
|
|
||||||
checks. The role had a number of issues:
|
|
||||||
* Use `AssertionError` instead of `assert`
|
|
||||||
* Use of `logging` module not in accordance with standards, but these
|
|
||||||
are ok and the errors were suppressed
|
|
||||||
* Several import errors which are ok because they are checked
|
|
||||||
elsewhere
|
|
||||||
* Many of the module files use `#!` shebang - not sure why, but
|
|
||||||
the usage is allowed
|
|
||||||
* __init__.py in the module_utils directories must be empty, so a
|
|
||||||
new file myerror.py was added to move the code from __init__.py
|
|
||||||
* The documentation block in the module was not properly constructed
|
|
||||||
or formatted.
|
|
||||||
* shellcheck issues, including removing unused files
|
|
||||||
* use `dummy` instead of `_` (underscore) for variables that are
|
|
||||||
unused
|
|
||||||
|
|
||||||
add WARNING to module docs - collection users should not use directly
|
|
||||||
|
|
||||||
Signed-off-by: Rich Megginson <rmeggins@redhat.com>
|
|
||||||
(cherry picked from commit 7459a29e9104bf01987399153baf0a1c1df05929)
|
|
||||||
---
|
|
||||||
.github/workflows/tox.yml | 4 +-
|
|
||||||
.sanity-ansible-ignore-2.9.txt | 47 ++++++++++
|
|
||||||
README.md | 2 +-
|
|
||||||
library/network_connections.py | 88 ++++++++++++-------
|
|
||||||
module_utils/network_lsr/__init__.py | 7 --
|
|
||||||
.../network_lsr/argument_validator.py | 9 +-
|
|
||||||
module_utils/network_lsr/ethtool.py | 6 +-
|
|
||||||
module_utils/network_lsr/myerror.py | 11 +++
|
|
||||||
module_utils/network_lsr/nm/__init__.py | 4 +
|
|
||||||
.../network_lsr/nm/active_connection.py | 35 ++++----
|
|
||||||
module_utils/network_lsr/nm/client.py | 4 +
|
|
||||||
module_utils/network_lsr/nm/connection.py | 18 ++--
|
|
||||||
module_utils/network_lsr/nm/error.py | 4 +
|
|
||||||
module_utils/network_lsr/nm/provider.py | 8 +-
|
|
||||||
module_utils/network_lsr/nm_provider.py | 4 +
|
|
||||||
module_utils/network_lsr/utils.py | 10 ++-
|
|
||||||
tests/ensure_provider_tests.py | 8 +-
|
|
||||||
tests/get_coverage.sh | 6 +-
|
|
||||||
tests/get_total_coverage.sh | 2 +-
|
|
||||||
tests/integration/test_ethernet.py | 4 +-
|
|
||||||
tests/merge_coverage.sh | 3 +
|
|
||||||
tests/setup_module_utils.sh | 41 ---------
|
|
||||||
tox.ini | 3 -
|
|
||||||
23 files changed, 199 insertions(+), 129 deletions(-)
|
|
||||||
create mode 100644 .sanity-ansible-ignore-2.9.txt
|
|
||||||
create mode 100644 module_utils/network_lsr/myerror.py
|
|
||||||
delete mode 100755 tests/setup_module_utils.sh
|
|
||||||
|
|
||||||
diff --git a/.github/workflows/tox.yml b/.github/workflows/tox.yml
|
|
||||||
index 207bcba..ba0f4c6 100644
|
|
||||||
--- a/.github/workflows/tox.yml
|
|
||||||
+++ b/.github/workflows/tox.yml
|
|
||||||
@@ -3,7 +3,7 @@ name: tox
|
|
||||||
on: # yamllint disable-line rule:truthy
|
|
||||||
- pull_request
|
|
||||||
env:
|
|
||||||
- TOX_LSR: "git+https://github.com/linux-system-roles/tox-lsr@2.2.0"
|
|
||||||
+ TOX_LSR: "git+https://github.com/linux-system-roles/tox-lsr@2.3.0"
|
|
||||||
LSR_ANSIBLES: 'ansible==2.8.* ansible==2.9.*'
|
|
||||||
LSR_MSCENARIOS: default
|
|
||||||
# LSR_EXTRA_PACKAGES: "libdbus-1-dev libgirepository1.0-dev python3-dev"
|
|
||||||
@@ -36,7 +36,7 @@ jobs:
|
|
||||||
toxenvs="py${toxpyver}"
|
|
||||||
case "$toxpyver" in
|
|
||||||
27) toxenvs="${toxenvs},coveralls,flake8,pylint" ;;
|
|
||||||
- 36) toxenvs="${toxenvs},coveralls,black,yamllint,ansible-lint,collection" ;;
|
|
||||||
+ 36) toxenvs="${toxenvs},coveralls,black,yamllint,ansible-lint,collection,ansible-test" ;;
|
|
||||||
37) toxenvs="${toxenvs},coveralls" ;;
|
|
||||||
38) toxenvs="${toxenvs},coveralls" ;;
|
|
||||||
esac
|
|
||||||
diff --git a/.sanity-ansible-ignore-2.9.txt b/.sanity-ansible-ignore-2.9.txt
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..439197e
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/.sanity-ansible-ignore-2.9.txt
|
|
||||||
@@ -0,0 +1,47 @@
|
|
||||||
+tests/network/ensure_provider_tests.py compile-2.7!skip
|
|
||||||
+tests/network/ensure_provider_tests.py compile-3.5!skip
|
|
||||||
+plugins/module_utils/network_lsr/nm/__init__.py empty-init!skip
|
|
||||||
+plugins/module_utils/network_lsr/nm/active_connection.py import-2.7!skip
|
|
||||||
+plugins/module_utils/network_lsr/nm/client.py import-2.7!skip
|
|
||||||
+plugins/module_utils/network_lsr/nm/connection.py import-2.7!skip
|
|
||||||
+plugins/module_utils/network_lsr/nm/provider.py import-2.7!skip
|
|
||||||
+plugins/module_utils/network_lsr/nm/active_connection.py import-3.5!skip
|
|
||||||
+plugins/module_utils/network_lsr/nm/client.py import-3.5!skip
|
|
||||||
+plugins/module_utils/network_lsr/nm/connection.py import-3.5!skip
|
|
||||||
+plugins/module_utils/network_lsr/nm/provider.py import-3.5!skip
|
|
||||||
+plugins/module_utils/network_lsr/nm/active_connection.py import-3.6!skip
|
|
||||||
+plugins/module_utils/network_lsr/nm/client.py import-3.6!skip
|
|
||||||
+plugins/module_utils/network_lsr/nm/connection.py import-3.6!skip
|
|
||||||
+plugins/module_utils/network_lsr/nm/provider.py import-3.6!skip
|
|
||||||
+plugins/module_utils/network_lsr/nm/active_connection.py import-3.7!skip
|
|
||||||
+plugins/module_utils/network_lsr/nm/client.py import-3.7!skip
|
|
||||||
+plugins/module_utils/network_lsr/nm/connection.py import-3.7!skip
|
|
||||||
+plugins/module_utils/network_lsr/nm/provider.py import-3.7!skip
|
|
||||||
+plugins/module_utils/network_lsr/nm/active_connection.py import-3.8!skip
|
|
||||||
+plugins/module_utils/network_lsr/nm/client.py import-3.8!skip
|
|
||||||
+plugins/module_utils/network_lsr/nm/connection.py import-3.8!skip
|
|
||||||
+plugins/module_utils/network_lsr/nm/provider.py import-3.8!skip
|
|
||||||
+plugins/module_utils/network_lsr/__init__.py shebang!skip
|
|
||||||
+plugins/module_utils/network_lsr/argument_validator.py shebang!skip
|
|
||||||
+plugins/module_utils/network_lsr/utils.py shebang!skip
|
|
||||||
+plugins/module_utils/network_lsr/myerror.py shebang!skip
|
|
||||||
+tests/network/covstats shebang!skip
|
|
||||||
+tests/network/ensure_provider_tests.py shebang!skip
|
|
||||||
+tests/network/get_coverage.sh shebang!skip
|
|
||||||
+tests/network/get_total_coverage.sh shebang!skip
|
|
||||||
+tests/network/merge_coverage.sh shebang!skip
|
|
||||||
+tests/network/ensure_provider_tests.py future-import-boilerplate!skip
|
|
||||||
+tests/network/integration/conftest.py future-import-boilerplate!skip
|
|
||||||
+tests/network/integration/test_ethernet.py future-import-boilerplate!skip
|
|
||||||
+tests/network/unit/test_network_connections.py future-import-boilerplate!skip
|
|
||||||
+tests/network/unit/test_nm_provider.py future-import-boilerplate!skip
|
|
||||||
+tests/network/ensure_provider_tests.py metaclass-boilerplate!skip
|
|
||||||
+tests/network/integration/conftest.py metaclass-boilerplate!skip
|
|
||||||
+tests/network/integration/test_ethernet.py metaclass-boilerplate!skip
|
|
||||||
+tests/network/unit/test_network_connections.py metaclass-boilerplate!skip
|
|
||||||
+tests/network/unit/test_nm_provider.py metaclass-boilerplate!skip
|
|
||||||
+plugins/modules/network_connections.py validate-modules:missing-examples
|
|
||||||
+plugins/modules/network_connections.py validate-modules:missing-gplv3-license
|
|
||||||
+plugins/modules/network_connections.py validate-modules:no-default-for-required-parameter
|
|
||||||
+plugins/modules/network_connections.py validate-modules:parameter-type-not-in-doc
|
|
||||||
+plugins/modules/network_connections.py validate-modules:undocumented-parameter
|
|
||||||
diff --git a/README.md b/README.md
|
|
||||||
index c1462b6..c257c08 100644
|
|
||||||
--- a/README.md
|
|
||||||
+++ b/README.md
|
|
||||||
@@ -145,7 +145,7 @@ a consequence, `state: up` always changes the system.
|
|
||||||
|
|
||||||
You can deactivate a connection profile, even if is currently not active. As a consequence, `state: down` always changes the system.
|
|
||||||
|
|
||||||
-Note that if the `state` option is unset, the connection profile’s runtime state will not be changed.
|
|
||||||
+Note that if the `state` option is unset, the connection profile's runtime state will not be changed.
|
|
||||||
|
|
||||||
|
|
||||||
### `persistent_state`
|
|
||||||
diff --git a/library/network_connections.py b/library/network_connections.py
|
|
||||||
index 3224892..3a6e47f 100644
|
|
||||||
--- a/library/network_connections.py
|
|
||||||
+++ b/library/network_connections.py
|
|
||||||
@@ -2,6 +2,30 @@
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
|
|
||||||
+from __future__ import absolute_import, division, print_function
|
|
||||||
+
|
|
||||||
+__metaclass__ = type
|
|
||||||
+
|
|
||||||
+DOCUMENTATION = """
|
|
||||||
+---
|
|
||||||
+module: network_connections
|
|
||||||
+author: Thomas Haller (@thom311)
|
|
||||||
+short_description: module for network role to manage connection profiles
|
|
||||||
+requirements: [pygobject, dbus, NetworkManager]
|
|
||||||
+version_added: "2.0"
|
|
||||||
+description:
|
|
||||||
+ - "WARNING: Do not use this module directly! It is only for role internal use."
|
|
||||||
+ - |
|
|
||||||
+ Manage networking profiles (connections) for NetworkManager and
|
|
||||||
+ initscripts networking providers. Documentation needs to be written. Note
|
|
||||||
+ that the network_connections module tightly integrates with the network
|
|
||||||
+ role and currently it is not expected to use this module outside the role.
|
|
||||||
+ Thus, consult README.md for examples for the role. The requirements are
|
|
||||||
+ only for the NetworkManager (nm) provider.
|
|
||||||
+options: {}
|
|
||||||
+"""
|
|
||||||
+
|
|
||||||
+
|
|
||||||
import errno
|
|
||||||
import functools
|
|
||||||
import os
|
|
||||||
@@ -16,7 +40,7 @@ import logging
|
|
||||||
# pylint: disable=import-error, no-name-in-module
|
|
||||||
from ansible.module_utils.basic import AnsibleModule
|
|
||||||
from ansible.module_utils.network_lsr import ethtool # noqa:E501
|
|
||||||
-from ansible.module_utils.network_lsr import MyError # noqa:E501
|
|
||||||
+from ansible.module_utils.network_lsr.myerror import MyError # noqa:E501
|
|
||||||
|
|
||||||
from ansible.module_utils.network_lsr.argument_validator import ( # noqa:E501
|
|
||||||
ArgUtil,
|
|
||||||
@@ -30,22 +54,6 @@ from ansible.module_utils.network_lsr import nm_provider # noqa:E501
|
|
||||||
# pylint: enable=import-error, no-name-in-module
|
|
||||||
|
|
||||||
|
|
||||||
-DOCUMENTATION = """
|
|
||||||
----
|
|
||||||
-module: network_connections
|
|
||||||
-author: "Thomas Haller (thaller@redhat.com)"
|
|
||||||
-short_description: module for network role to manage connection profiles
|
|
||||||
-requirements: for 'nm' provider requires pygobject, dbus and NetworkManager.
|
|
||||||
-version_added: "2.0"
|
|
||||||
-description: Manage networking profiles (connections) for NetworkManager and
|
|
||||||
- initscripts networking providers.
|
|
||||||
-options: Documentation needs to be written. Note that the network_connections
|
|
||||||
- module tightly integrates with the network role and currently it is not
|
|
||||||
- expected to use this module outside the role. Thus, consult README.md for
|
|
||||||
- examples for the role.
|
|
||||||
-"""
|
|
||||||
-
|
|
||||||
-
|
|
||||||
###############################################################################
|
|
||||||
PERSISTENT_STATE = "persistent_state"
|
|
||||||
ABSENT_STATE = "absent"
|
|
||||||
@@ -772,7 +780,7 @@ class NMUtil:
|
|
||||||
if compare_flags is None:
|
|
||||||
compare_flags = NM.SettingCompareFlags.IGNORE_TIMESTAMP
|
|
||||||
|
|
||||||
- return not (not (con_a.compare(con_b, compare_flags)))
|
|
||||||
+ return con_a.compare(con_b, compare_flags)
|
|
||||||
|
|
||||||
def connection_is_active(self, con):
|
|
||||||
NM = Util.NM()
|
|
||||||
@@ -1390,7 +1398,7 @@ class RunEnvironment(object):
|
|
||||||
def check_mode_set(self, check_mode, connections=None):
|
|
||||||
c = self._check_mode
|
|
||||||
self._check_mode = check_mode
|
|
||||||
- assert (
|
|
||||||
+ if not (
|
|
||||||
(c is None and check_mode in [CheckMode.PREPARE])
|
|
||||||
or (
|
|
||||||
c == CheckMode.PREPARE
|
|
||||||
@@ -1399,7 +1407,8 @@ class RunEnvironment(object):
|
|
||||||
or (c == CheckMode.PRE_RUN and check_mode in [CheckMode.REAL_RUN])
|
|
||||||
or (c == CheckMode.REAL_RUN and check_mode in [CheckMode.DONE])
|
|
||||||
or (c == CheckMode.DRY_RUN and check_mode in [CheckMode.DONE])
|
|
||||||
- )
|
|
||||||
+ ):
|
|
||||||
+ raise AssertionError("check_mode value is incorrect {0}".format(c))
|
|
||||||
self._check_mode_changed(c, check_mode, connections)
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1461,7 +1470,8 @@ class RunEnvironmentAnsible(RunEnvironment):
|
|
||||||
warn_traceback=False,
|
|
||||||
force_fail=False,
|
|
||||||
):
|
|
||||||
- assert idx >= -1
|
|
||||||
+ if not idx >= -1:
|
|
||||||
+ raise AssertionError("idx {0} is less than -1".format(idx))
|
|
||||||
self._log_idx += 1
|
|
||||||
self.run_results[idx]["log"].append((severity, msg, self._log_idx))
|
|
||||||
if severity == LogLevel.ERROR:
|
|
||||||
@@ -1598,14 +1608,15 @@ class Cmd(object):
|
|
||||||
def connections_data(self):
|
|
||||||
c = self._connections_data
|
|
||||||
if c is None:
|
|
||||||
- assert self.check_mode in [
|
|
||||||
+ if self.check_mode not in [
|
|
||||||
CheckMode.DRY_RUN,
|
|
||||||
CheckMode.PRE_RUN,
|
|
||||||
CheckMode.REAL_RUN,
|
|
||||||
- ]
|
|
||||||
- c = []
|
|
||||||
- for _ in range(0, len(self.connections)):
|
|
||||||
- c.append({"changed": False})
|
|
||||||
+ ]:
|
|
||||||
+ raise AssertionError(
|
|
||||||
+ "invalid value {0} for self.check_mode".format(self.check_mode)
|
|
||||||
+ )
|
|
||||||
+ c = [{"changed": False}] * len(self.connections)
|
|
||||||
self._connections_data = c
|
|
||||||
return c
|
|
||||||
|
|
||||||
@@ -1614,11 +1625,14 @@ class Cmd(object):
|
|
||||||
c["changed"] = False
|
|
||||||
|
|
||||||
def connections_data_set_changed(self, idx, changed=True):
|
|
||||||
- assert self._check_mode in [
|
|
||||||
+ if self._check_mode not in [
|
|
||||||
CheckMode.PRE_RUN,
|
|
||||||
CheckMode.DRY_RUN,
|
|
||||||
CheckMode.REAL_RUN,
|
|
||||||
- ]
|
|
||||||
+ ]:
|
|
||||||
+ raise AssertionError(
|
|
||||||
+ "invalid value {0} for self._check_mode".format(self._check_mode)
|
|
||||||
+ )
|
|
||||||
if not changed:
|
|
||||||
return
|
|
||||||
self.connections_data[idx]["changed"] = changed
|
|
||||||
@@ -1688,7 +1702,10 @@ class Cmd(object):
|
|
||||||
# modify the connection.
|
|
||||||
|
|
||||||
con = self.connections[idx]
|
|
||||||
- assert con["state"] in ["up", "down"]
|
|
||||||
+ if con["state"] not in ["up", "down"]:
|
|
||||||
+ raise AssertionError(
|
|
||||||
+ "connection state {0} not 'up' or 'down'".format(con["state"])
|
|
||||||
+ )
|
|
||||||
|
|
||||||
# also check, if the current profile is 'up' with a 'type' (which
|
|
||||||
# possibly modifies the connection as well)
|
|
||||||
@@ -1736,7 +1753,9 @@ class Cmd(object):
|
|
||||||
elif self._check_mode != CheckMode.DONE:
|
|
||||||
c = CheckMode.DONE
|
|
||||||
else:
|
|
||||||
- assert False
|
|
||||||
+ raise AssertionError(
|
|
||||||
+ "invalid value {0} for self._check_mode".format(self._check_mode)
|
|
||||||
+ )
|
|
||||||
self._check_mode = c
|
|
||||||
self.run_env.check_mode_set(c)
|
|
||||||
return c
|
|
||||||
@@ -1902,7 +1921,12 @@ class Cmd_nm(Cmd):
|
|
||||||
|
|
||||||
name = connection["name"]
|
|
||||||
if not name:
|
|
||||||
- assert connection["persistent_state"] == "absent"
|
|
||||||
+ if not connection["persistent_state"] == "absent":
|
|
||||||
+ raise AssertionError(
|
|
||||||
+ "persistent_state must be 'absent' not {0} when there is no connection 'name'".format(
|
|
||||||
+ connection["persistent_state"]
|
|
||||||
+ )
|
|
||||||
+ )
|
|
||||||
continue
|
|
||||||
if name in names:
|
|
||||||
exists = names[name]["nm.exists"]
|
|
||||||
@@ -1979,7 +2003,7 @@ class Cmd_nm(Cmd):
|
|
||||||
idx, "ethtool.%s specified but not supported by NM", specified
|
|
||||||
)
|
|
||||||
|
|
||||||
- for option, _ in specified.items():
|
|
||||||
+ for option in specified.keys():
|
|
||||||
nm_name = nm_get_name_fcnt(option)
|
|
||||||
if not nm_name:
|
|
||||||
self.log_fatal(
|
|
||||||
diff --git a/module_utils/network_lsr/__init__.py b/module_utils/network_lsr/__init__.py
|
|
||||||
index 22c717c..e69de29 100644
|
|
||||||
--- a/module_utils/network_lsr/__init__.py
|
|
||||||
+++ b/module_utils/network_lsr/__init__.py
|
|
||||||
@@ -1,7 +0,0 @@
|
|
||||||
-#!/usr/bin/python3 -tt
|
|
||||||
-# vim: fileencoding=utf8
|
|
||||||
-# SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-class MyError(Exception):
|
|
||||||
- pass
|
|
||||||
diff --git a/module_utils/network_lsr/argument_validator.py b/module_utils/network_lsr/argument_validator.py
|
|
||||||
index 24ffdc4..f338489 100644
|
|
||||||
--- a/module_utils/network_lsr/argument_validator.py
|
|
||||||
+++ b/module_utils/network_lsr/argument_validator.py
|
|
||||||
@@ -2,12 +2,16 @@
|
|
||||||
# vim: fileencoding=utf8
|
|
||||||
# SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
|
|
||||||
+from __future__ import absolute_import, division, print_function
|
|
||||||
+
|
|
||||||
+__metaclass__ = type
|
|
||||||
+
|
|
||||||
import posixpath
|
|
||||||
import socket
|
|
||||||
import re
|
|
||||||
|
|
||||||
# pylint: disable=import-error, no-name-in-module
|
|
||||||
-from ansible.module_utils.network_lsr import MyError # noqa:E501
|
|
||||||
+from ansible.module_utils.network_lsr.myerror import MyError # noqa:E501
|
|
||||||
from ansible.module_utils.network_lsr.utils import Util # noqa:E501
|
|
||||||
|
|
||||||
UINT32_MAX = 0xFFFFFFFF
|
|
||||||
@@ -72,7 +76,8 @@ class ArgUtil:
|
|
||||||
|
|
||||||
class ValidationError(MyError):
|
|
||||||
def __init__(self, name, message):
|
|
||||||
- Exception.__init__(self, name + ": " + message)
|
|
||||||
+ # pylint: disable=non-parent-init-called
|
|
||||||
+ super(ValidationError, self).__init__(name + ": " + message)
|
|
||||||
self.error_message = message
|
|
||||||
self.name = name
|
|
||||||
|
|
||||||
diff --git a/module_utils/network_lsr/ethtool.py b/module_utils/network_lsr/ethtool.py
|
|
||||||
index 21e2152..3246bef 100644
|
|
||||||
--- a/module_utils/network_lsr/ethtool.py
|
|
||||||
+++ b/module_utils/network_lsr/ethtool.py
|
|
||||||
@@ -1,5 +1,9 @@
|
|
||||||
# SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
|
|
||||||
+from __future__ import absolute_import, division, print_function
|
|
||||||
+
|
|
||||||
+__metaclass__ = type
|
|
||||||
+
|
|
||||||
import array
|
|
||||||
import struct
|
|
||||||
import fcntl
|
|
||||||
@@ -46,7 +50,7 @@ def get_perm_addr(ifname):
|
|
||||||
res = ecmd.tobytes()
|
|
||||||
except AttributeError: # tobytes() is not available in python2
|
|
||||||
res = ecmd.tostring()
|
|
||||||
- _, size, perm_addr = struct.unpack("II%is" % MAX_ADDR_LEN, res)
|
|
||||||
+ dummy, size, perm_addr = struct.unpack("II%is" % MAX_ADDR_LEN, res)
|
|
||||||
perm_addr = Util.mac_ntoa(perm_addr[:size])
|
|
||||||
except IOError:
|
|
||||||
perm_addr = None
|
|
||||||
diff --git a/module_utils/network_lsr/myerror.py b/module_utils/network_lsr/myerror.py
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..f785265
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/module_utils/network_lsr/myerror.py
|
|
||||||
@@ -0,0 +1,11 @@
|
|
||||||
+#!/usr/bin/python3 -tt
|
|
||||||
+# vim: fileencoding=utf8
|
|
||||||
+# SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
+
|
|
||||||
+from __future__ import absolute_import, division, print_function
|
|
||||||
+
|
|
||||||
+__metaclass__ = type
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+class MyError(Exception):
|
|
||||||
+ pass
|
|
||||||
diff --git a/module_utils/network_lsr/nm/__init__.py b/module_utils/network_lsr/nm/__init__.py
|
|
||||||
index 58fbb5a..74c17cb 100644
|
|
||||||
--- a/module_utils/network_lsr/nm/__init__.py
|
|
||||||
+++ b/module_utils/network_lsr/nm/__init__.py
|
|
||||||
@@ -1,5 +1,9 @@
|
|
||||||
# Relative import is not support by ansible 2.8 yet
|
|
||||||
# pylint: disable=import-error, no-name-in-module
|
|
||||||
+from __future__ import absolute_import, division, print_function
|
|
||||||
+
|
|
||||||
+__metaclass__ = type
|
|
||||||
+
|
|
||||||
from ansible.module_utils.network_lsr.nm import provider # noqa:E501
|
|
||||||
|
|
||||||
# pylint: enable=import-error, no-name-in-module
|
|
||||||
diff --git a/module_utils/network_lsr/nm/active_connection.py b/module_utils/network_lsr/nm/active_connection.py
|
|
||||||
index a6c5a37..432142c 100644
|
|
||||||
--- a/module_utils/network_lsr/nm/active_connection.py
|
|
||||||
+++ b/module_utils/network_lsr/nm/active_connection.py
|
|
||||||
@@ -2,6 +2,10 @@
|
|
||||||
|
|
||||||
# Handle NM.ActiveConnection
|
|
||||||
|
|
||||||
+from __future__ import absolute_import, division, print_function
|
|
||||||
+
|
|
||||||
+__metaclass__ = type
|
|
||||||
+
|
|
||||||
import logging
|
|
||||||
|
|
||||||
# Relative import is not support by ansible 2.8 yet
|
|
||||||
@@ -21,19 +25,15 @@ def deactivate_active_connection(nm_ac, timeout, check_mode):
|
|
||||||
return False
|
|
||||||
if not check_mode:
|
|
||||||
main_loop = client.get_mainloop(timeout)
|
|
||||||
- logging.debug(
|
|
||||||
- "Deactivating {id} with timeout {timeout}".format(
|
|
||||||
- id=nm_ac.get_id(), timeout=timeout
|
|
||||||
- )
|
|
||||||
- )
|
|
||||||
+ logging.debug("Deactivating %s with timeout %s", nm_ac.get_id(), timeout)
|
|
||||||
user_data = main_loop
|
|
||||||
handler_id = nm_ac.connect(
|
|
||||||
NM_AC_STATE_CHANGED_SIGNAL, _nm_ac_state_change_callback, user_data
|
|
||||||
)
|
|
||||||
logging.debug(
|
|
||||||
- "Registered {signal} on client.NM.ActiveConnection {id}".format(
|
|
||||||
- signal=NM_AC_STATE_CHANGED_SIGNAL, id=nm_ac.get_id()
|
|
||||||
- )
|
|
||||||
+ "Registered %s on client.NM.ActiveConnection %s",
|
|
||||||
+ NM_AC_STATE_CHANGED_SIGNAL,
|
|
||||||
+ nm_ac.get_id(),
|
|
||||||
)
|
|
||||||
if nm_ac.props.state != client.NM.ActiveConnectionState.DEACTIVATING:
|
|
||||||
nm_client = client.get_client()
|
|
||||||
@@ -44,9 +44,7 @@ def deactivate_active_connection(nm_ac, timeout, check_mode):
|
|
||||||
_nm_ac_deactivate_call_back,
|
|
||||||
user_data,
|
|
||||||
)
|
|
||||||
- logging.debug(
|
|
||||||
- "Deactivating client.NM.ActiveConnection {0}".format(nm_ac.get_id())
|
|
||||||
- )
|
|
||||||
+ logging.debug("Deactivating client.NM.ActiveConnection %s", nm_ac.get_id())
|
|
||||||
main_loop.run()
|
|
||||||
return True
|
|
||||||
|
|
||||||
@@ -56,14 +54,13 @@ def _nm_ac_state_change_callback(nm_ac, state, reason, user_data):
|
|
||||||
if main_loop.is_cancelled:
|
|
||||||
return
|
|
||||||
logging.debug(
|
|
||||||
- "Got client.NM.ActiveConnection state change: {id}: {state} {reason}".format(
|
|
||||||
- id=nm_ac.get_id(), state=state, reason=reason
|
|
||||||
- )
|
|
||||||
+ "Got client.NM.ActiveConnection state change: %s: %s %s",
|
|
||||||
+ nm_ac.get_id(),
|
|
||||||
+ state,
|
|
||||||
+ reason,
|
|
||||||
)
|
|
||||||
if nm_ac.props.state == client.NM.ActiveConnectionState.DEACTIVATED:
|
|
||||||
- logging.debug(
|
|
||||||
- "client.NM.ActiveConnection {0} is deactivated".format(nm_ac.get_id())
|
|
||||||
- )
|
|
||||||
+ logging.debug("client.NM.ActiveConnection %s is deactivated", nm_ac.get_id())
|
|
||||||
main_loop.quit()
|
|
||||||
|
|
||||||
|
|
||||||
@@ -82,9 +79,7 @@ def _nm_ac_deactivate_call_back(nm_client, result, user_data):
|
|
||||||
client.NM.ManagerError.quark(), client.NM.ManagerError.CONNECTIONNOTACTIVE
|
|
||||||
):
|
|
||||||
logging.info(
|
|
||||||
- "Connection is not active on {0}, no need to deactivate".format(
|
|
||||||
- nm_ac_id
|
|
||||||
- )
|
|
||||||
+ "Connection is not active on %s, no need to deactivate", nm_ac_id
|
|
||||||
)
|
|
||||||
if nm_ac:
|
|
||||||
nm_ac.handler_disconnect(handler_id)
|
|
||||||
diff --git a/module_utils/network_lsr/nm/client.py b/module_utils/network_lsr/nm/client.py
|
|
||||||
index 4992887..f47cc53 100644
|
|
||||||
--- a/module_utils/network_lsr/nm/client.py
|
|
||||||
+++ b/module_utils/network_lsr/nm/client.py
|
|
||||||
@@ -1,5 +1,9 @@
|
|
||||||
# SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
|
|
||||||
+from __future__ import absolute_import, division, print_function
|
|
||||||
+
|
|
||||||
+__metaclass__ = type
|
|
||||||
+
|
|
||||||
import logging
|
|
||||||
|
|
||||||
# Relative import is not support by ansible 2.8 yet
|
|
||||||
diff --git a/module_utils/network_lsr/nm/connection.py b/module_utils/network_lsr/nm/connection.py
|
|
||||||
index 6982034..474da8d 100644
|
|
||||||
--- a/module_utils/network_lsr/nm/connection.py
|
|
||||||
+++ b/module_utils/network_lsr/nm/connection.py
|
|
||||||
@@ -2,6 +2,10 @@
|
|
||||||
|
|
||||||
# Handle NM.RemoteConnection
|
|
||||||
|
|
||||||
+from __future__ import absolute_import, division, print_function
|
|
||||||
+
|
|
||||||
+__metaclass__ = type
|
|
||||||
+
|
|
||||||
import logging
|
|
||||||
|
|
||||||
# Relative import is not support by ansible 2.8 yet
|
|
||||||
@@ -26,9 +30,10 @@ def delete_remote_connection(nm_profile, timeout, check_mode):
|
|
||||||
user_data,
|
|
||||||
)
|
|
||||||
logging.debug(
|
|
||||||
- "Deleting profile {id}/{uuid} with timeout {timeout}".format(
|
|
||||||
- id=nm_profile.get_id(), uuid=nm_profile.get_uuid(), timeout=timeout
|
|
||||||
- )
|
|
||||||
+ "Deleting profile %s/%s with timeout %s",
|
|
||||||
+ nm_profile.get_id(),
|
|
||||||
+ nm_profile.get_uuid(),
|
|
||||||
+ timeout,
|
|
||||||
)
|
|
||||||
main_loop.run()
|
|
||||||
return True
|
|
||||||
@@ -78,9 +83,10 @@ def volatilize_remote_connection(nm_profile, timeout, check_mode):
|
|
||||||
user_data,
|
|
||||||
)
|
|
||||||
logging.debug(
|
|
||||||
- "Volatilizing profile {id}/{uuid} with timeout {timeout}".format(
|
|
||||||
- id=nm_profile.get_id(), uuid=nm_profile.get_uuid(), timeout=timeout
|
|
||||||
- )
|
|
||||||
+ "Volatilizing profile %s/%s with timeout %s",
|
|
||||||
+ nm_profile.get_id(),
|
|
||||||
+ nm_profile.get_uuid(),
|
|
||||||
+ timeout,
|
|
||||||
)
|
|
||||||
main_loop.run()
|
|
||||||
return True
|
|
||||||
diff --git a/module_utils/network_lsr/nm/error.py b/module_utils/network_lsr/nm/error.py
|
|
||||||
index 42014ec..d87bc72 100644
|
|
||||||
--- a/module_utils/network_lsr/nm/error.py
|
|
||||||
+++ b/module_utils/network_lsr/nm/error.py
|
|
||||||
@@ -1,5 +1,9 @@
|
|
||||||
# SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
|
|
||||||
+from __future__ import absolute_import, division, print_function
|
|
||||||
+
|
|
||||||
+__metaclass__ = type
|
|
||||||
+
|
|
||||||
|
|
||||||
class LsrNetworkNmError(Exception):
|
|
||||||
pass
|
|
||||||
diff --git a/module_utils/network_lsr/nm/provider.py b/module_utils/network_lsr/nm/provider.py
|
|
||||||
index 52e7502..567c9d1 100644
|
|
||||||
--- a/module_utils/network_lsr/nm/provider.py
|
|
||||||
+++ b/module_utils/network_lsr/nm/provider.py
|
|
||||||
@@ -1,5 +1,9 @@
|
|
||||||
# SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
|
|
||||||
+from __future__ import absolute_import, division, print_function
|
|
||||||
+
|
|
||||||
+__metaclass__ = type
|
|
||||||
+
|
|
||||||
import logging
|
|
||||||
|
|
||||||
# Relative import is not support by ansible 2.8 yet
|
|
||||||
@@ -25,7 +29,7 @@ class NetworkManagerProvider:
|
|
||||||
nm_ac, timeout, check_mode
|
|
||||||
)
|
|
||||||
if not changed:
|
|
||||||
- logging.info("No active connection for {0}".format(connection_name))
|
|
||||||
+ logging.info("No active connection for %s", connection_name)
|
|
||||||
|
|
||||||
return changed
|
|
||||||
|
|
||||||
@@ -49,7 +53,7 @@ class NetworkManagerProvider:
|
|
||||||
nm_profile, timeout, check_mode
|
|
||||||
)
|
|
||||||
if not changed:
|
|
||||||
- logging.info("No connection with UUID {0} to volatilize".format(uuid))
|
|
||||||
+ logging.info("No connection with UUID %s to volatilize", uuid)
|
|
||||||
|
|
||||||
return changed
|
|
||||||
|
|
||||||
diff --git a/module_utils/network_lsr/nm_provider.py b/module_utils/network_lsr/nm_provider.py
|
|
||||||
index c75242a..d6168eb 100644
|
|
||||||
--- a/module_utils/network_lsr/nm_provider.py
|
|
||||||
+++ b/module_utils/network_lsr/nm_provider.py
|
|
||||||
@@ -1,6 +1,10 @@
|
|
||||||
# SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
""" Support for NetworkManager aka the NM provider """
|
|
||||||
|
|
||||||
+from __future__ import absolute_import, division, print_function
|
|
||||||
+
|
|
||||||
+__metaclass__ = type
|
|
||||||
+
|
|
||||||
# pylint: disable=import-error, no-name-in-module
|
|
||||||
from ansible.module_utils.network_lsr.utils import Util # noqa:E501
|
|
||||||
|
|
||||||
diff --git a/module_utils/network_lsr/utils.py b/module_utils/network_lsr/utils.py
|
|
||||||
index 73d9528..bc258fe 100644
|
|
||||||
--- a/module_utils/network_lsr/utils.py
|
|
||||||
+++ b/module_utils/network_lsr/utils.py
|
|
||||||
@@ -2,18 +2,23 @@
|
|
||||||
# SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
# vim: fileencoding=utf8
|
|
||||||
|
|
||||||
+from __future__ import absolute_import, division, print_function
|
|
||||||
+
|
|
||||||
+__metaclass__ = type
|
|
||||||
+
|
|
||||||
import socket
|
|
||||||
import sys
|
|
||||||
import uuid
|
|
||||||
|
|
||||||
# pylint: disable=import-error, no-name-in-module
|
|
||||||
-from ansible.module_utils.network_lsr import MyError # noqa:E501
|
|
||||||
+from ansible.module_utils.network_lsr.myerror import MyError # noqa:E501
|
|
||||||
|
|
||||||
|
|
||||||
class Util:
|
|
||||||
|
|
||||||
PY3 = sys.version_info[0] == 3
|
|
||||||
|
|
||||||
+ # pylint: disable=undefined-variable
|
|
||||||
STRING_TYPE = str if PY3 else basestring # noqa:F821
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
@@ -241,7 +246,8 @@ class Util:
|
|
||||||
n = int(c, 16) * 16
|
|
||||||
i = 1
|
|
||||||
else:
|
|
||||||
- assert i == 1
|
|
||||||
+ if not i == 1:
|
|
||||||
+ raise AssertionError("i != 1 - value is {0}".format(i))
|
|
||||||
n = n + int(c, 16)
|
|
||||||
i = 2
|
|
||||||
b.append(n)
|
|
||||||
diff --git a/tests/ensure_provider_tests.py b/tests/ensure_provider_tests.py
|
|
||||||
index 3620729..4e45e6a 100755
|
|
||||||
--- a/tests/ensure_provider_tests.py
|
|
||||||
+++ b/tests/ensure_provider_tests.py
|
|
||||||
@@ -73,8 +73,6 @@ NM_ONLY_TESTS = {
|
|
||||||
MINIMUM_VERSION: "'1.25.1'",
|
|
||||||
"comment": "# NetworkManager 1.25.1 introduced ethtool coalesce support",
|
|
||||||
},
|
|
||||||
- "playbooks/tests_802_1x_updated.yml": {},
|
|
||||||
- "playbooks/tests_802_1x.yml": {},
|
|
||||||
"playbooks/tests_reapply.yml": {},
|
|
||||||
# team interface is not supported on Fedora
|
|
||||||
"playbooks/tests_team.yml": {
|
|
||||||
@@ -117,9 +115,7 @@ def create_nm_playbook(test_playbook):
|
|
||||||
EXTRA_RUN_CONDITION, ""
|
|
||||||
)
|
|
||||||
if extra_run_condition:
|
|
||||||
- extra_run_condition = "{}{}\n".format(
|
|
||||||
- EXTRA_RUN_CONDITION_PREFIX, extra_run_condition
|
|
||||||
- )
|
|
||||||
+ extra_run_condition = f"{EXTRA_RUN_CONDITION_PREFIX}{extra_run_condition}\n"
|
|
||||||
|
|
||||||
nm_version_check = ""
|
|
||||||
if minimum_nm_version:
|
|
||||||
@@ -212,7 +208,7 @@ def main():
|
|
||||||
|
|
||||||
if missing:
|
|
||||||
print("ERROR: No NM or initscripts tests found for:\n" + ", \n".join(missing))
|
|
||||||
- print("Try to generate them with '{} generate'".format(sys.argv[0]))
|
|
||||||
+ print(f"Try to generate them with '{sys.argv[0]} generate'")
|
|
||||||
returncode = 1
|
|
||||||
|
|
||||||
return returncode
|
|
||||||
diff --git a/tests/get_coverage.sh b/tests/get_coverage.sh
|
|
||||||
index 858a8cf..4524fab 100755
|
|
||||||
--- a/tests/get_coverage.sh
|
|
||||||
+++ b/tests/get_coverage.sh
|
|
||||||
@@ -19,7 +19,6 @@ shift
|
|
||||||
playbook="${1}"
|
|
||||||
|
|
||||||
coverage_data="remote-coveragedata-${host}-${playbook%.yml}"
|
|
||||||
-coverage="/root/.local/bin/coverage"
|
|
||||||
|
|
||||||
echo "Getting coverage for ${playbook} on ${host}" >&2
|
|
||||||
|
|
||||||
@@ -32,10 +31,15 @@ call_ansible() {
|
|
||||||
}
|
|
||||||
|
|
||||||
remote_coverage_dir="$(mktemp -d /tmp/remote_coverage-XXXXXX)"
|
|
||||||
+# we want to expand ${remote_coverage_dir} here, so tell SC to be quiet
|
|
||||||
+# https://github.com/koalaman/shellcheck/wiki/SC2064
|
|
||||||
+# shellcheck disable=SC2064
|
|
||||||
trap "rm -rf '${remote_coverage_dir}'" EXIT
|
|
||||||
ansible-playbook -i "${host}", get_coverage.yml -e "test_playbook=${playbook} destdir=${remote_coverage_dir}"
|
|
||||||
|
|
||||||
#COVERAGE_FILE=remote-coverage coverage combine remote-coverage/tests_*/*/root/.coverage
|
|
||||||
+# https://github.com/koalaman/shellcheck/wiki/SC2046
|
|
||||||
+# shellcheck disable=SC2046
|
|
||||||
./merge_coverage.sh coverage "${coverage_data}"-tmp $(find "${remote_coverage_dir}" -type f | tr , _)
|
|
||||||
|
|
||||||
cat > tmp_merge_coveragerc <<EOF
|
|
||||||
diff --git a/tests/get_total_coverage.sh b/tests/get_total_coverage.sh
|
|
||||||
index ca61746..6413b18 100755
|
|
||||||
--- a/tests/get_total_coverage.sh
|
|
||||||
+++ b/tests/get_total_coverage.sh
|
|
||||||
@@ -12,7 +12,7 @@ then
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
-rm -f remote-coveragedata* "${coveragedata}"
|
|
||||||
+rm -f remote-coveragedata* "${coverage_data}"
|
|
||||||
|
|
||||||
|
|
||||||
# collect pytest coverage
|
|
||||||
diff --git a/tests/integration/test_ethernet.py b/tests/integration/test_ethernet.py
|
|
||||||
index d104d23..4fc7417 100644
|
|
||||||
--- a/tests/integration/test_ethernet.py
|
|
||||||
+++ b/tests/integration/test_ethernet.py
|
|
||||||
@@ -25,10 +25,10 @@ with mock.patch.dict(
|
|
||||||
class PytestRunEnvironment(nc.RunEnvironment):
|
|
||||||
def log(self, connections, idx, severity, msg, **kwargs):
|
|
||||||
if severity == nc.LogLevel.ERROR:
|
|
||||||
- logging.error("Error: {}".format(connections[idx]))
|
|
||||||
+ logging.error("Error: %s", connections[idx])
|
|
||||||
raise RuntimeError(msg)
|
|
||||||
else:
|
|
||||||
- logging.debug("Log: {}".format(connections[idx]))
|
|
||||||
+ logging.debug("Log: %s", connections[idx])
|
|
||||||
|
|
||||||
def run_command(self, argv, encoding=None):
|
|
||||||
command = subprocess.Popen(
|
|
||||||
diff --git a/tests/merge_coverage.sh b/tests/merge_coverage.sh
|
|
||||||
index a33e94d..61fcd00 100755
|
|
||||||
--- a/tests/merge_coverage.sh
|
|
||||||
+++ b/tests/merge_coverage.sh
|
|
||||||
@@ -23,6 +23,9 @@ export COVERAGE_FILE="${1}"
|
|
||||||
shift
|
|
||||||
|
|
||||||
tempdir="$(mktemp -d /tmp/coverage_merge-XXXXXX)"
|
|
||||||
+# we want to expand ${tempdir} here, so tell SC to be quiet
|
|
||||||
+# https://github.com/koalaman/shellcheck/wiki/SC2064
|
|
||||||
+# shellcheck disable=SC2064
|
|
||||||
trap "rm -rf '${tempdir}'" EXIT
|
|
||||||
|
|
||||||
cp --backup=numbered -- "${@}" "${tempdir}"
|
|
||||||
diff --git a/tests/setup_module_utils.sh b/tests/setup_module_utils.sh
|
|
||||||
deleted file mode 100755
|
|
||||||
index 18d6a00..0000000
|
|
||||||
--- a/tests/setup_module_utils.sh
|
|
||||||
+++ /dev/null
|
|
||||||
@@ -1,41 +0,0 @@
|
|
||||||
-#!/bin/bash
|
|
||||||
-# SPDX-License-Identifier: MIT
|
|
||||||
-
|
|
||||||
-set -euo pipefail
|
|
||||||
-
|
|
||||||
-if [ -n "${DEBUG:-}" ] ; then
|
|
||||||
- set -x
|
|
||||||
-fi
|
|
||||||
-
|
|
||||||
-if [ ! -d "${1:-}" ] ; then
|
|
||||||
- echo Either ansible is not installed, or there is no ansible/module_utils
|
|
||||||
- echo in $1 - Skipping
|
|
||||||
- exit 0
|
|
||||||
-fi
|
|
||||||
-
|
|
||||||
-if [ ! -d "${2:-}" ] ; then
|
|
||||||
- echo Role has no module_utils - Skipping
|
|
||||||
- exit 0
|
|
||||||
-fi
|
|
||||||
-
|
|
||||||
-# we need absolute path for $2
|
|
||||||
-absmoddir=$( readlink -f "$2" )
|
|
||||||
-
|
|
||||||
-# clean up old links to module_utils
|
|
||||||
-for item in "$1"/* ; do
|
|
||||||
- if lnitem=$( readlink "$item" ) && test -n "$lnitem" ; then
|
|
||||||
- case "$lnitem" in
|
|
||||||
- *"${2}"*) rm -f "$item" ;;
|
|
||||||
- esac
|
|
||||||
- fi
|
|
||||||
-done
|
|
||||||
-
|
|
||||||
-# add new links to module_utils
|
|
||||||
-for item in "$absmoddir"/* ; do
|
|
||||||
- case "$item" in
|
|
||||||
- *__pycache__) continue;;
|
|
||||||
- *.pyc) continue;;
|
|
||||||
- esac
|
|
||||||
- bnitem=$( basename "$item" )
|
|
||||||
- ln -s "$item" "$1/$bnitem"
|
|
||||||
-done
|
|
||||||
diff --git a/tox.ini b/tox.ini
|
|
||||||
index 6ff26e7..59c58a2 100644
|
|
||||||
--- a/tox.ini
|
|
||||||
+++ b/tox.ini
|
|
||||||
@@ -17,6 +17,3 @@ setenv =
|
|
||||||
RUN_PYTEST_EXTRA_ARGS = -v
|
|
||||||
RUN_FLAKE8_EXTRA_ARGS = --exclude tests/ensure_provider_tests.py,scripts/print_all_options.py,tests/network/ensure_provider_tests.py,.svn,CVS,.bzr,.hg,.git,__pycache__,.tox,.eggs,*.egg
|
|
||||||
LSR_PUBLISH_COVERAGE = normal
|
|
||||||
-
|
|
||||||
-[testenv:shellcheck]
|
|
||||||
-commands = bash -c 'echo shellcheck is currently not enabled - please fix this'
|
|
||||||
--
|
|
||||||
2.30.2
|
|
||||||
|
|
@ -1,32 +1,20 @@
|
|||||||
diff --git a/tests/playbooks/tests_bond.yml b/tests/playbooks/tests_bond.yml
|
From d6c8319f52f3859b28044841063adf0013df878b Mon Sep 17 00:00:00 2001
|
||||||
index d646a0b..8689d59 100644
|
From: Rich Megginson <rmeggins@redhat.com>
|
||||||
--- a/tests/playbooks/tests_bond_deprecated.yml
|
Date: Thu, 25 Mar 2021 13:57:45 -0600
|
||||||
+++ b/tests/playbooks/tests_bond_deprecated.yml
|
Subject: [PATCH 3/4] Patch53: network-disable-bondtests.diff
|
||||||
@@ -8,6 +8,8 @@
|
|
||||||
dhcp_interface1: test1
|
---
|
||||||
slave2_profile: bond0.1
|
tests/playbooks/tests_bond.yml | 2 ++
|
||||||
dhcp_interface2: test2
|
tests/playbooks/tests_bond_deprecated.yml | 2 ++
|
||||||
+ tags:
|
tests/tests_bond_deprecated_initscripts.yml | 1 +
|
||||||
+ - "tests::expfail"
|
tests/tests_bond_initscripts.yml | 1 +
|
||||||
tasks:
|
4 files changed, 6 insertions(+)
|
||||||
- name: "INIT Prepare setup"
|
|
||||||
debug:
|
|
||||||
diff --git a/tests/tests_bond_initscripts.yml b/tests/tests_bond_initscripts.yml
|
|
||||||
index 8fa74c5..6a231c4 100644
|
|
||||||
--- a/tests/tests_bond_deprecated_initscripts.yml
|
|
||||||
+++ b/tests/tests_bond_deprecated_initscripts.yml
|
|
||||||
@@ -9,5 +9,6 @@
|
|
||||||
network_provider: initscripts
|
|
||||||
tags:
|
|
||||||
- always
|
|
||||||
+ - "tests::expfail"
|
|
||||||
|
|
||||||
- import_playbook: playbooks/tests_bond_deprecated.yml
|
|
||||||
diff --git a/tests/playbooks/tests_bond.yml b/tests/playbooks/tests_bond.yml
|
diff --git a/tests/playbooks/tests_bond.yml b/tests/playbooks/tests_bond.yml
|
||||||
index d646a0b..8689d59 100644
|
index 1e45788..d3005a6 100644
|
||||||
--- a/tests/playbooks/tests_bond.yml
|
--- a/tests/playbooks/tests_bond.yml
|
||||||
+++ b/tests/playbooks/tests_bond.yml
|
+++ b/tests/playbooks/tests_bond.yml
|
||||||
@@ -13,6 +13,8 @@
|
@@ -8,6 +8,8 @@
|
||||||
dhcp_interface1: test1
|
dhcp_interface1: test1
|
||||||
port2_profile: bond0.1
|
port2_profile: bond0.1
|
||||||
dhcp_interface2: test2
|
dhcp_interface2: test2
|
||||||
@ -35,14 +23,43 @@ index d646a0b..8689d59 100644
|
|||||||
tasks:
|
tasks:
|
||||||
- name: "INIT Prepare setup"
|
- name: "INIT Prepare setup"
|
||||||
debug:
|
debug:
|
||||||
|
diff --git a/tests/playbooks/tests_bond_deprecated.yml b/tests/playbooks/tests_bond_deprecated.yml
|
||||||
|
index f37e19a..ae475c4 100644
|
||||||
|
--- a/tests/playbooks/tests_bond_deprecated.yml
|
||||||
|
+++ b/tests/playbooks/tests_bond_deprecated.yml
|
||||||
|
@@ -8,6 +8,8 @@
|
||||||
|
dhcp_interface1: test1
|
||||||
|
port2_profile: bond0.1
|
||||||
|
dhcp_interface2: test2
|
||||||
|
+ tags:
|
||||||
|
+ - "tests::expfail"
|
||||||
|
tasks:
|
||||||
|
- name: "INIT Prepare setup"
|
||||||
|
debug:
|
||||||
|
diff --git a/tests/tests_bond_deprecated_initscripts.yml b/tests/tests_bond_deprecated_initscripts.yml
|
||||||
|
index 383b488..cdf3de0 100644
|
||||||
|
--- a/tests/tests_bond_deprecated_initscripts.yml
|
||||||
|
+++ b/tests/tests_bond_deprecated_initscripts.yml
|
||||||
|
@@ -10,6 +10,7 @@
|
||||||
|
network_provider: initscripts
|
||||||
|
tags:
|
||||||
|
- always
|
||||||
|
+ - "tests::expfail"
|
||||||
|
|
||||||
|
- import_playbook: playbooks/tests_bond_deprecated.yml
|
||||||
|
when: (ansible_distribution in ['CentOS','RedHat'] and
|
||||||
diff --git a/tests/tests_bond_initscripts.yml b/tests/tests_bond_initscripts.yml
|
diff --git a/tests/tests_bond_initscripts.yml b/tests/tests_bond_initscripts.yml
|
||||||
index 8fa74c5..6a231c4 100644
|
index 8fa74c5..6a231c4 100644
|
||||||
--- a/tests/tests_bond_initscripts.yml
|
--- a/tests/tests_bond_initscripts.yml
|
||||||
+++ b/tests/tests_bond_initscripts.yml
|
+++ b/tests/tests_bond_initscripts.yml
|
||||||
@@ -9,5 +9,6 @@
|
@@ -10,6 +10,7 @@
|
||||||
network_provider: initscripts
|
network_provider: initscripts
|
||||||
tags:
|
tags:
|
||||||
- always
|
- always
|
||||||
+ - "tests::expfail"
|
+ - "tests::expfail"
|
||||||
|
|
||||||
- import_playbook: playbooks/tests_bond.yml
|
- import_playbook: playbooks/tests_bond.yml
|
||||||
|
when: (ansible_distribution in ['CentOS','RedHat'] and
|
||||||
|
--
|
||||||
|
2.30.2
|
||||||
|
|
||||||
|
@ -1,401 +0,0 @@
|
|||||||
diff --git a/tests/playbooks/integration_pytest_python3.yml b/tests/playbooks/integration_pytest_python3.yml
|
|
||||||
index 075355b..5fc9dea 100644
|
|
||||||
--- a/tests/playbooks/integration_pytest_python3.yml
|
|
||||||
+++ b/tests/playbooks/integration_pytest_python3.yml
|
|
||||||
@@ -9,6 +9,11 @@
|
|
||||||
- rsync
|
|
||||||
|
|
||||||
tasks:
|
|
||||||
+ - name: Install EPEL for RHEL and CentOS
|
|
||||||
+ # yamllint disable-line rule:line-length
|
|
||||||
+ command: "yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm"
|
|
||||||
+ when: ansible_distribution in ["CentOS", "RedHat"]
|
|
||||||
+
|
|
||||||
- name: Install rpm dependencies
|
|
||||||
package:
|
|
||||||
state: present
|
|
||||||
diff --git a/tests/tasks/el_repo_setup.yml b/tests/tasks/el_repo_setup.yml
|
|
||||||
deleted file mode 100644
|
|
||||||
index 0656e8c..0000000
|
|
||||||
--- a/tests/tasks/el_repo_setup.yml
|
|
||||||
+++ /dev/null
|
|
||||||
@@ -1,26 +0,0 @@
|
|
||||||
-# SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
-- name: Fix CentOS6 Base repo
|
|
||||||
- copy:
|
|
||||||
- dest: /etc/yum.repos.d/CentOS-Base.repo
|
|
||||||
- content: |
|
|
||||||
- [base]
|
|
||||||
- name=CentOS-$releasever - Base
|
|
||||||
- baseurl=https://vault.centos.org/6.10/os/$basearch/
|
|
||||||
- gpgcheck=1
|
|
||||||
- gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
|
|
||||||
-
|
|
||||||
- [updates]
|
|
||||||
- name=CentOS-$releasever - Updates
|
|
||||||
- baseurl=https://vault.centos.org/6.10/updates/$basearch/
|
|
||||||
- gpgcheck=1
|
|
||||||
- gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
|
|
||||||
-
|
|
||||||
- [extras]
|
|
||||||
- name=CentOS-$releasever - Extras
|
|
||||||
- baseurl=https://vault.centos.org/6.10/extras/$basearch/
|
|
||||||
- gpgcheck=1
|
|
||||||
- gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
|
|
||||||
- when:
|
|
||||||
- - ansible_distribution == 'CentOS'
|
|
||||||
- - ansible_distribution_major_version == '6'
|
|
||||||
-- include_tasks: enable_epel.yml
|
|
||||||
diff --git a/tests/tasks/setup_802_1x_server.yml b/tests/tasks/setup_802_1x_server.yml
|
|
||||||
index 49d1ce1..3bf16a9 100644
|
|
||||||
--- a/tests/tasks/setup_802_1x_server.yml
|
|
||||||
+++ b/tests/tasks/setup_802_1x_server.yml
|
|
||||||
@@ -1,5 +1,7 @@
|
|
||||||
# SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
---
|
|
||||||
+- include_tasks: enable_epel.yml
|
|
||||||
+
|
|
||||||
- name: Install hostapd
|
|
||||||
package:
|
|
||||||
name: hostapd
|
|
||||||
diff --git a/tests/tasks/setup_mock_wifi.yml b/tests/tasks/setup_mock_wifi.yml
|
|
||||||
index 997b704..d7a1e22 100644
|
|
||||||
--- a/tests/tasks/setup_mock_wifi.yml
|
|
||||||
+++ b/tests/tasks/setup_mock_wifi.yml
|
|
||||||
@@ -1,5 +1,7 @@
|
|
||||||
# SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
---
|
|
||||||
+- include_tasks: enable_epel.yml
|
|
||||||
+
|
|
||||||
- name: Install packages required to set up mock wifi network
|
|
||||||
package:
|
|
||||||
name:
|
|
||||||
diff --git a/tests/tests_802_1x_nm.yml b/tests/tests_802_1x_nm.yml
|
|
||||||
index a27d8ea..288cd5d 100644
|
|
||||||
--- a/tests/tests_802_1x_nm.yml
|
|
||||||
+++ b/tests/tests_802_1x_nm.yml
|
|
||||||
@@ -5,7 +5,6 @@
|
|
||||||
- hosts: all
|
|
||||||
name: Run playbook 'playbooks/tests_802_1x.yml' with nm as provider
|
|
||||||
tasks:
|
|
||||||
- - include_tasks: tasks/el_repo_setup.yml
|
|
||||||
- name: Set network provider to 'nm'
|
|
||||||
set_fact:
|
|
||||||
network_provider: nm
|
|
||||||
diff --git a/tests/tests_802_1x_updated_nm.yml b/tests/tests_802_1x_updated_nm.yml
|
|
||||||
index 5a25f5b..bd335e4 100644
|
|
||||||
--- a/tests/tests_802_1x_updated_nm.yml
|
|
||||||
+++ b/tests/tests_802_1x_updated_nm.yml
|
|
||||||
@@ -5,7 +5,6 @@
|
|
||||||
- hosts: all
|
|
||||||
name: Run playbook 'playbooks/tests_802_1x_updated.yml' with nm as provider
|
|
||||||
tasks:
|
|
||||||
- - include_tasks: tasks/el_repo_setup.yml
|
|
||||||
- name: Set network provider to 'nm'
|
|
||||||
set_fact:
|
|
||||||
network_provider: nm
|
|
||||||
diff --git a/tests/tests_bond_deprecated_initscripts.yml b/tests/tests_bond_deprecated_initscripts.yml
|
|
||||||
index 1e74bcc..383b488 100644
|
|
||||||
--- a/tests/tests_bond_deprecated_initscripts.yml
|
|
||||||
+++ b/tests/tests_bond_deprecated_initscripts.yml
|
|
||||||
@@ -4,7 +4,6 @@
|
|
||||||
- hosts: all
|
|
||||||
name: Run playbook 'playbooks/tests_bond_deprecated.yml' with initscripts
|
|
||||||
tasks:
|
|
||||||
- - include_tasks: tasks/el_repo_setup.yml
|
|
||||||
- name: Set network provider to 'initscripts'
|
|
||||||
set_fact:
|
|
||||||
network_provider: initscripts
|
|
||||||
diff --git a/tests/tests_bond_initscripts.yml b/tests/tests_bond_initscripts.yml
|
|
||||||
index 32fcc32..8fa74c5 100644
|
|
||||||
--- a/tests/tests_bond_initscripts.yml
|
|
||||||
+++ b/tests/tests_bond_initscripts.yml
|
|
||||||
@@ -4,7 +4,6 @@
|
|
||||||
- hosts: all
|
|
||||||
name: Run playbook 'playbooks/tests_bond.yml' with initscripts as provider
|
|
||||||
tasks:
|
|
||||||
- - include_tasks: tasks/el_repo_setup.yml
|
|
||||||
- name: Set network provider to 'initscripts'
|
|
||||||
set_fact:
|
|
||||||
network_provider: initscripts
|
|
||||||
diff --git a/tests/tests_bond_nm.yml b/tests/tests_bond_nm.yml
|
|
||||||
index 7075d95..8ac6cbd 100644
|
|
||||||
--- a/tests/tests_bond_nm.yml
|
|
||||||
+++ b/tests/tests_bond_nm.yml
|
|
||||||
@@ -5,7 +5,6 @@
|
|
||||||
- hosts: all
|
|
||||||
name: Run playbook 'playbooks/tests_bond.yml' with nm as provider
|
|
||||||
tasks:
|
|
||||||
- - include_tasks: tasks/el_repo_setup.yml
|
|
||||||
- name: Set network provider to 'nm'
|
|
||||||
set_fact:
|
|
||||||
network_provider: nm
|
|
||||||
diff --git a/tests/tests_bridge_initscripts.yml b/tests/tests_bridge_initscripts.yml
|
|
||||||
index 8ce42e6..db5663c 100644
|
|
||||||
--- a/tests/tests_bridge_initscripts.yml
|
|
||||||
+++ b/tests/tests_bridge_initscripts.yml
|
|
||||||
@@ -4,7 +4,6 @@
|
|
||||||
- hosts: all
|
|
||||||
name: Run playbook 'playbooks/tests_bridge.yml' with initscripts as provider
|
|
||||||
tasks:
|
|
||||||
- - include_tasks: tasks/el_repo_setup.yml
|
|
||||||
- name: Set network provider to 'initscripts'
|
|
||||||
set_fact:
|
|
||||||
network_provider: initscripts
|
|
||||||
diff --git a/tests/tests_bridge_nm.yml b/tests/tests_bridge_nm.yml
|
|
||||||
index 3d1b53a..c565952 100644
|
|
||||||
--- a/tests/tests_bridge_nm.yml
|
|
||||||
+++ b/tests/tests_bridge_nm.yml
|
|
||||||
@@ -5,7 +5,6 @@
|
|
||||||
- hosts: all
|
|
||||||
name: Run playbook 'playbooks/tests_bridge.yml' with nm as provider
|
|
||||||
tasks:
|
|
||||||
- - include_tasks: tasks/el_repo_setup.yml
|
|
||||||
- name: Set network provider to 'nm'
|
|
||||||
set_fact:
|
|
||||||
network_provider: nm
|
|
||||||
diff --git a/tests/tests_default.yml b/tests/tests_default.yml
|
|
||||||
index e196314..f6f7550 100644
|
|
||||||
--- a/tests/tests_default.yml
|
|
||||||
+++ b/tests/tests_default.yml
|
|
||||||
@@ -5,7 +5,6 @@
|
|
||||||
roles:
|
|
||||||
- linux-system-roles.network
|
|
||||||
tasks:
|
|
||||||
- - include_tasks: tasks/el_repo_setup.yml
|
|
||||||
- name: Test warning and info logs
|
|
||||||
assert:
|
|
||||||
that:
|
|
||||||
diff --git a/tests/tests_default_initscripts.yml b/tests/tests_default_initscripts.yml
|
|
||||||
index 006889c..cc8b875 100644
|
|
||||||
--- a/tests/tests_default_initscripts.yml
|
|
||||||
+++ b/tests/tests_default_initscripts.yml
|
|
||||||
@@ -2,7 +2,6 @@
|
|
||||||
---
|
|
||||||
- hosts: all
|
|
||||||
tasks:
|
|
||||||
- - include_tasks: tasks/el_repo_setup.yml
|
|
||||||
- name: Set network provider to 'initscripts'
|
|
||||||
set_fact:
|
|
||||||
network_provider: initscripts
|
|
||||||
diff --git a/tests/tests_default_nm.yml b/tests/tests_default_nm.yml
|
|
||||||
index 54bc3e1..8138ca9 100644
|
|
||||||
--- a/tests/tests_default_nm.yml
|
|
||||||
+++ b/tests/tests_default_nm.yml
|
|
||||||
@@ -2,7 +2,6 @@
|
|
||||||
---
|
|
||||||
- hosts: all
|
|
||||||
tasks:
|
|
||||||
- - include_tasks: tasks/el_repo_setup.yml
|
|
||||||
- name: Set network provider to 'nm'
|
|
||||||
set_fact:
|
|
||||||
network_provider: nm
|
|
||||||
diff --git a/tests/tests_ethernet_initscripts.yml b/tests/tests_ethernet_initscripts.yml
|
|
||||||
index 366b052..62e75fe 100644
|
|
||||||
--- a/tests/tests_ethernet_initscripts.yml
|
|
||||||
+++ b/tests/tests_ethernet_initscripts.yml
|
|
||||||
@@ -4,8 +4,6 @@
|
|
||||||
- hosts: all
|
|
||||||
name: Run playbook 'playbooks/tests_ethernet.yml' with initscripts as provider
|
|
||||||
tasks:
|
|
||||||
- - include_tasks: tasks/el_repo_setup.yml
|
|
||||||
-
|
|
||||||
- name: Set network provider to 'initscripts'
|
|
||||||
set_fact:
|
|
||||||
network_provider: initscripts
|
|
||||||
diff --git a/tests/tests_ethernet_nm.yml b/tests/tests_ethernet_nm.yml
|
|
||||||
index 238172d..ecefa14 100644
|
|
||||||
--- a/tests/tests_ethernet_nm.yml
|
|
||||||
+++ b/tests/tests_ethernet_nm.yml
|
|
||||||
@@ -5,8 +5,6 @@
|
|
||||||
- hosts: all
|
|
||||||
name: Run playbook 'playbooks/tests_ethernet.yml' with nm as provider
|
|
||||||
tasks:
|
|
||||||
- - include_tasks: tasks/el_repo_setup.yml
|
|
||||||
-
|
|
||||||
- name: Set network provider to 'nm'
|
|
||||||
set_fact:
|
|
||||||
network_provider: nm
|
|
||||||
diff --git a/tests/tests_ethtool_features_initscripts.yml b/tests/tests_ethtool_features_initscripts.yml
|
|
||||||
index 5bac5d3..6aea73b 100644
|
|
||||||
--- a/tests/tests_ethtool_features_initscripts.yml
|
|
||||||
+++ b/tests/tests_ethtool_features_initscripts.yml
|
|
||||||
@@ -2,7 +2,6 @@
|
|
||||||
# set network provider and gather facts
|
|
||||||
- hosts: all
|
|
||||||
tasks:
|
|
||||||
- - include_tasks: tasks/el_repo_setup.yml
|
|
||||||
- name: Set network provider to 'initscripts'
|
|
||||||
set_fact:
|
|
||||||
network_provider: initscripts
|
|
||||||
diff --git a/tests/tests_ethtool_features_nm.yml b/tests/tests_ethtool_features_nm.yml
|
|
||||||
index 2027862..30c6faa 100644
|
|
||||||
--- a/tests/tests_ethtool_features_nm.yml
|
|
||||||
+++ b/tests/tests_ethtool_features_nm.yml
|
|
||||||
@@ -5,8 +5,6 @@
|
|
||||||
- hosts: all
|
|
||||||
name: Run playbook 'playbooks/tests_ethtool_features.yml' with nm as provider
|
|
||||||
tasks:
|
|
||||||
- - include_tasks: tasks/el_repo_setup.yml
|
|
||||||
-
|
|
||||||
- name: Set network provider to 'nm'
|
|
||||||
set_fact:
|
|
||||||
network_provider: nm
|
|
||||||
diff --git a/tests/tests_helpers_and_asserts.yml b/tests/tests_helpers_and_asserts.yml
|
|
||||||
index 64e2875..5514182 100644
|
|
||||||
--- a/tests/tests_helpers_and_asserts.yml
|
|
||||||
+++ b/tests/tests_helpers_and_asserts.yml
|
|
||||||
@@ -3,8 +3,6 @@
|
|
||||||
- name: Check that creating and removing test devices and assertions work
|
|
||||||
hosts: all
|
|
||||||
tasks:
|
|
||||||
- - include_tasks: tasks/el_repo_setup.yml
|
|
||||||
-
|
|
||||||
- name: test veth interface management
|
|
||||||
include_tasks: tasks/create_and_remove_interface.yml
|
|
||||||
vars:
|
|
||||||
diff --git a/tests/tests_integration_pytest.yml b/tests/tests_integration_pytest.yml
|
|
||||||
index 9b80bd4..153214d 100644
|
|
||||||
--- a/tests/tests_integration_pytest.yml
|
|
||||||
+++ b/tests/tests_integration_pytest.yml
|
|
||||||
@@ -1,8 +1,7 @@
|
|
||||||
# SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
---
|
|
||||||
-- hosts: all
|
|
||||||
- tasks:
|
|
||||||
- - include_tasks: tasks/el_repo_setup.yml
|
|
||||||
+- name: Empty play to gather facts
|
|
||||||
+ hosts: all
|
|
||||||
|
|
||||||
- import_playbook: playbooks/integration_pytest_python3.yml
|
|
||||||
when: (ansible_distribution in ["CentOS", "RedHat"] and
|
|
||||||
diff --git a/tests/tests_provider_nm.yml b/tests/tests_provider_nm.yml
|
|
||||||
index 67fcffe..99306a1 100644
|
|
||||||
--- a/tests/tests_provider_nm.yml
|
|
||||||
+++ b/tests/tests_provider_nm.yml
|
|
||||||
@@ -5,8 +5,6 @@
|
|
||||||
- hosts: all
|
|
||||||
name: Run playbook 'playbooks/tests_provider.yml' with nm as provider
|
|
||||||
tasks:
|
|
||||||
- - include_tasks: tasks/el_repo_setup.yml
|
|
||||||
-
|
|
||||||
- name: Set network provider to 'nm'
|
|
||||||
set_fact:
|
|
||||||
network_provider: nm
|
|
||||||
diff --git a/tests/tests_reapply_nm.yml b/tests/tests_reapply_nm.yml
|
|
||||||
index eb48ddb..69fb208 100644
|
|
||||||
--- a/tests/tests_reapply_nm.yml
|
|
||||||
+++ b/tests/tests_reapply_nm.yml
|
|
||||||
@@ -5,8 +5,6 @@
|
|
||||||
- hosts: all
|
|
||||||
name: Run playbook 'playbooks/tests_reapply.yml' with nm as provider
|
|
||||||
tasks:
|
|
||||||
- - include_tasks: tasks/el_repo_setup.yml
|
|
||||||
-
|
|
||||||
- name: Set network provider to 'nm'
|
|
||||||
set_fact:
|
|
||||||
network_provider: nm
|
|
||||||
diff --git a/tests/tests_regression_nm.yml b/tests/tests_regression_nm.yml
|
|
||||||
index b2c46e9..9eb8084 100644
|
|
||||||
--- a/tests/tests_regression_nm.yml
|
|
||||||
+++ b/tests/tests_regression_nm.yml
|
|
||||||
@@ -3,8 +3,6 @@
|
|
||||||
# set network provider and gather facts
|
|
||||||
- hosts: all
|
|
||||||
tasks:
|
|
||||||
- - include_tasks: tasks/el_repo_setup.yml
|
|
||||||
-
|
|
||||||
- name: Set network provider to 'nm'
|
|
||||||
set_fact:
|
|
||||||
network_provider: nm
|
|
||||||
diff --git a/tests/tests_states_initscripts.yml b/tests/tests_states_initscripts.yml
|
|
||||||
index fa94103..3e55a43 100644
|
|
||||||
--- a/tests/tests_states_initscripts.yml
|
|
||||||
+++ b/tests/tests_states_initscripts.yml
|
|
||||||
@@ -4,8 +4,6 @@
|
|
||||||
- hosts: all
|
|
||||||
name: Run playbook 'playbooks/tests_states.yml' with initscripts as provider
|
|
||||||
tasks:
|
|
||||||
- - include_tasks: tasks/el_repo_setup.yml
|
|
||||||
-
|
|
||||||
- name: Set network provider to 'initscripts'
|
|
||||||
set_fact:
|
|
||||||
network_provider: initscripts
|
|
||||||
diff --git a/tests/tests_states_nm.yml b/tests/tests_states_nm.yml
|
|
||||||
index 34c8a24..3164a3a 100644
|
|
||||||
--- a/tests/tests_states_nm.yml
|
|
||||||
+++ b/tests/tests_states_nm.yml
|
|
||||||
@@ -5,8 +5,6 @@
|
|
||||||
- hosts: all
|
|
||||||
name: Run playbook 'playbooks/tests_states.yml' with nm as provider
|
|
||||||
tasks:
|
|
||||||
- - include_tasks: tasks/el_repo_setup.yml
|
|
||||||
-
|
|
||||||
- name: Set network provider to 'nm'
|
|
||||||
set_fact:
|
|
||||||
network_provider: nm
|
|
||||||
diff --git a/tests/tests_team_nm.yml b/tests/tests_team_nm.yml
|
|
||||||
index 8048029..0516765 100644
|
|
||||||
--- a/tests/tests_team_nm.yml
|
|
||||||
+++ b/tests/tests_team_nm.yml
|
|
||||||
@@ -5,8 +5,6 @@
|
|
||||||
- hosts: all
|
|
||||||
name: Run playbook 'playbooks/tests_team.yml' with nm as provider
|
|
||||||
tasks:
|
|
||||||
- - include_tasks: tasks/el_repo_setup.yml
|
|
||||||
-
|
|
||||||
- name: Set network provider to 'nm'
|
|
||||||
set_fact:
|
|
||||||
network_provider: nm
|
|
||||||
diff --git a/tests/tests_unit.yml b/tests/tests_unit.yml
|
|
||||||
index 44dfaec..8c5388b 100644
|
|
||||||
--- a/tests/tests_unit.yml
|
|
||||||
+++ b/tests/tests_unit.yml
|
|
||||||
@@ -3,7 +3,7 @@
|
|
||||||
- hosts: all
|
|
||||||
name: Setup for test running
|
|
||||||
tasks:
|
|
||||||
- - include_tasks: tasks/el_repo_setup.yml
|
|
||||||
+ - include_tasks: tasks/enable_epel.yml
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
package:
|
|
||||||
diff --git a/tests/tests_vlan_mtu_initscripts.yml b/tests/tests_vlan_mtu_initscripts.yml
|
|
||||||
index dcd5d74..37770a9 100644
|
|
||||||
--- a/tests/tests_vlan_mtu_initscripts.yml
|
|
||||||
+++ b/tests/tests_vlan_mtu_initscripts.yml
|
|
||||||
@@ -4,8 +4,6 @@
|
|
||||||
- hosts: all
|
|
||||||
name: Run playbook 'playbooks/tests_vlan_mtu.yml' with initscripts as provider
|
|
||||||
tasks:
|
|
||||||
- - include_tasks: tasks/el_repo_setup.yml
|
|
||||||
-
|
|
||||||
- name: Set network provider to 'initscripts'
|
|
||||||
set_fact:
|
|
||||||
network_provider: initscripts
|
|
||||||
diff --git a/tests/tests_vlan_mtu_nm.yml b/tests/tests_vlan_mtu_nm.yml
|
|
||||||
index c38263c..f201de3 100644
|
|
||||||
--- a/tests/tests_vlan_mtu_nm.yml
|
|
||||||
+++ b/tests/tests_vlan_mtu_nm.yml
|
|
||||||
@@ -5,8 +5,6 @@
|
|
||||||
- hosts: all
|
|
||||||
name: Run playbook 'playbooks/tests_vlan_mtu.yml' with nm as provider
|
|
||||||
tasks:
|
|
||||||
- - include_tasks: tasks/el_repo_setup.yml
|
|
||||||
-
|
|
||||||
- name: Set network provider to 'nm'
|
|
||||||
set_fact:
|
|
||||||
network_provider: nm
|
|
||||||
diff --git a/tests/tests_wireless_nm.yml b/tests/tests_wireless_nm.yml
|
|
||||||
index 03b5ad6..86baf67 100644
|
|
||||||
--- a/tests/tests_wireless_nm.yml
|
|
||||||
+++ b/tests/tests_wireless_nm.yml
|
|
||||||
@@ -5,8 +5,6 @@
|
|
||||||
- hosts: all
|
|
||||||
name: Run playbook 'playbooks/tests_wireless.yml' with nm as provider
|
|
||||||
tasks:
|
|
||||||
- - include_tasks: tasks/el_repo_setup.yml
|
|
||||||
-
|
|
||||||
- name: Set network provider to 'nm'
|
|
||||||
set_fact:
|
|
||||||
network_provider: nm
|
|
@ -1,6 +0,0 @@
|
|||||||
diff --git a/library/network_connections.py b/library/network_connections.py
|
|
||||||
old mode 100755
|
|
||||||
new mode 100644
|
|
||||||
diff --git a/tests/unit/test_network_connections.py b/tests/unit/test_network_connections.py
|
|
||||||
old mode 100755
|
|
||||||
new mode 100644
|
|
@ -1,35 +0,0 @@
|
|||||||
From f4fabea55429077c2a4e94fe8015c4ab57f58ff3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Fernando Fernandez Mancera <ffmancera@riseup.net>
|
|
||||||
Date: Mon, 15 Feb 2021 11:02:55 +0100
|
|
||||||
Subject: [PATCH] README: remove "slaves" leftover from documentation
|
|
||||||
|
|
||||||
Signed-off-by: Fernando Fernandez Mancera <ffmancera@riseup.net>
|
|
||||||
---
|
|
||||||
README.md | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/README.md b/README.md
|
|
||||||
index 6b15673..06a8b1b 100644
|
|
||||||
--- a/README.md
|
|
||||||
+++ b/README.md
|
|
||||||
@@ -300,7 +300,7 @@ different or the profile may not be tied to an interface at all.
|
|
||||||
|
|
||||||
The `zone` option sets the firewalld zone for the interface.
|
|
||||||
|
|
||||||
-Slaves to the bridge, bond or team devices cannot specify a zone.
|
|
||||||
+Ports to the bridge, bond or team devices cannot specify a zone.
|
|
||||||
|
|
||||||
|
|
||||||
### `ip`
|
|
||||||
@@ -367,7 +367,7 @@ The IP configuration supports the following options:
|
|
||||||
|
|
||||||
**Note:** When `route_append_only` or `rule_append_only` is not specified, the `network` role deletes the current routes or routing rules.
|
|
||||||
|
|
||||||
-**Note:** Slaves to the bridge, bond or team devices cannot specify `ip` settings.
|
|
||||||
+**Note:** Ports to the bridge, bond or team devices cannot specify `ip` settings.
|
|
||||||
|
|
||||||
### `ethtool`
|
|
||||||
|
|
||||||
--
|
|
||||||
2.29.2
|
|
||||||
|
|
@ -1,531 +1,54 @@
|
|||||||
|
From 4b1a8a87e7d297fd6669d653af7308dd9c1a513a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Rich Megginson <rmeggins@redhat.com>
|
||||||
|
Date: Thu, 6 May 2021 13:52:38 -0600
|
||||||
|
Subject: [PATCH] tag 802-1x test as expfail; make sure bridge test cleans up
|
||||||
|
properly
|
||||||
|
|
||||||
|
The 802-1x test will fail on platforms where `hostapd` is not available,
|
||||||
|
so tag that test to make it skippable.
|
||||||
|
|
||||||
|
The initscripts bridge test does not clean up properly, leaving the
|
||||||
|
device around which causes the nm test to fail. Explicitly remove
|
||||||
|
the device for cleanup.
|
||||||
|
---
|
||||||
|
tests/playbooks/tests_802_1x.yml | 2 ++
|
||||||
|
tests/playbooks/tests_bridge.yml | 10 ++++++++++
|
||||||
|
2 files changed, 12 insertions(+)
|
||||||
|
|
||||||
diff --git a/tests/playbooks/tests_802_1x.yml b/tests/playbooks/tests_802_1x.yml
|
diff --git a/tests/playbooks/tests_802_1x.yml b/tests/playbooks/tests_802_1x.yml
|
||||||
index 9cce1ae..76d99e9 100644
|
index 9cce1ae..4ceebb1 100644
|
||||||
--- a/tests/playbooks/tests_802_1x.yml
|
--- a/tests/playbooks/tests_802_1x.yml
|
||||||
+++ b/tests/playbooks/tests_802_1x.yml
|
+++ b/tests/playbooks/tests_802_1x.yml
|
||||||
@@ -1,5 +1,10 @@
|
@@ -3,6 +3,8 @@
|
||||||
# SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
---
|
|
||||||
+- name: Save host state
|
|
||||||
+ hosts: all
|
|
||||||
+ tasks:
|
|
||||||
+ - import_tasks: tasks/save_state.yml
|
|
||||||
+
|
|
||||||
- hosts: all
|
- hosts: all
|
||||||
vars:
|
vars:
|
||||||
interface: 802-1x-test
|
interface: 802-1x-test
|
||||||
@@ -122,3 +127,8 @@
|
+ tags:
|
||||||
command: update-ca-trust
|
+ - tests::expfail
|
||||||
tags:
|
tasks:
|
||||||
- "tests::cleanup"
|
- name: "INIT: 802.1x tests"
|
||||||
+
|
debug:
|
||||||
+- name: Restore host state
|
|
||||||
+ hosts: all
|
|
||||||
+ tasks:
|
|
||||||
+ - import_tasks: tasks/restore_state.yml
|
|
||||||
diff --git a/tests/playbooks/tests_bond.yml b/tests/playbooks/tests_bond.yml
|
|
||||||
index 69f07f8..1e45788 100644
|
|
||||||
--- a/tests/playbooks/tests_bond.yml
|
|
||||||
+++ b/tests/playbooks/tests_bond.yml
|
|
||||||
@@ -1,5 +1,10 @@
|
|
||||||
# SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
---
|
|
||||||
+- name: Save host state
|
|
||||||
+ hosts: all
|
|
||||||
+ tasks:
|
|
||||||
+ - import_tasks: tasks/save_state.yml
|
|
||||||
+
|
|
||||||
- hosts: all
|
|
||||||
vars:
|
|
||||||
controller_profile: bond0
|
|
||||||
@@ -95,3 +100,8 @@
|
|
||||||
- import_tasks: tasks/remove_test_interfaces_with_dhcp.yml
|
|
||||||
tags:
|
|
||||||
- "tests::cleanup"
|
|
||||||
+
|
|
||||||
+- name: Restore host state
|
|
||||||
+ hosts: all
|
|
||||||
+ tasks:
|
|
||||||
+ - import_tasks: tasks/restore_state.yml
|
|
||||||
diff --git a/tests/playbooks/tests_bridge.yml b/tests/playbooks/tests_bridge.yml
|
diff --git a/tests/playbooks/tests_bridge.yml b/tests/playbooks/tests_bridge.yml
|
||||||
index d79d6ad..c8cf3cd 100644
|
index d79d6ad..14b1225 100644
|
||||||
--- a/tests/playbooks/tests_bridge.yml
|
--- a/tests/playbooks/tests_bridge.yml
|
||||||
+++ b/tests/playbooks/tests_bridge.yml
|
+++ b/tests/playbooks/tests_bridge.yml
|
||||||
@@ -1,5 +1,10 @@
|
@@ -49,6 +49,16 @@
|
||||||
# SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
---
|
|
||||||
+- name: Save host state
|
|
||||||
+ hosts: all
|
|
||||||
+ tasks:
|
|
||||||
+ - import_tasks: tasks/save_state.yml
|
|
||||||
+
|
|
||||||
- name: Test configuring bridges
|
|
||||||
hosts: all
|
|
||||||
vars:
|
|
||||||
@@ -14,6 +19,8 @@
|
|
||||||
|
|
||||||
- name: Add test bridge
|
|
||||||
hosts: all
|
|
||||||
+ tags:
|
|
||||||
+ - 'tests::net::bridge'
|
|
||||||
vars:
|
|
||||||
network_connections:
|
|
||||||
- name: "{{ interface }}"
|
|
||||||
@@ -36,11 +43,15 @@
|
|
||||||
task: tasks/assert_profile_present.yml
|
|
||||||
|
|
||||||
- import_playbook: down_profile.yml
|
|
||||||
+ tags:
|
|
||||||
+ - 'tests::net::bridge'
|
|
||||||
vars:
|
|
||||||
profile: "{{ interface }}"
|
profile: "{{ interface }}"
|
||||||
# FIXME: assert profile/device down
|
task: tasks/assert_profile_absent.yml
|
||||||
|
|
||||||
- import_playbook: remove_profile.yml
|
|
||||||
+ tags:
|
|
||||||
+ - 'tests::net::bridge'
|
|
||||||
vars:
|
|
||||||
profile: "{{ interface }}"
|
|
||||||
|
|
||||||
@@ -51,5 +62,19 @@
|
|
||||||
|
|
||||||
# FIXME: Devices might still be left when profile is absent
|
|
||||||
# - import_playbook: run_tasks.yml
|
|
||||||
-# vars:
|
|
||||||
+# vars:
|
|
||||||
# task: tasks/assert_device_absent.yml
|
|
||||||
+
|
|
||||||
+- name: Remove test bridge
|
+- name: Remove test bridge
|
||||||
+ hosts: all
|
+ hosts: all
|
||||||
+ tags:
|
+ tags:
|
||||||
+ - 'tests::cleanup'
|
+ - tests::cleanup
|
||||||
+ - 'tests::net::bridge::cleanup'
|
|
||||||
+ tasks:
|
+ tasks:
|
||||||
+ - command: 'ip link delete "{{ interface }}"'
|
+ - name: Remove the test interface
|
||||||
|
+ command: ip link delete {{ interface | quote }}
|
||||||
+ ignore_errors: yes
|
+ ignore_errors: yes
|
||||||
|
+ changed_when: false
|
||||||
+
|
+
|
||||||
+- name: Restore host state
|
# FIXME: Devices might still be left when profile is absent
|
||||||
+ hosts: all
|
# - import_playbook: run_tasks.yml
|
||||||
+ tasks:
|
# vars:
|
||||||
+ - import_tasks: tasks/restore_state.yml
|
--
|
||||||
diff --git a/tests/playbooks/tests_checkpoint_cleanup.yml b/tests/playbooks/tests_checkpoint_cleanup.yml
|
2.30.2
|
||||||
index 18e3fd7..3b5a41a 100644
|
|
||||||
--- a/tests/playbooks/tests_checkpoint_cleanup.yml
|
|
||||||
+++ b/tests/playbooks/tests_checkpoint_cleanup.yml
|
|
||||||
@@ -4,6 +4,11 @@
|
|
||||||
# mark a device as unmanaged for NM and then tries to activiate it using NM.
|
|
||||||
# This failed without removing the checkpoint.
|
|
||||||
---
|
|
||||||
+- name: Save host state
|
|
||||||
+ hosts: all
|
|
||||||
+ tasks:
|
|
||||||
+ - import_tasks: tasks/save_state.yml
|
|
||||||
+
|
|
||||||
- hosts: all
|
|
||||||
vars:
|
|
||||||
interface: cptstbr
|
|
||||||
@@ -80,3 +85,8 @@
|
|
||||||
ignore_errors: true
|
|
||||||
tags:
|
|
||||||
- "tests::cleanup"
|
|
||||||
+
|
|
||||||
+- name: Restore host state
|
|
||||||
+ hosts: all
|
|
||||||
+ tasks:
|
|
||||||
+ - import_tasks: tasks/restore_state.yml
|
|
||||||
diff --git a/tests/playbooks/tests_ethernet.yml b/tests/playbooks/tests_ethernet.yml
|
|
||||||
index cd02579..adcffee 100644
|
|
||||||
--- a/tests/playbooks/tests_ethernet.yml
|
|
||||||
+++ b/tests/playbooks/tests_ethernet.yml
|
|
||||||
@@ -1,5 +1,10 @@
|
|
||||||
# SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
---
|
|
||||||
+- name: Save host state
|
|
||||||
+ hosts: all
|
|
||||||
+ tasks:
|
|
||||||
+ - import_tasks: tasks/save_state.yml
|
|
||||||
+
|
|
||||||
- hosts: all
|
|
||||||
tasks:
|
|
||||||
- debug:
|
|
||||||
@@ -9,6 +14,8 @@
|
|
||||||
|
|
||||||
- name: Test configuring ethernet devices
|
|
||||||
hosts: all
|
|
||||||
+ tags:
|
|
||||||
+ - 'tests::net::veth'
|
|
||||||
vars:
|
|
||||||
type: veth
|
|
||||||
interface: lsr27
|
|
||||||
@@ -26,6 +33,8 @@
|
|
||||||
|
|
||||||
- name: Test static interface up
|
|
||||||
hosts: all
|
|
||||||
+ tags:
|
|
||||||
+ - 'tests::net::reconf'
|
|
||||||
vars:
|
|
||||||
network_connections:
|
|
||||||
- name: "{{ interface }}"
|
|
||||||
@@ -48,17 +57,29 @@
|
|
||||||
# FIXME: assert profile present
|
|
||||||
# FIXME: assert profile/device up + IP address
|
|
||||||
- import_playbook: down_profile.yml
|
|
||||||
+ tags:
|
|
||||||
+ - 'tests::cleanup'
|
|
||||||
vars:
|
|
||||||
profile: "{{ interface }}"
|
|
||||||
# FIXME: assert profile/device down
|
|
||||||
- import_playbook: remove_profile.yml
|
|
||||||
+ tags:
|
|
||||||
+ - 'tests::cleanup'
|
|
||||||
vars:
|
|
||||||
profile: "{{ interface }}"
|
|
||||||
# FIXME: assert profile away
|
|
||||||
- name: Remove interfaces
|
|
||||||
hosts: all
|
|
||||||
+ tags:
|
|
||||||
+ - 'tests::cleanup'
|
|
||||||
+ - 'tests::net::veth::cleanup'
|
|
||||||
tasks:
|
|
||||||
- include_tasks: tasks/manage_test_interface.yml
|
|
||||||
vars:
|
|
||||||
state: absent
|
|
||||||
- include_tasks: tasks/assert_device_absent.yml
|
|
||||||
+
|
|
||||||
+- name: Restore host state
|
|
||||||
+ hosts: all
|
|
||||||
+ tasks:
|
|
||||||
+ - import_tasks: tasks/restore_state.yml
|
|
||||||
diff --git a/tests/playbooks/tests_ethtool_features.yml b/tests/playbooks/tests_ethtool_features.yml
|
|
||||||
index 43fddc3..d1a87fe 100644
|
|
||||||
--- a/tests/playbooks/tests_ethtool_features.yml
|
|
||||||
+++ b/tests/playbooks/tests_ethtool_features.yml
|
|
||||||
@@ -1,5 +1,10 @@
|
|
||||||
# SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
---
|
|
||||||
+- name: Save host state
|
|
||||||
+ hosts: all
|
|
||||||
+ tasks:
|
|
||||||
+ - import_tasks: tasks/save_state.yml
|
|
||||||
+
|
|
||||||
- hosts: all
|
|
||||||
vars:
|
|
||||||
interface: testnic1
|
|
||||||
@@ -198,3 +203,8 @@
|
|
||||||
state: absent
|
|
||||||
tags:
|
|
||||||
- "tests::cleanup"
|
|
||||||
+
|
|
||||||
+- name: Restore host state
|
|
||||||
+ hosts: all
|
|
||||||
+ tasks:
|
|
||||||
+ - import_tasks: tasks/restore_state.yml
|
|
||||||
diff --git a/tests/playbooks/tests_provider.yml b/tests/playbooks/tests_provider.yml
|
|
||||||
index 1db2d08..e097b4b 100644
|
|
||||||
--- a/tests/playbooks/tests_provider.yml
|
|
||||||
+++ b/tests/playbooks/tests_provider.yml
|
|
||||||
@@ -1,5 +1,10 @@
|
|
||||||
# SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
---
|
|
||||||
+- name: Save host state
|
|
||||||
+ hosts: all
|
|
||||||
+ tasks:
|
|
||||||
+ - import_tasks: tasks/save_state.yml
|
|
||||||
+
|
|
||||||
- hosts: all
|
|
||||||
vars:
|
|
||||||
interface: testnic1
|
|
||||||
@@ -33,3 +38,8 @@
|
|
||||||
- tasks/cleanup_profile+device.yml
|
|
||||||
tags:
|
|
||||||
- tests::provider:initscripts_to_nm
|
|
||||||
+
|
|
||||||
+- name: Restore host state
|
|
||||||
+ hosts: all
|
|
||||||
+ tasks:
|
|
||||||
+ - import_tasks: tasks/restore_state.yml
|
|
||||||
diff --git a/tests/playbooks/tests_reapply.yml b/tests/playbooks/tests_reapply.yml
|
|
||||||
index 4b1cb09..6995607 100644
|
|
||||||
--- a/tests/playbooks/tests_reapply.yml
|
|
||||||
+++ b/tests/playbooks/tests_reapply.yml
|
|
||||||
@@ -4,6 +4,11 @@
|
|
||||||
# of via Ansible. Until there is better test support for this, just check the
|
|
||||||
# log output for the respective log message.
|
|
||||||
---
|
|
||||||
+- name: Save host state
|
|
||||||
+ hosts: all
|
|
||||||
+ tasks:
|
|
||||||
+ - import_tasks: tasks/save_state.yml
|
|
||||||
+
|
|
||||||
- hosts: all
|
|
||||||
vars:
|
|
||||||
interface: rpltstbr
|
|
||||||
@@ -64,3 +69,8 @@
|
|
||||||
ignore_errors: true
|
|
||||||
tags:
|
|
||||||
- "tests::cleanup"
|
|
||||||
+
|
|
||||||
+- name: Restore host state
|
|
||||||
+ hosts: all
|
|
||||||
+ tasks:
|
|
||||||
+ - import_tasks: tasks/restore_state.yml
|
|
||||||
diff --git a/tests/playbooks/tests_states.yml b/tests/playbooks/tests_states.yml
|
|
||||||
index eec27c0..a8d0ecd 100644
|
|
||||||
--- a/tests/playbooks/tests_states.yml
|
|
||||||
+++ b/tests/playbooks/tests_states.yml
|
|
||||||
@@ -135,3 +135,23 @@
|
|
||||||
- tasks/cleanup_profile+device.yml
|
|
||||||
tags:
|
|
||||||
- tests::states:remove_down_twice
|
|
||||||
+
|
|
||||||
+ pre_tasks:
|
|
||||||
+ - name: Save host state
|
|
||||||
+ import_tasks: tasks/save_state.yml
|
|
||||||
+
|
|
||||||
+ post_tasks:
|
|
||||||
+ - name: Remove test profile
|
|
||||||
+ tags:
|
|
||||||
+ - 'tests::cleanup'
|
|
||||||
+ - 'tests::net::bridge::cleanup'
|
|
||||||
+ import_role:
|
|
||||||
+ name: linux-system-roles.network
|
|
||||||
+ vars:
|
|
||||||
+ network_connections:
|
|
||||||
+ - name: statebr
|
|
||||||
+ state: down
|
|
||||||
+ persistent_state: absent
|
|
||||||
+
|
|
||||||
+ - name: Restore host state
|
|
||||||
+ import_tasks: tasks/restore_state.yml
|
|
||||||
diff --git a/tests/playbooks/tests_vlan_mtu.yml b/tests/playbooks/tests_vlan_mtu.yml
|
|
||||||
index 029b599..378d5fe 100644
|
|
||||||
--- a/tests/playbooks/tests_vlan_mtu.yml
|
|
||||||
+++ b/tests/playbooks/tests_vlan_mtu.yml
|
|
||||||
@@ -10,6 +10,8 @@
|
|
||||||
- include_tasks: tasks/manage_test_interface.yml
|
|
||||||
vars:
|
|
||||||
state: present
|
|
||||||
+ tags:
|
|
||||||
+ - 'tests::net::veth'
|
|
||||||
- include_tasks: tasks/assert_device_present.yml
|
|
||||||
- name: >-
|
|
||||||
TEST: I can configure the MTU for a vlan interface without autoconnect.
|
|
||||||
@@ -38,6 +40,8 @@
|
|
||||||
ip:
|
|
||||||
dhcp4: false
|
|
||||||
auto6: false
|
|
||||||
+ tags:
|
|
||||||
+ - 'tests::net::reconf'
|
|
||||||
- include_tasks: tasks/assert_device_present.yml
|
|
||||||
vars:
|
|
||||||
interface: "{{ vlan_interface }}"
|
|
||||||
@@ -62,6 +66,20 @@
|
|
||||||
persistent_state: absent
|
|
||||||
state: down
|
|
||||||
ignore_errors: true
|
|
||||||
+ tags:
|
|
||||||
+ - 'tests::cleanup'
|
|
||||||
+ - 'tests::net::veth::cleanup'
|
|
||||||
- include_tasks: tasks/manage_test_interface.yml
|
|
||||||
vars:
|
|
||||||
state: absent
|
|
||||||
+ tags:
|
|
||||||
+ - 'tests::cleanup'
|
|
||||||
+ - 'tests::net::veth::cleanup'
|
|
||||||
+
|
|
||||||
+ pre_tasks:
|
|
||||||
+ - name: Save host state
|
|
||||||
+ import_tasks: tasks/save_state.yml
|
|
||||||
+
|
|
||||||
+ post_tasks:
|
|
||||||
+ - name: Restore host state
|
|
||||||
+ import_tasks: tasks/restore_state.yml
|
|
||||||
diff --git a/tests/playbooks/tests_wireless.yml b/tests/playbooks/tests_wireless.yml
|
|
||||||
index 822a15e..52661bd 100644
|
|
||||||
--- a/tests/playbooks/tests_wireless.yml
|
|
||||||
+++ b/tests/playbooks/tests_wireless.yml
|
|
||||||
@@ -1,5 +1,10 @@
|
|
||||||
# SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
---
|
|
||||||
+- name: Save host state
|
|
||||||
+ hosts: all
|
|
||||||
+ tasks:
|
|
||||||
+ - import_tasks: tasks/save_state.yml
|
|
||||||
+
|
|
||||||
- hosts: all
|
|
||||||
vars:
|
|
||||||
interface: wlan0
|
|
||||||
@@ -86,3 +91,8 @@
|
|
||||||
- include_tasks: tasks/cleanup_mock_wifi.yml
|
|
||||||
tags:
|
|
||||||
- "tests::cleanup"
|
|
||||||
+
|
|
||||||
+- name: Restore host state
|
|
||||||
+ hosts: all
|
|
||||||
+ tasks:
|
|
||||||
+ - import_tasks: tasks/restore_state.yml
|
|
||||||
diff --git a/tests/tasks/commonvars.yml b/tests/tasks/commonvars.yml
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..50452f7
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/tasks/commonvars.yml
|
|
||||||
@@ -0,0 +1,2 @@
|
|
||||||
+restore_services:
|
|
||||||
+ - NetworkManager
|
|
||||||
diff --git a/tests/tasks/get_services_state.yml b/tests/tasks/get_services_state.yml
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..4fe5d36
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/tasks/get_services_state.yml
|
|
||||||
@@ -0,0 +1,4 @@
|
|
||||||
+- name: Get initial state of services
|
|
||||||
+ tags: tests::cleanup
|
|
||||||
+ service_facts:
|
|
||||||
+ register: initial_state
|
|
||||||
diff --git a/tests/tasks/restore_services_state.yml b/tests/tasks/restore_services_state.yml
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..2035dfc
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/tasks/restore_services_state.yml
|
|
||||||
@@ -0,0 +1,22 @@
|
|
||||||
+- block:
|
|
||||||
+ - name: load common vars
|
|
||||||
+ include_vars:
|
|
||||||
+ file: commonvars.yml
|
|
||||||
+
|
|
||||||
+ - name: Get final state of services
|
|
||||||
+ service_facts:
|
|
||||||
+ register: final_state
|
|
||||||
+
|
|
||||||
+ - name: Restore state of services
|
|
||||||
+ service:
|
|
||||||
+ name: "{{ item }}"
|
|
||||||
+ state: "{{ 'started' if
|
|
||||||
+ initial_state.ansible_facts.services[sname]['state']
|
|
||||||
+ == 'running' else 'stopped' }}"
|
|
||||||
+ when:
|
|
||||||
+ - sname in final_state.ansible_facts.services
|
|
||||||
+ - sname in initial_state.ansible_facts.services
|
|
||||||
+ vars:
|
|
||||||
+ sname: "{{ item + '.service' }}"
|
|
||||||
+ with_items: "{{ restore_services }}"
|
|
||||||
+ tags: tests::cleanup
|
|
||||||
diff --git a/tests/tasks/restore_state.yml b/tests/tasks/restore_state.yml
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..f4e3d5f
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/tasks/restore_state.yml
|
|
||||||
@@ -0,0 +1,24 @@
|
|
||||||
+---
|
|
||||||
+- name: Remove /etc/sysconfig/network if there was no one
|
|
||||||
+ tags:
|
|
||||||
+ - 'tests::cleanup'
|
|
||||||
+ file:
|
|
||||||
+ path: /etc/sysconfig/network
|
|
||||||
+ state: absent
|
|
||||||
+ when:
|
|
||||||
+ - etc_sysconfig_network_stat is defined
|
|
||||||
+ - not etc_sysconfig_network_stat.stat.exists
|
|
||||||
+
|
|
||||||
+- name: Restore services
|
|
||||||
+ import_tasks: restore_services_state.yml
|
|
||||||
+
|
|
||||||
+- name: reload NetworkManager
|
|
||||||
+ tags:
|
|
||||||
+ - 'tests::cleanup'
|
|
||||||
+ command: nmcli connection reload
|
|
||||||
+ when:
|
|
||||||
+ - sname in final_state.ansible_facts.services
|
|
||||||
+ - sname in initial_state.ansible_facts.services
|
|
||||||
+ - final_state.ansible_facts.services[sname]['state'] == 'running'
|
|
||||||
+ vars:
|
|
||||||
+ sname: NetworkManager.service
|
|
||||||
diff --git a/tests/tasks/save_state.yml b/tests/tasks/save_state.yml
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..5690aed
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/tasks/save_state.yml
|
|
||||||
@@ -0,0 +1,11 @@
|
|
||||||
+---
|
|
||||||
+- name: Get services state
|
|
||||||
+ import_tasks: get_services_state.yml
|
|
||||||
+
|
|
||||||
+- name: Investigate /etc/sysconfig/network presence
|
|
||||||
+ tags:
|
|
||||||
+ - 'tests::cleanup'
|
|
||||||
+ stat:
|
|
||||||
+ path: /etc/sysconfig/network
|
|
||||||
+ register: etc_sysconfig_network_stat
|
|
||||||
+ ignore_errors: yes
|
|
||||||
diff --git a/tests/tests_802_1x_nm.yml b/tests/tests_802_1x_nm.yml
|
|
||||||
index 288cd5d..840958d 100644
|
|
||||||
--- a/tests/tests_802_1x_nm.yml
|
|
||||||
+++ b/tests/tests_802_1x_nm.yml
|
|
||||||
@@ -4,6 +4,8 @@
|
|
||||||
# set network provider and gather facts
|
|
||||||
- hosts: all
|
|
||||||
name: Run playbook 'playbooks/tests_802_1x.yml' with nm as provider
|
|
||||||
+ tags:
|
|
||||||
+ - tests::expfail
|
|
||||||
tasks:
|
|
||||||
- name: Set network provider to 'nm'
|
|
||||||
set_fact:
|
|
||||||
@@ -17,3 +19,5 @@
|
|
||||||
- import_playbook: playbooks/tests_802_1x.yml
|
|
||||||
when:
|
|
||||||
- ansible_distribution_major_version != '6'
|
|
||||||
+ tags:
|
|
||||||
+ - tests::expfail
|
|
||||||
diff --git a/tests/tests_802_1x_updated_nm.yml b/tests/tests_802_1x_updated_nm.yml
|
|
||||||
index bd335e4..4ebcaf9 100644
|
|
||||||
--- a/tests/tests_802_1x_updated_nm.yml
|
|
||||||
+++ b/tests/tests_802_1x_updated_nm.yml
|
|
||||||
@@ -4,6 +4,8 @@
|
|
||||||
# set network provider and gather facts
|
|
||||||
- hosts: all
|
|
||||||
name: Run playbook 'playbooks/tests_802_1x_updated.yml' with nm as provider
|
|
||||||
+ tags:
|
|
||||||
+ - tests::expfail
|
|
||||||
tasks:
|
|
||||||
- name: Set network provider to 'nm'
|
|
||||||
set_fact:
|
|
||||||
@@ -17,3 +19,5 @@
|
|
||||||
- import_playbook: playbooks/tests_802_1x_updated.yml
|
|
||||||
when:
|
|
||||||
- ansible_distribution_major_version != '6'
|
|
||||||
+ tags:
|
|
||||||
+ - tests::expfail
|
|
||||||
diff --git a/tests/tests_default.yml b/tests/tests_default.yml
|
|
||||||
index f6f7550..98e3c7e 100644
|
|
||||||
--- a/tests/tests_default.yml
|
|
||||||
+++ b/tests/tests_default.yml
|
|
||||||
@@ -10,3 +10,11 @@
|
|
||||||
that:
|
|
||||||
- "'warnings' not in __network_connections_result"
|
|
||||||
msg: "There are warnings"
|
|
||||||
+
|
|
||||||
+ pre_tasks:
|
|
||||||
+ - name: Save host state
|
|
||||||
+ import_tasks: tasks/save_state.yml
|
|
||||||
+
|
|
||||||
+ post_tasks:
|
|
||||||
+ - name: Restore host state
|
|
||||||
+ import_tasks: tasks/restore_state.yml
|
|
||||||
diff --git a/tests/tests_helpers_and_asserts.yml b/tests/tests_helpers_and_asserts.yml
|
|
||||||
index 5514182..d9bfa11 100644
|
|
||||||
--- a/tests/tests_helpers_and_asserts.yml
|
|
||||||
+++ b/tests/tests_helpers_and_asserts.yml
|
|
||||||
@@ -15,6 +15,14 @@
|
|
||||||
type: dummy
|
|
||||||
interface: dummy1298
|
|
||||||
|
|
||||||
+ pre_tasks:
|
|
||||||
+ - name: Save host state
|
|
||||||
+ import_tasks: tasks/save_state.yml
|
|
||||||
+
|
|
||||||
+ post_tasks:
|
|
||||||
+ - name: Restore host state
|
|
||||||
+ import_tasks: tasks/restore_state.yml
|
|
||||||
+
|
|
||||||
# FIXME: when: does not seem to work with include_tasks, therefore this cannot
|
|
||||||
# be safely tested for now
|
|
||||||
# - name: test tap interfaces
|
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
diff --git a/meta/main.yml b/meta/main.yml
|
|
||||||
index a0ef6f4..da22270 100644
|
|
||||||
--- a/meta/main.yml
|
|
||||||
+++ b/meta/main.yml
|
|
||||||
@@ -7,8 +7,8 @@ galaxy_info:
|
|
||||||
min_ansible_version: 2.2
|
|
||||||
platforms:
|
|
||||||
- name: Fedora
|
|
||||||
- versions: [ 24, 25 ]
|
|
||||||
+ versions: [ 31, 32 ]
|
|
||||||
- name: EL
|
|
||||||
- versions: [ 6, 7 ]
|
|
||||||
+ versions: [ 6, 7, 8 ]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,80 +0,0 @@
|
|||||||
diff --git a/tasks/ssh.yml b/tasks/ssh.yml
|
|
||||||
index 1a4e858..b05d01a 100644
|
|
||||||
--- a/tasks/ssh.yml
|
|
||||||
+++ b/tasks/ssh.yml
|
|
||||||
@@ -18,3 +18,15 @@
|
|
||||||
key: "{{ keydata.content|b64decode }}"
|
|
||||||
state: present
|
|
||||||
delegate_to: "{{ kdump_ssh_server }}"
|
|
||||||
+
|
|
||||||
+- name: Fetch the servers public key
|
|
||||||
+ slurp:
|
|
||||||
+ src: /etc/ssh/ssh_host_rsa_key.pub
|
|
||||||
+ register: serverpubkey
|
|
||||||
+ delegate_to: "{{ kdump_ssh_server }}"
|
|
||||||
+
|
|
||||||
+- name: Add the servers public key to known_hosts on managed node
|
|
||||||
+ known_hosts:
|
|
||||||
+ key: "{{ kdump_ssh_server_location }} {{ serverpubkey.content | b64decode }}"
|
|
||||||
+ name: "{{ kdump_ssh_server_location }}"
|
|
||||||
+ path: /etc/ssh/ssh_known_hosts
|
|
||||||
diff --git a/templates/kdump.conf.j2 b/templates/kdump.conf.j2
|
|
||||||
index bf24210..504ff34 100644
|
|
||||||
--- a/templates/kdump.conf.j2
|
|
||||||
+++ b/templates/kdump.conf.j2
|
|
||||||
@@ -1,12 +1,17 @@
|
|
||||||
# {{ ansible_managed }}
|
|
||||||
|
|
||||||
{% if kdump_target %}
|
|
||||||
-{{ kdump_target.type }} {{ kdump_target.location }}
|
|
||||||
-{% endif %}
|
|
||||||
+{% if kdump_target.type == "ssh" %}
|
|
||||||
+ssh {{ kdump_target.location | d(kdump_ssh_user ~ '@' ~ kdump_ssh_server) }}
|
|
||||||
|
|
||||||
-{% if kdump_target and kdump_target.type == "ssh" and kdump_sshkey != '/root/.ssh/kdump_id_rsa' %}
|
|
||||||
+{% if kdump_sshkey != '/root/.ssh/kdump_id_rsa' %}
|
|
||||||
sshkey {{ kdump_sshkey }}
|
|
||||||
{% endif %}
|
|
||||||
+{% else %}
|
|
||||||
+{{ kdump_target.type }} {{ kdump_target.location }}
|
|
||||||
+
|
|
||||||
+{% endif %}
|
|
||||||
+{% endif %}
|
|
||||||
|
|
||||||
path {{ kdump_path }}
|
|
||||||
{% if kdump_core_collector %}
|
|
||||||
diff --git a/tests/tests_ssh.yml b/tests/tests_ssh.yml
|
|
||||||
index 1da99df..d12e884 100644
|
|
||||||
--- a/tests/tests_ssh.yml
|
|
||||||
+++ b/tests/tests_ssh.yml
|
|
||||||
@@ -5,6 +5,11 @@
|
|
||||||
# known and ansible is supposed to be configured to be able to
|
|
||||||
# connect to it (via inventory).
|
|
||||||
kdump_ssh_server_outside: localhost
|
|
||||||
+ kdump_ssh_source: "{{ ansible_env['SSH_CONNECTION'].split()[0] }}"
|
|
||||||
+
|
|
||||||
+ # this is the address at which the ssh dump server can be reached
|
|
||||||
+ # from the managed host. Dumps will be uploaded there.
|
|
||||||
+ kdump_ssh_server_inside: "{{ kdump_ssh_source if kdump_ssh_source in hostvars[kdump_ssh_server_outside]['ansible_all_ipv4_addresses'] + hostvars[kdump_ssh_server_outside]['ansible_all_ipv6_addresses'] else hostvars[kdump_ssh_server_outside]['ansible_default_ipv4']['address'] }}"
|
|
||||||
|
|
||||||
tasks:
|
|
||||||
- name: gather facts from {{ kdump_ssh_server_outside }}
|
|
||||||
@@ -25,8 +30,5 @@
|
|
||||||
type: ssh
|
|
||||||
# This is the ssh dump server address visible from inside
|
|
||||||
# the machine being configured. Dumps are to be copied
|
|
||||||
- # there. We make here the assumption that this machine is
|
|
||||||
- # being run as a VM and the dump server is the VM host
|
|
||||||
- # (i.e. for ansible this is localhost). From the VM its
|
|
||||||
- # address is then identical to the default route.
|
|
||||||
- location: "{{ kdump_ssh_user }}@{{ ansible_default_ipv4.gateway }}"
|
|
||||||
+ # there.
|
|
||||||
+ location: "{{ kdump_ssh_user }}@{{ kdump_ssh_server_inside }}"
|
|
||||||
diff --git a/vars/main.yml b/vars/main.yml
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..34d2d62
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/vars/main.yml
|
|
||||||
@@ -0,0 +1,2 @@
|
|
||||||
+# determine the managed node facing ssh server address
|
|
||||||
+kdump_ssh_server_location: "{{ kdump_target.location | regex_replace('.*@(.*)$', '\\1') if kdump_target.location is defined else kdump_ssh_server }}"
|
|
@ -1,40 +0,0 @@
|
|||||||
diff --git a/README.md b/README.md
|
|
||||||
index 5950215..df64284 100644
|
|
||||||
--- a/README.md
|
|
||||||
+++ b/README.md
|
|
||||||
@@ -17,7 +17,7 @@ Example Playbook
|
|
||||||
|
|
||||||
Install and enable postfix. Configure "relay_domains=$mydestination" and
|
|
||||||
|
|
||||||
-```
|
|
||||||
+```yaml
|
|
||||||
---
|
|
||||||
- hosts: all
|
|
||||||
vars:
|
|
||||||
@@ -31,7 +31,7 @@ Install and enable postfix. Configure "relay_domains=$mydestination" and
|
|
||||||
Install and enable postfix. Do not run 'postfix check' before restarting
|
|
||||||
postfix:
|
|
||||||
|
|
||||||
-```
|
|
||||||
+```yaml
|
|
||||||
---
|
|
||||||
- hosts: all
|
|
||||||
vars:
|
|
||||||
@@ -43,7 +43,7 @@ postfix:
|
|
||||||
Install and enable postfix. Do single backup of main.cf (older backup will be
|
|
||||||
rewritten) and configure "relay_host=example.com":
|
|
||||||
|
|
||||||
-```
|
|
||||||
+```yaml
|
|
||||||
---
|
|
||||||
- hosts: all
|
|
||||||
vars:
|
|
||||||
@@ -58,7 +58,7 @@ Install and enable postfix. Do timestamped backup of main.cf and
|
|
||||||
configure "relay_host=example.com" (if postfix_backup_multiple is
|
|
||||||
set to true postfix_backup is ignored):
|
|
||||||
|
|
||||||
-```
|
|
||||||
+```yaml
|
|
||||||
---
|
|
||||||
- hosts: all
|
|
||||||
vars:
|
|
@ -1,164 +0,0 @@
|
|||||||
From 9cbbc3f63052bef0b6a697e066e092a5f9722ce8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Noriko Hosoi <nhosoi@redhat.com>
|
|
||||||
Date: Mon, 22 Feb 2021 17:11:05 -0800
|
|
||||||
Subject: [PATCH] Patch23: selinux-ansible-test-issues.diff
|
|
||||||
|
|
||||||
---
|
|
||||||
.sanity-ansible-ignore-2.10.txt | 2 ++
|
|
||||||
.sanity-ansible-ignore-2.9.txt | 2 ++
|
|
||||||
library/selogin.py | 26 ++++++++++-----------
|
|
||||||
tests/setup_module_utils.sh | 41 ---------------------------------
|
|
||||||
4 files changed, 16 insertions(+), 55 deletions(-)
|
|
||||||
create mode 100644 .sanity-ansible-ignore-2.10.txt
|
|
||||||
create mode 100644 .sanity-ansible-ignore-2.9.txt
|
|
||||||
delete mode 100755 tests/setup_module_utils.sh
|
|
||||||
|
|
||||||
diff --git a/.sanity-ansible-ignore-2.10.txt b/.sanity-ansible-ignore-2.10.txt
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..5f8ce1e
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/.sanity-ansible-ignore-2.10.txt
|
|
||||||
@@ -0,0 +1,2 @@
|
|
||||||
+plugins/modules/selogin.py no-get-exception
|
|
||||||
+plugins/modules/selogin.py validate-modules!skip
|
|
||||||
diff --git a/.sanity-ansible-ignore-2.9.txt b/.sanity-ansible-ignore-2.9.txt
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..5f8ce1e
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/.sanity-ansible-ignore-2.9.txt
|
|
||||||
@@ -0,0 +1,2 @@
|
|
||||||
+plugins/modules/selogin.py no-get-exception
|
|
||||||
+plugins/modules/selogin.py validate-modules!skip
|
|
||||||
diff --git a/library/selogin.py b/library/selogin.py
|
|
||||||
index b785c27..6e3fd32 100644
|
|
||||||
--- a/library/selogin.py
|
|
||||||
+++ b/library/selogin.py
|
|
||||||
@@ -15,6 +15,9 @@
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
+from __future__ import absolute_import, division, print_function
|
|
||||||
+
|
|
||||||
+__metaclass__ = type
|
|
||||||
|
|
||||||
ANSIBLE_METADATA = {
|
|
||||||
"status": ["preview"],
|
|
||||||
@@ -22,13 +25,14 @@ ANSIBLE_METADATA = {
|
|
||||||
"version": "1.0",
|
|
||||||
}
|
|
||||||
|
|
||||||
-DOCUMENTATION = """
|
|
||||||
+DOCUMENTATION = r"""
|
|
||||||
---
|
|
||||||
module: selogin
|
|
||||||
short_description: Manages linux user to SELinux user mapping
|
|
||||||
description:
|
|
||||||
- - Manages linux user to SELinux user mapping
|
|
||||||
-version_added: "1.0"
|
|
||||||
+ - "WARNING: Do not use this module directly! It is only for role internal use."
|
|
||||||
+ - Manages linux user to SELinux user mapping
|
|
||||||
+version_added: '1.0'
|
|
||||||
options:
|
|
||||||
login:
|
|
||||||
description:
|
|
||||||
@@ -41,8 +45,7 @@ options:
|
|
||||||
required: true
|
|
||||||
default: null
|
|
||||||
serange:
|
|
||||||
- description:
|
|
||||||
- - >-
|
|
||||||
+ description: >
|
|
||||||
MLS/MCS Security Range (MLS/MCS Systems only) SELinux Range for SELinux login
|
|
||||||
mapping - defaults to the SELinux user record range.
|
|
||||||
required: false
|
|
||||||
@@ -62,8 +65,9 @@ notes:
|
|
||||||
- The changes are persistent across reboots
|
|
||||||
- Not tested on any debian based system
|
|
||||||
requirements: [ 'libselinux-python', 'policycoreutils-python' ]
|
|
||||||
-author: Dan Keder
|
|
||||||
-author: Petr Lautrbach
|
|
||||||
+author:
|
|
||||||
+ - Dan Keder (@dkeder)
|
|
||||||
+ - Petr Lautrbach (@bachradsusi)
|
|
||||||
"""
|
|
||||||
|
|
||||||
EXAMPLES = """
|
|
||||||
@@ -82,7 +86,7 @@ EXAMPLES = """
|
|
||||||
|
|
||||||
# Assign all users in the engineering group to the staff_u user
|
|
||||||
- selogin:
|
|
||||||
- login: %engineering
|
|
||||||
+ login: "%engineering"
|
|
||||||
seuser: staff_u
|
|
||||||
state: present
|
|
||||||
"""
|
|
||||||
@@ -198,9 +202,6 @@ def semanage_login_add(module, login, seuser, do_reload, serange="s0", sestore="
|
|
||||||
except KeyError:
|
|
||||||
e = get_exception()
|
|
||||||
module.fail_json(msg="%s: %s\n" % (e.__class__.__name__, str(e)))
|
|
||||||
- except OSError:
|
|
||||||
- e = get_exception()
|
|
||||||
- module.fail_json(msg="%s: %s\n" % (e.__class__.__name__, str(e)))
|
|
||||||
except RuntimeError:
|
|
||||||
e = get_exception()
|
|
||||||
module.fail_json(msg="%s: %s\n" % (e.__class__.__name__, str(e)))
|
|
||||||
@@ -248,9 +249,6 @@ def semanage_login_del(module, login, seuser, do_reload, sestore=""):
|
|
||||||
except KeyError:
|
|
||||||
e = get_exception()
|
|
||||||
module.fail_json(msg="%s: %s\n" % (e.__class__.__name__, str(e)))
|
|
||||||
- except OSError:
|
|
||||||
- e = get_exception()
|
|
||||||
- module.fail_json(msg="%s: %s\n" % (e.__class__.__name__, str(e)))
|
|
||||||
except RuntimeError:
|
|
||||||
e = get_exception()
|
|
||||||
module.fail_json(msg="%s: %s\n" % (e.__class__.__name__, str(e)))
|
|
||||||
diff --git a/tests/setup_module_utils.sh b/tests/setup_module_utils.sh
|
|
||||||
deleted file mode 100755
|
|
||||||
index 94d102d..0000000
|
|
||||||
--- a/tests/setup_module_utils.sh
|
|
||||||
+++ /dev/null
|
|
||||||
@@ -1,41 +0,0 @@
|
|
||||||
-#!/bin/bash
|
|
||||||
-# SPDX-License-Identifier: MIT
|
|
||||||
-
|
|
||||||
-set -euo pipefail
|
|
||||||
-
|
|
||||||
-if [ -n "${DEBUG:-}" ] ; then
|
|
||||||
- set -x
|
|
||||||
-fi
|
|
||||||
-
|
|
||||||
-if [ ! -d "${1:-}" ] ; then
|
|
||||||
- echo Either ansible is not installed, or there is no ansible/module_utils
|
|
||||||
- echo in "$1" - Skipping
|
|
||||||
- exit 0
|
|
||||||
-fi
|
|
||||||
-
|
|
||||||
-if [ ! -d "${2:-}" ] ; then
|
|
||||||
- echo Role has no module_utils - Skipping
|
|
||||||
- exit 0
|
|
||||||
-fi
|
|
||||||
-
|
|
||||||
-# we need absolute path for $2
|
|
||||||
-absmoddir=$( readlink -f "$2" )
|
|
||||||
-
|
|
||||||
-# clean up old links to module_utils
|
|
||||||
-for item in "$1"/* ; do
|
|
||||||
- if lnitem=$( readlink "$item" ) && test -n "$lnitem" ; then
|
|
||||||
- case "$lnitem" in
|
|
||||||
- *"${2}"*) rm -f "$item" ;;
|
|
||||||
- esac
|
|
||||||
- fi
|
|
||||||
-done
|
|
||||||
-
|
|
||||||
-# add new links to module_utils
|
|
||||||
-for item in "$absmoddir"/* ; do
|
|
||||||
- case "$item" in
|
|
||||||
- *__pycache__) continue;;
|
|
||||||
- *.pyc) continue;;
|
|
||||||
- esac
|
|
||||||
- bnitem=$( basename "$item" )
|
|
||||||
- ln -s "$item" "$1/$bnitem"
|
|
||||||
-done
|
|
||||||
--
|
|
||||||
2.26.2
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
|||||||
From 035a9b2db26af071a95e02a0af08bcbb73b69abf Mon Sep 17 00:00:00 2001
|
|
||||||
From: Florian Bachmann <fbachmann.public@gmail.com>
|
|
||||||
Date: Fri, 5 Feb 2021 11:48:53 +0100
|
|
||||||
Subject: [PATCH] fix incorrect default value (there is no variable named
|
|
||||||
"present")
|
|
||||||
|
|
||||||
---
|
|
||||||
tasks/main.yml | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/tasks/main.yml b/tasks/main.yml
|
|
||||||
index afbe81f..702e369 100644
|
|
||||||
--- a/tasks/main.yml
|
|
||||||
+++ b/tasks/main.yml
|
|
||||||
@@ -118,7 +118,7 @@
|
|
||||||
ports: "{{ item.ports }}"
|
|
||||||
proto: "{{ item.proto | default('tcp') }}"
|
|
||||||
setype: "{{ item.setype }}"
|
|
||||||
- state: "{{ item.state | default(present) }}"
|
|
||||||
+ state: "{{ item.state | default('present') }}"
|
|
||||||
with_items: "{{ selinux_ports }}"
|
|
||||||
|
|
||||||
- name: Set linux user to SELinux user mapping
|
|
||||||
@@ -126,6 +126,6 @@
|
|
||||||
login: "{{ item.login }}"
|
|
||||||
seuser: "{{ item.seuser }}"
|
|
||||||
serange: "{{ item.serange | default('s0') }}"
|
|
||||||
- state: "{{ item.state | default(present) }}"
|
|
||||||
+ state: "{{ item.state | default('present') }}"
|
|
||||||
reload: "{{ item.reload | default(False) }}"
|
|
||||||
with_items: "{{ selinux_logins }}"
|
|
||||||
--
|
|
||||||
2.29.2
|
|
||||||
|
|
@ -1,176 +0,0 @@
|
|||||||
diff --git a/tests/set_selinux_variables.yml b/tests/set_selinux_variables.yml
|
|
||||||
index f294101..7571066 100644
|
|
||||||
--- a/tests/set_selinux_variables.yml
|
|
||||||
+++ b/tests/set_selinux_variables.yml
|
|
||||||
@@ -1,4 +1,12 @@
|
|
||||||
---
|
|
||||||
+- name: Install SELinux tool semanage on Fedora
|
|
||||||
+ package:
|
|
||||||
+ name:
|
|
||||||
+ - policycoreutils-python-utils
|
|
||||||
+ state: present
|
|
||||||
+ when: ansible_distribution == "Fedora" or
|
|
||||||
+ ( ansible_distribution_major_version > "7" and
|
|
||||||
+ ( ansible_distribution == "CentOS" or ansible_distribution == "RedHat" ))
|
|
||||||
- name: Get local modifications - boolean
|
|
||||||
command: /usr/sbin/semanage boolean -l -n -C
|
|
||||||
register: selinux_role_boolean
|
|
||||||
diff --git a/tests/tests_all_purge.yml b/tests/tests_all_purge.yml
|
|
||||||
index 03dfe05..6775847 100644
|
|
||||||
--- a/tests/tests_all_purge.yml
|
|
||||||
+++ b/tests/tests_all_purge.yml
|
|
||||||
@@ -8,13 +8,17 @@
|
|
||||||
fcontext -a -t user_home_dir_t /tmp/test_dir
|
|
||||||
login -a -s staff_u sar-user
|
|
||||||
|
|
||||||
+ tags:
|
|
||||||
+ - 'tests::avc'
|
|
||||||
tasks:
|
|
||||||
- name: Install SELinux tool semanage on Fedora
|
|
||||||
package:
|
|
||||||
name:
|
|
||||||
- policycoreutils-python-utils
|
|
||||||
state: present
|
|
||||||
- when: ansible_distribution == "Fedora"
|
|
||||||
+ when: ansible_distribution == "Fedora" or
|
|
||||||
+ ( ansible_distribution_major_version > "7" and
|
|
||||||
+ ( ansible_distribution == "CentOS" or ansible_distribution == "RedHat" ))
|
|
||||||
|
|
||||||
- name: Add a Linux System Roles SELinux User
|
|
||||||
user:
|
|
||||||
diff --git a/tests/tests_all_transitions.yml b/tests/tests_all_transitions.yml
|
|
||||||
index f608a42..d0d209b 100644
|
|
||||||
--- a/tests/tests_all_transitions.yml
|
|
||||||
+++ b/tests/tests_all_transitions.yml
|
|
||||||
@@ -1,6 +1,8 @@
|
|
||||||
- name: Test all the possible selinux_state transitions
|
|
||||||
hosts: all
|
|
||||||
become: true
|
|
||||||
+ tags:
|
|
||||||
+ - 'tests::reboot'
|
|
||||||
vars:
|
|
||||||
states:
|
|
||||||
- permissive
|
|
||||||
diff --git a/tests/tests_boolean.yml b/tests/tests_boolean.yml
|
|
||||||
index 47eafc0..2aa0025 100644
|
|
||||||
--- a/tests/tests_boolean.yml
|
|
||||||
+++ b/tests/tests_boolean.yml
|
|
||||||
@@ -1,4 +1,5 @@
|
|
||||||
- name: Check if selinux role sets SELinux booleans
|
|
||||||
+ tags: tests::expfail
|
|
||||||
hosts: all
|
|
||||||
become: true
|
|
||||||
|
|
||||||
@@ -12,7 +13,7 @@
|
|
||||||
selinux_booleans:
|
|
||||||
- { name: 'samba_enable_home_dirs', state: 'on', persistent: 'yes' }
|
|
||||||
|
|
||||||
- - include: set_selinux_variables.yml
|
|
||||||
+ - import_tasks: set_selinux_variables.yml
|
|
||||||
- name: save state after initial changes and before other changes
|
|
||||||
set_fact:
|
|
||||||
boolean_before: "{{ selinux_role_boolean.stdout_lines }}"
|
|
||||||
diff --git a/tests/tests_fcontext.yml b/tests/tests_fcontext.yml
|
|
||||||
index 0a411fb..f6f1bf4 100644
|
|
||||||
--- a/tests/tests_fcontext.yml
|
|
||||||
+++ b/tests/tests_fcontext.yml
|
|
||||||
@@ -13,7 +13,7 @@
|
|
||||||
selinux_fcontexts:
|
|
||||||
- { target: '/tmp/test_dir1(/.*)?', setype: 'user_home_dir_t', ftype: 'd' }
|
|
||||||
|
|
||||||
- - include: set_selinux_variables.yml
|
|
||||||
+ - import_tasks: set_selinux_variables.yml
|
|
||||||
- name: save state after initial changes and before other changes
|
|
||||||
set_fact:
|
|
||||||
fcontext_before: "{{ selinux_role_fcontext.stdout }}"
|
|
||||||
diff --git a/tests/tests_login.yml b/tests/tests_login.yml
|
|
||||||
index efa826d..c7ce462 100644
|
|
||||||
--- a/tests/tests_login.yml
|
|
||||||
+++ b/tests/tests_login.yml
|
|
||||||
@@ -18,6 +18,6 @@
|
|
||||||
- { login: 'sar-user', seuser: 'staff_u', serange: 's0-s0:c0.c1023', state: 'present' }
|
|
||||||
|
|
||||||
- - include: set_selinux_variables.yml
|
|
||||||
+ - import_tasks: set_selinux_variables.yml
|
|
||||||
- name: save state after initial changes and before other changes
|
|
||||||
set_fact:
|
|
||||||
login_before: "{{ selinux_role_login.stdout }}"
|
|
||||||
diff --git a/tests/tests_port.yml b/tests/tests_port.yml
|
|
||||||
index 446f79d..7bb112e 100644
|
|
||||||
--- a/tests/tests_port.yml
|
|
||||||
+++ b/tests/tests_port.yml
|
|
||||||
@@ -29,7 +29,7 @@
|
|
||||||
selinux_ports:
|
|
||||||
- { ports: '22022', proto: 'tcp', setype: 'ssh_port_t', state: 'present' }
|
|
||||||
|
|
||||||
- - include: set_selinux_variables.yml
|
|
||||||
+ - import_tasks: set_selinux_variables.yml
|
|
||||||
- name: save state after other changes
|
|
||||||
set_fact:
|
|
||||||
port_after: "{{ selinux_role_port.stdout }}"
|
|
||||||
diff --git a/tests/tests_selinux_disabled.yml b/tests/tests_selinux_disabled.yml
|
|
||||||
index afd23e4..883dc6d 100644
|
|
||||||
--- a/tests/tests_selinux_disabled.yml
|
|
||||||
+++ b/tests/tests_selinux_disabled.yml
|
|
||||||
@@ -12,13 +12,17 @@
|
|
||||||
fcontext -a -t user_home_dir_t /tmp/test_dir
|
|
||||||
login -a -s staff_u sar-user
|
|
||||||
|
|
||||||
+ tags:
|
|
||||||
+ - 'tests::avc'
|
|
||||||
tasks:
|
|
||||||
- name: Install SELinux tool semanage on Fedora
|
|
||||||
package:
|
|
||||||
name:
|
|
||||||
- policycoreutils-python-utils
|
|
||||||
state: present
|
|
||||||
- when: ansible_distribution == "Fedora"
|
|
||||||
+ when: ansible_distribution == "Fedora" or
|
|
||||||
+ ( ansible_distribution_major_version > "7" and
|
|
||||||
+ ( ansible_distribution == "CentOS" or ansible_distribution == "RedHat" ))
|
|
||||||
|
|
||||||
- name: Add a Linux System Roles SELinux User
|
|
||||||
user:
|
|
||||||
@@ -67,17 +69,28 @@
|
|
||||||
assert:
|
|
||||||
that: "{{ ansible_selinux.config_mode == 'enforcing' }}"
|
|
||||||
msg: "SELinux config mode should be enforcing instead of {{ ansible_selinux.config_mode }}"
|
|
||||||
- - name: Restore original /etc/selinux/config
|
|
||||||
- copy:
|
|
||||||
- remote_src: true
|
|
||||||
- dest: /etc/selinux/config
|
|
||||||
- src: /etc/selinux/config.test_selinux_disabled
|
|
||||||
- - name: Remove /etc/selinux/config backup
|
|
||||||
- file:
|
|
||||||
- path: /etc/selinux/config.test_selinux_disabled
|
|
||||||
- state: absent
|
|
||||||
- - name: Remove Linux System Roles SELinux User
|
|
||||||
- user:
|
|
||||||
- name: sar-user
|
|
||||||
- remove: yes
|
|
||||||
- state: absent
|
|
||||||
+
|
|
||||||
+ - name: Cleanup
|
|
||||||
+ tags: [ 'tests::cleanup' ]
|
|
||||||
+ block:
|
|
||||||
+ - name: Restore original /etc/selinux/config
|
|
||||||
+ copy:
|
|
||||||
+ remote_src: true
|
|
||||||
+ dest: /etc/selinux/config
|
|
||||||
+ src: /etc/selinux/config.test_selinux_disabled
|
|
||||||
+
|
|
||||||
+ - name: Remove /etc/selinux/config backup
|
|
||||||
+ file:
|
|
||||||
+ path: /etc/selinux/config.test_selinux_disabled
|
|
||||||
+ state: absent
|
|
||||||
+
|
|
||||||
+ - name: Remove Linux System Roles SELinux User
|
|
||||||
+ user:
|
|
||||||
+ name: sar-user
|
|
||||||
+ remove: yes
|
|
||||||
+ state: absent
|
|
||||||
+
|
|
||||||
+ - import_role:
|
|
||||||
+ name: linux-system-roles.selinux
|
|
||||||
+ vars:
|
|
||||||
+ selinux_all_purge: true
|
|
@ -1,43 +0,0 @@
|
|||||||
diff --git a/README.md b/README.md
|
|
||||||
index 676ad72..dc06d85 100644
|
|
||||||
--- a/README.md
|
|
||||||
+++ b/README.md
|
|
||||||
@@ -190,7 +190,7 @@ defaults. This is useful if the role is used in deployment stage to make sure
|
|
||||||
the service is able to start on the first attempt. To disable this check, set
|
|
||||||
this to empty list.
|
|
||||||
|
|
||||||
-* `sshd_hostkey_owner`, `sshd_hostkey_group`, `sshd_hostkey_group`
|
|
||||||
+* `sshd_hostkey_owner`, `sshd_hostkey_group`, `sshd_hostkey_mode`
|
|
||||||
|
|
||||||
Use these variables to set the ownership and permissions for the host keys from
|
|
||||||
the above list.
|
|
||||||
@@ -273,6 +273,8 @@ for example:
|
|
||||||
X11Forwarding: yes
|
|
||||||
```
|
|
||||||
|
|
||||||
+More example playbooks can be found in [`examples/`](examples/) directory.
|
|
||||||
+
|
|
||||||
Template Generation
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
diff --git a/examples/example-root-login.yml b/examples/example-root-login.yml
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..156e629
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/examples/example-root-login.yml
|
|
||||||
@@ -0,0 +1,15 @@
|
|
||||||
+---
|
|
||||||
+- hosts: all
|
|
||||||
+ tasks:
|
|
||||||
+ - name: Configure sshd to prevent root and password login except from particular subnet
|
|
||||||
+ include_role:
|
|
||||||
+ name: ansible-sshd
|
|
||||||
+ vars:
|
|
||||||
+ sshd:
|
|
||||||
+ # root login and password login is enabled only from a particular subnet
|
|
||||||
+ PermitRootLogin: no
|
|
||||||
+ PasswordAuthentication: no
|
|
||||||
+ Match:
|
|
||||||
+ - Condition: "Address 192.0.2.0/24"
|
|
||||||
+ PermitRootLogin: yes
|
|
||||||
+ PasswordAuthentication: yes
|
|
@ -1,25 +0,0 @@
|
|||||||
From bb612fb6c5f76a40fce368acb43d2847e699213d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Rich Megginson <rmeggins@redhat.com>
|
|
||||||
Date: Thu, 28 Jan 2021 15:56:14 -0700
|
|
||||||
Subject: [PATCH] use state: absent instead of state: missing
|
|
||||||
|
|
||||||
---
|
|
||||||
tests/tests_hostkeys_missing.yml | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/tests/tests_hostkeys_missing.yml b/tests/tests_hostkeys_missing.yml
|
|
||||||
index 9dfe77b..5790684 100644
|
|
||||||
--- a/tests/tests_hostkeys_missing.yml
|
|
||||||
+++ b/tests/tests_hostkeys_missing.yml
|
|
||||||
@@ -40,7 +40,7 @@
|
|
||||||
- name: Make sure the key was not created
|
|
||||||
file:
|
|
||||||
path: /tmp/missing_ssh_host_rsa_key
|
|
||||||
- state: missing
|
|
||||||
+ state: absent
|
|
||||||
register: key
|
|
||||||
failed_when: key.changed
|
|
||||||
tags: tests::verify
|
|
||||||
--
|
|
||||||
2.29.2
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -1,142 +0,0 @@
|
|||||||
diff --git a/library/blivet.py b/library/blivet.py
|
|
||||||
index eb8bb11..e927121 100644
|
|
||||||
--- a/library/blivet.py
|
|
||||||
+++ b/library/blivet.py
|
|
||||||
@@ -104,6 +104,7 @@ try:
|
|
||||||
from blivet3.formats import get_format
|
|
||||||
from blivet3.partitioning import do_partitioning
|
|
||||||
from blivet3.size import Size
|
|
||||||
+ from blivet3.udev import trigger
|
|
||||||
from blivet3.util import set_up_logging
|
|
||||||
BLIVET_PACKAGE = 'blivet3'
|
|
||||||
except ImportError:
|
|
||||||
@@ -116,6 +117,7 @@ except ImportError:
|
|
||||||
from blivet.formats import get_format
|
|
||||||
from blivet.partitioning import do_partitioning
|
|
||||||
from blivet.size import Size
|
|
||||||
+ from blivet.udev import trigger
|
|
||||||
from blivet.util import set_up_logging
|
|
||||||
BLIVET_PACKAGE = 'blivet'
|
|
||||||
except ImportError:
|
|
||||||
@@ -821,7 +823,10 @@ class BlivetPool(BlivetBase):
|
|
||||||
|
|
||||||
def _look_up_disks(self):
|
|
||||||
""" Look up the pool's disks in blivet's device tree. """
|
|
||||||
- if not self._pool['disks']:
|
|
||||||
+ if self._disks:
|
|
||||||
+ return
|
|
||||||
+
|
|
||||||
+ if not self._device and not self._pool['disks']:
|
|
||||||
raise BlivetAnsibleError("no disks specified for pool '%s'" % self._pool['name'])
|
|
||||||
elif not isinstance(self._pool['disks'], list):
|
|
||||||
raise BlivetAnsibleError("pool disks must be specified as a list")
|
|
||||||
@@ -832,7 +837,7 @@ class BlivetPool(BlivetBase):
|
|
||||||
if device is not None: # XXX fail if any disk isn't resolved?
|
|
||||||
disks.append(device)
|
|
||||||
|
|
||||||
- if self._pool['disks'] and not disks:
|
|
||||||
+ if self._pool['disks'] and not self._device and not disks:
|
|
||||||
raise BlivetAnsibleError("unable to resolve any disks specified for pool '%s' (%s)" % (self._pool['name'], self._pool['disks']))
|
|
||||||
|
|
||||||
self._disks = disks
|
|
||||||
@@ -974,9 +979,9 @@ class BlivetPool(BlivetBase):
|
|
||||||
""" Schedule actions to configure this pool according to the yaml input. """
|
|
||||||
global safe_mode
|
|
||||||
# look up the device
|
|
||||||
- self._look_up_disks()
|
|
||||||
self._look_up_device()
|
|
||||||
self._apply_defaults()
|
|
||||||
+ self._look_up_disks()
|
|
||||||
|
|
||||||
# schedule destroy if appropriate, including member type change
|
|
||||||
if not self.ultimately_present:
|
|
||||||
@@ -999,6 +1004,7 @@ class BlivetPartitionPool(BlivetPool):
|
|
||||||
return self._device.partitionable
|
|
||||||
|
|
||||||
def _look_up_device(self):
|
|
||||||
+ self._look_up_disks()
|
|
||||||
self._device = self._disks[0]
|
|
||||||
|
|
||||||
def _create(self):
|
|
||||||
@@ -1354,6 +1360,13 @@ def run_module():
|
|
||||||
|
|
||||||
actions.append(action)
|
|
||||||
|
|
||||||
+ def ensure_udev_update(action):
|
|
||||||
+ if action.is_create:
|
|
||||||
+ sys_path = action.device.path
|
|
||||||
+ if os.path.islink(sys_path):
|
|
||||||
+ sys_path = os.readlink(action.device.path)
|
|
||||||
+ trigger(action='change', subsystem='block', name=os.path.basename(sys_path))
|
|
||||||
+
|
|
||||||
def action_dict(action):
|
|
||||||
return dict(action=action.type_desc_str,
|
|
||||||
fs_type=action.format.type if action.is_format else None,
|
|
||||||
@@ -1395,6 +1408,7 @@ def run_module():
|
|
||||||
if scheduled:
|
|
||||||
# execute the scheduled actions, committing changes to disk
|
|
||||||
callbacks.action_executed.add(record_action)
|
|
||||||
+ callbacks.action_executed.add(ensure_udev_update)
|
|
||||||
try:
|
|
||||||
b.devicetree.actions.process(devices=b.devicetree.devices, dry_run=module.check_mode)
|
|
||||||
except Exception as e:
|
|
||||||
diff --git a/tests/tests_existing_lvm_pool.yml b/tests/tests_existing_lvm_pool.yml
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..854ac0d
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/tests_existing_lvm_pool.yml
|
|
||||||
@@ -0,0 +1,54 @@
|
|
||||||
+---
|
|
||||||
+- hosts: all
|
|
||||||
+ become: true
|
|
||||||
+ vars:
|
|
||||||
+ mount_location: '/opt/test1'
|
|
||||||
+ volume_group_size: '5g'
|
|
||||||
+ volume_size: '4g'
|
|
||||||
+ pool_name: foo
|
|
||||||
+
|
|
||||||
+ tasks:
|
|
||||||
+ - include_role:
|
|
||||||
+ name: linux-system-roles.storage
|
|
||||||
+
|
|
||||||
+ - include_tasks: get_unused_disk.yml
|
|
||||||
+ vars:
|
|
||||||
+ min_size: "{{ volume_group_size }}"
|
|
||||||
+ max_return: 1
|
|
||||||
+
|
|
||||||
+ - name: Create one LVM logical volume under one volume group
|
|
||||||
+ include_role:
|
|
||||||
+ name: linux-system-roles.storage
|
|
||||||
+ vars:
|
|
||||||
+ storage_pools:
|
|
||||||
+ - name: "{{ pool_name }}"
|
|
||||||
+ disks: "{{ unused_disks }}"
|
|
||||||
+ volumes:
|
|
||||||
+ - name: test1
|
|
||||||
+ size: "{{ volume_size }}"
|
|
||||||
+
|
|
||||||
+ - include_tasks: verify-role-results.yml
|
|
||||||
+
|
|
||||||
+ - name: Create another volume in the existing pool, identified only by name.
|
|
||||||
+ include_role:
|
|
||||||
+ name: linux-system-roles.storage
|
|
||||||
+ vars:
|
|
||||||
+ storage_pools:
|
|
||||||
+ - name: "{{ pool_name }}"
|
|
||||||
+ volumes:
|
|
||||||
+ - name: newvol
|
|
||||||
+ size: '2 GiB'
|
|
||||||
+ fs_type: ext4
|
|
||||||
+ fs_label: newvol
|
|
||||||
+
|
|
||||||
+ - include_tasks: verify-role-results.yml
|
|
||||||
+
|
|
||||||
+ - name: Clean up.
|
|
||||||
+ include_role:
|
|
||||||
+ name: linux-system-roles.storage
|
|
||||||
+ vars:
|
|
||||||
+ storage_pools:
|
|
||||||
+ - name: "{{ pool_name }}"
|
|
||||||
+ state: absent
|
|
||||||
+
|
|
||||||
+ - include_tasks: verify-role-results.yml
|
|
@ -1,30 +0,0 @@
|
|||||||
commit effb7faf20301ddcee8ee36a1b156a0b9f006bb0
|
|
||||||
Author: David Lehman <dlehman@redhat.com>
|
|
||||||
Date: Tue Aug 4 16:00:33 2020 -0400
|
|
||||||
|
|
||||||
Be smarter in choosing expected partition name.
|
|
||||||
|
|
||||||
BlivetVolume._get_device_id is only used to look up pre-existing
|
|
||||||
volumes, so we don't have to try too hard to guess it by name.
|
|
||||||
We can just see if the disk has a single partition and, if so,
|
|
||||||
return the name of that partition.
|
|
||||||
|
|
||||||
Fixes: #141
|
|
||||||
|
|
||||||
diff --git a/library/blivet.py b/library/blivet.py
|
|
||||||
index eb8bb11..0f7ce98 100644
|
|
||||||
--- a/library/blivet.py
|
|
||||||
+++ b/library/blivet.py
|
|
||||||
@@ -554,7 +554,11 @@ class BlivetPartitionVolume(BlivetVolume):
|
|
||||||
return self._device.raw_device.type == 'partition'
|
|
||||||
|
|
||||||
def _get_device_id(self):
|
|
||||||
- return self._blivet_pool._disks[0].name + '1'
|
|
||||||
+ device_id = None
|
|
||||||
+ if self._blivet_pool._disks[0].partitioned and len(self._blivet_pool._disks[0].children) == 1:
|
|
||||||
+ device_id = self._blivet_pool._disks[0].children[0].name
|
|
||||||
+
|
|
||||||
+ return device_id
|
|
||||||
|
|
||||||
def _resize(self):
|
|
||||||
pass
|
|
@ -1,326 +0,0 @@
|
|||||||
diff --git a/library/blivet.py b/library/blivet.py
|
|
||||||
index e927121..f59f821 100644
|
|
||||||
--- a/library/blivet.py
|
|
||||||
+++ b/library/blivet.py
|
|
||||||
@@ -130,6 +130,9 @@ if BLIVET_PACKAGE:
|
|
||||||
set_up_logging()
|
|
||||||
log = logging.getLogger(BLIVET_PACKAGE + ".ansible")
|
|
||||||
|
|
||||||
+
|
|
||||||
+MAX_TRIM_PERCENT = 2
|
|
||||||
+
|
|
||||||
use_partitions = None # create partitions on pool backing device disks?
|
|
||||||
disklabel_type = None # user-specified disklabel type
|
|
||||||
safe_mode = None # do not remove any existing devices or formatting
|
|
||||||
@@ -445,8 +448,16 @@ class BlivetVolume(BlivetBase):
|
|
||||||
if not self._device.resizable:
|
|
||||||
return
|
|
||||||
|
|
||||||
- if self._device.format.resizable:
|
|
||||||
- self._device.format.update_size_info()
|
|
||||||
+ trim_percent = (1.0 - float(self._device.max_size / size))*100
|
|
||||||
+ log.debug("resize: size=%s->%s ; trim=%s", self._device.size, size, trim_percent)
|
|
||||||
+ if size > self._device.max_size and trim_percent <= MAX_TRIM_PERCENT:
|
|
||||||
+ log.info("adjusting %s resize target from %s to %s to fit in free space",
|
|
||||||
+ self._volume['name'],
|
|
||||||
+ size,
|
|
||||||
+ self._device.max_size)
|
|
||||||
+ size = self._device.max_size
|
|
||||||
+ if size == self._device.size:
|
|
||||||
+ return
|
|
||||||
|
|
||||||
if not self._device.min_size <= size <= self._device.max_size:
|
|
||||||
raise BlivetAnsibleError("volume '%s' cannot be resized to '%s'" % (self._volume['name'], size))
|
|
||||||
@@ -610,10 +621,18 @@ class BlivetLVMVolume(BlivetVolume):
|
|
||||||
raise BlivetAnsibleError("invalid size '%s' specified for volume '%s'" % (self._volume['size'], self._volume['name']))
|
|
||||||
|
|
||||||
fmt = self._get_format()
|
|
||||||
+ trim_percent = (1.0 - float(parent.free_space / size))*100
|
|
||||||
+ log.debug("size: %s ; %s", size, trim_percent)
|
|
||||||
if size > parent.free_space:
|
|
||||||
- raise BlivetAnsibleError("specified size for volume '%s' exceeds available space in pool '%s' (%s)" % (size,
|
|
||||||
- parent.name,
|
|
||||||
- parent.free_space))
|
|
||||||
+ if trim_percent > MAX_TRIM_PERCENT:
|
|
||||||
+ raise BlivetAnsibleError("specified size for volume '%s' exceeds available space in pool '%s' (%s)"
|
|
||||||
+ % (size, parent.name, parent.free_space))
|
|
||||||
+ else:
|
|
||||||
+ log.info("adjusting %s size from %s to %s to fit in %s free space", self._volume['name'],
|
|
||||||
+ size,
|
|
||||||
+ parent.free_space,
|
|
||||||
+ parent.name)
|
|
||||||
+ size = parent.free_space
|
|
||||||
|
|
||||||
try:
|
|
||||||
device = self._blivet.new_lv(name=self._volume['name'],
|
|
||||||
diff --git a/tests/tests_create_lv_size_equal_to_vg.yml b/tests/tests_create_lv_size_equal_to_vg.yml
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..21a5788
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/tests_create_lv_size_equal_to_vg.yml
|
|
||||||
@@ -0,0 +1,48 @@
|
|
||||||
+---
|
|
||||||
+- hosts: all
|
|
||||||
+ become: true
|
|
||||||
+ vars:
|
|
||||||
+ storage_safe_mode: false
|
|
||||||
+ mount_location: '/opt/test1'
|
|
||||||
+ volume_group_size: '10g'
|
|
||||||
+ lv_size: '10g'
|
|
||||||
+ unused_disk_subfact: '{{ ansible_devices[unused_disks[0]] }}'
|
|
||||||
+ disk_size: '{{ unused_disk_subfact.sectors|int *
|
|
||||||
+ unused_disk_subfact.sectorsize|int }}'
|
|
||||||
+
|
|
||||||
+ tasks:
|
|
||||||
+ - include_role:
|
|
||||||
+ name: linux-system-roles.storage
|
|
||||||
+
|
|
||||||
+ - include_tasks: get_unused_disk.yml
|
|
||||||
+ vars:
|
|
||||||
+ min_size: "{{ volume_group_size }}"
|
|
||||||
+ max_return: 1
|
|
||||||
+
|
|
||||||
+ - name: Create one lv which size is equal to vg size
|
|
||||||
+ include_role:
|
|
||||||
+ name: linux-system-roles.storage
|
|
||||||
+ vars:
|
|
||||||
+ storage_pools:
|
|
||||||
+ - name: foo
|
|
||||||
+ disks: "{{ unused_disks }}"
|
|
||||||
+ volumes:
|
|
||||||
+ - name: test1
|
|
||||||
+ size: "{{ lv_size }}"
|
|
||||||
+ mount_point: "{{ mount_location }}"
|
|
||||||
+
|
|
||||||
+ - include_tasks: verify-role-results.yml
|
|
||||||
+
|
|
||||||
+ - name: Clean up
|
|
||||||
+ include_role:
|
|
||||||
+ name: linux-system-roles.storage
|
|
||||||
+ vars:
|
|
||||||
+ storage_pools:
|
|
||||||
+ - name: foo
|
|
||||||
+ disks: "{{ unused_disks }}"
|
|
||||||
+ state: "absent"
|
|
||||||
+ volumes:
|
|
||||||
+ - name: test1
|
|
||||||
+ mount_point: "{{ mount_location }}"
|
|
||||||
+
|
|
||||||
+ - include_tasks: verify-role-results.yml
|
|
||||||
diff --git a/tests/tests_lvm_auto_size_cap.yml b/tests/tests_lvm_auto_size_cap.yml
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..fb17c23
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/tests_lvm_auto_size_cap.yml
|
|
||||||
@@ -0,0 +1,89 @@
|
|
||||||
+---
|
|
||||||
+- hosts: all
|
|
||||||
+ become: true
|
|
||||||
+
|
|
||||||
+ tasks:
|
|
||||||
+ - include_role:
|
|
||||||
+ name: linux-system-roles.storage
|
|
||||||
+
|
|
||||||
+ - include_tasks: get_unused_disk.yml
|
|
||||||
+ vars:
|
|
||||||
+ min_size: 10g
|
|
||||||
+ max_return: 1
|
|
||||||
+
|
|
||||||
+ - command: lsblk -b -l --noheadings -o NAME,SIZE
|
|
||||||
+ register: storage_test_lsblk
|
|
||||||
+
|
|
||||||
+ - set_fact:
|
|
||||||
+ test_disk_size: "{{ storage_test_lsblk.stdout_lines|map('regex_search', '^' + unused_disks[0] + '\\s+\\d+$')|select('string')|first|regex_replace('^\\w+\\s+', '') }}"
|
|
||||||
+
|
|
||||||
+ - package:
|
|
||||||
+ name: bc
|
|
||||||
+ state: installed
|
|
||||||
+
|
|
||||||
+ - command:
|
|
||||||
+ cmd: bc
|
|
||||||
+ stdin: "{{ test_disk_size }} *2"
|
|
||||||
+ register: doubled_size
|
|
||||||
+
|
|
||||||
+ - name: Test handling of too-large LVM volume size
|
|
||||||
+ block:
|
|
||||||
+ - name: Try to create a pool containing one volume twice the size of the backing disk
|
|
||||||
+ include_role:
|
|
||||||
+ name: linux-system-roles.storage
|
|
||||||
+ vars:
|
|
||||||
+ storage_pools:
|
|
||||||
+ - name: foo
|
|
||||||
+ type: lvm
|
|
||||||
+ disks: "{{ unused_disks }}"
|
|
||||||
+ volumes:
|
|
||||||
+ - name: test1
|
|
||||||
+ size: "{{ doubled_size.stdout|trim }}"
|
|
||||||
+ - name: unreachable task
|
|
||||||
+ fail:
|
|
||||||
+ msg: UNREACH
|
|
||||||
+ rescue:
|
|
||||||
+ - name: Check that we failed in the role
|
|
||||||
+ assert:
|
|
||||||
+ that:
|
|
||||||
+ - ansible_failed_result.msg != 'UNREACH'
|
|
||||||
+ - blivet_output.failed and
|
|
||||||
+ blivet_output.msg|regex_search('specified size for volume.+exceeds available')
|
|
||||||
+ msg: "Role has not failed when it should have"
|
|
||||||
+
|
|
||||||
+ - name: Create a pool containing one volume the same size as the backing disk
|
|
||||||
+ include_role:
|
|
||||||
+ name: linux-system-roles.storage
|
|
||||||
+ vars:
|
|
||||||
+ storage_pools:
|
|
||||||
+ - name: foo
|
|
||||||
+ disks: "{{ unused_disks }}"
|
|
||||||
+ volumes:
|
|
||||||
+ - name: test1
|
|
||||||
+ size: "{{ test_disk_size }}"
|
|
||||||
+
|
|
||||||
+ - include_tasks: verify-role-results.yml
|
|
||||||
+
|
|
||||||
+ - name: Repeat the previous invocation to verify idempotence
|
|
||||||
+ include_role:
|
|
||||||
+ name: linux-system-roles.storage
|
|
||||||
+ vars:
|
|
||||||
+ storage_pools:
|
|
||||||
+ - name: foo
|
|
||||||
+ type: lvm
|
|
||||||
+ disks: "{{ unused_disks }}"
|
|
||||||
+ volumes:
|
|
||||||
+ - name: test1
|
|
||||||
+ size: "{{ test_disk_size }}"
|
|
||||||
+
|
|
||||||
+ - include_tasks: verify-role-results.yml
|
|
||||||
+
|
|
||||||
+ - name: Clean up
|
|
||||||
+ include_role:
|
|
||||||
+ name: linux-system-roles.storage
|
|
||||||
+ vars:
|
|
||||||
+ storage_pools:
|
|
||||||
+ - name: foo
|
|
||||||
+ disks: "{{ unused_disks }}"
|
|
||||||
+ state: absent
|
|
||||||
+ volumes: []
|
|
||||||
diff --git a/tests/tests_lvm_errors.yml b/tests/tests_lvm_errors.yml
|
|
||||||
index 37d41dc..e8dc4f4 100644
|
|
||||||
--- a/tests/tests_lvm_errors.yml
|
|
||||||
+++ b/tests/tests_lvm_errors.yml
|
|
||||||
@@ -11,8 +11,6 @@
|
|
||||||
- '/non/existent/disk'
|
|
||||||
invalid_size: 'xyz GiB'
|
|
||||||
unused_disk_subfact: '{{ ansible_devices[unused_disks[0]] }}'
|
|
||||||
- too_large_size: '{{ (unused_disk_subfact.sectors|int + 1) *
|
|
||||||
- unused_disk_subfact.sectorsize|int }}'
|
|
||||||
|
|
||||||
tasks:
|
|
||||||
- include_role:
|
|
||||||
@@ -86,39 +84,6 @@
|
|
||||||
- ansible_failed_result.msg != 'UNREACH'
|
|
||||||
msg: "Role has not failed when it should have"
|
|
||||||
|
|
||||||
- # the following does not work properly
|
|
||||||
- # - name: Verify the output
|
|
||||||
- # assert:
|
|
||||||
- # that: "{{ blivet_output.failed and
|
|
||||||
- # blivet_output.msg|regex_search('invalid size.+for volume') and
|
|
||||||
- # not blivet_output.changed }}"
|
|
||||||
- # msg: "Unexpected behavior w/ invalid volume size"
|
|
||||||
-
|
|
||||||
- - name: Test for correct handling of too-large volume size.
|
|
||||||
- block:
|
|
||||||
- - name: Try to create LVM with a too-large volume size.
|
|
||||||
- include_role:
|
|
||||||
- name: linux-system-roles.storage
|
|
||||||
- vars:
|
|
||||||
- storage_pools:
|
|
||||||
- - name: foo
|
|
||||||
- disks: "{{ unused_disks }}"
|
|
||||||
- volumes:
|
|
||||||
- - name: test1
|
|
||||||
- size: "{{ too_large_size }}"
|
|
||||||
- mount_point: "{{ mount_location1 }}"
|
|
||||||
-
|
|
||||||
- - name: unreachable task
|
|
||||||
- fail:
|
|
||||||
- msg: UNREACH
|
|
||||||
-
|
|
||||||
- rescue:
|
|
||||||
- - name: Check that we failed in the role
|
|
||||||
- assert:
|
|
||||||
- that:
|
|
||||||
- - ansible_failed_result.msg != 'UNREACH'
|
|
||||||
- msg: "Role has not failed when it should have"
|
|
||||||
-
|
|
||||||
# the following does not work properly
|
|
||||||
# - name: Verify the output
|
|
||||||
# assert:
|
|
||||||
@@ -138,7 +103,7 @@
|
|
||||||
disks: "{{ unused_disks[0] }}"
|
|
||||||
volumes:
|
|
||||||
- name: test1
|
|
||||||
- size: "{{ too_large_size }}"
|
|
||||||
+ size: "{{ volume_size }}"
|
|
||||||
mount_point: "{{ mount_location1 }}"
|
|
||||||
|
|
||||||
- name: unreachable task
|
|
||||||
@@ -171,7 +136,7 @@
|
|
||||||
disks: []
|
|
||||||
volumes:
|
|
||||||
- name: test1
|
|
||||||
- size: "{{ too_large_size }}"
|
|
||||||
+ size: "{{ volume1_size }}"
|
|
||||||
mount_point: "{{ mount_location1 }}"
|
|
||||||
|
|
||||||
- name: unreachable task
|
|
||||||
diff --git a/tests/tests_misc.yml b/tests/tests_misc.yml
|
|
||||||
index a69ee98..3139bc7 100644
|
|
||||||
--- a/tests/tests_misc.yml
|
|
||||||
+++ b/tests/tests_misc.yml
|
|
||||||
@@ -7,7 +7,7 @@
|
|
||||||
volume_group_size: '5g'
|
|
||||||
volume1_size: '4g'
|
|
||||||
unused_disk_subfact: '{{ ansible_devices[unused_disks[0]] }}'
|
|
||||||
- too_large_size: '{{ (unused_disk_subfact.sectors|int + 1) *
|
|
||||||
+ too_large_size: '{{ (unused_disk_subfact.sectors|int * 1.2) *
|
|
||||||
unused_disk_subfact.sectorsize|int }}'
|
|
||||||
|
|
||||||
tasks:
|
|
||||||
diff --git a/tests/tests_resize.yml b/tests/tests_resize.yml
|
|
||||||
index 9eeb2b9..209d129 100644
|
|
||||||
--- a/tests/tests_resize.yml
|
|
||||||
+++ b/tests/tests_resize.yml
|
|
||||||
@@ -9,7 +9,7 @@
|
|
||||||
invalid_size1: 'xyz GiB'
|
|
||||||
invalid_size2: 'none'
|
|
||||||
unused_disk_subfact: '{{ ansible_devices[unused_disks[0]] }}'
|
|
||||||
- too_large_size: '{{ (unused_disk_subfact.sectors|int + 1) *
|
|
||||||
+ too_large_size: '{{ unused_disk_subfact.sectors|int * 1.2 *
|
|
||||||
unused_disk_subfact.sectorsize|int }}'
|
|
||||||
disk_size: '{{ unused_disk_subfact.sectors|int *
|
|
||||||
unused_disk_subfact.sectorsize|int }}'
|
|
||||||
@@ -122,23 +122,7 @@
|
|
||||||
size: "{{ disk_size }}"
|
|
||||||
mount_point: "{{ mount_location }}"
|
|
||||||
|
|
||||||
- - name: Unreachable task
|
|
||||||
- fail:
|
|
||||||
- msg: UNREACH
|
|
||||||
-
|
|
||||||
- rescue:
|
|
||||||
- - name: Check that we failed in the role
|
|
||||||
- assert:
|
|
||||||
- that:
|
|
||||||
- - ansible_failed_result.msg != 'UNREACH'
|
|
||||||
- msg: "Role has not failed when it should have"
|
|
||||||
-
|
|
||||||
- - name: Verify the output
|
|
||||||
- assert:
|
|
||||||
- that: "blivet_output.failed and
|
|
||||||
- blivet_output.msg|regex_search('volume.+cannot be resized to.+') and
|
|
||||||
- not blivet_output.changed"
|
|
||||||
- msg: "Unexpected behavior w/ invalid volume size"
|
|
||||||
+ - include_tasks: verify-role-results.yml
|
|
||||||
|
|
||||||
- name: Test for correct handling of invalid size specification
|
|
||||||
block:
|
|
@ -1,22 +0,0 @@
|
|||||||
From b55af45842482768f29704d90a1e019ffe0f7770 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Noriko Hosoi <nhosoi@redhat.com>
|
|
||||||
Date: Tue, 2 Mar 2021 13:39:19 -0800
|
|
||||||
Subject: [PATCH] Patch32: timesync-ansible-test-issues.diff
|
|
||||||
|
|
||||||
RHELPLAN-68118 - Collections - Timesync - fixing ansible-test errors
|
|
||||||
RHELPLAN-68789 - Collections - ignore file for each role
|
|
||||||
---
|
|
||||||
.sanity-ansible-ignore-2.9.txt | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
create mode 100644 .sanity-ansible-ignore-2.9.txt
|
|
||||||
|
|
||||||
diff --git a/.sanity-ansible-ignore-2.9.txt b/.sanity-ansible-ignore-2.9.txt
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..e6d5e4d
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/.sanity-ansible-ignore-2.9.txt
|
|
||||||
@@ -0,0 +1 @@
|
|
||||||
+plugins/modules/timesync_provider.sh shebang
|
|
||||||
--
|
|
||||||
2.26.2
|
|
||||||
|
|
@ -1,335 +0,0 @@
|
|||||||
diff --git a/tests/get_services_state.yml b/tests/get_services_state.yml
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..4fe5d36
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/get_services_state.yml
|
|
||||||
@@ -0,0 +1,4 @@
|
|
||||||
+- name: Get initial state of services
|
|
||||||
+ tags: tests::cleanup
|
|
||||||
+ service_facts:
|
|
||||||
+ register: initial_state
|
|
||||||
diff --git a/tests/restore_services_state.yml b/tests/restore_services_state.yml
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..3d48975
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/restore_services_state.yml
|
|
||||||
@@ -0,0 +1,19 @@
|
|
||||||
+- name: Get final state of services
|
|
||||||
+ tags: tests::cleanup
|
|
||||||
+ service_facts:
|
|
||||||
+ register: final_state
|
|
||||||
+
|
|
||||||
+- name: Restore state of services
|
|
||||||
+ tags: tests::cleanup
|
|
||||||
+ service:
|
|
||||||
+ name: "{{ item }}"
|
|
||||||
+ state: "{{ 'started' if initial_state.ansible_facts.services[item + '.service']['state'] == 'running' else 'stopped' }}"
|
|
||||||
+ when:
|
|
||||||
+ - item + '.service' in final_state.ansible_facts.services
|
|
||||||
+ - item + '.service' in initial_state.ansible_facts.services
|
|
||||||
+ with_items:
|
|
||||||
+ - chronyd
|
|
||||||
+ - ntpd
|
|
||||||
+ - ptp4l
|
|
||||||
+ - phc2sys
|
|
||||||
+ - timemaster
|
|
||||||
diff --git a/tests/tests_default.yml b/tests/tests_default.yml
|
|
||||||
index 856ebe5..fb298c9 100644
|
|
||||||
--- a/tests/tests_default.yml
|
|
||||||
+++ b/tests/tests_default.yml
|
|
||||||
@@ -3,4 +4,14 @@
|
|
||||||
hosts: all
|
|
||||||
|
|
||||||
roles:
|
|
||||||
- linux-system-roles.timesync
|
|
||||||
+
|
|
||||||
+ pre_tasks:
|
|
||||||
+ - name: Import tasks
|
|
||||||
+# tags: tests::tier1::cleanup
|
|
||||||
+ import_tasks: get_services_state.yml
|
|
||||||
+
|
|
||||||
+ post_tasks:
|
|
||||||
+ - name: Import tasks
|
|
||||||
+# tags: tests::tier1::cleanup
|
|
||||||
+ import_tasks: restore_services_state.yml
|
|
||||||
diff --git a/tests/tests_default_wrapper.yml b/tests/tests_default_wrapper.yml
|
|
||||||
index a768f4c..b0c0ab3 100644
|
|
||||||
--- a/tests/tests_default_wrapper.yml
|
|
||||||
+++ b/tests/tests_default_wrapper.yml
|
|
||||||
@@ -1,5 +1,8 @@
|
|
||||||
---
|
|
||||||
- name: Create static inventory from hostvars
|
|
||||||
+ tags:
|
|
||||||
+# - 'tests::tier1'
|
|
||||||
+ - 'tests::slow'
|
|
||||||
hosts: all
|
|
||||||
tasks:
|
|
||||||
- name: create temporary file
|
|
||||||
@@ -17,9 +20,15 @@
|
|
||||||
|
|
||||||
|
|
||||||
- name: Run tests_default.yml normally
|
|
||||||
+ tags:
|
|
||||||
+# - 'tests::tier1'
|
|
||||||
+ - 'tests::slow'
|
|
||||||
import_playbook: tests_default.yml
|
|
||||||
|
|
||||||
- name: Run tests_default.yml in check_mode
|
|
||||||
+ tags:
|
|
||||||
+# - 'tests::tier1'
|
|
||||||
+ - 'tests::slow'
|
|
||||||
hosts: all
|
|
||||||
tasks:
|
|
||||||
- name: Run ansible-playbook with tests_default.yml in check mode
|
|
||||||
diff --git a/tests/tests_ntp.yml b/tests/tests_ntp.yml
|
|
||||||
index e4b1b5e..446f1dc 100644
|
|
||||||
--- a/tests/tests_ntp.yml
|
|
||||||
+++ b/tests/tests_ntp.yml
|
|
||||||
@@ -18,6 +19,11 @@
|
|
||||||
roles:
|
|
||||||
- linux-system-roles.timesync
|
|
||||||
|
|
||||||
+ pre_tasks:
|
|
||||||
+ - name: Import tasks
|
|
||||||
+# tags: tests::tier1::cleanup
|
|
||||||
+ import_tasks: get_services_state.yml
|
|
||||||
+
|
|
||||||
tasks:
|
|
||||||
- meta: flush_handlers
|
|
||||||
|
|
||||||
@@ -35,3 +41,8 @@
|
|
||||||
- "'172.16.123.1' in sources.stdout"
|
|
||||||
- "'172.16.123.2' in sources.stdout"
|
|
||||||
- "'172.16.123.3' in sources.stdout"
|
|
||||||
+
|
|
||||||
+ post_tasks:
|
|
||||||
+ - name: Import tasks
|
|
||||||
+# tags: tests::tier1::cleanup
|
|
||||||
+ import_tasks: restore_services_state.yml
|
|
||||||
diff --git a/tests/tests_ntp_provider1.yml b/tests/tests_ntp_provider1.yml
|
|
||||||
index 08ecab9..9fe0db3 100644
|
|
||||||
--- a/tests/tests_ntp_provider1.yml
|
|
||||||
+++ b/tests/tests_ntp_provider1.yml
|
|
||||||
@@ -8,6 +9,10 @@
|
|
||||||
- linux-system-roles.timesync
|
|
||||||
|
|
||||||
pre_tasks:
|
|
||||||
+ - name: Import tasks
|
|
||||||
+# tags: tests::tier1::cleanup
|
|
||||||
+ import_tasks: get_services_state.yml
|
|
||||||
+
|
|
||||||
- name: Remove NTP providers
|
|
||||||
package: name={{ item }} state=absent
|
|
||||||
with_items:
|
|
||||||
@@ -27,3 +32,7 @@
|
|
||||||
assert:
|
|
||||||
that:
|
|
||||||
- "'172.16.123.1' in sources.stdout"
|
|
||||||
+
|
|
||||||
+ - name: Import tasks
|
|
||||||
+# tags: tests::tier1::cleanup
|
|
||||||
+ import_tasks: restore_services_state.yml
|
|
||||||
diff --git a/tests/tests_ntp_provider2.yml b/tests/tests_ntp_provider2.yml
|
|
||||||
index 5476ae4..e0d5c96 100644
|
|
||||||
--- a/tests/tests_ntp_provider2.yml
|
|
||||||
+++ b/tests/tests_ntp_provider2.yml
|
|
||||||
@@ -8,6 +9,10 @@
|
|
||||||
- linux-system-roles.timesync
|
|
||||||
|
|
||||||
pre_tasks:
|
|
||||||
+ - name: Import tasks
|
|
||||||
+# tags: tests::tier1::cleanup
|
|
||||||
+ import_tasks: get_services_state.yml
|
|
||||||
+
|
|
||||||
- name: Remove ntp
|
|
||||||
package: name=ntp state=absent
|
|
||||||
|
|
||||||
@@ -29,3 +34,7 @@
|
|
||||||
|
|
||||||
- name: Check chronyd service
|
|
||||||
shell: chronyc -n tracking
|
|
||||||
+
|
|
||||||
+ - name: Import tasks
|
|
||||||
+# tags: tests::tier1::cleanup
|
|
||||||
+ import_tasks: restore_services_state.yml
|
|
||||||
diff --git a/tests/tests_ntp_provider3.yml b/tests/tests_ntp_provider3.yml
|
|
||||||
index 44ca101..d440a64 100644
|
|
||||||
--- a/tests/tests_ntp_provider3.yml
|
|
||||||
+++ b/tests/tests_ntp_provider3.yml
|
|
||||||
@@ -8,6 +9,10 @@
|
|
||||||
- linux-system-roles.timesync
|
|
||||||
|
|
||||||
pre_tasks:
|
|
||||||
+ - name: Import tasks
|
|
||||||
+# tags: tests::tier1::cleanup
|
|
||||||
+ import_tasks: get_services_state.yml
|
|
||||||
+
|
|
||||||
- name: Remove chrony
|
|
||||||
package: name=chrony state=absent
|
|
||||||
|
|
||||||
@@ -29,3 +34,7 @@
|
|
||||||
|
|
||||||
- name: Check ntpd service
|
|
||||||
shell: ntpq -c rv | grep 'associd=0'
|
|
||||||
+
|
|
||||||
+ - name: Import tasks
|
|
||||||
+ tags: tests::tier1::cleanup
|
|
||||||
+ import_tasks: restore_services_state.yml
|
|
||||||
diff --git a/tests/tests_ntp_provider4.yml b/tests/tests_ntp_provider4.yml
|
|
||||||
index 8b452b8..8bccba0 100644
|
|
||||||
--- a/tests/tests_ntp_provider4.yml
|
|
||||||
+++ b/tests/tests_ntp_provider4.yml
|
|
||||||
@@ -9,6 +10,10 @@
|
|
||||||
- linux-system-roles.timesync
|
|
||||||
|
|
||||||
pre_tasks:
|
|
||||||
+ - name: Import tasks
|
|
||||||
+# tags: tests::tier1::cleanup
|
|
||||||
+ import_tasks: get_services_state.yml
|
|
||||||
+
|
|
||||||
- name: Install chrony
|
|
||||||
package: name=chrony state=present
|
|
||||||
register: package_install
|
|
||||||
@@ -27,3 +32,7 @@
|
|
||||||
|
|
||||||
- name: Check chronyd service
|
|
||||||
shell: chronyc -n tracking
|
|
||||||
+
|
|
||||||
+ - name: Import tasks
|
|
||||||
+# tags: tests::tier1::cleanup
|
|
||||||
+ import_tasks: restore_services_state.yml
|
|
||||||
diff --git a/tests/tests_ntp_provider5.yml b/tests/tests_ntp_provider5.yml
|
|
||||||
index 1740164..98a054f 100644
|
|
||||||
--- a/tests/tests_ntp_provider5.yml
|
|
||||||
+++ b/tests/tests_ntp_provider5.yml
|
|
||||||
@@ -9,6 +10,10 @@
|
|
||||||
- linux-system-roles.timesync
|
|
||||||
|
|
||||||
pre_tasks:
|
|
||||||
+ - name: Import tasks
|
|
||||||
+# tags: tests::tier1::cleanup
|
|
||||||
+ import_tasks: get_services_state.yml
|
|
||||||
+
|
|
||||||
- name: Install ntp
|
|
||||||
package: name=ntp state=present
|
|
||||||
register: package_install
|
|
||||||
@@ -27,3 +32,7 @@
|
|
||||||
|
|
||||||
- name: Check ntpd service
|
|
||||||
shell: ntpq -c rv | grep 'associd=0'
|
|
||||||
+
|
|
||||||
+ - name: Import tasks
|
|
||||||
+# tags: tests::tier1::cleanup
|
|
||||||
+ import_tasks: restore_services_state.yml
|
|
||||||
diff --git a/tests/tests_ntp_provider6.yml b/tests/tests_ntp_provider6.yml
|
|
||||||
index 21a2039..fb41824 100644
|
|
||||||
--- a/tests/tests_ntp_provider6.yml
|
|
||||||
+++ b/tests/tests_ntp_provider6.yml
|
|
||||||
@@ -6,6 +7,10 @@
|
|
||||||
both_avail: true
|
|
||||||
|
|
||||||
tasks:
|
|
||||||
+ - name: Import tasks
|
|
||||||
+# tags: tests::tier1::cleanup
|
|
||||||
+ import_tasks: get_services_state.yml
|
|
||||||
+
|
|
||||||
- name: Check for availability of both NTP providers
|
|
||||||
package: name={{ item }} state=present
|
|
||||||
register: package_install
|
|
||||||
@@ -71,3 +76,7 @@
|
|
||||||
shell: chronyc -n tracking
|
|
||||||
when:
|
|
||||||
- not is_ntp_default
|
|
||||||
+
|
|
||||||
+ - name: Import tasks
|
|
||||||
+# tags: tests::tier1::cleanup
|
|
||||||
+ import_tasks: restore_services_state.yml
|
|
||||||
diff --git a/tests/tests_ntp_ptp.yml b/tests/tests_ntp_ptp.yml
|
|
||||||
index cab706f..7f4cdfc 100644
|
|
||||||
--- a/tests/tests_ntp_ptp.yml
|
|
||||||
+++ b/tests/tests_ntp_ptp.yml
|
|
||||||
@@ -22,6 +23,11 @@
|
|
||||||
roles:
|
|
||||||
- linux-system-roles.timesync
|
|
||||||
|
|
||||||
+ pre_tasks:
|
|
||||||
+ - name: Import tasks
|
|
||||||
+# tags: tests::tier1::cleanup
|
|
||||||
+ import_tasks: get_services_state.yml
|
|
||||||
+
|
|
||||||
tasks:
|
|
||||||
- meta: flush_handlers
|
|
||||||
|
|
||||||
@@ -48,3 +54,8 @@
|
|
||||||
- "'PTP1' in sources.stdout"
|
|
||||||
|
|
||||||
when: "'SOF_TIMESTAMPING_TX_' in ethtool.stdout"
|
|
||||||
+
|
|
||||||
+ post_tasks:
|
|
||||||
+ - name: Import tasks
|
|
||||||
+# tags: tests::tier1::cleanup
|
|
||||||
+ import_tasks: restore_services_state.yml
|
|
||||||
diff --git a/tests/tests_ptp_multi.yml b/tests/tests_ptp_multi.yml
|
|
||||||
index d52d439..936e467 100644
|
|
||||||
--- a/tests/tests_ptp_multi.yml
|
|
||||||
+++ b/tests/tests_ptp_multi.yml
|
|
||||||
@@ -1,5 +1,6 @@
|
|
||||||
|
|
||||||
- name: Configure time synchronization with multiple PTP domains
|
|
||||||
+ tags: tests::expfail
|
|
||||||
hosts: all
|
|
||||||
vars:
|
|
||||||
timesync_ptp_domains:
|
|
||||||
@@ -16,6 +17,11 @@
|
|
||||||
roles:
|
|
||||||
- linux-system-roles.timesync
|
|
||||||
|
|
||||||
+ pre_tasks:
|
|
||||||
+ - name: Import tasks
|
|
||||||
+# tags: tests::tier1::cleanup
|
|
||||||
+ import_tasks: get_services_state.yml
|
|
||||||
+
|
|
||||||
tasks:
|
|
||||||
- meta: flush_handlers
|
|
||||||
|
|
||||||
@@ -58,3 +64,8 @@
|
|
||||||
- "'domainNumber 1' in pmc.stdout"
|
|
||||||
|
|
||||||
when: "'SOF_TIMESTAMPING_TX_' in ethtool.stdout"
|
|
||||||
+
|
|
||||||
+ post_tasks:
|
|
||||||
+ - name: Import tasks
|
|
||||||
+# tags: tests::tier1::cleanup
|
|
||||||
+ import_tasks: restore_services_state.yml
|
|
||||||
diff --git a/tests/tests_ptp_single.yml b/tests/tests_ptp_single.yml
|
|
||||||
index 74da310..36d141e 100644
|
|
||||||
--- a/tests/tests_ptp_single.yml
|
|
||||||
+++ b/tests/tests_ptp_single.yml
|
|
||||||
@@ -1,5 +1,6 @@
|
|
||||||
|
|
||||||
- name: Configure time synchronization with single PTP domain
|
|
||||||
+ tags: tests::expfail
|
|
||||||
hosts: all
|
|
||||||
vars:
|
|
||||||
timesync_ptp_domains:
|
|
||||||
@@ -8,6 +9,11 @@
|
|
||||||
roles:
|
|
||||||
- linux-system-roles.timesync
|
|
||||||
|
|
||||||
+ pre_tasks:
|
|
||||||
+ - name: Import tasks
|
|
||||||
+# tags: tests::tier1::cleanup
|
|
||||||
+ import_tasks: get_services_state.yml
|
|
||||||
+
|
|
||||||
tasks:
|
|
||||||
- meta: flush_handlers
|
|
||||||
|
|
||||||
@@ -31,3 +37,8 @@
|
|
||||||
- "'domainNumber 3' in pmc.stdout"
|
|
||||||
|
|
||||||
when: "'SOF_TIMESTAMPING_TX_' in ethtool.stdout"
|
|
||||||
+
|
|
||||||
+ post_tasks:
|
|
||||||
+ - name: Import tasks
|
|
||||||
+# tags: tests::tier1::cleanup
|
|
||||||
+ import_tasks: restore_services_state.yml
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user