#!/usr/bin/make -f

include /usr/share/openstack-pkg-tools/pkgos.make

%:
	dh $@ --buildsystem=python_distutils --with python2,sphinxdoc,systemd

override_dh_auto_clean:
	dh_auto_clean -O--buildsystem=python_distutils
	rm -f debian/ironic-common.config debian/ironic-common.postinst debian/ironic-api.postinst debian/ironic-api.config
	rm -rf doc/build
	rm -f debian/*.init debian/*.service debian/*.upstart

override_dh_auto_build:
	dh_auto_build
	/usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func ironic-common.config
	/usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func ironic-common.postinst
	/usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func ironic-api.config
	/usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func ironic-api.postinst

override_dh_auto_install:
	python setup.py install --install-layout=deb --root $(CURDIR)/debian/tmp
	mkdir -p $(CURDIR)/debian/ironic-common/usr/share/ironic-common
	PYTHONPATH=$(CURDIR)/debian/tmp oslo-config-generator --output-file $(CURDIR)/debian/ironic-common/usr/share/ironic-common/ironic.conf \
		--wrap-width 140 \
		--namespace ironic \
		--namespace ironic_lib.disk_utils \
		--namespace ironic_lib.disk_partitioner \
		--namespace ironic_lib.metrics \
		--namespace ironic_lib.metrics_statsd
		--namespace ironic_lib.utils \
		--namespace oslo.db \
		--namespace oslo.messaging \
		--namespace oslo.middleware.cors \
		--namespace oslo.concurrency \
		--namespace oslo.policy \
		--namespace oslo.log \
		--namespace oslo.service.service \
		--namespace oslo.service.periodic_task \
		--namespace oslo.service.sslutils \
		--namespace keystonemiddleware.auth_token
	sed -i 's|#connection=<None>|connection=sqlite:////var/lib/ironic/ironicdb|' $(CURDIR)/debian/ironic-common/usr/share/ironic-common/ironic.conf
	set -e ; for pyvers in $(PYTHONS); do \
		cp -rf ironic/db/sqlalchemy/alembic $(CURDIR)/debian/tmp/usr/lib/python$$pyvers/dist-packages/ironic/db/sqlalchemy ; \
	done

override_dh_auto_test:
ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS)))
	@echo "===> Running tests"
	set -e ; set -x ; for i in 2.7 ; do \
		PYMAJOR=`echo $$i | cut -d'.' -f1` ; \
		echo "===> Testing with python$$i (python$$PYMAJOR)" ; \
		rm -rf .testrepository ; \
		testr-python$$PYMAJOR init ; \
		TEMP_REZ=`mktemp -t` ; \
		PYTHONPATH=$(CURDIR) PYTHON=python$$i testr-python$$PYMAJOR run --subunit --parallel 'ironic\.tests\.unit\.(?!.*common\.test_keystone\.KeystoneLegacyTestCase\.test_legacy_loading_new_in_legacy.*)' | tee $$TEMP_REZ | subunit2pyunit ; \
		cat $$TEMP_REZ | subunit-filter -s --no-passthrough | subunit-stats ; \
		rm -f $$TEMP_REZ ; \
		testr-python$$PYMAJOR slowest ; \
	done
endif

override_dh_sphinxdoc:
ifeq (,$(findstring nodocs, $(DEB_BUILD_OPTIONS)))
	PYTHONPATH=$(CURDIR) sphinx-build -a -b html doc/source $(CURDIR)/debian/ironic-doc/usr/share/doc/ironic-doc/dev-doc-html
## This is a workaround to avoid FTBFS, though a real fix should be found.
	mkdir -p $(CURDIR)/debian/ironic-doc/usr/share/doc/ironic-doc/dev-doc-html/_static
	touch $(CURDIR)/debian/ironic-doc/usr/share/doc/ironic-doc/dev-doc-html/_static/toggle.js
	rm $(CURDIR)/debian/ironic-doc/usr/share/doc/ironic-doc/dev-doc-html/search.html

	PYTHONPATH=$(CURDIR) sphinx-build -a -b html install-guide/source $(CURDIR)/debian/ironic-doc/usr/share/doc/ironic-doc/install-guide-html
	rm $(CURDIR)/debian/ironic-doc/usr/share/doc/ironic-doc/install-guide-html/search.html

	dh_sphinxdoc -O--buildsystem=python_distutils
endif
