OpenStack中GET请求 fixed_ips传参方式解决思路

来源:互联网 发布:tower mac 注册码 编辑:程序博客网 时间:2024/06/05 10:41

背景:由于业务需求需要在neutron中对port的api进行ip模糊(port的api官方文档:https://developer.openstack.org/api-ref/network/v2/index.html#ports),但是通过GET /v2.0/ports不带参数的返回port的list的时候发现,fixed_ips的值是一个键分别为subnet_ip和ip_address组成的键值对数组,如下图所示。但是如何针对这个fixed_ips进行GET请求传参遇到了问题。


解决思路:

在解决这个问题之前,我尝试了多种办法,但都请求失败,都返回了InvalidInput。尝试几种失败的方法如下:

1.在GET请求中直接对key=value的value进行如上图所致的进行json封装,例如:fixed_ips={"subnet_id":"value1","ip_address":"10.0.0.9"},结果失败

2.在请求body中传入json数据,结果还是失败

最后无意间看到官网对api进行使用cli方式进行请求,而且cli请求带有Fixed_ips选项,地址:https://docs.openstack.org/python-openstackclient/pike/cli/command-objects/port.html如图所示:


那么我就可以通过cli方式进行GET请求,且带fixed_ips选项,这样我可以通过后台对neutron的日志进行tail -f neutron-server.log | grep GET(这里的前提最好是对这个组件下的neutron.conf文件打开debug模式,默认是关闭的)如图:



这时候可以看到抓取到的GET请求中带有fixed_ips参数,从中可以看到url对Value中的等号=进行了转义。

最后我通过restClient进行了测试,发现能够返回完全匹配的项。如下图:


原创粉丝点击