Missing clients aren't handled gracefully
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Heat |
New
|
Undecided
|
Unassigned |
Bug Description
If you're missing a client you get a bunch of errors like this on heat-engine start:
2016-07-04 10:27:52.022 ERROR stevedore.extension [-] Could not load 'senlin.
2016-07-04 10:27:52.022 ERROR stevedore.extension [-] No module named senlinclient
2016-07-04 10:27:52.022 TRACE stevedore.extension Traceback (most recent call last):
2016-07-04 10:27:52.022 TRACE stevedore.extension File "/usr/lib/
2016-07-04 10:27:52.022 TRACE stevedore.extension verify_
2016-07-04 10:27:52.022 TRACE stevedore.extension File "/usr/lib/
2016-07-04 10:27:52.022 TRACE stevedore.extension plugin = ep.resolve()
2016-07-04 10:27:52.022 TRACE stevedore.extension File "/usr/lib/
2016-07-04 10:27:52.022 TRACE stevedore.extension module = __import_
2016-07-04 10:27:52.022 TRACE stevedore.extension File "/opt/stack/
2016-07-04 10:27:52.022 TRACE stevedore.extension from senlinclient import client
2016-07-04 10:27:52.022 TRACE stevedore.extension ImportError: No module named senlinclient
2016-07-04 10:27:52.022 TRACE stevedore.extension
This is expected, but it's confusing to those unfamiliar with heat when debugging, because it looks like a bad error, vs effectively a warning specific to some subset of plugins. Heat actually starts and runs fine (except for templates that use these clients via related resources).
We also go ahead and load plugins which can never work, despite the above error:
2016-07-04 10:27:52.201 INFO heat.engine.
It would be better if we could handle this gracefully, e.g
- Output a warning if an expected client is missing
- Do not register a plugin if we lack the related client (again with a warning)