Bug 1041736

Summary: [RFE][glance]: Create a unified request identifier
Product: Red Hat OpenStack Reporter: RHOS Integration <rhos-integ>
Component: RFEsAssignee: RHOS Maint <rhos-maint>
Status: CLOSED UPSTREAM QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: markmc, yeylon
Target Milestone: ---Keywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://blueprints.launchpad.net/glance/+spec/cross-service-request-id
Whiteboard: upstream_milestone_none upstream_status_unknown upstream_definition_obsolete
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-19 17:37:26 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 19:05:57 UTC
Cloned from launchpad blueprint https://blueprints.launchpad.net/glance/+spec/cross-service-request-id.

Description:

Create a unified request identifier associated with an API request that crosses OpenStack service boundaries. This will enable more effective debugging of requests that span multiple services. For example, a Nova instance create request may touch other services including Glance. A single id will simplify the process of tracking down errors.

See related email discussion: https://lists.launchpad.net/openstack/msg13082.html

Proposal:
-The first OpenStack service to touch a request will tag it with a "correlation_id". This will effectively be a global identifier. Inter-service requests will contain this ID in an HTTP header, "X_CORRELATION_ID". This value will be a UUID.

-Each service that touches the request will carry along this header value and use it in log messages and external notifications.

-Each service may have its own internal request identifier (request_id in Nova and Glance) and should also log this value in conjunction with the global identifier.

Question - How to guard against users supplying their own request id value? Check for uniqueness? Only accept request ID headers from certain source IPs?

Refer to https://blueprints.launchpad.net/nova/+spec/cross-service-request-id for further discussions.

Specification URL (additional information):

None