I upgraded now completely on the Juno release. A different problem now appears. Due to the LDAP identity backend driver for the default domain, user logins are used for trustor_user_ids. This work without any problems as long as the login name does not contain the dot character. Unfortunately are most of our users created using a pattern like givenname.surename. This leads then to the following error in keystone: 2015-01-02 16:19:45.587 3984 WARNING keystone.common.wsgi [-] Invalid input for field 'trustor_user_id'. The value is 'marcus.klein'. And then the heat-engine failes with: 2015-01-02 16:19:45.591 27660 ERROR oslo.messaging.rpc.dispatcher [req-2824ab9b-d70c-4d38-8088-1bc5cdf45096 ] Exception during message handling: Invalid input for field 'trustor_user_id'. The value is 'marcus.klein'. (HTTP 400) 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher Traceback (most recent call last): 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 134, in _dispatch_and_reply 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher incoming.message)) 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 177, in _dispatch 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher return self._do_dispatch(endpoint, method, ctxt, args) 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 123, in _do_dispatch 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher result = getattr(endpoint, method)(ctxt, **new_args) 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/dist-packages/heat/engine/service.py", line 69, in wrapped 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher return func(self, ctx, *args, **kwargs) 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/dist-packages/heat/engine/service.py", line 647, in create_stack 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher stack.store() 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/dist-packages/heat/engine/stack.py", line 315, in store 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher trust_ctx = keystone.create_trust_context() 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/dist-packages/heat/common/heat_keystoneclient.py", line 291, in create_trust_context 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher role_names=roles) 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/dist-packages/keystoneclient/v3/contrib/trusts.py", line 74, in create 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher **kwargs) 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/dist-packages/keystoneclient/base.py", line 71, in func 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher return f(*args, **new_kwargs) 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/dist-packages/keystoneclient/base.py", line 327, in create 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher self.key) 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/dist-packages/keystoneclient/base.py", line 150, in _create 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher return self._post(url, body, response_key, return_raw, **kwargs) 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/dist-packages/keystoneclient/base.py", line 164, in _post 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher resp, body = self.client.post(url, body=body, **kwargs) 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/dist-packages/keystoneclient/httpclient.py", line 617, in post 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher return self._cs_request(url, 'POST', **kwargs) 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/dist-packages/keystoneclient/httpclient.py", line 603, in _cs_request 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher return self.request(url, method, **kwargs) 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/dist-packages/keystoneclient/httpclient.py", line 578, in request 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher resp = super(HTTPClient, self).request(url, method, **kwargs) 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/dist-packages/keystoneclient/baseclient.py", line 21, in request 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher return self.session.request(url, method, **kwargs) 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/dist-packages/keystoneclient/utils.py", line 318, in inner 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher return func(*args, **kwargs) 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher File "/usr/lib/python2.7/dist-packages/keystoneclient/session.py", line 339, in request 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher raise exceptions.from_response(resp, method, url) 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher BadRequest: Invalid input for field 'trustor_user_id'. The value is 'marcus.klein'. (HTTP 400) 2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.rpc.dispatcher 2015-01-02 16:19:45.595 27660 ERROR oslo.messaging._drivers.common [req-2824ab9b-d70c-4d38-8088-1bc5cdf45096 ] Returning exception Invalid input for field 'trustor_user_id'. The value is 'marcus.klein'. (HTTP 400) to caller 2015-01-02 16:19:45.596 27660 ERROR oslo.messaging._drivers.common [req-2824ab9b-d70c-4d38-8088-1bc5cdf45096 ] ['Traceback (most recent call last):\n', ' File "/usr/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 134, in _dispatch_and_reply\n incoming.message))\n', ' File "/usr/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 177, in _dispatch\n return self._do_dispatch(endpoint, method, ctxt, args)\n', ' File "/usr/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 123, in _do_dispatch\n result = getattr(endpoint, method)(ctxt, **new_args)\n', ' File "/usr/lib/python2.7/dist-packages/heat/engine/service.py", line 69, in wrapped\n return func(self, ctx, *args, **kwargs)\n', ' File "/usr/lib/python2.7/dist-packages/heat/engine/service.py", line 647, in create_stack\n stack.store()\n', ' File "/usr/lib/python2.7/dist-packages/heat/engine/stack.py", line 315, in store\n trust_ctx = keystone.create_trust_context()\n', ' File "/usr/lib/python2.7/dist-packages/heat/common/heat_keystoneclient.py", line 291, in create_trust_context\n role_names=roles)\n', ' File "/usr/lib/python2.7/dist-packages/keystoneclient/v3/contrib/trusts.py", line 74, in create\n **kwargs)\n', ' File "/usr/lib/python2.7/dist-packages/keystoneclient/base.py", line 71, in func\n return f(*args, **new_kwargs)\n', ' File "/usr/lib/python2.7/dist-packages/keystoneclient/base.py", line 327, in create\n self.key)\n', ' File "/usr/lib/python2.7/dist-packages/keystoneclient/base.py", line 150, in _create\n return self._post(url, body, response_key, return_raw, **kwargs)\n', ' File "/usr/lib/python2.7/dist-packages/keystoneclient/base.py", line 164, in _post\n resp, body = self.client.post(url, body=body, **kwargs)\n', ' File "/usr/lib/python2.7/dist-packages/keystoneclient/httpclient.py", line 617, in post\n return self._cs_request(url, \'POST\', **kwargs)\n', ' File "/usr/lib/python2.7/dist-packages/keystoneclient/httpclient.py", line 603, in _cs_request\n return self.request(url, method, **kwargs)\n', ' File "/usr/lib/python2.7/dist-packages/keystoneclient/httpclient.py", line 578, in request\n resp = super(HTTPClient, self).request(url, method, **kwargs)\n', ' File "/usr/lib/python2.7/dist-packages/keystoneclient/baseclient.py", line 21, in request\n return self.session.request(url, method, **kwargs)\n', ' File "/usr/lib/python2.7/dist-packages/keystoneclient/utils.py", line 318, in inner\n return func(*args, **kwargs)\n', ' File "/usr/lib/python2.7/dist-packages/keystoneclient/session.py", line 339, in request\n raise exceptions.from_response(resp, method, url)\n', "BadRequest: Invalid input for field 'trustor_user_id'. The value is 'marcus.klein'. (HTTP 400)\n"]