HTOOLS_DIRS = \
htools \
htools/Ganeti \
+ htools/Ganeti/Block \
+ htools/Ganeti/Block/Drbd \
htools/Ganeti/Confd \
htools/Ganeti/HTools \
htools/Ganeti/HTools/Backend \
htest \
htest/Test \
htest/Test/Ganeti \
+ htest/Test/Ganeti/Block \
+ htest/Test/Ganeti/Block/Drbd \
htest/Test/Ganeti/Confd \
htest/Test/Ganeti/HTools \
htest/Test/Ganeti/HTools/Backend \
$(APIDOC_DIR) \
$(APIDOC_HS_DIR) \
$(APIDOC_HS_DIR)/Ganeti \
+ $(APIDOC_HS_DIR)/Ganeti/Block \
+ $(APIDOC_HS_DIR)/Ganeti/Block/Drbd \
$(APIDOC_HS_DIR)/Ganeti/Confd \
$(APIDOC_HS_DIR)/Ganeti/HTools \
$(APIDOC_HS_DIR)/Ganeti/HTools/Backend \
$(SHELL_ENV_INIT) \
daemons/daemon-util \
daemons/ganeti-cleaner \
- devel/upload \
$(BUILT_EXAMPLES) \
doc/examples/bash_completion \
doc/examples/bash_completion-debug \
doc/examples/ganeti-kvm-poweroff.initd \
doc/examples/ganeti.cron \
doc/examples/ganeti.initd \
+ doc/examples/ganeti-master-role.ocf \
+ doc/examples/ganeti-node-role.ocf \
doc/examples/gnt-config-backup \
doc/examples/hooks/ipsec
lib/storage.py \
lib/uidpool.py \
lib/vcluster.py \
+ lib/network.py \
lib/workerpool.py
client_PYTHON = \
lib/client/gnt_instance.py \
lib/client/gnt_job.py \
lib/client/gnt_node.py \
+ lib/client/gnt_network.py \
lib/client/gnt_os.py
hypervisor_PYTHON = \
doc/design-linuxha.rst \
doc/design-multi-reloc.rst \
doc/design-network.rst \
+ doc/design-node-add.rst \
doc/design-oob.rst \
doc/design-ovf-support.rst \
doc/design-partitioned.rst \
doc/design-remote-commands.rst \
doc/design-resource-model.rst \
doc/design-shared-storage.rst \
- doc/design-ssh-setup.rst \
doc/design-monitoring-agent.rst \
doc/design-virtual-clusters.rst \
doc/design-x509-ca.rst \
HS_PROG_SRCS = $(patsubst %,%.hs,$(HS_ALL_PROGS))
HS_BUILT_TEST_HELPERS = $(HS_BIN_ROLES:%=htest/%) htest/hail
-HFLAGS = -O -Wall -Werror -fwarn-monomorphism-restriction -fwarn-tabs -ihtools
+HFLAGS = \
+ -O -Wall -Werror -ihtools \
+ -fwarn-monomorphism-restriction \
+ -fwarn-tabs \
+ $(GHC_BYVERSION_FLAGS)
+
# extra flags that can be overriden on the command line (e.g. -Wwarn, etc.)
HEXTRA =
# internal extra flags (used for htest/test mainly)
--exclude Ganeti.HTools.QC \
--exclude Ganeti.THH \
--exclude Ganeti.Version \
+ --exclude Test.Ganeti.Attoparsec \
--exclude Test.Ganeti.TestCommon \
--exclude Test.Ganeti.TestHTools \
--exclude Test.Ganeti.TestHelper \
$(patsubst htools.%,--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.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/Luxi.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/Runtime.hs \
htools/Ganeti/Ssconf.hs \
htools/Ganeti/THH.hs \
+ htools/Ganeti/Types.hs \
htools/Ganeti/Utils.hs
HS_TEST_SRCS = \
+ htest/Test/Ganeti/Attoparsec.hs \
htest/Test/Ganeti/BasicTypes.hs \
+ htest/Test/Ganeti/Block/Drbd/Parser.hs \
htest/Test/Ganeti/Common.hs \
htest/Test/Ganeti/Confd/Utils.hs \
htest/Test/Ganeti/Daemon.hs \
htest/Test/Ganeti/TestCommon.hs \
htest/Test/Ganeti/TestHTools.hs \
htest/Test/Ganeti/TestHelper.hs \
+ htest/Test/Ganeti/Types.hs \
htest/Test/Ganeti/Utils.hs
HS_LIBTEST_SRCS = $(HS_LIB_SRCS) $(HS_TEST_SRCS)
# Things to build but not to install (add it to EXTRA_DIST if it should be
# distributed)
noinst_DATA = \
- devel/upload \
doc/html \
$(BUILT_EXAMPLES) \
doc/examples/bash_completion \
scripts/gnt-group \
scripts/gnt-instance \
scripts/gnt-job \
+ scripts/gnt-network \
scripts/gnt-node \
scripts/gnt-os
tools/lvmstrap \
tools/move-instance \
tools/ovfconverter \
- tools/sanitize-config \
- tools/setup-ssh
+ tools/sanitize-config
dist_tools_SCRIPTS = \
$(python_scripts) \
tools/kvm-console-wrapper \
tools/master-ip-setup \
- tools/xm-console-wrapper
+ tools/xen-console-wrapper
nodist_tools_SCRIPTS = \
tools/vcluster-setup
daemons/daemon-util.in \
daemons/ganeti-cleaner.in \
$(pkglib_python_scripts) \
- devel/upload.in \
+ devel/upload \
tools/kvm-ifup.in \
tools/vcluster-setup.in \
$(docdot) \
man/gnt-cluster.8 \
man/gnt-debug.8 \
man/gnt-group.8 \
+ man/gnt-network.8 \
man/gnt-instance.8 \
man/gnt-job.8 \
man/gnt-node.8 \
test/data/proc_drbd80-emptyline.txt \
test/data/proc_drbd83.txt \
test/data/proc_drbd83_sync.txt \
+ test/data/proc_drbd83_sync_want.txt \
test/data/proc_drbd83_sync_krnl2.6.39.txt \
test/data/sys_drbd_usermode_helper.txt \
test/data/vgreduce-removemissing-2.02.02.txt \
test/cfgupgrade_unittest.py \
test/docs_unittest.py \
test/ganeti.asyncnotifier_unittest.py \
+ test/ganeti.backend_unittest-runasroot.py \
test/ganeti.backend_unittest.py \
test/ganeti.bdev_unittest.py \
test/ganeti.cli_unittest.py \
test/ganeti.rpc_unittest.py \
test/ganeti.runtime_unittest.py \
test/ganeti.serializer_unittest.py \
+ test/ganeti.server.rapi_unittest.py \
+ test/ganeti.ssconf_unittest.py \
test/ganeti.ssh_unittest.py \
test/ganeti.storage_unittest.py \
test/ganeti.tools.ensure_dirs_unittest.py \
sed -f $(REPLACE_VARS_SED) < $< > $@
chmod +x $@
-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 $@
.PHONY: regen-vcs-version
regen-vcs-version:
- set -e; \
+ @set -e; \
cd $(srcdir); \
if test -d .git; then \
- $(MAKE) $(AM_MAKEFLAGS) clean-vcs-version; \
- $(MAKE) $(AM_MAKEFLAGS) vcs-version; \
+ T=`mktemp` ; trap 'rm -f $$T' EXIT; \
+ git describe > $$T; \
+ if ! cmp --quiet $$T vcs-version; then \
+ mv $$T vcs-version; \
+ fi; \
fi
htools/Ganeti/Version.hs: htools/Ganeti/Version.hs.in \
echo "ENABLE_CONFD = $(ENABLE_CONFD)"; \
echo "XEN_CMD = '$(XEN_CMD)'"; \
echo "ENABLE_SPLIT_QUERY = $(ENABLE_SPLIT_QUERY)"; \
+ echo "ENABLE_RESTRICTED_COMMANDS = $(ENABLE_RESTRICTED_COMMANDS)"; \
} > $@
lib/_vcsversion.py: Makefile vcs-version | stamp-directories
if ! test -f $(top_srcdir)/doc/design-$$expver.rst; then \
echo "File $(top_srcdir)/doc/design-$$expver.rst not found"; \
exit 1; \
+ fi; \
+ if test $$(wc --max-line-length < $(top_srcdir)/configure.ac) -gt 80; then \
+ echo 'Longest line in configure.ac is longer than 80 characters' >&2; \
fi
.PHONY: hs-check
hlint: $(HS_BUILT_SRCS) htools/lint-hints.hs
@test -n "$(HLINT)" || { echo 'hlint' not found during configure; exit 1; }
if tty -s; then C="-c"; else C=""; fi; \
- $(HLINT) --report=doc/hs-lint.html --cross $$C \
+ $(HLINT) --utf8 --report=doc/hs-lint.html --cross $$C \
--ignore "Use first" \
--ignore "Use comparing" \
--ignore "Use on" \
rm -rf $(APIDOC_HS_DIR)/*
@mkdir_p@ $(APIDOC_HS_DIR)/Ganeti/HTools/Backend
@mkdir_p@ $(APIDOC_HS_DIR)/Ganeti/HTools/Program
+ @mkdir_p@ $(APIDOC_HS_DIR)/Ganeti/Block
+ @mkdir_p@ $(APIDOC_HS_DIR)/Ganeti/Block/Drbd
@mkdir_p@ $(APIDOC_HS_DIR)/Ganeti/Confd
@mkdir_p@ $(APIDOC_HS_DIR)/Ganeti/Query
$(HSCOLOUR) -print-css > $(APIDOC_HS_DIR)/Ganeti/hscolour.css