File: rules

package info (click to toggle)
keystone 2%3A28.0.0-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 13,428 kB
  • sloc: python: 125,079; pascal: 2,239; sh: 877; xml: 335; makefile: 216
file content (130 lines) | stat: -rwxr-xr-x 6,906 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#!/usr/bin/make -f

# auth_token middleware now requires access to HOME, otherwise
# test suite cause FTBFS.  See (LP: #1031022)
export HOME="$(CURDIR)/debian/tests/"

# This is to avoid git clone of keystoneclient when running unit tests.
# See https://review.openstack.org/122768/
export KSCTEST_PATH=/usr/lib/python3/dist-packages/keystoneclient

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

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

override_dh_clean:
	rm -rf $(CURDIR)/build $(CURDIR)/keystone.egg-info $(CURDIR)/.cache
	rm -rf $(CURDIR)/keystone/test/keystone.sql.log $(CURDIR)/keystone/test/keystone.ldap.log
	rm -rf $(CURDIR)/doc/build
	# NOTE(adam_g) The following stuff is built in /doc/source.  Safe for now, but
	# should be fixed upstream or updated here post-essex
	rm -rf $(CURDIR)/doc/source/keystone*.rst
	rm -rf $(CURDIR)/doc/source/modules.rst
	rm -rf $(CURDIR)/doc/source/sourcecode $(CURDIR)/doc/source/api
	rm -f $(CURDIR)/doc/source/_static/keystone.conf.sample
	rm -f $(CURDIR)/doc/source/_static/keystone.policy.yaml.sample
	rm -rf $(CURDIR)/admin.log $(CURDIR)/keystone-legacy-auth.log
	rm -f $(CURDIR)/debian/keystone.config $(CURDIR)/debian/keystone.postinst debian/keystone.service debian/keystone.init
	find $(CURDIR)/keystone/tests -name '*.db' -delete
	rm -rf $(CURDIR)/vendor keystone/tests/unit/tmp keystone/tests/tmp
	rm -rf $(CURDIR)/.stestr '"'
	rm -f $(CURDIR)/debian/tests/testing.db
	rm -f $(CURDIR)/debian/keystone.keystone*.init $(CURDIR)/debian/keystone.keystone*.service $(CURDIR)/debian/keystone.keystone*.upstart
	find $(CURDIR) -name '*.pyc' -delete
	for i in $$(find . -type d -iname __pycache__) ; do rm -rf $$i ; done
	rm -f AUTHORS ChangeLog
	dh_clean

override_dh_auto_build:
	/usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func keystone.config
	/usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func keystone.postinst

override_dh_auto_clean:
	python3 setup.py clean

override_dh_auto_test:
	echo "Do nothing..."

override_dh_auto_install:
	echo "Doing nothing..."

override_dh_install:
	for i in $(PYTHON3S) ; do \
		PYTHON=python$$i python$$i setup.py install --install-layout=deb --root $(CURDIR)/debian/tmp ; \
	done

ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS)))
	# See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1078623
	# and https://bugs.launchpad.net/keystone/+bug/2076992
	# test_v3_auth\.TrustAPIBehavior\.test_redelegate_with_role_by_name
	# test_v3_auth\.TrustAPIBehavior\.test_redelegation_terminator
	# test_v3_auth\.TrustAPIBehavior\.test_roles_subset
	# test_v3_auth\.TestTrustAuthFernetTokenProvider\.test_redelegate_with_role_by_name
	# test_v3_auth\.TestTrustAuthFernetTokenProvider\.test_redelegation_terminator
	# test_v3_auth\.TestTrustAuthFernetTokenProvider\.test_roles_subset
	# Not indenpotent:
	# test_cli\.CliBootStrapTestCase\.test_bootstrap_is_not_idempotent_when_password_does_change

	@echo "===> Running tests"
	mkdir -p $(CURDIR)/keystone/tests/tmp
	pkgos-dh_auto_test --no-py2 'keystone\.tests\.unit\.(?!(.*test_v3_federation\.SAMLGenerationTests\.test_sign_assertion_exc.*|.*test_sql_upgrade.FullMigration.*|.*test_hacking_checks\.TestCheckForMutableDefaultArgs\.test.*|.*common\.test_notifications\.NotificationsTestCase.*|.*test_v3_auth\.TestAuthInfo\.test_get_method_names_duplicates.*|.*test_backend_sql\.SqlCatalog\.test_get_service_returns_not_found.*|.*tests\.test_core\.TestTestCase\.test_deprecation_warnings_are_raised_as_exceptions_in_tests.*|.*test_v3_federation.*SAMLGenerationTests.*test_sign_assertion_logs_message_if_xmlsec1_is_not_installed.*|test_v3_auth\.TrustAPIBehavior\.test_redelegate_with_role_by_name|test_v3_auth\.TrustAPIBehavior\.test_redelegation_terminator|test_v3_auth\.TrustAPIBehavior\.test_roles_subset|test_v3_auth\.TestTrustAuthFernetTokenProvider\.test_redelegate_with_role_by_name|test_v3_auth\.TestTrustAuthFernetTokenProvider\.test_redelegation_terminator|test_v3_auth\.TestTrustAuthFernetTokenProvider\.test_roles_subset|test_v3_federation\.SAMLGenerationTests\.test_saml_signing|test_v3_assignment\.AssignmentInheritanceTestCase\.test_project_id_specified_if_include_subtree_specified|test_cli\.CliBootStrapTestCase\.test_bootstrap_is_not_idempotent_when_password_does_change))'
