Merge "Add 'none' identity plugin"
This commit is contained in:
commit
0847a6d990
|
@ -0,0 +1,33 @@
|
|||
# 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 loading
|
||||
from keystoneauth1 import noauth
|
||||
|
||||
|
||||
class NoAuth(loading.BaseLoader):
|
||||
"""Use no tokens to perform requests.
|
||||
|
||||
This must be used together with adapter.Adapter.endpoint_override
|
||||
to instantiate clients for services deployed in noauth/standalone mode.
|
||||
|
||||
There is no fetching a service catalog or determining scope information
|
||||
and so it cannot be used by clients that expect use this scope information.
|
||||
|
||||
"""
|
||||
|
||||
@property
|
||||
def plugin_class(self):
|
||||
return noauth.NoAuth
|
||||
|
||||
def get_options(self):
|
||||
return []
|
|
@ -0,0 +1,24 @@
|
|||
# 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 NoAuth(plugin.BaseAuthPlugin):
|
||||
"""A provider that will always use no auth.
|
||||
|
||||
This is useful to unify session/adapter loading for services
|
||||
that might be deployed in standalone/noauth mode.
|
||||
"""
|
||||
|
||||
def get_token(self, session):
|
||||
return 'notused'
|
|
@ -0,0 +1,37 @@
|
|||
# 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.loading._plugins import noauth as loader
|
||||
from keystoneauth1 import noauth
|
||||
from keystoneauth1 import session
|
||||
from keystoneauth1.tests.unit import utils
|
||||
|
||||
|
||||
class NoAuthTest(utils.TestCase):
|
||||
|
||||
NOAUTH_TOKEN = 'notused'
|
||||
TEST_URL = 'http://server/prefix'
|
||||
|
||||
def test_basic_case(self):
|
||||
self.requests_mock.get(self.TEST_URL, text='body')
|
||||
|
||||
a = noauth.NoAuth()
|
||||
s = session.Session(auth=a)
|
||||
|
||||
data = s.get(self.TEST_URL, authenticated=True)
|
||||
|
||||
self.assertEqual(data.text, 'body')
|
||||
self.assertRequestHeaderEqual('X-Auth-Token', self.NOAUTH_TOKEN)
|
||||
self.assertIsNone(a.get_endpoint(s))
|
||||
|
||||
def test_noauth_options(self):
|
||||
self.assertEqual([], loader.NoAuth().get_options())
|
|
@ -37,6 +37,7 @@ betamax =
|
|||
[entry_points]
|
||||
|
||||
keystoneauth1.plugin =
|
||||
none = keystoneauth1.loading._plugins.noauth:NoAuth
|
||||
password = keystoneauth1.loading._plugins.identity.generic:Password
|
||||
token = keystoneauth1.loading._plugins.identity.generic:Token
|
||||
admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken
|
||||
|
|
Loading…
Reference in New Issue