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
|