efcadd6937
One of the issues raised with keystoneclient plugins is the way that loading of a plugin is mixed in with the definition of a plugin. Amongst other things this really meant that there was only one way to utilize each plugin class, to do another plugin that utilized an existing one you would have to define a new class and proxy to it. In this patch we split the concerns. There is a whole new section called loading that is solely responsible for ways to load the auth plugin from CLI or from argparse and other future methods. This new section will likely be split into its own repository. Change-Id: I8387b86fc0e3a8403f9806440196e8723eaf1ee4
39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
# 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 keystoneauth1 import plugin
|
|
|
|
|
|
class Token(plugin.BaseAuthPlugin):
|
|
"""A provider that will always use the given token and endpoint.
|
|
|
|
This is really only useful for testing and in certain CLI cases where you
|
|
have a known endpoint and admin token that you want to use.
|
|
"""
|
|
|
|
def __init__(self, endpoint, token):
|
|
# NOTE(jamielennox): endpoint is reserved for when plugins
|
|
# can be used to provide that information
|
|
self.endpoint = endpoint
|
|
self.token = token
|
|
|
|
def get_token(self, session):
|
|
return self.token
|
|
|
|
def get_endpoint(self, session, **kwargs):
|
|
"""Return the supplied endpoint.
|
|
|
|
Using this plugin the same endpoint is returned regardless of the
|
|
parameters passed to the plugin.
|
|
"""
|
|
return self.endpoint
|