diff --git a/.ghci b/.ghci index 8084f7e26ac06169ed8c33539cc1955c733aef3f..825dbc44eefd7299ac88daac92fb8372201ccea0 100644 --- a/.ghci +++ b/.ghci @@ -1 +1 @@ -:set -ihtools -ihtest +:set -isrc -ihtest diff --git a/.gitignore b/.gitignore index 3dd98a05d7ccc98f77e286f1fc22c30cf550d70f..e9ed7e74cb1d35a09f66921051a91dca03a0cb2e 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,10 @@ *.o *.hi *.hp +*.tix +*.prof +*.stat +.hpc/ # / /Makefile @@ -91,6 +95,9 @@ /htest/hroller /htest/hscan /htest/hspace +/htest/hpc-htools +/htest/hpc-mon-collector +/htest/test # tools /tools/kvm-ifup @@ -112,28 +119,14 @@ /scripts/gnt-network /scripts/gnt-storage -# htools-specific rules -/htools/apidoc -/htools/.hpc -/htools/coverage - -/htools/mon-collector -/htools/htools -/htools/hconfd -/htools/ganeti-confd -/htools/rpc-test -/htest/hpc-htools -/htest/hpc-mon-collector -/htest/test -/htools/*.prof* -/htools/*.stat -/htools/*.tix -/htest/*.prof* -/htest/*.stat -/htest/*.tix -/.hpc/ -/*.tix +# haskell-specific rules +/src/mon-collector +/src/htools +/src/hconfd +/src/ganeti-confd +/src/rpc-test -/htools/Ganeti/Constants.hs -/htools/Ganeti/Version.hs +# automatically-built Haskell files +/src/Ganeti/Constants.hs +/src/Ganeti/Version.hs /htest/Test/Ganeti/TestImports.hs diff --git a/Makefile.am b/Makefile.am index 16f14f6c68df59212916768c1fe2949fb2feb722..4161c18611f8b54e6c9d236fc4f5a560bcf56acf 100644 --- a/Makefile.am +++ b/Makefile.am @@ -55,16 +55,16 @@ myexeclibdir = $(pkglibdir) .DELETE_ON_ERROR: HTOOLS_DIRS = \ - htools \ - htools/Ganeti \ - htools/Ganeti/Block \ - htools/Ganeti/Block/Drbd \ - htools/Ganeti/Confd \ - htools/Ganeti/DataCollectors \ - htools/Ganeti/HTools \ - htools/Ganeti/HTools/Backend \ - htools/Ganeti/HTools/Program \ - htools/Ganeti/Query \ + src \ + src/Ganeti \ + src/Ganeti/Block \ + src/Ganeti/Block/Drbd \ + src/Ganeti/Confd \ + src/Ganeti/DataCollectors \ + src/Ganeti/HTools \ + src/Ganeti/HTools/Backend \ + src/Ganeti/HTools/Program \ + src/Ganeti/Query \ htest \ htest/Test \ htest/Test/Ganeti \ @@ -182,8 +182,8 @@ CLEANFILES = \ $(nodist_pkgpython_PYTHON) \ $(HS_ALL_PROGS) $(HS_BUILT_SRCS) \ $(HS_BUILT_TEST_HELPERS) \ - htools/ganeti-confd \ - .hpc/*.mix htools/*.tix htest/*.tix \ + src/ganeti-confd \ + .hpc/*.mix src/*.tix htest/*.tix \ doc/hs-lint.html GENERATED_FILES = \ @@ -195,7 +195,7 @@ HTOOLS_GENERATED_FILES = if WANT_HTOOLS HTOOLS_GENERATED_FILES += $(HS_PROGS) if ENABLE_CONFD -HTOOLS_GENERATED_FILES += htools/hconfd htools/ganeti-confd +HTOOLS_GENERATED_FILES += src/hconfd src/ganeti-confd endif endif @@ -408,7 +408,7 @@ docrst = \ doc/virtual-cluster.rst \ doc/walkthrough.rst -HS_PROGS = htools/htools htools/mon-collector +HS_PROGS = src/htools src/mon-collector HS_BIN_ROLES = hbal hscan hspace hinfo hcheck hroller HS_HTOOLS_PROGS = $(HS_BIN_ROLES) hail @@ -417,14 +417,14 @@ HS_ALL_PROGS = \ htest/hpc-htools \ htest/hpc-mon-collector \ htest/test \ - htools/hconfd \ - htools/rpc-test + src/hconfd \ + src/rpc-test HS_PROG_SRCS = $(patsubst %,%.hs,$(HS_ALL_PROGS)) HS_BUILT_TEST_HELPERS = $(HS_BIN_ROLES:%=htest/%) htest/hail HFLAGS = \ - -O -Wall -Werror -ihtools \ + -O -Wall -Werror -isrc \ -fwarn-monomorphism-restriction \ -fwarn-tabs \ $(GHC_BYVERSION_FLAGS) @@ -444,74 +444,74 @@ HPCEXCL = --exclude Main \ --exclude Test.Ganeti.TestHTools \ --exclude Test.Ganeti.TestHelper \ --exclude Test.Ganeti.TestImports \ - $(patsubst htools.%,--exclude Test.%,$(subst /,.,$(patsubst %.hs,%, $(HS_LIB_SRCS)))) + $(patsubst src.%,--exclude Test.%,$(subst /,.,$(patsubst %.hs,%, $(HS_LIB_SRCS)))) HS_LIB_SRCS = \ - htools/Ganeti/Block/Drbd/Types.hs \ - htools/Ganeti/Block/Drbd/Parser.hs \ - htools/Ganeti/BasicTypes.hs \ - htools/Ganeti/Common.hs \ - htools/Ganeti/Compat.hs \ - htools/Ganeti/Confd/Client.hs \ - htools/Ganeti/Confd/Server.hs \ - htools/Ganeti/Confd/Types.hs \ - htools/Ganeti/Confd/Utils.hs \ - htools/Ganeti/Config.hs \ - htools/Ganeti/Daemon.hs \ - htools/Ganeti/DataCollectors/CLI.hs \ - htools/Ganeti/DataCollectors/Drbd.hs \ - htools/Ganeti/DataCollectors/Program.hs \ - htools/Ganeti/Errors.hs \ - htools/Ganeti/HTools/Backend/IAlloc.hs \ - htools/Ganeti/HTools/Backend/Luxi.hs \ - htools/Ganeti/HTools/Backend/Rapi.hs \ - htools/Ganeti/HTools/Backend/Simu.hs \ - htools/Ganeti/HTools/Backend/Text.hs \ - htools/Ganeti/HTools/CLI.hs \ - htools/Ganeti/HTools/Cluster.hs \ - htools/Ganeti/HTools/Container.hs \ - htools/Ganeti/HTools/ExtLoader.hs \ - htools/Ganeti/HTools/Graph.hs \ - htools/Ganeti/HTools/Group.hs \ - htools/Ganeti/HTools/Instance.hs \ - htools/Ganeti/HTools/Loader.hs \ - htools/Ganeti/HTools/Node.hs \ - htools/Ganeti/HTools/PeerMap.hs \ - htools/Ganeti/HTools/Program.hs \ - htools/Ganeti/HTools/Program/Hail.hs \ - htools/Ganeti/HTools/Program/Hbal.hs \ - htools/Ganeti/HTools/Program/Hcheck.hs \ - htools/Ganeti/HTools/Program/Hinfo.hs \ - htools/Ganeti/HTools/Program/Hscan.hs \ - htools/Ganeti/HTools/Program/Hspace.hs \ - htools/Ganeti/HTools/Program/Hroller.hs \ - htools/Ganeti/HTools/Types.hs \ - htools/Ganeti/Hash.hs \ - htools/Ganeti/JQueue.hs \ - htools/Ganeti/JSON.hs \ - htools/Ganeti/Jobs.hs \ - htools/Ganeti/Logging.hs \ - htools/Ganeti/Luxi.hs \ - htools/Ganeti/Network.hs \ - htools/Ganeti/Objects.hs \ - htools/Ganeti/OpCodes.hs \ - htools/Ganeti/OpParams.hs \ - htools/Ganeti/Path.hs \ - htools/Ganeti/Query/Common.hs \ - htools/Ganeti/Query/Filter.hs \ - htools/Ganeti/Query/Group.hs \ - htools/Ganeti/Query/Job.hs \ - htools/Ganeti/Query/Language.hs \ - htools/Ganeti/Query/Node.hs \ - htools/Ganeti/Query/Query.hs \ - htools/Ganeti/Query/Server.hs \ - htools/Ganeti/Query/Types.hs \ - htools/Ganeti/Rpc.hs \ - htools/Ganeti/Runtime.hs \ - htools/Ganeti/Ssconf.hs \ - htools/Ganeti/THH.hs \ - htools/Ganeti/Types.hs \ - htools/Ganeti/Utils.hs + src/Ganeti/Block/Drbd/Types.hs \ + src/Ganeti/Block/Drbd/Parser.hs \ + src/Ganeti/BasicTypes.hs \ + src/Ganeti/Common.hs \ + src/Ganeti/Compat.hs \ + src/Ganeti/Confd/Client.hs \ + src/Ganeti/Confd/Server.hs \ + src/Ganeti/Confd/Types.hs \ + src/Ganeti/Confd/Utils.hs \ + src/Ganeti/Config.hs \ + src/Ganeti/Daemon.hs \ + src/Ganeti/DataCollectors/CLI.hs \ + src/Ganeti/DataCollectors/Drbd.hs \ + src/Ganeti/DataCollectors/Program.hs \ + src/Ganeti/Errors.hs \ + src/Ganeti/HTools/Backend/IAlloc.hs \ + src/Ganeti/HTools/Backend/Luxi.hs \ + src/Ganeti/HTools/Backend/Rapi.hs \ + src/Ganeti/HTools/Backend/Simu.hs \ + src/Ganeti/HTools/Backend/Text.hs \ + src/Ganeti/HTools/CLI.hs \ + src/Ganeti/HTools/Cluster.hs \ + src/Ganeti/HTools/Container.hs \ + src/Ganeti/HTools/ExtLoader.hs \ + src/Ganeti/HTools/Graph.hs \ + src/Ganeti/HTools/Group.hs \ + src/Ganeti/HTools/Instance.hs \ + src/Ganeti/HTools/Loader.hs \ + src/Ganeti/HTools/Node.hs \ + src/Ganeti/HTools/PeerMap.hs \ + src/Ganeti/HTools/Program.hs \ + src/Ganeti/HTools/Program/Hail.hs \ + src/Ganeti/HTools/Program/Hbal.hs \ + src/Ganeti/HTools/Program/Hcheck.hs \ + src/Ganeti/HTools/Program/Hinfo.hs \ + src/Ganeti/HTools/Program/Hscan.hs \ + src/Ganeti/HTools/Program/Hspace.hs \ + src/Ganeti/HTools/Program/Hroller.hs \ + src/Ganeti/HTools/Types.hs \ + src/Ganeti/Hash.hs \ + src/Ganeti/JQueue.hs \ + src/Ganeti/JSON.hs \ + src/Ganeti/Jobs.hs \ + src/Ganeti/Logging.hs \ + src/Ganeti/Luxi.hs \ + src/Ganeti/Network.hs \ + src/Ganeti/Objects.hs \ + src/Ganeti/OpCodes.hs \ + src/Ganeti/OpParams.hs \ + src/Ganeti/Path.hs \ + src/Ganeti/Query/Common.hs \ + src/Ganeti/Query/Filter.hs \ + src/Ganeti/Query/Group.hs \ + src/Ganeti/Query/Job.hs \ + src/Ganeti/Query/Language.hs \ + src/Ganeti/Query/Node.hs \ + src/Ganeti/Query/Query.hs \ + src/Ganeti/Query/Server.hs \ + src/Ganeti/Query/Types.hs \ + src/Ganeti/Rpc.hs \ + src/Ganeti/Runtime.hs \ + src/Ganeti/Ssconf.hs \ + src/Ganeti/THH.hs \ + src/Ganeti/Types.hs \ + src/Ganeti/Utils.hs HS_TEST_SRCS = \ htest/Test/Ganeti/Attoparsec.hs \ @@ -557,8 +557,8 @@ HS_LIBTEST_SRCS = $(HS_LIB_SRCS) $(HS_TEST_SRCS) HS_BUILT_SRCS = \ htest/Test/Ganeti/TestImports.hs \ - htools/Ganeti/Constants.hs \ - htools/Ganeti/Version.hs + src/Ganeti/Constants.hs \ + src/Ganeti/Version.hs HS_BUILT_SRCS_IN = $(patsubst %,%.in,$(HS_BUILT_SRCS)) $(RUN_IN_TEMPDIR): | stamp-directories @@ -658,7 +658,7 @@ qa_scripts = \ bin_SCRIPTS = if WANT_HTOOLS -bin_SCRIPTS += $(filter-out htools/hail,$(HS_PROGS)) +bin_SCRIPTS += $(filter-out src/hail,$(HS_PROGS)) install-exec-hook: @mkdir_p@ $(DESTDIR)$(iallocatorsdir) # FIXME: this is a hardcoded logic, instead of auto-resolving @@ -725,10 +725,10 @@ nodist_sbin_SCRIPTS = \ daemons/ganeti-cleaner if ENABLE_CONFD -htools/ganeti-confd: htools/hconfd +src/ganeti-confd: src/hconfd cp -f $< $@ -nodist_sbin_SCRIPTS += htools/ganeti-confd +nodist_sbin_SCRIPTS += src/ganeti-confd endif python_scripts = \ @@ -770,7 +770,7 @@ myexeclib_SCRIPTS = \ daemons/daemon-util \ tools/kvm-ifup \ $(pkglib_python_scripts) \ - htools/mon-collector + src/mon-collector nodist_myexeclib_SCRIPTS = \ $(nodist_pkglib_python_scripts) @@ -826,7 +826,7 @@ EXTRA_DIST = \ $(qa_scripts) \ $(HS_LIBTEST_SRCS) $(HS_BUILT_SRCS_IN) \ $(HS_PROG_SRCS) \ - htools/lint-hints.hs \ + src/lint-hints.hs \ htest/cli-tests-defs.sh \ htest/offline-test.sh \ .ghci @@ -1252,13 +1252,13 @@ regen-vcs-version: fi; \ fi -htools/Ganeti/Version.hs: htools/Ganeti/Version.hs.in \ +src/Ganeti/Version.hs: src/Ganeti/Version.hs.in \ vcs-version $(built_base_sources) set -e; \ VCSVER=`cat $(abs_top_srcdir)/vcs-version`; \ sed -e "s/%ver%/$$VCSVER/" < $< > $@ -htools/Ganeti/Constants.hs: htools/Ganeti/Constants.hs.in \ +src/Ganeti/Constants.hs: src/Ganeti/Constants.hs.in \ lib/constants.py lib/_autoconf.py lib/luxi.py lib/errors.py \ lib/jstore.py $(RUN_IN_TEMPDIR)\ $(CONVERT_CONSTANTS) $(built_base_sources) \ @@ -1273,7 +1273,7 @@ htest/Test/Ganeti/TestImports.hs: htest/Test/Ganeti/TestImports.hs.in \ set -e; \ { cat $< ; \ echo ; \ - for name in $(filter-out Ganeti.THH,$(subst /,.,$(patsubst %.hs,%,$(patsubst htools/%,%,$(HS_LIB_SRCS))))) ; do \ + for name in $(filter-out Ganeti.THH,$(subst /,.,$(patsubst %.hs,%,$(patsubst src/%,%,$(HS_LIB_SRCS))))) ; do \ echo "import $$name ()" ; \ done ; \ } > $@ @@ -1604,9 +1604,9 @@ pep8: $(GENERATED_FILES) --repeat $(pep8_python_code) # FIXME: remove ignore "Use void" when GHC 6.x is deprecated -HLINT_EXCLUDES = htools/Ganeti/THH.hs htest/hpc-htools.hs +HLINT_EXCLUDES = src/Ganeti/THH.hs htest/hpc-htools.hs .PHONY: hlint -hlint: $(HS_BUILT_SRCS) htools/lint-hints.hs +hlint: $(HS_BUILT_SRCS) src/lint-hints.hs @test -n "$(HLINT)" || { echo 'hlint' not found during configure; exit 1; } if tty -s; then C="-c"; else C=""; fi; \ $(HLINT) --utf8 --report=doc/hs-lint.html --cross $$C \ @@ -1614,7 +1614,7 @@ hlint: $(HS_BUILT_SRCS) htools/lint-hints.hs --ignore "Use &&&" \ --ignore "Use void" \ --ignore "Reduce duplication" \ - --hint htools/lint-hints \ + --hint src/lint-hints \ $(filter-out $(HLINT_EXCLUDES),$(HS_LIBTEST_SRCS) $(HS_PROG_SRCS)) # a dist hook rule for updating the vcs-version file; this is @@ -1711,7 +1711,7 @@ hs-apidoc: $(HS_BUILT_SRCS) $(LN_S) ../hscolour.css $(APIDOC_HS_DIR)/Ganeti/HTools/hscolour.css $(LN_S) ../hscolour.css $(APIDOC_HS_DIR)/Ganeti/Confd/hscolour.css set -e ; \ - cd htools; \ + cd src; \ if [ "$(HTOOLS_NOCURL)" ]; \ then OPTGHC="--optghc=$(HTOOLS_NOCURL)"; \ else OPTGHC=""; \ @@ -1722,7 +1722,7 @@ hs-apidoc: $(HS_BUILT_SRCS) if [ "$(HTOOLS_REGEX_PCRE)" ]; \ then OPTGHC="$$OPTGHC --optghc=$(HTOOLS_REGEX_PCRE)"; \ fi; \ - RELSRCS="$(HS_LIB_SRCS:htools/%=%) $(patsubst htools/%,%,$(filter htools/%,$(HS_BUILT_SRCS)))"; \ + RELSRCS="$(HS_LIB_SRCS:src/%=%) $(patsubst src/%,%,$(filter src/%,$(HS_BUILT_SRCS)))"; \ for file in $$RELSRCS; do \ hfile=`echo $$file|sed 's/\\.hs$$//'`.html; \ $(HSCOLOUR) -css -anchor $$file > ../$(APIDOC_HS_DIR)/$$hfile ; \ @@ -1732,7 +1732,7 @@ hs-apidoc: $(HS_BUILT_SRCS) --source-module="%{MODULE/.//}.html" \ --source-entity="%{MODULE/.//}.html#%{NAME}" \ $$OPTGHC \ - $(filter-out Ganeti/HTools/ExtLoader.hs,$(HS_LIB_SRCS:htools/%=%)) + $(filter-out Ganeti/HTools/ExtLoader.hs,$(HS_LIB_SRCS:src/%=%)) .PHONY: TAGS TAGS: $(GENERATED_FILES) @@ -1781,11 +1781,11 @@ hs-coverage: $(haskell_tests) htest/hpc-htools htest/hpc-mon-collector .PHONY: live-test live-test: all set -e ; \ - cd htools; \ + cd src; \ rm -f .hpc; $(LN_S) ../.hpc .hpc; \ rm -f *.tix *.mix; \ ./live-test.sh; \ - hpc sum --union $(HPCEXCL) $(addsuffix .tix,$(HS_PROGS:htools/%=%)) \ + hpc sum --union $(HPCEXCL) $(addsuffix .tix,$(HS_PROGS:src/%=%)) \ --output=live-test.tix ; \ @mkdir_p@ ../$(COVERAGE_HS_DIR) ; \ hpc markup --destdir=../$(COVERAGE_HS_DIR) live-test \ diff --git a/autotools/build-bash-completion b/autotools/build-bash-completion index 7ef48ffaaaa6e83e64f9830059165f73c5979dea..7e24db98fa58d108afbc9b0241e4673a190336d8 100755 --- a/autotools/build-bash-completion +++ b/autotools/build-bash-completion @@ -759,7 +759,7 @@ def WriteHaskellCompletion(sw, script, htools=True, debug=True): """ if htools: - cmd = "./htools/htools" + cmd = "./src/htools" env = {"HTOOLS": script} script_name = script func_name = "htools_%s" % script @@ -854,12 +854,12 @@ def main(): # ganeti-confd, if enabled if _autoconf.ENABLE_CONFD: - WriteHaskellCompletion(sw, "htools/ganeti-confd", htools=False, + WriteHaskellCompletion(sw, "src/ganeti-confd", htools=False, debug=debug) # mon-collector, if monitoring is enabled if _autoconf.ENABLE_MONITORING: - WriteHaskellCmdCompletion(sw, "htools/mon-collector", debug=debug) + WriteHaskellCmdCompletion(sw, "src/mon-collector", debug=debug) # Reset extglob to original value sw.Write("[[ -n \"$gnt_shopt_extglob\" ]] && $gnt_shopt_extglob") diff --git a/autotools/run-in-tempdir b/autotools/run-in-tempdir index 202844e8ff9815fee167b746cd49acd98fcf2bfe..86f643944bdd05228e7ff1bb3cb74700c45aee60 100755 --- a/autotools/run-in-tempdir +++ b/autotools/run-in-tempdir @@ -16,10 +16,10 @@ ln -s $PWD/doc/examples $tmpdir/doc mv $tmpdir/lib $tmpdir/ganeti ln -T -s $tmpdir/ganeti $tmpdir/lib -mkdir -p $tmpdir/htools $tmpdir/htest +mkdir -p $tmpdir/src $tmpdir/htest for hfile in htools ganeti-confd mon-collector; do - if [ -e htools/$hfile ]; then - ln -s $PWD/htools/$hfile $tmpdir/htools/ + if [ -e src/$hfile ]; then + ln -s $PWD/src/$hfile $tmpdir/src/ fi done diff --git a/doc/devnotes.rst b/doc/devnotes.rst index bf8cddfb1fc12457464d08def67e83a6417568f3..674442580c4f323b6de19f3b73f5e2ae1e9e3da5 100644 --- a/doc/devnotes.rst +++ b/doc/devnotes.rst @@ -134,7 +134,7 @@ Or, more interactively:: $ ghci Ξ»> :set -ddump-splices - Ξ»> :l htools/Ganeti/Objects.hs + Ξ»> :l src/Ganeti/Objects.hs And you will get the spliced code as the module is loaded. @@ -150,9 +150,9 @@ build profiling code. The recommended way is to run ``make hs-prof``, or alternatively the manual sequence is:: $ make clean - $ make htools/htools HEXTRA="-osuf .o" - $ rm htools/htools - $ make htools/htools HEXTRA="-osuf .prof_o -prof -auto-all" + $ make src/htools HEXTRA="-osuf .o" + $ rm src/htools + $ make src/htools HEXTRA="-osuf .prof_o -prof -auto-all" This will build the binary twice, per the TemplateHaskell documentation, the second one with profiling enabled. diff --git a/htest/hpc-htools.hs b/htest/hpc-htools.hs index 2d49067c19206ff1fda6e199f9bf763544e82074..edd10816f5adf396f9334379feb160d62f8866cd 120000 --- a/htest/hpc-htools.hs +++ b/htest/hpc-htools.hs @@ -1 +1 @@ -../htools/htools.hs \ No newline at end of file +../src/htools.hs \ No newline at end of file diff --git a/htest/hpc-mon-collector.hs b/htest/hpc-mon-collector.hs index 9abb068298abc552d2f716f47ed9a882083a1561..1a34a1a26a1dc328c428a301541c13be048069a3 120000 --- a/htest/hpc-mon-collector.hs +++ b/htest/hpc-mon-collector.hs @@ -1 +1 @@ -../htools/mon-collector.hs \ No newline at end of file +../src/mon-collector.hs \ No newline at end of file diff --git a/htools/Ganeti/BasicTypes.hs b/src/Ganeti/BasicTypes.hs similarity index 100% rename from htools/Ganeti/BasicTypes.hs rename to src/Ganeti/BasicTypes.hs diff --git a/htools/Ganeti/Block/Drbd/Parser.hs b/src/Ganeti/Block/Drbd/Parser.hs similarity index 100% rename from htools/Ganeti/Block/Drbd/Parser.hs rename to src/Ganeti/Block/Drbd/Parser.hs diff --git a/htools/Ganeti/Block/Drbd/Types.hs b/src/Ganeti/Block/Drbd/Types.hs similarity index 100% rename from htools/Ganeti/Block/Drbd/Types.hs rename to src/Ganeti/Block/Drbd/Types.hs diff --git a/htools/Ganeti/Common.hs b/src/Ganeti/Common.hs similarity index 100% rename from htools/Ganeti/Common.hs rename to src/Ganeti/Common.hs diff --git a/htools/Ganeti/Compat.hs b/src/Ganeti/Compat.hs similarity index 100% rename from htools/Ganeti/Compat.hs rename to src/Ganeti/Compat.hs diff --git a/htools/Ganeti/Confd/Client.hs b/src/Ganeti/Confd/Client.hs similarity index 100% rename from htools/Ganeti/Confd/Client.hs rename to src/Ganeti/Confd/Client.hs diff --git a/htools/Ganeti/Confd/Server.hs b/src/Ganeti/Confd/Server.hs similarity index 100% rename from htools/Ganeti/Confd/Server.hs rename to src/Ganeti/Confd/Server.hs diff --git a/htools/Ganeti/Confd/Types.hs b/src/Ganeti/Confd/Types.hs similarity index 100% rename from htools/Ganeti/Confd/Types.hs rename to src/Ganeti/Confd/Types.hs diff --git a/htools/Ganeti/Confd/Utils.hs b/src/Ganeti/Confd/Utils.hs similarity index 100% rename from htools/Ganeti/Confd/Utils.hs rename to src/Ganeti/Confd/Utils.hs diff --git a/htools/Ganeti/Config.hs b/src/Ganeti/Config.hs similarity index 100% rename from htools/Ganeti/Config.hs rename to src/Ganeti/Config.hs diff --git a/htools/Ganeti/Constants.hs.in b/src/Ganeti/Constants.hs.in similarity index 100% rename from htools/Ganeti/Constants.hs.in rename to src/Ganeti/Constants.hs.in diff --git a/htools/Ganeti/Daemon.hs b/src/Ganeti/Daemon.hs similarity index 100% rename from htools/Ganeti/Daemon.hs rename to src/Ganeti/Daemon.hs diff --git a/htools/Ganeti/DataCollectors/CLI.hs b/src/Ganeti/DataCollectors/CLI.hs similarity index 100% rename from htools/Ganeti/DataCollectors/CLI.hs rename to src/Ganeti/DataCollectors/CLI.hs diff --git a/htools/Ganeti/DataCollectors/Drbd.hs b/src/Ganeti/DataCollectors/Drbd.hs similarity index 100% rename from htools/Ganeti/DataCollectors/Drbd.hs rename to src/Ganeti/DataCollectors/Drbd.hs diff --git a/htools/Ganeti/DataCollectors/Program.hs b/src/Ganeti/DataCollectors/Program.hs similarity index 100% rename from htools/Ganeti/DataCollectors/Program.hs rename to src/Ganeti/DataCollectors/Program.hs diff --git a/htools/Ganeti/Errors.hs b/src/Ganeti/Errors.hs similarity index 100% rename from htools/Ganeti/Errors.hs rename to src/Ganeti/Errors.hs diff --git a/htools/Ganeti/HTools/Backend/IAlloc.hs b/src/Ganeti/HTools/Backend/IAlloc.hs similarity index 100% rename from htools/Ganeti/HTools/Backend/IAlloc.hs rename to src/Ganeti/HTools/Backend/IAlloc.hs diff --git a/htools/Ganeti/HTools/Backend/Luxi.hs b/src/Ganeti/HTools/Backend/Luxi.hs similarity index 100% rename from htools/Ganeti/HTools/Backend/Luxi.hs rename to src/Ganeti/HTools/Backend/Luxi.hs diff --git a/htools/Ganeti/HTools/Backend/Rapi.hs b/src/Ganeti/HTools/Backend/Rapi.hs similarity index 100% rename from htools/Ganeti/HTools/Backend/Rapi.hs rename to src/Ganeti/HTools/Backend/Rapi.hs diff --git a/htools/Ganeti/HTools/Backend/Simu.hs b/src/Ganeti/HTools/Backend/Simu.hs similarity index 100% rename from htools/Ganeti/HTools/Backend/Simu.hs rename to src/Ganeti/HTools/Backend/Simu.hs diff --git a/htools/Ganeti/HTools/Backend/Text.hs b/src/Ganeti/HTools/Backend/Text.hs similarity index 100% rename from htools/Ganeti/HTools/Backend/Text.hs rename to src/Ganeti/HTools/Backend/Text.hs diff --git a/htools/Ganeti/HTools/CLI.hs b/src/Ganeti/HTools/CLI.hs similarity index 100% rename from htools/Ganeti/HTools/CLI.hs rename to src/Ganeti/HTools/CLI.hs diff --git a/htools/Ganeti/HTools/Cluster.hs b/src/Ganeti/HTools/Cluster.hs similarity index 100% rename from htools/Ganeti/HTools/Cluster.hs rename to src/Ganeti/HTools/Cluster.hs diff --git a/htools/Ganeti/HTools/Container.hs b/src/Ganeti/HTools/Container.hs similarity index 100% rename from htools/Ganeti/HTools/Container.hs rename to src/Ganeti/HTools/Container.hs diff --git a/htools/Ganeti/HTools/ExtLoader.hs b/src/Ganeti/HTools/ExtLoader.hs similarity index 100% rename from htools/Ganeti/HTools/ExtLoader.hs rename to src/Ganeti/HTools/ExtLoader.hs diff --git a/htools/Ganeti/HTools/Graph.hs b/src/Ganeti/HTools/Graph.hs similarity index 100% rename from htools/Ganeti/HTools/Graph.hs rename to src/Ganeti/HTools/Graph.hs diff --git a/htools/Ganeti/HTools/Group.hs b/src/Ganeti/HTools/Group.hs similarity index 100% rename from htools/Ganeti/HTools/Group.hs rename to src/Ganeti/HTools/Group.hs diff --git a/htools/Ganeti/HTools/Instance.hs b/src/Ganeti/HTools/Instance.hs similarity index 100% rename from htools/Ganeti/HTools/Instance.hs rename to src/Ganeti/HTools/Instance.hs diff --git a/htools/Ganeti/HTools/Loader.hs b/src/Ganeti/HTools/Loader.hs similarity index 100% rename from htools/Ganeti/HTools/Loader.hs rename to src/Ganeti/HTools/Loader.hs diff --git a/htools/Ganeti/HTools/Node.hs b/src/Ganeti/HTools/Node.hs similarity index 100% rename from htools/Ganeti/HTools/Node.hs rename to src/Ganeti/HTools/Node.hs diff --git a/htools/Ganeti/HTools/PeerMap.hs b/src/Ganeti/HTools/PeerMap.hs similarity index 100% rename from htools/Ganeti/HTools/PeerMap.hs rename to src/Ganeti/HTools/PeerMap.hs diff --git a/htools/Ganeti/HTools/Program.hs b/src/Ganeti/HTools/Program.hs similarity index 100% rename from htools/Ganeti/HTools/Program.hs rename to src/Ganeti/HTools/Program.hs diff --git a/htools/Ganeti/HTools/Program/Hail.hs b/src/Ganeti/HTools/Program/Hail.hs similarity index 100% rename from htools/Ganeti/HTools/Program/Hail.hs rename to src/Ganeti/HTools/Program/Hail.hs diff --git a/htools/Ganeti/HTools/Program/Hbal.hs b/src/Ganeti/HTools/Program/Hbal.hs similarity index 100% rename from htools/Ganeti/HTools/Program/Hbal.hs rename to src/Ganeti/HTools/Program/Hbal.hs diff --git a/htools/Ganeti/HTools/Program/Hcheck.hs b/src/Ganeti/HTools/Program/Hcheck.hs similarity index 100% rename from htools/Ganeti/HTools/Program/Hcheck.hs rename to src/Ganeti/HTools/Program/Hcheck.hs diff --git a/htools/Ganeti/HTools/Program/Hinfo.hs b/src/Ganeti/HTools/Program/Hinfo.hs similarity index 100% rename from htools/Ganeti/HTools/Program/Hinfo.hs rename to src/Ganeti/HTools/Program/Hinfo.hs diff --git a/htools/Ganeti/HTools/Program/Hroller.hs b/src/Ganeti/HTools/Program/Hroller.hs similarity index 100% rename from htools/Ganeti/HTools/Program/Hroller.hs rename to src/Ganeti/HTools/Program/Hroller.hs diff --git a/htools/Ganeti/HTools/Program/Hscan.hs b/src/Ganeti/HTools/Program/Hscan.hs similarity index 100% rename from htools/Ganeti/HTools/Program/Hscan.hs rename to src/Ganeti/HTools/Program/Hscan.hs diff --git a/htools/Ganeti/HTools/Program/Hspace.hs b/src/Ganeti/HTools/Program/Hspace.hs similarity index 100% rename from htools/Ganeti/HTools/Program/Hspace.hs rename to src/Ganeti/HTools/Program/Hspace.hs diff --git a/htools/Ganeti/HTools/Types.hs b/src/Ganeti/HTools/Types.hs similarity index 100% rename from htools/Ganeti/HTools/Types.hs rename to src/Ganeti/HTools/Types.hs diff --git a/htools/Ganeti/Hash.hs b/src/Ganeti/Hash.hs similarity index 100% rename from htools/Ganeti/Hash.hs rename to src/Ganeti/Hash.hs diff --git a/htools/Ganeti/JQueue.hs b/src/Ganeti/JQueue.hs similarity index 100% rename from htools/Ganeti/JQueue.hs rename to src/Ganeti/JQueue.hs diff --git a/htools/Ganeti/JSON.hs b/src/Ganeti/JSON.hs similarity index 100% rename from htools/Ganeti/JSON.hs rename to src/Ganeti/JSON.hs diff --git a/htools/Ganeti/Jobs.hs b/src/Ganeti/Jobs.hs similarity index 100% rename from htools/Ganeti/Jobs.hs rename to src/Ganeti/Jobs.hs diff --git a/htools/Ganeti/Logging.hs b/src/Ganeti/Logging.hs similarity index 100% rename from htools/Ganeti/Logging.hs rename to src/Ganeti/Logging.hs diff --git a/htools/Ganeti/Luxi.hs b/src/Ganeti/Luxi.hs similarity index 100% rename from htools/Ganeti/Luxi.hs rename to src/Ganeti/Luxi.hs diff --git a/htools/Ganeti/Network.hs b/src/Ganeti/Network.hs similarity index 100% rename from htools/Ganeti/Network.hs rename to src/Ganeti/Network.hs diff --git a/htools/Ganeti/Objects.hs b/src/Ganeti/Objects.hs similarity index 100% rename from htools/Ganeti/Objects.hs rename to src/Ganeti/Objects.hs diff --git a/htools/Ganeti/OpCodes.hs b/src/Ganeti/OpCodes.hs similarity index 100% rename from htools/Ganeti/OpCodes.hs rename to src/Ganeti/OpCodes.hs diff --git a/htools/Ganeti/OpParams.hs b/src/Ganeti/OpParams.hs similarity index 100% rename from htools/Ganeti/OpParams.hs rename to src/Ganeti/OpParams.hs diff --git a/htools/Ganeti/Path.hs b/src/Ganeti/Path.hs similarity index 100% rename from htools/Ganeti/Path.hs rename to src/Ganeti/Path.hs diff --git a/htools/Ganeti/Query/Common.hs b/src/Ganeti/Query/Common.hs similarity index 100% rename from htools/Ganeti/Query/Common.hs rename to src/Ganeti/Query/Common.hs diff --git a/htools/Ganeti/Query/Filter.hs b/src/Ganeti/Query/Filter.hs similarity index 100% rename from htools/Ganeti/Query/Filter.hs rename to src/Ganeti/Query/Filter.hs diff --git a/htools/Ganeti/Query/Group.hs b/src/Ganeti/Query/Group.hs similarity index 100% rename from htools/Ganeti/Query/Group.hs rename to src/Ganeti/Query/Group.hs diff --git a/htools/Ganeti/Query/Job.hs b/src/Ganeti/Query/Job.hs similarity index 100% rename from htools/Ganeti/Query/Job.hs rename to src/Ganeti/Query/Job.hs diff --git a/htools/Ganeti/Query/Language.hs b/src/Ganeti/Query/Language.hs similarity index 100% rename from htools/Ganeti/Query/Language.hs rename to src/Ganeti/Query/Language.hs diff --git a/htools/Ganeti/Query/Node.hs b/src/Ganeti/Query/Node.hs similarity index 100% rename from htools/Ganeti/Query/Node.hs rename to src/Ganeti/Query/Node.hs diff --git a/htools/Ganeti/Query/Query.hs b/src/Ganeti/Query/Query.hs similarity index 100% rename from htools/Ganeti/Query/Query.hs rename to src/Ganeti/Query/Query.hs diff --git a/htools/Ganeti/Query/Server.hs b/src/Ganeti/Query/Server.hs similarity index 100% rename from htools/Ganeti/Query/Server.hs rename to src/Ganeti/Query/Server.hs diff --git a/htools/Ganeti/Query/Types.hs b/src/Ganeti/Query/Types.hs similarity index 100% rename from htools/Ganeti/Query/Types.hs rename to src/Ganeti/Query/Types.hs diff --git a/htools/Ganeti/Rpc.hs b/src/Ganeti/Rpc.hs similarity index 100% rename from htools/Ganeti/Rpc.hs rename to src/Ganeti/Rpc.hs diff --git a/htools/Ganeti/Runtime.hs b/src/Ganeti/Runtime.hs similarity index 100% rename from htools/Ganeti/Runtime.hs rename to src/Ganeti/Runtime.hs diff --git a/htools/Ganeti/Ssconf.hs b/src/Ganeti/Ssconf.hs similarity index 100% rename from htools/Ganeti/Ssconf.hs rename to src/Ganeti/Ssconf.hs diff --git a/htools/Ganeti/THH.hs b/src/Ganeti/THH.hs similarity index 100% rename from htools/Ganeti/THH.hs rename to src/Ganeti/THH.hs diff --git a/htools/Ganeti/Types.hs b/src/Ganeti/Types.hs similarity index 100% rename from htools/Ganeti/Types.hs rename to src/Ganeti/Types.hs diff --git a/htools/Ganeti/Utils.hs b/src/Ganeti/Utils.hs similarity index 100% rename from htools/Ganeti/Utils.hs rename to src/Ganeti/Utils.hs diff --git a/htools/Ganeti/Version.hs.in b/src/Ganeti/Version.hs.in similarity index 100% rename from htools/Ganeti/Version.hs.in rename to src/Ganeti/Version.hs.in diff --git a/htools/OLD-NEWS b/src/OLD-NEWS similarity index 100% rename from htools/OLD-NEWS rename to src/OLD-NEWS diff --git a/htools/README b/src/README similarity index 100% rename from htools/README rename to src/README diff --git a/htools/haddock-prologue b/src/haddock-prologue similarity index 100% rename from htools/haddock-prologue rename to src/haddock-prologue diff --git a/htools/hconfd.hs b/src/hconfd.hs similarity index 100% rename from htools/hconfd.hs rename to src/hconfd.hs diff --git a/htools/htools.hs b/src/htools.hs similarity index 100% rename from htools/htools.hs rename to src/htools.hs diff --git a/htools/lint-hints.hs b/src/lint-hints.hs similarity index 100% rename from htools/lint-hints.hs rename to src/lint-hints.hs diff --git a/htools/mon-collector.hs b/src/mon-collector.hs similarity index 100% rename from htools/mon-collector.hs rename to src/mon-collector.hs diff --git a/htools/rpc-test.hs b/src/rpc-test.hs similarity index 100% rename from htools/rpc-test.hs rename to src/rpc-test.hs