请求 X-Openstack-Request-Id 与响应 X-Openstack-Request-Id 不同

问题描述 投票:0回答:1

当我使用openstack api操作实例时,代码如下:

def stop_server(self, server_id: str):
    api_url = self.endpoint + f'/servers/{server_id}/action'
    json = {"os-stop": None}
    headers = self.get_auth_token_header()
    import uuid
    req_id = f"req-{str(uuid.uuid4())}"
    print(req_id)
    if req_id:
        headers['X-Openstack-Nova-Api-Version'] = '2.46'
        headers['X-Openstack-Request-Id'] = req_id
    resp = self.make_request('post', api_url, json=json, headers=headers)
    print(resp.headers)
    return resp

我在请求头中指定了全局请求ID,但是响应头中的全局ID“X-Openstack-Request-Id”与我在请求头中指定的不一样。 API 参考是:https://docs.openstack.org/api-ref/compute/#request-ids

请求 ID 用户可以在请求头中指定全局请求ID。用户可以在响应头中收到本地请求 ID。

全局请求ID,是OpenStack组件中用于跟踪每个请求的唯一通用ID。全局请求ID的格式必须为req-+UUID(UUID4)。如果不符合格式,则被忽略。它与请求关联并显示在该请求的日志行中。默认情况下,中间件配置确保全局请求 ID 出现在日志文件中。

2.46版本新增功能

我的 X-Openstack-Request-Id 是 req-600d0d83-92aa-4c08-8e6d-38ea586ab990 响应标头为 {'Content-Length': '0', 'Content-Type': 'application/json', 'Openstack-Api-Version': 'compute 2.46', 'X-Openstack-Nova-Api-Version' :'2.46','变化':'OpenStack-API-版本,X-OpenStack-Nova-API-版本','X-Openstack-Request-Id':'req-ff3faec2-b72e-4478-a542-d2eda78c467d' , 'X-Compute-Request-Id': 'req-ff3faec2-b72e-4478-a542-d2eda78c467d', '日期': '星期三, 2024 年 4 月 17 日 06:38:05 GMT', '连接': 'keep-活着'}

我换了api版本还是不行

openstack openstack-nova openstack-api
1个回答
0
投票

您的问题解决了吗?我也有同样的行为。

© www.soinside.com 2019 - 2025. All rights reserved.