Instances won't spawn due to a problem with the python-urllib3, python-glanceclient, and python-requests package versions (mostly just urllib3 >= 1.11)

2016-06-20 16:44:36.617 16602 ERROR nova.api.openstack [req-9a5d30d9-60b5-420c-b872-e671591b39d0 b37ae066412d494b87640624bc7a8488 7afb230202454f939e75e13c698b2eb4 - - -] Caught error: id
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack Traceback (most recent call last):
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/nova/api/openstack/__init__.py", line 125, in __call__
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack     return req.get_response(self.application)
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/webob/request.py", line 1317, in send
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack     application, catch_exc_info=False)
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/webob/request.py", line 1281, in call_application
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack     app_iter = application(self.environ, start_response)
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack     return resp(environ, start_response)
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/keystonemiddleware/auth_token/__init__.py", line 634, in __call__
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack     return self._call_app(env, start_response)
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/keystonemiddleware/auth_token/__init__.py", line 554, in _call_app
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack     return self._app(env, _fake_start_response)
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack     return resp(environ, start_response)
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack     return resp(environ, start_response)
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/routes/middleware.py", line 131, in __call__
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack     response = self.app(environ, start_response)
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack     return resp(environ, start_response)
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/webob/dec.py", line 130, in __call__
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack     resp = self.call_func(req, *args, **self.kwargs)
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/webob/dec.py", line 195, in call_func
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack     return self.func(req, *args, **kwargs)
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/nova/api/openstack/wsgi.py", line 756, in __call__
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack     content_type, body, accept)
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/nova/api/openstack/wsgi.py", line 821, in _process_stack
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack     action_result = self.dispatch(meth, request, action_args)
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/nova/api/openstack/wsgi.py", line 911, in dispatch
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack     return method(req=request, **action_args)
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/nova/api/openstack/compute/images.py", line 83, in show
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack     image = self._image_api.get(context, id)
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/nova/image/api.py", line 93, in get
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack     show_deleted=show_deleted)
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/nova/image/glance.py", line 309, in show
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack     include_locations=include_locations)
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/nova/image/glance.py", line 483, in _translate_from_glance
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack     include_locations=include_locations)
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/nova/image/glance.py", line 545, in _extract_attributes
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack     queued = getattr(image, 'status') == 'queued'
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/glanceclient/openstack/common/apiclient/base.py", line 491, in __getattr__
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack     self.get()
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/glanceclient/openstack/common/apiclient/base.py", line 509, in get
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack     new = self.manager.get(self.id)
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/glanceclient/openstack/common/apiclient/base.py", line 494, in __getattr__
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack     raise AttributeError(k)
2016-06-20 16:44:36.617 16602 TRACE nova.api.openstack AttributeError: id

Add this patch to line 76

    def _image_meta_from_headers(self, headers):
        meta = {'properties': {}}
        safe_decode = encodeutils.safe_decode
        for key, value in six.iteritems(headers):
            # NOTE(flaper87): this is a compatibility fix
            # for urllib3 >= 1.11. Please, refer to this
            # bug for more info:
            # https://bugs.launchpad.net/python-glanceclient/+bug/1487645
            # https://review.openstack.org/#/c/244748/1/glanceclient/v1/images.py
            key = key.lower()

Restart your services

downgrading python-requests and python-urllib3 would also work but who knows what would also break.

https://review.openstack.org/#/c/244748/1/glanceclient/v1/images.py

Make sure not to fuck up

2016-06-21 11:13:13.259 5507 ERROR nova.api.openstack [req-a1969570-bb6a-43ce-b69a-c066bd53a9e0 444ce5a98472496c90dc632b5e335e4c e5e7ab304fd24c6ebee4c43193529d07 - - -] Caught error: expected an indented block (images.py, line 76)
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack Traceback (most recent call last):
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/nova/api/openstack/__init__.py", line 125, in __call__
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     return req.get_response(self.application)
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/webob/request.py", line 1317, in send
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     application, catch_exc_info=False)
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/webob/request.py", line 1281, in call_application
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     app_iter = application(self.environ, start_response)
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     return resp(environ, start_response)
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/keystonemiddleware/auth_token/__init__.py", line 634, in __call__
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     return self._call_app(env, start_response)
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/keystonemiddleware/auth_token/__init__.py", line 554, in _call_app
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     return self._app(env, _fake_start_response)
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     return resp(environ, start_response)
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     return resp(environ, start_response)
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/routes/middleware.py", line 131, in __call__
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     response = self.app(environ, start_response)
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/webob/dec.py", line 144, in __call__
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     return resp(environ, start_response)
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/webob/dec.py", line 130, in __call__
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     resp = self.call_func(req, *args, **self.kwargs)
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/webob/dec.py", line 195, in call_func
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     return self.func(req, *args, **kwargs)
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/nova/api/openstack/wsgi.py", line 756, in __call__
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     content_type, body, accept)
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/nova/api/openstack/wsgi.py", line 821, in _process_stack
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     action_result = self.dispatch(meth, request, action_args)
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/nova/api/openstack/wsgi.py", line 911, in dispatch
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     return method(req=request, **action_args)
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/nova/api/openstack/compute/images.py", line 83, in show
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     image = self._image_api.get(context, id)
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/nova/image/api.py", line 93, in get
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     show_deleted=show_deleted)
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/nova/image/glance.py", line 300, in show
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     _reraise_translated_image_exception(image_id)
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/nova/image/glance.py", line 298, in show
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     image = self._client.call(context, version, 'get', image_id)
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/nova/image/glance.py", line 216, in call
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     version)
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/nova/image/glance.py", line 203, in _create_onetime_client
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     self.use_ssl, version)
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/nova/image/glance.py", line 146, in _create_glance_client
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     return glanceclient.Client(str(version), endpoint, **params)
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/glanceclient/client.py", line 37, in Client
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     module = utils.import_versioned_module(version, 'client')
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/glanceclient/common/utils.py", line 234, in import_versioned_module
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     return importutils.import_module(module)
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/oslo_utils/importutils.py", line 57, in import_module
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     __import__(import_str)
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/glanceclient/v1/__init__.py", line 16, in <module>
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     from glanceclient.v1.client import Client      # noqa
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/glanceclient/v1/client.py", line 19, in <module>
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     from glanceclient.v1.images import ImageManager
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack   File "/usr/lib/python2.7/site-packages/glanceclient/v1/images.py", line 76
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack     for key, value in six.iteritems(headers):
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack       ^
2016-06-21 11:13:13.259 5507 TRACE nova.api.openstack IndentationError: expected an indented block