diff --git a/.gitignore b/.gitignore index 70cfca50..8ae92388 100644 --- a/.gitignore +++ b/.gitignore @@ -1,56 +1,56 @@ *.orig *.rej *.swp Makefile.in aclocal.m4 autoconf autoheader autom4te.cache automake autoscan.log compile configure configure.scan config.guess config.log config.sub config.status Makefile depcomp install-sh libtoolize ltmain.sh libtool make/stamp-h1 # ignore "libtoolized" m4 files, but keep our (enumerated) ones /m4/* !/m4/ac_python_module.m4 # make/release.mk related litter /.tarball-version /tag-* make/clusterautoconfig.h* missing *.pc .deps .libs *.o *.la *.lo -fence/agents/lib/*.py* -!fence/agents/lib/*.py.py -!fence/agents/lib/check_used_options.py -fence/agents/*/fence_* -fence/agents/*/.dirstamp -!fence/agents/*/fence_*.py -!fence/agents/*/fence_*.c -!fence/agents/*/fence_*.h -!fence/agents/kdump/fence_kdump_send.8 -!fence/agents/manual/fence_ack_manual.8 -!fence/agents/zvm/fence_zvm_man_page +lib/*.py* +!lib/*.py.py +!lib/check_used_options.py +agents/*/fence_* +agents/*/.dirstamp +!agents/*/fence_*.py +!agents/*/fence_*.c +!agents/*/fence_*.h +!agents/kdump/fence_kdump_send.8 +!agents/manual/fence_ack_manual.8 +!agents/zvm/fence_zvm_man_page .fence*.tmp fence-agents* .version tests/devices.d/* diff --git a/.travis.yml b/.travis.yml index df9e5995..6aa799eb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,44 +1,44 @@ language: python sudo: required dist: trusty python: - "2.7" addons: apt: packages: - python-pexpect - xsltproc - time - libpam0g-dev - libxml2-utils - libcimcclient0-dev - swig - iputils-ping before_install: - pip install suds - pip install pycurl - pip install requests - pip install pexpect - pip install boto3 - pip install google-api-python-client before_script: - wget https://github.com/Openwsman/openwsman/archive/v2.6.3.tar.gz - tar zxvf v2.6.3.tar.gz - cd openwsman-2.6.3 - perl -p -i -e "s/(\\$\{CURL_LIBRARIES\})/\1 ssl crypto/g" src/lib/CMakeLists.txt - mkdir build && cd build - cmake .. -DPYTHON_EXECUTABLE:FILEPATH=~/virtualenv/python2.7/bin/python -DLIB=/lib/x86_64-linux-gnu -DCMAKE_LIBRARY_ARCHITECTURE=x86_64-linux-gnu -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_VERBOSE_MAKEFILE=TRUE - make - sudo make install - cd ../.. script: - ./autogen.sh - ./configure - make -j4 - make -j4 check - - PYTHONPATH=fence/agents/lib python fence/agents/lib/tests/test_fencing.py + - PYTHONPATH=lib python lib/tests/test_fencing.py diff --git a/Makefile.am b/Makefile.am index 4560002d..c90ce752 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,47 +1,47 @@ 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 ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = fence/agents/lib fence doc +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)) diff --git a/fence/agents/Makefile.am b/agents/Makefile.am similarity index 80% rename from fence/agents/Makefile.am rename to agents/Makefile.am index 8feff038..2524a3ab 100644 --- a/fence/agents/Makefile.am +++ b/agents/Makefile.am @@ -1,108 +1,108 @@ 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) 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 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 zvm_fence_zvm_SOURCES = zvm/fence_zvm.c zvm_fence_zvm_CFLAGS = -D_GNU_SOURCE -Izvm 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' \ > $@ 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)/fence/agents/lib/fence2man.xsl +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)/fence/agents/lib/metadata.rng $(@D)/.$(@F).tmp && \ - xsltproc $(top_srcdir)/fence/agents/lib/fence2man.xsl $(@D)/.$(@F).tmp > $@ - xsltproc $(top_srcdir)/fence/agents/lib/fence2wiki.xsl $(@D)/.$(@F).tmp | grep -v ' $(@D)/$(@F:%.8=%.wiki) + 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 ' $(@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)/fence/agents/zvm/fence_zvm_man_page $(@D)/fence_zvm.8 + 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_srcdir)/lib:$(abs_builddir)/lib /usr/bin/time -p \ + 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_srcdir)/lib:$(abs_builddir)/lib /usr/bin/time -p \ + 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/fence/agents/alom/fence_alom.py b/agents/alom/fence_alom.py similarity index 100% rename from fence/agents/alom/fence_alom.py rename to agents/alom/fence_alom.py diff --git a/fence/agents/amt/fence_amt.py b/agents/amt/fence_amt.py similarity index 100% rename from fence/agents/amt/fence_amt.py rename to agents/amt/fence_amt.py diff --git a/fence/agents/amt_ws/fence_amt_ws.py b/agents/amt_ws/fence_amt_ws.py similarity index 100% rename from fence/agents/amt_ws/fence_amt_ws.py rename to agents/amt_ws/fence_amt_ws.py diff --git a/fence/agents/apc/fence_apc.py b/agents/apc/fence_apc.py similarity index 100% rename from fence/agents/apc/fence_apc.py rename to agents/apc/fence_apc.py diff --git a/fence/agents/apc_snmp/README b/agents/apc_snmp/README similarity index 100% rename from fence/agents/apc_snmp/README rename to agents/apc_snmp/README diff --git a/fence/agents/apc_snmp/fence_apc_snmp.py b/agents/apc_snmp/fence_apc_snmp.py similarity index 100% rename from fence/agents/apc_snmp/fence_apc_snmp.py rename to agents/apc_snmp/fence_apc_snmp.py diff --git a/fence/agents/apc_snmp/powernet369.mib b/agents/apc_snmp/powernet369.mib similarity index 100% rename from fence/agents/apc_snmp/powernet369.mib rename to agents/apc_snmp/powernet369.mib diff --git a/fence/agents/autodetect/a.py b/agents/autodetect/a.py similarity index 100% rename from fence/agents/autodetect/a.py rename to agents/autodetect/a.py diff --git a/fence/agents/autodetect/autodetect.py b/agents/autodetect/autodetect.py similarity index 100% rename from fence/agents/autodetect/autodetect.py rename to agents/autodetect/autodetect.py diff --git a/fence/agents/autodetect/autodetect_test.py b/agents/autodetect/autodetect_test.py similarity index 100% rename from fence/agents/autodetect/autodetect_test.py rename to agents/autodetect/autodetect_test.py diff --git a/fence/agents/autodetect/b.py b/agents/autodetect/b.py similarity index 100% rename from fence/agents/autodetect/b.py rename to agents/autodetect/b.py diff --git a/fence/agents/autodetect/fence_apc.py b/agents/autodetect/fence_apc.py similarity index 100% rename from fence/agents/autodetect/fence_apc.py rename to agents/autodetect/fence_apc.py diff --git a/fence/agents/autodetect/fence_bladecenter.py b/agents/autodetect/fence_bladecenter.py similarity index 100% rename from fence/agents/autodetect/fence_bladecenter.py rename to agents/autodetect/fence_bladecenter.py diff --git a/fence/agents/autodetect/fence_brocade.py b/agents/autodetect/fence_brocade.py similarity index 100% rename from fence/agents/autodetect/fence_brocade.py rename to agents/autodetect/fence_brocade.py diff --git a/fence/agents/autodetect/fence_ilo_moonshot.py b/agents/autodetect/fence_ilo_moonshot.py similarity index 100% rename from fence/agents/autodetect/fence_ilo_moonshot.py rename to agents/autodetect/fence_ilo_moonshot.py diff --git a/fence/agents/autodetect/fence_lpar.py b/agents/autodetect/fence_lpar.py similarity index 100% rename from fence/agents/autodetect/fence_lpar.py rename to agents/autodetect/fence_lpar.py diff --git a/fence/agents/autodetect/fencing.py b/agents/autodetect/fencing.py similarity index 100% rename from fence/agents/autodetect/fencing.py rename to agents/autodetect/fencing.py diff --git a/fence/agents/aws/fence_aws.py b/agents/aws/fence_aws.py similarity index 100% rename from fence/agents/aws/fence_aws.py rename to agents/aws/fence_aws.py diff --git a/fence/agents/azure_arm/fence_azure_arm.py b/agents/azure_arm/fence_azure_arm.py similarity index 100% rename from fence/agents/azure_arm/fence_azure_arm.py rename to agents/azure_arm/fence_azure_arm.py diff --git a/fence/agents/bladecenter/fence_bladecenter.py b/agents/bladecenter/fence_bladecenter.py similarity index 100% rename from fence/agents/bladecenter/fence_bladecenter.py rename to agents/bladecenter/fence_bladecenter.py diff --git a/fence/agents/brocade/fence_brocade.py b/agents/brocade/fence_brocade.py similarity index 100% rename from fence/agents/brocade/fence_brocade.py rename to agents/brocade/fence_brocade.py diff --git a/fence/agents/cisco_mds/fence_cisco_mds.py b/agents/cisco_mds/fence_cisco_mds.py similarity index 100% rename from fence/agents/cisco_mds/fence_cisco_mds.py rename to agents/cisco_mds/fence_cisco_mds.py diff --git a/fence/agents/cisco_ucs/fence_cisco_ucs.py b/agents/cisco_ucs/fence_cisco_ucs.py similarity index 100% rename from fence/agents/cisco_ucs/fence_cisco_ucs.py rename to agents/cisco_ucs/fence_cisco_ucs.py diff --git a/fence/agents/compute/fence_compute.py b/agents/compute/fence_compute.py similarity index 100% rename from fence/agents/compute/fence_compute.py rename to agents/compute/fence_compute.py diff --git a/fence/agents/docker/fence_docker.py b/agents/docker/fence_docker.py similarity index 100% rename from fence/agents/docker/fence_docker.py rename to agents/docker/fence_docker.py diff --git a/fence/agents/drac/fence_drac.py b/agents/drac/fence_drac.py similarity index 100% rename from fence/agents/drac/fence_drac.py rename to agents/drac/fence_drac.py diff --git a/fence/agents/drac5/fence_drac5.py b/agents/drac5/fence_drac5.py similarity index 100% rename from fence/agents/drac5/fence_drac5.py rename to agents/drac5/fence_drac5.py diff --git a/fence/agents/dummy/fence_dummy.py b/agents/dummy/fence_dummy.py similarity index 100% rename from fence/agents/dummy/fence_dummy.py rename to agents/dummy/fence_dummy.py diff --git a/fence/agents/eaton_snmp/README b/agents/eaton_snmp/README similarity index 100% rename from fence/agents/eaton_snmp/README rename to agents/eaton_snmp/README diff --git a/fence/agents/eaton_snmp/fence_eaton_snmp.py b/agents/eaton_snmp/fence_eaton_snmp.py similarity index 100% rename from fence/agents/eaton_snmp/fence_eaton_snmp.py rename to agents/eaton_snmp/fence_eaton_snmp.py diff --git a/fence/agents/emerson/fence_emerson.py b/agents/emerson/fence_emerson.py similarity index 100% rename from fence/agents/emerson/fence_emerson.py rename to agents/emerson/fence_emerson.py diff --git a/fence/agents/eps/fence_eps.py b/agents/eps/fence_eps.py similarity index 100% rename from fence/agents/eps/fence_eps.py rename to agents/eps/fence_eps.py diff --git a/fence/agents/evacuate/fence_evacuate.py b/agents/evacuate/fence_evacuate.py similarity index 100% rename from fence/agents/evacuate/fence_evacuate.py rename to agents/evacuate/fence_evacuate.py diff --git a/fence/agents/gce/fence_gce.py b/agents/gce/fence_gce.py similarity index 100% rename from fence/agents/gce/fence_gce.py rename to agents/gce/fence_gce.py diff --git a/fence/agents/hds_cb/fence_hds_cb.py b/agents/hds_cb/fence_hds_cb.py similarity index 100% rename from fence/agents/hds_cb/fence_hds_cb.py rename to agents/hds_cb/fence_hds_cb.py diff --git a/fence/agents/heuristics_ping/fence_heuristics_ping.py b/agents/heuristics_ping/fence_heuristics_ping.py similarity index 100% rename from fence/agents/heuristics_ping/fence_heuristics_ping.py rename to agents/heuristics_ping/fence_heuristics_ping.py diff --git a/fence/agents/hpblade/fence_hpblade.py b/agents/hpblade/fence_hpblade.py similarity index 100% rename from fence/agents/hpblade/fence_hpblade.py rename to agents/hpblade/fence_hpblade.py diff --git a/fence/agents/ibmblade/fence_ibmblade.py b/agents/ibmblade/fence_ibmblade.py similarity index 100% rename from fence/agents/ibmblade/fence_ibmblade.py rename to agents/ibmblade/fence_ibmblade.py diff --git a/fence/agents/ifmib/README b/agents/ifmib/README similarity index 100% rename from fence/agents/ifmib/README rename to agents/ifmib/README diff --git a/fence/agents/ifmib/fence_ifmib.py b/agents/ifmib/fence_ifmib.py similarity index 100% rename from fence/agents/ifmib/fence_ifmib.py rename to agents/ifmib/fence_ifmib.py diff --git a/fence/agents/ilo/fence_ilo.py b/agents/ilo/fence_ilo.py similarity index 100% rename from fence/agents/ilo/fence_ilo.py rename to agents/ilo/fence_ilo.py diff --git a/fence/agents/ilo_moonshot/fence_ilo_moonshot.py b/agents/ilo_moonshot/fence_ilo_moonshot.py similarity index 100% rename from fence/agents/ilo_moonshot/fence_ilo_moonshot.py rename to agents/ilo_moonshot/fence_ilo_moonshot.py diff --git a/fence/agents/ilo_mp/fence_ilo_mp.py b/agents/ilo_mp/fence_ilo_mp.py similarity index 100% rename from fence/agents/ilo_mp/fence_ilo_mp.py rename to agents/ilo_mp/fence_ilo_mp.py diff --git a/fence/agents/ilo_ssh/fence_ilo_ssh.py b/agents/ilo_ssh/fence_ilo_ssh.py similarity index 100% rename from fence/agents/ilo_ssh/fence_ilo_ssh.py rename to agents/ilo_ssh/fence_ilo_ssh.py diff --git a/fence/agents/intelmodular/fence_intelmodular.py b/agents/intelmodular/fence_intelmodular.py similarity index 100% rename from fence/agents/intelmodular/fence_intelmodular.py rename to agents/intelmodular/fence_intelmodular.py diff --git a/fence/agents/ipdu/fence_ipdu.py b/agents/ipdu/fence_ipdu.py similarity index 100% rename from fence/agents/ipdu/fence_ipdu.py rename to agents/ipdu/fence_ipdu.py diff --git a/fence/agents/ipmilan/fence_ipmilan.py b/agents/ipmilan/fence_ipmilan.py similarity index 100% rename from fence/agents/ipmilan/fence_ipmilan.py rename to agents/ipmilan/fence_ipmilan.py diff --git a/fence/agents/ironic/fence_ironic.py b/agents/ironic/fence_ironic.py similarity index 100% rename from fence/agents/ironic/fence_ironic.py rename to agents/ironic/fence_ironic.py diff --git a/fence/agents/kdump/fence_kdump.c b/agents/kdump/fence_kdump.c similarity index 100% rename from fence/agents/kdump/fence_kdump.c rename to agents/kdump/fence_kdump.c diff --git a/fence/agents/kdump/fence_kdump_send.8 b/agents/kdump/fence_kdump_send.8 similarity index 100% rename from fence/agents/kdump/fence_kdump_send.8 rename to agents/kdump/fence_kdump_send.8 diff --git a/fence/agents/kdump/fence_kdump_send.c b/agents/kdump/fence_kdump_send.c similarity index 100% rename from fence/agents/kdump/fence_kdump_send.c rename to agents/kdump/fence_kdump_send.c diff --git a/fence/agents/kdump/list.h b/agents/kdump/list.h similarity index 100% rename from fence/agents/kdump/list.h rename to agents/kdump/list.h diff --git a/fence/agents/kdump/message.h b/agents/kdump/message.h similarity index 100% rename from fence/agents/kdump/message.h rename to agents/kdump/message.h diff --git a/fence/agents/kdump/options.h b/agents/kdump/options.h similarity index 100% rename from fence/agents/kdump/options.h rename to agents/kdump/options.h diff --git a/fence/agents/kdump/version.h b/agents/kdump/version.h similarity index 100% rename from fence/agents/kdump/version.h rename to agents/kdump/version.h diff --git a/fence/agents/ldom/fence_ldom.py b/agents/ldom/fence_ldom.py similarity index 100% rename from fence/agents/ldom/fence_ldom.py rename to agents/ldom/fence_ldom.py diff --git a/fence/agents/lpar/fence_lpar.py b/agents/lpar/fence_lpar.py similarity index 100% rename from fence/agents/lpar/fence_lpar.py rename to agents/lpar/fence_lpar.py diff --git a/fence/agents/manual/fence_ack_manual.8 b/agents/manual/fence_ack_manual.8 similarity index 100% rename from fence/agents/manual/fence_ack_manual.8 rename to agents/manual/fence_ack_manual.8 diff --git a/fence/agents/manual/fence_ack_manual.in b/agents/manual/fence_ack_manual.in similarity index 100% rename from fence/agents/manual/fence_ack_manual.in rename to agents/manual/fence_ack_manual.in diff --git a/fence/agents/mpath/fence_mpath.py b/agents/mpath/fence_mpath.py similarity index 100% rename from fence/agents/mpath/fence_mpath.py rename to agents/mpath/fence_mpath.py diff --git a/fence/agents/netio/fence_netio.py b/agents/netio/fence_netio.py similarity index 100% rename from fence/agents/netio/fence_netio.py rename to agents/netio/fence_netio.py diff --git a/fence/agents/ovh/fence_ovh.py b/agents/ovh/fence_ovh.py similarity index 100% rename from fence/agents/ovh/fence_ovh.py rename to agents/ovh/fence_ovh.py diff --git a/fence/agents/powerman/fence_powerman.py b/agents/powerman/fence_powerman.py similarity index 100% rename from fence/agents/powerman/fence_powerman.py rename to agents/powerman/fence_powerman.py diff --git a/fence/agents/pve/fence_pve.py b/agents/pve/fence_pve.py similarity index 100% rename from fence/agents/pve/fence_pve.py rename to agents/pve/fence_pve.py diff --git a/fence/agents/raritan/fence_raritan.py b/agents/raritan/fence_raritan.py similarity index 100% rename from fence/agents/raritan/fence_raritan.py rename to agents/raritan/fence_raritan.py diff --git a/fence/agents/rcd_serial/fence_rcd_serial.py b/agents/rcd_serial/fence_rcd_serial.py similarity index 100% rename from fence/agents/rcd_serial/fence_rcd_serial.py rename to agents/rcd_serial/fence_rcd_serial.py diff --git a/fence/agents/rcd_serial/rcd_serial_cable_diagram.svg b/agents/rcd_serial/rcd_serial_cable_diagram.svg similarity index 100% rename from fence/agents/rcd_serial/rcd_serial_cable_diagram.svg rename to agents/rcd_serial/rcd_serial_cable_diagram.svg diff --git a/fence/agents/rhevm/fence_rhevm.py b/agents/rhevm/fence_rhevm.py similarity index 100% rename from fence/agents/rhevm/fence_rhevm.py rename to agents/rhevm/fence_rhevm.py diff --git a/fence/agents/rsa/fence_rsa.py b/agents/rsa/fence_rsa.py similarity index 100% rename from fence/agents/rsa/fence_rsa.py rename to agents/rsa/fence_rsa.py diff --git a/fence/agents/rsb/fence_rsb.py b/agents/rsb/fence_rsb.py similarity index 100% rename from fence/agents/rsb/fence_rsb.py rename to agents/rsb/fence_rsb.py diff --git a/fence/agents/sanbox2/fence_sanbox2.py b/agents/sanbox2/fence_sanbox2.py similarity index 100% rename from fence/agents/sanbox2/fence_sanbox2.py rename to agents/sanbox2/fence_sanbox2.py diff --git a/fence/agents/sbd/fence_sbd.py b/agents/sbd/fence_sbd.py similarity index 100% rename from fence/agents/sbd/fence_sbd.py rename to agents/sbd/fence_sbd.py diff --git a/fence/agents/scsi/fence_scsi.py b/agents/scsi/fence_scsi.py similarity index 100% rename from fence/agents/scsi/fence_scsi.py rename to agents/scsi/fence_scsi.py diff --git a/fence/agents/vbox/fence_vbox.py b/agents/vbox/fence_vbox.py similarity index 100% rename from fence/agents/vbox/fence_vbox.py rename to agents/vbox/fence_vbox.py diff --git a/fence/agents/virsh/fence_virsh.py b/agents/virsh/fence_virsh.py similarity index 100% rename from fence/agents/virsh/fence_virsh.py rename to agents/virsh/fence_virsh.py diff --git a/fence/agents/vmware/fence_vmware.py b/agents/vmware/fence_vmware.py similarity index 100% rename from fence/agents/vmware/fence_vmware.py rename to agents/vmware/fence_vmware.py diff --git a/fence/agents/vmware/fence_vmware_helper.pl b/agents/vmware/fence_vmware_helper.pl similarity index 100% rename from fence/agents/vmware/fence_vmware_helper.pl rename to agents/vmware/fence_vmware_helper.pl diff --git a/fence/agents/vmware_rest/fence_vmware_rest.py b/agents/vmware_rest/fence_vmware_rest.py similarity index 100% rename from fence/agents/vmware_rest/fence_vmware_rest.py rename to agents/vmware_rest/fence_vmware_rest.py diff --git a/fence/agents/vmware_soap/fence_vmware_soap.py b/agents/vmware_soap/fence_vmware_soap.py similarity index 100% rename from fence/agents/vmware_soap/fence_vmware_soap.py rename to agents/vmware_soap/fence_vmware_soap.py diff --git a/fence/agents/vmware_vcloud/fence_vmware_vcloud.py b/agents/vmware_vcloud/fence_vmware_vcloud.py similarity index 100% rename from fence/agents/vmware_vcloud/fence_vmware_vcloud.py rename to agents/vmware_vcloud/fence_vmware_vcloud.py diff --git a/fence/agents/wti/fence_wti.py b/agents/wti/fence_wti.py similarity index 100% rename from fence/agents/wti/fence_wti.py rename to agents/wti/fence_wti.py diff --git a/fence/agents/xenapi/fence_xenapi.py b/agents/xenapi/fence_xenapi.py similarity index 100% rename from fence/agents/xenapi/fence_xenapi.py rename to agents/xenapi/fence_xenapi.py diff --git a/fence/agents/zvm/fence_zvm.c b/agents/zvm/fence_zvm.c similarity index 100% rename from fence/agents/zvm/fence_zvm.c rename to agents/zvm/fence_zvm.c diff --git a/fence/agents/zvm/fence_zvm.h b/agents/zvm/fence_zvm.h similarity index 100% rename from fence/agents/zvm/fence_zvm.h rename to agents/zvm/fence_zvm.h diff --git a/fence/agents/zvm/fence_zvm_man_page b/agents/zvm/fence_zvm_man_page similarity index 100% rename from fence/agents/zvm/fence_zvm_man_page rename to agents/zvm/fence_zvm_man_page diff --git a/fence/agents/zvm/fence_zvmip.c b/agents/zvm/fence_zvmip.c similarity index 100% rename from fence/agents/zvm/fence_zvmip.c rename to agents/zvm/fence_zvmip.c diff --git a/fence/agents/zvm/fence_zvmip.py b/agents/zvm/fence_zvmip.py similarity index 100% rename from fence/agents/zvm/fence_zvmip.py rename to agents/zvm/fence_zvmip.py diff --git a/configure.ac b/configure.ac index de39137f..ac1bc1f0 100644 --- a/configure.ac +++ b/configure.ac @@ -1,384 +1,383 @@ # 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]) 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([fence/agents/lib/fencing.py.py]) +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_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 fence/agents/$j/fence_$j*.py; then + 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/fence/agents -mindepth 2 -maxdepth 2 -name 'fence_*.py' -print0 | xargs -0 | sed -e 's#[^ ]*/fence/agents/##g' -e 's#lib/[A-Za-z_.]* ##g' -e 's#nss_wrapper/[A-Za-z_.]* ##g' -e 's#autodetect/[A-Za-z_.]* ##g'` + 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) 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 ## 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_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-upload]) AC_CONFIG_FILES([Makefile - fence/Makefile - fence/agents/Makefile - fence/agents/lib/Makefile + agents/Makefile + lib/Makefile doc/Makefile]) AC_OUTPUT diff --git a/doc/COPYRIGHT b/doc/COPYRIGHT index 49f88c61..0c6d6568 100644 --- a/doc/COPYRIGHT +++ b/doc/COPYRIGHT @@ -1,74 +1,74 @@ Unless specified otherwise in the "exceptions section" below: Copyright (C) 1997-2003 Sistina Software, Inc. All rights reserved. Copyright (C) 2004-2011 Red Hat, Inc. All rights reserved. Exceptions: -fence/agents/hds_cb/*: +agents/hds_cb/*: Copyright (C) 2012 Matthew Clark. Author: Matthew Clark -fence/agents/xenapi/*: +agents/xenapi/*: Copyright (C) 2011 Matthew Clark. Author: Matthew Clark -fence/agents/apc_snmp/powernet369.mib: +agents/apc_snmp/powernet369.mib: Copyright (c) 2005 American Power Conversion, Inc. PowerNet is a Trademark of American Power Conversion Corp. -fence/agents/eaton_snmp/fence_eaton_snmp.py: +agents/eaton_snmp/fence_eaton_snmp.py: Copyright (c) 2011 eaton.com Author: Arnaud Quette -fence/agents/ifmib/fence_ifmib.py: +agents/ifmib/fence_ifmib.py: Copyright (C) 2008-2011 Ross Vandegrift. Written by Ross Vandegrift -fence/agents/intelmodular/fence_intelmodular.pl: +agents/intelmodular/fence_intelmodular.pl: Contributed by Matthew Kent -fence/agents/ipmilan/expect.{c,h}: +agents/ipmilan/expect.{c,h}: Copyright (C) 2000 Alan Robertson -fence/agents/node_assassin/* +agents/node_assassin/* Copyright (C) 2009-2011 Madison Kelly/Alteeve's Niche! Author: Digimer -fence/man/fence_ifmib.8: +man/fence_ifmib.8: Copyright (C) 2008-2011 Ross Vandegrift. Written by Ross Vandegrift Authors as known by current RCS as of the time of writing: Abhijith Das Adam Manthei A. J. Lewis Alasdair G. Kergon Andrew Price Benjamin Marzinski Bob Peterson Chris Feist Christine Caulfield Daniel Phillips David Teigland Fabio M. Di Nitto James Parsons Joel Becker Jonathan Brassow jparsons Ken Preslan Klaus Wenninger Lon Hohberger Marc - A. Dahlhaus Marek 'marx' Grac Mark Hlawatschek Michael Conrad Tadpol Tilstra Patrick Caulfield Robert Peterson Ross Vandegrift Ryan McCabe Ryan O'Hara Stanko Kupcevic Steven Whitehouse Wendy Cheng diff --git a/fence/Makefile.am b/fence/Makefile.am deleted file mode 100644 index 43fc1a00..00000000 --- a/fence/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in - -SUBDIRS = agents diff --git a/fence/agents/lib/Makefile.am b/lib/Makefile.am similarity index 100% rename from fence/agents/lib/Makefile.am rename to lib/Makefile.am diff --git a/fence/agents/lib/XenAPI.py.py b/lib/XenAPI.py.py similarity index 100% rename from fence/agents/lib/XenAPI.py.py rename to lib/XenAPI.py.py diff --git a/fence/agents/lib/azure_fence.py.py b/lib/azure_fence.py.py similarity index 100% rename from fence/agents/lib/azure_fence.py.py rename to lib/azure_fence.py.py diff --git a/fence/agents/lib/check_used_options.py b/lib/check_used_options.py similarity index 100% rename from fence/agents/lib/check_used_options.py rename to lib/check_used_options.py diff --git a/fence/agents/lib/fence.rng.head b/lib/fence.rng.head similarity index 100% rename from fence/agents/lib/fence.rng.head rename to lib/fence.rng.head diff --git a/fence/agents/lib/fence.rng.tail b/lib/fence.rng.tail similarity index 100% rename from fence/agents/lib/fence.rng.tail rename to lib/fence.rng.tail diff --git a/fence/agents/lib/fence2man.xsl b/lib/fence2man.xsl similarity index 100% rename from fence/agents/lib/fence2man.xsl rename to lib/fence2man.xsl diff --git a/fence/agents/lib/fence2rng.xsl b/lib/fence2rng.xsl similarity index 100% rename from fence/agents/lib/fence2rng.xsl rename to lib/fence2rng.xsl diff --git a/fence/agents/lib/fence2wiki.xsl b/lib/fence2wiki.xsl similarity index 100% rename from fence/agents/lib/fence2wiki.xsl rename to lib/fence2wiki.xsl diff --git a/fence/agents/lib/fencing.py.py b/lib/fencing.py.py similarity index 100% rename from fence/agents/lib/fencing.py.py rename to lib/fencing.py.py diff --git a/fence/agents/lib/fencing_snmp.py.py b/lib/fencing_snmp.py.py similarity index 100% rename from fence/agents/lib/fencing_snmp.py.py rename to lib/fencing_snmp.py.py diff --git a/fence/agents/lib/metadata.rng b/lib/metadata.rng similarity index 100% rename from fence/agents/lib/metadata.rng rename to lib/metadata.rng diff --git a/fence/agents/lib/tests/test_fencing.py b/lib/tests/test_fencing.py similarity index 100% rename from fence/agents/lib/tests/test_fencing.py rename to lib/tests/test_fencing.py diff --git a/make/agentpycheck.mk b/make/agentpycheck.mk index 8d05a758..efde0119 100644 --- a/make/agentpycheck.mk +++ b/make/agentpycheck.mk @@ -1,42 +1,42 @@ DATADIR:=$(abs_top_srcdir)/tests/data/metadata AWK_VAL='BEGIN {store=-1} /name=\".*_path\"/ {store=2} {if (store!=0) {print}; store--}' TEST_TARGET=$(filter-out $(TEST_TARGET_SKIP),$(TARGET)) check: $(TEST_TARGET:%=%.xml-check) $(SYMTARGET:%=%.xml-check) $(TEST_TARGET:%=%.delay-check) $(TEST_TARGET:%=%.rng-check) xml-upload: $(TEST_TARGET:%=%.xml-upload) $(SYMTARGET:%=%.xml-upload) %.xml-check: % $(eval INPUT=$(subst .xml-check,,$(@F))) - for x in $(INPUT) `PYTHONPATH=$(abs_srcdir)/lib:$(abs_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 $(PYTHON) $(@D)/$(INPUT) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \ TEMPFILE=$$(mktemp); \ - PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $(@D)/$$x -o metadata | $(AWK) $(AWK_VAL) > $$TEMPFILE && \ + PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(@D)/$$x -o metadata | $(AWK) $(AWK_VAL) > $$TEMPFILE && \ diff $$TEMPFILE $(DATADIR)/$$x.xml && \ rm $$TEMPFILE; \ done %.xml-upload: % $(eval INPUT=$(subst .xml-upload,,$(@F))) - for x in $(INPUT) `PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $(@D)/$(INPUT) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \ - PYTHONPATH=$(abs_srcdir)/lib:$(abs_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 $(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; \ 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_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $(@D)/$(INPUT) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \ - test `PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib /usr/bin/time -p \ + 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 \ 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_srcdir)/lib:$(abs_builddir)/lib /usr/bin/time -p \ + PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib /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_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $(@D)/$(INPUT) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \ - PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $(@D)/$$x -o metadata | \ - xsltproc ${abs_top_srcdir}/fence/agents/lib/fence2rng.xsl - | \ + 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 | \ + xsltproc ${abs_top_srcdir}/lib/fence2rng.xsl - | \ sed -e 's/ rha:description=/ description=/g' -e 's/ rha:name=/ name=/g' | \ xmllint --nsclean --noout -; \ done diff --git a/make/fencebuild.mk b/make/fencebuild.mk index 139cedf9..e08d5200 100644 --- a/make/fencebuild.mk +++ b/make/fencebuild.mk @@ -1,85 +1,85 @@ define gen_agent_from_py mkdir -p `dirname $@` cat $(abs_srcdir)/$@.py | \ sed \ -e 's#@''PYTHON@#${PYTHON}#g' \ -e 's#@''RELEASE_VERSION@#${VERSION}#g' \ -e 's#@''FENCEAGENTSLIBDIR@#${FENCEAGENTSLIBDIR}#g' \ -e 's#@''LOGDIR@#${LOGDIR}#g' \ -e 's#@''SBINDIR@#${sbindir}#g' \ -e 's#@''LIBEXECDIR@#${libexecdir}#g' \ -e 's#@''IPMITOOL_PATH@#${IPMITOOL_PATH}#g' \ -e 's#@''OPENSTACK_PATH@#${OPENSTACK_PATH}#g' \ -e 's#@''AMTTOOL_PATH@#${AMTTOOL_PATH}#g' \ -e 's#@''GNUTLSCLI_PATH@#${GNUTLSCLI_PATH}#g' \ -e 's#@''COROSYNC_CMAPCTL_PATH@#${COROSYNC_CMAPCTL_PATH}#g' \ -e 's#@''SG_PERSIST_PATH@#${SG_PERSIST_PATH}#g' \ -e 's#@''SG_TURS_PATH@#${SG_TURS_PATH}#g' \ -e 's#@''VGS_PATH@#${VGS_PATH}#g' \ -e 's#@''SUDO_PATH@#${SUDO_PATH}#g' \ -e 's#@''SSH_PATH@#${SSH_PATH}#g' \ -e 's#@''TELNET_PATH@#${TELNET_PATH}#g' \ -e 's#@''MPATH_PATH@#${MPATH_PATH}#g' \ -e 's#@''SBD_PATH@#${SBD_PATH}#g' \ -e 's#@''STORE_PATH@#${CLUSTERVARRUN}#g' \ -e 's#@''SUDO_PATH@#${SUDO_PATH}#g' \ -e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \ -e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \ -e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \ -e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \ -e 's#@''POWERMAN_PATH@#${POWERMAN_PATH}#g' \ -e 's#@''PING_CMD@#${PING_CMD}#g' \ -e 's#@''PING6_CMD@#${PING6_CMD}#g' \ -e 's#@''PING4_CMD@#${PING4_CMD}#g' \ > $@ if [ 0 -eq `echo "$(@)" | grep fence_ 2>&1 /dev/null; echo $$?` ]; then \ - PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $(top_srcdir)/fence/agents/lib/check_used_options.py $@; \ + PYTHONPATH=$(abs_top_srcdir)/lib:$(abs_top_builddir)/lib $(PYTHON) $(top_srcdir)/lib/check_used_options.py $@; \ else true ; fi - for x in `PYTHONPATH=$(abs_srcdir)/lib:$(abs_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 $(PYTHON) $(@) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \ cp -f $(@) $(@D)/$$x; \ $(MAKE) $(@D)/$$x.8; \ done endef # dependency, one on one $(foreach t,$(TARGET),$(eval $(t) : $(t:=.py))) # rule $(TARGET): $(call gen_agent_from_py) clean: clean-man - rm -f $(CLEAN_TARGET:%.8=%) $(CLEAN_TARGET_ADDITIONAL) $(scsidata_SCRIPTS) */*.pyc */*.wiki + rm -f $(CLEAN_TARGET:%.8=%) $(CLEAN_TARGET_ADDITIONAL) $(scsidata_SCRIPTS) */*.pyc *.pyc */*.wiki - if [ "$(abs_builddir)" = "$(abs_top_builddir)/fence/agents/lib" ]; then \ + if [ "$(abs_builddir)" = "$(abs_top_builddir)/lib" ]; then \ rm -f $(TARGET); \ fi clean-local: clean install-exec-hook: $(TARGET) if [ -n "$(man8dir)" ]; then \ echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ fi for p in $(TARGET); do \ dir=`dirname $$p`; \ - for x in `PYTHONPATH=$(abs_srcdir)/lib:$(abs_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 $(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)'"; \ $(INSTALL_DATA) "$$dir/$$x.8" "$(DESTDIR)$(man8dir)" || exit $$?; \ done; \ done uninstall-hook: $(TARGET) files=`for p in $(TARGET); do \ - for x in \`PYTHONPATH=$(abs_srcdir)/lib:$(abs_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 $(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'"; \ rm -f "$(DESTDIR)$(man8dir)/$$x.8"; \ done; \ done` diff --git a/make/fenceman.mk b/make/fenceman.mk index d01085ed..61f22464 100644 --- a/make/fenceman.mk +++ b/make/fenceman.mk @@ -1,11 +1,11 @@ -%.8: % $(top_srcdir)/fence/agents/lib/fence2man.xsl +%.8: % $(top_srcdir)/lib/fence2man.xsl set -e && \ PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/../lib:$(abs_builddir)/lib \ $(PYTHON) $* -o manpage > $(@D)/.$(@F).tmp && \ - xmllint --noout --relaxng $(abs_srcdir)/lib/metadata.rng $(@D)/.$(@F).tmp && \ - xsltproc $(top_srcdir)/fence/agents/lib/fence2man.xsl $(@D)/.$(@F).tmp > $@ - xsltproc $(top_srcdir)/fence/agents/lib/fence2wiki.xsl $(@D)/.$(@F).tmp | grep -v ' $(@D)/$(@F:%.8=%.wiki) + 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 ' $(@D)/$(@F:%.8=%.wiki) clean-man: $(eval CLEAN_TARGET=$(shell find . -name "*.8" | grep -v "kdump/fence_kdump_send.8\|manual/fence_ack_manual.8")) rm -f $(CLEAN_TARGET) */.*.8.tmp */*.wiki diff --git a/make/fencemanc.mk b/make/fencemanc.mk index 26723670..22f49457 100644 --- a/make/fencemanc.mk +++ b/make/fencemanc.mk @@ -1,10 +1,10 @@ -%.8: % $(top_srcdir)/fence/agents/lib/fence2man.xsl +%.8: % $(top_srcdir)/lib/fence2man.xsl set -e && \ $* -o metadata > $(@D)/.$(@F).tmp && \ - xmllint --noout --relaxng $(top_srcdir)/fence/agents/lib/metadata.rng $(@D)/.$(@F).tmp && \ - xsltproc $(top_srcdir)/fence/agents/lib/fence2man.xsl $(@D)/.$(@F).tmp > $@ - xsltproc $(top_srcdir)/fence/agents/lib/fence2wiki.xsl $(@D)/.$(@F).tmp | grep -v ' $(@D)/$(@F:%.8=%.wiki) + 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 ' $(@D)/$(@F:%.8=%.wiki) clean-man: $(eval CLEAN_TARGET=$(shell find . -name "*.8" | grep -v "kdump/fence_kdump_send.8\|manual/fence_ack_manual.8")) rm -f $(CLEAN_TARGET) */.*.8.tmp */*.wiki diff --git a/make/fencemanperl.mk b/make/fencemanperl.mk index 0141aa8a..28f845a8 100644 --- a/make/fencemanperl.mk +++ b/make/fencemanperl.mk @@ -1,9 +1,9 @@ -%.8: $(TARGET) $(top_srcdir)/fence/agents/lib/fence2man.xsl +%.8: $(TARGET) $(top_srcdir)/lib/fence2man.xsl set -e && \ perl $(TARGET) -o metadata > .$@.tmp && \ - xmllint --noout --relaxng $(top_srcdir)/fence/agents/lib/metadata.rng .$@.tmp && \ - xsltproc $(top_srcdir)/fence/agents/lib/fence2man.xsl .$@.tmp > $@ - xsltproc $(top_srcdir)/fence/agents/lib/fence2wiki.xsl .$@.tmp | grep -v ' $(@:%.8=%.wiki) + xmllint --noout --relaxng $(top_srcdir)/lib/metadata.rng .$@.tmp && \ + xsltproc $(top_srcdir)/lib/fence2man.xsl .$@.tmp > $@ + xsltproc $(top_srcdir)/lib/fence2wiki.xsl .$@.tmp | grep -v ' $(@:%.8=%.wiki) clean-man: rm -f *.8 .*.8.tmp *.wiki diff --git a/tests/devices.d/dummy.cfg b/tests/devices.d/dummy.cfg index d912475b..855fbfe2 100644 --- a/tests/devices.d/dummy.cfg +++ b/tests/devices.d/dummy.cfg @@ -1,3 +1,3 @@ name = "Dummy fence device configuration" -agent = "/home/marx/GIT/fence-agents/fence/agents/dummy/fence_dummy" +agent = "/home/marx/GIT/fence-agents/agents/dummy/fence_dummy" [options]