Hello everyone,
My problem is that python-watcherclient can't load it's own entry points and some of the custom ones (like strategy entry points created as described [here](https://github.com/openstack/watcher/blob/master/doc/source/dev/plugin/strategy-plugin.rst)).
OS: Centos 7 x64
Installed watcher version:
python-watcher (0.31.0)
python-watcherclient (1.0.0)
Part of `watcher help` result showing problems with own entry points:
```
See "watcher help COMMAND" for help on a specific command.
Commands:
Could not load EntryPoint.parse('action_list = watcherclient.v1.action_shell:ListAction')
Could not load EntryPoint.parse('action_show = watcherclient.v1.action_shell:ShowAction')
Could not load EntryPoint.parse('actionplan_create = watcherclient.v1.action_plan_shell:CreateActionPlan')
Could not load EntryPoint.parse('actionplan_delete = watcherclient.v1.action_plan_shell:DeleteActionPlan')
Could not load EntryPoint.parse('actionplan_list = watcherclient.v1.action_plan_shell:ListActionPlan')
Could not load EntryPoint.parse('actionplan_show = watcherclient.v1.action_plan_shell:ShowActionPlan')
Could not load EntryPoint.parse('actionplan_start = watcherclient.v1.action_plan_shell:StartActionPlan')
Could not load EntryPoint.parse('actionplan_update = watcherclient.v1.action_plan_shell:UpdateActionPlan')
Could not load EntryPoint.parse('audit_create = watcherclient.v1.audit_shell:CreateAudit')
Could not load EntryPoint.parse('audit_delete = watcherclient.v1.audit_shell:DeleteAudit')
Could not load EntryPoint.parse('audit_list = watcherclient.v1.audit_shell:ListAudit')
Could not load EntryPoint.parse('audit_show = watcherclient.v1.audit_shell:ShowAudit')
Could not load EntryPoint.parse('audit_update = watcherclient.v1.audit_shell:UpdateAudit')
Could not load EntryPoint.parse('audittemplate_create = watcherclient.v1.audit_template_shell:CreateAuditTemplate')
Could not load EntryPoint.parse('audittemplate_delete = watcherclient.v1.audit_template_shell:DeleteAuditTemplate')
Could not load EntryPoint.parse('audittemplate_list = watcherclient.v1.audit_template_shell:ListAuditTemplate')
Could not load EntryPoint.parse('audittemplate_show = watcherclient.v1.audit_template_shell:ShowAuditTemplate')
Could not load EntryPoint.parse('audittemplate_update = watcherclient.v1.audit_template_shell:UpdateAuditTemplate')
complete print bash completion command
Could not load EntryPoint.parse('goal_list = watcherclient.v1.goal_shell:ListGoal')
Could not load EntryPoint.parse('goal_show = watcherclient.v1.goal_shell:ShowGoal')
help print detailed help for another command
Could not load EntryPoint.parse('scoringengine_list = watcherclient.v1.scoring_engine_shell:ListScoringEngine')
Could not load EntryPoint.parse('scoringengine_show = watcherclient.v1.scoring_engine_shell:ShowScoringEngine')
Could not load EntryPoint.parse('service_list = watcherclient.v1.service_shell:ListService')
Could not load EntryPoint.parse('service_show = watcherclient.v1.service_shell:ShowService')
Could not load EntryPoint.parse('strategy_list = watcherclient.v1.strategy_shell:ListStrategy')
Could not load EntryPoint.parse('strategy_show = watcherclient.v1.strategy_shell:ShowStrategy')
```
While the entry points actually exist (output provided by entrypoints module and pprint):
```
{ 'action_list': EntryPoint('action_list', u'watcherclient.v1.action_shell', u'ListAction', Distribution('python_watcherclient', '1.0.0')),
'action_show': EntryPoint('action_show', u'watcherclient.v1.action_shell', u'ShowAction', Distribution('python_watcherclient', '1.0.0')),
'actionplan_create': EntryPoint('actionplan_create', u'watcherclient.v1.action_plan_shell', u'CreateActionPlan', Distribution('python_watcherclient', '1.0.0')),
'actionplan_delete': EntryPoint('actionplan_delete', u'watcherclient.v1.action_plan_shell', u'DeleteActionPlan', Distribution('python_watcherclient', '1.0.0')),
'actionplan_list': EntryPoint('actionplan_list', u'watcherclient.v1.action_plan_shell', u'ListActionPlan', Distribution('python_watcherclient', '1.0.0')),
'actionplan_show': EntryPoint('actionplan_show', u'watcherclient.v1.action_plan_shell', u'ShowActionPlan', Distribution('python_watcherclient', '1.0.0')),
'actionplan_start': EntryPoint('actionplan_start', u'watcherclient.v1.action_plan_shell', u'StartActionPlan', Distribution('python_watcherclient', '1.0.0')),
'actionplan_update': EntryPoint('actionplan_update', u'watcherclient.v1.action_plan_shell', u'UpdateActionPlan', Distribution('python_watcherclient', '1.0.0')),
'audit_create': EntryPoint('audit_create', u'watcherclient.v1.audit_shell', u'CreateAudit', Distribution('python_watcherclient', '1.0.0')),
'audit_delete': EntryPoint('audit_delete', u'watcherclient.v1.audit_shell', u'DeleteAudit', Distribution('python_watcherclient', '1.0.0')),
'audit_list': EntryPoint('audit_list', u'watcherclient.v1.audit_shell', u'ListAudit', Distribution('python_watcherclient', '1.0.0')),
'audit_show': EntryPoint('audit_show', u'watcherclient.v1.audit_shell', u'ShowAudit', Distribution('python_watcherclient', '1.0.0')),
'audit_update': EntryPoint('audit_update', u'watcherclient.v1.audit_shell', u'UpdateAudit', Distribution('python_watcherclient', '1.0.0')),
'audittemplate_create': EntryPoint('audittemplate_create', u'watcherclient.v1.audit_template_shell', u'CreateAuditTemplate', Distribution('python_watcherclient', '1.0.0')),
'audittemplate_delete': EntryPoint('audittemplate_delete', u'watcherclient.v1.audit_template_shell', u'DeleteAuditTemplate', Distribution('python_watcherclient', '1.0.0')),
'audittemplate_list': EntryPoint('audittemplate_list', u'watcherclient.v1.audit_template_shell', u'ListAuditTemplate', Distribution('python_watcherclient', '1.0.0')),
'audittemplate_show': EntryPoint('audittemplate_show', u'watcherclient.v1.audit_template_shell', u'ShowAuditTemplate', Distribution('python_watcherclient', '1.0.0')),
'audittemplate_update': EntryPoint('audittemplate_update', u'watcherclient.v1.audit_template_shell', u'UpdateAuditTemplate', Distribution('python_watcherclient', '1.0.0')),
'goal_list': EntryPoint('goal_list', u'watcherclient.v1.goal_shell', u'ListGoal', Distribution('python_watcherclient', '1.0.0')),
'goal_show': EntryPoint('goal_show', u'watcherclient.v1.goal_shell', u'ShowGoal', Distribution('python_watcherclient', '1.0.0')),
'scoringengine_list': EntryPoint('scoringengine_list', u'watcherclient.v1.scoring_engine_shell', u'ListScoringEngine', Distribution('python_watcherclient', '1.0.0')),
'scoringengine_show': EntryPoint('scoringengine_show', u'watcherclient.v1.scoring_engine_shell', u'ShowScoringEngine', Distribution('python_watcherclient', '1.0.0')),
'service_list': EntryPoint('service_list', u'watcherclient.v1.service_shell', u'ListService', Distribution('python_watcherclient', '1.0.0')),
'service_show': EntryPoint('service_show', u'watcherclient.v1.service_shell', u'ShowService', Distribution('python_watcherclient', '1.0.0')),
'strategy_list': EntryPoint('strategy_list', u'watcherclient.v1.strategy_shell', u'ListStrategy', Distribution('python_watcherclient', '1.0.0')),
'strategy_show': EntryPoint('strategy_show', u'watcherclient.v1.strategy_shell', u'ShowStrategy', Distribution('python_watcherclient', '1.0.0'))}
```
Is it a problem with configuration in watcher.conf or is it some sort of bug?
Thanks!