ConnectionFailed: Connection to XXXXXX failed: 'HTTPSConnectionPool' object has no attribute 'insecure'
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Glance Client |
Fix Released
|
Medium
|
Flavio Percoco | ||
OpenStack Compute (nova) |
Invalid
|
Undecided
|
Unassigned | ||
keystonemiddleware |
Invalid
|
Undecided
|
Unassigned | ||
python-neutronclient |
Invalid
|
Undecided
|
Unassigned | ||
python-glanceclient (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
While compute manager was trying to authenticate with neutronclient, we see the following:
2014-08-28 05:03:33.052 29982 TRACE powervc_
2014-08-28 05:03:33.052 29982 TRACE powervc_
2014-08-28 05:03:33.052 29982 TRACE powervc_
2014-08-28 05:03:33.052 29982 TRACE powervc_
2014-08-28 05:03:33.052 29982 TRACE powervc_
2014-08-28 05:03:33.052 29982 TRACE powervc_
2014-08-28 05:03:33.052 29982 TRACE powervc_
2014-08-28 05:03:33.052 29982 TRACE powervc_
2014-08-28 05:03:33.052 29982 TRACE powervc_
2014-08-28 05:03:33.052 29982 TRACE powervc_
Setting a pdb breakpoint and stepping into the code, I see that the requests library is getting a connection object from a pool. The interesting thing is that the connection object is actually from glanceclient.
/usr/
-> self._authentic
/usr/
-> allow_redirects
/usr/
-> resp, body = self.request(*args, **kargs)
/usr/
-> **kwargs)
/usr/
-> return session.
/usr/
-> resp = self.send(prep, **send_kwargs)
/usr/
-> r = adapter.
/usr/
-> timeout=timeout
/usr/
-> conn = self._get_
/usr/
-> return conn or self._new_conn()
> /usr/lib/
-> return VerifiedHTTPSCo
The code about to run there is this:
class HTTPSConnection
"""
HTTPSConnec
connection is requested to the HTTPSAdapter.This
implementation overwrites the _new_conn method and
returns an instances of glanceclient's VerifiedHTTPSCo
which handles no compression.
ssl_compression is hard-coded to False because this will
be used just when the user sets --no-ssl-
"""
scheme = 'https'
def _new_conn(self):
return VerifiedHTTPSCo
Note the self.insecure, which does not exist here. I see the following fairly recent change in the glanceclient.
I do not understand this whole flow and if self.insecure was supposed to have been initialized somewhere else, but it's obviously not.
no longer affects: | python-glanceclient |
Changed in python-glanceclient: | |
status: | Fix Committed → Fix Released |
summary: |
- ConnectionFailed: Connection to neutron failed: 'HTTPSConnectionPool' + ConnectionFailed: Connection to XXXXXX failed: 'HTTPSConnectionPool' object has no attribute 'insecure' |
Changed in nova: | |
status: | Incomplete → Invalid |
Changed in python-neutronclient: | |
status: | Incomplete → Invalid |
Not sure how neutron client depends on glance client.
There is no such dependency in upstream python- neutronclient.
Could you please clarify?