我正在尝试为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/