我试图在openstack上为单元格实现一个新的称重器。如何在openstack nova python代码中获取客户端IP(请求创建新实例的用户)?
我已经尝试了
req.remote_addr
内部文件nova / api / auth.py(NovaKeystoneContext。调用方法)和nova / api / compute_req_id.py(ComputeReqIdMiddleware方法),但没有成功。 LOG.debug似乎表明在请求创建新实例时不会调用这些方法。
有关如何实现这一目标的任何建议?
由于
答案 0 :(得分:1)
对于任何可能感兴趣的人,我找到了解决方案。
当你创建一个新的weighter时,你需要添加一个这样的方法:
def _weigh_object(self, cell, weight_properties):
要获取客户端的IP,您只需致电
weight_properties['context'].remote_address
最后一个细节:您需要重新启动nova服务才能进行更改:
service nova-cells restart (as root)