2335b44767
Resolves: rhbz#1961551
349 lines
15 KiB
Diff
349 lines
15 KiB
Diff
diff --color -uNr a/agents/azure_arm/fence_azure_arm.py b/agents/azure_arm/fence_azure_arm.py
|
|
--- a/agents/azure_arm/fence_azure_arm.py 2020-06-30 11:26:43.000000000 +0200
|
|
+++ b/agents/azure_arm/fence_azure_arm.py 2021-05-19 11:27:45.861202774 +0200
|
|
@@ -1,6 +1,11 @@
|
|
#!@PYTHON@ -tt
|
|
|
|
-import sys, re, pexpect
|
|
+import sys, re
|
|
+sys.path.insert(0, '/usr/lib/fence-agents/support/pexpect')
|
|
+try:
|
|
+ import pexpect
|
|
+except:
|
|
+ pass
|
|
import logging
|
|
import atexit
|
|
import xml.etree.ElementTree as ET
|
|
diff --color -uNr a/agents/hpblade/fence_hpblade.py b/agents/hpblade/fence_hpblade.py
|
|
--- a/agents/hpblade/fence_hpblade.py 2019-08-16 10:55:11.000000000 +0200
|
|
+++ b/agents/hpblade/fence_hpblade.py 2021-05-19 11:28:04.683250655 +0200
|
|
@@ -8,7 +8,11 @@
|
|
#####
|
|
|
|
import sys, re
|
|
-import pexpect
|
|
+sys.path.insert(0, '/usr/lib/fence-agents/support/pexpect')
|
|
+try:
|
|
+ import pexpect
|
|
+except:
|
|
+ pass
|
|
import atexit
|
|
sys.path.append("@FENCEAGENTSLIBDIR@")
|
|
from fencing import *
|
|
diff --color -uNr a/agents/ilo/fence_ilo.py b/agents/ilo/fence_ilo.py
|
|
--- a/agents/ilo/fence_ilo.py 2019-02-04 09:45:05.000000000 +0100
|
|
+++ b/agents/ilo/fence_ilo.py 2021-05-19 11:28:11.081266930 +0200
|
|
@@ -11,7 +11,12 @@
|
|
## iLO2 / firmware 1.50 / RIBCL 2.22
|
|
#####
|
|
|
|
-import sys, re, pexpect
|
|
+import sys, re
|
|
+sys.path.insert(0, '/usr/lib/fence-agents/support/pexpect')
|
|
+try:
|
|
+ import pexpect
|
|
+except:
|
|
+ pass
|
|
import atexit
|
|
from xml.sax.saxutils import quoteattr
|
|
sys.path.append("@FENCEAGENTSLIBDIR@")
|
|
diff --color -uNr a/agents/ldom/fence_ldom.py b/agents/ldom/fence_ldom.py
|
|
--- a/agents/ldom/fence_ldom.py 2019-02-04 09:45:05.000000000 +0100
|
|
+++ b/agents/ldom/fence_ldom.py 2021-05-19 11:28:25.345303213 +0200
|
|
@@ -7,7 +7,12 @@
|
|
##
|
|
#####
|
|
|
|
-import sys, re, pexpect
|
|
+import sys, re
|
|
+sys.path.insert(0, '/usr/lib/fence-agents/support/pexpect')
|
|
+try:
|
|
+ import pexpect
|
|
+except:
|
|
+ pass
|
|
import atexit
|
|
sys.path.append("@FENCEAGENTSLIBDIR@")
|
|
from fencing import *
|
|
diff --color -uNr a/agents/Makefile.am b/agents/Makefile.am
|
|
--- a/agents/Makefile.am 2019-10-18 17:18:32.000000000 +0200
|
|
+++ b/agents/Makefile.am 2021-05-19 11:26:46.202051020 +0200
|
|
@@ -108,10 +108,10 @@
|
|
cisco_mds/fence_cisco_mds.delay-check: cisco_mds/fence_cisco_mds
|
|
$(eval INPUT=$(subst .delay-check,,$@))
|
|
FENCE_TEST_ARGS_CISCO_MDS=$$(printf '$(FENCE_TEST_ARGS)' | sed 's#port=1#port=fc1/1#'); \
|
|
- test `PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib /usr/bin/time -p \
|
|
+ test `PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/pexpect /usr/bin/time -p \
|
|
sh -c "printf 'delay=10\n $$FENCE_TEST_ARGS_CISCO_MDS' | $(PYTHON) ./$(INPUT)" 2>&1 |\
|
|
awk -F"[. ]" -vOFS= '/real/ {print $$2,$$3}'` -ge 1000 || ( \
|
|
- PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib /usr/bin/time -p \
|
|
+ PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/pexpect /usr/bin/time -p \
|
|
sh -c "printf "delay=0\n $$FENCE_TEST_ARGS_CISCO_MDS" | $(PYTHON) ./$(INPUT)"; false )
|
|
|
|
include $(top_srcdir)/make/fencebuild.mk
|
|
diff --color -uNr a/agents/netio/fence_netio.py b/agents/netio/fence_netio.py
|
|
--- a/agents/netio/fence_netio.py 2019-02-04 09:45:05.000000000 +0100
|
|
+++ b/agents/netio/fence_netio.py 2021-05-19 11:28:30.244315675 +0200
|
|
@@ -1,6 +1,11 @@
|
|
#!@PYTHON@ -tt
|
|
|
|
-import sys, re, pexpect
|
|
+import sys, re
|
|
+sys.path.insert(0, '/usr/lib/fence-agents/support/pexpect')
|
|
+try:
|
|
+ import pexpect
|
|
+except:
|
|
+ pass
|
|
import atexit
|
|
sys.path.append("@FENCEAGENTSLIBDIR@")
|
|
from fencing import *
|
|
diff --color -uNr a/agents/raritan/fence_raritan.py b/agents/raritan/fence_raritan.py
|
|
--- a/agents/raritan/fence_raritan.py 2019-08-16 10:55:11.000000000 +0200
|
|
+++ b/agents/raritan/fence_raritan.py 2021-05-19 11:28:35.849329933 +0200
|
|
@@ -1,6 +1,11 @@
|
|
#!@PYTHON@ -tt
|
|
|
|
-import sys, re, pexpect
|
|
+import sys, re
|
|
+sys.path.insert(0, '/usr/lib/fence-agents/support/pexpect')
|
|
+try:
|
|
+ import pexpect
|
|
+except:
|
|
+ pass
|
|
import atexit
|
|
sys.path.append("@FENCEAGENTSLIBDIR@")
|
|
from fencing import *
|
|
diff --color -uNr a/agents/sanbox2/fence_sanbox2.py b/agents/sanbox2/fence_sanbox2.py
|
|
--- a/agents/sanbox2/fence_sanbox2.py 2019-02-11 13:05:48.000000000 +0100
|
|
+++ b/agents/sanbox2/fence_sanbox2.py 2021-05-19 11:28:40.731342352 +0200
|
|
@@ -8,7 +8,12 @@
|
|
## +-----------------+---------------------------+
|
|
#####
|
|
|
|
-import sys, re, pexpect
|
|
+import sys, re
|
|
+sys.path.insert(0, '/usr/lib/fence-agents/support/pexpect')
|
|
+try:
|
|
+ import pexpect
|
|
+except:
|
|
+ pass
|
|
import logging
|
|
import atexit
|
|
sys.path.append("@FENCEAGENTSLIBDIR@")
|
|
diff --color -uNr a/agents/vmware/fence_vmware.py b/agents/vmware/fence_vmware.py
|
|
--- a/agents/vmware/fence_vmware.py 2019-02-04 09:45:05.000000000 +0100
|
|
+++ b/agents/vmware/fence_vmware.py 2021-05-19 11:28:47.502359575 +0200
|
|
@@ -22,7 +22,12 @@
|
|
# VMware vCenter 4.0.0
|
|
#
|
|
|
|
-import sys, re, pexpect
|
|
+import sys, re
|
|
+sys.path.insert(0, '/usr/lib/fence-agents/support/pexpect')
|
|
+try:
|
|
+ import pexpect
|
|
+except:
|
|
+ pass
|
|
import logging
|
|
import atexit
|
|
sys.path.append("@FENCEAGENTSLIBDIR@")
|
|
diff --color -uNr a/agents/wti/fence_wti.py b/agents/wti/fence_wti.py
|
|
--- a/agents/wti/fence_wti.py 2019-02-04 09:45:05.000000000 +0100
|
|
+++ b/agents/wti/fence_wti.py 2021-05-19 11:28:52.741372903 +0200
|
|
@@ -11,7 +11,12 @@
|
|
## WTI IPS-800-CE v1.40h (no username) ('list' tested)
|
|
#####
|
|
|
|
-import sys, re, pexpect
|
|
+import sys, re
|
|
+sys.path.insert(0, '/usr/lib/fence-agents/support/pexpect')
|
|
+try:
|
|
+ import pexpect
|
|
+except:
|
|
+ pass
|
|
import atexit
|
|
import time
|
|
sys.path.append("@FENCEAGENTSLIBDIR@")
|
|
diff --color -uNr a/lib/fencing.py.py b/lib/fencing.py.py
|
|
--- a/lib/fencing.py.py 2020-11-05 14:58:07.000000000 +0100
|
|
+++ b/lib/fencing.py.py 2021-05-19 11:59:36.679118542 +0200
|
|
@@ -1,7 +1,12 @@
|
|
#!@PYTHON@ -tt
|
|
|
|
import sys, getopt, time, os, uuid, pycurl, stat
|
|
-import pexpect, re, syslog
|
|
+sys.path.insert(0, '/usr/lib/fence-agents/support/pexpect')
|
|
+try:
|
|
+ import pexpect
|
|
+except:
|
|
+ pass
|
|
+import re, syslog
|
|
import logging
|
|
import subprocess
|
|
import threading
|
|
@@ -491,29 +496,32 @@
|
|
"snmpset_path", "snmpget_path", "snmpwalk_path"]
|
|
}
|
|
|
|
-class fspawn(pexpect.spawn):
|
|
- def __init__(self, options, command, **kwargs):
|
|
- if sys.version_info[0] > 2:
|
|
- kwargs.setdefault('encoding', 'utf-8')
|
|
- logging.info("Running command: %s", command)
|
|
- pexpect.spawn.__init__(self, command, **kwargs)
|
|
- self.opt = options
|
|
-
|
|
- def log_expect(self, pattern, timeout):
|
|
- result = self.expect(pattern, timeout if timeout != 0 else None)
|
|
- logging.debug("Received: %s", self.before + self.after)
|
|
- return result
|
|
-
|
|
- def read_nonblocking(self, size, timeout):
|
|
- return pexpect.spawn.read_nonblocking(self, size=100, timeout=timeout if timeout != 0 else None)
|
|
-
|
|
- def send(self, message):
|
|
- logging.debug("Sent: %s", message)
|
|
- return pexpect.spawn.send(self, message)
|
|
-
|
|
- # send EOL according to what was detected in login process (telnet)
|
|
- def send_eol(self, message):
|
|
- return self.send(message + self.opt["eol"])
|
|
+try:
|
|
+ class fspawn(pexpect.spawn):
|
|
+ def __init__(self, options, command, **kwargs):
|
|
+ if sys.version_info[0] > 2:
|
|
+ kwargs.setdefault('encoding', 'utf-8')
|
|
+ logging.info("Running command: %s", command)
|
|
+ pexpect.spawn.__init__(self, command, **kwargs)
|
|
+ self.opt = options
|
|
+
|
|
+ def log_expect(self, pattern, timeout):
|
|
+ result = self.expect(pattern, timeout if timeout != 0 else None)
|
|
+ logging.debug("Received: %s", self.before + self.after)
|
|
+ return result
|
|
+
|
|
+ def read_nonblocking(self, size, timeout):
|
|
+ return pexpect.spawn.read_nonblocking(self, size=100, timeout=timeout if timeout != 0 else None)
|
|
+
|
|
+ def send(self, message):
|
|
+ logging.debug("Sent: %s", message)
|
|
+ return pexpect.spawn.send(self, message)
|
|
+
|
|
+ # send EOL according to what was detected in login process (telnet)
|
|
+ def send_eol(self, message):
|
|
+ return self.send(message + self.opt["eol"])
|
|
+except:
|
|
+ pass
|
|
|
|
def frun(command, timeout=30, withexitstatus=False, events=None,
|
|
extra_args=None, logfile=None, cwd=None, env=None, **kwargs):
|
|
diff --color -uNr a/lib/fencing_snmp.py.py b/lib/fencing_snmp.py.py
|
|
--- a/lib/fencing_snmp.py.py 2019-02-04 09:45:05.000000000 +0100
|
|
+++ b/lib/fencing_snmp.py.py 2021-05-19 11:37:59.446734969 +0200
|
|
@@ -2,7 +2,13 @@
|
|
|
|
# For example of use please see fence_cisco_mds
|
|
|
|
-import re, pexpect
|
|
+import sys
|
|
+sys.path.insert(0, '/usr/lib/fence-agents/support/pexpect')
|
|
+try:
|
|
+ import pexpect
|
|
+except:
|
|
+ pass
|
|
+import re
|
|
import logging
|
|
from fencing import *
|
|
from fencing import fail, fail_usage, EC_TIMED_OUT, run_delay, frun
|
|
diff --color -uNr a/make/agentpycheck.mk b/make/agentpycheck.mk
|
|
--- a/make/agentpycheck.mk 2020-06-30 11:26:43.000000000 +0200
|
|
+++ b/make/agentpycheck.mk 2021-05-19 11:26:46.203051022 +0200
|
|
@@ -9,34 +9,34 @@
|
|
|
|
%.xml-check: %.8
|
|
$(eval INPUT=$(subst .xml-check,,$(@F)))
|
|
- for x in $(INPUT) `PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(@D)/$(INPUT) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
|
|
+ for x in $(INPUT) `PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/pexpect $(PYTHON) $(@D)/$(INPUT) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
|
|
TEMPFILE=$$(mktemp); \
|
|
- PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(@D)/$$x -o metadata | $(AWK) $(AWK_VAL) > $$TEMPFILE && \
|
|
+ PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/pexpect $(PYTHON) $(@D)/$$x -o metadata | $(AWK) $(AWK_VAL) > $$TEMPFILE && \
|
|
diff $$TEMPFILE $(DATADIR)/$$x.xml || exit 1 && \
|
|
rm $$TEMPFILE; \
|
|
done
|
|
|
|
%.xml-upload: %.8
|
|
$(eval INPUT=$(subst .xml-upload,,$(@F)))
|
|
- for x in $(INPUT) `PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(@D)/$(INPUT) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
|
|
- PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(@D)/$$x -o metadata | $(AWK) $(AWK_VAL) > $(DATADIR)/$$x.xml; \
|
|
+ for x in $(INPUT) `PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/pexpect $(PYTHON) $(@D)/$(INPUT) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
|
|
+ PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/pexpect $(PYTHON) $(@D)/$$x -o metadata | $(AWK) $(AWK_VAL) > $(DATADIR)/$$x.xml; \
|
|
done
|
|
|
|
# If test will fail, rerun fence agents to show problems
|
|
%.delay-check: %
|
|
$(eval INPUT=$(subst .delay-check,,$(@F)))
|
|
- for x in $(INPUT) `PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(@D)/$(INPUT) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
|
|
- test `PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib /usr/bin/time -p \
|
|
+ for x in $(INPUT) `PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/pexpect $(PYTHON) $(@D)/$(INPUT) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
|
|
+ test `PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/pexpect /usr/bin/time -p \
|
|
sh -c "printf 'delay=10\n $(FENCE_TEST_ARGS)' | $(PYTHON) $(@D)/$$x" 2>&1 |\
|
|
awk -F"[. ]" -vOFS= '/real/ {print $$2,$$3}'` -ge 1000 || ( \
|
|
- PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib /usr/bin/time -p \
|
|
+ PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/pexpect /usr/bin/time -p \
|
|
sh -c "printf 'delay=0\n $(FENCE_TEST_ARGS)' | $(PYTHON) $(@D)/$$x"; false ); \
|
|
done
|
|
|
|
%.rng-check: %
|
|
$(eval INPUT=$(subst .rng-check,,$(@F)))
|
|
- for x in $(INPUT) `PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(@D)/$(INPUT) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
|
|
- PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(@D)/$$x -o metadata | \
|
|
+ for x in $(INPUT) `PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/pexpect $(PYTHON) $(@D)/$(INPUT) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
|
|
+ PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/pexpect $(PYTHON) $(@D)/$$x -o metadata | \
|
|
xsltproc ${abs_top_srcdir}/lib/fence2rng.xsl - | \
|
|
sed -e 's/ rha:description=/ description=/g' -e 's/ rha:name=/ name=/g' | \
|
|
xmllint --nsclean --noout -; \
|
|
diff --color -uNr a/make/fencebuild.mk b/make/fencebuild.mk
|
|
--- a/make/fencebuild.mk 2020-11-25 19:41:40.000000000 +0100
|
|
+++ b/make/fencebuild.mk 2021-05-19 11:26:46.203051022 +0200
|
|
@@ -34,10 +34,10 @@
|
|
> $@
|
|
|
|
if [ 0 -eq `echo "$(@)" | grep fence_ > /dev/null 2>&1; echo $$?` ]; then \
|
|
- PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(top_srcdir)/lib/check_used_options.py $@; \
|
|
+ PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/pexpect $(PYTHON) $(top_srcdir)/lib/check_used_options.py $@; \
|
|
else true ; fi
|
|
|
|
- for x in `PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(@) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
|
|
+for x in `PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/pexpect $(PYTHON) $(@) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
|
|
cp -f $(@) $(@D)/$$x; \
|
|
$(MAKE) $(@D)/$$x.8; \
|
|
done
|
|
@@ -66,7 +66,7 @@
|
|
fi
|
|
for p in $(TARGET); do \
|
|
dir=`dirname $$p`; \
|
|
- for x in `PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $$p -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
|
|
+ for x in `PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/pexpect $(PYTHON) $$p -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
|
|
echo " $(INSTALL_SCRIPT) $$dir/$$x '$(DESTDIR)$(sbindir)'"; \
|
|
$(INSTALL_SCRIPT) $$dir/$$x "$(DESTDIR)$(sbindir)" || exit $$?; \
|
|
echo " $(INSTALL_DATA) '$$dir/$$x.8' '$(DESTDIR)$(man8dir)'"; \
|
|
@@ -76,7 +76,7 @@
|
|
|
|
uninstall-hook: $(TARGET)
|
|
files=`for p in $(TARGET); do \
|
|
- for x in \`PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $$p -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"\`; do \
|
|
+ for x in \`PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib:$(abs_top_builddir)/support/pexpect $(PYTHON) $$p -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"\`; do \
|
|
echo " rm -f '$(DESTDIR)$(sbindir)/$$x'"; \
|
|
rm -f "$(DESTDIR)$(sbindir)/$$x"; \
|
|
echo " rm -f '$(DESTDIR)$(man8dir)/$$x.8'"; \
|
|
diff --color -uNr a/make/fenceman.mk b/make/fenceman.mk
|
|
--- a/make/fenceman.mk 2019-02-04 09:45:05.000000000 +0100
|
|
+++ b/make/fenceman.mk 2021-05-19 11:26:46.203051022 +0200
|
|
@@ -1,6 +1,6 @@
|
|
%.8: % $(top_srcdir)/lib/fence2man.xsl
|
|
set -e && \
|
|
- PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/../lib:$(abs_builddir)/lib \
|
|
+ PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/../lib:$(abs_builddir)/lib:$(abs_top_builddir)/support/pexpect \
|
|
$(PYTHON) $* -o manpage > $(@D)/.$(@F).tmp && \
|
|
xmllint --noout --relaxng $(top_srcdir)/lib/metadata.rng $(@D)/.$(@F).tmp && \
|
|
xsltproc $(top_srcdir)/lib/fence2man.xsl $(@D)/.$(@F).tmp > $@
|