Frankly I didn't take too close a look at the code I added to cinder.context. I just needed something that gave me the current user's authenticated session and nicked the _ContextAuthPlugin(plugin.BaseAuthPlugin) class from nova.context, found it did what I needed it to do and used it. But from a closer look at keystoneauth1.access.service_catalog I suspect ServiceCatalogV3 wouldn't work due to incompatible token formats:
Frankly I didn't take too close a look at the code I added to cinder.context. I just needed something that gave me the current user's authenticated session and nicked the _ContextAuthPlu gin(plugin. BaseAuthPlugin) class from nova.context, found it did what I needed it to do and used it. But from a closer look at keystoneauth1. access. service_ catalog I suspect ServiceCatalogV3 wouldn't work due to incompatible token formats:
https:/ /github. com/openstack/ keystoneauth/ blob/master/ keystoneauth1/ access/ service_ catalog. py#L240 /github. com/openstack/ keystoneauth/ blob/master/ keystoneauth1/ access/ service_ catalog. py#L279
https:/
For some reason we appear to be getting a V2 token from the current user's session, otherwise ServiceCatalogV2 would not work.