From 99c5c3289b23064441f998949808a0b3569c2e3b Mon Sep 17 00:00:00 2001 From: Oyvind Albrigtsen Date: Thu, 10 Oct 2024 09:55:16 +0200 Subject: [PATCH] fence_mpath: fix 0x-format patch causing unfencing issue, and use re.MULTILINE to avoid duplicating device dev/key lines in /run/cluster/mpath.devices --- agents/mpath/fence_mpath.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/agents/mpath/fence_mpath.py b/agents/mpath/fence_mpath.py index 2d8601497..2a4a58b36 100644 --- a/agents/mpath/fence_mpath.py +++ b/agents/mpath/fence_mpath.py @@ -40,7 +40,7 @@ def set_status(conn, options): if options["--plug"] not in get_registration_keys(options, dev): count += 1 logging.debug("Failed to register key "\ - + options["--plug"] + "on device " + dev + "\n") + + options["--plug"] + " on device " + dev + "\n") continue dev_write(options, dev) @@ -147,8 +147,9 @@ def dev_write(options, dev): store_fh = open(file_path, "a+") except IOError: fail_usage("Failed: Cannot open file \""+ file_path + "\"") + store_fh.seek(0) out = store_fh.read() - if not re.search(r"^" + dev + r"\s+", out): + if not re.search(r"^{}\s+{}$".format(dev, options["--plug"]), out, flags=re.MULTILINE): store_fh.write(dev + "\t" + options["--plug"] + "\n") store_fh.close() @@ -332,7 +333,7 @@ def main(): fail_usage("Failed: No devices found") options["devices"] = [d for d in re.split("\s*,\s*|\s+", options["--devices"].strip()) if d] - options["--plug"] = re.sub(r"^0x0*|^0+", "", options["--plug"]) + options["--plug"] = re.sub(r"^0x0*|^0+", "", options.get("--plug", "")) # Input control END result = fence_action(None, options, set_status, get_status)