#!/usr/bin/make -f

# Verbose mode
#export DH_VERBOSE=1

export PYBUILD_NAME=nova

SHELL := /bin/sh -e

DEBVERS ?= $(shell dpkg-parsechangelog | sed -n -e 's/^Version: //p')
VERSION ?= $(shell echo '$(DEBVERS)' | sed -e 's/^[[:digit:]]*://' -e 's/[-].*//' -e 's/[+].*//' -e 's/~git.*//g' -e 's/~/./g')
export PBR_VERSION=$(VERSION)

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

%:
	dh $@ --with apache2,python3,sphinxdoc --buildsystem=pybuild

override_dh_auto_clean:
	dh_auto_clean
	rm -rf doc/build/* doc/source/api doc/.autogenerated
	rm -rf tests.sqlite clean.sqlite run_tests.log
	rm -rf CA
	rm -f po/nova.pot
	rm -rf .autogenerated
	rm -f debian/*.init debian/*.service debian/*.upstart
	rm -rf .testrepository
	rm -f etc/nova/nova.conf

override_dh_auto_build:
	dh_auto_build
ifeq (,$(findstring nodocs, $(DEB_BUILD_OPTIONS)))
	mkdir -p doc/build/html
	mkdir -p doc/build/man
	PYTHONPATH=$(CURDIR) sphinx-build -b man doc/source doc/build/man
	PYTHONPATH=$(CURDIR) sphinx-build -b html doc/source doc/build/html
endif

override_dh_install:
	rm -rf $(CURDIR)/debian/python3-nova/usr/etc
	# Fix any api sample template files with broken permissions
	PYTHONPATH=$(CURDIR) oslopolicy-sample-generator --config-file=etc/nova/nova-policy-generator.conf
	PYTHONPATH=$(CURDIR) oslo-config-generator --config-file=etc/nova/nova-config-generator.conf
	cp etc/nova/nova.conf.sample etc/nova/nova.conf
	crudini --set $(CURDIR)/etc/nova/nova.conf DEFAULT log_dir /var/log/nova
	crudini --set $(CURDIR)/etc/nova/nova.conf DEFAULT lock_path /var/lock/nova
	crudini --set $(CURDIR)/etc/nova/nova.conf DEFAULT state_path /var/lib/nova
	crudini --set $(CURDIR)/etc/nova/nova.conf database connection sqlite:////var/lib/nova/nova.sqlite
	crudini --set $(CURDIR)/etc/nova/nova.conf api_database connection sqlite:////var/lib/nova/nova_api.sqlite
	crudini --set $(CURDIR)/etc/nova/nova.conf cells enable False
	crudini --set $(CURDIR)/etc/nova/nova.conf os_region_name openstack
	find $(CURDIR)/debian/python3-nova -name *.tpl -exec chmod a-x {} \;
	dh_install
	dh_missing --fail-missing -Xbin/nova-all
	chmod 440 $(CURDIR)/debian/nova-common/etc/sudoers.d/nova_sudoers
	install -D -m 0644 $(CURDIR)/etc/nova/logging_sample.conf $(CURDIR)/debian/nova-common/etc/nova/logging.conf
	for hypervisor in qemu kvm xen lxc vmware ironic; do \
		install -D -m 0600 $(CURDIR)/debian/nova-compute-$${hypervisor}.conf $(CURDIR)/debian/nova-compute-$${hypervisor}/etc/nova/nova-compute.conf; \
	done
	find $(CURDIR)/debian -name ".gitignore" -delete

override_dh_fixperms:
	dh_fixperms -Xnova_sudoers -Xnova_tgt.conf

ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS)))
override_dh_auto_test:
	PYTHONPATH=$(CURDIR) pkgos-dh_auto_test --no-py2 --exclude-list $(CURDIR)/debian/exclude-list.txt --exclude-regex ".*test_tcp_rst_no_compute_rpcapi" "nova.tests.unit.*"
endif

override_dh_python3:
	dh_python3 --shebang=/usr/bin/python3
