#!/usr/bin/make -f

export PYBUILD_NAME=octavia_dashboard

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 python3,sphinxdoc --buildsystem=pybuild

override_dh_auto_clean:
	rm -rf build .pybuild

override_dh_auto_test:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	for i in $(PYTHON3S) ; do \
		PYTHON=python$$i \
			CLIENT_NAME=octavia-dashboard \
			DJANGO_SETTINGS_MODULE=octavia_dashboard.tests.settings \
			python3 -m coverage run \
			$(CURDIR)/manage.py test octavia_dashboard --settings=octavia_dashboard.tests.settings ; \
	done
endif

override_dh_clean:
	dh_clean
	find . -name '*pyc' -delete
	rm -f octavia_dashboard/tests/.secret_key_store
	rm -rf .coverage*
	rm -rf build
	rm -f AUTHORS ChangeLog

override_dh_auto_install:
	pkgos-dh_auto_install --no-py2

	# Activates the octavia_dashboard plugin in Horizon
	# octavia_dashboard/enabled/_*
	mkdir -p $(CURDIR)/debian/python3-octavia-dashboard/usr/lib/python3/dist-packages/openstack_dashboard/enabled
	cp -r $(CURDIR)/octavia_dashboard/enabled/_14* $(CURDIR)/debian/python3-octavia-dashboard/usr/lib/python3/dist-packages/openstack_dashboard/enabled

	# Install local_settings.d into Horizon's to load the POLICY_FILES mapping
	mkdir -p $(CURDIR)/debian/python3-octavia-dashboard/usr/lib/python3/dist-packages/openstack_dashboard/local/local_settings.d
	cp $(CURDIR)/octavia_dashboard/local_settings.d/_14*.py $(CURDIR)/debian/python3-octavia-dashboard/usr/lib/python3/dist-packages/openstack_dashboard/local/local_settings.d

	# Generate octavia_policy.yaml from Octavia's policy-in-code.
	# Upstream ships only .gitkeep in conf/; the file must be generated at build
	# time via oslopolicy-sample-generator.
	mkdir -p $(CURDIR)/debian/python3-octavia-dashboard/usr/lib/python3/dist-packages/octavia_dashboard/conf
	PYTHONPATH=$(CURDIR)/debian/python3-octavia-dashboard/usr/lib/python3/dist-packages \
		oslopolicy-sample-generator --namespace octavia \
		--output-file=$(CURDIR)/debian/python3-octavia-dashboard/usr/lib/python3/dist-packages/octavia_dashboard/conf/octavia_policy.yaml

	# Copy policy file to Horizon's conf directory (POLICY_FILES_PATH)
	mkdir -p $(CURDIR)/debian/python3-octavia-dashboard/usr/lib/python3/dist-packages/openstack_dashboard/conf
	cp $(CURDIR)/debian/python3-octavia-dashboard/usr/lib/python3/dist-packages/octavia_dashboard/conf/octavia_policy.yaml \
		$(CURDIR)/debian/python3-octavia-dashboard/usr/lib/python3/dist-packages/openstack_dashboard/conf/
