Я пытаюсь остановить работающий экземпляр сервера в Openstack Nova. Я использую следующий API в качестве ссылки
https://developer.openstack.org/api-ref/compute/#stop-server-os-stop-action
Вот мой фрагмент кода
import openstack.config
self.cloud_region = openstack.config.OpenStackConfig().get_one('adminproject')
self.session = self.cloud_region.get_session_client('compute')
Я могу отправлять запросы GET на сервер
response = self.session.get(url)
Но когда я пытаюсь сделать POST-запросы, я получаю ошибки. Вот как я пытаюсь это сделать
url = "/servers/" + vm_id + "/action
body = {"os-stop":"null"}
reponse = self.session.post(url, {'os-stop' : 'null'})
TypeError: post() takes exactly 2 arguments (3 given)
Я также пытался
reponse = self.session.post(url, body=body)
что выдает ошибку
TypeError: request() got an unexpected keyword argument 'body'
Когда я делаю это через клиент nova и включаю режим отладки, это то, что я получаю
curl -g -i -X POST http://IP:PORT/v2.1/12bf80bc27cf4fdc87a2ce2cb0619159/servers/93bc82d4-7a3b-4f67-bc6e-dfb2553a57fc/action -H "Accept: application/json" -H "Content-Type: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA1}447e97116c71efcff1a02f4d7fdf8d76a4490d9d" -d '{"os-stop": null}'
Было бы здорово, если бы кто-то мог помочь выяснить, как эмулировать вышеуказанный запрос.
ТИА.