Openstack: как получить IP-адрес клиента в API Python

Я пытаюсь внедрить новый вес для ячеек в openstack. Как я могу получить IP-адрес клиента (пользователь, который запрашивает создание нового экземпляра) внутри кода openstack nova python?

я уже пробовал

req.remote_addr

внутри файлов nova/api/auth.py (метод NovaKeystoneContext.call) и nova/api/compute_req_id.py (метод ComputeReqIdMiddleware), но безуспешно. LOG.debug, по-видимому, указывает, что эти методы не вызываются, когда запрашивается создание нового экземпляра.

Любые предложения о том, как я могу этого добиться?

Спасибо


person Vini.g.fer    schedule 27.11.2015    source источник


Ответы (1)


Кому интересно, нашел решение.

Когда вы создаете новый взвешиватель, вам нужно будет добавить такой метод:

def _weigh_object(self, cell, weight_properties):

Для получения IP клиента достаточно позвонить

weight_properties['context'].remote_address

Одна последняя деталь: вам нужно будет перезапустить службы nova, чтобы это изменение произошло:

service nova-cells restart (as root)
person Vini.g.fer    schedule 09.12.2015