sijis / sumologic-python

Sumologic's python api library
Apache License 2.0
8 stars 5 forks source link

SSLError name mismatch #2

Closed phundisk closed 7 years ago

phundisk commented 10 years ago

I am currently seeing this only on my CentOS 5.6 machine with python2.6 but no error on OS X which I originally developed my script on. This seems to be failing on the get_collectors method on line containing "collectors = coll.get_collectors()"

$ python26 sumo_standard.py Traceback (most recent call last): File "sumo_standard.py", line 24, in collectors = coll.get_collectors() File "/usr/lib/python2.6/site-packages/sumologic/collectors.py", line 55, in get_collectors request = requests.get(self.url, params=options, auth=self.auth) File "/usr/lib/python2.6/site-packages/requests/api.py", line 54, in get return request('get', url, _kwargs) File "/usr/lib/python2.6/site-packages/requests/safe_mode.py", line 37, in wrapped return function(method, url, _kwargs) File "/usr/lib/python2.6/site-packages/requests/api.py", line 42, in request return s.request(method=method, url=url, **kwargs) File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 230, in request r.send(prefetch=prefetch) File "/usr/lib/python2.6/site-packages/requests/models.py", line 613, in send raise SSLError(e) requests.exceptions.SSLError: hostname 'api.sumologic.com' doesn't match u'service.sumologic.com'

author = 'xxx' import sumologic.client import sumologic.search import sumologic.collectors import requests import json from email.MIMEMultipart import MIMEMultipart from email.MIMEText import MIMEText import smtplib

ACCESS_ID='xxxx'

ACCESS_KEY='xxx'

Dev Access Credentials

ACCESS_ID='xxx'

ACCESS_KEY='xxx'

Production Access Credentials

ACCESS_ID='xx' ACCESS_KEY='xxx'

conn = sumologic.client.Client(auth=(ACCESS_ID, ACCESS_KEY)) coll = sumologic.collectors.Collectors(conn) collectors = coll.get_collectors()

sijis commented 10 years ago

I'll check on this later tonight. What if you temporarily change this line:

conn = sumologic.client.Client(auth=(ACCESS_ID, ACCESS_KEY)

to

conn = sumologic.client.Client(auth=(ACCESS_ID, ACCESS_KEY, domain='service.sumologic.com')

Sijis

sijis commented 9 years ago

My apologies for not being able to look at this sooner.

I can validate that this does occur in centos 5.9 (i know you were using 5.6). Interestingly enough, in centos 6.x the error does not pop up.

The temporary fix is to modify this line: https://github.com/sijis/sumologic-python/blob/master/sumologic/collectors.py#L55 so it looks like this:

request = requests.get(self.url, params=options, auth=self.auth, verify=False)

I'll have to figure out a longer term strategy to inject the verify parameter to all requests calls as to no need to hack the library directly.

Sijis

sijis commented 9 years ago

@yowayb - I'm seeing the issue in the sumologic-sdk library you are working on too.

>>> from sumologic import SumoLogic
>>> sumo = SumoLogic('myusername', "mypassword")
>>> sumo.collectors()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "sumologic/sumologic.py", line 51, in collectors
    r = self.get('/collectors', params)
  File "sumologic/sumologic.py", line 18, in get
    return self.session.get(self.endpoint + method, params=params)
  File "/usr/lib/python2.6/site-packages/requests-2.4.3-py2.6.egg/requests/sessions.py", line 469, in get
    return self.request('GET', url, **kwargs)
  File "/usr/lib/python2.6/site-packages/requests-2.4.3-py2.6.egg/requests/sessions.py", line 457, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python2.6/site-packages/requests-2.4.3-py2.6.egg/requests/sessions.py", line 569, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python2.6/site-packages/requests-2.4.3-py2.6.egg/requests/adapters.py", line 420, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: hostname 'api.sumologic.com' doesn't match u'service.sumologic.com'
>>> 

(i would have filed a issue on that repo, but its not enabled)