Commit Graph

4 Commits (6ee21bd722b3e1dbec3e5a211e32f10fb2a20603)

Author SHA1 Message Date
briancurtin bbd85fded7 Provide a RFC 7231 compliant user agent string
The current default of "keystoneauth1" doesn't convey enough
information, and additionally when the user of a Session supplies their
own user agent, it stomps on any notion of keystoneauth1 being there.

Per RFC 7231 Section 5.5.3
(https://tools.ietf.org/html/rfc7231#section-5.5.3), user agents should
basically be a space-delimited list of product/version pairs in
decreasing order of importance. This change makes the default user agent
something like the following:

keystoneauth1/2.1.1 python-requests/2.8.1 CPython/3.4.1+

Due to the decreasing order of importance, when a user creates a Session
with something like Session(user_agent="my-product/1.0"),
'my-product/1.0' is then prepended to the above list. The only time this
is not the case is if a user agent is provided directly to
Session.request. In that case, the User-Agent header is set to whatever
the provided argument is, verbatim.

This was a change we had originally made to the Transport class in
python-openstacksdk (I80ca26fff3f2522b8232472676396abb86166f91), but
upon moving to keystoneauth instead of our own implementation, it was
noticed that we lost this, and keystoneauth is a better place for this
than for us to re-implement it inside of python-openstacksdk.

Change-Id: I46f336f25fac5b524547bb13e4f5438ebf1d4320
2015-12-15 16:45:17 -06:00
Jamie Lennox efcadd6937 Split plugin loading
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
2015-08-06 10:07:51 +10:00
Jamie Lennox a08ca8f494 Remove auth/ directory
The /auth directory made sense when we were seperating the plugins from
the rest of keystoneclient, however now we are in keystoneauth there
really is no need for the auth subdirectory.

Change-Id: I94f12780af4f914ead93796a052e9dc82c6c2f81
2015-08-05 12:08:48 +10:00
Morgan Fainberg a0000e4e9a Move to the keystoneauth1 namespace
Conver from the keystoneauth namespace to keystoneauth1. This is to
ensure that is is possible to install all versions of keystoneauth
side-by-side.

Change-Id: Ibbaf11525980c8edb5968d8b8ee19c55094e77d8
2015-06-25 16:48:54 -07:00