43 lines
2.0 KiB
Diff
43 lines
2.0 KiB
Diff
From fbe970add68e6d9d998fb7f78377368c403e200d Mon Sep 17 00:00:00 2001
|
|
From: Tomas Bzatek <tbzatek@redhat.com>
|
|
Date: Mon, 31 Oct 2022 15:15:31 +0100
|
|
Subject: [PATCH] tests: Restart iscsid on every InitiatorName change
|
|
|
|
The test LIO target config expects a specific initiator name as set
|
|
by the ACLs. However the iscsid daemon only seems to be reading
|
|
the InitiatorName string on startup and in case the service is running
|
|
with a different name, the auth tests will fail.
|
|
|
|
As a workaround, restart the iscsid service after each change.
|
|
A proper way through libiscsi or libopeniscsiusr would be nice -> TODO.
|
|
---
|
|
src/tests/dbus-tests/test_30_iscsi.py | 12 ++++++++++++
|
|
1 file changed, 12 insertions(+)
|
|
|
|
diff --git a/src/tests/dbus-tests/test_30_iscsi.py b/src/tests/dbus-tests/test_30_iscsi.py
|
|
index f2594d992..09e975f30 100644
|
|
--- a/src/tests/dbus-tests/test_30_iscsi.py
|
|
+++ b/src/tests/dbus-tests/test_30_iscsi.py
|
|
@@ -48,9 +48,21 @@ def _force_lougout(self, target):
|
|
def _set_initiator_name(self):
|
|
manager = self.get_object('/Manager')
|
|
|
|
+ # make backup of INITIATOR_FILE and restore it at the end
|
|
+ try:
|
|
+ initiatorname_backup = self.read_file(INITIATOR_FILE)
|
|
+ self.addCleanup(self.write_file, INITIATOR_FILE, initiatorname_backup)
|
|
+ except FileNotFoundError as e:
|
|
+ # no existing file, simply remove it once finished
|
|
+ self.addCleanup(self.remove_file, INITIATOR_FILE, True)
|
|
+
|
|
manager.SetInitiatorName(self.initiator, self.no_options,
|
|
dbus_interface=self.iface_prefix + '.Manager.ISCSI.Initiator')
|
|
|
|
+ # running iscsid needs to be restarted to reflect the change
|
|
+ self.run_command('systemctl try-reload-or-restart iscsid.service')
|
|
+ # ignore the return code in case of non-systemd distros
|
|
+
|
|
init = manager.GetInitiatorName(self.no_options,
|
|
dbus_interface=self.iface_prefix + '.Manager.ISCSI.Initiator')
|
|
self.assertEqual(init, self.initiator)
|