This client hasn't been compatible with Python 2 in years,
so there is no point depending on a Python 2/Python 3
compatibility library.
Change-Id: I6979fcf0f92408751d9c3df937c8d4c060cfff54
This patch resolves the issues with the gate by passing the tests
that are trying to use the old keystoneauth plugins. This is not
the correct fix, but it get's us past the gate issues. We need to
look at deprecating python-keystoneclient.
Change-Id: I6bd85d18432d0d077e774fcd51a6ba40d1d66be0
Importing pkg_resources has a side-effect of scanning the metadata of
all of the installed python modules to build an in-memory cache. That
cache isn't used anywhere in keystoneclient, and it can be expensive
to build.
The importlib.metadata module in the 3.8 standard library (and the
importlib_metadata library for earlier versions) provides the same
version lookup service using a more efficient scanning
implementation. Switching from pkg_resources to importlib.metadata
will help application startup time, which is especially important for
command line programs such as python-openstackclient.
Change-Id: Ia89044ff1876eeb2793cd08ed9095ce2ffe89e09
Depends-On: Ic6db7af34c87a636bfe55bacae03c42154f4b9c7
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
With V3 of the identity API, we no longer need to have a dedicated admin
endpoint, so stop requesting one by default, allowing deployments to
actually work without one.
Signed-off-by: Dr. Jens Harbott <harbott@osism.tech>
Change-Id: I96cc9c14008bcc59992d06c89f8f50895390f11e
assertItemsEqual was removed from Python's unittest.TestCase in
Python 3.3 [1][2]. We have been able to use them since then, because
testtools required unittest2, which still included it. With testtools
removing Python 2.7 support [3][4], we will lose support for
assertItemsEqual, so we should switch to use assertCountEqual.
[1] - https://bugs.python.org/issue17866
[2] - https://hg.python.org/cpython/rev/d9921cb6e3cd
[3] - testing-cabal/testtools#286
[4] - testing-cabal/testtools#277
Change-Id: Ib5985049235ee1b6018fc172a67e3b05970a6c42
Now that we no longer support py27, we can use the standard library
unittest.mock module instead of the third party mock lib.
Change-Id: I7498ea2353cccca7b23d9ef74015a566ac431f90
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
The repo is Python 3 now, so update hacking to version 3.0 which
supports Python 3.
Fix problems found.
Change-Id: Ic161a8f88c28d88898863e5b9d9380016fbb0d08
Now requests-mock records request url in log[1], so it is
invalid to check that the logger output does NOT contain
request url.
Also, fix url passed to request mock as now it requires
complete url is passed
[1] https://github.com/jamielennox/requests-mock/pull/93
Change-Id: I4bab30a6705b7cab6b5a569dd61c442263e39995
This change adds access_rules as a parameter for creating application
credentials, and also adds the ability to list access rules and to
retrieve and delete individual rules. Directly creating an access rule
or updating one is not supported.
bp whitelist-extension-for-app-creds
Depends-On: https://review.opendev.org/671374
Change-Id: I490f1e6b421d4f36f588f83a511ce39b9b4204e2
Without this patch, build failed after 2019-12-31 with
Traceback (most recent call last):
File "keystoneclient/tests/unit/v3/test_auth.py", line 226, in test_authenticate_success_password_unscoped
self.assertRequestBodyIs(json=self.TEST_REQUEST_BODY)
File "keystoneclient/tests/unit/utils.py", line 72, in assertRequestBodyIs
self.assertEqual(json, val)
Change-Id: I0e44d9896c5970f0ca07438c372aec826aeb5c77
This header is set to indicate to the keystone server that the client,
usually keystonemiddleware, will validate application credential access
rules. If not provided and the token uses access rules, the server will
return a 401.
bp whitelist-extension-for-app-creds
Change-Id: I64ac952d663e916150fbf7e5a8f70b76dddf3319
Added return-request-id-to-caller function to resources and resource
managers in the following files.
* keystoneclient/v3/projects.py
* keystoneclient/v3/registered_limits.py
* keystoneclient/v3/roles.py
* keystoneclient/v3/limits.py
* keystoneclient/v3/contrib/federation/saml.py
Also made changes in base.py for _put() method so that if
include_metadata is True, the response data should include request_id
instead of returning None as response.
Change-Id: Ifc0ec9a9d666cccfee3b08ac61596a3692307f23
Implements: blueprint return-request-id-to-caller
Use the devstack-tox-functional-consumer job as a parent job to allow us
to remove the custom playbooks and devstack hooks.
Change-Id: Ide6e6da3cbb479b5149fb44f0ef392dc80202910
Added return-request-id-to-caller function tovresources and resource
managers in the following files.
* keystoneclient/v3/contrib/simple_cert.py
* keystoneclient/v3/contrib/endpoint_policy.py
* keystoneclient/v3/contrib/oauth1/access_tokens.py
* keystoneclient/v3/contrib/oauth1/request_tokens.py
Adding request-id to below V3 contrib API's is covered in base patch
[1] but this patch is specifically for V3 API's so covered their test
cases in this patch.
* keystoneclient/v3/contrib/endpoint_filter.py
* keystoneclient/v3/contrib/federation/identity_providers.py
* keystoneclient/v3/contrib/federation/mappings.py
* keystoneclient/v3/contrib/federation/protocols.py
* keystoneclient/v3/contrib/federation/service_providers.py
The methods in the resource class and resource manager return
a 'base.Response' class that has 'request_ids' property.
The caller can get request ids of the callee via that property.
[1] https://review.openstack.org/#/c/329913
Change-Id: I5f90c31020e0dd672a160c7b587f41ba8f2b596c
Co-authored-by: Dinesh Bhor <dinesh.bhor@nttdata.com>
Co-authored-by: Ankit Agrawal <ankit11.agrawal@nttdata.com>
Co-authored-by: Neha Alhat <neha.alhat@nttdata.com>
Implements: blueprint return-request-id-to-caller