This bug is only apparent in liberty now, but it likely exists for mitaka as well. The init for the resource of connecting to a bigip device now fails due to some change in the order the initialization is invoked. It produces the following error in the heat-engine.log:
2016-06-13 11:05:16.585 47627 ERROR oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/f5_heat/resources/f5_bigip_device.py", line 70, in __init__ 2016-06-13 11:05:16.585 47627 ERROR oslo_messaging.rpc.dispatcher raise Exception('Failed to initialize BigIP object') 2016-06-13 11:05:16.585 47627 ERROR oslo_messaging.rpc.dispatcher Exception: Failed to initialize BigIP object 2016-06-13 11:05:16.585 47627 ERROR oslo_messaging.rpc.dispatcher 2016-06-13 11:05:16.588 47627 INFO oslo.messaging._drivers.impl_rabbit [req-5e42bfd2-a18f-4b42-93db-61b27d7421a8 b0155f21425e4611bb3a550d86f61730 33314ade911a47ecad5238aa48f32f32] Connecting to AMQP server on 10.190.4.147:5672 2016-06-13 11:05:16.598 47627 INFO oslo.messaging._drivers.impl_rabbit [req-5e42bfd2-a18f-4b42-93db-61b27d7421a8 b0155f21425e4611bb3a550d86f61730 33314ade911a47ecad5238aa48f32f32] Connected to AMQP server on 10.190.4.147:5672 2016-06-13 11:05:16.598 47627 ERROR oslo_messaging._drivers.common [req-5e42bfd2-a18f-4b42-93db-61b27d7421a8 b0155f21425e4611bb3a550d86f61730 33314ade911a47ecad5238aa48f32f32] Returning exception Failed to initialize BigIP object to caller 2016-06-13 11:05:16.599 47627 ERROR oslo_messaging._drivers.common [req-5e42bfd2-a18f-4b42-93db-61b27d7421a8 b0155f21425e4611bb3a550d86f61730 33314ade911a47ecad5238aa48f32f32] ['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 129, 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 305, in wrapped\n return func(self, ctx, *args, **kwargs)\n', ' File "/usr/lib/python2.7/site-packages/heat/engine/service.py", line 986, in validate_template\n stack.validate()\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/engine/stack.py", line 637, in validate\n set(six.iterkeys(self)))\n', ' File "/usr/lib/python2.7/site-packages/six.py", line 570, in iterkeys\n return iter(d.iterkeys(**kw))\n', ' File "/usr/lib64/python2.7/_abcoll.py", line 377, in iterkeys\n return iter(self)\n', ' File "/usr/lib/python2.7/site-packages/heat/engine/stack.py", line 529, in __iter__\n return iter(self.resources)\n', ' File "/usr/lib/python2.7/site-packages/heat/engine/stack.py", line 242, in resources\n self.t.resource_definitions(self).items())\n', ' File "/usr/lib/python2.7/site-packages/heat/engine/stack.py", line 241, in <genexpr>\n for (name, data) in\n', ' File "/usr/lib/python2.7/site-packages/f5_heat/resources/f5_bigip_device.py", line 70, in __init__\n raise Exception(\'Failed to initialize BigIP object\')\n', 'Exception: Failed to initialize BigIP object\n']
It can be fixed by initializing the MangementRoot in the handle_create function instead, when the stack is actually being created. By all appearances, the resource is initialized when the stack is loaded and not when it is launched, so this is only an issue when launching a stack through Horizon, but it is significant.
This bug is only apparent in liberty now, but it likely exists for mitaka as well. The init for the resource of connecting to a bigip device now fails due to some change in the order the initialization is invoked. It produces the following error in the heat-engine.log:
2016-06-13 11:05:16.585 47627 ERROR oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/f5_heat/resources/f5_bigip_device.py", line 70, in __init__ 2016-06-13 11:05:16.585 47627 ERROR oslo_messaging.rpc.dispatcher raise Exception('Failed to initialize BigIP object') 2016-06-13 11:05:16.585 47627 ERROR oslo_messaging.rpc.dispatcher Exception: Failed to initialize BigIP object 2016-06-13 11:05:16.585 47627 ERROR oslo_messaging.rpc.dispatcher 2016-06-13 11:05:16.588 47627 INFO oslo.messaging._drivers.impl_rabbit [req-5e42bfd2-a18f-4b42-93db-61b27d7421a8 b0155f21425e4611bb3a550d86f61730 33314ade911a47ecad5238aa48f32f32] Connecting to AMQP server on 10.190.4.147:5672 2016-06-13 11:05:16.598 47627 INFO oslo.messaging._drivers.impl_rabbit [req-5e42bfd2-a18f-4b42-93db-61b27d7421a8 b0155f21425e4611bb3a550d86f61730 33314ade911a47ecad5238aa48f32f32] Connected to AMQP server on 10.190.4.147:5672 2016-06-13 11:05:16.598 47627 ERROR oslo_messaging._drivers.common [req-5e42bfd2-a18f-4b42-93db-61b27d7421a8 b0155f21425e4611bb3a550d86f61730 33314ade911a47ecad5238aa48f32f32] Returning exception Failed to initialize BigIP object to caller 2016-06-13 11:05:16.599 47627 ERROR oslo_messaging._drivers.common [req-5e42bfd2-a18f-4b42-93db-61b27d7421a8 b0155f21425e4611bb3a550d86f61730 33314ade911a47ecad5238aa48f32f32] ['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 129, 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 305, in wrapped\n return func(self, ctx, *args, **kwargs)\n', ' File "/usr/lib/python2.7/site-packages/heat/engine/service.py", line 986, in validate_template\n stack.validate()\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/engine/stack.py", line 637, in validate\n set(six.iterkeys(self)))\n', ' File "/usr/lib/python2.7/site-packages/six.py", line 570, in iterkeys\n return iter(d.iterkeys(**kw))\n', ' File "/usr/lib64/python2.7/_abcoll.py", line 377, in iterkeys\n return iter(self)\n', ' File "/usr/lib/python2.7/site-packages/heat/engine/stack.py", line 529, in __iter__\n return iter(self.resources)\n', ' File "/usr/lib/python2.7/site-packages/heat/engine/stack.py", line 242, in resources\n self.t.resource_definitions(self).items())\n', ' File "/usr/lib/python2.7/site-packages/heat/engine/stack.py", line 241, in <genexpr>\n for (name, data) in\n', ' File "/usr/lib/python2.7/site-packages/f5_heat/resources/f5_bigip_device.py", line 70, in __init__\n raise Exception(\'Failed to initialize BigIP object\')\n', 'Exception: Failed to initialize BigIP object\n']
It can be fixed by initializing the MangementRoot in the handle_create function instead, when the stack is actually being created. By all appearances, the resource is initialized when the stack is loaded and not when it is launched, so this is only an issue when launching a stack through Horizon, but it is significant.