我正在尝试停止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}'
如果有人可以帮助找出如何模仿以上请求,那就太好了。
TIA。