Bug 1041189

Summary: [RFE][nova]: Reduce the number of token checks made during networking calls
Product: Red Hat OpenStack Reporter: RHOS Integration <rhos-integ>
Component: RFEsAssignee: RHOS Maint <rhos-maint>
Status: CLOSED UPSTREAM QA Contact:
Severity: medium Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: markmc, yeylon
Target Milestone: ---Keywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://blueprints.launchpad.net/nova/+spec/fewer-networking-token-checks
Whiteboard: upstream_milestone_none upstream_status_implemented upstream_definition_approved
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-19 17:31:52 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description RHOS Integration 2013-12-12 13:53:10 UTC
Cloned from launchpad blueprint https://blueprints.launchpad.net/nova/+spec/fewer-networking-token-checks.

Description:

Due to the current implementation of get_client() for quantum calls, not only does each quantum connection require a new token check, but also quantum clients are created every time, even if they use the same credentials and checks the credentials separately on each call.

Caching the client would allow making fewer token checks and reduce the access time in general.

For example, currently each request for instance metadata will result in 4 token checks in a row. Another request needs anoter 4, etc.

This could be reduced to only 1 request per lifetime of a token, so subsequent requests become keystone-free.

One new issue of this scheme would be that changing endpoints may result in failed requests until the token is invalidated. On the other hand, this is not a problem specific to this scenario, as the endpoint may change between the get_token call and another request - {quantum,glance,keystone}client should handle that situation internally anyway.

Specification URL (additional information):

None