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"]
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-1bc5cdf450 96 ] Exception during message handling: Invalid input for field 'trustor_user_id'. The value is 'marcus.klein'. (HTTP 400) rpc.dispatcher Traceback (most recent call last): rpc.dispatcher File "/usr/lib/ python2. 7/dist- packages/ oslo/messaging/ rpc/dispatcher. py", line 134, in _dispatch_and_reply rpc.dispatcher incoming.message)) rpc.dispatcher File "/usr/lib/ python2. 7/dist- packages/ oslo/messaging/ rpc/dispatcher. py", line 177, in _dispatch rpc.dispatcher return self._do_ dispatch( endpoint, method, ctxt, args) rpc.dispatcher File "/usr/lib/ python2. 7/dist- packages/ oslo/messaging/ rpc/dispatcher. py", line 123, in _do_dispatch rpc.dispatcher result = getattr(endpoint, method)(ctxt, **new_args) rpc.dispatcher File "/usr/lib/ python2. 7/dist- packages/ heat/engine/ service. py", line 69, in wrapped rpc.dispatcher return func(self, ctx, *args, **kwargs) rpc.dispatcher File "/usr/lib/ python2. 7/dist- packages/ heat/engine/ service. py", line 647, in create_stack rpc.dispatcher stack.store() rpc.dispatcher File "/usr/lib/ python2. 7/dist- packages/ heat/engine/ stack.py" , line 315, in store rpc.dispatcher trust_ctx = keystone. create_ trust_context( ) rpc.dispatcher File "/usr/lib/ python2. 7/dist- packages/ heat/common/ heat_keystonecl ient.py" , line 291, in create_ trust_context rpc.dispatcher role_names=roles) rpc.dispatcher File "/usr/lib/ python2. 7/dist- packages/ keystoneclient/ v3/contrib/ trusts. py", line 74, in create rpc.dispatcher **kwargs) rpc.dispatcher File "/usr/lib/ python2. 7/dist- packages/ keystoneclient/ base.py" , line 71, in func rpc.dispatcher return f(*args, **new_kwargs) rpc.dispatcher File "/usr/lib/ python2. 7/dist- packages/ keystoneclient/ base.py" , line 327, in create rpc.dispatcher self.key) rpc.dispatcher File "/usr/lib/ python2. 7/dist- packages/ keystoneclient/ base.py" , line 150, in _create rpc.dispatcher return self._post(url, body, response_key, return_raw, **kwargs) rpc.dispatcher File "/usr/lib/ python2. 7/dist- packages/ keystoneclient/ base.py" , line 164, in _post rpc.dispatcher resp, body = self.client. post(url, body=body, **kwargs) rpc.dispatcher File "/usr/lib/ python2. 7/dist- packages/ keystoneclient/ httpclient. py", line 617, in post rpc.dispatcher return self._cs_ request( url, 'POST', **kwargs) rpc.dispatcher File "/usr/lib/ python2. 7/dist- packages/ keystoneclient/ httpclient. py", line 603, in _cs_request rpc.dispatcher return self.request(url, method, **kwargs) rpc.dispatcher File "/usr/lib/ python2. 7/dist- packages/ keystoneclient/ httpclient. py", line 578, in request rpc.dispatcher resp = super(HTTPClient, self).request(url, method, **kwargs) rpc.dispatcher File "/usr/lib/ python2. 7/dist- packages/ keystoneclient/ baseclient. py", line 21, in request rpc.dispatcher return self.session. request( url, method, **kwargs) rpc.dispatcher File "/usr/lib/ python2. 7/dist- packages/ keystoneclient/ utils.py" , line 318, in inner rpc.dispatcher return func(*args, **kwargs) rpc.dispatcher File "/usr/lib/ python2. 7/dist- packages/ keystoneclient/ session. py", line 339, in request rpc.dispatcher raise exceptions. from_response( resp, method, url) rpc.dispatcher BadRequest: Invalid input for field 'trustor_user_id'. The value is 'marcus.klein'. (HTTP 400) rpc.dispatcher _drivers. common [req-2824ab9b- d70c-4d38- 8088-1bc5cdf450 96 ] Returning exception Invalid input for field 'trustor_user_id'. The value is 'marcus.klein'. (HTTP 400) to caller _drivers. common [req-2824ab9b- d70c-4d38- 8088-1bc5cdf450 96 ] ['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_keystonecl ient.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"]
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.591 27660 TRACE oslo.messaging.
2015-01-02 16:19:45.595 27660 ERROR oslo.messaging.
2015-01-02 16:19:45.596 27660 ERROR oslo.messaging.