94 lines
3.5 KiB
Diff
94 lines
3.5 KiB
Diff
|
--- fence-agents-4.2.1/agents/scsi/fence_scsi.py.old 2024-01-02 12:22:30.198853290 +0100
|
||
|
+++ fence-agents-4.2.1/agents/scsi/fence_scsi.py 2024-01-02 12:24:35.509549785 +0100
|
||
|
@@ -84,14 +84,14 @@
|
||
|
# check if host is ready to execute actions
|
||
|
def do_action_monitor(options):
|
||
|
# Check if required binaries are installed
|
||
|
- if bool(run_cmd(options, options["--sg_persist-path"] + " -V")["err"]):
|
||
|
+ if bool(run_cmd(options, options["--sg_persist-path"] + " -V")["rc"]):
|
||
|
logging.error("Unable to run " + options["--sg_persist-path"])
|
||
|
return 1
|
||
|
- elif bool(run_cmd(options, options["--sg_turs-path"] + " -V")["err"]):
|
||
|
+ elif bool(run_cmd(options, options["--sg_turs-path"] + " -V")["rc"]):
|
||
|
logging.error("Unable to run " + options["--sg_turs-path"])
|
||
|
return 1
|
||
|
elif ("--devices" not in options and
|
||
|
- bool(run_cmd(options, options["--vgs-path"] + " --version")["err"])):
|
||
|
+ bool(run_cmd(options, options["--vgs-path"] + " --version")["rc"])):
|
||
|
logging.error("Unable to run " + options["--vgs-path"])
|
||
|
return 1
|
||
|
|
||
|
@@ -102,11 +102,13 @@
|
||
|
return 0
|
||
|
|
||
|
|
||
|
-#run command, returns dict, ret["err"] = exit code; ret["out"] = output
|
||
|
+# run command, returns dict, ret["rc"] = exit code; ret["out"] = output;
|
||
|
+# ret["err"] = error
|
||
|
def run_cmd(options, cmd):
|
||
|
ret = {}
|
||
|
- (ret["err"], ret["out"], _) = run_command(options, cmd)
|
||
|
+ (ret["rc"], ret["out"], ret["err"]) = run_command(options, cmd)
|
||
|
ret["out"] = "".join([i for i in ret["out"] if i is not None])
|
||
|
+ ret["err"] = "".join([i for i in ret["err"] if i is not None])
|
||
|
return ret
|
||
|
|
||
|
|
||
|
@@ -122,11 +124,11 @@
|
||
|
def preempt_abort(options, host, dev):
|
||
|
reset_dev(options,dev)
|
||
|
cmd = options["--sg_persist-path"] + " -n -o -A -T 5 -K " + host + " -S " + options["--key"] + " -d " + dev
|
||
|
- return not bool(run_cmd(options, cmd)["err"])
|
||
|
+ return not bool(run_cmd(options, cmd)["rc"])
|
||
|
|
||
|
|
||
|
def reset_dev(options, dev):
|
||
|
- return run_cmd(options, options["--sg_turs-path"] + " " + dev)["err"]
|
||
|
+ return run_cmd(options, options["--sg_turs-path"] + " " + dev)["rc"]
|
||
|
|
||
|
|
||
|
def register_dev(options, dev, key):
|
||
|
@@ -171,13 +173,13 @@
|
||
|
reset_dev(options, dev)
|
||
|
cmd = options["--sg_persist-path"] + " -n -o -I -S " + key + " -d " + dev
|
||
|
cmd += " -Z" if "--aptpl" in options else ""
|
||
|
- return not bool(run_cmd(options, cmd)["err"])
|
||
|
+ return not bool(run_cmd(options, cmd)["rc"])
|
||
|
|
||
|
|
||
|
def reserve_dev(options, dev):
|
||
|
reset_dev(options,dev)
|
||
|
cmd = options["--sg_persist-path"] + " -n -o -R -T 5 -K " + options["--key"] + " -d " + dev
|
||
|
- return not bool(run_cmd(options, cmd)["err"])
|
||
|
+ return not bool(run_cmd(options, cmd)["rc"])
|
||
|
|
||
|
|
||
|
def get_reservation_key(options, dev, fail=True):
|
||
|
@@ -187,7 +189,7 @@
|
||
|
opts = "-y "
|
||
|
cmd = options["--sg_persist-path"] + " -n -i " + opts + "-r -d " + dev
|
||
|
out = run_cmd(options, cmd)
|
||
|
- if out["err"] and fail:
|
||
|
+ if out["rc"] and fail:
|
||
|
fail_usage("Cannot get reservation key")
|
||
|
match = re.search(r"\s+key=0x(\S+)\s+", out["out"], re.IGNORECASE)
|
||
|
return match.group(1) if match else None
|
||
|
@@ -201,7 +203,7 @@
|
||
|
opts = "-y "
|
||
|
cmd = options["--sg_persist-path"] + " -n -i " + opts + "-k -d " + dev
|
||
|
out = run_cmd(options, cmd)
|
||
|
- if out["err"]:
|
||
|
+ if out["rc"]:
|
||
|
fail_usage("Cannot get registration keys", fail)
|
||
|
if not fail:
|
||
|
return []
|
||
|
@@ -319,7 +321,7 @@
|
||
|
"--options vg_attr,pv_name "+\
|
||
|
"--config 'global { locking_type = 0 } devices { preferred_names = [ \"^/dev/dm\" ] }'"
|
||
|
out = run_cmd(options, cmd)
|
||
|
- if out["err"]:
|
||
|
+ if out["rc"]:
|
||
|
fail_usage("Failed: Cannot get shared devices")
|
||
|
for line in out["out"].splitlines():
|
||
|
vg_attr, pv_name = line.strip().split(":")
|