Hello community,
here is the log from the commit of package python-keystoneclient for
openSUSE:Factory checked in at 2020-06-05 20:10:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-keystoneclient (Old)
and /work/SRC/openSUSE:Factory/.python-keystoneclient.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-keystoneclient"
Fri Jun 5 20:10:32 2020 rev:33 rq:803567 version:4.0.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-keystoneclient/python-keystoneclient.changes
2020-03-24 22:32:38.705098237 +0100
+++
/work/SRC/openSUSE:Factory/.python-keystoneclient.new.3606/python-keystoneclient.changes
2020-06-05 20:13:46.710442686 +0200
@@ -1,0 +2,10 @@
+Tue May 12 09:57:17 UTC 2020 - [email protected]
+
+- update to version 4.0.0
+ - Update hacking for Python3
+ - [ussuri][goal] Drop python 2.7 support and testing
+ - Update master for stable/train
+ - Add support for app cred access rules
+ - Cleanup py27 support
+
+-------------------------------------------------------------------
Old:
----
python-keystoneclient-3.21.0.tar.gz
New:
----
python-keystoneclient-4.0.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-keystoneclient.spec ++++++
--- /var/tmp/diff_new_pack.FPwgb8/_old 2020-06-05 20:13:47.566445836 +0200
+++ /var/tmp/diff_new_pack.FPwgb8/_new 2020-06-05 20:13:47.570445851 +0200
@@ -17,13 +17,13 @@
Name: python-keystoneclient
-Version: 3.21.0
+Version: 4.0.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.21.0.tar.gz
+Source0:
https://files.pythonhosted.org/packages/source/p/python-keystoneclient/python-keystoneclient-4.0.0.tar.gz
BuildRequires: openssl
BuildRequires: openstack-macros
BuildRequires: python3-debtcollector >= 1.2.0
@@ -73,7 +73,7 @@
Identity API.
%prep
-%autosetup -p1 -n python-keystoneclient-3.21.0
+%autosetup -p1 -n python-keystoneclient-4.0.0
%py_req_cleanup
# disable intersphinx - no network access during build
echo "intersphinx_mapping = {}" >> doc/source/conf.py
@@ -83,13 +83,12 @@
# Build HTML docs and man page
PBR_VERSION=%{version} %sphinx_build -b html doc/source doc/build/html
+# remove the Sphinx-build leftovers
+rm -rf doc/build/html/.{doctrees,buildinfo}
%install
%{py3_install}
-# Fix hidden-file-or-dir warnings
-rm -fr html/.doctrees html/.buildinfo
-
%check
python3 -m stestr.cli run
++++++ _service ++++++
--- /var/tmp/diff_new_pack.FPwgb8/_old 2020-06-05 20:13:47.598445954 +0200
+++ /var/tmp/diff_new_pack.FPwgb8/_new 2020-06-05 20:13:47.602445968 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param
name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/train/openstack/python-keystoneclient/python-keystoneclient.spec.j2</param>
+ <param
name="input-template">https://opendev.org/openstack/rpm-packaging/raw/branch/stable/ussuri/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/train/requirements.txt</param>
+ <param
name="requirements">https://opendev.org/openstack/python-keystoneclient/raw/branch/stable/ussuri/requirements.txt</param>
<param name="changelog-email">[email protected]</param>
<param name="changelog-provider">gh,openstack,python-keystoneclient</param>
</service>
++++++ python-keystoneclient-3.21.0.tar.gz ->
python-keystoneclient-4.0.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-keystoneclient-3.21.0/.zuul.yaml
new/python-keystoneclient-4.0.0/.zuul.yaml
--- old/python-keystoneclient-3.21.0/.zuul.yaml 2019-09-12 11:31:50.000000000
+0200
+++ new/python-keystoneclient-4.0.0/.zuul.yaml 2020-04-11 20:36:29.000000000
+0200
@@ -19,11 +19,9 @@
templates:
- openstack-cover-jobs
- openstack-lower-constraints-jobs
- - openstack-python-jobs
- - openstack-python3-train-jobs
+ - openstack-python3-ussuri-jobs
- publish-openstack-docs-pti
- check-requirements
- - lib-forward-testing
- lib-forward-testing-python3
- release-notes-jobs-python3
check:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-keystoneclient-3.21.0/ChangeLog
new/python-keystoneclient-4.0.0/ChangeLog
--- old/python-keystoneclient-3.21.0/ChangeLog 2019-09-12 11:33:04.000000000
+0200
+++ new/python-keystoneclient-4.0.0/ChangeLog 2020-04-11 20:37:23.000000000
+0200
@@ -1,12 +1,25 @@
CHANGES
=======
+4.0.0
+-----
+
+* Cleanup py27 support
+* Update hacking for Python3
+* [ussuri][goal] Drop python 2.7 support and testing
+
+3.22.0
+------
+
+* Update master for stable/train
+
3.21.0
------
* Fix unit tests broken by requests-mock
* Generate pdf documentation
* Add parent project filter for listing projects
+* Add support for app cred access rules
* Bump the openstackdocstheme extension to 1.20
3.20.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-keystoneclient-3.21.0/PKG-INFO
new/python-keystoneclient-4.0.0/PKG-INFO
--- old/python-keystoneclient-3.21.0/PKG-INFO 2019-09-12 11:33:05.000000000
+0200
+++ new/python-keystoneclient-4.0.0/PKG-INFO 2020-04-11 20:37:23.000000000
+0200
@@ -1,6 +1,6 @@
-Metadata-Version: 1.1
+Metadata-Version: 1.2
Name: python-keystoneclient
-Version: 3.21.0
+Version: 4.0.0
Summary: Client Library for OpenStack Identity
Home-page: https://docs.openstack.org/python-keystoneclient/latest/
Author: OpenStack
@@ -77,8 +77,7 @@
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
+Requires-Python: >=3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-keystoneclient-3.21.0/doc/requirements.txt
new/python-keystoneclient-4.0.0/doc/requirements.txt
--- old/python-keystoneclient-3.21.0/doc/requirements.txt 2019-09-12
11:31:50.000000000 +0200
+++ new/python-keystoneclient-4.0.0/doc/requirements.txt 2020-04-11
20:36:29.000000000 +0200
@@ -4,8 +4,7 @@
# These are needed for docs generation
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
+sphinx!=1.6.6,!=1.6.7,>=1.6.2 # 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.21.0/doc/source/conf.py
new/python-keystoneclient-4.0.0/doc/source/conf.py
--- old/python-keystoneclient-3.21.0/doc/source/conf.py 2019-09-12
11:31:50.000000000 +0200
+++ new/python-keystoneclient-4.0.0/doc/source/conf.py 2020-04-11
20:36:29.000000000 +0200
@@ -10,8 +10,6 @@
# All configuration values have a default; values that are commented out
# serve to show the default.
-from __future__ import unicode_literals
-
import os
import sys
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.21.0/examples/pki/gen_cmsz.py
new/python-keystoneclient-4.0.0/examples/pki/gen_cmsz.py
--- old/python-keystoneclient-3.21.0/examples/pki/gen_cmsz.py 2019-09-12
11:31:50.000000000 +0200
+++ new/python-keystoneclient-4.0.0/examples/pki/gen_cmsz.py 2020-04-11
20:36:29.000000000 +0200
@@ -84,6 +84,7 @@
SIGNING_KEY_FILE_NAME, cms.PKIZ_CMS_FORM)
f.write(derform)
+
for name in EXAMPLE_TOKENS:
json_file = make_filename('cms', name + '.json')
pkiz_file = make_filename('cms', name + '.pkiz')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.21.0/keystoneclient/auth/__init__.py
new/python-keystoneclient-4.0.0/keystoneclient/auth/__init__.py
--- old/python-keystoneclient-3.21.0/keystoneclient/auth/__init__.py
2019-09-12 11:31:50.000000000 +0200
+++ new/python-keystoneclient-4.0.0/keystoneclient/auth/__init__.py
2020-04-11 20:36:29.000000000 +0200
@@ -10,6 +10,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+# flake8: noqa: F405
from keystoneclient.auth.base import * # noqa
from keystoneclient.auth.cli import * # noqa
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.21.0/keystoneclient/auth/identity/v3/__init__.py
new/python-keystoneclient-4.0.0/keystoneclient/auth/identity/v3/__init__.py
---
old/python-keystoneclient-3.21.0/keystoneclient/auth/identity/v3/__init__.py
2019-09-12 11:31:50.000000000 +0200
+++ new/python-keystoneclient-4.0.0/keystoneclient/auth/identity/v3/__init__.py
2020-04-11 20:36:29.000000000 +0200
@@ -10,6 +10,8 @@
# License for the specific language governing permissions and limitations
# under the License.
+# flake8: noqa: F405
+
from keystoneclient.auth.identity.v3.base import * # noqa
from keystoneclient.auth.identity.v3.federated import * # noqa
from keystoneclient.auth.identity.v3.password import * # noqa
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.21.0/keystoneclient/contrib/ec2/utils.py
new/python-keystoneclient-4.0.0/keystoneclient/contrib/ec2/utils.py
--- old/python-keystoneclient-3.21.0/keystoneclient/contrib/ec2/utils.py
2019-09-12 11:31:50.000000000 +0200
+++ new/python-keystoneclient-4.0.0/keystoneclient/contrib/ec2/utils.py
2020-04-11 20:36:29.000000000 +0200
@@ -225,7 +225,7 @@
# port if we detect an old boto version. FIXME: remove when all
# distros package boto >= 2.9.3, this is a transitional workaround
user_agent = headers_lower.get('user-agent', '')
- strip_port = re.match('Boto/2\.[0-9]\.[0-2]', user_agent)
+ strip_port = re.match(r'Boto/2\.[0-9]\.[0-2]', user_agent)
header_list = []
sh_str = auth_param('SignedHeaders')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.21.0/keystoneclient/exceptions.py
new/python-keystoneclient-4.0.0/keystoneclient/exceptions.py
--- old/python-keystoneclient-3.21.0/keystoneclient/exceptions.py
2019-09-12 11:31:50.000000000 +0200
+++ new/python-keystoneclient-4.0.0/keystoneclient/exceptions.py
2020-04-11 20:36:29.000000000 +0200
@@ -376,6 +376,7 @@
msg = _('Unable to sign or verify data.')
super(CMSError, self).__init__(msg)
+
EmptyCatalog = _exc.EmptyCatalog
"""The service catalog is empty.
@@ -398,6 +399,7 @@
class MethodNotImplemented(ClientException):
"""Method not implemented by the keystoneclient API."""
+
MissingAuthPlugin = _exc.MissingAuthPlugin
"""An authenticated request is required but no plugin available.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.21.0/keystoneclient/fixture/__init__.py
new/python-keystoneclient-4.0.0/keystoneclient/fixture/__init__.py
--- old/python-keystoneclient-3.21.0/keystoneclient/fixture/__init__.py
2019-09-12 11:31:50.000000000 +0200
+++ new/python-keystoneclient-4.0.0/keystoneclient/fixture/__init__.py
2020-04-11 20:36:29.000000000 +0200
@@ -28,6 +28,8 @@
"""
+# flake8: noqa: F405
+
import warnings
from keystoneclient.fixture.discovery import * # noqa
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.21.0/keystoneclient/tests/unit/v3/test_access_rules.py
new/python-keystoneclient-4.0.0/keystoneclient/tests/unit/v3/test_access_rules.py
---
old/python-keystoneclient-3.21.0/keystoneclient/tests/unit/v3/test_access_rules.py
1970-01-01 01:00:00.000000000 +0100
+++
new/python-keystoneclient-4.0.0/keystoneclient/tests/unit/v3/test_access_rules.py
2020-04-11 20:36:29.000000000 +0200
@@ -0,0 +1,41 @@
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import uuid
+
+from keystoneclient import exceptions
+from keystoneclient.tests.unit.v3 import utils
+from keystoneclient.v3 import access_rules
+
+
+class AccessRuleTests(utils.ClientTestCase, utils.CrudTests):
+ def setUp(self):
+ super(AccessRuleTests, self).setUp()
+ self.key = 'access_rule'
+ self.collection_key = 'access_rules'
+ self.model = access_rules.AccessRule
+ self.manager = self.client.access_rules
+ self.path_prefix = 'users/%s' % self.TEST_USER_ID
+
+ def new_ref(self, **kwargs):
+ kwargs = super(AccessRuleTests, self).new_ref(**kwargs)
+ kwargs.setdefault('path', uuid.uuid4().hex)
+ kwargs.setdefault('method', uuid.uuid4().hex)
+ kwargs.setdefault('service', uuid.uuid4().hex)
+ return kwargs
+
+ def test_update(self):
+ self.assertRaises(exceptions.MethodNotImplemented, self.manager.update)
+
+ def test_create(self):
+ self.assertRaises(exceptions.MethodNotImplemented, self.manager.create)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.21.0/keystoneclient/tests/unit/v3/test_application_credentials.py
new/python-keystoneclient-4.0.0/keystoneclient/tests/unit/v3/test_application_credentials.py
---
old/python-keystoneclient-3.21.0/keystoneclient/tests/unit/v3/test_application_credentials.py
2019-09-12 11:31:50.000000000 +0200
+++
new/python-keystoneclient-4.0.0/keystoneclient/tests/unit/v3/test_application_credentials.py
2020-04-11 20:36:29.000000000 +0200
@@ -98,6 +98,27 @@
super(ApplicationCredentialTests, self).test_create(ref=ref,
req_ref=req_ref)
+ def test_create_with_access_rules(self):
+ ref = self.new_ref(user=uuid.uuid4().hex)
+ access_rules = [
+ {
+ 'method': 'GET',
+ 'path': '/v3/projects',
+ 'service': 'identity'
+ }
+ ]
+ ref['access_rules'] = access_rules
+ req_ref = ref.copy()
+ req_ref.pop('id')
+ user = req_ref.pop('user')
+
+ self.stub_entity('POST',
+ ['users', user, self.collection_key],
+ status_code=201, entity=req_ref)
+
+ super(ApplicationCredentialTests, self).test_create(ref=ref,
+ req_ref=req_ref)
+
def test_get(self):
ref = self.new_ref(user=uuid.uuid4().hex)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.21.0/keystoneclient/v3/access_rules.py
new/python-keystoneclient-4.0.0/keystoneclient/v3/access_rules.py
--- old/python-keystoneclient-3.21.0/keystoneclient/v3/access_rules.py
1970-01-01 01:00:00.000000000 +0100
+++ new/python-keystoneclient-4.0.0/keystoneclient/v3/access_rules.py
2020-04-11 20:36:29.000000000 +0200
@@ -0,0 +1,118 @@
+# Copyright 2019 SUSE LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+from keystoneclient import base
+from keystoneclient import exceptions
+from keystoneclient.i18n import _
+
+
+class AccessRule(base.Resource):
+ """Represents an Identity access rule for application credentials.
+
+ Attributes:
+ * id: a uuid that identifies the access rule
+ * method: The request method that the application credential is
+ permitted to use for a given API endpoint
+ * path: The API path that the application credential is permitted to
+ access
+ * service: The service type identifier for the service that the
+ application credential is permitted to access
+
+ """
+
+ pass
+
+
+class AccessRuleManager(base.CrudManager):
+ """Manager class for manipulating Identity access rules."""
+
+ resource_class = AccessRule
+ collection_key = 'access_rules'
+ key = 'access_rule'
+
+ def get(self, access_rule, user=None):
+ """Retrieve an access rule.
+
+ :param access_rule: the access rule to be retrieved from the
+ server
+ :type access_rule: str or
+ :class:`keystoneclient.v3.access_rules.AccessRule`
+ :param string user: User ID
+
+ :returns: the specified access rule
+ :rtype:
+ :class:`keystoneclient.v3.access_rules.AccessRule`
+
+ """
+ user = user or self.client.user_id
+ self.base_url = '/users/%(user)s' % {'user': user}
+
+ return super(AccessRuleManager, self).get(
+ access_rule_id=base.getid(access_rule))
+
+ def list(self, user=None, **kwargs):
+ """List access rules.
+
+ :param string user: User ID
+
+ :returns: a list of access rules
+ :rtype: list of
+ :class:`keystoneclient.v3.access_rules.AccessRule`
+ """
+ user = user or self.client.user_id
+ self.base_url = '/users/%(user)s' % {'user': user}
+
+ return super(AccessRuleManager, self).list(**kwargs)
+
+ def find(self, user=None, **kwargs):
+ """Find an access rule with attributes matching ``**kwargs``.
+
+ :param string user: User ID
+
+ :returns: a list of matching access rules
+ :rtype: list of
+ :class:`keystoneclient.v3.access_rules.AccessRule`
+ """
+ user = user or self.client.user_id
+ self.base_url = '/users/%(user)s' % {'user': user}
+
+ return super(AccessRuleManager, self).find(**kwargs)
+
+ def delete(self, access_rule, user=None):
+ """Delete an access rule.
+
+ :param access_rule: the access rule to be deleted
+ :type access_rule: str or
+ :class:`keystoneclient.v3.access_rules.AccessRule`
+ :param string user: User ID
+
+ :returns: response object with 204 status
+ :rtype: :class:`requests.models.Response`
+
+ """
+ user = user or self.client.user_id
+ self.base_url = '/users/%(user)s' % {'user': user}
+
+ return super(AccessRuleManager, self).delete(
+ access_rule_id=base.getid(access_rule))
+
+ def update(self):
+ raise exceptions.MethodNotImplemented(
+ _('Access rules are immutable, updating is not'
+ ' supported.'))
+
+ def create(self):
+ raise exceptions.MethodNotImplemented(
+ _('Access rules can only be created as attributes of application '
+ 'credentials.'))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.21.0/keystoneclient/v3/application_credentials.py
new/python-keystoneclient-4.0.0/keystoneclient/v3/application_credentials.py
---
old/python-keystoneclient-3.21.0/keystoneclient/v3/application_credentials.py
2019-09-12 11:31:50.000000000 +0200
+++
new/python-keystoneclient-4.0.0/keystoneclient/v3/application_credentials.py
2020-04-11 20:36:29.000000000 +0200
@@ -33,6 +33,8 @@
* roles: role assignments on the project
* unrestricted: whether the application credential has restrictions
applied
+ * access_rules: a list of access rules defining what API requests the
+ application credential may be used for
"""
@@ -48,7 +50,7 @@
def create(self, name, user=None, secret=None, description=None,
expires_at=None, roles=None,
- unrestricted=False, **kwargs):
+ unrestricted=False, access_rules=None, **kwargs):
"""Create a credential.
:param string name: application credential name
@@ -60,6 +62,7 @@
or a list of dicts specifying role name and domain
:param bool unrestricted: whether the application credential has
restrictions applied
+ :param List access_rules: a list of dicts representing access rules
:returns: the created application credential
:rtype:
@@ -99,6 +102,7 @@
expires_at=expires_str,
roles=role_list,
unrestricted=unrestricted,
+ access_rules=access_rules,
**kwargs)
def get(self, application_credential, user=None):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.21.0/keystoneclient/v3/client.py
new/python-keystoneclient-4.0.0/keystoneclient/v3/client.py
--- old/python-keystoneclient-3.21.0/keystoneclient/v3/client.py
2019-09-12 11:31:50.000000000 +0200
+++ new/python-keystoneclient-4.0.0/keystoneclient/v3/client.py 2020-04-11
20:36:29.000000000 +0200
@@ -22,6 +22,7 @@
from keystoneclient import exceptions
from keystoneclient import httpclient
from keystoneclient.i18n import _
+from keystoneclient.v3 import access_rules
from keystoneclient.v3 import application_credentials
from keystoneclient.v3 import auth
from keystoneclient.v3.contrib import endpoint_filter
@@ -223,6 +224,9 @@
'deprecated as of the 1.7.0 release and may be removed in '
'the 2.0.0 release.', DeprecationWarning)
+ self.access_rules = (
+ access_rules.AccessRuleManager(self._adapter)
+ )
self.application_credentials = (
application_credentials.ApplicationCredentialManager(self._adapter)
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.21.0/python_keystoneclient.egg-info/PKG-INFO
new/python-keystoneclient-4.0.0/python_keystoneclient.egg-info/PKG-INFO
--- old/python-keystoneclient-3.21.0/python_keystoneclient.egg-info/PKG-INFO
2019-09-12 11:33:05.000000000 +0200
+++ new/python-keystoneclient-4.0.0/python_keystoneclient.egg-info/PKG-INFO
2020-04-11 20:37:23.000000000 +0200
@@ -1,6 +1,6 @@
-Metadata-Version: 1.1
+Metadata-Version: 1.2
Name: python-keystoneclient
-Version: 3.21.0
+Version: 4.0.0
Summary: Client Library for OpenStack Identity
Home-page: https://docs.openstack.org/python-keystoneclient/latest/
Author: OpenStack
@@ -77,8 +77,7 @@
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
+Requires-Python: >=3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.21.0/python_keystoneclient.egg-info/SOURCES.txt
new/python-keystoneclient-4.0.0/python_keystoneclient.egg-info/SOURCES.txt
--- old/python-keystoneclient-3.21.0/python_keystoneclient.egg-info/SOURCES.txt
2019-09-12 11:33:05.000000000 +0200
+++ new/python-keystoneclient-4.0.0/python_keystoneclient.egg-info/SOURCES.txt
2020-04-11 20:37:23.000000000 +0200
@@ -181,6 +181,7 @@
keystoneclient/tests/unit/v3/client_fixtures.py
keystoneclient/tests/unit/v3/saml2_fixtures.py
keystoneclient/tests/unit/v3/test_access.py
+keystoneclient/tests/unit/v3/test_access_rules.py
keystoneclient/tests/unit/v3/test_application_credentials.py
keystoneclient/tests/unit/v3/test_auth.py
keystoneclient/tests/unit/v3/test_auth_manager.py
@@ -227,6 +228,7 @@
keystoneclient/v2_0/tokens.py
keystoneclient/v2_0/users.py
keystoneclient/v3/__init__.py
+keystoneclient/v3/access_rules.py
keystoneclient/v3/application_credentials.py
keystoneclient/v3/auth.py
keystoneclient/v3/client.py
@@ -286,11 +288,13 @@
releasenotes/notes/bp-application-credentials-27728ded876d7d5a.yaml
releasenotes/notes/bp-domain-config-9566e672a98f4e7f.yaml
releasenotes/notes/bp-pci-dss-query-password-expired-users-b0c4b1bbdcf33f16.yaml
+releasenotes/notes/bp-whitelist-extension-for-app-creds-d03526e52e3edcce.yaml
releasenotes/notes/bug-1615076-26962c85aeaf288c.yaml
releasenotes/notes/bug-1616105-cc8b85eb056e99e2.yaml
releasenotes/notes/bug-1641674-4862454115265e76.yaml
releasenotes/notes/bug-1654847-d2e9df994c7b617f.yaml
releasenotes/notes/deprecated_auth-d2a2bf537bdb88d3.yaml
+releasenotes/notes/drop-py-2-7-5ac18e82de83fcfa.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
@@ -312,6 +316,7 @@
releasenotes/source/queens.rst
releasenotes/source/rocky.rst
releasenotes/source/stein.rst
+releasenotes/source/train.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.21.0/python_keystoneclient.egg-info/pbr.json
new/python-keystoneclient-4.0.0/python_keystoneclient.egg-info/pbr.json
--- old/python-keystoneclient-3.21.0/python_keystoneclient.egg-info/pbr.json
2019-09-12 11:33:05.000000000 +0200
+++ new/python-keystoneclient-4.0.0/python_keystoneclient.egg-info/pbr.json
2020-04-11 20:37:23.000000000 +0200
@@ -1 +1 @@
-{"git_version": "79f150f", "is_release": true}
\ No newline at end of file
+{"git_version": "b58ebe2", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.21.0/releasenotes/notes/bp-whitelist-extension-for-app-creds-d03526e52e3edcce.yaml
new/python-keystoneclient-4.0.0/releasenotes/notes/bp-whitelist-extension-for-app-creds-d03526e52e3edcce.yaml
---
old/python-keystoneclient-3.21.0/releasenotes/notes/bp-whitelist-extension-for-app-creds-d03526e52e3edcce.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/python-keystoneclient-4.0.0/releasenotes/notes/bp-whitelist-extension-for-app-creds-d03526e52e3edcce.yaml
2020-04-11 20:36:29.000000000 +0200
@@ -0,0 +1,5 @@
+---
+features:
+ - |
+ Adds support for creating access rules as an attribute of application
+ credentials as well as for retrieving and deleting them.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.21.0/releasenotes/notes/drop-py-2-7-5ac18e82de83fcfa.yaml
new/python-keystoneclient-4.0.0/releasenotes/notes/drop-py-2-7-5ac18e82de83fcfa.yaml
---
old/python-keystoneclient-3.21.0/releasenotes/notes/drop-py-2-7-5ac18e82de83fcfa.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/python-keystoneclient-4.0.0/releasenotes/notes/drop-py-2-7-5ac18e82de83fcfa.yaml
2020-04-11 20:36:29.000000000 +0200
@@ -0,0 +1,6 @@
+---
+upgrade:
+ - |
+ Python 2.7 support has been dropped. Last release of python-keystoneclient
+ to support python 2.7 is OpenStack Train. The minimum version of Python now
+ supported is Python 3.6.
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.21.0/releasenotes/source/index.rst
new/python-keystoneclient-4.0.0/releasenotes/source/index.rst
--- old/python-keystoneclient-3.21.0/releasenotes/source/index.rst
2019-09-12 11:31:50.000000000 +0200
+++ new/python-keystoneclient-4.0.0/releasenotes/source/index.rst
2020-04-11 20:36:29.000000000 +0200
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ train
stein
rocky
queens
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.21.0/releasenotes/source/train.rst
new/python-keystoneclient-4.0.0/releasenotes/source/train.rst
--- old/python-keystoneclient-3.21.0/releasenotes/source/train.rst
1970-01-01 01:00:00.000000000 +0100
+++ new/python-keystoneclient-4.0.0/releasenotes/source/train.rst
2020-04-11 20:36:29.000000000 +0200
@@ -0,0 +1,6 @@
+===================================
+ Train Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/train
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-keystoneclient-3.21.0/setup.cfg
new/python-keystoneclient-4.0.0/setup.cfg
--- old/python-keystoneclient-3.21.0/setup.cfg 2019-09-12 11:33:05.000000000
+0200
+++ new/python-keystoneclient-4.0.0/setup.cfg 2020-04-11 20:37:23.000000000
+0200
@@ -6,6 +6,7 @@
author = OpenStack
author-email = [email protected]
home-page = https://docs.openstack.org/python-keystoneclient/latest/
+python-requires = >=3.6
classifier =
Environment :: OpenStack
Intended Audience :: Information Technology
@@ -13,8 +14,6 @@
License :: OSI Approved :: Apache Software License
Operating System :: POSIX :: Linux
Programming Language :: Python
- Programming Language :: Python :: 2
- Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
@@ -37,21 +36,12 @@
v3scopedsaml = keystoneclient.contrib.auth.v3.saml2:Saml2ScopedToken
v3unscopedadfs = keystoneclient.contrib.auth.v3.saml2:ADFSUnscopedToken
-[build_sphinx]
-source-dir = doc/source
-build-dir = doc/build
-all_files = 1
-warning-is-error = 1
-
[pbr]
autodoc_tree_index_modules = True
autodoc_tree_excludes =
setup.py
keystoneclient/tests/
-[upload_sphinx]
-upload-dir = doc/build/html
-
[compile_catalog]
directory = keystoneclient/locale
domain = keystoneclient
@@ -66,9 +56,6 @@
mapping_file = babel.cfg
output_file = keystoneclient/locale/keystoneclient.pot
-[wheel]
-universal = 1
-
[egg_info]
tag_build =
tag_date = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-keystoneclient-3.21.0/setup.py
new/python-keystoneclient-4.0.0/setup.py
--- old/python-keystoneclient-3.21.0/setup.py 2019-09-12 11:31:50.000000000
+0200
+++ new/python-keystoneclient-4.0.0/setup.py 2020-04-11 20:36:29.000000000
+0200
@@ -13,17 +13,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT
import setuptools
-# In python < 2.7.4, a lazy loading of package `pbr` will break
-# setuptools if some other modules registered functions in `atexit`.
-# solution from: http://bugs.python.org/issue15881#msg170215
-try:
- import multiprocessing # noqa
-except ImportError:
- pass
-
setuptools.setup(
setup_requires=['pbr>=2.0.0'],
pbr=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-keystoneclient-3.21.0/test-requirements.txt
new/python-keystoneclient-4.0.0/test-requirements.txt
--- old/python-keystoneclient-3.21.0/test-requirements.txt 2019-09-12
11:31:50.000000000 +0200
+++ new/python-keystoneclient-4.0.0/test-requirements.txt 2020-04-11
20:36:29.000000000 +0200
@@ -2,7 +2,7 @@
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
-hacking>=1.1.0,<1.2.0 # Apache-2.0
+hacking>=3.0,<3.1.0 # Apache-2.0
flake8-docstrings==0.2.1.post1 # MIT
coverage!=4.4,>=4.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-keystoneclient-3.21.0/tox.ini
new/python-keystoneclient-4.0.0/tox.ini
--- old/python-keystoneclient-3.21.0/tox.ini 2019-09-12 11:31:50.000000000
+0200
+++ new/python-keystoneclient-4.0.0/tox.ini 2020-04-11 20:36:29.000000000
+0200
@@ -1,7 +1,8 @@
[tox]
-minversion = 2.5.0
+minversion = 3.1.1
skipsdist = True
-envlist = py27,py37,pep8,releasenotes
+envlist = py37,pep8,releasenotes
+ignore_basepython_conflict = True
[testenv]
usedevelop = True
@@ -17,25 +18,22 @@
commands = find . -type f -name "*.pyc" -delete
stestr run --slowest {posargs}
whitelist_externals = find
+basepython = python3
[testenv:pep8]
-basepython = python3
commands =
flake8
bandit -r keystoneclient -x tests -n5
[testenv:bandit]
-basepython = python3
# NOTE(browne): This is required for the integration test job of the bandit
# project. Please do not remove.
commands = bandit -r keystoneclient -x tests -n5
[testenv:venv]
-basepython = python3
commands = {posargs}
[testenv:cover]
-basepython = python3
setenv =
PYTHON=coverage run --source keystoneclient --parallel-mode
commands =
@@ -46,11 +44,9 @@
coverage report
[testenv:debug]
-basepython = python3
commands = oslo_debug_helper -t keystoneclient/tests {posargs}
[testenv:functional]
-basepython = python3
setenv = {[testenv]setenv}
OS_TEST_PATH=./keystoneclient/tests/functional
passenv = OS_*
@@ -62,17 +58,17 @@
# D103: Missing docstring in public function
# D104: Missing docstring in public package
# D203: 1 blank line required before class docstring (deprecated in pep257)
-ignore = D100,D101,D102,D103,D104,D203
+# W504 line break after binary operator
+# F601 dictionary key repeated with different value
+ignore = D100,D101,D102,D103,D104,D203,W504,F601
show-source = True
exclude = .venv,.tox,dist,doc,*egg,build
[testenv:docs]
-basepython = python3
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 =
@@ -84,7 +80,6 @@
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
deps = -r{toxinidir}/doc/requirements.txt
@@ -93,7 +88,6 @@
keystoneclient.i18n
[testenv:bindep]
-basepython = python3
# Do not install any requirements. We want this to be fast and work even if
# system dependencies are missing, since it's used to tell you what system
# dependencies are missing! This also means that bindep must be installed
@@ -102,7 +96,6 @@
commands = bindep test
[testenv:lower-constraints]
-basepython = python3
deps =
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt