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

Reply via email to