X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/0fcd0cad664011f9e168541ce46cf394aaac5295..68b2e98589f7d7d878e1daeeeb2c69d515de6ae5:/Makefile.am diff --git a/Makefile.am b/Makefile.am index 27cb8bd..88fd007 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,15 +151,19 @@ 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) \ @@ -172,6 +177,14 @@ GENERATED_FILES = \ $(BUILT_PYTHON_SOURCES) \ $(PYTHON_BOOTSTRAP) +HTOOLS_GENERATED_FILES = +if WANT_HTOOLS +HTOOLS_GENERATED_FILES += $(HS_PROGS) +if HS_CONFD +HTOOLS_GENERATED_FILES += htools/hconfd +endif +endif + built_base_sources = \ stamp-directories \ stamp-srclinks @@ -228,6 +241,7 @@ pkgpython_PYTHON = \ lib/objectutils.py \ lib/opcodes.py \ lib/ovf.py \ + lib/pathutils.py \ lib/qlang.py \ lib/query.py \ lib/rpc.py \ @@ -238,6 +252,7 @@ pkgpython_PYTHON = \ lib/ssh.py \ lib/storage.py \ lib/uidpool.py \ + lib/vcluster.py \ lib/workerpool.py client_PYTHON = \ @@ -367,6 +382,7 @@ docrst = \ 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)) @@ -428,8 +444,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 \ @@ -528,6 +546,7 @@ noinst_DATA = \ doc/html \ $(BUILT_EXAMPLES) \ doc/examples/bash_completion \ + doc/examples/bash_completion-debug \ $(manhtml) gnt_scripts = \ @@ -634,7 +653,8 @@ dist_sbin_SCRIPTS = \ nodist_sbin_SCRIPTS = \ $(PYTHON_BOOTSTRAP_SBIN) \ - daemons/ganeti-cleaner + daemons/ganeti-cleaner \ + daemons/ganeti-master-cleaner if HS_CONFD nodist_sbin_SCRIPTS += htools/hconfd @@ -660,6 +680,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 @@ -698,9 +721,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) \ @@ -732,6 +757,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 \ @@ -875,6 +901,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 \ @@ -909,6 +936,7 @@ 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 \ @@ -927,6 +955,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 = @@ -979,6 +1008,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) \ @@ -1021,7 +1051,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) < $< > $@ @@ -1031,6 +1064,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 $@ @@ -1038,10 +1075,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; } @@ -1164,6 +1206,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)'"; \ @@ -1183,6 +1227,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)"; \ @@ -1235,7 +1280,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'; \ @@ -1263,6 +1321,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