endif

	rm -rf $(CURDIR)/debian/tmp/usr/etc
	dh_install
	dh_missing --fail-missing
	rm -rf debian/python3-keystone/usr/lib/python*/*/doc
	rm -rf debian/python3-keystone/usr/lib/python*/*/tools
	rm -rf debian/python3-keystone/usr/lib/python*/*/examples
	install -D -m 0600 $(CURDIR)/debian/logging.conf $(CURDIR)/debian/keystone/etc/keystone/logging.conf
	mkdir -p $(CURDIR)/debian/keystone/usr/share/keystone
	PYTHONPATH=$(CURDIR)/debian/tmp/usr/lib/python3/dist-packages oslo-config-generator \
		--output-file $(CURDIR)/debian/keystone/usr/share/keystone/keystone.conf \
		--wrap-width 140 \
		--namespace keystone \
		--namespace oslo.cache \
		--namespace oslo.log \
		--namespace oslo.messaging \
		--namespace oslo.policy \
		--namespace oslo.db \
		--namespace oslo.middleware \
		--namespace osprofiler
	pkgos-fix-config-default $(CURDIR)/debian/keystone/usr/share/keystone/keystone.conf catalog template_file /etc/keystone/default_catalog.templates
	pkgos-fix-config-default $(CURDIR)/debian/keystone/usr/share/keystone/keystone.conf DEFAULT log_dir /var/log/keystone
	pkgos-fix-config-default $(CURDIR)/debian/keystone/usr/share/keystone/keystone.conf DEFAULT log_file keystone.log
	pkgos-fix-config-default $(CURDIR)/debian/keystone/usr/share/keystone/keystone.conf federation sso_callback_template /etc/keystone/sso_callback_template.html

	mkdir -p $(CURDIR)/debian/keystone/etc/keystone/policy.d
	PYTHONPATH=$(CURDIR)/debian/tmp/usr/lib/python3/dist-packages oslopolicy-sample-generator \
		--output-file $(CURDIR)/debian/keystone/etc/keystone/policy.d/00_default_policy.yaml \
		--format yaml \
		--namespace keystone

	# Comment out deprecated policies
	sed -i 's/^"/#"/' $(CURDIR)/debian/keystone/etc/keystone/policy.d/00_default_policy.yaml

	# Use the policy.d folder
	pkgos-fix-config-default $(CURDIR)/debian/keystone/usr/share/keystone/keystone.conf oslo_policy policy_dirs /etc/keystone/policy.d

	install -D -m 0644 debian/keystone.apparmor $(CURDIR)/debian/keystone/etc/apparmor.d/usr.bin.keystone-all
	dh_apparmor --profile-name=usr.bin.keystone-all

override_dh_sphinxdoc:
ifeq (,$(findstring nodoc, $(DEB_BUILD_OPTIONS)))
	PYTHONPATH=. PYTHON=python3 python3 -m sphinx -b html doc/source $(CURDIR)/debian/keystone-doc/usr/share/doc/keystone-doc/html
	dh_sphinxdoc
endif

override_dh_installman:
ifeq (,$(findstring nodoc, $(DEB_BUILD_OPTIONS)))
	PYTHONPATH=. PYTHON=python3 python3 -m sphinx -b man doc/source doc/build/man
	dh_installman
endif

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

#override_dh_installmenu:
#	dh_installinit --name=keystone-admin
#	dh_installinit --name=keystone-public