diff options
| author | Jamie Lennox <jamielennox@redhat.com> | 2013-12-09 16:46:09 +1000 |
|---|---|---|
| committer | Jamie Lennox <jamielennox@redhat.com> | 2014-02-04 14:29:15 +1000 |
| commit | 96267731ecef490769f00c1a88163d35487b6980 (patch) | |
| tree | 2900903abfa51701aa38ed80d2e268e7de350cc4 /keystoneclient/baseclient.py | |
| parent | 1263bd7c3a8ccded3cef7c799a2f8c744fb79aa2 (diff) | |
| download | python-keystoneclient-96267731ecef490769f00c1a88163d35487b6980.tar.gz | |
Create Authentication Plugins
Provides the framework for creating authentication plugins and using
them from a session object.
To allow this system to co-exist with the original client there is a bit
of a hack. The client object itself is now also an authentication
plugin, that supports the original client pattern. If a client is
created without a session object then that session object uses the
client as it's authentication plugin.
Change-Id: I682c8dcd3705148aaa804a91f4ed48a5b74bdc12
blueprint: auth-plugins
Diffstat (limited to 'keystoneclient/baseclient.py')
| -rw-r--r-- | keystoneclient/baseclient.py | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/keystoneclient/baseclient.py b/keystoneclient/baseclient.py new file mode 100644 index 0000000..5cc2b8c --- /dev/null +++ b/keystoneclient/baseclient.py @@ -0,0 +1,41 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# 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. + + +class Client(object): + + def __init__(self, session): + self.session = session + + def request(self, url, method, **kwargs): + kwargs.setdefault('authenticated', True) + return self.session.request(url, method, **kwargs) + + def get(self, url, **kwargs): + return self.request(url, 'GET', **kwargs) + + def head(self, url, **kwargs): + return self.request(url, 'HEAD', **kwargs) + + def post(self, url, **kwargs): + return self.request(url, 'POST', **kwargs) + + def put(self, url, **kwargs): + return self.request(url, 'PUT', **kwargs) + + def patch(self, url, **kwargs): + return self.request(url, 'PATCH', **kwargs) + + def delete(self, url, **kwargs): + return self.request(url, 'DELETE', **kwargs) |
