diff options
-rw-r--r-- | .zuul.yaml | 1 | ||||
-rw-r--r-- | bindep.txt | 7 | ||||
-rw-r--r-- | doc/source/conf.py | 1 | ||||
-rw-r--r-- | keystoneclient/tests/unit/v3/test_auth_manager.py | 14 | ||||
-rw-r--r-- | keystoneclient/v3/auth.py | 23 | ||||
-rw-r--r-- | keystoneclient/v3/system.py | 26 | ||||
-rw-r--r-- | releasenotes/source/index.rst | 4 | ||||
-rw-r--r-- | releasenotes/source/victoria.rst | 6 | ||||
-rw-r--r-- | releasenotes/source/wallaby.rst | 6 | ||||
-rw-r--r-- | releasenotes/source/xena.rst | 6 | ||||
-rw-r--r-- | releasenotes/source/yoga.rst | 6 | ||||
-rw-r--r-- | setup.cfg | 8 |
12 files changed, 99 insertions, 9 deletions
@@ -18,7 +18,6 @@ - project: templates: - openstack-cover-jobs - - openstack-lower-constraints-jobs - openstack-python3-victoria-jobs - publish-openstack-docs-pti - check-requirements @@ -2,7 +2,8 @@ # see https://docs.openstack.org/infra/bindep/ for additional information. gettext -libssl-dev +libssl-dev [platform:dpkg] +openssl-devel [platform:rpm] dbus-devel [platform:rpm] dbus-glib-devel [platform:rpm] @@ -18,6 +19,4 @@ python3-all-dev [platform:dpkg] cyrus-sasl-devel [platform:rpm] libxml2-devel [platform:rpm] -python-devel [platform:rpm] -python3-devel [platform:fedora] -python34-devel [platform:centos] +python3-devel [platform:rpm] diff --git a/doc/source/conf.py b/doc/source/conf.py index f31dc2c..9c98458 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -170,6 +170,7 @@ htmlhelp_basename = 'python-keystoneclientdoc' apidoc_module_dir = '../../keystoneclient' apidoc_output_dir = 'api' apidoc_excluded_paths = [ + 'fixture', 'tests', ] diff --git a/keystoneclient/tests/unit/v3/test_auth_manager.py b/keystoneclient/tests/unit/v3/test_auth_manager.py index 1857960..dec8b0c 100644 --- a/keystoneclient/tests/unit/v3/test_auth_manager.py +++ b/keystoneclient/tests/unit/v3/test_auth_manager.py @@ -62,3 +62,17 @@ class AuthProjectsTest(utils.ClientTestCase): for d in domains: self.assertIsInstance(d, auth.Domain) + + def test_get_systems(self): + body = {'system': [{ + 'all': True, + }]} + + self.stub_url('GET', ['auth', 'system'], json=body) + + systems = self.client.auth.systems() + system = systems[0] + + self.assertEqual(1, len(systems)) + self.assertIsInstance(system, auth.System) + self.assertTrue(system.all) diff --git a/keystoneclient/v3/auth.py b/keystoneclient/v3/auth.py index 6b8d6e9..4d85e24 100644 --- a/keystoneclient/v3/auth.py +++ b/keystoneclient/v3/auth.py @@ -16,10 +16,12 @@ from keystoneauth1 import plugin from keystoneclient import base from keystoneclient.v3 import domains from keystoneclient.v3 import projects +from keystoneclient.v3 import system Domain = domains.Domain Project = projects.Project +System = system.System class AuthManager(base.Manager): @@ -31,6 +33,7 @@ class AuthManager(base.Manager): _PROJECTS_URL = '/auth/projects' _DOMAINS_URL = '/auth/domains' + _SYSTEM_URL = '/auth/system' def projects(self): """List projects that the specified token can be rescoped to. @@ -67,3 +70,23 @@ class AuthManager(base.Manager): 'domains', obj_class=Domain, endpoint_filter=endpoint_filter) + + def systems(self): + """List Systems that the specified token can be rescoped to. + + At the moment this is either empty or "all". + + :returns: a list of systems. + :rtype: list of :class:`keystoneclient.v3.systems.System`. + + """ + try: + return self._list(self._SYSTEM_URL, + 'system', + obj_class=System) + except exceptions.EndpointNotFound: + endpoint_filter = {'interface': plugin.AUTH_INTERFACE} + return self._list(self._SYSTEM_URL, + 'system', + obj_class=System, + endpoint_filter=endpoint_filter) diff --git a/keystoneclient/v3/system.py b/keystoneclient/v3/system.py new file mode 100644 index 0000000..8d3edaf --- /dev/null +++ b/keystoneclient/v3/system.py @@ -0,0 +1,26 @@ +# Copyright 2021 OpenStack Foundation +# All Rights Reserved. +# +# 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 + + +class System(base.Resource): + """Represents the deployment system, with all the services in it. + + Attributes: + * all: boolean + """ + + pass diff --git a/releasenotes/source/index.rst b/releasenotes/source/index.rst index 71b3c14..daa120b 100644 --- a/releasenotes/source/index.rst +++ b/releasenotes/source/index.rst @@ -6,6 +6,10 @@ :maxdepth: 1 unreleased + yoga + xena + wallaby + victoria ussuri train stein diff --git a/releasenotes/source/victoria.rst b/releasenotes/source/victoria.rst new file mode 100644 index 0000000..4efc7b6 --- /dev/null +++ b/releasenotes/source/victoria.rst @@ -0,0 +1,6 @@ +============================= +Victoria Series Release Notes +============================= + +.. release-notes:: + :branch: stable/victoria diff --git a/releasenotes/source/wallaby.rst b/releasenotes/source/wallaby.rst new file mode 100644 index 0000000..d77b565 --- /dev/null +++ b/releasenotes/source/wallaby.rst @@ -0,0 +1,6 @@ +============================ +Wallaby Series Release Notes +============================ + +.. release-notes:: + :branch: stable/wallaby diff --git a/releasenotes/source/xena.rst b/releasenotes/source/xena.rst new file mode 100644 index 0000000..1be85be --- /dev/null +++ b/releasenotes/source/xena.rst @@ -0,0 +1,6 @@ +========================= +Xena Series Release Notes +========================= + +.. release-notes:: + :branch: stable/xena diff --git a/releasenotes/source/yoga.rst b/releasenotes/source/yoga.rst new file mode 100644 index 0000000..7cd5e90 --- /dev/null +++ b/releasenotes/source/yoga.rst @@ -0,0 +1,6 @@ +========================= +Yoga Series Release Notes +========================= + +.. release-notes:: + :branch: stable/yoga @@ -1,12 +1,12 @@ [metadata] name = python-keystoneclient summary = Client Library for OpenStack Identity -description-file = +description_file = README.rst author = OpenStack -author-email = openstack-discuss@lists.openstack.org -home-page = https://docs.openstack.org/python-keystoneclient/latest/ -python-requires = >=3.6 +author_email = openstack-discuss@lists.openstack.org +home_page = https://docs.openstack.org/python-keystoneclient/latest/ +python_requires = >=3.6 classifier = Environment :: OpenStack Intended Audience :: Information Technology |