diff --git a/dev-python/bandit/Manifest b/dev-python/bandit/Manifest index 9095d569d0d1c..835e8b3fd358c 100644 --- a/dev-python/bandit/Manifest +++ b/dev-python/bandit/Manifest @@ -1,2 +1,3 @@ DIST bandit-0.13.2.tar.gz 68888 SHA256 ef78c4dda20f758f95aca467fbb6609a696b6df13104d324b329b1bca963e30d SHA512 0809b7bca2f88e579760c7dcd3fedd1bdd394930eb0cd203ec24d75a18cc8007fa0db304a378f2d99d9cfd5e8b1f34a4ebe427a4bcb5daadf3d29acf0a26da42 WHIRLPOOL c91c140a79816d55f46b4b81e8554e2e36ff47b217da0258cc8ca220b59fd1b0622bd938956280ee111ee994cee81a442da3148fc1be9f0ff8c7d1ea2cdc305d DIST bandit-1.0.1.tar.gz 130662 SHA256 3d3a88bf82375cd18ab889c2bf86dcf840798c74a1a6b8d3015071d9ebf2dcd7 SHA512 47e82de934d1f7b28d4d9acbc33b7cd704bab9332b1ef5815e8f6f8b6c99763b758716782ae0a6b0a7db393e0ec6d619c9c3c70e2e645f23dff28b0de04250d2 WHIRLPOOL f0df1e05bce8c6ee0909ceae6bba0c5f7591a229f99c7c38a726460fb363720a28d87fc47aaa197d00b84c01b3b570a61da82c1902f4b4611b332e2b6d0fb9ad +DIST bandit-1.1.0.tar.gz 135333 SHA256 b5a011ab77bb9d9f7aca349732db7b9789ebe86a57a9cb49314abcb41161a15e SHA512 0344be4c98b4f1df056761f7735fa0b23dc234c64ca0090d3e665899905eaac9d49750a7ebe6f7f9e4c39d07f3c2cb0d653cc65c0e56dfadac0caeac5799af94 WHIRLPOOL 3df6eb26693d2d0b40ebbcb6774e2a0bba2cda8fad62952467a3b18b1cf538758fefeb2b2281c0c3c5d5de5674ab177ed38263c50451c250502b740df8f1545b diff --git a/dev-python/bandit/bandit-1.1.0.ebuild b/dev-python/bandit/bandit-1.1.0.ebuild new file mode 100644 index 0000000000000..723b7be190c45 --- /dev/null +++ b/dev-python/bandit/bandit-1.1.0.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +PYTHON_COMPAT=( python{2_7,3_{4,5}} ) + +inherit distutils-r1 + +DESCRIPTION="A security linter from OpenStack Security" +HOMEPAGE="https://openstack.org" +SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" +IUSE="test" + +CDEPEND=">=dev-python/pbr-1.8.0[${PYTHON_USEDEP}]" +DEPEND=" + dev-python/setuptools[${PYTHON_USEDEP}] + ${CDEPEND} + test? ( + >=dev-python/coverage-3.6[${PYTHON_USEDEP}] + >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}] + >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}] + =dev-python/mock-2.0.0[${PYTHON_USEDEP}] + >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}] + >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}] + >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}] + >=dev-python/testtools-1.4.0[${PYTHON_USEDEP}] + >=dev-python/oslotest-1.10.0[${PYTHON_USEDEP}] + >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}] + !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}] + =dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}] + !~dev-python/oslo-sphinx-3.4.0[${PYTHON_USEDEP}] + dev-python/beautifulsoup:4[${PYTHON_USEDEP}] + >=dev-python/reno-1.8.0[${PYTHON_USEDEP}] + )" +RDEPEND=" + ${CDEPEND} + >=dev-python/git-python-1.0.1[${PYTHON_USEDEP}] + >=dev-python/pyyaml-3.1.0[${PYTHON_USEDEP}] + >=dev-python/six-1.9.0[${PYTHON_USEDEP}] + >=dev-python/stevedore-1.16.0[${PYTHON_USEDEP}]" + +python_test() { + testr init + testr run || die +} diff --git a/dev-python/dogpile-cache/Manifest b/dev-python/dogpile-cache/Manifest index 39163965d5820..1a702001453f3 100644 --- a/dev-python/dogpile-cache/Manifest +++ b/dev-python/dogpile-cache/Manifest @@ -1 +1,2 @@ DIST dogpile.cache-0.6.1.tar.gz 324046 SHA256 69b52dc56bb52d974e9e9fb2764e1311abcd1fd625de07b4e5c05550ac9b40c0 SHA512 c4743a88688d8f596469f2b3adf0cd862dd32891ae8c50d0c0421a984dfec872cbbecf936f704cf4351ae26b3ab4a26ae3b416f7c7f2ce3c41f8da2c9223178b WHIRLPOOL 3e9d4f8475efd34786f8722a9073cbb434bef8a8f5ada22e0309b143fda2a3909af91d69fb2092f6443a1e4ede9650529afbae2514c1374739582eecf05e1ffc +DIST dogpile.cache-0.6.2.tar.gz 329762 SHA256 73793471af07af6dc5b3ee015abfaca4220caaa34c615537f5ab007ed150726d SHA512 5882e0a355db0bec9c1a0836034481d39008051ff42f48c85679ac70a42c6366d1bcbd01ecd3ca868d7ad725197e626e52b004d62269827e2605a4ecd491ce99 WHIRLPOOL c88f0c503b157c65aae4881b7339c7af7f5b5b045d812220e59736fc78737ae7004bbc0595b5cfed590e5b7d76331b156fa0f28805981bee49ff666a3172ee78 diff --git a/dev-python/dogpile-cache/dogpile-cache-0.6.2.ebuild b/dev-python/dogpile-cache/dogpile-cache-0.6.2.ebuild new file mode 100644 index 0000000000000..78c103a5df651 --- /dev/null +++ b/dev-python/dogpile-cache/dogpile-cache-0.6.2.ebuild @@ -0,0 +1,36 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +PYTHON_COMPAT=( python{2_7,3_3,3_4,3_5} ) + +inherit distutils-r1 + +DESCRIPTION="A locking API for expiring values while a single thread generates a new value." +HOMEPAGE="https://bitbucket.org/zzzeek/dogpile.cache" +SRC_URI="mirror://pypi/${PN:0:1}/dogpile.cache/dogpile.cache-${PV}.tar.gz" +S="${WORKDIR}/dogpile.cache-${PV}" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" +IUSE="test" + +RDEPEND="" +DEPEND="dev-python/setuptools[${PYTHON_USEDEP}] + test? ( dev-python/pytest[${PYTHON_USEDEP}] + dev-python/pytest-cov[${PYTHON_USEDEP}] + dev-python/mock[${PYTHON_USEDEP}] + dev-python/mako[${PYTHON_USEDEP}] )" + +# This time half the doc files are missing; Do you want them? toss a coin + +python_test() { + # crikey. testsuite written for py3, 5 tests fail under py2.7 + if [[ "${EPYTHON}" != "python2.7" ]]; then + nosetests || die "test failed under ${EPYTHON}" + else + einfo "testsuite restricted for python2.7" + fi +} diff --git a/dev-python/fixtures/Manifest b/dev-python/fixtures/Manifest index f1a48cf2fb95f..755b8d7b9283b 100644 --- a/dev-python/fixtures/Manifest +++ b/dev-python/fixtures/Manifest @@ -1 +1,2 @@ DIST fixtures-1.4.0.tar.gz 50411 SHA256 3e1c61753d0fafc1429591d33ad6b828a0673a200eae63dd6ac0685479db5d36 SHA512 62e314821ea507ab5c1465fb626c29c91430b36ae4670fd05a3aa7180452989c393d35ab623da3646b25cf671a84861ab68d9529d04ae759c0d38efca7c7d8cf WHIRLPOOL ad2b0ebf50a01aad4ec6924511eb3d174ebf4ac11306ed2873896380456a20e3fc5b7d84791035cffdc77561664f09f04935ef73246554110df756d8213d469a +DIST fixtures-3.0.0.tar.gz 56629 SHA256 fcf0d60234f1544da717a9738325812de1f42c2fa085e2d9252d8fff5712b2ef SHA512 e52ba864c42d15a8baa60583761006b2dd78e3cd5f3f043f5702346aef428b933d62e8fa5889b7cb4196e4072acc5df3b7ffa39702a1b782887bdc109299b695 WHIRLPOOL 93f92dc2da126cfd175ec44a783d94b57d0ecfb168887d5117fc723129ecf6dca04ce3aa7186ff9f1c6053b3b7615b1cd961c9d365fca44557fe43f29e87b19e diff --git a/dev-python/fixtures/fixtures-3.0.0.ebuild b/dev-python/fixtures/fixtures-3.0.0.ebuild new file mode 100644 index 0000000000000..fcd4444cb7e88 --- /dev/null +++ b/dev-python/fixtures/fixtures-3.0.0.ebuild @@ -0,0 +1,32 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +PYTHON_COMPAT=( python2_7 python3_{4,5} pypy pypy3 ) + +inherit distutils-r1 + +DESCRIPTION="Fixtures, reusable state for writing clean tests and more" +HOMEPAGE="https://launchpad.net/python-fixtures https://pypi.python.org/pypi/fixtures" +SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + +LICENSE="|| ( Apache-2.0 BSD )" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="test" + +# nose not listed but provides coverage output of tests +# run of test files by python lacks any output except on fail +RDEPEND=" + >=dev-python/pbr-0.11[${PYTHON_USEDEP}] + dev-python/six[${PYTHON_USEDEP}] + >=dev-python/testtools-0.9.22[${PYTHON_USEDEP}]" +DEPEND="${RDEPEND} + test? ( dev-python/mock[${PYTHON_USEDEP}] )" +#DISTUTILS_IN_SOURCE_BUILD=1 + +python_test() { + emake check +} diff --git a/dev-python/keystoneauth/Manifest b/dev-python/keystoneauth/Manifest index 020aed13bd517..22348e430b36c 100644 --- a/dev-python/keystoneauth/Manifest +++ b/dev-python/keystoneauth/Manifest @@ -1 +1,2 @@ +DIST keystoneauth1-2.12.1.tar.gz 174620 SHA256 939d89d2998368670f3aad736b7489b6186cceacc5e36623daebab2c07baacf0 SHA512 ce8ecbbc246bf68d1c256754c6637f5477ebac0648065e54e3a63f921349c61c18bbe5f81c817b1fbb7eaed01948ef3b73f0f1e214f1af75f0203be4a8011508 WHIRLPOOL 2f75d5b52499129621268011c22572496704c6796c973d7f627fff6fc4ab2a05b3cf8f67edd8299b1cbc8529352a86cf7e6f71a0b89bdc1da24b4fa7cd5465df DIST keystoneauth1-2.4.1.tar.gz 150586 SHA256 61a2f4cf374b55f10a0d8250a532ccb93dff2ea81994ced15b2a34af055d4e78 SHA512 f9e8fcea7b23001b907d643d5bf67fc4779c8729cca213b3240ef988eda9de1212b15c2031f6fd8b431aafac85e773346eda71e0b414fe967728611b6817fb05 WHIRLPOOL 42644ede5c0db10ffe77ef106d78764dcb49d455dbc09e3660160b9d7a9eb3453118f6777469f9779e2fca34eb9e09cf3ef759f2f27cc38b8dca8520b9febd43 diff --git a/dev-python/keystoneauth/keystoneauth-2.12.1.ebuild b/dev-python/keystoneauth/keystoneauth-2.12.1.ebuild new file mode 100644 index 0000000000000..4364126c8458e --- /dev/null +++ b/dev-python/keystoneauth/keystoneauth-2.12.1.ebuild @@ -0,0 +1,28 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 +PYTHON_COMPAT=( python2_7 python3_4 python3_5 ) + +inherit distutils-r1 + +DESCRIPTION="This package contains tools for authenticating to an OpenStack-based cloud." +HOMEPAGE="https://github.com/openstack/keystoneauth" +SRC_URI="mirror://pypi/${PN:0:1}/${PN}1/${PN}1-${PV}.tar.gz" +S="${WORKDIR}/${PN}1-${PV}" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" +IUSE="" + +CDEPEND=">=dev-python/pbr-1.6[${PYTHON_USEDEP}]" +DEPEND="dev-python/setuptools[${PYTHON_USEDEP}] + ${CDEPEND}" +RDEPEND="${CDEPEND} + >=dev-python/iso8601-0.1.11[${PYTHON_USEDEP}] + >=dev-python/positional-1.0.1[${PYTHON_USEDEP}] + >=dev-python/requests-2.10.0[${PYTHON_USEDEP}] + >=dev-python/six-1.9.0[${PYTHON_USEDEP}] + >=dev-python/stevedore-1.16.0[${PYTHON_USEDEP}]" diff --git a/dev-python/keystonemiddleware/Manifest b/dev-python/keystonemiddleware/Manifest index 9807f7ec00023..28b9d8a8fee5f 100644 --- a/dev-python/keystonemiddleware/Manifest +++ b/dev-python/keystonemiddleware/Manifest @@ -1 +1,2 @@ DIST keystonemiddleware-4.4.1.tar.gz 194711 SHA256 dff35f0e4acb77f34c9c880bd4f456bbe26a1c4701815d82e8c27ff74a5dfb52 SHA512 c04383836740222d49324cb5f25f8b156424abaa74ac9482a2deb2e1d54cc6d990a864451a075bc12c3d7d38da7235f236e8a8cfb4c3748953c14a4505eeb99f WHIRLPOOL 76a96e6140752cd8eb1d060591c5dec1181abf873c82595be89d9597e3c3e5d3344739fab6b8d0058ae2ab47863e5169d4bbcb4a83f46a24dea042c0ccfac8d0 +DIST keystonemiddleware-4.9.0.tar.gz 198244 SHA256 5d92ef9321a49f06c59d53a92fecc572c559d054abd7f5b7ce5945916770b993 SHA512 0b8870e93bfba3c385cac4515f86a15cc72371f1274db284560d4ecb0e6f4f50064b093a91060728051a2d0732ae7c40a9d2d2dd8b0cfa29ca527b6dceba9e80 WHIRLPOOL 6fd48a653bbe6d5d7d2c40a97dd46310489a153a55e5096d007a54dfd944e22c0f758715e100138f46fbbada241cce5da94338c89be3b293c2142f6cc328ac54 diff --git a/dev-python/keystonemiddleware/files/CVE-2015-7546_2.3.2.patch b/dev-python/keystonemiddleware/files/CVE-2015-7546_2.3.2.patch deleted file mode 100644 index fa20d325696b1..0000000000000 --- a/dev-python/keystonemiddleware/files/CVE-2015-7546_2.3.2.patch +++ /dev/null @@ -1,596 +0,0 @@ -From 9167afaafc216c63fdc875e737bc379400e94059 Mon Sep 17 00:00:00 2001 -From: Brant Knudson -Date: Tue, 1 Dec 2015 16:08:00 -0600 -Subject: [PATCH] auth_token verify revocation by audit_id - -If the revocation list includes audit_ids, then when doing offline -validation also validate the token isn't revoked by audit_id. - -Backport notes: -- test_auth_token_middleware was refactored with commit 9cbd47b to - check responses differently, so the test changed to use the old - method. -- reno was not supported so the release note is removed. - -Closes-Bug: 1490804 -Change-Id: I483bc57bd38eb81a0905bcaf94e4ea82604919d6 -(cherry picked from commit 96ab58e6863c92575ada57615b19652e502adfd8) ---- - examples/pki/cms/auth_token_scoped.json | 5 +- - examples/pki/cms/auth_token_scoped.pem | 148 ++++++++-------- - examples/pki/cms/auth_token_scoped.pkiz | 2 +- - examples/pki/cms/auth_v3_token_scoped.json | 3 + - examples/pki/cms/auth_v3_token_scoped.pem | 190 +++++++++++---------- - examples/pki/cms/auth_v3_token_scoped.pkiz | 2 +- - keystonemiddleware/auth_token/__init__.py | 12 ++ - keystonemiddleware/auth_token/_revocations.py | 22 +++ - .../unit/auth_token/test_auth_token_middleware.py | 24 +++ - .../tests/unit/auth_token/test_revocations.py | 47 ++++- - 10 files changed, 281 insertions(+), 174 deletions(-) - -diff --git a/examples/pki/cms/auth_token_scoped.json b/examples/pki/cms/auth_token_scoped.json -index 698e01d..cf18fa1 100644 ---- a/examples/pki/cms/auth_token_scoped.json -+++ b/examples/pki/cms/auth_token_scoped.json -@@ -8,7 +8,10 @@ - "enabled": true, - "description": null, - "name": "tenant_name1" -- } -+ }, -+ "audit_ids": [ -+ "SLIXlXQUQZWUi9VJrqdXqA" -+ ] - }, - "serviceCatalog": [ - { -diff --git a/examples/pki/cms/auth_token_scoped.pem b/examples/pki/cms/auth_token_scoped.pem -index 4a5b3a2..68f5049 100644 ---- a/examples/pki/cms/auth_token_scoped.pem -+++ b/examples/pki/cms/auth_token_scoped.pem -@@ -1,75 +1,77 @@ - -----BEGIN CMS----- --MIINhwYJKoZIhvcNAQcCoIINeDCCDXQCAQExCTAHBgUrDgMCGjCCC5QGCSqGSIb3 --DQEHAaCCC4UEgguBew0KICAgICJhY2Nlc3MiOiB7DQogICAgICAgICJ0b2tlbiI6 --IHsNCiAgICAgICAgICAgICJleHBpcmVzIjogIjIwMzgtMDEtMThUMjE6MTQ6MDda --IiwNCiAgICAgICAgICAgICJpZCI6ICJwbGFjZWhvbGRlciIsDQogICAgICAgICAg --ICAidGVuYW50Ijogew0KICAgICAgICAgICAgICAgICJpZCI6ICJ0ZW5hbnRfaWQx --IiwNCiAgICAgICAgICAgICAgICAiZW5hYmxlZCI6IHRydWUsDQogICAgICAgICAg --ICAgICAgImRlc2NyaXB0aW9uIjogbnVsbCwNCiAgICAgICAgICAgICAgICAibmFt --ZSI6ICJ0ZW5hbnRfbmFtZTEiDQogICAgICAgICAgICB9DQogICAgICAgIH0sDQog --ICAgICAgICJzZXJ2aWNlQ2F0YWxvZyI6IFsNCiAgICAgICAgICAgIHsNCiAgICAg --ICAgICAgICAgICAiZW5kcG9pbnRzX2xpbmtzIjogW10sDQogICAgICAgICAgICAg --ICAgImVuZHBvaW50cyI6IFsNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAg --ICAgICAgICAgICAgICAgICAgImFkbWluVVJMIjogImh0dHA6Ly8xMjcuMC4wLjE6 --ODc3Ni92MS82NGI2ZjNmYmNjNTM0MzVlOGE2MGZjZjg5YmI2NjE3YSIsDQogICAg --ICAgICAgICAgICAgICAgICAgICAicmVnaW9uIjogInJlZ2lvbk9uZSIsDQogICAg --ICAgICAgICAgICAgICAgICAgICAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzEyNy4w --LjAuMTo4Nzc2L3YxLzY0YjZmM2ZiY2M1MzQzNWU4YTYwZmNmODliYjY2MTdhIiwN --CiAgICAgICAgICAgICAgICAgICAgICAgICJwdWJsaWNVUkwiOiAiaHR0cDovLzEy --Ny4wLjAuMTo4Nzc2L3YxLzY0YjZmM2ZiY2M1MzQzNWU4YTYwZmNmODliYjY2MTdh --Ig0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgXSwNCiAg --ICAgICAgICAgICAgICAidHlwZSI6ICJ2b2x1bWUiLA0KICAgICAgICAgICAgICAg --ICJuYW1lIjogInZvbHVtZSINCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7 --DQogICAgICAgICAgICAgICAgImVuZHBvaW50c19saW5rcyI6IFtdLA0KICAgICAg --ICAgICAgICAgICJlbmRwb2ludHMiOiBbDQogICAgICAgICAgICAgICAgICAgIHsN --CiAgICAgICAgICAgICAgICAgICAgICAgICJhZG1pblVSTCI6ICJodHRwOi8vMTI3 --LjAuMC4xOjkyOTIvdjEiLA0KICAgICAgICAgICAgICAgICAgICAgICAgInJlZ2lv --biI6ICJyZWdpb25PbmUiLA0KICAgICAgICAgICAgICAgICAgICAgICAgImludGVy --bmFsVVJMIjogImh0dHA6Ly8xMjcuMC4wLjE6OTI5Mi92MSIsDQogICAgICAgICAg --ICAgICAgICAgICAgICAicHVibGljVVJMIjogImh0dHA6Ly8xMjcuMC4wLjE6OTI5 --Mi92MSINCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIF0s --DQogICAgICAgICAgICAgICAgInR5cGUiOiAiaW1hZ2UiLA0KICAgICAgICAgICAg --ICAgICJuYW1lIjogImdsYW5jZSINCiAgICAgICAgICAgIH0sDQogICAgICAgICAg --ICB7DQogICAgICAgICAgICAgICAgImVuZHBvaW50c19saW5rcyI6IFtdLA0KICAg --ICAgICAgICAgICAgICJlbmRwb2ludHMiOiBbDQogICAgICAgICAgICAgICAgICAg --IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICJhZG1pblVSTCI6ICJodHRwOi8v --MTI3LjAuMC4xOjg3NzQvdjEuMS82NGI2ZjNmYmNjNTM0MzVlOGE2MGZjZjg5YmI2 --NjE3YSIsDQogICAgICAgICAgICAgICAgICAgICAgICAicmVnaW9uIjogInJlZ2lv --bk9uZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAiaW50ZXJuYWxVUkwiOiAi --aHR0cDovLzEyNy4wLjAuMTo4Nzc0L3YxLjEvNjRiNmYzZmJjYzUzNDM1ZThhNjBm --Y2Y4OWJiNjYxN2EiLA0KICAgICAgICAgICAgICAgICAgICAgICAgInB1YmxpY1VS --TCI6ICJodHRwOi8vMTI3LjAuMC4xOjg3NzQvdjEuMS82NGI2ZjNmYmNjNTM0MzVl --OGE2MGZjZjg5YmI2NjE3YSINCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAg --ICAgICAgICAgIF0sDQogICAgICAgICAgICAgICAgInR5cGUiOiAiY29tcHV0ZSIs --DQogICAgICAgICAgICAgICAgIm5hbWUiOiAibm92YSINCiAgICAgICAgICAgIH0s --DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgImVuZHBvaW50c19saW5r --cyI6IFtdLA0KICAgICAgICAgICAgICAgICJlbmRwb2ludHMiOiBbDQogICAgICAg --ICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICJhZG1pblVS --TCI6ICJodHRwOi8vMTI3LjAuMC4xOjM1MzU3L3YyLjAiLA0KICAgICAgICAgICAg --ICAgICAgICAgICAgInJlZ2lvbiI6ICJSZWdpb25PbmUiLA0KICAgICAgICAgICAg --ICAgICAgICAgICAgImludGVybmFsVVJMIjogImh0dHA6Ly8xMjcuMC4wLjE6MzUz --NTcvdjIuMCIsDQogICAgICAgICAgICAgICAgICAgICAgICAicHVibGljVVJMIjog --Imh0dHA6Ly8xMjcuMC4wLjE6NTAwMC92Mi4wIg0KICAgICAgICAgICAgICAgICAg --ICB9DQogICAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICAgICAidHlwZSI6 --ICJpZGVudGl0eSIsDQogICAgICAgICAgICAgICAgIm5hbWUiOiAia2V5c3RvbmUi --DQogICAgICAgICAgICB9DQogICAgICAgIF0sDQogICAgICAgICJ1c2VyIjogew0K --ICAgICAgICAgICAgInVzZXJuYW1lIjogInVzZXJfbmFtZTEiLA0KICAgICAgICAg --ICAgInJvbGVzX2xpbmtzIjogWw0KICAgICAgICAgICAgICAgICJyb2xlMSIsDQog --ICAgICAgICAgICAgICAgInJvbGUyIg0KICAgICAgICAgICAgXSwNCiAgICAgICAg --ICAgICJpZCI6ICJ1c2VyX2lkMSIsDQogICAgICAgICAgICAicm9sZXMiOiBbDQog --ICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJy --b2xlMSINCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIHsNCiAg --ICAgICAgICAgICAgICAgICAgIm5hbWUiOiAicm9sZTIiDQogICAgICAgICAgICAg --ICAgfQ0KICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICJuYW1lIjogInVzZXJf --bmFtZTEiDQogICAgICAgIH0NCiAgICB9DQp9DQoxggHKMIIBxgIBATCBpDCBnjEK --MAgGA1UEBRMBNTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRIwEAYDVQQHEwlT --dW5ueXZhbGUxEjAQBgNVBAoTCU9wZW5TdGFjazERMA8GA1UECxMIS2V5c3RvbmUx --JTAjBgkqhkiG9w0BCQEWFmtleXN0b25lQG9wZW5zdGFjay5vcmcxFDASBgNVBAMT --C1NlbGYgU2lnbmVkAgERMAcGBSsOAwIaMA0GCSqGSIb3DQEBAQUABIIBAGFaC8Po --svBez6wHfGxgqtX+Zk7kFH0xu/JA7fWp8L5e1k1q+wsSII/P6rATOXR8BSPwifat --mKRan9kzerLeb3A5g07VphvHfVkDEVaeihi33bpt7140ELSKu/ogWQPtasjBM9Eb --M9pS4N5NCtZ0erE5DgX//IRfrHFdZuhIbwlmei72692PV7Q70t/rbaH8ofIrH7Rz --Z1Kuvj0+7tELgd52wy5YnU0e879OEj+2qUk30TvqRG9jdKxLSanmR/8dSA2eNNgO --oHrtXc4EmpWFbP6yVxNwK3dQ6OvU4virV1YW5+De2ApLt+IeojaVPGnDPfsRvY5x --t0eIwpDqkgvkRP8= -+MIIN5QYJKoZIhvcNAQcCoIIN1jCCDdICAQExDTALBglghkgBZQMEAgEwggvqBgkq -+hkiG9w0BBwGgggvbBIIL13sNCiAgICAiYWNjZXNzIjogew0KICAgICAgICAidG9r -+ZW4iOiB7DQogICAgICAgICAgICAiZXhwaXJlcyI6ICIyMDM4LTAxLTE4VDIxOjE0 -+OjA3WiIsDQogICAgICAgICAgICAiaWQiOiAicGxhY2Vob2xkZXIiLA0KICAgICAg -+ICAgICAgInRlbmFudCI6IHsNCiAgICAgICAgICAgICAgICAiaWQiOiAidGVuYW50 -+X2lkMSIsDQogICAgICAgICAgICAgICAgImVuYWJsZWQiOiB0cnVlLA0KICAgICAg -+ICAgICAgICAgICJkZXNjcmlwdGlvbiI6IG51bGwsDQogICAgICAgICAgICAgICAg -+Im5hbWUiOiAidGVuYW50X25hbWUxIg0KICAgICAgICAgICAgfSwNCiAgICAgICAg -+ICAgICJhdWRpdF9pZHMiOiBbDQogICAgICAgICAgICAgICAgIlNMSVhsWFFVUVpX -+VWk5VkpycWRYcUEiDQogICAgICAgICAgICBdDQogICAgICAgIH0sDQogICAgICAg -+ICJzZXJ2aWNlQ2F0YWxvZyI6IFsNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAg -+ICAgICAiZW5kcG9pbnRzX2xpbmtzIjogW10sDQogICAgICAgICAgICAgICAgImVu -+ZHBvaW50cyI6IFsNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAg -+ICAgICAgICAgICAgImFkbWluVVJMIjogImh0dHA6Ly8xMjcuMC4wLjE6ODc3Ni92 -+MS82NGI2ZjNmYmNjNTM0MzVlOGE2MGZjZjg5YmI2NjE3YSIsDQogICAgICAgICAg -+ICAgICAgICAgICAgICAicmVnaW9uIjogInJlZ2lvbk9uZSIsDQogICAgICAgICAg -+ICAgICAgICAgICAgICAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzEyNy4wLjAuMTo4 -+Nzc2L3YxLzY0YjZmM2ZiY2M1MzQzNWU4YTYwZmNmODliYjY2MTdhIiwNCiAgICAg -+ICAgICAgICAgICAgICAgICAgICJwdWJsaWNVUkwiOiAiaHR0cDovLzEyNy4wLjAu -+MTo4Nzc2L3YxLzY0YjZmM2ZiY2M1MzQzNWU4YTYwZmNmODliYjY2MTdhIg0KICAg -+ICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgXSwNCiAgICAgICAg -+ICAgICAgICAidHlwZSI6ICJ2b2x1bWUiLA0KICAgICAgICAgICAgICAgICJuYW1l -+IjogInZvbHVtZSINCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAg -+ICAgICAgICAgICAgImVuZHBvaW50c19saW5rcyI6IFtdLA0KICAgICAgICAgICAg -+ICAgICJlbmRwb2ludHMiOiBbDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAg -+ICAgICAgICAgICAgICAgICAgICJhZG1pblVSTCI6ICJodHRwOi8vMTI3LjAuMC4x -+OjkyOTIvdjEiLA0KICAgICAgICAgICAgICAgICAgICAgICAgInJlZ2lvbiI6ICJy -+ZWdpb25PbmUiLA0KICAgICAgICAgICAgICAgICAgICAgICAgImludGVybmFsVVJM -+IjogImh0dHA6Ly8xMjcuMC4wLjE6OTI5Mi92MSIsDQogICAgICAgICAgICAgICAg -+ICAgICAgICAicHVibGljVVJMIjogImh0dHA6Ly8xMjcuMC4wLjE6OTI5Mi92MSIN -+CiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIF0sDQogICAg -+ICAgICAgICAgICAgInR5cGUiOiAiaW1hZ2UiLA0KICAgICAgICAgICAgICAgICJu -+YW1lIjogImdsYW5jZSINCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQog -+ICAgICAgICAgICAgICAgImVuZHBvaW50c19saW5rcyI6IFtdLA0KICAgICAgICAg -+ICAgICAgICJlbmRwb2ludHMiOiBbDQogICAgICAgICAgICAgICAgICAgIHsNCiAg -+ICAgICAgICAgICAgICAgICAgICAgICJhZG1pblVSTCI6ICJodHRwOi8vMTI3LjAu -+MC4xOjg3NzQvdjEuMS82NGI2ZjNmYmNjNTM0MzVlOGE2MGZjZjg5YmI2NjE3YSIs -+DQogICAgICAgICAgICAgICAgICAgICAgICAicmVnaW9uIjogInJlZ2lvbk9uZSIs -+DQogICAgICAgICAgICAgICAgICAgICAgICAiaW50ZXJuYWxVUkwiOiAiaHR0cDov -+LzEyNy4wLjAuMTo4Nzc0L3YxLjEvNjRiNmYzZmJjYzUzNDM1ZThhNjBmY2Y4OWJi -+NjYxN2EiLA0KICAgICAgICAgICAgICAgICAgICAgICAgInB1YmxpY1VSTCI6ICJo -+dHRwOi8vMTI3LjAuMC4xOjg3NzQvdjEuMS82NGI2ZjNmYmNjNTM0MzVlOGE2MGZj -+Zjg5YmI2NjE3YSINCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg -+ICAgIF0sDQogICAgICAgICAgICAgICAgInR5cGUiOiAiY29tcHV0ZSIsDQogICAg -+ICAgICAgICAgICAgIm5hbWUiOiAibm92YSINCiAgICAgICAgICAgIH0sDQogICAg -+ICAgICAgICB7DQogICAgICAgICAgICAgICAgImVuZHBvaW50c19saW5rcyI6IFtd -+LA0KICAgICAgICAgICAgICAgICJlbmRwb2ludHMiOiBbDQogICAgICAgICAgICAg -+ICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICJhZG1pblVSTCI6ICJo -+dHRwOi8vMTI3LjAuMC4xOjM1MzU3L3YyLjAiLA0KICAgICAgICAgICAgICAgICAg -+ICAgICAgInJlZ2lvbiI6ICJSZWdpb25PbmUiLA0KICAgICAgICAgICAgICAgICAg -+ICAgICAgImludGVybmFsVVJMIjogImh0dHA6Ly8xMjcuMC4wLjE6MzUzNTcvdjIu -+MCIsDQogICAgICAgICAgICAgICAgICAgICAgICAicHVibGljVVJMIjogImh0dHA6 -+Ly8xMjcuMC4wLjE6NTAwMC92Mi4wIg0KICAgICAgICAgICAgICAgICAgICB9DQog -+ICAgICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICAgICAidHlwZSI6ICJpZGVu -+dGl0eSIsDQogICAgICAgICAgICAgICAgIm5hbWUiOiAia2V5c3RvbmUiDQogICAg -+ICAgICAgICB9DQogICAgICAgIF0sDQogICAgICAgICJ1c2VyIjogew0KICAgICAg -+ICAgICAgInVzZXJuYW1lIjogInVzZXJfbmFtZTEiLA0KICAgICAgICAgICAgInJv -+bGVzX2xpbmtzIjogWw0KICAgICAgICAgICAgICAgICJyb2xlMSIsDQogICAgICAg -+ICAgICAgICAgInJvbGUyIg0KICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICJp -+ZCI6ICJ1c2VyX2lkMSIsDQogICAgICAgICAgICAicm9sZXMiOiBbDQogICAgICAg -+ICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJyb2xlMSIN -+CiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAg -+ICAgICAgICAgICAgIm5hbWUiOiAicm9sZTIiDQogICAgICAgICAgICAgICAgfQ0K -+ICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICJuYW1lIjogInVzZXJfbmFtZTEi -+DQogICAgICAgIH0NCiAgICB9DQp9DQoxggHOMIIBygIBATCBpDCBnjEKMAgGA1UE -+BRMBNTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRIwEAYDVQQHEwlTdW5ueXZh -+bGUxEjAQBgNVBAoTCU9wZW5TdGFjazERMA8GA1UECxMIS2V5c3RvbmUxJTAjBgkq -+hkiG9w0BCQEWFmtleXN0b25lQG9wZW5zdGFjay5vcmcxFDASBgNVBAMTC1NlbGYg -+U2lnbmVkAgERMAsGCWCGSAFlAwQCATANBgkqhkiG9w0BAQEFAASCAQCgtkCXRzS8 -+s7WjZCsKDhMt6q5JQIm7x6EMKCBaOABQG9EOVIAyqfoJDdjDtz9rZEPO3UVTpPkg -+VjtA0QV97qT8bX55AcCkk7kBRDOKTtco5GOGwjMxL+GWbIwWiB7DKIP4RA6NLZtF -+WxUbLBY+OgBSiayuHqSx+Rd08QC9oHf25wRkTNp3VFPxtAleDmASzdAoIafoS+FB -+Po+9WuTaGdeya7S+ms4SSyXf9cdMKGv010R/aMINWUWaBrkB4wlespYLmKH/XzwS -+pENRIdbI9XHEOYTWKqul5tucA3p21IA24ND6acl9CXHr3KeqXpRwclSZ38Kg/23T -+92D+SowEjlGf - -----END CMS----- -diff --git a/examples/pki/cms/auth_token_scoped.pkiz b/examples/pki/cms/auth_token_scoped.pkiz -index 34d7706..cbfc082 100644 ---- a/examples/pki/cms/auth_token_scoped.pkiz -+++ b/examples/pki/cms/auth_token_scoped.pkiz -@@ -1 +1 @@ --PKIZ_eJylVst2ozgU3OsrZp_Tx4CNY5biaRFLGMx7ZyDGYMBObJ5fPwInpyedzkxmhhUIqVS36t4r_fhBH1HREPlDwrvx4wfACK1bM9CfziE6NjGBZiyd6dg1lyRxuZCgqXSSDddi6rzKKZa0cTxeaNLuRduhaA5kU1nDPR2MVkqaeo_PvX4MOFLEc5wZmfiIKvpehZeAc-XAt46RJlQoP6fe_JpFpXoD4Q4tkaRzEdexkedkGwlmocefYk24RJU1vE8OPOu293jXObUUGGb7tcXE8rkBm0HpSb9oNzmssX1ekCHmNvOg2wwBE-RhibkwCzjM4sEciOcsAjtow5KUhlxkQR5wANvJEWVtiiq9CLmiibKJUR96ySXi-G1U3lnR3ZnQ1-vA6z6wACON_8MCjDR-shDZoOwuAevubGlick7WVmtkqwbbaD5tIC06I0_nZAiaJFcaQHIrI2UwhKWeB4MzEBmzoX08klwsAy5YGJ6ekTzoCKdkB5e5UlDm2ReLUVxUhQ2I1u6NOjH-KKLSaiOuqJM1OURaUe_vVka-Txeu77a9uVZFmloHnJOBf2vbL3rxAOenfhTsvzoBvkL-CPy1uOCjuqfesNGo7mfByuIWeEkxAZZuHa7FZmQEYla40pfXuKfI6i057NqU1gOlyb4t5JukVL5McfBNscbkYqbkot7_1XrwT96PO8elW-09ob57_yb0SahH-wGNc6RUxCV_jNTvZKA5alTj3YojGuJAmFMyJcmJjRk8uIWhKRzWwjzMUz4oEUdyZR7cE61NPJ3qRb5VTL-N93fhgr_N9ZI0kS-yifa50fhcd4nK2wAmO1hW2Ei0fY060K400eNcPp5bzXsWfpXu4BsWDlQflvQCh7NF-2vKjy7svtt9fgcOPqN_t6k4LZZhA5Ic0QFd8HfjYouPtTcNPKug8V6S9elLAUctwCjg2-KGCjdlG62F4nktXmgGTpNQjlo8pDcsKzdsHx2cK0tsm0ssJ3twp013K9U6GSnTzkN3O9IwinD6tvrEc0Z7fxbY-3xVqME4iO-Zdgp9ksdl0SbaW1PReDbS2vHfJbzrwYzgNIzD3jM7VDH3Wnj72dI-l4fesYk0WhuZLoyxJz492rI7s7gUrnSTD_0SUE_pAue9pY3vPSqYXyi7A7X1MDVV-71CRzCcgRHlQwN5B6w-deKenp8Fzt4dm0DvGny1C41zsnQKoxAuoUzrxWcFHCCxp8c8jAMJ0PO_Tfdmm4aLTsohElPiitCxoe100gD1-3dgw8K1sXltJTOQXdNESqvLpq3sABahBllHETusO3O3jqqCoylcYAu1CpwmPyltsY01t3bmFr07XDvFhts78NUGknIrnn3C0Fqgdjotav96WzmJ6jF8Df1iSDTawhyxGYHiO1AdzfUKYMtslXTaSVbamx16XYlUcgkpYEgjUj5cbyAR09PL8ZRpQsuINHwVQLij9yBp74o5-3C9beMjRm4RGubu5K2F9HGJocPh_HJ7OM-zk36Nb-eHw2sxnGZ74rvrAqi2wSpx1jJyNWd7CHM1LftoqJiSh-nGUy32Js_OzhI1jmuXPJJmF9hh5aytDpquHbdgGGbIvIVPr71BcFdDy7fk2ZFJ92m33szIIMlu-IIEf-UzJFJOwolZRZ1hz-ONETD7_AwstzFmO7fpltxy63KH5wd0qXbBIt7HrOs-YWgF-_PT7CF9KnouPykraZg9YN1WOdW_7O0ckPm5UMNs268OL8QpD24qFNvu8eHFEjtI2uct79Qmn3P8cWWacap2kXw1ZCHP4Gzj16QE2-r1YrVQqwweOk_ybmMdDF83-GVNIJjuogqRf95L_wRcTpJ3 -\ No newline at end of file -+PKIZ_eJylVkuXojgY3edXzL5OnwLUKlnMgrdBwAJDgOx4KK-gVimC_PoJWFVdM93z6DNuNEFu7nfv98i3b-wjawZ0flPs7bj4BmwIV8s8MtdHAotr6khuqhzZ3nxQFFlcKpKr9SqSLDmneVHnMnFtTcq1Ls_DmZzXr6CoS0PsOFnujJxtHmUI9cXqXEaBU5HQGWB1zHc3k0uEC01K-ATZMxIWXRyaNL3BJwAVeLNVe24hqbeQNscq7DeVxm0qaRaU8AwV80QU9qJidomhVyQoronh0fT-jAMkWBTJwS03pfwMG9xGgXkmwbTm0gOmliKV8bSWyswYny-4UKC1vZ0AWhAFPB1pwoNHk0ZvM11sx733P9QsjCptaJcZ9DqFYCz4xOjFETgKcQ3i0NvHgTfFGtxMhDQaJXrhYazHmMenDSbr9KDXwUqXIeWnF1MB37KGVsR3CpAZ-jkR0pFywsRiLLwuEWibreyPvYIY_CmheIvuWhyzlddtyuXVRnAGrEpqbWXOhMtnzhBds0q7OpVXOk00kMasosEfHNXmCSoKp5KbSIjmm8AsnSrqHUErwUSpwYc4ENu7FiYlAou3Flty1-GUMH3Shomt_8gCjDT-Dwsw0phYrHCZGLTC2LQnJk3BZSvpybote7tKxwM6q9KeNmo6c0pRsLdLwTGgAEjFzmmcykE2Zw-YbgxNsA1SkSpfRA0UnEqbRVtTDLddPuYJWcnXmOVCyotn9v0GxnSE-iUbWWQr2rG4xxiFROj5JPAndiw_Ln_d3zPA0TXwq7Z916u-bRC8AiZY-X-cAH-H_An8L-KCT3URXNiTun8v2M_0AhO9QD-8U20_i6vJzqzyKsIALeVeqZ-AdyC2p9cgCWj7n7xXRnbz3hoiLqpIYwukjASbB_bgDk7gzyMUdaRxmo1Ky6hij1BWwLL7Lmg5CXcjQXZKhMVL0twtBiMlEo7Ue-zX3dQ44pXHperxag3azbmNLJjA6Dh3hpSzZlFvfUl18F8q7p_cAL8S78_CBZ_xHvjJHtYj69QQx8QZQqE_Jc3l3q14bmqiu1B-d8m5JqHMs470Q763yYwwQPbC2MK_AE5As7Hlexem3aQZ-AfRBlahvHNj4ZTz7ieObEdHwFdLfsGRT3DwHV3mo6Y_Rfy_VaHf2arEagWytSmCX8n7aUqx4cJmBLf7YbA0F7oLHTYDF_TDkSx0xhE2zcPp91jOrJlMU2pcU_EO8D6Fbqzb0D8zOLM-IZ4J-ugZ429Y3lnTejwYwAMemHBsOrn9u9JseOJPy77YOx1gf1bnnc1k4wfyHnN_Lul38AmEsdiHvGhHUB4qRZHS43h36EAeu11O5r1SSVDOHSxLPpKQ3yuDZN7XEZIoRrZ77hQ3UrHrQq0zVRdpW1uWDCDxvib3tunPcJscqMBygNoe7DRp-vNa6-hLypT3Z14RCedeQ9LLHfiMFO1CwYfy9tbvYPf1qlPLekHeSEiHzGDN1ZevI1B6B2Lpbh5sz-2Alk8nqVp3QSToG6g7J8IACYtI-8ndSHW_HqLJQHYlLc81aX3lauEoClh6VuT6CVmW_Xx4cUKMVpistrF-8znERbl2fHvMwv1Zg7ipXuENxJolYFGlM8EwxIGkw0pI51zZPri711NwFfOy9-h2eDMzXGe6HAtPSqjDtyZSZq0lXBUA-dVBNQ9FszxyDqe-1DG0sq2P0nb_-vCoLDptv3s43RpcnC1-vVPWh6J_uR7D1-xVklHsgVJt1t5DSq3mbKql9HradSuMTCoWQ_HywKdLk7-01l5nbWlbqI8WXjxrwgYhdFwe0MF9AUVO9lb9XD9JQ2Ku-TjaCYawm8_np5i1w2pmP9qSdKH5rttzT12SxPlSXOs3xXe0U6N6BnD2jNsSSlK1ffBnwirm-se3_a7NcLsk-e-_g-lCqznq98vtH9MPoOI= -\ No newline at end of file -diff --git a/examples/pki/cms/auth_v3_token_scoped.json b/examples/pki/cms/auth_v3_token_scoped.json -index 082c1b1..9020745 100644 ---- a/examples/pki/cms/auth_v3_token_scoped.json -+++ b/examples/pki/cms/auth_v3_token_scoped.json -@@ -1,5 +1,8 @@ - { - "token": { -+ "audit_ids": [ -+ "SLIXlXQUQZWUi9VJrqdXqA" -+ ], - "methods": [ - "password" - ], -diff --git a/examples/pki/cms/auth_v3_token_scoped.pem b/examples/pki/cms/auth_v3_token_scoped.pem -index e11cf03..e83e7a0 100644 ---- a/examples/pki/cms/auth_v3_token_scoped.pem -+++ b/examples/pki/cms/auth_v3_token_scoped.pem -@@ -1,98 +1,100 @@ - -----BEGIN CMS----- --MIIR5gYJKoZIhvcNAQcCoIIR1zCCEdMCAQExCTAHBgUrDgMCGjCCD/MGCSqGSIb3 --DQEHAaCCD+QEgg/gew0KICAgICJ0b2tlbiI6IHsNCiAgICAgICAgIm1ldGhvZHMi --OiBbDQogICAgICAgICAgICAicGFzc3dvcmQiDQogICAgICAgIF0sDQogICAgICAg --ICJyb2xlcyI6IFsNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAibmFt --ZSI6ICJyb2xlMSINCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAg --ICAgICAgICAgICAgIm5hbWUiOiAicm9sZTIiDQogICAgICAgICAgICB9DQogICAg --ICAgIF0sDQogICAgICAgICJleHBpcmVzX2F0IjogIjIwMzgtMDEtMThUMjE6MTQ6 --MDdaIiwNCiAgICAgICAgInByb2plY3QiOiB7DQogICAgICAgICAgICAiaWQiOiAi --dGVuYW50X2lkMSIsDQogICAgICAgICAgICAiZG9tYWluIjogew0KICAgICAgICAg --ICAgICAgICJpZCI6ICJkb21haW5faWQxIiwNCiAgICAgICAgICAgICAgICAibmFt --ZSI6ICJkb21haW5fbmFtZTEiDQogICAgICAgICAgICB9LA0KICAgICAgICAgICAg --ImVuYWJsZWQiOiB0cnVlLA0KICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogbnVs --bCwNCiAgICAgICAgICAgICJuYW1lIjogInRlbmFudF9uYW1lMSINCiAgICAgICAg --fSwNCiAgICAgICAgImNhdGFsb2ciOiBbDQogICAgICAgICAgICB7DQogICAgICAg --ICAgICAgICAgImVuZHBvaW50cyI6IFsNCiAgICAgICAgICAgICAgICAgICAgew0K --ICAgICAgICAgICAgICAgICAgICAgICAgImludGVyZmFjZSI6ICJhZG1pbiIsDQog --ICAgICAgICAgICAgICAgICAgICAgICAidXJsIjogImh0dHA6Ly8xMjcuMC4wLjE6 --ODc3Ni92MS82NGI2ZjNmYmNjNTM0MzVlOGE2MGZjZjg5YmI2NjE3YSIsDQogICAg --ICAgICAgICAgICAgICAgICAgICAicmVnaW9uIjogInJlZ2lvbk9uZSINCiAgICAg --ICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAg --ICAgICAgICAgICAgICAgICAgImludGVyZmFjZSI6ICJpbnRlcm5hbCIsDQogICAg --ICAgICAgICAgICAgICAgICAgICAidXJsIjogImh0dHA6Ly8xMjcuMC4wLjE6ODc3 --Ni92MS82NGI2ZjNmYmNjNTM0MzVlOGE2MGZjZjg5YmI2NjE3YSIsDQogICAgICAg --ICAgICAgICAgICAgICAgICAicmVnaW9uIjogInJlZ2lvbk9uZSINCiAgICAgICAg --ICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAg --ICAgICAgICAgICAgICAgImludGVyZmFjZSI6ICJwdWJsaWMiLA0KICAgICAgICAg --ICAgICAgICAgICAgICAgInVybCI6ICJodHRwOi8vMTI3LjAuMC4xOjg3NzYvdjEv --NjRiNmYzZmJjYzUzNDM1ZThhNjBmY2Y4OWJiNjYxN2EiLA0KICAgICAgICAgICAg --ICAgICAgICAgICAgInJlZ2lvbiI6ICJyZWdpb25PbmUiDQogICAgICAgICAgICAg --ICAgICAgIH0NCiAgICAgICAgICAgICAgICBdLA0KICAgICAgICAgICAgICAgICJ0 --eXBlIjogInZvbHVtZSIsDQogICAgICAgICAgICAgICAgIm5hbWUiOiAidm9sdW1l --Ig0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAg --ICAiZW5kcG9pbnRzIjogWw0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAg --ICAgICAgICAgICAgICAgICAiaW50ZXJmYWNlIjogImFkbWluIiwNCiAgICAgICAg --ICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cDovLzEyNy4wLjAuMTo5MjkyL3Yx --IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICJyZWdpb24iOiAicmVnaW9uT25l --Ig0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICB7 --DQogICAgICAgICAgICAgICAgICAgICAgICAiaW50ZXJmYWNlIjogImludGVybmFs --IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cDovLzEyNy4w --LjAuMTo5MjkyL3YxIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICJyZWdpb24i --OiAicmVnaW9uT25lIg0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAg --ICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAiaW50ZXJmYWNl --IjogInB1YmxpYyIsDQogICAgICAgICAgICAgICAgICAgICAgICAidXJsIjogImh0 --dHA6Ly8xMjcuMC4wLjE6OTI5Mi92MSIsDQogICAgICAgICAgICAgICAgICAgICAg --ICAicmVnaW9uIjogInJlZ2lvbk9uZSINCiAgICAgICAgICAgICAgICAgICAgfQ0K --ICAgICAgICAgICAgICAgIF0sDQogICAgICAgICAgICAgICAgInR5cGUiOiAiaW1h --Z2UiLA0KICAgICAgICAgICAgICAgICJuYW1lIjogImdsYW5jZSINCiAgICAgICAg --ICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgImVuZHBvaW50 -+MIISOAYJKoZIhvcNAQcCoIISKTCCEiUCAQExDTALBglghkgBZQMEAgEwghA9Bgkq -+hkiG9w0BBwGgghAuBIIQKnsNCiAgICAidG9rZW4iOiB7DQogICAgICAgICJhdWRp -+dF9pZHMiOiBbDQogICAgICAgICAgICAiU0xJWGxYUVVRWldVaTlWSnJxZFhxQSIN -+CiAgICAgICAgXSwNCiAgICAgICAgIm1ldGhvZHMiOiBbDQogICAgICAgICAgICAi -+cGFzc3dvcmQiDQogICAgICAgIF0sDQogICAgICAgICJyb2xlcyI6IFsNCiAgICAg -+ICAgICAgIHsNCiAgICAgICAgICAgICAgICAibmFtZSI6ICJyb2xlMSINCiAgICAg -+ICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgIm5hbWUi -+OiAicm9sZTIiDQogICAgICAgICAgICB9DQogICAgICAgIF0sDQogICAgICAgICJl -+eHBpcmVzX2F0IjogIjIwMzgtMDEtMThUMjE6MTQ6MDdaIiwNCiAgICAgICAgInBy -+b2plY3QiOiB7DQogICAgICAgICAgICAiaWQiOiAidGVuYW50X2lkMSIsDQogICAg -+ICAgICAgICAiZG9tYWluIjogew0KICAgICAgICAgICAgICAgICJpZCI6ICJkb21h -+aW5faWQxIiwNCiAgICAgICAgICAgICAgICAibmFtZSI6ICJkb21haW5fbmFtZTEi -+DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgImVuYWJsZWQiOiB0cnVlLA0K -+ICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogbnVsbCwNCiAgICAgICAgICAgICJu -+YW1lIjogInRlbmFudF9uYW1lMSINCiAgICAgICAgfSwNCiAgICAgICAgImNhdGFs -+b2ciOiBbDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgImVuZHBvaW50 - cyI6IFsNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAg - ICAgICAgImludGVyZmFjZSI6ICJhZG1pbiIsDQogICAgICAgICAgICAgICAgICAg --ICAgICAidXJsIjogImh0dHA6Ly8xMjcuMC4wLjE6ODc3NC92MS4xLzY0YjZmM2Zi --Y2M1MzQzNWU4YTYwZmNmODliYjY2MTdhIiwNCiAgICAgICAgICAgICAgICAgICAg --ICAgICJyZWdpb24iOiAicmVnaW9uT25lIg0KICAgICAgICAgICAgICAgICAgICB9 --LA0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAg --ICAiaW50ZXJmYWNlIjogImludGVybmFsIiwNCiAgICAgICAgICAgICAgICAgICAg --ICAgICJ1cmwiOiAiaHR0cDovLzEyNy4wLjAuMTo4Nzc0L3YxLjEvNjRiNmYzZmJj --YzUzNDM1ZThhNjBmY2Y4OWJiNjYxN2EiLA0KICAgICAgICAgICAgICAgICAgICAg --ICAgInJlZ2lvbiI6ICJyZWdpb25PbmUiDQogICAgICAgICAgICAgICAgICAgIH0s --DQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAg --ICJpbnRlcmZhY2UiOiAicHVibGljIiwNCiAgICAgICAgICAgICAgICAgICAgICAg --ICJ1cmwiOiAiaHR0cDovLzEyNy4wLjAuMTo4Nzc0L3YxLjEvNjRiNmYzZmJjYzUz --NDM1ZThhNjBmY2Y4OWJiNjYxN2EiLA0KICAgICAgICAgICAgICAgICAgICAgICAg --InJlZ2lvbiI6ICJyZWdpb25PbmUiDQogICAgICAgICAgICAgICAgICAgIH0NCiAg --ICAgICAgICAgICAgICBdLA0KICAgICAgICAgICAgICAgICJ0eXBlIjogImNvbXB1 --dGUiLA0KICAgICAgICAgICAgICAgICJuYW1lIjogIm5vdmEiDQogICAgICAgICAg --ICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJlbmRwb2ludHMi --OiBbDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAg --ICAgICJpbnRlcmZhY2UiOiAiYWRtaW4iLA0KICAgICAgICAgICAgICAgICAgICAg --ICAgInVybCI6ICJodHRwOi8vMTI3LjAuMC4xOjM1MzU3L3YzIiwNCiAgICAgICAg --ICAgICAgICAgICAgICAgICJyZWdpb24iOiAiUmVnaW9uT25lIg0KICAgICAgICAg --ICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAg --ICAgICAgICAgICAgICAiaW50ZXJmYWNlIjogImludGVybmFsIiwNCiAgICAgICAg --ICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cDovLzEyNy4wLjAuMTozNTM1Ny92 --MyIsDQogICAgICAgICAgICAgICAgICAgICAgICAicmVnaW9uIjogIlJlZ2lvbk9u --ZSINCiAgICAgICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAg --ew0KICAgICAgICAgICAgICAgICAgICAgICAgImludGVyZmFjZSI6ICJwdWJsaWMi --LA0KICAgICAgICAgICAgICAgICAgICAgICAgInVybCI6ICJodHRwOi8vMTI3LjAu --MC4xOjUwMDAvdjMiLA0KICAgICAgICAgICAgICAgICAgICAgICAgInJlZ2lvbiI6 --ICJSZWdpb25PbmUiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg --ICAgICBdLA0KICAgICAgICAgICAgICAgICJ0eXBlIjogImlkZW50aXR5IiwNCiAg --ICAgICAgICAgICAgICAibmFtZSI6ICJrZXlzdG9uZSINCiAgICAgICAgICAgIH0N --CiAgICAgICAgXSwNCiAgICAgICAgInVzZXIiOiB7DQogICAgICAgICAgICAiZG9t --YWluIjogew0KICAgICAgICAgICAgICAgICJpZCI6ICJkb21haW5faWQxIiwNCiAg --ICAgICAgICAgICAgICAibmFtZSI6ICJkb21haW5fbmFtZTEiDQogICAgICAgICAg --ICB9LA0KICAgICAgICAgICAgIm5hbWUiOiAidXNlcl9uYW1lMSIsDQogICAgICAg --ICAgICAiaWQiOiAidXNlcl9pZDEiDQogICAgICAgIH0NCiAgICB9DQp9DQoxggHK --MIIBxgIBATCBpDCBnjEKMAgGA1UEBRMBNTELMAkGA1UEBhMCVVMxCzAJBgNVBAgT --AkNBMRIwEAYDVQQHEwlTdW5ueXZhbGUxEjAQBgNVBAoTCU9wZW5TdGFjazERMA8G --A1UECxMIS2V5c3RvbmUxJTAjBgkqhkiG9w0BCQEWFmtleXN0b25lQG9wZW5zdGFj --ay5vcmcxFDASBgNVBAMTC1NlbGYgU2lnbmVkAgERMAcGBSsOAwIaMA0GCSqGSIb3 --DQEBAQUABIIBAMq7ffe3ft88hD0EXJfWqkoEGcnal6NmTuLAiCOeQjDxR5TEIx0x --HanKHWAG7Ko/97KgKAAFwOq3hhnbbKbKq7Z3brUNPXNRwBd3RusUrsLQOWwwKAsF --acD8a4XXx6oC8dTsuFivDtMNb1JvBRIWcZXznOtn/bkFcvVhOQ+Af93c9xPBUpMq --1667DbVKWRJEsMrcf5r7wYRQBtAKZU3CAjbNDighdTJWwF7TIWZycnF3OHYmu5J2 --wvcuB8ex+xRvf1lw1qnb3lC43A4M1KqhnHPpWUrpmAFnzAcYwc7ts2iCqD/UwVBP --YcXU8kk8bY6leNJKR9xjHcIfW8SnREZVbXA= -+ICAgICAidXJsIjogImh0dHA6Ly8xMjcuMC4wLjE6ODc3Ni92MS82NGI2ZjNmYmNj -+NTM0MzVlOGE2MGZjZjg5YmI2NjE3YSIsDQogICAgICAgICAgICAgICAgICAgICAg -+ICAicmVnaW9uIjogInJlZ2lvbk9uZSINCiAgICAgICAgICAgICAgICAgICAgfSwN -+CiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAg -+ImludGVyZmFjZSI6ICJpbnRlcm5hbCIsDQogICAgICAgICAgICAgICAgICAgICAg -+ICAidXJsIjogImh0dHA6Ly8xMjcuMC4wLjE6ODc3Ni92MS82NGI2ZjNmYmNjNTM0 -+MzVlOGE2MGZjZjg5YmI2NjE3YSIsDQogICAgICAgICAgICAgICAgICAgICAgICAi -+cmVnaW9uIjogInJlZ2lvbk9uZSINCiAgICAgICAgICAgICAgICAgICAgfSwNCiAg -+ICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgImlu -+dGVyZmFjZSI6ICJwdWJsaWMiLA0KICAgICAgICAgICAgICAgICAgICAgICAgInVy -+bCI6ICJodHRwOi8vMTI3LjAuMC4xOjg3NzYvdjEvNjRiNmYzZmJjYzUzNDM1ZThh -+NjBmY2Y4OWJiNjYxN2EiLA0KICAgICAgICAgICAgICAgICAgICAgICAgInJlZ2lv -+biI6ICJyZWdpb25PbmUiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg -+ICAgICAgICBdLA0KICAgICAgICAgICAgICAgICJ0eXBlIjogInZvbHVtZSIsDQog -+ICAgICAgICAgICAgICAgIm5hbWUiOiAidm9sdW1lIg0KICAgICAgICAgICAgfSwN -+CiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAiZW5kcG9pbnRzIjogWw0K -+ICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAi -+aW50ZXJmYWNlIjogImFkbWluIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ1 -+cmwiOiAiaHR0cDovLzEyNy4wLjAuMTo5MjkyL3YxIiwNCiAgICAgICAgICAgICAg -+ICAgICAgICAgICJyZWdpb24iOiAicmVnaW9uT25lIg0KICAgICAgICAgICAgICAg -+ICAgICB9LA0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg -+ICAgICAgICAiaW50ZXJmYWNlIjogImludGVybmFsIiwNCiAgICAgICAgICAgICAg -+ICAgICAgICAgICJ1cmwiOiAiaHR0cDovLzEyNy4wLjAuMTo5MjkyL3YxIiwNCiAg -+ICAgICAgICAgICAgICAgICAgICAgICJyZWdpb24iOiAicmVnaW9uT25lIg0KICAg -+ICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAgICAgICB7DQogICAg -+ICAgICAgICAgICAgICAgICAgICAiaW50ZXJmYWNlIjogInB1YmxpYyIsDQogICAg -+ICAgICAgICAgICAgICAgICAgICAidXJsIjogImh0dHA6Ly8xMjcuMC4wLjE6OTI5 -+Mi92MSIsDQogICAgICAgICAgICAgICAgICAgICAgICAicmVnaW9uIjogInJlZ2lv -+bk9uZSINCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIF0s -+DQogICAgICAgICAgICAgICAgInR5cGUiOiAiaW1hZ2UiLA0KICAgICAgICAgICAg -+ICAgICJuYW1lIjogImdsYW5jZSINCiAgICAgICAgICAgIH0sDQogICAgICAgICAg -+ICB7DQogICAgICAgICAgICAgICAgImVuZHBvaW50cyI6IFsNCiAgICAgICAgICAg -+ICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgImludGVyZmFjZSI6 -+ICJhZG1pbiIsDQogICAgICAgICAgICAgICAgICAgICAgICAidXJsIjogImh0dHA6 -+Ly8xMjcuMC4wLjE6ODc3NC92MS4xLzY0YjZmM2ZiY2M1MzQzNWU4YTYwZmNmODli -+YjY2MTdhIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICJyZWdpb24iOiAicmVn -+aW9uT25lIg0KICAgICAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICAg -+ICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAiaW50ZXJmYWNlIjogImlu -+dGVybmFsIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cDov -+LzEyNy4wLjAuMTo4Nzc0L3YxLjEvNjRiNmYzZmJjYzUzNDM1ZThhNjBmY2Y4OWJi -+NjYxN2EiLA0KICAgICAgICAgICAgICAgICAgICAgICAgInJlZ2lvbiI6ICJyZWdp -+b25PbmUiDQogICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAg -+ICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICJpbnRlcmZhY2UiOiAicHVi -+bGljIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cDovLzEy -+Ny4wLjAuMTo4Nzc0L3YxLjEvNjRiNmYzZmJjYzUzNDM1ZThhNjBmY2Y4OWJiNjYx -+N2EiLA0KICAgICAgICAgICAgICAgICAgICAgICAgInJlZ2lvbiI6ICJyZWdpb25P -+bmUiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBdLA0K -+ICAgICAgICAgICAgICAgICJ0eXBlIjogImNvbXB1dGUiLA0KICAgICAgICAgICAg -+ICAgICJuYW1lIjogIm5vdmEiDQogICAgICAgICAgICB9LA0KICAgICAgICAgICAg -+ew0KICAgICAgICAgICAgICAgICJlbmRwb2ludHMiOiBbDQogICAgICAgICAgICAg -+ICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICJpbnRlcmZhY2UiOiAi -+YWRtaW4iLA0KICAgICAgICAgICAgICAgICAgICAgICAgInVybCI6ICJodHRwOi8v -+MTI3LjAuMC4xOjM1MzU3L3YzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICJy -+ZWdpb24iOiAiUmVnaW9uT25lIg0KICAgICAgICAgICAgICAgICAgICB9LA0KICAg -+ICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAiaW50 -+ZXJmYWNlIjogImludGVybmFsIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ1 -+cmwiOiAiaHR0cDovLzEyNy4wLjAuMTozNTM1Ny92MyIsDQogICAgICAgICAgICAg -+ICAgICAgICAgICAicmVnaW9uIjogIlJlZ2lvbk9uZSINCiAgICAgICAgICAgICAg -+ICAgICAgfSwNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAg -+ICAgICAgICAgImludGVyZmFjZSI6ICJwdWJsaWMiLA0KICAgICAgICAgICAgICAg -+ICAgICAgICAgInVybCI6ICJodHRwOi8vMTI3LjAuMC4xOjUwMDAvdjMiLA0KICAg -+ICAgICAgICAgICAgICAgICAgICAgInJlZ2lvbiI6ICJSZWdpb25PbmUiDQogICAg -+ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBdLA0KICAgICAgICAg -+ICAgICAgICJ0eXBlIjogImlkZW50aXR5IiwNCiAgICAgICAgICAgICAgICAibmFt -+ZSI6ICJrZXlzdG9uZSINCiAgICAgICAgICAgIH0NCiAgICAgICAgXSwNCiAgICAg -+ICAgInVzZXIiOiB7DQogICAgICAgICAgICAiZG9tYWluIjogew0KICAgICAgICAg -+ICAgICAgICJpZCI6ICJkb21haW5faWQxIiwNCiAgICAgICAgICAgICAgICAibmFt -+ZSI6ICJkb21haW5fbmFtZTEiDQogICAgICAgICAgICB9LA0KICAgICAgICAgICAg -+Im5hbWUiOiAidXNlcl9uYW1lMSIsDQogICAgICAgICAgICAiaWQiOiAidXNlcl9p -+ZDEiDQogICAgICAgIH0NCiAgICB9DQp9DQoxggHOMIIBygIBATCBpDCBnjEKMAgG -+A1UEBRMBNTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRIwEAYDVQQHEwlTdW5u -+eXZhbGUxEjAQBgNVBAoTCU9wZW5TdGFjazERMA8GA1UECxMIS2V5c3RvbmUxJTAj -+BgkqhkiG9w0BCQEWFmtleXN0b25lQG9wZW5zdGFjay5vcmcxFDASBgNVBAMTC1Nl -+bGYgU2lnbmVkAgERMAsGCWCGSAFlAwQCATANBgkqhkiG9w0BAQEFAASCAQBBvzoh -+0iSPMQhuRCAtTG3cPhyewvf554MPjbGQnu8mYmmfyxl7gMmWkTAmyckAsSv4mS6/ -+4SQj9WCn4T1lFkhUz7WWjCwt6fWWp3mzF8Nl/kMsJKDwlxDGbPzsyewXIUsw11sz -+q/Qxs7qGxQ1vYWnaWQ3hC3oZw7cOswKRJicdP439iVPvfqR9CDbK55sPP+ewZRgQ -+YJ3Uc/xDizxepudFJj9+VHKceA37/sVK0ataNe2uHLHwVBYPwOppMckP169QBw8x -+QYh9h+kcOAyZ5psiUzCpLKnlMiYDrVcTGxnTeiVHxKXxj/MERNhR1Y4lEr0ZHJ+p -+Y6p3FBP2VUCefaRh - -----END CMS----- -diff --git a/examples/pki/cms/auth_v3_token_scoped.pkiz b/examples/pki/cms/auth_v3_token_scoped.pkiz -index d687c03..74f8f63 100644 ---- a/examples/pki/cms/auth_v3_token_scoped.pkiz -+++ b/examples/pki/cms/auth_v3_token_scoped.pkiz -@@ -1 +1 @@ --PKIZ_eJy9V8lyo0gQvddXzN3RYUCgNoc-FItYTCGBEEvdWCwWscjWwvL1UyDJ3W577J6YiFGEDlUFmS_zvcxKvn0jP0FWNPMvEa3HxTeANE1X2kB_bLCWnWMTWrHYkD1JEkXRSkVoyZ3oQFVINy9SikSlEEWhTxVx_aystWgGJEtWYUg2u52cprH71OtUxBzLKNfmmnrIY1U_h5VbJOJljRX-GHjlSSualDx7AoFHl-NCq-xz5C32Ucmfxj201g6aqO_x-KKo7yKGzkKP24ae1Wk1NZ6VUbXIQaS4u9FAouo0XrfEEJdF3iZf5jBPFJcY4yifmfY6LR_P7TJmzD70BSr0-BMYX45q9xCJ42E5GdNqe7R-Shb8Hktyvh0N1_qZOBvGc292yMn5Ea-1OSBQ-ojpCGSdN0Th-68I4oo_YEfLt-4E-Yh9u4kY-2Kk19vANweQMHyPRT0xRJhjP2tDXy9jms-mpIlajyTEGg7sDEdmXUnrloVMLQs48_IpRwUIfDuLFL7-HRo5ZAgyekQzGfe4Xazw-6i2X8NIfP0ALgxkVKLCudE_dKiIT0hkW6OQ50spnpk5z6D1A2MqGoMLswoqszAdRKHBLZeKzACk4AIXKRdUGmMW8iy40kc8lXGFs4C55CPw7GPosROauHLrkYHROSDZLTFTnqMdf8K3RNZuH134bxLVbpf5wxk52swo4IiO5CGdmUNwTgr5DMzCzgmwAVd6EQybwZQQjZ0sMwuhCpiAXXp6bhZBZzLy5J2IicK-XgWeWV4QVOWJCKYnyTtMQrkhyicEPfaSfcRwq6jaTHog8qXjqp3CClWbArHUnI1B7s1-TByB6DSsOcSMMQs6YwiooMAVYnAeMIhGgzWY3oYNnKDFlVktpTIHQUGOnCS7yPSCBleL4kplm3j6IfTQu-TdkIJb8vxJrjYXK9c6ICpMxkIbC0d9o486UhankZ3RKPgngXyqD0fj0KQP7QD-DecfUQ6-5nzXE48j5_8fjRwiXkca_4QZ8FmMvzMTenSGmVckU-u7ViN3Tir507L9J1bAa9mKIy3sH6nvV_GBD2LMsELvo0vHuSaRvba4S7gOw70KDHwpmi_Qgc_gfYDuKjrSeMULQvAVxK8Qgv-SwBEh-Lfl-7tGwE0kAcMfY9Wl8AcXTMi4XDwjd2f1vsWDPy1hNPZLJyZFhd4UFbhVlVYtdtF4bb8vqPVnBQXGivqgoIg3RJs9SW7_8T1xRTDOB-37hJV_fleAn41j0yIJvovxNcRaoIOq2wf9W4mDEc7mjYDo6aZO1LK9qQ-TQSNRSurplT53wL5GQhlb2m20uc5Ev3Tf17Fm2nNuLc2acnCblYDPlLvLcAF_fZmOGbd_O9rcppfRu36dlWgebB1FhHHTpqmqwFQWkKbsyP8JWU0rwkByLWshtzKNrEMrWtNakVvd3QyygeBOAZDeyKKARIuSO7mAlpCargBjR3RNOqo4LiHNlsBfIwEq07MZ0p2ZUEalSZEEvwBky63UTpYNuc0M7JdDohD6HLlEInodKMk8qUM78H7K2oURMQSi-mLJqMisNMgbJGiTJ9ghY8O4B5wLTuglJ-xZIiTOhDZYPLasBLOmlaxABz9HXFkQLEimVRnmJ3OlLmcvbKSdqMYrmzCrm95WXJ12CpbiH4Ln1O5ZzC2aZ6DndyU-zU7DXS1QL_Ndjdd-JsAIqbs9v3To5N5fB9zLshOf-uql6beRHX3H4Xy_hxWW6AqsHh-d7_NktVXtxxXTR2yhoe3cWAcs_bxqnxTBqRUha-onmROWuZpIXC05Em0v1vaB1bI50P2ZKjyrfXi33B4XFO47K4lXsKyFx7vW2Id3ZyKK9OUQMH7ztHPNY-vcQ38ZZliW5ORlDQYlpPYnVmg1NNNgWvIzt33g7oXy0LVwkMU8rNSu3g6ORWFa9GAxHL1NWqSxkdqqeL4HK0GEBs73RVma-_uGClnlMehWZR49Gdvvq8UiiqvZ1jZ0-OMHmD4xZFP6-bnxN6RCLsw= -\ No newline at end of file -+PKIZ_eJy9V0tzozoT3etX3H1qKoBNEhbfgpexMJKNjXloZyDmJWwnNs9f_wnsSWYyuXUzc6uuq7yQQN2n-_RpNd--sZ-iGxD_paLNsPgGEISmIwfm4khgWkdYtiP1yPZWjqqqTqHKtt5qjmwpCU3SIlGIjXQ50ZskiddKUryAtMgMqeEUpTEStqkqEM5Xh3MWG9Ir8abZMlMeYcnT2EhrMkfDOoQHJY0meBJOzAJAyp2hanah0NKogw9wdmEHxDT0tuxlOYtK6UwcPdtvmuS5M6vA4ynMjwk8mHVobDsAD3xsqXJG_LTZ-SaNeCmNVWZIhR3S0NRy5NZy9KmrwXaZ69wylydeBgenDTP-AoiHucEis16EAp_u3mDTYvRUruvQm51CKp2IpmeDs7CcXchmcMJCuB4S9-PmDSosXQbVPBPPHoxx0cGlw8HduJZZfobnIucLtABoM8L5IbY1ZcaqeCaNe7fnBfFxHpW0iQ1ahxnzboh8aLQSGCwHwowLvLYmb0l0KzJXaoaMe08srZjnjpSz_AY_JQZ_AuE1IXxUNiO83XzNRdqxtnq9w920sXK5Qs5xivtIsCZBa_UBF-SkRAJhjhEPUG_32NtOAydoSInLpUazIGePnDiFWTPQRYlwg83oJl58CgVxFZbbMV-AZf8UsrijkqSBcOV-gE78IS_NmPXYN89XRlIunssPVvfUojyqkDptgJXrD0uN1VUmCWjzJGADCiTHZVDiHDuIQ71Ll4YuIIPkJE_EoIQCzvVJcE1uB66Qpreqcw87T6ocQaTwwCp0fv6Opgw8fGNJ4YOyPQXdNXfgT5P3PXfgj5Lnjvrhnn2FgissUodzdyjPD0X1fd-ULFX5tD7A3xXIF-tDBCgvuiHGr3D-GeXgdzgfKXegiEbK_yMaxX8KEXxGzTUEegm8mI4Hf2hxRGjTsMRvCFkIYhEZ0pCcfjjoTT6BXc6K0KPVFYXbhWPLM4_xfN2AZfZUIwdORsjqlPW9ZIJ7u45zvfqKNsBHcfxuUt8KibWx82cQ_wkh-F35fkQIfpf3j7SDT-TLjfLN9Rrn64xh60lp5kG_7bGGeOKkKc6VMhCC6dIzM4DzoMXC9cL4nrTb1XUtmkKqBjX6w31xWIuRca2HQJAu0dzlwC8SLsU6Lt_uQnZHrJtQYIm-XawfBQVGa976MlxpXxETGkJxIsYCGt8HP8GmP8O-NpFf-sUNAStvFZ7BF5oG84h43DEJd79SCbZ_IOEfHYJPPPJIkxtGZf-JhDcfmyv4IOGCqZPb-Wvxo4x3gitGEzYrvEufjwS3A_9muBjOgF-Hi3evsY9pRH-aE07kKrTR-23AGOhiteC7BYO-33m3xtKZjqPTIJyla9ed7VzePS1dsogOs8KbzxRIeWnvGCqQoymb-eYLNvspCBoF-z8j-9iocqC5tj3TG51H9rlR7XFt6I3pbnvdQnJhyPxWB6qCVJvTWz2XbSXBriJHjupiPixFMWY9goW2QYo8vqymyHQmCg0pZhMNfkVrvQFaM1q29Ca1iE97NmBW7BBFKjLUzYuxgeFEs3VTXgfeOxOuHA6GDpgDgyWrlDrS61ukwNGT3CJrK7hnkinOzosrNq2pMvOmNoEZQAJlb6spMlSQzBngBy-KbG9lNuoqsl45jyd9AeeC-HheWe3ZcDV83l82hJcKyxTugoXTmR29W7ggfMi9NIj3U057PbLunu_O-6Pf76PznSIHxJRq4e7OOIWL7KTwPgcP9f2rd7_dRKUwebBCDmgngUi2KFhknc5gFhThttK4Je6NbWFO4GIz0T3rsfJW4mql2yo1yqqtlZnzjLO21O874K2f7p-3F08ISRVMDf_iXbz5PD_K8sTuT0er8oTnKn5NWsdHyHVR99DQbfas-vv01XjSVsATVN47Wg1furyTLmYXI0p8ob7Xl6tjv6sXjplX6K40Nz4WV013XF_UIgmX3fSurGfTwwJ0j4vLEa_um-eE7-4VWqYvq8eX-zbZTFYPl2htaOZRdlYzh4P_A-M3io619--V_wMk2UFA -\ No newline at end of file -diff --git a/keystonemiddleware/auth_token/__init__.py b/keystonemiddleware/auth_token/__init__.py -index a8afeb2..be268da 100644 ---- a/keystonemiddleware/auth_token/__init__.py -+++ b/keystonemiddleware/auth_token/__init__.py -@@ -883,6 +883,18 @@ class AuthProtocol(_BaseAuthProtocol): - 'fallback to online validation.')) - else: - data = jsonutils.loads(verified) -+ -+ audit_ids = None -+ if 'access' in data: -+ # It's a v2 token. -+ audit_ids = data['access']['token'].get('audit_ids') -+ else: -+ # It's a v3 token -+ audit_ids = data['token'].get('audit_ids') -+ -+ if audit_ids: -+ self._revocations.check_by_audit_id(audit_ids) -+ - return data - - def _validate_token(self, auth_ref): -diff --git a/keystonemiddleware/auth_token/_revocations.py b/keystonemiddleware/auth_token/_revocations.py -index 8cc449a..a68356a 100644 ---- a/keystonemiddleware/auth_token/_revocations.py -+++ b/keystonemiddleware/auth_token/_revocations.py -@@ -104,3 +104,25 @@ class Revocations(object): - if self._any_revoked(token_ids): - self._log.debug('Token is marked as having been revoked') - raise exc.InvalidToken(_('Token has been revoked')) -+ -+ def check_by_audit_id(self, audit_ids): -+ """Check whether the audit_id appears in the revocation list. -+ -+ :raises keystonemiddleware.auth_token._exceptions.InvalidToken: -+ if the audit ID(s) appear in the revocation list. -+ -+ """ -+ revoked_tokens = self._list.get('revoked', None) -+ if not revoked_tokens: -+ # There's no revoked tokens, so nothing to do. -+ return -+ -+ # The audit_id may not be present in the revocation events because -+ # earlier versions of the identity server didn't provide them. -+ revoked_ids = set( -+ x['audit_id'] for x in revoked_tokens if 'audit_id' in x) -+ for audit_id in audit_ids: -+ if audit_id in revoked_ids: -+ self._log.debug( -+ 'Token is marked as having been revoked by audit id') -+ raise exc.InvalidToken(_('Token has been revoked')) -diff --git a/keystonemiddleware/tests/unit/auth_token/test_auth_token_middleware.py b/keystonemiddleware/tests/unit/auth_token/test_auth_token_middleware.py -index 3fdd4a9..e729735 100644 ---- a/keystonemiddleware/tests/unit/auth_token/test_auth_token_middleware.py -+++ b/keystonemiddleware/tests/unit/auth_token/test_auth_token_middleware.py -@@ -896,6 +896,30 @@ class CommonAuthTokenMiddlewareTest(object): - def test_revoked_hashed_pkiz_token(self): - self._test_revoked_hashed_token('signed_token_scoped_pkiz') - -+ def test_revoked_pki_token_by_audit_id(self): -+ # When the audit ID is in the revocation list, the token is invalid. -+ self.set_middleware() -+ token = self.token_dict['signed_token_scoped'] -+ -+ # Put the token audit ID in the revocation list, -+ # the entry will have a false token ID so the token ID doesn't match. -+ fake_token_id = uuid.uuid4().hex -+ # The audit_id value is in examples/pki/cms/auth_*_token_scoped.json. -+ audit_id = 'SLIXlXQUQZWUi9VJrqdXqA' -+ revocation_list_data = { -+ 'revoked': [ -+ { -+ 'id': fake_token_id, -+ 'audit_id': audit_id -+ }, -+ ] -+ } -+ self.middleware._revocations._list = jsonutils.dumps( -+ revocation_list_data) -+ -+ resp = self.call_middleware(headers={'X-Auth-Token': token}) -+ self.assertEqual(401, resp.status_int) -+ - def get_revocation_list_json(self, token_ids=None, mode=None): - if token_ids is None: - key = 'revoked_token_hash' + (('_' + mode) if mode else '') -diff --git a/keystonemiddleware/tests/unit/auth_token/test_revocations.py b/keystonemiddleware/tests/unit/auth_token/test_revocations.py -index cef65b8..258e195 100644 ---- a/keystonemiddleware/tests/unit/auth_token/test_revocations.py -+++ b/keystonemiddleware/tests/unit/auth_token/test_revocations.py -@@ -27,22 +27,24 @@ from keystonemiddleware.tests.unit import utils - - class RevocationsTests(utils.BaseTestCase): - -- def _check_with_list(self, revoked_list, token_ids): -+ def _setup_revocations(self, revoked_list): - directory_name = '/tmp/%s' % uuid.uuid4().hex - signing_directory = _signing_dir.SigningDirectory(directory_name) - self.addCleanup(shutil.rmtree, directory_name) - - identity_server = mock.Mock() - -- verify_result_obj = { -- 'revoked': list({'id': r} for r in revoked_list) -- } -+ verify_result_obj = {'revoked': revoked_list} - cms_verify = mock.Mock(return_value=json.dumps(verify_result_obj)) - - revocations = _revocations.Revocations( - timeout=datetime.timedelta(1), signing_directory=signing_directory, - identity_server=identity_server, cms_verify=cms_verify) -+ return revocations - -+ def _check_with_list(self, revoked_list, token_ids): -+ revoked_list = list({'id': r} for r in revoked_list) -+ revocations = self._setup_revocations(revoked_list) - revocations.check(token_ids) - - def test_check_empty_list(self): -@@ -63,3 +65,40 @@ class RevocationsTests(utils.BaseTestCase): - token_ids = [token_id] - self.assertRaises(exc.InvalidToken, - self._check_with_list, revoked_tokens, token_ids) -+ -+ def test_check_by_audit_id_revoked(self): -+ # When the audit ID is in the revocation list, InvalidToken is raised. -+ audit_id = uuid.uuid4().hex -+ revoked_list = [{'id': uuid.uuid4().hex, 'audit_id': audit_id}] -+ revocations = self._setup_revocations(revoked_list) -+ self.assertRaises(exc.InvalidToken, -+ revocations.check_by_audit_id, [audit_id]) -+ -+ def test_check_by_audit_id_chain_revoked(self): -+ # When the token's audit chain ID is in the revocation list, -+ # InvalidToken is raised. -+ revoked_audit_id = uuid.uuid4().hex -+ revoked_list = [{'id': uuid.uuid4().hex, 'audit_id': revoked_audit_id}] -+ revocations = self._setup_revocations(revoked_list) -+ -+ token_audit_ids = [uuid.uuid4().hex, revoked_audit_id] -+ self.assertRaises(exc.InvalidToken, -+ revocations.check_by_audit_id, token_audit_ids) -+ -+ def test_check_by_audit_id_not_revoked(self): -+ # When the audit ID is not in the revocation list no exception. -+ revoked_list = [{'id': uuid.uuid4().hex, 'audit_id': uuid.uuid4().hex}] -+ revocations = self._setup_revocations(revoked_list) -+ -+ audit_id = uuid.uuid4().hex -+ revocations.check_by_audit_id([audit_id]) -+ -+ def test_check_by_audit_id_no_audit_ids(self): -+ # Older identity servers don't send audit_ids in the revocation list. -+ # When this happens, check_by_audit_id still works, just doesn't -+ # verify anything. -+ revoked_list = [{'id': uuid.uuid4().hex}] -+ revocations = self._setup_revocations(revoked_list) -+ -+ audit_id = uuid.uuid4().hex -+ revocations.check_by_audit_id([audit_id]) --- -1.9.1 - diff --git a/dev-python/keystonemiddleware/keystonemiddleware-4.9.0.ebuild b/dev-python/keystonemiddleware/keystonemiddleware-4.9.0.ebuild new file mode 100644 index 0000000000000..fb4cae0351d5b --- /dev/null +++ b/dev-python/keystonemiddleware/keystonemiddleware-4.9.0.ebuild @@ -0,0 +1,84 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 +PYTHON_COMPAT=( python2_7 python3_4 python3_5 ) + +inherit distutils-r1 + +DESCRIPTION="A middleware for the OpenStack Keystone API" +HOMEPAGE="https://github.com/openstack/keystonemiddleware" +SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-linux ~x86-linux" +IUSE="doc examples test" + +CDEPEND=">=dev-python/pbr-1.6[${PYTHON_USEDEP}]" +DEPEND=" + dev-python/setuptools[${PYTHON_USEDEP}] + ${CDEPEND} + test? ( + >=dev-python/coverage-3.6[${PYTHON_USEDEP}] + >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}] + >=dev-python/mock-2.0.0[${PYTHON_USEDEP}] + >=dev-python/pycrypto-2.6[${PYTHON_USEDEP}] + >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}] + !~dev-python/oslo-sphinx-3.4.0[${PYTHON_USEDEP}] + >=dev-python/oslotest-1.10.0[${PYTHON_USEDEP}] + >=dev-python/reno-1.8.0[${PYTHON_USEDEP}] + >=dev-python/requests-mock-1.0.0[${PYTHON_USEDEP}] + >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}] + !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}] + =dev-python/stevedore-1.16.0[${PYTHON_USEDEP}] + >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}] + >=dev-python/testresources-0.2.4[${PYTHON_USEDEP}] + >=dev-python/testtools-1.4.0[${PYTHON_USEDEP}] + >=dev-python/python-memcached-1.56[${PYTHON_USEDEP}] + >=dev-python/bandit-1.1.0[${PYTHON_USEDEP}] + )" + +RDEPEND=" + ${CDEPEND} + >=dev-python/keystoneauth-2.10.0[${PYTHON_USEDEP}] + >=dev-python/oslo-config-3.14.0[${PYTHON_USEDEP}] + >=dev-python/oslo-context-2.6.0[${PYTHON_USEDEP}] + >=dev-python/oslo-i18n-2.1.0[${PYTHON_USEDEP}] + >=dev-python/oslo-serialization-1.10.0[${PYTHON_USEDEP}] + >=dev-python/oslo-utils-3.16.0[${PYTHON_USEDEP}] + >=dev-python/positional-1.0.1[${PYTHON_USEDEP}] + >=dev-python/pycadf-1.1.0[${PYTHON_USEDEP}] + !~dev-python/pycadf-2.0.0[${PYTHON_USEDEP}] + >=dev-python/python-keystoneclient-2.0.0[${PYTHON_USEDEP}] + !~dev-python/python-keystoneclient-2.1.0[${PYTHON_USEDEP}] + =dev-python/requests-2.10.0[${PYTHON_USEDEP}] + >=dev-python/six-1.9.0[${PYTHON_USEDEP}] + >=dev-python/webob-1.2.3[${PYTHON_USEDEP}]" + +PATCHES=( +) + +python_prepare_all() { + sed -i '/^hacking/d' test-requirements.txt || die + distutils-r1_python_prepare_all +} + +python_compile_all() { + use doc && emake -C doc html +} + +python_test() { + testr init + testr run || die "testsuite failed under python2.7" + flake8 ${PN/python-/}/tests || die "run over tests folder by flake8 drew error" +} + +python_install_all() { + use doc && local HTML_DOCS=( doc/build/html/. ) + use examples && local EXAMPLES=( examples/.) + distutils-r1_python_install_all +} diff --git a/dev-python/ldappool/Manifest b/dev-python/ldappool/Manifest index 68a11769c06a2..ea5a5b00d65dd 100644 --- a/dev-python/ldappool/Manifest +++ b/dev-python/ldappool/Manifest @@ -1 +1,2 @@ DIST ldappool-1.0.tar.gz 6795 SHA256 1fc36c617ffa6195a738ca99ae7f2178271ebe30a5ee6d41abdb49168afb75aa SHA512 081dc08833d95bb0d3ce396cbbe697252e2b483cc3703e87f00f8af0513f9fdca4ff9c97295fb439ff1fcd404027d5922c2a6337665cfad526be3c6b83acfa53 WHIRLPOOL e5cb9b61848cb3fa7314eeeb25fd9bed89ec7e4dca50eb501f80f952ca3aab78017962c85359efbe6d741ec9b38450d78a06a287aee8e7e935db391c3856a68a +DIST ldappool-2.0.0.tar.gz 15089 SHA256 2850274c16b3108fae9f0ce2bc327e7712f78578677c08336225b75edeb1c5f1 SHA512 824243cca712d6aef8929c74cb15f0cefbc8795cdb599d3b0cc48e8eee4a58d3db94a6642379f87ba011784c289f936a62f2aed637bb005985bbee2118d3b6ea WHIRLPOOL 9a54e41a9ff5c5236b9fcf16f61d11bd121c49f9122866c00fc82fc2e6fa2c72d4c45386f613b14ea2d20c58bd40750a90ad3c5384c8d8df6d665c7b7ccb07e0 diff --git a/dev-python/ldappool/ldappool-2.0.0.ebuild b/dev-python/ldappool/ldappool-2.0.0.ebuild new file mode 100644 index 0000000000000..e86a50dfd578f --- /dev/null +++ b/dev-python/ldappool/ldappool-2.0.0.ebuild @@ -0,0 +1,24 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +PYTHON_COMPAT=( python2_7 python3_4 python3_5 ) + +inherit distutils-r1 + +DESCRIPTION="A connection pool for python-ldap" +HOMEPAGE="https://launchpad.net/oslo" +SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" +IUSE="" + +DEPEND=" + dev-python/setuptools[${PYTHON_USEDEP}] +" +RDEPEND=" + >=dev-python/pyldap-2.4[${PYTHON_USEDEP}] +" diff --git a/dev-python/oauthlib/Manifest b/dev-python/oauthlib/Manifest index 384af77c7f46e..8d313638fcd27 100644 --- a/dev-python/oauthlib/Manifest +++ b/dev-python/oauthlib/Manifest @@ -1,3 +1,4 @@ DIST oauthlib-0.7.2.tar.gz 106079 SHA256 a051f04ee8ec3305055ab34d87b36c9a449375e07c7d6a05bcafa48329cac7c3 SHA512 11bcd1b0930342017c63c305029efa3cc44afb4ce786c0d0afdecc22928a9ada1356899a58e6e7332e08d1a62c3ce83889f6396234534143781635983185b974 WHIRLPOOL 55cd2df10e40e4b05518b2b830418ea8718b584348eda031a8b0281dcddf93ab5afde88a7a583bb3a0f9fd4a59272e61ff68418bb9aee469e203f0f79a01836c DIST oauthlib-1.0.1.tar.gz 108125 SHA256 2f1999a7c11f8714a1545de033b0950da77f651ff64f271d7dd9df15dc72049b SHA512 4592ba6a146df55451f65ceab9dd049ddaba20bb0364c4cff882450b701052afc88541e6bf2a112ee18499a9c80e3b1b5e1292899ff7c861e0042c5f96b75653 WHIRLPOOL da8dad0ece0c1f9fbe486c0c23943068612b603e708fdc3c601f19203e2301c308972a50db335804bc1797f645e6355996b7cf484490a4d187d89d337b5f45ed DIST oauthlib-1.0.3.tar.gz 109095 SHA256 ef4bfe4663ca3b97a995860c0173b967ebd98033d02f38c9e1b2cbb6c191d9ad SHA512 b5df82729edc025f262a18c012f6036f52e97a8a846eeb75e4e205928acfd6e971a58194c4a06853d6743329d397e69b94fb431047b2a17a2cb2472c889c4d4c WHIRLPOOL f63142b667eaed207504494e67de8b58d8c966c19870a2e38714fa6d264a7f57873bb30f3548f9cd0906d9f3abb5c36c9de7255d869f47ebad7662b1dba6ec16 +DIST oauthlib-1.1.2.tar.gz 111706 SHA256 0e83e91d9e77a396dc178eddba0c4abf75e465761804bfcdb20b977284bcb0bb SHA512 b8d3f485ff3c59ae708d8d26337053cff4ea870d5d76422d51316fda3df5260ff2f14ab1d74c01dcaeff671c5f528bffd9976064724f2b7ae652c71b126706b1 WHIRLPOOL 4b52314184bb69b7b2b560d45f141ff0497936f2d51161f12542f1ef66339da917000fea147e5848032b0b628679af52cdf36a6745cf2f9fc1a9383e8e486bd4 diff --git a/dev-python/oauthlib/oauthlib-1.1.2.ebuild b/dev-python/oauthlib/oauthlib-1.1.2.ebuild new file mode 100644 index 0000000000000..c72f8b950cc23 --- /dev/null +++ b/dev-python/oauthlib/oauthlib-1.1.2.ebuild @@ -0,0 +1,36 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +PYTHON_COMPAT=( python{2_7,3_{4,5}} ) + +inherit distutils-r1 + +DESCRIPTION="Spec-compliant and thorough implementation of the OAuth request-signing logic" +HOMEPAGE="https://github.com/idan/oauthlib https://pypi.python.org/pypi/oauthlib" +SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86" +IUSE="test" + +# optional extras hard set as RDEPs. See setup.py +RDEPEND=" + >=dev-python/pyjwt-1.0.0[${PYTHON_USEDEP}] + dev-python/blinker[${PYTHON_USEDEP}] + dev-python/cryptography[${PYTHON_USEDEP}] + " +DEPEND=" + dev-python/setuptools[${PYTHON_USEDEP}] + test? ( ${RDEPEND} + dev-python/nose[${PYTHON_USEDEP}] + $(python_gen_cond_dep '>=dev-python/mock-1.0.1[${PYTHON_USEDEP}]' python2_7) + $(python_gen_cond_dep 'dev-python/unittest2[${PYTHON_USEDEP}]' python2_7) ) + " + +python_test() { + nosetests || die "tests failed under ${EPYTHON}" +} diff --git a/dev-python/oslo-cache/Manifest b/dev-python/oslo-cache/Manifest index 4372a6ed79642..a2c4f57ae3462 100644 --- a/dev-python/oslo-cache/Manifest +++ b/dev-python/oslo-cache/Manifest @@ -1 +1,2 @@ +DIST oslo-cache-1.14.0.tar.gz 45780 SHA256 3ba84b421f80c5a6609789cf17b1da86aab465a96e68298620e839fafec3f0be SHA512 b3638e1cec577bc3779595288ff323baef7b08e534050771ffef80aed9d61e1cb6fc9c034c753768e401f313fba8f7aa0b2f6a3354f272e2498d3972abbcdfd0 WHIRLPOOL 966bde82c0aefe8ea09e8e984ea6c769c983b5ce38d9b4a3b6e4921b66a8b261d81f8dfde4295099234da97bd887c0b00714bf454e634f356d81ba6a574557ca DIST oslo-cache-1.6.0.tar.gz 36037 SHA256 c357671fb642822924d063b8151e132a6e7a65189c6c35c3f22c64ae0b0bdda8 SHA512 48ea43142d8221a61556ccccbb3c64e8708a1af04514b28dc22049a84d00e14253c9577d05321ef6de62ddc9120789942a82f231f1d7eeca2e5adf2d92ae04d5 WHIRLPOOL 8d06791e971fd6d9e3f49ade330b3c2ad780b162f953a5f9f04d40568efac7b38ae997f53ba315c38af59715d8be95cbab3dd3df051fa1b685b763476bbaf5a6 diff --git a/dev-python/oslo-cache/oslo-cache-1.14.0.ebuild b/dev-python/oslo-cache/oslo-cache-1.14.0.ebuild new file mode 100644 index 0000000000000..de67eb654b1e1 --- /dev/null +++ b/dev-python/oslo-cache/oslo-cache-1.14.0.ebuild @@ -0,0 +1,40 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +PYTHON_COMPAT=( python{2_7,3_{4,5}} ) + +inherit distutils-r1 vcs-snapshot + +MY_PN=${PN/-/.} + +DESCRIPTION="Oslo Caching around dogpile.cache" +HOMEPAGE="https://launchpad.net/oslo" +SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-linux ~x86-linux" + +CDEPEND=">=dev-python/pbr-1.8[${PYTHON_USEDEP}]" +DEPEND=" + dev-python/setuptools[${PYTHON_USEDEP}] + ${CDEPEND} +" +RDEPEND=" + ${CDEPEND} + >=dev-python/dogpile-cache-0.6.1[${PYTHON_USEDEP}] + >=dev-python/six-1.9.0[${PYTHON_USEDEP}] + >=dev-python/oslo-config-3.14.0[${PYTHON_USEDEP}] + >=dev-python/oslo-i18n-2.1.0[${PYTHON_USEDEP}] + >=dev-python/oslo-log-1.14.0[${PYTHON_USEDEP}] + >=dev-python/oslo-utils-3.16.0[${PYTHON_USEDEP}] +" + +python_prepare_all() { + sed -i '/^hacking/d' test-requirements.txt || die + sed -i '/^argparse/d' requirements.txt || die + distutils-r1_python_prepare_all +} diff --git a/dev-python/oslo-concurrency/Manifest b/dev-python/oslo-concurrency/Manifest index be5f302d13bec..573fdf2982228 100644 --- a/dev-python/oslo-concurrency/Manifest +++ b/dev-python/oslo-concurrency/Manifest @@ -1 +1,2 @@ +DIST oslo.concurrency-3.14.0.tar.gz 45148 SHA256 e76adec89e3b0444f4d3076d8568ea9caf68cf0279de5b3687a51a29d2482eaf SHA512 8bb5c147c13f60df8592314ae7894eb2a2deca1d0a27889b18f8502166065126efbfa5921a75801a1a6e1dbf618e0f9ad152938da9ab8fd3455abdcdd534f11b WHIRLPOOL 39954fc922b7ac095af1afcbc8acc34ad83188cbf3067909ad8206072880ce13e2ca65654efbf1da09fd74ffb777e42ab0c0660b2e94ff5407c2e1dfe766c02b DIST oslo.concurrency-3.7.1.tar.gz 39914 SHA256 254a42d9f0a5f21e9d56e5fd5ca7c3e355ba22d06ea47f6eb094155242ccc0f6 SHA512 8146f22c06fd75202d0bae75a99e77a613675359cab1f6221ff68f89035b105cc6d96b6a1d8013c983a94166d826fbeaa4502fd307af9707d0a1462db678fb4f WHIRLPOOL 03c55b366199e0c7a2af895fe0ad3a769778be58382ee5a40ce1e0220f80bb6273b8615d7fc295f1e25111487772291597dfc8a54ebdbe44deff68ab94916923 diff --git a/dev-python/oslo-concurrency/oslo-concurrency-3.14.0.ebuild b/dev-python/oslo-concurrency/oslo-concurrency-3.14.0.ebuild new file mode 100644 index 0000000000000..e5fcd8ae535b0 --- /dev/null +++ b/dev-python/oslo-concurrency/oslo-concurrency-3.14.0.ebuild @@ -0,0 +1,60 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 +PYTHON_COMPAT=( python2_7 python3_4 python3_5 ) + +inherit distutils-r1 + +DESCRIPTION="library for running multi-thread, multi-process applications" +HOMEPAGE="https://pypi.python.org/pypi/oslo.concurrency" +SRC_URI="mirror://pypi/${PN:0:1}/oslo.concurrency/oslo.concurrency-${PV}.tar.gz" +S="${WORKDIR}/oslo.concurrency-${PV}" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" +IUSE="test" + +CDPEND=" + >=dev-python/pbr-1.6[${PYTHON_USEDEP}] + =dev-python/pytest-httpbin-0.0.7[${PYTHON_USEDEP}] + +# tests connect to various remote sites +RESTRICT="test" + +PATCHES=( + "${FILESDIR}"/${P}-system-packages.patch + "${FILESDIR}"/${PN}-2.5.0-system-cacerts.patch +) + +python_prepare_all() { + # use system chardet & urllib3 + rm -r requests/packages/{chardet,urllib3} || die + + distutils-r1_python_prepare_all +} + +python_test() { + py.test -v || die +} diff --git a/dev-python/rfc3986/Manifest b/dev-python/rfc3986/Manifest index ed2ac9af66fb9..0757c2593fa28 100644 --- a/dev-python/rfc3986/Manifest +++ b/dev-python/rfc3986/Manifest @@ -1 +1,2 @@ DIST rfc3986-0.3.1.tar.gz 21591 SHA256 b94638db542896ccf89dc62785ec26dbcbd6a97d337f64e02615b164b974f2e5 SHA512 47c0cff5b67de5cc54ce3a24eb6d192a8b1414f5bb25e54056561fc0394058ec94853e62b9495dd72e15074921b66153279d4dffd1c199e252d569646a34aaed WHIRLPOOL b2ae2145dd078dfed954eda8e76d41a5776a6760e21d247d50bb06a10400785b5fd78f77e6b01b4de75a076ede123ae501db800458dc0e7fa822d90d7983c229 +DIST rfc3986-0.4.1.tar.gz 22354 SHA256 5ac85eb132fae7bbd811fa48d11984ae3104be30d44d397a351d004c633a68d2 SHA512 a4731206a4179d3970fcf9c21405f7e9686268ef3610ab5ca2413a867d83b83188c0efd5958b0b4ba8fc4076da9bc0cf18aef774213a1b58fc42bfc8a6d5dd92 WHIRLPOOL 9e26818343bc2d174cdb3737902b0edc5c3911c9e2aee7e3a7bf7d40eaa7920345a2103d8f9ec6a8f432d54f856cd37c7fbd9c53da12678fce3e3cecd682186a diff --git a/dev-python/rfc3986/rfc3986-0.4.1.ebuild b/dev-python/rfc3986/rfc3986-0.4.1.ebuild new file mode 100644 index 0000000000000..d8f53ea9249b8 --- /dev/null +++ b/dev-python/rfc3986/rfc3986-0.4.1.ebuild @@ -0,0 +1,28 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +PYTHON_COMPAT=( python2_7 python3_{3,4,5} pypy pypy3) + +inherit distutils-r1 + +DESCRIPTION="Validating URI References per RFC 3986" +HOMEPAGE="http://tools.ietf.org/html/rfc3986 https://github.com/sigmavirus24/rfc3986 https://rfc3986.rtfd.org" +SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" +IUSE="test" + +DEPEND=" + dev-python/setuptools[${PYTHON_USEDEP}] + test? ( dev-python/pytest[${PYTHON_USEDEP}] ) +" +RDEPEND="" + +python_test() { + py.test -vv || die +} diff --git a/dev-python/routes/Manifest b/dev-python/routes/Manifest index 968f045910bce..45e0d6f9aefe1 100644 --- a/dev-python/routes/Manifest +++ b/dev-python/routes/Manifest @@ -1,2 +1,3 @@ DIST Routes-2.1.tar.gz 179737 SHA256 ebf4126e244cf11414653b5ba5f27ed4abfad38b906a01e5d4c93d3ce5568ea3 SHA512 6dcea3e20d9883e29d6aea5949eef3b265094f46084234a15530c266930163918c6eb2ad00bb49cd9cbf947a0019c2d91a5455f997bc7a7e5b8c662837a728c2 WHIRLPOOL fbdb8e1a84aa2b1b8bf011aa68a31364f0fd48cabcaaf413274679f34e514283fbd8aac9497444b24f69f7d72393f38aeab5eeeb96659e3aae009ed2eebc4fbf DIST Routes-2.2.tar.gz 180011 SHA256 9fa78373d63e36c3d8af6e33cfcad743f70c012c7ad6f2c3bf89ad973b9ab514 SHA512 ddd88c412fce902aa75be46dd564bea7fed630116d50c0f08db6813de26bbb7af5adf7366dd3664a0fc10e369ed5089f6cc9ac91cc236e1b45c828fe2deee2e2 WHIRLPOOL 9fe75ce3826e64ff46db35fdb47c655f86709fdbfb64ad317b2f672e761a717bc2b4c2fd18f1675b36922d65300cd2f7acec87cb08ceeb50cb85fb099c15209f +DIST Routes-2.3.1.tar.gz 181694 SHA256 98c380b5dc1190b873463be07383728ada18f66d2615531963004b9d6fb90351 SHA512 125bcee31883e55ac2c01896e52890c1eace238728e9f340b9dede8257e66b1002cf48a633b9b0c3421291287559890c3233665cd49b1edb4ed80a99f003da8d WHIRLPOOL 2e8f931c0ac85bc7e0f46dea7b0e38798f8d37005266e40986450d2b3d71c2621150ec8aead05691244622f24b097932e5eb476089f262b8a1b7c19db1333a33 diff --git a/dev-python/routes/routes-2.3.1.ebuild b/dev-python/routes/routes-2.3.1.ebuild new file mode 100644 index 0000000000000..57edb022738b7 --- /dev/null +++ b/dev-python/routes/routes-2.3.1.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +PYTHON_COMPAT=( python{2_7,3_4,3_5} ) + +inherit distutils-r1 + +MY_PN="Routes" +MY_P="${MY_PN}-${PV}" + +DESCRIPTION="A re-implementation of Rails routes system, mapping URLs to Controllers/Actions" +HOMEPAGE="http://routes.groovie.org https://pypi.python.org/pypi/Routes" +SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos" +IUSE="doc" + +DEPEND="dev-python/setuptools[${PYTHON_USEDEP}] + doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )" + +RDEPEND=">=dev-python/repoze-lru-0.3[${PYTHON_USEDEP}] + dev-python/six[${PYTHON_USEDEP}]" + +# The testsuite appears to be held back by the author + +S="${WORKDIR}/${MY_P}" + +# https://github.com/bbangert/routes/issues/42 presents a patch +# for the faulty docbuild converted to sed stmnts +python_prepare_all() { + # The default theme in sphinx switched to classic from shpinx-1.3.1 + if has_version ">=dev-python/sphinx-1.3.1"; then + sed -e "s:html_theme_options = {:html_theme = 'classic'\n&:" \ + -i docs/conf.py || die + else + sed -e "s:html_theme_options = {:html_theme = 'default'\n&:" \ + -i docs/conf.py || die + fi + sed -e "s:changes:changes\n todo:" \ + -i docs/index.rst || die + + distutils-r1_python_prepare_all +} + +python_compile_all() { + use doc && emake -C docs html +} + +python_install_all() { + use doc && HTML_DOCS=( docs/_build/html/. ) + distutils-r1_python_install_all +} diff --git a/dev-python/stevedore/Manifest b/dev-python/stevedore/Manifest index f8ee88e3438a5..5dc04adfd3b0f 100644 --- a/dev-python/stevedore/Manifest +++ b/dev-python/stevedore/Manifest @@ -1,6 +1,7 @@ DIST stevedore-1.1.0.tar.gz 352294 SHA256 f98381d12a6bfff718328d14d0d26cae6c83e39feb787e7b38acfe1089c3f1d3 SHA512 70f8629fdd455421871753810c14462ba66f81d1478ea45696c400a68f034a77c2a3efaac3c96bebe7293c42f73715681161b7fca8897d545a7ae06d64ad0c44 WHIRLPOOL 1f3e5380792cea8b3ef67fc4a4f8be40fd3cb2f048caa71c0c774990dc45d9981edec599312301b3f7a54955b941a421574e3c23c794fc3f117251e845ea214d DIST stevedore-1.10.0.tar.gz 501859 SHA256 f5d689ef38e0ca532d57a03d1ab95e89b17c57f97b58d10c92da94699973779f SHA512 7842388475c4c2f59e0bdbd1f07cc7588a12ac61fb0f9282c4e668e2b6b7278a7ff262ff5b1678492ce6cd7844a01729ed16119ae906fe010e27b8551f30f24e WHIRLPOOL 4399418912867472ad3197b69ad23d080d15150552151efe94a5cb905acaeb7a65e4d6a5d45d5edb5231dba9dd6d7442ca33e93a2d742be5290894a2f9df4c9a DIST stevedore-1.12.0.tar.gz 499155 SHA256 1bdeb2562d8f2c1e3047c2f17134a38b37a6e53e16ca1d9f79ff2ac5d5fe2925 SHA512 c02a0fe91d27f50652f3dd7f9990dca7395cfcfdd1bbbebe72fdd9cfc6a2ac526f023861314ccc29e7cc432619b75449e63639f54186f7cd099cb3f470707502 WHIRLPOOL eac89aa113b3588624235f5da107f1cd873a6ca2e36faa9685b92ffbb862c466bc71971b117599f2e6046fac31b95401c51c5e1f1efd1becd9535a0f87aed355 +DIST stevedore-1.17.1.tar.gz 501848 SHA256 79414e27ece996b2e81161c1ec91536f2b15645d5f6bd28128724486e1c4b8e3 SHA512 5b543bdd45544e23f0f786715ede544cec6e1389f7e836a12925d00a30fd6fcf744bdb929eb54c2d97b1143491b383c766582fa494379171a0f9334e9aaebca3 WHIRLPOOL ee973f5aed81cb013b7e1469aeccadd896637ca55e1ad0a31432ec3327b0b870dd85ad58d89471894cd7f336ae7c13cb527c9b7e37b086daee13684cf8ef7733 DIST stevedore-1.3.0.tar.gz 354869 SHA256 beab2b7f91966d259796392c39ed6f260b32851861561dd9f3b9be2fd0c426a5 SHA512 68583c8e7c9c667c4456754a973d344f79ca141d380e6e568d82f8b36fc77e8debc4d77a006eb7b6e580edf017307f748842f1cae8a82ef101114eebdab82c26 WHIRLPOOL 16eb37416b4dccf8606aca2d407eda9060549e014f41db0f54982707f9a9d51cb7bdfcb048b8bac494f707dce042e22a7ff87c210aff8e39d4940717a5f5a6ca DIST stevedore-1.4.0.tar.gz 353953 SHA256 4a8d80b0a232746c09e0173bd61d60a18e9864e3dc87e3ebefa3ba3d8a00232f SHA512 a947d13ef15b2a5210da7115de7b49b4297f811a8237f0d205c2e2a676747255a852300ca99dd5279ae0de49f706b380fc8a09921c9a1e9f0bf6ad7ea34023e3 WHIRLPOOL 7c4ab9ce986cec938772ed63094a8f2d6a5072be948845dd324c7c68cae4082781babd36d87d832bae37d30960efa76309350cfafa725555e02ca6354dd7c2aa DIST stevedore-1.6.0.tar.gz 500868 SHA256 dab2aa31ec742f651e6a2fe0429560aebbbe0fb7fc462fa0ff565c8f5ff2ec25 SHA512 bdcf3ab8f539ad2df65cb6f1d0eecf77e98a7b579ea50ccb419979ce419632963c199e3e473a36072ba303d3fbdbfea3f0f56a27831c35c65a1874ebc8b6b0b4 WHIRLPOOL 65f6a08f6fa19214725c972bdbc39f605b4a852376ad19c5c29c4bb1a361dea69677e4f7a5061f7ce6201b8da06bd12b8693256cc7b562e4f92b866fcaffd013 diff --git a/dev-python/stevedore/stevedore-1.17.1.ebuild b/dev-python/stevedore/stevedore-1.17.1.ebuild new file mode 100644 index 0000000000000..7c64dd6b20f17 --- /dev/null +++ b/dev-python/stevedore/stevedore-1.17.1.ebuild @@ -0,0 +1,63 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +PYTHON_COMPAT=( python{2_7,3_{4,5}} ) + +inherit distutils-r1 + +DESCRIPTION="Manage dynamic plugins for Python applications" +HOMEPAGE="https://github.com/openstack/stevedore https://pypi.python.org/pypi/stevedore" +SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" +IUSE="doc test" + +CDEPEND=">=dev-python/pbr-1.6[${PYTHON_USEDEP}]" +DEPEND=" + dev-python/setuptools[${PYTHON_USEDEP}] + ${CDEPEND} + test? ( + >=dev-python/mock-2.0.0[${PYTHON_USEDEP}] + dev-python/nose[${PYTHON_USEDEP}] + >=dev-python/coverage-3.6[${PYTHON_USEDEP}] + >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}] + >=dev-python/oslotest-1.10.0[${PYTHON_USEDEP}] + >=dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}] + ) + doc? ( + >=dev-python/pillow-2.4.0[${PYTHON_USEDEP}] + >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}] + !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}] + =dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}] + ) +" +RDEPEND=" + ${CDEPEND} + >=dev-python/six-1.9.0[${PYTHON_USEDEP}]" + +python_prepare_all() { + # Delete spurious data in requirements.txt + sed -e '/^pbr/d' -e '/^argparse/d' \ + -i requirements.txt || die + distutils-r1_python_prepare_all +} + +python_compile_all() { + use doc && esetup.py build_sphinx +} + +python_test() { + nosetests --verbosity=3 stevedore || die +} + +python_install_all() { + use doc && local HTML_DOCS=( doc/build/html/. ) + + distutils-r1_python_install_all +} diff --git a/dev-python/urllib3/urllib3-1.14.ebuild b/dev-python/urllib3/urllib3-1.14.ebuild index fd62a837f0805..d3e20017a3794 100644 --- a/dev-python/urllib3/urllib3-1.14.ebuild +++ b/dev-python/urllib3/urllib3-1.14.ebuild @@ -15,7 +15,7 @@ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-fbsd ~x86-linux" IUSE="doc test" RDEPEND=" diff --git a/sys-auth/keystone/keystone-2016.2.9999.ebuild b/sys-auth/keystone/keystone-2016.2.9999.ebuild new file mode 100644 index 0000000000000..29978b01e622b --- /dev/null +++ b/sys-auth/keystone/keystone-2016.2.9999.ebuild @@ -0,0 +1,166 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +PYTHON_COMPAT=( python2_7 ) + +inherit distutils-r1 git-r3 user + +DESCRIPTION="The Openstack authentication, authorization, and service catalog" +HOMEPAGE="https://launchpad.net/keystone" +EGIT_REPO_URI="https://github.com/openstack/keystone.git" +EGIT_BRANCH="stable/mitaka" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="" +IUSE="+sqlite ldap memcached mongo mysql postgres test" +REQUIRED_USE="|| ( mysql postgres sqlite )" + +CDEPEND=">=dev-python/pbr-1.6[${PYTHON_USEDEP}]" +DEPEND=" + dev-python/setuptools[${PYTHON_USEDEP}] + ${CDEPEND}" +RDEPEND=" + ${CDEPEND} + >=dev-python/Babel-2.3.4[${PYTHON_USEDEP}] + >=dev-python/webob-1.2.3-r1[${PYTHON_USEDEP}] + >=dev-python/pastedeploy-1.5.0[${PYTHON_USEDEP}] + <=dev-python/paste-2.0.2[${PYTHON_USEDEP}] + >=dev-python/routes-1.12.3[${PYTHON_USEDEP}] + !~dev-python/routes-2.0[${PYTHON_USEDEP}] + !~dev-python/routes-2.1[$(python_gen_usedep 'python2_7')] + !~dev-python/routes-2.3.0[${PYTHON_USEDEP}] + >=dev-python/cryptography-1.0[${PYTHON_USEDEP}] + !~dev-python/cryptography-1.3.0[${PYTHON_USEDEP}] + >=dev-python/six-1.9.0[${PYTHON_USEDEP}] + sqlite? ( + >=dev-python/sqlalchemy-1.0.10[sqlite,${PYTHON_USEDEP}] + =dev-python/pymysql-0.6.2[${PYTHON_USEDEP}] + !~dev-python/pymysql-0.7.7[${PYTHON_USEDEP}] + >=dev-python/sqlalchemy-1.0.10[${PYTHON_USEDEP}] + =dev-python/psycopg-2.5.0[${PYTHON_USEDEP}] + >=dev-python/sqlalchemy-1.0.10[${PYTHON_USEDEP}] + =dev-python/sqlalchemy-migrate-0.9.6[${PYTHON_USEDEP}] + >=dev-python/stevedore-1.16.0[${PYTHON_USEDEP}] + >=dev-python/passlib-1.6[${PYTHON_USEDEP}] + >=dev-python/python-keystoneclient-2.0.0[${PYTHON_USEDEP}] + !~dev-python/python-keystoneclient-2.1.0[${PYTHON_USEDEP}] + >=dev-python/keystonemiddleware-4.0.0[${PYTHON_USEDEP}] + !~dev-python/keystonemiddleware-4.1.0[${PYTHON_USEDEP}] + !~dev-python/keystonemiddleware-4.5.0[${PYTHON_USEDEP}] + >=dev-python/oslo-cache-1.5.0[${PYTHON_USEDEP}] + >=dev-python/oslo-concurrency-3.8.0[${PYTHON_USEDEP}] + >=dev-python/oslo-config-3.14.0[${PYTHON_USEDEP}] + >=dev-python/oslo-context-2.9.0[${PYTHON_USEDEP}] + >=dev-python/oslo-messaging-5.2.0[${PYTHON_USEDEP}] + >=dev-python/oslo-db-4.10.0[${PYTHON_USEDEP}] + !~dev-python/oslo-db-4.13.1[${PYTHON_USEDEP}] + !~dev-python/oslo-db-4.13.2[${PYTHON_USEDEP}] + >=dev-python/oslo-i18n-2.1.0[${PYTHON_USEDEP}] + >=dev-python/oslo-log-1.14.0[${PYTHON_USEDEP}] + >=dev-python/oslo-middleware-3.0.0[${PYTHON_USEDEP}] + >=dev-python/oslo-policy-1.9.0[${PYTHON_USEDEP}] + >=dev-python/oslo-serialization-1.10.0[${PYTHON_USEDEP}] + >=dev-python/oslo-utils-3.16.0[${PYTHON_USEDEP}] + >=dev-python/oauthlib-0.6.0[${PYTHON_USEDEP}] + >=dev-python/pysaml2-2.4.0[${PYTHON_USEDEP}] + =dev-python/dogpile-cache-0.6.2[${PYTHON_USEDEP}] + >=dev-python/jsonschema-2.0.0[${PYTHON_USEDEP}] + !~dev-python/jsonschema-2.5.0[${PYTHON_USEDEP}] + =dev-python/pycadf-1.1.0[${PYTHON_USEDEP}] + !~dev-python/pycadf-2.0.0[${PYTHON_USEDEP}] + >=dev-python/msgpack-0.4.0[${PYTHON_USEDEP}] + >=dev-python/osprofiler-1.4.0[${PYTHON_USEDEP}] + memcached? ( + >=dev-python/python-memcached-1.56[${PYTHON_USEDEP}] + ) + mongo? ( + >=dev-python/pymongo-3.0.2[${PYTHON_USEDEP}] + !~dev-python/pymongo-3.1[${PYTHON_USEDEP}] + ) + ldap? ( + >=dev-python/pyldap-2.4[${PYTHON_USEDEP}] + >=dev-python/ldappool-2.0.0[${PYTHON_USEDEP}] + ) + || ( + www-servers/uwsgi[python,${PYTHON_USEDEP}] + www-apache/mod_wsgi[${PYTHON_USEDEP}] + www-servers/gunicorn[${PYTHON_USEDEP}] + )" + +#PATCHES=( +#) + +pkg_setup() { + enewgroup keystone + enewuser keystone -1 -1 /var/lib/keystone keystone +} + +python_prepare_all() { + # it's in git, but not in the tarball..... + sed -i '/^hacking/d' test-requirements.txt || die + mkdir -p ${PN}/tests/tmp/ || die + cp etc/keystone-paste.ini ${PN}/tests/tmp/ || die + sed -i 's|/usr/local|/usr|g' httpd/keystone-uwsgi-* || die + sed -i 's|python|python27|g' httpd/keystone-uwsgi-* || die + distutils-r1_python_prepare_all +} + +# Ignore (naughty) test_.py files & 1 test that connect to the network +#-I 'test_keystoneclient*' \ +python_test() { + nosetests -I 'test_keystoneclient*' \ + -e test_static_translated_string_is_Message \ + -e test_get_token_id_error_handling \ + -e test_provider_token_expiration_validation \ + -e test_import --process-restartworker --process-timeout=60 || die "testsuite failed under python2.7" +} + +python_install() { + distutils-r1_python_install + + diropts -m 0750 + keepdir /etc/keystone /var/log/keystone + insinto /etc/keystone + insopts -m0640 -okeystone -gkeystone + doins etc/keystone.conf.sample etc/logging.conf.sample + doins etc/default_catalog.templates etc/policy.json + doins etc/policy.v3cloudsample.json etc/keystone-paste.ini + insinto /etc/keystone/httpd + doins httpd/* + + fowners keystone:keystone /etc/keystone /etc/keystone/httpd /var/log/keystone +} + +pkg_postinst() { + elog "You might want to run:" + elog "emerge --config =${CATEGORY}/${PF}" + elog "if this is a new install." + elog "If you have not already configured your openssl installation" + elog "please do it by modifying /etc/ssl/openssl.cnf" + elog "BEFORE issuing the configuration command." + elog "Otherwise default values will be used." +} + +pkg_config() { + if [ ! -d "${ROOT}"/etc/keystone/ssl ] ; then + einfo "Press ENTER to configure the keystone PKI, or Control-C to abort now..." + read + "${ROOT}"/usr/bin/keystone-manage pki_setup --keystone-user keystone --keystone-group keystone + else + einfo "keystone PKI certificates directory already present, skipping configuration" + fi +}