我正在尝试为openstack上的单元实现一个新的称重器。我如何在openstack nova python代码中获取客户端IP(请求创建新实例的用户)?

我已经尝试过

req.remote_addr

内部文件nova / api / auth.py(NovaKeystoneContext.call方法)和nova / api / compute_req_id.py(ComputeReqIdMiddleware方法),但没有成功。 LOG.debug似乎指示在请求创建新实例时未调用这些方法。

关于如何实现这一目标的任何建议?

谢谢

最佳答案

对于任何可能感兴趣的人,我都找到了解决方案。

创建新的加权器时,您需要添加如下方法:

def _weigh_object(self, cell, weight_properties):


要获取客户的IP,您只需致电

weight_properties['context'].remote_address


最后一个细节:您需要重新启动nova服务,以进行更改:

service nova-cells restart (as root)

关于python - Openstack:如何在python API中获取客户端的IP,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33960735/

10-10 00:18