我正在尝试使用python请求库创建一个ansible模块,该模块运行时没有错误但返回响应
“{\ n \”code \“:\”generic_err_missing_required_header \“,\ n \”message \“:\”缺少标题:[X-chkp-sid] \“\ n}”
即使标题似乎已正确定义。
以下模块代码:
from ansible.module_utils.basic import AnsibleModule
import requests
def somefunction(sid):
url = '<someurl>'
headers = {
'Content-Type': 'application/json',
'X-chkp-sid': sid,
}
data = {
'type': 'tag'
}
response = requests.post(url,headers,data,verify=False,timeout=10)
return response.content
def main():
module_args = dict(
sid = dict(type='str', required=True)
)
result = dict(
changed=False,
original_message='',
message=''
)
module = AnsibleModule(
argument_spec=module_args,
supports_check_mode=True
)
if module.check_mode:
return result
sid = module.params['sid']
result=somefunction(sid)
module.exit_json(somefunction_output=result)
if __name__ == '__main__':
main()
我使用ansible uri模块和相同的header / body参数获得了成功的响应。还有其他想法吗?
答案 0 :(得分:0)
None
不会返回任何内容,因此返回值为return requests.post(url,headers,data,verify=False,timeout=10)
。
也许您想要{{1}}?
答案 1 :(得分:0)
requests.post()
的大多数参数应该是关键字样式的args而不是普通的位置args。
请改为尝试:
response = requests.post(url,data=data,headers=headers,verify=False,timeout=10)