2015-05-08 2 views
0

В соответствии с указаниями Openstack Official Heat/Plugins wiki https://wiki.openstack.org/wiki/Heat/Plugins нам нужно только «Чтобы установить плагин, скопируйте модули Python в один из настроенных каталогов плагинов. Обратите внимание, что после этого необходимо перезапустить тепловой двигатель, чтобы загрузить новые плагины. ". Но я попал следующее сообщение об ошибке после того, как я перезапустить тепловой двигатель ..Любые другие способы установки плавного ресурса плагина?

[[email protected] heat]# heat-engine 
2015-05-04 06:02:09.774 20839 WARNING heat.common.config [-] HT-A65A0DF The "instance_user" option in heat.conf is deprecated and will be removed in the Juno release. 
[05/04/2015 06:02:10 EDT]heatCRITICAL : ImportError: No module named my_heat_plugin.client 
Traceback (most recent call last): 
    File "/usr/bin/heat-engine", line 67, in <module> 
    srv = engine.EngineService(cfg.CONF.host, rpc_api.ENGINE_TOPIC) 
    File "/usr/lib/python2.6/site-packages/heat/engine/service.py", line 288, in __init__ 
    resources.initialise() 
    File "/usr/lib/python2.6/site-packages/heat/engine/resources/__init__.py", line 44, in initialise 
    _load_global_environment(global_env) 
    File "/usr/lib/python2.6/site-packages/heat/engine/resources/__init__.py", line 49, in _load_global_environment 
    _load_global_resources(env) 
    File "/usr/lib/python2.6/site-packages/heat/engine/resources/__init__.py", line 54, in _load_global_resources 
    manager = plugin_manager.PluginManager(__name__) 
    File "/usr/lib/python2.6/site-packages/heat/engine/plugin_manager.py", line 58, in __init__ 
    self.modules = list(modules()) 
    File "/usr/lib/python2.6/site-packages/heat/common/plugin_loader.py", line 91, in load_modules 
    module = _import_module(importer, module_name, package) 
    File "/usr/lib/python2.6/site-packages/heat/common/plugin_loader.py", line 72, in _import_module 
    module = loader.load_module(module_name) 
    File "/usr/lib64/python2.6/pkgutil.py", line 238, in load_module 
    mod = imp.load_module(fullname, self.file, self.filename, self.etc) 
    File "/usr/lib/heat/abc_heat_plugin/resources/abc/abc_server.py", line 24, in <module> 
    from abc_heat_plugin.client import constants as const 
ImportError: No module named abc_heat_plugin.client 

Чтобы решить эту проблему, я понял, два способа, которые работоспособны. Метод 1. Скопируйте abc_heat_plugin в /usr/lib/python2.6/site-packages и перезапустите тепловой двигатель. Способ 2. Используйте файл .pth. 1) Создайте файл /usr/lib/python2.6/site-packages/.pth со следующими тремя линиями (нет необходимости это делать, если он существует)

/usr/lib/heat 
/usr/lib/heat/abc_heat_plugin 
/usr/lib/heat/abc_heat_plugin/client 

2) копия плагин «my_heat_plugin» в/USR/Lib/тепло

3) перезапуск службы тепловой

НО оба пути должны сделать больше, чем официальный гид, так интересно, пропустил ли я что-нибудь важное. Какие-либо предложения? Благодарю. (BTW, my_heat_plugin работает хорошо.)

ответ

0

Я думаю, что основная идея заключается в том, что вы уронили ресурс в /usr/lib/heat, но любые модули или пакеты, которые используются ресурс должны быть установлены обычным способом. Вы сделали это вручную, переместив файлы на сайт-пакеты.

Посмотрите на любой из плагинов в heat/contrib, например. Есть несколько таких зависимостей, как клиенты для других служб OpenStack, и во всех случаях делается предположение, что эти клиенты были установлены отдельно.

Итак, если вы можете, просто создайте файл setup.py для своего клиентского пакета и установите его отдельно от плагина.

Смежные вопросы