Just upgraded to kilo from juno. A lot of my templates are now breaking. I've boiled it down to having a Wait Handle Instance's url in any part of the config data of the MultipartMime config.
Minimal reproducer:
UserData:
Type: OS::Heat::MultipartMime
Properties:
parts:
- config: {Ref: WaitHandleInstance}
2015-07-11 09:14:29.499 21256 INFO heat.engine.resource [-] creating MultipartMime "UserData" Stack "kfox-test" [9b969cee-6d5e-4a02-bd60-80efe1d7b3cc]
2015-07-11 09:14:29.672 21256 DEBUG oslo_messaging._drivers.amqpdriver [-] MSG_ID is 6ed148af52054c1c981866fbdafe3a96 _send /usr/lib/python2.7/site-packages/oslo_messaging/_drivers/amqpdriver.py:311
2015-07-11 09:14:29.672 21256 DEBUG oslo_messaging._drivers.amqp [-] UNIQUE_ID is 20ebf6fced54441e88de5e13209d9911. _add_unique_id /usr/lib/python2.7/site-packages/oslo_messaging/_drivers/amqp.py:258
2015-07-11 09:14:29.680 21258 ERROR oslo_messaging.rpc.dispatcher [req-aa306066-0e0b-4924-930b-2431745762ec kfox grid] Exception during message handling: unsupported format character 'A' (0x41) at index 73
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher Traceback (most recent call last):
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 142, in _dispatch_and_reply
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher executor_callback))
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 186, in _dispatch
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher executor_callback)
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 130, in _do_dispatch
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher result = func(ctxt, **new_args)
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/osprofiler/profiler.py", line 105, in wrapper
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher return f(*args, **kwargs)
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/heat/common/context.py", line 300, in wrapped
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher return func(self, ctx, *args, **kwargs)
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/heat/engine/service.py", line 1441, in show_software_config
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher return self.software_config.show_software_config(cnxt, config_id)
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/heat/engine/service_software_config.py", line 36, in show_software_config
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher sc = software_config_object.SoftwareConfig.get_by_id(cnxt, config_id)
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/heat/objects/software_config.py", line 57, in get_by_id
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher context, cls(), db_api.software_config_get(context, config_id))
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/heat/db/api.py", line 272, in software_config_get
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher return IMPL.software_config_get(context, config_id)
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/heat/db/sqlalchemy/api.py", line 757, in software_config_get
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher config_id)
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/heat/common/exception.py", line 405, in __init__
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher super(NotFound, self).__init__()
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/heat/common/exception.py", line 113, in __init__
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher self.message = self.msg_fmt % kwargs
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/oslo_i18n/_message.py", line 112, in __mod__
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher unicode_mod = super(Message, self).__mod__(params)
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher ValueError: unsupported format character 'A' (0x41) at index 73
2015-07-11 09:14:29.680 21258 TRACE oslo_messaging.rpc.dispatcher
2015-07-11 09:14:29.681 21258 ERROR oslo_messaging._drivers.common [req-aa306066-0e0b-4924-930b-2431745762ec kfox grid] Returning exception unsupported format character 'A' (0x41) at index 73 to caller
2015-07-11 09:14:29.681 21258 ERROR oslo_messaging._drivers.common [req-aa306066-0e0b-4924-930b-2431745762ec kfox grid] ['Traceback (most recent call last):\n', ' File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 142, in _dispatch_and_reply\n executor_callback))\n', ' File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 186, in _dispatch\n executor_callback)\n', ' File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 130, in _do_dispatch\n result = func(ctxt, **new_args)\n', ' File "/usr/lib/python2.7/site-packages/osprofiler/profiler.py", line 105, in wrapper\n return f(*args, **kwargs)\n', ' File "/usr/lib/python2.7/site-packages/heat/common/context.py", line 300, in wrapped\n return func(self, ctx, *args, **kwargs)\n', ' File "/usr/lib/python2.7/site-packages/heat/engine/service.py", line 1441, in show_software_config\n return self.software_config.show_software_config(cnxt, config_id)\n', ' File "/usr/lib/python2.7/site-packages/heat/engine/service_software_config.py", line 36, in show_software_config\n sc = software_config_object.SoftwareConfig.get_by_id(cnxt, config_id)\n', ' File "/usr/lib/python2.7/site-packages/heat/objects/software_config.py", line 57, in get_by_id\n context, cls(), db_api.software_config_get(context, config_id))\n', ' File "/usr/lib/python2.7/site-packages/heat/db/api.py", line 272, in software_config_get\n return IMPL.software_config_get(context, config_id)\n', ' File "/usr/lib/python2.7/site-packages/heat/db/sqlalchemy/api.py", line 757, in software_config_get\n config_id)\n', ' File "/usr/lib/python2.7/site-packages/heat/common/exception.py", line 405, in __init__\n super(NotFound, self).__init__()\n', ' File "/usr/lib/python2.7/site-packages/heat/common/exception.py", line 113, in __init__\n self.message = self.msg_fmt % kwargs\n', ' File "/usr/lib/python2.7/site-packages/oslo_i18n/_message.py", line 112, in __mod__\n unicode_mod = super(Message, self).__mod__(params)\n', "ValueError: unsupported format character 'A' (0x41) at index 73\n"]
2015-07-11 09:14:29.681 21258 DEBUG oslo_messaging._drivers.amqp [req-aa306066-0e0b-4924-930b-2431745762ec kfox grid] UNIQUE_ID is 2196a458f8ce477b917949e17fa1157f. _add_unique_id /usr/lib/python2.7/site-packages/oslo_messaging/_drivers/amqp.py:258
2015-07-11 09:14:29.682 21258 DEBUG oslo_messaging._drivers.amqp [req-aa306066-0e0b-4924-930b-2431745762ec kfox grid] UNIQUE_ID is e07e9e0068dc45ce954be6ec8c5e1d9c. _add_unique_id /usr/lib/python2.7/site-packages/oslo_messaging/_drivers/amqp.py:258
2015-07-11 09:14:29.684 21256 INFO heat.engine.resource [-] CREATE: MultipartMime "UserData" Stack "kfox-test" [9b969cee-6d5e-4a02-bd60-80efe1d7b3cc]
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource Traceback (most recent call last):
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource File "/usr/lib/python2.7/site-packages/heat/engine/resource.py", line 489, in _action_recorder
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource yield
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource File "/usr/lib/python2.7/site-packages/heat/engine/resource.py", line 559, in _do_action
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource yield self.action_handler_task(action, args=handler_args)
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource File "/usr/lib/python2.7/site-packages/heat/engine/scheduler.py", line 296, in wrapper
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource step = next(subtask)
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource File "/usr/lib/python2.7/site-packages/heat/engine/resource.py", line 530, in action_handler_task
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource handler_data = handler(*args)
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource File "/usr/lib/python2.7/site-packages/heat/engine/resources/openstack/heat/multi_part.py", line 99, in handle_create
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource self.CONFIG: self.get_message(),
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource File "/usr/lib/python2.7/site-packages/heat/engine/resources/openstack/heat/multi_part.py", line 119, in get_message
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource self.rpc_client().ignore_error_named(ex, 'NotFound')
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource File "/usr/lib/python2.7/site-packages/heat/rpc/client.py", line 78, in ignore_error_named
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource raise error
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource ValueError: unsupported format character 'A' (0x41) at index 73
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource Traceback (most recent call last):
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 142, in _dispatch_and_reply
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource executor_callback))
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 186, in _dispatch
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource executor_callback)
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 130, in _do_dispatch
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource result = func(ctxt, **new_args)
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource File "/usr/lib/python2.7/site-packages/osprofiler/profiler.py", line 105, in wrapper
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource return f(*args, **kwargs)
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource File "/usr/lib/python2.7/site-packages/heat/common/context.py", line 300, in wrapped
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource return func(self, ctx, *args, **kwargs)
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource File "/usr/lib/python2.7/site-packages/heat/engine/service.py", line 1441, in show_software_config
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource return self.software_config.show_software_config(cnxt, config_id)
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource File "/usr/lib/python2.7/site-packages/heat/engine/service_software_config.py", line 36, in show_software_config
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource sc = software_config_object.SoftwareConfig.get_by_id(cnxt, config_id)
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource File "/usr/lib/python2.7/site-packages/heat/objects/software_config.py", line 57, in get_by_id
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource context, cls(), db_api.software_config_get(context, config_id))
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource File "/usr/lib/python2.7/site-packages/heat/db/api.py", line 272, in software_config_get
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource return IMPL.software_config_get(context, config_id)
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource File "/usr/lib/python2.7/site-packages/heat/db/sqlalchemy/api.py", line 757, in software_config_get
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource config_id)
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource File "/usr/lib/python2.7/site-packages/heat/common/exception.py", line 405, in __init__
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource super(NotFound, self).__init__()
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource File "/usr/lib/python2.7/site-packages/heat/common/exception.py", line 113, in __init__
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource self.message = self.msg_fmt % kwargs
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource File "/usr/lib/python2.7/site-packages/oslo_i18n/_message.py", line 112, in __mod__
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource unicode_mod = super(Message, self).__mod__(params)
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource
2015-07-11 09:14:29.684 21256 TRACE heat.engine.resource ValueError: unsupported format character 'A' (0x41) at index 73
at: python2. 7/site- packages/ heat/db/ sqlalchemy/ api.py line 756, 192.168. 122.36: 8000/v1/ waitcondition/ arn%3Aopenstack %3Aheat% 3A%3A536d674127 fe44cda5699c987 9979f2e% 3Astacks% 2Fkfox- test%2Fb2a71b98 -12ea-4f8f- a439-21052085bb 9b%2Fresources% 2FWaitHandleIns tance?Timestam 07-11T16% 3A45%3A28Z& SignatureMethod =HmacSHA256& AWSAccessKeyId= 6101xxxx& SignatureVersio n=2&Signature= JeydXxxxx5P0% 2BskuV4Hl9AJSIF Hyhdp33d2w% 3D",
/usr/lib/
config_id = "http://
p=2015-
and the formatter is "Software config with id %s not found"
I think config_id needs escaping here?