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
639 B
639 B