Comment 5 for bug 1534655

Revision history for this message
Marek Celoud (marek-celoud) wrote :

We hit the same issue with Liberty. However there is a fix for heat to use keystone session from context in client plugin instead of username,password.

https://github.com/openstack/heat/commit/cd125f328e3e4e9f517278b04347515eba380d5a

This fix is only for Newton. When try in Liberty:

    def _create(self):
        endpoint_type = self._get_client_option('nova', 'endpoint_type')
        extensions = nc.discover_extensions('2')

        args = {
            'session': self.context.keystone_session,
            'extensions': extensions,
            'interface': endpoint_type,
            'service_type': self.COMPUTE,
            'http_log_debug': self._get_client_option('nova',
                                                      'http_log_debug')
        }

We got error:

2016-09-22 16:27:18.355 26510 ERROR heat.engine.stack File "/usr/lib/python2.7/dist-packages/heat/engine/clients/os/nova.py", line 95, in _create
2016-09-22 16:27:18.355 26510 ERROR heat.engine.stack 'session': self.context.keystone_session,
2016-09-22 16:27:18.355 26510 ERROR heat.engine.stack AttributeError: 'RequestContext' object has no attribute 'keystone_session'

When we tried put there "'session': self._keystone_session," instead:

2016-09-22 16:28:18.528 26861 ERROR heat.engine.stack File "/usr/lib/python2.7/dist-packages/keystoneclient/session.py", line 596, in _auth_required
2016-09-22 16:28:18.528 26861 ERROR heat.engine.stack raise exceptions.MissingAuthPlugin(msg)
2016-09-22 16:28:18.528 26861 ERROR heat.engine.stack MissingAuthPlugin: An auth plugin is required to determine endpoint URL