Reproduction steps:
1. Create a transient cluster. As infrastructure engine use the Heat.
2. Do not run any EDP jobs on cluster.
3. Wait for cluster deleting.
EXPECTED RESULT:
Cluster and Heat stack are successfully deleted.
ACTUAL RESULT:
Cluster is successfully deleted. Heat stack is not deleted. Stack has the status "Delete Failed".
2014-02-28 09:49:12.760 13043 ERROR heat.engine.resource [-] Delete Server "test-cluster-transient-vanilla-single-node-001"
2014-02-28 09:49:12.760 13043 TRACE heat.engine.resource Traceback (most recent call last):
2014-02-28 09:49:12.760 13043 TRACE heat.engine.resource File "/usr/lib/python2.6/site-packages/heat/engine/resource.py", line 527, in delete
2014-02-28 09:49:12.760 13043 TRACE heat.engine.resource handle_data = self.handle_delete()
2014-02-28 09:49:12.760 13043 TRACE heat.engine.resource File "/usr/lib/python2.6/site-packages/heat/engine/resources/server.py", line 406, in handle_delete
2014-02-28 09:49:12.760 13043 TRACE heat.engine.resource server = self.nova().servers.get(self.resource_id)
2014-02-28 09:49:12.760 13043 TRACE heat.engine.resource File "/usr/lib/python2.6/site-packages/heat/engine/resource.py", line 315, in nova
2014-02-28 09:49:12.760 13043 TRACE heat.engine.resource return self.stack.clients.nova(service_type)
2014-02-28 09:49:12.760 13043 TRACE heat.engine.resource File "/usr/lib/python2.6/site-packages/heat/engine/clients.py", line 115, in nova
2014-02-28 09:49:12.760 13043 TRACE heat.engine.resource endpoint_type=self._get_client_option('nova', 'endpoint_type'))
2014-02-28 09:49:12.760 13043 TRACE heat.engine.resource File "/usr/lib/python2.6/site-packages/heat/engine/clients.py", line 86, in url_for
2014-02-28 09:49:12.760 13043 TRACE heat.engine.resource return self.keystone().url_for(**kwargs)
2014-02-28 09:49:12.760 13043 TRACE heat.engine.resource File "/usr/lib/python2.6/site-packages/heat/common/heat_keystoneclient.py", line 327, in url_for
2014-02-28 09:49:12.760 13043 TRACE heat.engine.resource return self.client_v2.service_catalog.url_for(**kwargs)
2014-02-28 09:49:12.760 13043 TRACE heat.engine.resource File "/usr/lib/python2.6/site-packages/heat/common/heat_keystoneclient.py", line 73, in client_v2
2014-02-28 09:49:12.760 13043 TRACE heat.engine.resource self._client_v2 = self._v2_client_init()
2014-02-28 09:49:12.760 13043 TRACE heat.engine.resource File "/usr/lib/python2.6/site-packages/heat/common/heat_keystoneclient.py", line 107, in _v2_client_init
2014-02-28 09:49:12.760 13043 TRACE heat.engine.resource client_v2 = kc.Client(**kwargs)
2014-02-28 09:49:12.760 13043 TRACE heat.engine.resource File "/usr/lib/python2.6/site-packages/keystoneclient/v2_0/client.py", line 139, in __init__
2014-02-28 09:49:12.760 13043 TRACE heat.engine.resource self.authenticate()
2014-02-28 09:49:12.760 13043 TRACE heat.engine.resource File "/usr/lib/python2.6/site-packages/keystoneclient/httpclient.py", line 467, in authenticate
2014-02-28 09:49:12.760 13043 TRACE heat.engine.resource resp, body = self.get_raw_token_from_identity_service(**kwargs)
2014-02-28 09:49:12.760 13043 TRACE heat.engine.resource File "/usr/lib/python2.6/site-packages/keystoneclient/v2_0/client.py", line 166, in get_raw_token_from_identity_service
2014-02-28 09:49:12.760 13043 TRACE heat.engine.resource "%s" % e)
2014-02-28 09:49:12.760 13043 TRACE heat.engine.resource AuthorizationFailure: Authorization Failed: You are not authorized to perform the requested action. (HTTP 403)
2014-02-28 09:49:12.760 13043 TRACE heat.engine.resource
It seems we should pass trusts to the heat to delete stack