[Kimchi-devel] [PATCH v2] [WoK 00/10] '/config/plugins' API implementation

Daniel Henrique Barboza danielhb at linux.vnet.ibm.com
Wed Jan 25 19:08:57 UTC 2017



On 01/25/2017 03:37 PM, Aline Manera wrote:
> Hi Daniel,
>
> In overall, the patch set looks good but that will not be enough to 
> close the feature request.
>
> You still need to add support to plugin dependencies. Kimchi and 
> Ginger depends on Ginger Base and when enable/disabling one, the other 
> should be enable/disable as well.
> We have already talked about a solution to do that and IMO it is 
> simple to be implemented. Any special reason to do not do that right now?

I am not sure if it's simple to be implemented but I'll look into it 
and, if feasible,
add it in v3.

>
> Also, you should investigate how to enable/disable a plugin on 
> cherrypy configuration on the fly, without the need to restart Wok 
> server.
> Cherrypy handles the API configuration in the form of a dict, maybe 
> only removing the plugin entry is enough. Have you checked it? Any 
> other solution/suggestion?

I haven't found a way for cherrypy to reload  a configuration on the fly
without issuing server reload. As far as I've investigated it is not 
possible to
retrieve the loaded modules after issuing cherrypy.tree.mount().

Any help is appreciated.


>
> Regards,
> Aline Manera
>
> On 01/20/2017 03:32 PM, dhbarboza82 at gmail.com wrote:
>> From: Daniel Henrique Barboza <danielhb at linux.vnet.ibm.com>
>>
>> v2:
>> - added User Log capabilities on /config/plugins/enable|disable actions
>> - added 'enable=' as a valid entry in the parsing of the conf file
>>
>> This patch set implements the '/config/plugins' API. The idea
>> of this API is to replace the current '/plugins' API while
>> adding a new attribute called 'enabled' in its return value,
>> representing the current state of the plug-in. It will also
>> return all the plug-ins, regardless of whether it is loaded
>> or not.
>>
>> New actions /config/plugin/*name*/enable and
>> /config/plugin/*name*/disable were implemented to enable/disable
>> the plug-in *name* by editing the plug-in .conf file.
>>
>>
>> This is the API in action:
>>
>> [danielhb at arthas wok_all_plugins]$  curl -k -u danielhb -H 
>> "Content-Type: application/json" -H "Accept: application/json" -X 
>> GET  'https://localhost:8001/config/plugins'Enter host password for 
>> user 'danielhb':
>> [
>>    {
>>      "enabled":true,
>>      "name":"gingerbase"
>>    },
>>    {
>>      "enabled":true,
>>      "name":"kimchi"
>>    },
>>    {
>>      "enabled":true,
>>      "name":"ginger"
>>    }
>> ][danielhb at arthas wok_all_plugins]$
>>
>>
>> [danielhb at arthas wok_all_plugins]$  curl -k -u danielhb -H 
>> "Content-Type: application/json" -H "Accept: application/json" -X 
>> POST  'https://localhost:8001/config/plugins/ginger/disable' -d'{}'
>> Enter host password for user 'danielhb':
>> {
>>    "enabled":false,
>>    "name":"ginger"
>> }[danielhb at arthas wok_all_plugins]$
>>
>>
>> [danielhb at arthas wok_all_plugins]$  curl -k -u danielhb -H 
>> "Content-Type: applicationjson" -H "Accept: application/json" -X 
>> POST  'https://localhost:8001/config/plugins/ginger/enable' -d'{}'
>> Enter host password for user 'danielhb':
>> {
>>    "enabled":true,
>>    "name":"ginger"
>> }[danielhb at arthas wok_all_plugins]$
>>
>>
>>
>> MIME-Version: 1.0
>> Content-Type: text/plain; charset=UTF-8
>> Content-Transfer-Encoding: 8bit
>>
>>
>>
>> Daniel Henrique Barboza (10):
>>    /config/plugins API: docs changes
>>    /config/plugins API: utils changes
>>    /config/plugins: changes in config model
>>    /config/plugins API: model changes
>>    /config/plugins API: test changes
>>    Removing old /plugins API
>>    /config/plugins: changing existing UI calls
>>    /config/plugins: exclude 'sample' plug-in when not in test_mode
>>    Removing configobj, use file operations to edit conf files
>>    /config/plugins API: user log and parser improvements
>>
>>   docs/API/config.md         | 31 ++++++++++++++++++++
>>   docs/API/plugins.md        | 13 ---------
>>   src/wok/control/config.py  | 33 +++++++++++++++++++--
>>   src/wok/control/plugins.py | 29 -------------------
>>   src/wok/i18n.py            |  4 +++
>>   src/wok/model/plugins.py   | 32 +++++++++++++++------
>>   src/wok/server.py          |  7 ++++-
>>   src/wok/utils.py           | 65 
>> ++++++++++++++++++++++++++++++++++++-----
>>   tests/test_api.py          | 47 +++++++++++++++++++++++++++++-
>>   tests/test_utils.py        | 72 
>> +++++++++++++++++++++++++++++++++++++++++++++-
>>   ui/js/src/wok.api.js       |  4 +--
>>   ui/js/src/wok.logos.js     | 11 ++++---
>>   ui/js/src/wok.main.js      | 12 +++++---
>>   13 files changed, 288 insertions(+), 72 deletions(-)
>>   delete mode 100644 docs/API/plugins.md
>>   delete mode 100644 src/wok/control/plugins.py
>>
>
> _______________________________________________
> Kimchi-devel mailing list
> Kimchi-devel at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/kimchi-devel
>



More information about the Kimchi-devel mailing list