Hi,
the SSL error says that the certificate icinga2 uses is not sign by a CA
which is included in your '/etc/ssl/certs/ca-bundle.trust.crt' file. Do
you use your own certificates or did you use "icinga2 pki"?
Your example works fine here. One hint: you can also use the "json"
attribute of the requests post function:
r = requests.post(
request_url,
headers=headers,
auth=('root', 'icinga2'),
json=data,
verify='/etc/ssl/certs/ca-bundle.trust.crt')
Kind regards,
Tobias
On 2016-03-02 01:49, Siwei Zhang wrote:
Hi there,
I am trying to use Icinga2 API and follow the instructions in the link
below:
https://docs-icinga.beutner.name/9-icinga2-api/ [1]
But I failed to run the Python sample script.
How can I fix it?
Thanks for the help.
Regards,
Siwei
request_url = "https://10.34.89.144:5665/v1/objects/services"
headers = {
'Accept': 'application/json',
'X-HTTP-Method-Override': 'GET'
}
data = {
"attrs": [ "name", "state", "last_check_result" ],
"joins": [ "host.name", "host.state", "host.last_check_result" ],
"filter": "match("ping*", service.name)",
}
r = requests.post(request_url,
headers = headers,
auth=('root', 'icinga2'),
data=json.dumps(data),
# verify=False)
verify='/etc/ssl/certs/ca-bundle.trust.crt')
print "Request URL: " + str(r.url)
print "Status code: " + str(r.status_code)
if (r.status_code == 200):
print "Result: " + json.dumps(r.json())
else:
print r.text
r.raise_for_status()
The errors are:
Traceback (most recent call last):
File "./icinga2api.py", line 63, in <module>
verify='/etc/ssl/certs/ca-bundle.trust.crt')
File "/usr/lib/python2.7/site-packages/requests/api.py", line 108, in
post
return request('post', url, data=data, json=json, **kwargs)
File "/usr/lib/python2.7/site-packages/requests/api.py", line 50, in
request
response = session.request(method=method, url=url, **kwargs)
File "/usr/lib/python2.7/site-packages/requests/sessions.py", line
464, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python2.7/site-packages/requests/sessions.py", line
576, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python2.7/site-packages/requests/adapters.py", line
431, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED]
certificate verify failed (_ssl.c:765)
Links:
------
[1] https://docs-icinga.beutner.name/9-icinga2-api/
_______________________________________________
icinga-users mailing list
icinga-users@lists.icinga.org
https://lists.icinga.org/mailman/listinfo/icinga-users
--
Regards
Tobias
_______________________________________________
icinga-users mailing list
icinga-users@lists.icinga.org
https://lists.icinga.org/mailman/listinfo/icinga-users