Page Menu
Home
ClusterLabs Projects
Search
Configure Global Search
Log In
Files
F3156249
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
48 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/Makefile.am b/Makefile.am
index c90ce752..c23c80cb 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,47 +1,127 @@
EXTRA_DIST = autogen.sh make/fencebuild.mk \
.version make/release.mk \
make/git-version-gen make/gitlog-to-changelog tests
AUTOMAKE_OPTIONS = foreign
MAINTAINERCLEANFILES = Makefile.in aclocal.m4 configure depcomp \
config.guess config.sub missing install-sh \
autoheader automake autoconf libtool libtoolize \
ltmain.sh compile make/clusterautoconfig.h.in \
make/clusterautoconfig.h.in~ autoscan.log \
configure.scan
+SPEC = $(PACKAGE_NAME).spec
+
+TARFILES = $(PACKAGE_NAME)-$(VERSION).tar.bz2 \
+ $(PACKAGE_NAME)-$(VERSION).tar.gz \
+ $(PACKAGE_NAME)-$(VERSION).tar.xz
+
ACLOCAL_AMFLAGS = -I m4
SUBDIRS = lib agents doc
install-exec-local:
$(INSTALL) -d $(DESTDIR)/$(LOGDIR)
$(INSTALL) -d $(DESTDIR)/$(CLUSTERVARRUN)
uninstall-local:
rmdir $(DESTDIR)/$(LOGDIR) || :;
rmdir $(DESTDIR)/$(CLUSTERVARRUN) || :;
BUILT_SOURCES = .version
.version:
echo $(VERSION) > $@-t && mv $@-t $@
dist-hook: gen-ChangeLog
echo $(VERSION) > $(distdir)/.tarball-version
gen_start_date = 2000-01-01
.PHONY: gen-ChangeLog
gen-ChangeLog:
if test -d .git; then \
$(top_srcdir)/make/gitlog-to-changelog \
--since=$(gen_start_date) > $(distdir)/cl-t; \
rm -f $(distdir)/ChangeLog; \
mv $(distdir)/cl-t $(distdir)/ChangeLog; \
fi
# this will get rid of "libtoolized" m4 files
maintainer-clean-local:
rm -rf $(filter-out \
$(top_srcdir)/m4/ac_python_module.m4,$(wildcard \
$(top_srcdir)/m4/*.m4))
+
+## make rpm/srpm section.
+$(SPEC): $(SPEC).in
+ rm -f $@-t $@
+ date="$(shell LC_ALL=C date "+%a %b %d %Y")" && \
+ specver="1" && \
+ rcver="" && \
+ dirty="" && \
+ alphatag="" && \
+ numcomm="" && \
+ ver="$(VERSION)" && \
+ if echo $$ver | grep -q -- "-dirty$$"; then \
+ dirty="dirty" && \
+ echo VERSION IS DIRTY && \
+ ver=`echo $$ver | sed -e "s/-dirty$$//"`; \
+ fi && \
+ echo $$ver && \
+ if echo $$ver | grep -q -- "-"; then \
+ alphatag=`echo $$ver | sed -e "s/.*-//"` && \
+ echo VERSION HAS ALPHATAG && \
+ ver=`echo $$ver | sed -e "s/-.*//"`; \
+ fi && \
+ echo $$ver && \
+ if [ -n "$$alphatag" ]; then \
+ echo VERSION HAS NUMCOMMITS && \
+ numcomm=`echo $$ver | sed -e 's/.*\.//'` && \
+ ver=`echo $$ver | sed -e 's/.'$$numcomm'$$//'`; \
+ fi && \
+ if echo $$ver | grep -q "\.[[:digit:]]rc[[:digit:]]"; then \
+ rpmver=`echo $$ver | sed -e "s/rc[[:digit:]].*//g"` && \
+ rcver=`echo $$ver | sed -e "s/.*\(rc[[:digit:]]\).*/\1/g"` && \
+ specver="0"; \
+ else \
+ rpmver=$$ver; \
+ fi && \
+ echo $$rpmver $$rcver && \
+ sed \
+ -e "s#@version@#$$rpmver#g" \
+ -e "s#@alphatag@#$$alphatag#g" \
+ -e "s#@numcomm@#$$numcomm#g" \
+ -e "s#@dirty@#$$dirty#g" \
+ -e "s#@date@#$$date#g" \
+ -e "s#@specver@#$$specver#g" \
+ -e "s#@rcver@#$$rcver#g" \
+ -e "s#@rgmanager@#$(RGMANAGER)#g" \
+ -e "s#@linux-ha@#$(LINUX_HA)#g" \
+ -e "s#@compat-habindir@#$(COMPAT_HABINDIR)#g" \
+ $< > $@-t; \
+ if [ -z "$$dirty" ]; then sed -i -e "s#%glo.*dirty.*##g" $@-t; fi; \
+ if [ -z "$$alphatag" ]; then sed -i -e "s#%glo.*alphatag.*##g" $@-t; fi; \
+ if [ -z "$$numcomm" ]; then sed -i -e "s#%glo.*numcomm.*##g" $@-t; fi; \
+ if [ -z "$$rcver" ]; then sed -i -e "s#%glo.*rcver.*##g" $@-t; fi
+ chmod a-w $@-t
+ mv $@-t $@
+
+$(TARFILES):
+ $(MAKE) dist
+
+RPMBUILDOPTS = --define "_sourcedir $(abs_builddir)" \
+ --define "_specdir $(abs_builddir)" \
+ --define "_builddir $(abs_builddir)" \
+ --define "_srcrpmdir $(abs_builddir)" \
+ --define "_rpmdir $(abs_builddir)"
+
+srpm: clean
+ $(MAKE) $(SPEC) $(TARFILES)
+ rpmbuild $(RPMBUILDOPTS) --nodeps -bs $(SPEC)
+
+rpm: clean
+ $(MAKE) $(SPEC) $(TARFILES)
+ rpmbuild $(RPMBUILDOPTS) -ba $(SPEC)
+
+clean-generic:
+ rm -rf $(SPEC) $(TARFILES) $(PACKAGE_NAME)-$(VERSION) *.rpm
diff --git a/agents/Makefile.am b/agents/Makefile.am
index 833d2af5..4d8d86d5 100644
--- a/agents/Makefile.am
+++ b/agents/Makefile.am
@@ -1,119 +1,119 @@
MAINTAINERCLEANFILES = Makefile.in
TARGET = $(AGENTS_LIST:%.py=%)
SRC = $(TARGET:=.py)
CLEAN_TARGET_ADDITIONAL = kdump/fence_kdump_send manual/fence_ack_manual */*.o
EXTRA_DIST = $(SRC)
sbin_PROGRAMS =
sbin_SCRIPTS = $(TARGET)
libexec_PROGRAMS =
-dist_man_MANS =
-
noinst_HEADERS = kdump/list.h kdump/message.h kdump/options.h kdump/version.h zvm/fence_zvm.h
-EXTRA_SCRIPTS =
-
man_MANS = $(sbin_SCRIPTS:=.8)
+dist_man_MANS =
+
+EXTRA_SCRIPTS =
if BUILD_FENCE_KDUMP
sbin_PROGRAMS += kdump/fence_kdump
libexec_PROGRAMS += kdump/fence_kdump_send
-dist_man_MANS += kdump/fence_kdump.8 kdump/fence_kdump_send.8
+man_MANS += kdump/fence_kdump.8
+dist_man_MANS += kdump/fence_kdump_send.8
kdump_fence_kdump_SOURCES = kdump/fence_kdump.c
kdump_fence_kdump_CFLAGS = -D_GNU_SOURCE -Ikdump
kdump_fence_kdump_send_SOURCES = kdump/fence_kdump_send.c
kdump_fence_kdump_send_CFLAGS = -D_GNU_SOURCE -Ikdump
endif
if BUILD_FENCE_MANUAL
EXTRA_DIST += manual/fence_ack_manual.in manual/fence_ack_manual.8
sbin_SCRIPTS += manual/fence_ack_manual
endif
if BUILD_FENCE_ZVM
EXTRA_DIST += zvm/fence_zvm_man_page
sbin_PROGRAMS += zvm/fence_zvm
-dist_man_MANS += zvm/fence_zvm.8
+man_MANS += zvm/fence_zvm.8
zvm_fence_zvm_SOURCES = zvm/fence_zvm.c
zvm_fence_zvm_CFLAGS = -D_GNU_SOURCE -Izvm
endif
if BUILD_FENCE_MPATH
mpathdatadir = $(CLUSTERDATA)
mpathdata_SCRIPTS = mpath/fence_mpath_check mpath/fence_mpath_check_hardreboot
endif
if BUILD_FENCE_SCSI
scsidatadir = $(CLUSTERDATA)
scsidata_SCRIPTS = scsi/fence_scsi_check scsi/fence_scsi_check_hardreboot
endif
FENCE_TEST_ARGS = \
login=test\n\
passwd=test\n\
ipaddr=test\n\
port=1\n\
managed=1\n\
devices=test\n\
session_url=http://test\n\
email=test@test.te\n\
ping_targets=localhost
manual/fence_ack_manual: manual/fence_ack_manual.in
mkdir -p $(@D)
cat $^ | sed \
-e 's#@clustervarrun@#${CLUSTERVARRUN}#g' \
> $@
mpath/fence_mpath_check: mpath/fence_mpath
cp $^ $@
mpath/fence_mpath_check_hardreboot: mpath/fence_mpath
cp $^ $@
scsi/fence_scsi_check: scsi/fence_scsi
cp $^ $@
scsi/fence_scsi_check_hardreboot: scsi/fence_scsi
cp $^ $@
kdump/fence_kdump.8: kdump/fence_kdump $(top_srcdir)/lib/fence2man.xsl
set -e && \
./$(@:%.8=%) -o metadata > $(@D)/.$(@F).tmp && \
xmllint --noout --relaxng $(top_srcdir)/lib/metadata.rng $(@D)/.$(@F).tmp && \
xsltproc $(top_srcdir)/lib/fence2man.xsl $(@D)/.$(@F).tmp > $@
xsltproc $(top_srcdir)/lib/fence2wiki.xsl $(@D)/.$(@F).tmp | grep -v '<?xml' > $(@D)/$(@F:%.8=%.wiki)
kdump/fence_kdump_send.8:
true
manual/fence_ack_manual.8:
true
zvm/fence_zvm.8: zvm/fence_zvm
cp $(top_srcdir)/agents/zvm/fence_zvm_man_page $(@D)/fence_zvm.8
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 \
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 \
sh -c "printf "delay=0\n $$FENCE_TEST_ARGS_CISCO_MDS" | $(PYTHON) ./$(INPUT)"; false )
include $(top_srcdir)/make/fencebuild.mk
include $(top_srcdir)/make/fenceman.mk
include $(top_srcdir)/make/agentpycheck.mk
diff --git a/configure.ac b/configure.ac
index dcd22f1e..9b88d5f6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,406 +1,406 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.63])
AC_INIT([fence-agents],
m4_esyscmd([make/git-version-gen .tarball-version]),
- [linux-cluster@redhat.com])
+ [developers@clusterlabs.org])
AC_CONFIG_AUX_DIR([.])
AM_INIT_AUTOMAKE([-Wno-portability dist-bzip2 dist-xz subdir-objects])
LT_PREREQ([2.2.6])
LT_INIT
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_SRCDIR([lib/fencing.py.py])
AC_CONFIG_HEADERS([make/clusterautoconfig.h])
AC_CANONICAL_HOST
AC_PROG_LIBTOOL
AC_LANG([C])
# Sanitize path
if test "$prefix" = "NONE"; then
prefix="/usr"
if test "$localstatedir" = "\${prefix}/var"; then
localstatedir="/var"
fi
if test "$sysconfdir" = "\${prefix}/etc"; then
sysconfdir="/etc"
fi
if test "$libdir" = "\${exec_prefix}/lib"; then
if test -e /usr/lib64; then
libdir="/usr/lib64"
else
libdir="/usr/lib"
fi
fi
fi
case $exec_prefix in
NONE) exec_prefix=$prefix;;
prefix) exec_prefix=$prefix;;
esac
# Checks for programs.
# check stolen from gnulib/m4/gnu-make.m4
if ! ${MAKE-make} --version /cannot/make/this >/dev/null 2>&1; then
AC_MSG_ERROR([you don't seem to have GNU make; it is required])
fi
AC_PROG_CC
AM_PROG_CC_C_O
AC_PROG_LN_S
AC_PROG_INSTALL
AC_PROG_MAKE_SET
AC_PROG_AWK
AC_PROG_CXX
AC_PROG_RANLIB
## local helper functions
# this function checks if CC support options passed as
# args. Global CFLAGS are ignored during this test.
cc_supports_flag() {
local CFLAGS="$@"
AC_MSG_CHECKING([whether $CC supports "$@"])
AC_COMPILE_IFELSE([int main(){return 0;}] ,
[RC=0; AC_MSG_RESULT([yes])],
[RC=1; AC_MSG_RESULT([no])])
return $RC
}
# this function tests if a library has a certain function
# by using AC_CHECK_LIB but restores the original LIBS global
# envvar. This is required to avoid libtool to link everything
# with everything.
check_lib_no_libs() {
AC_CHECK_LIB([$1], [$2],,
[AC_MSG_ERROR([Unable to find $1 library])])
LIBS=$ac_check_lib_save_LIBS
}
# Checks for header files.
AC_CHECK_HEADERS([arpa/inet.h fcntl.h libintl.h limits.h netdb.h stddef.h sys/socket.h sys/time.h syslog.h])
# Checks for typedefs, structures, and compiler characteristics.
AC_C_INLINE
AC_TYPE_SIZE_T
AC_TYPE_SSIZE_T
AC_TYPE_UINT32_T
# Checks for library functions.
AC_FUNC_FORK
AC_FUNC_MALLOC
AC_CHECK_FUNCS([alarm atexit bzero dup2 memmove memset select socket strcasecmp strchr strdup strerror strtol])
# local options
AC_ARG_ENABLE([debug],
[ --enable-debug enable debug build. ],
[ default="no" ])
AC_ARG_WITH([fenceagentslibdir],
[ --with-fenceagentslibdir=PATH
installation path for fence library. ],
[ FENCEAGENTSLIBDIR="$withval" ],
[ FENCEAGENTSLIBDIR="${datadir}/fence" ])
AC_ARG_WITH([default-config-dir],
[ --with-default-config-dir=DIR
cluster config directory. ],
[ DEFAULT_CONFIG_DIR="$withval" ],
[ DEFAULT_CONFIG_DIR="$sysconfdir/cluster" ])
AC_ARG_WITH([default-config-file],
[ --with-default-config-file=FILE
cluster config file. ],
[ DEFAULT_CONFIG_FILE="$withval" ],
[ DEFAULT_CONFIG_FILE="cluster.conf" ])
AC_ARG_WITH([agents],
[ --with-agents=LIST
list of agents to build/ship (default: all). ],
[ AGENTS_LIST="$withval" ],
[ AGENTS_LIST="all" ])
if test "x$AGENTS_LIST" = x; then
AC_ERROR([No agents selected])
fi
FENCE_KDUMP=0
if echo "$AGENTS_LIST" | grep -q -E "all|kdump"; then
case "$host_os" in
*bsd*)
;;
*)
FENCE_KDUMP=1
;;
esac
AGENTS_LIST=$(echo "$AGENTS_LIST" | sed -E "s/kdump( |$)//")
fi
FENCE_MANUAL=0
if echo "$AGENTS_LIST" | grep -q -E "all|manual"; then
FENCE_MANUAL=1
AGENTS_LIST=$(echo "$AGENTS_LIST" | sed -E "s/manual( |$)//")
fi
FENCE_MPATH=0
if echo "$AGENTS_LIST" | grep -q -E "all|mpath"; then
FENCE_MPATH=1
fi
FENCE_SCSI=0
if echo "$AGENTS_LIST" | grep -q -E "all|scsi"; then
FENCE_SCSI=1
fi
FENCE_ZVM=0
if echo "$AGENTS_LIST" | grep -q -E "all|zvm( |$)"; then
FENCE_ZVM=1
fi
if test "x$AGENTS_LIST" != xall; then
for j in $AGENTS_LIST; do
if ! test -f agents/$j/fence_$j*.py; then
AC_ERROR([Agent $j does not exists])
fi
AGENTS_LIST=`echo "$AGENTS_LIST" | sed -E -e "s#$j([^_/]|$)#$j/fence_$j\1#g" -e "s#zvm/fence_zvm( |$)#zvm/fence_zvmip\1#g"`
done
fi
if test "x$AGENTS_LIST" = xall; then
AGENTS_LIST=`find $srcdir/agents -mindepth 2 -maxdepth 2 -name 'fence_*.py' -print0 | xargs -0 | sed -e 's#[^ ]*/agents/##g' -e 's#lib/[A-Za-z_.]* ##g' -e 's#nss_wrapper/[A-Za-z_.]* ##g' -e 's#autodetect/[A-Za-z_.]* ##g'`
fi
XENAPILIB=0
if echo "$AGENTS_LIST" | grep -q xenapi; then
XENAPILIB=1
fi
## random vars
LOGDIR=${localstatedir}/log/cluster
CLUSTERVARRUN=${localstatedir}/run/cluster
CLUSTERDATA=${datadir}/cluster
AC_PATH_PROGS(XMLLINT, xmllint)
AM_CONDITIONAL(BUILD_DOC, test "x$XMLLINT" != "x" )
if test "x$XMLLINT" = "x"; then
AC_MSG_WARN([xmllint not installed, unable to (re-)build manual pages])
exit 1
fi
AC_SUBST(XMLLINT)
AC_PATH_PROGS(XSLTPROC, xsltproc)
AM_CONDITIONAL(BUILD_DOC, test "x$XSLTPROC" != "x" )
if test "x$XSLTPROC" = "x"; then
AC_MSG_WARN([xsltproc not installed, unable to (re-)build manual pages])
exit 1
fi
AC_SUBST(XSLTPROC)
dnl Ensure PYTHON is an absolute path
AC_PATH_PROG([PYTHON], [$PYTHON])
AM_PATH_PYTHON
if test -z "$PYTHON"; then
echo "*** Essential program python not found" 1>&2
exit 1
fi
AC_PYTHON_MODULE(pexpect, 1)
AC_PYTHON_MODULE(pycurl, 1)
AC_PYTHON_MODULE(requests, 1)
if echo "$AGENTS_LIST" | grep -q amt_ws; then
AC_PYTHON_MODULE(pywsman)
if test "x${HAVE_PYMOD_PYWSMAN}" != xyes; then
AGENTS_LIST=$(echo "$AGENTS_LIST" | sed -E "s#amt_ws/fence_amt_ws.py( |$)##")
AC_MSG_WARN("Not building fence_amt_ws")
fi
fi
if echo "$AGENTS_LIST" | grep -q aws; then
AC_PYTHON_MODULE(boto3)
if test "x${HAVE_PYMOD_BOTO3}" != xyes; then
AGENTS_LIST=$(echo "$AGENTS_LIST" | sed -E "s#aws/fence_aws.py( |$)##")
AC_MSG_WARN("Not building fence_aws")
fi
fi
if echo "$AGENTS_LIST" | grep -q -E "ovh|vmware_soap"; then
AC_PYTHON_MODULE(suds)
if test "x${HAVE_PYMOD_SUDS}" != xyes; then
AGENTS_LIST=$(echo "$AGENTS_LIST" | sed -E "s#(ovh/fence_ovh|vmware_soap/fence_vmware_soap).py( |$)##g")
AC_MSG_WARN("Not building fence_ovh and fence_vmware_soap")
fi
fi
if echo "$AGENTS_LIST" | grep -q gce; then
AC_PYTHON_MODULE(googleapiclient)
if test "x${HAVE_PYMOD_GOOGLEAPICLIENT}" != xyes; then
AGENTS_LIST=$(echo "$AGENTS_LIST" | sed -E "s#gce/fence_gce.py( |$)##")
AC_MSG_WARN("Not building fence_ovh and fence_gce")
fi
fi
if echo "$AGENTS_LIST" | grep -q openstack; then
AC_PYTHON_MODULE(novaclient)
AC_PYTHON_MODULE(keystoneauth1)
AC_PYTHON_MODULE(keystoneclient)
if test "x${HAVE_PYMOD_NOVACLIENT}" != xyes || \
(test "x${HAVE_PYMOD_KEYSTONEAUTH1}" != xyes || \
test "x${HAVE_PYMOD_KEYSTONECLIENT}" != xyes); then
AGENTS_LIST=$(echo "$AGENTS_LIST" | sed -E "s#openstack/fence_openstack.py( |$)##")
AC_MSG_WARN("Not building fence_openstack")
fi
fi
## path to 3rd-party binaries
AC_PATH_PROG([IPMITOOL_PATH], [ipmitool], [/usr/bin/ipmitool])
AC_PATH_PROG([OPENSTACK_PATH], [openstack], [/usr/bin/openstack])
AC_PATH_PROG([AMTTOOL_PATH], [amttool], [/usr/bin/amttool])
AC_PATH_PROG([GNUTLSCLI_PATH], [gnutlscli], [/usr/bin/gnutls-cli])
AC_PATH_PROG([COROSYNC_CMAPCTL_PATH], [corosync-cmapctl], [/usr/sbin/corosync-cmapctl])
AC_PATH_PROG([SG_PERSIST_PATH], [sg_persist], [/usr/bin/sg_persist])
AC_PATH_PROG([SG_TURS_PATH], [sg_turs], [/usr/bin/sg_turs])
AC_PATH_PROG([VGS_PATH], [vgs], [/usr/sbin/vgs])
AC_PATH_PROG([SUDO_PATH], [sudo], [/usr/bin/sudo])
AC_PATH_PROG([SSH_PATH], [ssh], [/usr/bin/ssh])
AC_PATH_PROG([TELNET_PATH], [telnet], [/usr/bin/telnet])
AC_PATH_PROG([MPATH_PATH], [mpathpersist], [/usr/sbin/mpathpersist])
AC_PATH_PROG([SBD_PATH], [sbd], [/sbin/sbd])
AC_PATH_PROG([SUDO_PATH], [sudo], [/usr/bin/sudo])
AC_PATH_PROG([SNMPWALK_PATH], [snmpwalk], [/usr/bin/snmpwalk])
AC_PATH_PROG([SNMPSET_PATH], [snmpset], [/usr/bin/snmpset])
AC_PATH_PROG([SNMPGET_PATH], [snmpget], [/usr/bin/snmpget])
AC_PATH_PROG([NOVA_PATH], [nova], [/usr/bin/nova])
AC_PATH_PROG([POWERMAN_PATH], [powerman], [/usr/bin/powerman])
AC_PATH_PROG([PING_CMD], [ping])
AC_PATH_PROG([PING6_CMD], [ping6])
AC_PATH_PROG([PING4_CMD], [ping4])
if test "x${ac_cv_path_PING_CMD}" = x; then
# assume multicall-ping just not available in build-environment
PING_CMD="/bin/ping"
PING4_CMD="/bin/ping -4"
PING6_CMD="/bin/ping -6"
elif test "x${ac_cv_path_PING6_CMD}" = x; then
# just IPv4
PING4_CMD="${ac_cv_path_PING_CMD}"
elif test -L ${ac_cv_path_PING6_CMD}; then
# assume multicall-ping
PING4_CMD="${ac_cv_path_PING_CMD} -4"
else
# ping is just IPv4
PING4_CMD="${ac_cv_path_PING_CMD}"
fi
## do subst
AC_SUBST([DEFAULT_CONFIG_DIR])
AC_DEFINE_UNQUOTED([DEFAULT_CONFIG_DIR], "$(eval echo ${DEFAULT_CONFIG_DIR})",
[Default config directory])
AC_SUBST([DEFAULT_CONFIG_FILE])
AC_DEFINE_UNQUOTED([DEFAULT_CONFIG_FILE], "$(eval echo ${DEFAULT_CONFIG_FILE})",
[Default config file])
AC_SUBST([LOGDIR])
AC_DEFINE_UNQUOTED([LOGDIR], "$(eval echo ${LOGDIR})",
[Default logging directory])
AC_SUBST([CLUSTERVARRUN])
AC_DEFINE_UNQUOTED([CLUSTERVARRUN], "$(eval echo ${CLUSTERVARRUN})",
[Default cluster var/run directory])
AC_SUBST([CLUSTERDATA])
AC_SUBST([FENCEAGENTSLIBDIR])
AC_SUBST([SNMPBIN])
AC_SUBST([AGENTS_LIST])
AM_CONDITIONAL(BUILD_FENCE_KDUMP, test $FENCE_KDUMP -eq 1)
AM_CONDITIONAL(BUILD_FENCE_MANUAL, test $FENCE_MANUAL -eq 1)
AM_CONDITIONAL(BUILD_FENCE_MPATH, test $FENCE_MPATH -eq 1)
AM_CONDITIONAL(BUILD_FENCE_SCSI, test $FENCE_SCSI -eq 1)
AM_CONDITIONAL(BUILD_FENCE_ZVM, test $FENCE_ZVM -eq 1)
AM_CONDITIONAL(BUILD_XENAPILIB, test $XENAPILIB -eq 1)
AC_SUBST([IPMITOOL_PATH])
AC_SUBST([OPENSTACK_PATH])
AC_SUBST([AMTTOOL_PATH])
AC_SUBST([COROSYNC_CMAPCTL_PATH])
AC_SUBST([SG_PERSIST_PATH])
AC_SUBST([SG_TURS_PATH])
AC_SUBST([VGS_PATH])
AC_SUBST([POWERMAN_PATH])
## *FLAGS handling
ENV_CFLAGS="$CFLAGS"
ENV_CPPFLAGS="$CPPFLAGS"
ENV_LDFLAGS="$LDFLAGS"
# debug build stuff
if test "x${enable_debug}" = xyes; then
AC_DEFINE_UNQUOTED([DEBUG], [1], [Compiling Debugging code])
OPT_CFLAGS="-O0"
else
OPT_CFLAGS="-O2"
fi
# gdb flags
if test "x${GCC}" = xyes; then
GDB_FLAGS="-ggdb3"
else
GDB_FLAGS="-g"
fi
# extra warnings
EXTRA_WARNINGS=""
WARNLIST="
all
shadow
missing-prototypes
missing-declarations
strict-prototypes
declaration-after-statement
pointer-arith
write-strings
cast-align
bad-function-cast
missing-format-attribute
format=2
format-security
format-nonliteral
no-long-long
unsigned-char
gnu89-inline
no-strict-aliasing
"
for j in $WARNLIST; do
if cc_supports_flag -W$j; then
EXTRA_WARNINGS="$EXTRA_WARNINGS -W$j";
fi
done
CFLAGS="$ENV_CFLAGS $OPT_CFLAGS $GDB_FLAGS \
$EXTRA_WARNINGS $WERROR_CFLAGS"
CPPFLAGS="-I\$(top_builddir)/make -I\$(top_srcdir)/make -I. $ENV_CPPFLAGS"
LDFLAGS="$ENV_LDFLAGS"
AM_EXTRA_RECURSIVE_TARGETS([xml-check xml-upload])
AC_CONFIG_FILES([Makefile
agents/Makefile
lib/Makefile
doc/Makefile])
AC_OUTPUT
diff --git a/fence-agents.spec.in b/fence-agents.spec.in
new file mode 100644
index 00000000..8b478e30
--- /dev/null
+++ b/fence-agents.spec.in
@@ -0,0 +1,1018 @@
+###############################################################################
+###############################################################################
+##
+## Copyright (C) 2019 Red Hat, Inc. All rights reserved.
+##
+## This copyrighted material is made available to anyone wishing to use,
+## modify, copy, or redistribute it subject to the terms and conditions
+## of the GNU General Public License v.2.
+##
+###############################################################################
+###############################################################################
+
+%global rcver @rcver@
+%global alphatag @alphatag@
+%global numcomm @numcomm@
+%global dirty @dirty@
+
+Name: fence-agents
+Summary: Set of unified programs capable of host isolation ("fencing")
+Version: @version@
+Release: @specver@%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}%{?dist}
+License: GPLv2+ and LGPLv2+
+Group: System Environment/Base
+URL: https://github.com/ClusterLabs/fence-agents
+Source0: %{name}-%{version}%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}}.tar.bz2
+
+%if 0%{?rhel} == 7
+%ifarch s390x
+%define rhel7_s390x 1
+%endif
+%endif
+
+# skipped: pve, raritan, rcd-serial, virsh
+%global allfenceagents %(cat <<EOF
+fence-agents-alom \\
+fence-agents-amt \\
+fence-agents-amt-ws \\
+fence-agents-apc \\
+fence-agents-apc-snmp \\
+fence-agents-azure-arm \\
+fence-agents-bladecenter \\
+fence-agents-brocade \\
+fence-agents-cisco-mds \\
+fence-agents-cisco-ucs \\
+fence-agents-compute \\
+fence-agents-docker \\
+fence-agents-drac \\
+fence-agents-drac5 \\
+fence-agents-eaton-snmp \\
+fence-agents-emerson \\
+fence-agents-eps \\
+fence-agents-hds-cb \\
+fence-agents-heuristics-ping \\
+fence-agents-hpblade \\
+fence-agents-ibmblade \\
+fence-agents-ifmib \\
+fence-agents-ilo-moonshot \\
+fence-agents-ilo-mp \\
+fence-agents-ilo-ssh \\
+fence-agents-ilo2 \\
+fence-agents-intelmodular \\
+fence-agents-ipdu \\
+fence-agents-ipmilan \\
+fence-agents-ironic \\
+fence-agents-kdump \\
+fence-agents-ldom \\
+fence-agents-lpar \\
+fence-agents-mpath \\
+fence-agents-netio \\
+fence-agents-ovh \\
+fence-agents-redfish \\
+fence-agents-rhevm \\
+fence-agents-rsa \\
+fence-agents-rsb \\
+fence-agents-sanbox2 \\
+fence-agents-sbd \\
+fence-agents-scsi \\
+fence-agents-vbox \\
+fence-agents-vmware \\
+fence-agents-vmware-rest \\
+fence-agents-vmware-soap \\
+fence-agents-vmware-vcloud \\
+fence-agents-wti \\
+fence-agents-xenapi \\
+fence-agents-zvm \\
+
+EOF)
+
+%if ! %{defined rhel7_s390x}
+%global allfenceagents %(cat <<EOF
+%{allfenceagents} \\
+fence-agents-aws \\
+fence-agents-gce
+
+EOF)
+%endif
+
+# Build dependencies
+## general
+BuildRequires: autoconf automake libtool
+## compiled code (-kdump)
+BuildRequires: gcc
+## man pages generating
+BuildRequires: libxslt
+## Python dependencies
+%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
+BuildRequires: python3-devel
+BuildRequires: python3-pexpect python3-pycurl python3-requests
+BuildRequires: python3-suds
+%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7
+BuildRequires: python3-google-api-client python3-boto3 openwsman-python3
+%endif
+%if 0%{?suse_version}
+BuildRequires: python3-google-api-python-client python3-openwsman python3-boto3
+%endif
+%else
+BuildRequires: python-devel
+BuildRequires: pexpect python-pycurl python-requests
+BuildRequires: python-suds openwsman-python
+%if ! %{defined rhel7_s390x}
+BuildRequires: python-google-api-client python-boto3
+%endif
+%endif
+
+# turn off the brp-python-bytecompile script
+# (for F28+ or equivalent, the latter is the preferred form)
+%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompilespace:.*$!!g')
+#undefine __brp_python_bytecompile
+
+%prep
+%setup -q -n %{name}-%{version}%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}}
+%autopatch -p1
+# prevent compilation of something that won't get used anyway
+sed -i.orig 's|FENCE_ZVM=1|FENCE_ZVM=0|' configure.ac
+
+%build
+./autogen.sh
+%{configure} PYTHON="%{__python3}"
+CFLAGS="$(echo '%{optflags}')" make %{_smp_mflags}
+
+%install
+make install DESTDIR=%{buildroot}
+# bytecompile Python source code in a non-standard location
+%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7
+%py_byte_compile %{__python3} %{buildroot}%{_datadir}/fence
+%endif
+# XXX unsure if /usr/sbin/fence_* should be compiled as well
+
+## tree fix up
+# fix libfence permissions
+chmod 0755 %{buildroot}%{_datadir}/fence/*.py
+# remove docs
+rm -rf %{buildroot}/usr/share/doc/fence-agents
+
+%post
+ccs_update_schema > /dev/null 2>&1 ||:
+
+%description
+A collection of executables to handle isolation ("fencing") of possibly
+misbehaving hosts by the means of remote power management, blocking
+network, storage, or similar. They operate through a unified interface
+(calling conventions) devised for the original Red Hat clustering solution.
+
+%package common
+License: GPLv2+ and LGPLv2+
+Summary: Common base for Fence Agents
+%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
+Requires: python3-pexpect python3-pycurl
+%else
+Requires: pexpect python-pycurl
+%endif
+BuildArch: noarch
+%description common
+A collection of executables to handle isolation ("fencing") of possibly
+misbehaving hosts by the means of remote power management, blocking
+network, storage, or similar.
+
+This package contains support files including the Python fencing library.
+%files common
+%doc doc/COPYING.* doc/COPYRIGHT doc/README.licence
+%{_datadir}/fence
+%exclude %{_datadir}/fence/azure_fence.*
+%exclude %{_datadir}/fence/__pycache__/azure_fence.*
+%exclude %{_datadir}/fence/XenAPI.*
+%exclude %{_datadir}/fence/__pycache__/XenAPI.*
+%{_datadir}/cluster
+%exclude %{_datadir}/cluster/fence_scsi_check*
+%exclude %{_sbindir}/*
+%exclude %{_mandir}/man8/*
+
+%package all
+License: GPLv2+, LGPLv2+ and ASL 2.0
+Summary: Set of unified programs capable of host isolation ("fencing")
+Requires: %{allfenceagents}
+Provides: fence-agents = %{version}-%{release}
+Obsoletes: fence-agents < 3.1.13
+%if 0%{?fedora} || 0%{?centos} || 0%{?rhel} > 7 || 0%{?suse_version}
+BuildArch: noarch
+%endif
+%description all
+A collection of executables to handle isolation ("fencing") of possibly
+misbehaving hosts by the means of remote power management, blocking
+network, storage, or similar.
+
+This package serves as a catch-all for all supported fence agents.
+%files all
+
+%package alom
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for SUN ALOM
+Requires: telnet openssh-clients
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description alom
+Fence agent for SUN ALOM.
+%files alom
+%{_sbindir}/fence_alom
+%{_mandir}/man8/fence_alom.8*
+
+%package amt
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for Intel AMT devices
+Requires: amtterm
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description amt
+Fence agent for AMT compatibile devices that are accessed via
+3rd party software.
+%files amt
+%{_sbindir}/fence_amt
+%{_mandir}/man8/fence_amt.8*
+
+%package amt-ws
+License: ASL 2.0
+Summary: Fence agent for Intel AMT (WS-Man) devices
+Requires: fence-agents-common = %{version}-%{release}
+%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
+%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7
+Requires: openwsman-python3
+%endif
+%if 0%{?suse_version}
+Requires: python3-openwsman
+%endif
+%else
+Requires: openwsman-python
+%endif
+BuildArch: noarch
+%description amt-ws
+Fence agent for AMT (WS-Man) devices.
+%files amt-ws
+%{_sbindir}/fence_amt_ws
+%{_mandir}/man8/fence_amt_ws.8*
+
+%package apc
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for APC devices
+Requires: telnet openssh-clients
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description apc
+Fence agent for APC devices that are accessed via telnet or SSH.
+%files apc
+%{_sbindir}/fence_apc
+%{_mandir}/man8/fence_apc.8*
+
+%package apc-snmp
+License: GPLv2+ and LGPLv2+
+Summary: Fence agents for APC devices (SNMP)
+Requires: net-snmp-utils
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description apc-snmp
+Fence agents for APC devices that are accessed via the SNMP protocol.
+%files apc-snmp
+%{_sbindir}/fence_apc_snmp
+%{_mandir}/man8/fence_apc_snmp.8*
+%{_sbindir}/fence_tripplite_snmp
+%{_mandir}/man8/fence_tripplite_snmp.8*
+
+%if ! %{defined rhel7_s390x}
+%package aws
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for Amazon AWS
+Requires: fence-agents-common = %{version}-%{release}
+%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
+Requires: python3-boto3
+%else
+Requires: python-boto3
+%endif
+BuildArch: noarch
+Obsoletes: fence-agents
+%description aws
+Fence agent for Amazon AWS instances.
+%files aws
+%{_sbindir}/fence_aws
+%{_mandir}/man8/fence_aws.8*
+%endif
+
+%package azure-arm
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for Azure Resource Manager
+Requires: fence-agents-common = %{version}-%{release}
+%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
+Requires: python3-azure-sdk
+%else
+Requires: python-azure-sdk
+%endif
+BuildArch: noarch
+Obsoletes: fence-agents
+%description azure-arm
+Fence agent for Azure Resource Manager instances.
+%files azure-arm
+%{_sbindir}/fence_azure_arm
+%{_datadir}/fence/azure_fence.py*
+%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7
+%{_datadir}/fence/__pycache__/azure_fence.*
+%endif
+%{_mandir}/man8/fence_azure_arm.8*
+
+%package bladecenter
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for IBM BladeCenter
+Requires: telnet openssh-clients
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description bladecenter
+Fence agent for IBM BladeCenter devices that are accessed
+via telnet or SSH.
+%files bladecenter
+%{_sbindir}/fence_bladecenter
+%{_mandir}/man8/fence_bladecenter.8*
+
+%package brocade
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for Brocade switches
+Requires: telnet openssh-clients
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description brocade
+Fence agent for Brocade devices that are accessed via telnet or SSH.
+%files brocade
+%{_sbindir}/fence_brocade
+%{_mandir}/man8/fence_brocade.8*
+
+%package cisco-mds
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for Cisco MDS 9000 series
+Requires: net-snmp-utils
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description cisco-mds
+Fence agent for Cisco MDS 9000 series devices that are accessed
+via the SNMP protocol.
+%files cisco-mds
+%{_sbindir}/fence_cisco_mds
+%{_mandir}/man8/fence_cisco_mds.8*
+
+%package cisco-ucs
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for Cisco UCS series
+%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
+Requires: python3-pycurl
+%else
+Requires: python-pycurl
+%endif
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description cisco-ucs
+Fence agent for Cisco UCS series devices that are accessed
+via the SNMP protocol.
+%files cisco-ucs
+%{_sbindir}/fence_cisco_ucs
+%{_mandir}/man8/fence_cisco_ucs.8*
+
+%package compute
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for Nova compute nodes
+%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
+Requires: python3-requests
+%else
+Requires: python-requests
+%endif
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description compute
+Fence agent for Nova compute nodes.
+%files compute
+%{_sbindir}/fence_compute
+%{_sbindir}/fence_evacuate
+%{_mandir}/man8/fence_compute.8*
+%{_mandir}/man8/fence_evacuate.8*
+
+%package docker
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for Docker
+%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
+Requires: python3-pycurl
+%else
+Requires: python-pycurl
+%endif
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description docker
+Fence agent for Docker images that are accessed over HTTP.
+%files docker
+%{_sbindir}/fence_docker
+%{_mandir}/man8/fence_docker.8*
+
+%package drac
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for Dell DRAC
+Requires: telnet
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description drac
+Fence agent for Dell DRAC IV series devices that are accessed
+via telnet.
+%files drac
+%{_sbindir}/fence_drac
+%{_mandir}/man8/fence_drac.8*
+
+%package drac5
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for Dell DRAC 5
+Requires: telnet openssh-clients
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description drac5
+Fence agent for Dell DRAC 5 series devices that are accessed
+via telnet or SSH.
+%files drac5
+%{_sbindir}/fence_drac5
+%{_mandir}/man8/fence_drac5.8*
+
+%package eaton-snmp
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for Eaton network power switches
+Requires: net-snmp-utils
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description eaton-snmp
+Fence agent for Eaton network power switches that are accessed
+via the SNMP protocol.
+%files eaton-snmp
+%{_sbindir}/fence_eaton_snmp
+%{_mandir}/man8/fence_eaton_snmp.8*
+
+%package emerson
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for Emerson devices (SNMP)
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description emerson
+Fence agent for Emerson devices that are accessed via
+the SNMP protocol.
+%files emerson
+%{_sbindir}/fence_emerson
+%{_mandir}/man8/fence_emerson.8*
+
+%package eps
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for ePowerSwitch 8M+ power switches
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description eps
+Fence agent for ePowerSwitch 8M+ power switches that are accessed
+via the HTTP(s) protocol.
+%files eps
+%{_sbindir}/fence_eps
+%{_mandir}/man8/fence_eps.8*
+
+%if ! %{defined rhel7_s390x}
+%package gce
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for GCE (Google Cloud Engine)
+Requires: fence-agents-common = %{version}-%{release}
+%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
+%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7
+Requires: python3-google-api-client
+%endif
+%if 0%{?suse_version}
+Requires: python3-google-api-python-client
+%endif
+%else
+Requires: python-google-api-client
+%endif
+BuildArch: noarch
+Obsoletes: fence-agents
+%description gce
+Fence agent for GCE (Google Cloud Engine) instances.
+%files gce
+%{_sbindir}/fence_gce
+%{_mandir}/man8/fence_gce.8*
+%endif
+
+%package hds-cb
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for Hitachi Compute Blade systems
+Requires: telnet
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description hds-cb
+Fence agent for Hitachi Compute Blades that are accessed via telnet.
+%files hds-cb
+%{_sbindir}/fence_hds_cb
+%{_mandir}/man8/fence_hds_cb.8*
+
+%package heuristics-ping
+License: GPLv2+ and LGPLv2+
+Summary: Pseudo fence agent to affect other agents based on ping-heuristics
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+Obsoletes: fence-agents
+%description heuristics-ping
+Fence pseudo agent used to affect other agents based on
+ping-heuristics.
+%files heuristics-ping
+%{_sbindir}/fence_heuristics_ping
+%{_mandir}/man8/fence_heuristics_ping.8*
+
+%package hpblade
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for HP BladeSystem devices
+Requires: telnet openssh-clients
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description hpblade
+Fence agent for HP BladeSystem devices that are accessed via telnet
+or SSH.
+%files hpblade
+%{_sbindir}/fence_hpblade
+%{_mandir}/man8/fence_hpblade.8*
+
+%package ibmblade
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for IBM BladeCenter
+Requires: net-snmp-utils
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description ibmblade
+Fence agent for IBM BladeCenter devices that are accessed
+via the SNMP protocol.
+%files ibmblade
+%{_sbindir}/fence_ibmblade
+%{_mandir}/man8/fence_ibmblade.8*
+
+%package ifmib
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for devices with IF-MIB interfaces
+Requires: net-snmp-utils
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description ifmib
+Fence agent for IF-MIB interfaces that are accessed via
+the SNMP protocol.
+%files ifmib
+%{_sbindir}/fence_ifmib
+%{_mandir}/man8/fence_ifmib.8*
+
+%package ilo2
+License: GPLv2+ and LGPLv2+
+Summary: Fence agents for HP iLO2 devices
+Requires: gnutls-utils
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description ilo2
+Fence agents for HP iLO2 devices that are accessed via
+the HTTP(s) protocol.
+%files ilo2
+%{_sbindir}/fence_ilo
+%{_sbindir}/fence_ilo2
+%{_mandir}/man8/fence_ilo.8*
+%{_mandir}/man8/fence_ilo2.8*
+
+%package ilo-moonshot
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for HP iLO Moonshot devices
+Requires: telnet openssh-clients
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description ilo-moonshot
+Fence agent for HP iLO Moonshot devices that are accessed
+via telnet or SSH.
+%files ilo-moonshot
+%{_sbindir}/fence_ilo_moonshot
+%{_mandir}/man8/fence_ilo_moonshot.8*
+
+%package ilo-mp
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for HP iLO MP devices
+Requires: telnet openssh-clients
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description ilo-mp
+Fence agent for HP iLO MP devices that are accessed via telnet or SSH.
+%files ilo-mp
+%{_sbindir}/fence_ilo_mp
+%{_mandir}/man8/fence_ilo_mp.8*
+
+%package ilo-ssh
+License: GPLv2+ and LGPLv2+
+Summary: Fence agents for HP iLO devices over SSH
+Requires: openssh-clients
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description ilo-ssh
+Fence agents for HP iLO devices that are accessed via telnet or SSH.
+%files ilo-ssh
+%{_sbindir}/fence_ilo_ssh
+%{_mandir}/man8/fence_ilo_ssh.8*
+%{_sbindir}/fence_ilo3_ssh
+%{_mandir}/man8/fence_ilo3_ssh.8*
+%{_sbindir}/fence_ilo4_ssh
+%{_mandir}/man8/fence_ilo4_ssh.8*
+%{_sbindir}/fence_ilo5_ssh
+%{_mandir}/man8/fence_ilo5_ssh.8*
+
+%package intelmodular
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for devices with Intel Modular interfaces
+Requires: net-snmp-utils
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description intelmodular
+Fence agent for Intel Modular interfaces that are accessed
+via the SNMP protocol.
+%files intelmodular
+%{_sbindir}/fence_intelmodular
+%{_mandir}/man8/fence_intelmodular.8*
+
+%package ipdu
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for IBM iPDU network power switches
+Requires: net-snmp-utils
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description ipdu
+Fence agent for IBM iPDU network power switches that are accessed
+via the SNMP protocol.
+%files ipdu
+%{_sbindir}/fence_ipdu
+%{_mandir}/man8/fence_ipdu.8*
+
+%package ipmilan
+License: GPLv2+ and LGPLv2+
+Summary: Fence agents for devices with IPMI interface
+Requires: /usr/bin/ipmitool
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description ipmilan
+Fence agents for devices with IPMI interface.
+%files ipmilan
+%{_sbindir}/fence_ipmilan
+%{_mandir}/man8/fence_ipmilan.8*
+%{_sbindir}/fence_idrac
+%{_mandir}/man8/fence_idrac.8*
+%{_sbindir}/fence_ilo3
+%{_mandir}/man8/fence_ilo3.8*
+%{_sbindir}/fence_ilo4
+%{_mandir}/man8/fence_ilo4.8*
+%{_sbindir}/fence_ilo5
+%{_mandir}/man8/fence_ilo5.8*
+%{_sbindir}/fence_imm
+%{_mandir}/man8/fence_imm.8*
+
+%package ironic
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for OpenStack's Ironic (Bare Metal as a service)
+Requires: /usr/bin/openstack
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description ironic
+Fence agent for OpenStack's Ironic (Bare Metal as a service) service.
+%files ironic
+%{_sbindir}/fence_ironic
+%{_mandir}/man8/fence_ironic.8*
+
+%package kdump
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for use with kdump crash recovery service
+Requires: fence-agents-common = %{version}-%{release}
+# this cannot be noarch since it's compiled
+%description kdump
+Fence agent for use with kdump crash recovery service.
+%files kdump
+%{_sbindir}/fence_kdump
+%{_libexecdir}/fence_kdump_send
+%{_mandir}/man8/fence_kdump.8*
+%{_mandir}/man8/fence_kdump_send.8*
+
+%package ldom
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for Sun LDom virtual machines
+Requires: telnet openssh-clients
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description ldom
+Fence agent for APC devices that are accessed via telnet or SSH.
+%files ldom
+%{_sbindir}/fence_ldom
+%{_mandir}/man8/fence_ldom.8*
+
+%package lpar
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for IBM LPAR
+Requires: telnet openssh-clients
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description lpar
+Fence agent for IBM LPAR devices that are accessed via telnet or SSH.
+%files lpar
+%{_sbindir}/fence_lpar
+%{_mandir}/man8/fence_lpar.8*
+
+%package mpath
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for reservations over Device Mapper Multipath
+Requires: device-mapper-multipath
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description mpath
+Fence agent for SCSI persistent reservation over
+Device Mapper Multipath.
+%files mpath
+%{_sbindir}/fence_mpath
+%{_mandir}/man8/fence_mpath.8*
+
+%package netio
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for Koukaam NETIO devices
+Requires: telnet openssh-clients
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description netio
+Fence agent for Koukaam NETIO devices that are accessed
+via telnet or SSH.
+%files netio
+%{_sbindir}/fence_netio
+%{_mandir}/man8/fence_netio.8*
+
+%package ovh
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for OVH provider
+%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
+Requires: python3-suds
+%else
+Requires: python-suds
+%endif
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description ovh
+Fence agent for OVH hosting provider.
+%files ovh
+%{_sbindir}/fence_ovh
+%{_mandir}/man8/fence_ovh.8*
+
+# skipped from allfenceagents
+%package pve
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for PVE
+%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
+Requires: python3-pycurl
+%else
+Requires: python-pycurl
+%endif
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description pve
+Fence agent for PVE.
+%files pve
+%{_sbindir}/fence_pve
+%{_mandir}/man8/fence_pve.8*
+
+# skipped from allfenceagents
+%package raritan
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for Raritan Dominion PX
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description raritan
+Fence agent for Raritan Dominion PX.
+%files raritan
+%{_sbindir}/fence_raritan
+%{_mandir}/man8/fence_raritan.8*
+
+# skipped from allfenceagents
+%package rcd-serial
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for RCD serial
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description rcd-serial
+Fence agent for RCD serial.
+%files rcd-serial
+%{_sbindir}/fence_rcd_serial
+%{_mandir}/man8/fence_rcd_serial.8*
+
+%package redfish
+License: GPLv2+ and LGPLv2+
+Group: System Environment/Base
+Summary: Fence agent for Redfish
+Requires: fence-agents-common >= %{version}-%{release}
+%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
+Requires: python3-requests
+%else
+Requires: python-requests
+%endif
+Obsoletes: fence-agents
+%description redfish
+The fence-agents-redfish package contains a fence agent for Redfish
+%files redfish
+%defattr(-,root,root,-)
+%{_sbindir}/fence_redfish
+%{_mandir}/man8/fence_redfish.8*
+
+%package rhevm
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for RHEV-M
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description rhevm
+Fence agent for RHEV-M via REST API.
+%files rhevm
+%{_sbindir}/fence_rhevm
+%{_mandir}/man8/fence_rhevm.8*
+
+%package rsa
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for IBM RSA II
+Requires: telnet openssh-clients
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description rsa
+Fence agent for IBM RSA II devices that are accessed
+via telnet or SSH.
+%files rsa
+%{_sbindir}/fence_rsa
+%{_mandir}/man8/fence_rsa.8*
+
+%package rsb
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for Fujitsu RSB
+Requires: telnet openssh-clients
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description rsb
+Fence agent for Fujitsu RSB devices that are accessed
+via telnet or SSH.
+%files rsb
+%{_sbindir}/fence_rsb
+%{_mandir}/man8/fence_rsb.8*
+
+%package sanbox2
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for QLogic SANBox2 FC switches
+Requires: telnet
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description sanbox2
+Fence agent for QLogic SANBox2 switches that are accessed via telnet.
+%files sanbox2
+%{_sbindir}/fence_sanbox2
+%{_mandir}/man8/fence_sanbox2.8*
+
+%package sbd
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for SBD (storage-based death)
+Requires: sbd
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description sbd
+Fence agent for SBD (storage-based death).
+%files sbd
+%{_sbindir}/fence_sbd
+%{_mandir}/man8/fence_sbd.8*
+
+%package scsi
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for SCSI persistent reservations
+Requires: sg3_utils
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description scsi
+Fence agent for SCSI persistent reservations.
+%files scsi
+%{_sbindir}/fence_scsi
+%{_datadir}/cluster/fence_scsi_check
+%{_datadir}/cluster/fence_scsi_check_hardreboot
+%{_mandir}/man8/fence_scsi.8*
+
+%package vbox
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for VirtualBox
+Requires: openssh-clients
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description vbox
+Fence agent for VirtualBox dom0 accessed via SSH.
+%files vbox
+%{_sbindir}/fence_vbox
+%{_mandir}/man8/fence_vbox.8*
+
+# skipped from allfenceagents
+%package virsh
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for virtual machines based on libvirt
+Requires: openssh-clients /usr/bin/virsh
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description virsh
+Fence agent for virtual machines that are accessed via SSH.
+%files virsh
+%{_sbindir}/fence_virsh
+%{_mandir}/man8/fence_virsh.8*
+
+%package vmware
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for VMWare with VI Perl Toolkit or vmrun
+%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
+Requires: python3-pexpect
+%else
+Requires: pexpect
+%endif
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description vmware
+Fence agent for VMWare accessed with VI Perl Toolkit or vmrun.
+%files vmware
+%{_sbindir}/fence_vmware
+%{_mandir}/man8/fence_vmware.8*
+
+%package vmware-rest
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for VMWare with REST API
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+Obsoletes: fence-agents
+%description vmware-rest
+Fence agent for VMWare with REST API.
+%files vmware-rest
+%{_sbindir}/fence_vmware_rest
+%{_mandir}/man8/fence_vmware_rest.8*
+
+%package vmware-soap
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for VMWare with SOAP API v4.1+
+%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
+Requires: python3-suds
+%else
+Requires: python-suds
+%endif
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description vmware-soap
+Fence agent for VMWare with SOAP API v4.1+.
+%files vmware-soap
+%{_sbindir}/fence_vmware_soap
+%{_mandir}/man8/fence_vmware_soap.8*
+
+%package vmware-vcloud
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for VMWare vCloud Director
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+Obsoletes: fence-agents
+%description vmware-vcloud
+Fence agent for VMWare vCloud Director.
+%files vmware-vcloud
+%{_sbindir}/fence_vmware_vcloud
+%{_mandir}/man8/fence_vmware_vcloud.8*
+
+%package wti
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for WTI Network power switches
+Requires: telnet openssh-clients
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description wti
+Fence agent for WTI network power switches that are accessed
+via telnet or SSH.
+%files wti
+%{_sbindir}/fence_wti
+%{_mandir}/man8/fence_wti.8*
+
+%package xenapi
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for Citrix XenServer over XenAPI
+%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
+Requires: python3-pexpect
+%else
+Requires: pexpect
+%endif
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description xenapi
+Fence agent for Citrix XenServer accessed over XenAPI.
+%files xenapi
+%{_sbindir}/fence_xenapi
+%{_datadir}/fence/XenAPI.py*
+%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7
+%{_datadir}/fence/__pycache__/XenAPI.*
+%endif
+%{_mandir}/man8/fence_xenapi.8*
+
+%package zvm
+License: GPLv2+ and LGPLv2+
+Summary: Fence agent for IBM z/VM over IP
+Requires: fence-agents-common = %{version}-%{release}
+BuildArch: noarch
+%description zvm
+Fence agent for IBM z/VM over IP.
+%files zvm
+%{_sbindir}/fence_zvmip
+%{_mandir}/man8/fence_zvmip.8*
+
+%changelog
+* @date@ Autotools generated version <nobody@nowhere.org> - @version@-@specver@-@numcomm@.@alphatag@.@dirty@
+- Autotools generated version
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Thu, Feb 27, 5:03 AM (1 d, 20 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1466191
Default Alt Text
(48 KB)
Attached To
Mode
rF Fence Agents
Attached
Detach File
Event Timeline
Log In to Comment