Hello community,
here is the log from the commit of package python-keystoneclient for
openSUSE:Factory checked in at 2019-12-04 13:48:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-keystoneclient (Old)
and /work/SRC/openSUSE:Factory/.python-keystoneclient.new.4691 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-keystoneclient"
Wed Dec 4 13:48:37 2019 rev:31 rq:736656 version:3.21.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-keystoneclient/python-keystoneclient.changes
2019-05-03 22:41:01.707064857 +0200
+++
/work/SRC/openSUSE:Factory/.python-keystoneclient.new.4691/python-keystoneclient.changes
2019-12-04 14:18:52.586362426 +0100
@@ -1,0 +2,21 @@
+Wed Oct 9 13:01:26 UTC 2019 - [email protected]
+
+- update to version 3.21.0
+ - Bump the openstackdocstheme extension to 1.20
+ - Generate pdf documentation
+ - Update master for stable/stein
+ - Add parent project filter for listing projects
+ - Blacklist bandit 1.6.0 & cap sphinx for 2.7
+ - Update json module to jsonutils
+ - Add support for app cred access rules header
+ - Follow bandit B105: hardcoded_password_string
+ - Drop py35 jobs
+ - Update the min version of tox
+ - OpenDev Migration Patch
+ - Replace git.openstack.org URLs with opendev.org URLs
+ - Make tests pass in 2020
+ - Add Python 3 Train unit tests
+ - Update the constraints url
+ - Fix unit tests broken by requests-mock
+
+-------------------------------------------------------------------
Old:
----
python-keystoneclient-3.19.0.tar.gz
New:
----
python-keystoneclient-3.21.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-keystoneclient.spec ++++++
--- /var/tmp/diff_new_pack.sPNKUB/_old 2019-12-04 14:18:53.542362889 +0100
+++ /var/tmp/diff_new_pack.sPNKUB/_new 2019-12-04 14:18:53.546362892 +0100
@@ -17,16 +17,15 @@
Name: python-keystoneclient
-Version: 3.19.0
+Version: 3.21.0
Release: 0
Summary: Client library for OpenStack Identity API
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/python-keystoneclient
-Source0:
https://files.pythonhosted.org/packages/source/p/python-keystoneclient/python-keystoneclient-3.19.0.tar.gz
+Source0:
https://files.pythonhosted.org/packages/source/p/python-keystoneclient/python-keystoneclient-3.21.0.tar.gz
BuildRequires: openssl
BuildRequires: openstack-macros
-BuildRequires: python-devel
BuildRequires: python2-debtcollector >= 1.2.0
BuildRequires: python2-keystoneauth1 >= 3.4.0
BuildRequires: python2-lxml
@@ -43,7 +42,6 @@
BuildRequires: python2-testresources
BuildRequires: python2-testscenarios
BuildRequires: python3-debtcollector >= 1.2.0
-BuildRequires: python3-devel
BuildRequires: python3-keystoneauth1 >= 3.4.0
BuildRequires: python3-lxml
BuildRequires: python3-mock
@@ -76,15 +74,15 @@
%package -n python-keystoneclient-doc
Summary: Documentation for OpenStack Identity API Client
Group: Documentation/HTML
-BuildRequires: python-Sphinx
-BuildRequires: python-openstackdocstheme
+BuildRequires: python3-Sphinx
+BuildRequires: python3-openstackdocstheme
%description -n python-keystoneclient-doc
Documentation for the client library for interacting with Openstack
Identity API.
%prep
-%autosetup -p1 -n python-keystoneclient-3.19.0
+%autosetup -p1 -n python-keystoneclient-3.21.0
%py_req_cleanup
# disable intersphinx - no network access during build
echo "intersphinx_mapping = {}" >> doc/source/conf.py
@@ -93,7 +91,7 @@
%{python_build}
# Build HTML docs and man page
-%{__python2} setup.py build_sphinx
+PBR_VERSION=%{version} %sphinx_build -b html doc/source doc/build/html
%install
%{python_install}
@@ -110,8 +108,8 @@
%files %{python_files}
%doc README.rst
%license LICENSE
-%{python2_sitelib}/keystoneclient
-%{python2_sitelib}/*.egg-info
+%{python_sitelib}/keystoneclient
+%{python_sitelib}/*.egg-info
%files -n python-keystoneclient-doc
%doc doc/build/html
++++++ _service ++++++
--- /var/tmp/diff_new_pack.sPNKUB/_old 2019-12-04 14:18:53.586362925 +0100
+++ /var/tmp/diff_new_pack.sPNKUB/_new 2019-12-04 14:18:53.586362925 +0100
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param
name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/openstack/python-keystoneclient/python-keystoneclient.spec.j2</param>
+ <param
name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/train/openstack/python-keystoneclient/python-keystoneclient.spec.j2</param>
<param name="output-name">python-keystoneclient.spec</param>
- <param
name="requirements">https://raw.githubusercontent.com/openstack/python-keystoneclient/stable/stein/requirements.txt</param>
+ <param
name="requirements">https://raw.githubusercontent.com/openstack/python-keystoneclient/stable/train/requirements.txt</param>
<param name="changelog-email">[email protected]</param>
<param name="changelog-provider">gh,openstack,python-keystoneclient</param>
</service>
++++++ python-keystoneclient-3.19.0.tar.gz ->
python-keystoneclient-3.21.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-keystoneclient-3.19.0/.zuul.yaml
new/python-keystoneclient-3.21.0/.zuul.yaml
--- old/python-keystoneclient-3.19.0/.zuul.yaml 2019-02-28 19:17:12.000000000
+0100
+++ new/python-keystoneclient-3.21.0/.zuul.yaml 2019-09-12 11:31:50.000000000
+0200
@@ -9,20 +9,18 @@
post-run: playbooks/tox-post.yaml
vars:
devstack_localrc:
- USE_PYTHON3: True
+ USE_PYTHON3: true
devstack_services:
key: true
tox_envlist: functional
- zuul_work_dir: src/git.openstack.org/openstack/python-keystoneclient
+ zuul_work_dir: src/opendev.org/openstack/python-keystoneclient
- project:
templates:
- openstack-cover-jobs
- openstack-lower-constraints-jobs
- openstack-python-jobs
- - openstack-python35-jobs
- - openstack-python36-jobs
- - openstack-python37-jobs
+ - openstack-python3-train-jobs
- publish-openstack-docs-pti
- check-requirements
- lib-forward-testing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-keystoneclient-3.19.0/AUTHORS
new/python-keystoneclient-3.21.0/AUTHORS
--- old/python-keystoneclient-3.19.0/AUTHORS 2019-02-28 19:18:43.000000000
+0100
+++ new/python-keystoneclient-3.21.0/AUTHORS 2019-09-12 11:33:04.000000000
+0200
@@ -201,6 +201,7 @@
Stuart McLaren <[email protected]>
Sushil Kumar <[email protected]>
THOMAS J. COCOZZELLO <[email protected]>
+Takashi Kajinami <[email protected]>
Tang Chen <[email protected]>
Thiago Paiva Brito <[email protected]>
Thierry Carrez <[email protected]>
@@ -245,6 +246,7 @@
Zhongyue Luo <[email protected]>
Ziad Sawalha <[email protected]>
ankitagrawal <[email protected]>
+cao.yuan <[email protected]>
chenaidong1 <[email protected]>
chenxiao <[email protected]>
chenxing <[email protected]>
@@ -256,6 +258,7 @@
hgangwx <[email protected]>
howardlee <[email protected]>
huangtianhua <[email protected]>
+jacky06 <[email protected]>
jakedahn <[email protected]>
ji-xuepeng <[email protected]>
jun xie <[email protected]>
@@ -273,6 +276,7 @@
nachiappan-veerappan-nachiappan <[email protected]>
openstack <[email protected]>
pawnesh.kumar <[email protected]>
+pengyuesheng <[email protected]>
qingszhao <[email protected]>
rajiv <[email protected]>
root <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-keystoneclient-3.19.0/ChangeLog
new/python-keystoneclient-3.21.0/ChangeLog
--- old/python-keystoneclient-3.19.0/ChangeLog 2019-02-28 19:18:43.000000000
+0100
+++ new/python-keystoneclient-3.21.0/ChangeLog 2019-09-12 11:33:04.000000000
+0200
@@ -1,6 +1,30 @@
CHANGES
=======
+3.21.0
+------
+
+* Fix unit tests broken by requests-mock
+* Generate pdf documentation
+* Add parent project filter for listing projects
+* Bump the openstackdocstheme extension to 1.20
+
+3.20.0
+------
+
+* Blacklist bandit 1.6.0 & cap sphinx for 2.7
+* Update the constraints url
+* Add Python 3 Train unit tests
+* Follow bandit B105: hardcoded\_password\_string
+* Replace git.openstack.org URLs with opendev.org URLs
+* OpenDev Migration Patch
+* Update the min version of tox
+* Update master for stable/stein
+* Drop py35 jobs
+* Make tests pass in 2020
+* Update json module to jsonutils
+* Add support for app cred access rules header
+
3.19.0
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-keystoneclient-3.19.0/PKG-INFO
new/python-keystoneclient-3.21.0/PKG-INFO
--- old/python-keystoneclient-3.19.0/PKG-INFO 2019-02-28 19:18:44.000000000
+0100
+++ new/python-keystoneclient-3.21.0/PKG-INFO 2019-09-12 11:33:05.000000000
+0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: python-keystoneclient
-Version: 3.19.0
+Version: 3.21.0
Summary: Client Library for OpenStack Identity
Home-page: https://docs.openstack.org/python-keystoneclient/latest/
Author: OpenStack
@@ -42,7 +42,7 @@
.. _Launchpad project: https://launchpad.net/python-keystoneclient
.. _Blueprints: https://blueprints.launchpad.net/python-keystoneclient
.. _Bugs: https://bugs.launchpad.net/python-keystoneclient
- .. _Source:
https://git.openstack.org/cgit/openstack/python-keystoneclient
+ .. _Source: https://opendev.org/openstack/python-keystoneclient
.. _OpenStackClient: https://pypi.org/project/python-openstackclient
.. _How to Contribute:
https://docs.openstack.org/infra/manual/developers.html
.. _Specs: https://specs.openstack.org/openstack/keystone-specs/
@@ -80,5 +80,5 @@
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-keystoneclient-3.19.0/README.rst
new/python-keystoneclient-3.21.0/README.rst
--- old/python-keystoneclient-3.19.0/README.rst 2019-02-28 19:17:12.000000000
+0100
+++ new/python-keystoneclient-3.21.0/README.rst 2019-09-12 11:31:50.000000000
+0200
@@ -34,7 +34,7 @@
.. _Launchpad project: https://launchpad.net/python-keystoneclient
.. _Blueprints: https://blueprints.launchpad.net/python-keystoneclient
.. _Bugs: https://bugs.launchpad.net/python-keystoneclient
-.. _Source: https://git.openstack.org/cgit/openstack/python-keystoneclient
+.. _Source: https://opendev.org/openstack/python-keystoneclient
.. _OpenStackClient: https://pypi.org/project/python-openstackclient
.. _How to Contribute: https://docs.openstack.org/infra/manual/developers.html
.. _Specs: https://specs.openstack.org/openstack/keystone-specs/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-keystoneclient-3.19.0/doc/requirements.txt
new/python-keystoneclient-3.21.0/doc/requirements.txt
--- old/python-keystoneclient-3.19.0/doc/requirements.txt 2019-02-28
19:17:12.000000000 +0100
+++ new/python-keystoneclient-3.21.0/doc/requirements.txt 2019-09-12
11:31:50.000000000 +0200
@@ -3,8 +3,9 @@
# process, which may cause wedges in the gate later.
# These are needed for docs generation
-openstackdocstheme>=1.18.1 # Apache-2.0
-sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD
+openstackdocstheme>=1.20.0 # Apache-2.0
+sphinx!=1.6.6,!=1.6.7,>=1.6.2,<2.0.0;python_version=='2.7' # BSD
+sphinx!=1.6.6,!=1.6.7,>=1.6.2;python_version>='3.4' # BSD
reno>=2.5.0 # Apache-2.0
lxml!=3.7.0,>=3.4.1 # BSD
fixtures>=3.0.0 # Apache-2.0/BSD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-keystoneclient-3.19.0/doc/source/conf.py
new/python-keystoneclient-3.21.0/doc/source/conf.py
--- old/python-keystoneclient-3.19.0/doc/source/conf.py 2019-02-28
19:17:12.000000000 +0100
+++ new/python-keystoneclient-3.21.0/doc/source/conf.py 2019-09-12
11:31:50.000000000 +0200
@@ -15,8 +15,6 @@
import os
import sys
-import pbr.version
-
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__),
'..', '..')))
@@ -53,18 +51,8 @@
master_doc = 'index'
# General information about the project.
-project = 'python-keystoneclient'
copyright = 'OpenStack Contributors'
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-version_info = pbr.version.VersionInfo('python-keystoneclient')
-# The short X.Y version.
-version = version_info.version_string()
-# The full version, including alpha/beta/rc tags.
-release = version_info.release_string()
-
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#language = None
@@ -145,10 +133,6 @@
# so a file named "default.css" will overwrite the builtin "default.css".
#html_static_path = ['static']
-# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
-# using the given strftime format.
-html_last_updated_fmt = '%Y-%m-%d %H:%M'
-
# If true, SmartyPants will be used to convert quotes and dashes to
# typographically correct entities.
#html_use_smartypants = True
@@ -196,10 +180,9 @@
# (source start file, target name, title, author, documentclass [howto/manual])
# .
latex_documents = [
- ('index', 'python-keystoneclient.tex',
- 'python-keystoneclient Documentation',
- 'Nebula Inc, based on work by Rackspace and Jacob Kaplan-Moss',
- 'manual'),
+ ('index', 'doc-python-keystoneclient.tex',
+ u'python-keystoneclient Documentation',
+ u'OpenStack', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
@@ -219,6 +202,18 @@
# If false, no module index is generated.
#latex_use_modindex = True
+# Disable usage of xindy https://bugzilla.redhat.com/show_bug.cgi?id=1643664
+latex_use_xindy = False
+
+latex_domain_indices = False
+
+latex_elements = {
+ 'makeindex': '',
+ 'printindex': '',
+ 'preamble': r'\setcounter{tocdepth}{3}',
+ 'maxlistdepth': 10,
+}
+
keystoneauth_url = 'https://docs.openstack.org/keystoneauth/latest/'
intersphinx_mapping = {
'python': ('https://docs.python.org/', None),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.19.0/examples/pki/gen_cmsz.py
new/python-keystoneclient-3.21.0/examples/pki/gen_cmsz.py
--- old/python-keystoneclient-3.19.0/examples/pki/gen_cmsz.py 2019-02-28
19:17:12.000000000 +0100
+++ new/python-keystoneclient-3.21.0/examples/pki/gen_cmsz.py 2019-09-12
11:31:50.000000000 +0200
@@ -12,9 +12,10 @@
# License for the specific language governing permissions and limitations
# under the License.
-import json
import os
+from oslo_serialization import jsonutils
+
from keystoneclient.common import cms
from keystoneclient import utils
@@ -44,7 +45,7 @@
'id': id,
"expires": "2112-08-14T17:58:48Z"
})
- revoked_json = json.dumps({"revoked": revoked_list})
+ revoked_json = jsonutils.dumps({"revoked": revoked_list})
with open(make_filename('cms', 'revocation_list.json'), 'w') as f:
f.write(revoked_json)
encoded = cms.pkiz_sign(revoked_json,
@@ -91,12 +92,12 @@
# validate the JSON
try:
- token_data = json.loads(string_data)
+ token_data = jsonutils.loads(string_data)
except ValueError as v:
raise SystemExit('%s while processing token data from %s: %s' %
(v, json_file, string_data))
- text = json.dumps(token_data).encode('utf-8')
+ text = jsonutils.dumps(token_data).encode('utf-8')
# Uncomment to record the token uncompressed,
# useful for debugging
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.19.0/keystoneclient/auth/identity/v3/base.py
new/python-keystoneclient-3.21.0/keystoneclient/auth/identity/v3/base.py
--- old/python-keystoneclient-3.19.0/keystoneclient/auth/identity/v3/base.py
2019-02-28 19:17:12.000000000 +0100
+++ new/python-keystoneclient-3.21.0/keystoneclient/auth/identity/v3/base.py
2019-09-12 11:31:50.000000000 +0200
@@ -11,10 +11,10 @@
# under the License.
import abc
-import json
import logging
from oslo_config import cfg
+from oslo_serialization import jsonutils
import six
from keystoneclient import access
@@ -189,7 +189,7 @@
authenticated=False, log=False, **rkwargs)
try:
- _logger.debug(json.dumps(resp.json()))
+ _logger.debug(jsonutils.dumps(resp.json()))
resp_data = resp.json()['token']
except (KeyError, ValueError):
raise exceptions.InvalidResponse(response=resp)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.19.0/keystoneclient/common/cms.py
new/python-keystoneclient-3.21.0/keystoneclient/common/cms.py
--- old/python-keystoneclient-3.19.0/keystoneclient/common/cms.py
2019-02-28 19:17:12.000000000 +0100
+++ new/python-keystoneclient-3.21.0/keystoneclient/common/cms.py
2019-09-12 11:31:50.000000000 +0200
@@ -38,7 +38,8 @@
PKIZ_PREFIX = 'PKIZ_'
PKIZ_CMS_FORM = 'DER'
PKI_ASN1_FORM = 'PEM'
-DEFAULT_TOKEN_DIGEST_ALGORITHM = 'sha256'
+# Adding nosec since this fails bandit B105, 'Possible hardcoded password'.
+DEFAULT_TOKEN_DIGEST_ALGORITHM = 'sha256' # nosec
# The openssl cms command exits with these status codes.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.19.0/keystoneclient/tests/functional/v3/test_projects.py
new/python-keystoneclient-3.21.0/keystoneclient/tests/functional/v3/test_projects.py
---
old/python-keystoneclient-3.19.0/keystoneclient/tests/functional/v3/test_projects.py
2019-02-28 19:17:12.000000000 +0100
+++
new/python-keystoneclient-3.21.0/keystoneclient/tests/functional/v3/test_projects.py
2019-09-12 11:31:50.000000000 +0200
@@ -157,6 +157,30 @@
self.assertIn(project_one.entity, projects)
self.assertIn(project_two.entity, projects)
+ def test_list_subprojects(self):
+ parent_project = fixtures.Project(self.client, self.test_domain.id)
+ self.useFixture(parent_project)
+
+ child_project_one = fixtures.Project(self.client, self.test_domain.id,
+ parent=parent_project.id)
+ self.useFixture(child_project_one)
+
+ child_project_two = fixtures.Project(self.client, self.test_domain.id,
+ parent=parent_project.id)
+ self.useFixture(child_project_two)
+
+ projects = self.client.projects.list(parent=parent_project.id)
+
+ # All projects are valid
+ for project in projects:
+ self.check_project(project)
+
+ self.assertIn(child_project_one.entity, projects)
+ self.assertIn(child_project_two.entity, projects)
+
+ # Parent project should not be included in the result
+ self.assertNotIn(parent_project.entity, projects)
+
def test_update_project(self):
project = fixtures.Project(self.client, self.test_domain.id)
self.useFixture(project)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.19.0/keystoneclient/tests/unit/auth/test_identity_v2.py
new/python-keystoneclient-3.21.0/keystoneclient/tests/unit/auth/test_identity_v2.py
---
old/python-keystoneclient-3.19.0/keystoneclient/tests/unit/auth/test_identity_v2.py
2019-02-28 19:17:12.000000000 +0100
+++
new/python-keystoneclient-3.21.0/keystoneclient/tests/unit/auth/test_identity_v2.py
2019-09-12 11:31:50.000000000 +0200
@@ -84,7 +84,7 @@
self.TEST_RESPONSE_DICT = {
"access": {
"token": {
- "expires": "2020-01-01T00:00:10.000123Z",
+ "expires": "2999-01-01T00:00:10.000123Z",
"id": self.TEST_TOKEN,
"tenant": {
"id": self.TEST_TENANT_ID
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.19.0/keystoneclient/tests/unit/auth/test_identity_v3.py
new/python-keystoneclient-3.21.0/keystoneclient/tests/unit/auth/test_identity_v3.py
---
old/python-keystoneclient-3.19.0/keystoneclient/tests/unit/auth/test_identity_v3.py
2019-02-28 19:17:12.000000000 +0100
+++
new/python-keystoneclient-3.21.0/keystoneclient/tests/unit/auth/test_identity_v3.py
2019-09-12 11:31:50.000000000 +0200
@@ -129,7 +129,7 @@
"password"
],
- "expires_at": "2020-01-01T00:00:10.000123Z",
+ "expires_at": "2999-01-01T00:00:10.000123Z",
"project": {
"domain": {
"id": self.TEST_DOMAIN_ID,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.19.0/keystoneclient/tests/unit/client_fixtures.py
new/python-keystoneclient-3.21.0/keystoneclient/tests/unit/client_fixtures.py
---
old/python-keystoneclient-3.19.0/keystoneclient/tests/unit/client_fixtures.py
2019-02-28 19:17:12.000000000 +0100
+++
new/python-keystoneclient-3.21.0/keystoneclient/tests/unit/client_fixtures.py
2019-09-12 11:31:50.000000000 +0200
@@ -399,7 +399,7 @@
'access': {
'token': {
'id': self.UUID_TOKEN_DEFAULT,
- 'expires': '2020-01-01T00:00:10.000123Z',
+ 'expires': '2999-01-01T00:00:10.000123Z',
'tenant': {
'id': 'tenant_id1',
'name': 'tenant_name1',
@@ -420,7 +420,7 @@
'access': {
'token': {
'id': self.VALID_DIABLO_TOKEN,
- 'expires': '2020-01-01T00:00:10.000123Z',
+ 'expires': '2999-01-01T00:00:10.000123Z',
'tenantId': 'tenant_id1',
},
'user': {
@@ -437,7 +437,7 @@
'access': {
'token': {
'id': self.UUID_TOKEN_UNSCOPED,
- 'expires': '2020-01-01T00:00:10.000123Z',
+ 'expires': '2999-01-01T00:00:10.000123Z',
},
'user': {
'id': 'user_id1',
@@ -453,7 +453,7 @@
'access': {
'token': {
'id': 'valid-token',
- 'expires': '2020-01-01T00:00:10.000123Z',
+ 'expires': '2999-01-01T00:00:10.000123Z',
'tenant': {
'id': 'tenant_id1',
'name': 'tenant_name1',
@@ -474,7 +474,7 @@
'token': {
'bind': {'kerberos': self.KERBEROS_BIND},
'id': self.UUID_TOKEN_BIND,
- 'expires': '2020-01-01T00:00:10.000123Z',
+ 'expires': '2999-01-01T00:00:10.000123Z',
'tenant': {
'id': 'tenant_id1',
'name': 'tenant_name1',
@@ -496,7 +496,7 @@
'token': {
'bind': {'FOO': 'BAR'},
'id': self.UUID_TOKEN_UNKNOWN_BIND,
- 'expires': '2020-01-01T00:00:10.000123Z',
+ 'expires': '2999-01-01T00:00:10.000123Z',
'tenant': {
'id': 'tenant_id1',
'name': 'tenant_name1',
@@ -515,7 +515,7 @@
},
self.v3_UUID_TOKEN_DEFAULT: {
'token': {
- 'expires_at': '2020-01-01T00:00:10.000123Z',
+ 'expires_at': '2999-01-01T00:00:10.000123Z',
'methods': ['password'],
'user': {
'id': 'user_id1',
@@ -542,7 +542,7 @@
},
self.v3_UUID_TOKEN_UNSCOPED: {
'token': {
- 'expires_at': '2020-01-01T00:00:10.000123Z',
+ 'expires_at': '2999-01-01T00:00:10.000123Z',
'methods': ['password'],
'user': {
'id': 'user_id1',
@@ -556,7 +556,7 @@
},
self.v3_UUID_TOKEN_DOMAIN_SCOPED: {
'token': {
- 'expires_at': '2020-01-01T00:00:10.000123Z',
+ 'expires_at': '2999-01-01T00:00:10.000123Z',
'methods': ['password'],
'user': {
'id': 'user_id1',
@@ -581,7 +581,7 @@
'access': {
'token': {
'id': self.SIGNED_TOKEN_SCOPED_KEY,
- 'expires': '2020-01-01T00:00:10.000123Z',
+ 'expires': '2999-01-01T00:00:10.000123Z',
},
'user': {
'id': 'user_id1',
@@ -599,7 +599,7 @@
'access': {
'token': {
'id': self.SIGNED_TOKEN_UNSCOPED_KEY,
- 'expires': '2020-01-01T00:00:10.000123Z',
+ 'expires': '2999-01-01T00:00:10.000123Z',
},
'user': {
'id': 'user_id1',
@@ -613,7 +613,7 @@
},
self.SIGNED_v3_TOKEN_SCOPED_KEY: {
'token': {
- 'expires_at': '2020-01-01T00:00:10.000123Z',
+ 'expires_at': '2999-01-01T00:00:10.000123Z',
'methods': ['password'],
'user': {
'id': 'user_id1',
@@ -642,7 +642,7 @@
'token': {
'bind': {'kerberos': self.KERBEROS_BIND},
'methods': ['password'],
- 'expires_at': '2020-01-01T00:00:10.000123Z',
+ 'expires_at': '2999-01-01T00:00:10.000123Z',
'user': {
'id': 'user_id1',
'name': 'user_name1',
@@ -669,7 +669,7 @@
self.v3_UUID_TOKEN_UNKNOWN_BIND: {
'token': {
'bind': {'FOO': 'BAR'},
- 'expires_at': '2020-01-01T00:00:10.000123Z',
+ 'expires_at': '2999-01-01T00:00:10.000123Z',
'methods': ['password'],
'user': {
'id': 'user_id1',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.19.0/keystoneclient/tests/unit/test_discovery.py
new/python-keystoneclient-3.21.0/keystoneclient/tests/unit/test_discovery.py
---
old/python-keystoneclient-3.19.0/keystoneclient/tests/unit/test_discovery.py
2019-02-28 19:17:12.000000000 +0100
+++
new/python-keystoneclient-3.21.0/keystoneclient/tests/unit/test_discovery.py
2019-09-12 11:31:50.000000000 +0200
@@ -87,7 +87,7 @@
V2_AUTH_RESPONSE = jsonutils.dumps({
"access": {
"token": {
- "expires": "2020-01-01T00:00:10.000123Z",
+ "expires": "2999-01-01T00:00:10.000123Z",
"id": 'fakeToken',
"tenant": {
"id": '1'
@@ -113,7 +113,7 @@
"password"
],
- "expires_at": "2020-01-01T00:00:10.000123Z",
+ "expires_at": "2999-01-01T00:00:10.000123Z",
"project": {
"domain": {
"id": '1',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.19.0/keystoneclient/tests/unit/test_session.py
new/python-keystoneclient-3.21.0/keystoneclient/tests/unit/test_session.py
--- old/python-keystoneclient-3.19.0/keystoneclient/tests/unit/test_session.py
2019-02-28 19:17:12.000000000 +0100
+++ new/python-keystoneclient-3.21.0/keystoneclient/tests/unit/test_session.py
2019-09-12 11:31:50.000000000 +0200
@@ -828,7 +828,6 @@
self.assertIn(list(response.keys())[0], output)
self.assertIn(list(response.values())[0], output)
- self.assertNotIn(self.TEST_URL, self.logger.output)
self.assertNotIn(list(response.keys())[0], self.logger.output)
self.assertNotIn(list(response.values())[0], self.logger.output)
@@ -1026,7 +1025,6 @@
self.assertIn(list(response.keys())[0], output)
self.assertIn(list(response.values())[0], output)
- self.assertNotIn(self.TEST_URL, self.logger.output)
self.assertNotIn(list(response.keys())[0], self.logger.output)
self.assertNotIn(list(response.values())[0], self.logger.output)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.19.0/keystoneclient/tests/unit/v2_0/test_auth.py
new/python-keystoneclient-3.21.0/keystoneclient/tests/unit/v2_0/test_auth.py
---
old/python-keystoneclient-3.19.0/keystoneclient/tests/unit/v2_0/test_auth.py
2019-02-28 19:17:12.000000000 +0100
+++
new/python-keystoneclient-3.21.0/keystoneclient/tests/unit/v2_0/test_auth.py
2019-09-12 11:31:50.000000000 +0200
@@ -28,7 +28,7 @@
self.TEST_RESPONSE_DICT = {
"access": {
"token": {
- "expires": "2020-01-01T00:00:10.000123Z",
+ "expires": "2999-01-01T00:00:10.000123Z",
"id": self.TEST_TOKEN,
"tenant": {
"id": self.TEST_TENANT_ID
@@ -61,7 +61,7 @@
# Build a new response
TEST_TOKEN = "abcdef"
- resp_b['access']['token']['expires'] = '2020-01-01T00:00:10.000123Z'
+ resp_b['access']['token']['expires'] = '2999-01-01T00:00:10.000123Z'
resp_b['access']['token']['id'] = TEST_TOKEN
# return expired first, and then the new response
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.19.0/keystoneclient/tests/unit/v2_0/test_client.py
new/python-keystoneclient-3.21.0/keystoneclient/tests/unit/v2_0/test_client.py
---
old/python-keystoneclient-3.19.0/keystoneclient/tests/unit/v2_0/test_client.py
2019-02-28 19:17:12.000000000 +0100
+++
new/python-keystoneclient-3.21.0/keystoneclient/tests/unit/v2_0/test_client.py
2019-09-12 11:31:50.000000000 +0200
@@ -10,9 +10,10 @@
# License for the specific language governing permissions and limitations
# under the License.
-import json
import uuid
+from oslo_serialization import jsonutils
+
from keystoneauth1 import fixture
from keystoneauth1 import session as auth_session
@@ -75,10 +76,10 @@
password='password',
project_name='exampleproject',
auth_url=self.TEST_URL)
- cache = json.dumps(cl.auth_ref)
+ cache = jsonutils.dumps(cl.auth_ref)
# Creating a HTTPClient not using session is deprecated.
with self.deprecations.expect_deprecations_here():
- new_client = client.Client(auth_ref=json.loads(cache))
+ new_client = client.Client(auth_ref=jsonutils.loads(cache))
self.assertIsNotNone(new_client.auth_ref)
with self.deprecations.expect_deprecations_here():
self.assertTrue(new_client.auth_ref.scoped)
@@ -100,11 +101,11 @@
password='password',
project_name='exampleproject',
auth_url=self.TEST_URL)
- cache = json.dumps(cl.auth_ref)
+ cache = jsonutils.dumps(cl.auth_ref)
new_auth_url = "http://new-public:5000/v2.0"
# Creating a HTTPClient not using session is deprecated.
with self.deprecations.expect_deprecations_here():
- new_client = client.Client(auth_ref=json.loads(cache),
+ new_client = client.Client(auth_ref=jsonutils.loads(cache),
auth_url=new_auth_url)
self.assertIsNotNone(new_client.auth_ref)
with self.deprecations.expect_deprecations_here():
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.19.0/keystoneclient/tests/unit/v3/test_auth.py
new/python-keystoneclient-3.21.0/keystoneclient/tests/unit/v3/test_auth.py
--- old/python-keystoneclient-3.19.0/keystoneclient/tests/unit/v3/test_auth.py
2019-02-28 19:17:12.000000000 +0100
+++ new/python-keystoneclient-3.21.0/keystoneclient/tests/unit/v3/test_auth.py
2019-09-12 11:31:50.000000000 +0200
@@ -28,7 +28,7 @@
"password"
],
- "expires_at": "2020-01-01T00:00:10.000123Z",
+ "expires_at": "2999-01-01T00:00:10.000123Z",
"project": {
"domain": {
"id": self.TEST_DOMAIN_ID,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.19.0/keystoneclient/tests/unit/v3/test_client.py
new/python-keystoneclient-3.21.0/keystoneclient/tests/unit/v3/test_client.py
---
old/python-keystoneclient-3.19.0/keystoneclient/tests/unit/v3/test_client.py
2019-02-28 19:17:12.000000000 +0100
+++
new/python-keystoneclient-3.21.0/keystoneclient/tests/unit/v3/test_client.py
2019-09-12 11:31:50.000000000 +0200
@@ -11,9 +11,9 @@
# under the License.
import copy
-import json
import uuid
+from oslo_serialization import jsonutils
from keystoneauth1 import session as auth_session
from keystoneclient.auth import token_endpoint
@@ -90,10 +90,10 @@
password='password',
project_id=token.project_id,
auth_url=self.TEST_URL)
- cache = json.dumps(c.auth_ref)
+ cache = jsonutils.dumps(c.auth_ref)
# Creating a HTTPClient not using session is deprecated.
with self.deprecations.expect_deprecations_here():
- new_client = client.Client(auth_ref=json.loads(cache))
+ new_client = client.Client(auth_ref=jsonutils.loads(cache))
self.assertIsNotNone(new_client.auth_ref)
self.assertFalse(new_client.auth_ref.domain_scoped)
self.assertTrue(new_client.auth_ref.project_scoped)
@@ -124,10 +124,10 @@
password='password',
project_id=project_id,
auth_url=self.TEST_URL)
- cache = json.dumps(c.auth_ref)
+ cache = jsonutils.dumps(c.auth_ref)
# Creating a HTTPClient not using session is deprecated.
with self.deprecations.expect_deprecations_here():
- new_client = client.Client(auth_ref=json.loads(cache),
+ new_client = client.Client(auth_ref=jsonutils.loads(cache),
auth_url=new_auth_url)
self.assertIsNotNone(new_client.auth_ref)
self.assertFalse(new_client.auth_ref.domain_scoped)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.19.0/keystoneclient/tests/unit/v3/test_projects.py
new/python-keystoneclient-3.21.0/keystoneclient/tests/unit/v3/test_projects.py
---
old/python-keystoneclient-3.19.0/keystoneclient/tests/unit/v3/test_projects.py
2019-02-28 19:17:12.000000000 +0100
+++
new/python-keystoneclient-3.21.0/keystoneclient/tests/unit/v3/test_projects.py
2019-09-12 11:31:50.000000000 +0200
@@ -55,8 +55,7 @@
ref_list = [self.new_ref(), self.new_ref()]
domain_id = uuid.uuid4().hex
- self.stub_entity('GET', [self.collection_key],
- entity=ref_list)
+ self.stub_entity('GET', [self.collection_key], entity=ref_list)
returned_list = self.manager.list(domain=domain_id)
self.assertEqual(len(ref_list), len(returned_list))
@@ -64,6 +63,18 @@
self.assertQueryStringIs('domain_id=%s' % domain_id)
+ def test_list_projects_for_parent(self):
+ ref_list = [self.new_ref(), self.new_ref()]
+ parent_id = uuid.uuid4().hex
+
+ self.stub_entity('GET', [self.collection_key], entity=ref_list)
+
+ returned_list = self.manager.list(parent=parent_id)
+ self.assertEqual(len(ref_list), len(returned_list))
+ [self.assertIsInstance(r, self.model) for r in returned_list]
+
+ self.assertQueryStringIs('parent_id=%s' % parent_id)
+
def test_create_with_parent(self):
parent_ref = self.new_ref()
parent_ref['parent_id'] = uuid.uuid4().hex
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.19.0/keystoneclient/tests/unit/v3/test_role_assignments.py
new/python-keystoneclient-3.21.0/keystoneclient/tests/unit/v3/test_role_assignments.py
---
old/python-keystoneclient-3.19.0/keystoneclient/tests/unit/v3/test_role_assignments.py
2019-02-28 19:17:12.000000000 +0100
+++
new/python-keystoneclient-3.21.0/keystoneclient/tests/unit/v3/test_role_assignments.py
2019-09-12 11:31:50.000000000 +0200
@@ -265,7 +265,7 @@
ref_list = self.TEST_ALL_RESPONSE_LIST
self.stub_entity('GET',
[self.collection_key,
- '?include_names'],
+ '?include_names=True'],
entity=ref_list)
returned_list = self.manager.list(include_names=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.19.0/keystoneclient/v3/projects.py
new/python-keystoneclient-3.21.0/keystoneclient/v3/projects.py
--- old/python-keystoneclient-3.19.0/keystoneclient/v3/projects.py
2019-02-28 19:17:12.000000000 +0100
+++ new/python-keystoneclient-3.21.0/keystoneclient/v3/projects.py
2019-09-12 11:31:50.000000000 +0200
@@ -112,7 +112,7 @@
enabled=enabled,
**kwargs)
- def list(self, domain=None, user=None, **kwargs):
+ def list(self, domain=None, user=None, parent=None, **kwargs):
"""List projects.
:param domain: the domain of the projects to be filtered on.
@@ -120,6 +120,9 @@
:param user: filter in projects the specified user has role
assignments on.
:type user: str or :class:`keystoneclient.v3.users.User`
+ :param parent: filter in projects the specified project is a parent
+ for
+ :type parent: str or :class:`keystoneclient.v3.projects.Project`
:param kwargs: any other attribute provided will filter projects on.
Project tags filter keyword: ``tags``, ``tags_any``,
``not_tags``, and ``not_tags_any``. tag attribute type
@@ -134,6 +137,7 @@
projects = super(ProjectManager, self).list(
base_url=base_url,
domain_id=base.getid(domain),
+ parent_id=base.getid(parent),
fallback_to_auth=True,
**kwargs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.19.0/keystoneclient/v3/tokens.py
new/python-keystoneclient-3.21.0/keystoneclient/v3/tokens.py
--- old/python-keystoneclient-3.19.0/keystoneclient/v3/tokens.py
2019-02-28 19:17:12.000000000 +0100
+++ new/python-keystoneclient-3.21.0/keystoneclient/v3/tokens.py
2019-09-12 11:31:50.000000000 +0200
@@ -57,7 +57,8 @@
resp, body = self._client.get(path)
return body
- def get_token_data(self, token, include_catalog=True, allow_expired=False):
+ def get_token_data(self, token, include_catalog=True, allow_expired=False,
+ access_rules_support=None):
"""Fetch the data about a token from the identity server.
:param str token: The ID of the token to be fetched.
@@ -65,11 +66,18 @@
included in the response.
:param allow_expired: If True the token will be validated and returned
if it has already expired.
+ :param access_rules_support: Version number indicating that the client
+ is capable of enforcing keystone
+ access rules, if unset this client
+ does not support access rules.
+ :type access_rules_support: float
:rtype: dict
"""
headers = {'X-Subject-Token': token}
+ if access_rules_support:
+ headers['OpenStack-Identity-Access-Rules'] = access_rules_support
flags = []
url = '/auth/tokens'
@@ -85,7 +93,8 @@
resp, body = self._client.get(url, headers=headers)
return body
- def validate(self, token, include_catalog=True, allow_expired=False):
+ def validate(self, token, include_catalog=True, allow_expired=False,
+ access_rules_support=None):
"""Validate a token.
:param token: The token to be validated.
@@ -95,6 +104,11 @@
:param allow_expired: If True the token will be validated and returned
if it has already expired.
:type allow_expired: bool
+ :param access_rules_support: Version number indicating that the client
+ is capable of enforcing keystone
+ access rules, if unset this client
+ does not support access rules.
+ :type access_rules_support: float
:rtype: :class:`keystoneclient.access.AccessInfoV3`
@@ -102,5 +116,6 @@
token_id = _calc_id(token)
body = self.get_token_data(token_id,
include_catalog=include_catalog,
- allow_expired=allow_expired)
+ allow_expired=allow_expired,
+ access_rules_support=access_rules_support)
return access.AccessInfo.factory(auth_token=token_id, body=body)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.19.0/python_keystoneclient.egg-info/PKG-INFO
new/python-keystoneclient-3.21.0/python_keystoneclient.egg-info/PKG-INFO
--- old/python-keystoneclient-3.19.0/python_keystoneclient.egg-info/PKG-INFO
2019-02-28 19:18:43.000000000 +0100
+++ new/python-keystoneclient-3.21.0/python_keystoneclient.egg-info/PKG-INFO
2019-09-12 11:33:05.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: python-keystoneclient
-Version: 3.19.0
+Version: 3.21.0
Summary: Client Library for OpenStack Identity
Home-page: https://docs.openstack.org/python-keystoneclient/latest/
Author: OpenStack
@@ -42,7 +42,7 @@
.. _Launchpad project: https://launchpad.net/python-keystoneclient
.. _Blueprints: https://blueprints.launchpad.net/python-keystoneclient
.. _Bugs: https://bugs.launchpad.net/python-keystoneclient
- .. _Source:
https://git.openstack.org/cgit/openstack/python-keystoneclient
+ .. _Source: https://opendev.org/openstack/python-keystoneclient
.. _OpenStackClient: https://pypi.org/project/python-openstackclient
.. _How to Contribute:
https://docs.openstack.org/infra/manual/developers.html
.. _Specs: https://specs.openstack.org/openstack/keystone-specs/
@@ -80,5 +80,5 @@
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.19.0/python_keystoneclient.egg-info/SOURCES.txt
new/python-keystoneclient-3.21.0/python_keystoneclient.egg-info/SOURCES.txt
--- old/python-keystoneclient-3.19.0/python_keystoneclient.egg-info/SOURCES.txt
2019-02-28 19:18:43.000000000 +0100
+++ new/python-keystoneclient-3.21.0/python_keystoneclient.egg-info/SOURCES.txt
2019-09-12 11:33:05.000000000 +0200
@@ -293,6 +293,7 @@
releasenotes/notes/deprecated_auth-d2a2bf537bdb88d3.yaml
releasenotes/notes/implied_roles-ea39d3c3d998d482.yaml
releasenotes/notes/ksc_2.1.0-739ded9c4c3f8aaa.yaml
+releasenotes/notes/list_projects_filtered_by_the_parent_project-a873974f197c1e37.yaml
releasenotes/notes/list_role_assignment_names-7e1b7eb8c2d22d7c.yaml
releasenotes/notes/project-tags-1f8a32d389951e7a.yaml
releasenotes/notes/remove-credentials-data-46ab3c3c248047cf.yaml
@@ -310,6 +311,7 @@
releasenotes/source/pike.rst
releasenotes/source/queens.rst
releasenotes/source/rocky.rst
+releasenotes/source/stein.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.19.0/python_keystoneclient.egg-info/pbr.json
new/python-keystoneclient-3.21.0/python_keystoneclient.egg-info/pbr.json
--- old/python-keystoneclient-3.19.0/python_keystoneclient.egg-info/pbr.json
2019-02-28 19:18:43.000000000 +0100
+++ new/python-keystoneclient-3.21.0/python_keystoneclient.egg-info/pbr.json
2019-09-12 11:33:05.000000000 +0200
@@ -1 +1 @@
-{"git_version": "6c4bb8b", "is_release": true}
\ No newline at end of file
+{"git_version": "79f150f", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.19.0/releasenotes/notes/list_projects_filtered_by_the_parent_project-a873974f197c1e37.yaml
new/python-keystoneclient-3.21.0/releasenotes/notes/list_projects_filtered_by_the_parent_project-a873974f197c1e37.yaml
---
old/python-keystoneclient-3.19.0/releasenotes/notes/list_projects_filtered_by_the_parent_project-a873974f197c1e37.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/python-keystoneclient-3.21.0/releasenotes/notes/list_projects_filtered_by_the_parent_project-a873974f197c1e37.yaml
2019-09-12 11:31:50.000000000 +0200
@@ -0,0 +1,5 @@
+---
+features:
+ - |
+ Now keystone client supports to list projects which belongs to the given
+ parent project.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.19.0/releasenotes/source/conf.py
new/python-keystoneclient-3.21.0/releasenotes/source/conf.py
--- old/python-keystoneclient-3.19.0/releasenotes/source/conf.py
2019-02-28 19:17:12.000000000 +0100
+++ new/python-keystoneclient-3.21.0/releasenotes/source/conf.py
2019-09-12 11:31:50.000000000 +0200
@@ -54,7 +54,6 @@
master_doc = 'index'
# General information about the project.
-project = u'keystoneclient Release Notes'
copyright = u'2015, Keystone Developers'
# Release notes are version independent.
@@ -142,11 +141,6 @@
# directly to the root of the documentation.
# html_extra_path = []
-# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
-# using the given strftime format.
-# html_last_updated_fmt = '%b %d, %Y'
-html_last_updated_fmt = '%Y-%m-%d %H:%M'
-
# If true, SmartyPants will be used to convert quotes and dashes to
# typographically correct entities.
# html_use_smartypants = True
@@ -190,17 +184,6 @@
# -- Options for LaTeX output ---------------------------------------------
-latex_elements = {
- # The paper size ('letterpaper' or 'a4paper').
- # 'papersize': 'letterpaper',
-
- # The font size ('10pt', '11pt' or '12pt').
- # 'pointsize': '10pt',
-
- # Additional stuff for the LaTeX preamble.
- # 'preamble': '',
-}
-
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.19.0/releasenotes/source/index.rst
new/python-keystoneclient-3.21.0/releasenotes/source/index.rst
--- old/python-keystoneclient-3.19.0/releasenotes/source/index.rst
2019-02-28 19:17:12.000000000 +0100
+++ new/python-keystoneclient-3.21.0/releasenotes/source/index.rst
2019-09-12 11:31:50.000000000 +0200
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ stein
rocky
queens
pike
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.19.0/releasenotes/source/stein.rst
new/python-keystoneclient-3.21.0/releasenotes/source/stein.rst
--- old/python-keystoneclient-3.19.0/releasenotes/source/stein.rst
1970-01-01 01:00:00.000000000 +0100
+++ new/python-keystoneclient-3.21.0/releasenotes/source/stein.rst
2019-09-12 11:31:50.000000000 +0200
@@ -0,0 +1,6 @@
+===================================
+ Stein Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/stein
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-keystoneclient-3.19.0/setup.cfg
new/python-keystoneclient-3.21.0/setup.cfg
--- old/python-keystoneclient-3.19.0/setup.cfg 2019-02-28 19:18:44.000000000
+0100
+++ new/python-keystoneclient-3.21.0/setup.cfg 2019-09-12 11:33:05.000000000
+0200
@@ -16,8 +16,8 @@
Programming Language :: Python :: 2
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
- Programming Language :: Python :: 3.5
Programming Language :: Python :: 3.6
+ Programming Language :: Python :: 3.7
[files]
packages =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-keystoneclient-3.19.0/test-requirements.txt
new/python-keystoneclient-3.21.0/test-requirements.txt
--- old/python-keystoneclient-3.19.0/test-requirements.txt 2019-02-28
19:17:12.000000000 +0100
+++ new/python-keystoneclient-3.21.0/test-requirements.txt 2019-09-12
11:31:50.000000000 +0200
@@ -7,7 +7,8 @@
coverage!=4.4,>=4.0 # Apache-2.0
fixtures>=3.0.0 # Apache-2.0/BSD
-keyring>=5.5.1 # MIT/PSF
+keyring>=5.5.1,<19.0.0;python_version=='2.7' # MIT/PSF
+keyring>=5.5.1;python_version>='3.4' # MIT/PSF
lxml!=3.7.0,>=3.4.1 # BSD
mock>=2.0.0 # BSD
oauthlib>=0.6.2 # BSD
@@ -20,4 +21,4 @@
testtools>=2.2.0 # MIT
# Bandit security code scanner
-bandit>=1.1.0 # Apache-2.0
+bandit!=1.6.0,>=1.1.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-keystoneclient-3.19.0/tox.ini
new/python-keystoneclient-3.21.0/tox.ini
--- old/python-keystoneclient-3.19.0/tox.ini 2019-02-28 19:17:12.000000000
+0100
+++ new/python-keystoneclient-3.21.0/tox.ini 2019-09-12 11:31:50.000000000
+0200
@@ -1,7 +1,7 @@
[tox]
-minversion = 2.0
+minversion = 2.5.0
skipsdist = True
-envlist = py36,py35,py27,pep8,releasenotes
+envlist = py27,py37,pep8,releasenotes
[testenv]
usedevelop = True
@@ -11,7 +11,7 @@
OS_STDERR_NOCAPTURE=False
deps =
-
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
+
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = find . -type f -name "*.pyc" -delete
@@ -71,6 +71,18 @@
commands = python setup.py build_sphinx
deps = -r{toxinidir}/doc/requirements.txt
+[testenv:pdf-docs]
+basepython = python3
+envdir = {toxworkdir}/docs
+deps = {[testenv:docs]deps}
+whitelist_externals =
+ make
+ rm
+commands =
+ rm -rf doc/build/pdf
+ sphinx-build -W -b latex doc/source doc/build/pdf
+ make -C doc/build/pdf
+
[testenv:releasenotes]
basepython = python3
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html
releasenotes/source releasenotes/build/html