X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/3329f4dea673d11088966e0f991e3a40f9506206..26d62e4ced78ba5f3fea05583dae54b1324ed33a:/Makefile.am diff --git a/Makefile.am b/Makefile.am index 3c7820a..c199d6b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -31,6 +31,7 @@ DOCPP = $(top_srcdir)/autotools/docpp REPLACE_VARS_SED = autotools/replace_vars.sed CONVERT_CONSTANTS = $(top_srcdir)/autotools/convert-constants BUILD_RPC = $(top_srcdir)/autotools/build-rpc +SHELL_ENV_INIT = autotools/shell-env-init # Note: these are automake-specific variables, and must be named after # the directory + 'dir' suffix @@ -150,20 +151,25 @@ CLEANFILES = \ $(PYTHON_BOOTSTRAP) \ epydoc.conf \ $(REPLACE_VARS_SED) \ + $(SHELL_ENV_INIT) \ daemons/daemon-util \ daemons/ganeti-cleaner \ + daemons/ganeti-master-cleaner \ devel/upload \ $(BUILT_EXAMPLES) \ doc/examples/bash_completion \ + doc/examples/bash_completion-debug \ lib/_generated_rpc.py \ $(man_MANS) \ $(manhtml) \ tools/kvm-ifup \ + tools/vcluster-setup \ stamp-directories \ stamp-srclinks \ $(nodist_pkgpython_PYTHON) \ $(HS_ALL_PROGS) $(HS_BUILT_SRCS) \ $(HS_BUILT_TEST_HELPERS) \ + htools/ganeti-confd \ .hpc/*.mix htools/*.tix htest/*.tix \ doc/hs-lint.html @@ -172,6 +178,14 @@ GENERATED_FILES = \ $(BUILT_PYTHON_SOURCES) \ $(PYTHON_BOOTSTRAP) +HTOOLS_GENERATED_FILES = +if WANT_HTOOLS +HTOOLS_GENERATED_FILES += $(HS_PROGS) +if ENABLE_CONFD +HTOOLS_GENERATED_FILES += htools/hconfd +endif +endif + built_base_sources = \ stamp-directories \ stamp-srclinks @@ -239,6 +253,7 @@ pkgpython_PYTHON = \ lib/ssh.py \ lib/storage.py \ lib/uidpool.py \ + lib/vcluster.py \ lib/workerpool.py client_PYTHON = \ @@ -278,9 +293,7 @@ http_PYTHON = \ confd_PYTHON = \ lib/confd/__init__.py \ - lib/confd/client.py \ - lib/confd/querylib.py \ - lib/confd/server.py + lib/confd/client.py masterd_PYTHON = \ lib/masterd/__init__.py \ @@ -297,7 +310,6 @@ watcher_PYTHON = \ server_PYTHON = \ lib/server/__init__.py \ - lib/server/confd.py \ lib/server/masterd.py \ lib/server/noded.py \ lib/server/rapi.py @@ -350,6 +362,7 @@ docrst = \ doc/design-virtual-clusters.rst \ doc/design-bulk-create.rst \ doc/design-query-splitting.rst \ + doc/design-partitioned.rst \ doc/devnotes.rst \ doc/glossary.rst \ doc/hooks.rst \ @@ -364,10 +377,12 @@ docrst = \ doc/rapi.rst \ doc/security.rst \ doc/upgrade.rst \ + doc/virtual-cluster.rst \ doc/walkthrough.rst HS_PROGS = htools/htools HS_BIN_ROLES = hbal hscan hspace hinfo hcheck +HS_HTOOLS_PROGS = $(HS_BIN_ROLES) hail HS_ALL_PROGS = $(HS_PROGS) htest/test htest/hpc-htools htools/hconfd HS_PROG_SRCS = $(patsubst %,%.hs,$(HS_ALL_PROGS)) @@ -406,7 +421,6 @@ HS_LIB_SRCS = \ htools/Ganeti/HTools/Simu.hs \ htools/Ganeti/HTools/Text.hs \ htools/Ganeti/HTools/Types.hs \ - htools/Ganeti/HTools/Utils.hs \ htools/Ganeti/HTools/Program.hs \ htools/Ganeti/HTools/Program/Hail.hs \ htools/Ganeti/HTools/Program/Hbal.hs \ @@ -429,8 +443,10 @@ HS_LIB_SRCS = \ htools/Ganeti/Luxi.hs \ htools/Ganeti/Objects.hs \ htools/Ganeti/OpCodes.hs \ + htools/Ganeti/Path.hs \ htools/Ganeti/Query/Common.hs \ htools/Ganeti/Query/Filter.hs \ + htools/Ganeti/Query/Group.hs \ htools/Ganeti/Query/Language.hs \ htools/Ganeti/Query/Node.hs \ htools/Ganeti/Query/Query.hs \ @@ -439,7 +455,8 @@ HS_LIB_SRCS = \ htools/Ganeti/Rpc.hs \ htools/Ganeti/Runtime.hs \ htools/Ganeti/Ssconf.hs \ - htools/Ganeti/THH.hs + htools/Ganeti/THH.hs \ + htools/Ganeti/Utils.hs HS_TEST_SRCS = \ htest/Test/Ganeti/BasicTypes.hs \ @@ -456,7 +473,6 @@ HS_TEST_SRCS = \ htest/Test/Ganeti/HTools/Simu.hs \ htest/Test/Ganeti/HTools/Text.hs \ htest/Test/Ganeti/HTools/Types.hs \ - htest/Test/Ganeti/HTools/Utils.hs \ htest/Test/Ganeti/JSON.hs \ htest/Test/Ganeti/Jobs.hs \ htest/Test/Ganeti/Luxi.hs \ @@ -469,7 +485,8 @@ HS_TEST_SRCS = \ htest/Test/Ganeti/Ssconf.hs \ htest/Test/Ganeti/TestCommon.hs \ htest/Test/Ganeti/TestHTools.hs \ - htest/Test/Ganeti/TestHelper.hs + htest/Test/Ganeti/TestHelper.hs \ + htest/Test/Ganeti/Utils.hs HS_LIBTEST_SRCS = $(HS_LIB_SRCS) $(HS_TEST_SRCS) @@ -529,6 +546,7 @@ noinst_DATA = \ doc/html \ $(BUILT_EXAMPLES) \ doc/examples/bash_completion \ + doc/examples/bash_completion-debug \ $(manhtml) gnt_scripts = \ @@ -548,10 +566,6 @@ PYTHON_BOOTSTRAP_SBIN = \ daemons/ganeti-rapi \ $(gnt_scripts) -if PY_CONFD -PYTHON_BOOTSTRAP_SBIN += daemons/ganeti-confd -endif - PYTHON_BOOTSTRAP = \ $(PYTHON_BOOTSTRAP_SBIN) \ tools/ensure-dirs @@ -585,9 +599,6 @@ install-exec-hook: $(LN_S) -f htools \ $(DESTDIR)$(bindir)/$$role ; \ done -if HS_CONFD - mv $(DESTDIR)$(sbindir)/hconfd $(DESTDIR)$(sbindir)/ganeti-confd -endif endif $(HS_ALL_PROGS): %: %.hs $(HS_LIBTEST_SRCS) $(HS_BUILT_SRCS) Makefile @@ -635,10 +646,14 @@ dist_sbin_SCRIPTS = \ nodist_sbin_SCRIPTS = \ $(PYTHON_BOOTSTRAP_SBIN) \ - daemons/ganeti-cleaner + daemons/ganeti-cleaner \ + daemons/ganeti-master-cleaner + +if ENABLE_CONFD +htools/ganeti-confd: htools/hconfd + cp -f $< $@ -if HS_CONFD -nodist_sbin_SCRIPTS += htools/hconfd +nodist_sbin_SCRIPTS += htools/ganeti-confd endif python_scripts = \ @@ -661,6 +676,9 @@ dist_tools_SCRIPTS = \ tools/xm-console-wrapper \ tools/master-ip-setup +nodist_tools_SCRIPTS = \ + tools/vcluster-setup + pkglib_python_scripts = \ daemons/import-export \ tools/check-cert-expired @@ -699,9 +717,11 @@ EXTRA_DIST = \ $(RUN_IN_TEMPDIR) \ daemons/daemon-util.in \ daemons/ganeti-cleaner.in \ + daemons/ganeti-master-cleaner.in \ $(pkglib_python_scripts) \ devel/upload.in \ tools/kvm-ifup.in \ + tools/vcluster-setup.in \ $(docdot) \ $(docpng) \ $(docrst) \ @@ -733,6 +753,7 @@ EXTRA_DIST = \ man_MANS = \ man/ganeti.7 \ man/ganeti-cleaner.8 \ + man/ganeti-master-cleaner.8 \ man/ganeti-confd.8 \ man/ganeti-listrunner.8 \ man/ganeti-masterd.8 \ @@ -876,6 +897,7 @@ python_tests = \ test/ganeti.jstore_unittest.py \ test/ganeti.locking_unittest.py \ test/ganeti.luxi_unittest.py \ + test/ganeti.masterd.iallocator_unittest.py \ test/ganeti.masterd.instance_unittest.py \ test/ganeti.mcpu_unittest.py \ test/ganeti.netutils_unittest.py \ @@ -901,6 +923,7 @@ python_tests = \ test/ganeti.utils.filelock_unittest.py \ test/ganeti.utils.hash_unittest.py \ test/ganeti.utils.io_unittest.py \ + test/ganeti.utils.io_unittest-runasroot.py \ test/ganeti.utils.log_unittest.py \ test/ganeti.utils.mlock_unittest.py \ test/ganeti.utils.nodesetup_unittest.py \ @@ -910,15 +933,13 @@ python_tests = \ test/ganeti.utils.wrapper_unittest.py \ test/ganeti.utils.x509_unittest.py \ test/ganeti.utils_unittest.py \ + test/ganeti.vcluster_unittest.py \ test/ganeti.workerpool_unittest.py \ test/qa.qa_config_unittest.py \ test/cfgupgrade_unittest.py \ test/docs_unittest.py \ test/pycurl_reset_unittest.py \ test/tempfile_fork_unittest.py -if HAS_FAKEROOT -python_tests += test/ganeti.utils.io_unittest-runasroot.py -endif haskell_tests = htest/test @@ -928,6 +949,7 @@ dist_TESTS = \ test/ganeti-cleaner_unittest.bash \ test/import-export_unittest.bash \ test/cli-test.bash \ + test/bash_completion.bash \ $(python_tests) nodist_TESTS = @@ -980,6 +1002,7 @@ srclink_files = \ test/ganeti-cleaner_unittest.bash \ test/import-export_unittest.bash \ test/cli-test.bash \ + test/bash_completion.bash \ htest/offline-test.sh \ htest/cli-tests-defs.sh \ $(all_python_code) \ @@ -1022,7 +1045,10 @@ pep8_python_code = \ test/daemon-util_unittest.bash: daemons/daemon-util -test/ganeti-cleaner_unittest.bash: daemons/ganeti-cleaner +test/ganeti-cleaner_unittest.bash: daemons/ganeti-cleaner \ + daemons/ganeti-master-cleaner + +test/bash_completion.bash: doc/examples/bash_completion-debug tools/kvm-ifup: tools/kvm-ifup.in $(REPLACE_VARS_SED) sed -f $(REPLACE_VARS_SED) < $< > $@ @@ -1032,6 +1058,10 @@ devel/upload: devel/upload.in $(REPLACE_VARS_SED) sed -f $(REPLACE_VARS_SED) < $< > $@ chmod u+x $@ +tools/vcluster-setup: tools/vcluster-setup.in $(REPLACE_VARS_SED) + sed -f $(REPLACE_VARS_SED) < $< > $@ + chmod +x $@ + daemons/%:: daemons/%.in $(REPLACE_VARS_SED) sed -f $(REPLACE_VARS_SED) < $< > $@ chmod +x $@ @@ -1039,10 +1069,15 @@ daemons/%:: daemons/%.in $(REPLACE_VARS_SED) doc/examples/%:: doc/examples/%.in $(REPLACE_VARS_SED) sed -f $(REPLACE_VARS_SED) < $< > $@ -doc/examples/bash_completion: $(BUILD_BASH_COMPLETION) $(RUN_IN_TEMPDIR) \ +doc/examples/bash_completion: BC_ARGS = --compact +doc/examples/bash_completion-debug: BC_ARGS = + +doc/examples/bash_completion doc/examples/bash_completion-debug: \ + $(BUILD_BASH_COMPLETION) $(RUN_IN_TEMPDIR) \ lib/cli.py $(gnt_scripts) $(client_PYTHON) tools/burnin \ - $(GENERATED_FILES) - PYTHONPATH=. $(RUN_IN_TEMPDIR) $(CURDIR)/$(BUILD_BASH_COMPLETION) > $@ + $(GENERATED_FILES) $(HTOOLS_GENERATED_FILES) + PYTHONPATH=. $(RUN_IN_TEMPDIR) \ + $(CURDIR)/$(BUILD_BASH_COMPLETION) $(BC_ARGS) > $@ doc/%.png: doc/%.dot @test -n "$(DOT)" || { echo 'dot' not found during configure; exit 1; } @@ -1165,6 +1200,8 @@ lib/_autoconf.py: Makefile | stamp-directories echo "LOCALSTATEDIR = '$(localstatedir)'"; \ echo "SYSCONFDIR = '$(sysconfdir)'"; \ echo "SSH_CONFIG_DIR = '$(SSH_CONFIG_DIR)'"; \ + echo "SSH_LOGIN_USER = '$(SSH_LOGIN_USER)'"; \ + echo "SSH_CONSOLE_USER = '$(SSH_CONSOLE_USER)'"; \ echo "EXPORT_DIR = '$(EXPORT_DIR)'"; \ echo "OS_SEARCH_PATH = [$(OS_SEARCH_PATH)]"; \ echo "XEN_BOOTLOADER = '$(XEN_BOOTLOADER)'"; \ @@ -1184,6 +1221,7 @@ lib/_autoconf.py: Makefile | stamp-directories echo "LVM_STRIPECOUNT = $(LVM_STRIPECOUNT)"; \ echo "TOOLSDIR = '$(toolsdir)'"; \ echo "GNT_SCRIPTS = [$(foreach i,$(notdir $(gnt_scripts)),'$(i)',)]"; \ + echo "HTOOLS_PROGS = [$(foreach i,$(HS_HTOOLS_PROGS),'$(i)',)]"; \ echo "PKGLIBDIR = '$(pkglibdir)'"; \ echo "DRBD_BARRIERS = '$(DRBD_BARRIERS)'"; \ echo "DRBD_NO_META_FLUSH = $(DRBD_NO_META_FLUSH)"; \ @@ -1206,8 +1244,6 @@ lib/_autoconf.py: Makefile | stamp-directories echo "HTOOLS = False"; \ fi; \ echo "ENABLE_CONFD = $(ENABLE_CONFD)"; \ - echo "PY_CONFD = $(PY_CONFD)"; \ - echo "HS_CONFD = $(HS_CONFD)"; \ echo "XEN_CMD = '$(XEN_CMD)'"; \ echo "ENABLE_SPLIT_QUERY = $(ENABLE_SPLIT_QUERY)"; \ } > $@ @@ -1236,7 +1272,20 @@ lib/_vcsversion.py: Makefile vcs-version | stamp-directories lib/_generated_rpc.py: lib/rpc_defs.py $(BUILD_RPC) PYTHONPATH=. $(RUN_IN_TEMPDIR) $(CURDIR)/$(BUILD_RPC) lib/rpc_defs.py > $@ -$(REPLACE_VARS_SED): Makefile stamp-directories +$(SHELL_ENV_INIT): Makefile stamp-directories + set -e; \ + { echo '# Allow overriding for tests'; \ + echo 'readonly LOCALSTATEDIR=$${LOCALSTATEDIR:-$${GANETI_ROOTDIR:-}$(localstatedir)}'; \ + echo 'readonly SYSCONFDIR=$${SYSCONFDIR:-$${GANETI_ROOTDIR:-}$(sysconfdir)}'; \ + echo; \ + echo 'readonly PKGLIBDIR=$(pkglibdir)'; \ + echo 'readonly LOG_DIR="$$LOCALSTATEDIR/log/ganeti"'; \ + echo 'readonly RUN_DIR="$$LOCALSTATEDIR/run/ganeti"'; \ + echo 'readonly DATA_DIR="$$LOCALSTATEDIR/lib/ganeti"'; \ + echo 'readonly CONF_DIR="$$SYSCONFDIR/ganeti"'; \ + } > $@ + +$(REPLACE_VARS_SED): $(SHELL_ENV_INIT) Makefile stamp-directories set -e; \ { echo 's#@PREFIX@#$(prefix)#g'; \ echo 's#@SYSCONFDIR@#$(sysconfdir)#g'; \ @@ -1264,6 +1313,11 @@ $(REPLACE_VARS_SED): Makefile stamp-directories echo 's#@CUSTOM_ENABLE_CONFD@#$(ENABLE_CONFD)#g'; \ echo 's#@MODULES@#$(strip $(lint_python_code))#g'; \ echo 's#@ENABLE_SPLIT_QUERY@#$(ENABLE_SPLIT_QUERY)#g'; \ + echo; \ + echo '/^@SHELL_ENV_INIT@$$/ {'; \ + echo ' r $(SHELL_ENV_INIT)'; \ + echo ' d'; \ + echo '}'; \ } > $@ # Using deferred evaluation @@ -1366,7 +1420,7 @@ check-local: check-dirs $(GENERATED_FILES) echo "Incorrect version in README, expected $$expver"; \ exit 1; \ fi; \ - for file in doc/iallocator.rst doc/hooks.rst; do \ + for file in doc/iallocator.rst doc/hooks.rst doc/virtual-cluster.rst; do \ if test "`sed -ne '4 p' $(top_srcdir)/$$file`" != \ "Documents Ganeti version $$expver"; then \ echo "Incorrect version in $$file, expected $$expver"; \