+1

I too think we can make the artifact handler plug-gable, aside from the
health stat collector. The common operations can be easily derived from the
existing Git based artifact handler code.


Regards,
Chamila de Alwis
Software Engineer | WSO2 | +94772207163
Blog: code.chamiladealwis.com



On Thu, Nov 27, 2014 at 2:51 PM, Gayan Gunarathne <[email protected]> wrote:

> IMO if we are move with the plugin framework , we can use our agent
>  components (eg health checker, source control handler) as plugins. We
> can ship the default cartridge agent with our default plugin set.If the
> end user needs they can use their own plugin with their requirement.
>
> AFAIR we may need to define
> 1. Common specification for plugins
> 2. Plugin manager (I guess we can use the plugin manager provided from the
> framework as it is or customize version of plugin manager)
>
> WDYT?
>
> Thanks,
> Gayan
>
>
> On Thu, Nov 27, 2014 at 2:14 PM, Lakmal Warusawithana <[email protected]>
> wrote:
>
>> +1 for adding plugging framework and extension mechanism to the cartridge
>> agent. With my little finding, I think Yapsy may good for our requirement.
>>
>> Also, can we make health checker also pluggable? Please see Shaheed
>> comments in [1]
>>
>> [1]Hangout (01) to discuss the Python Agent
>>
>> On Thu, Nov 27, 2014 at 1:38 PM, Akila Ravihansa Perera <
>> [email protected]> wrote:
>>
>>> Hi,
>>>
>>> As you may know, Stratos 4.1.0 Alpha release will be shipped with a
>>> Python based cartridge agent. AFAIU, there were two main reasons to move to
>>> a Python based agent.
>>>
>>> 1. Make it light weight to minimize the memory/CPU footprint. This was
>>> important especially in the Docker scenario.
>>>
>>> 2. Allow Dev-Ops to extend the cartridge agent without having to modify
>>> the core code. In most cases, cartridge agent has to be customized to suite
>>> the requirements of the cartridge application. All dynamic configuration
>>> changes and stats publishing are done by this agent. It is therefore
>>> critical to make the agent flexible enough so that users developing
>>> cartridges are able to manage and monitor the run time environment of the
>>> cartridge application, as they wish.
>>> At the same time, the design has to be simple enough to make sure that
>>> we're not adding more complexity. A dev-ops should be able to easily
>>> understand the flow and extend it to cater the cartridge application run
>>> time requirements.
>>>
>>> For this purpose I'd like to propose that we integrate a Python plugin
>>> framework to make the cartridge agent easily extendable. Main requirements
>>> are;
>>>
>>> 1. The plugin framework of choosing must be very easy to use
>>> 2. Have minimal or no external dependencies to make it lightweight
>>> 3. Should be able to dynamically load plugins without manual
>>> configurations
>>> 4. Version control of plugins and be able to control the loading order
>>>
>>> I've done evaluation of following existing Python plugin frameworks;
>>> Plug n' PLay (PnP) [1]
>>> Trac [2]
>>> Yapsy [3]
>>> Zope [4]
>>>
>>> As per my findings, I've concluded that Yapsy would be the best fit for
>>> our requirements. PnP framework is very simple but lacks some of the
>>> features like version control, control the loading behavior.
>>>
>>> Here is a very good tutorial [5] for understanding the Yasy framework.
>>> I'd like to work on an initial model for this integration. But before that
>>> wanted to get your ideas regarding this feature.
>>>
>>> [1] https://github.com/daltonmatos/plugnplay
>>> [2] http://trac.edgewall.org/wiki/TracDev/ComponentArchitecture
>>> [3] http://yapsy.sourceforge.net/
>>> [4] http://docs.zope.org/zope.interface/
>>> [5] http://www.micahcarrick.com/python-gtk-plugins-with-yapsy.html
>>>
>>> Thanks.
>>>
>>> --
>>> Akila Ravihansa Perera
>>> Software Engineer, WSO2
>>>
>>> Blog: http://ravihansa3000.blogspot.com
>>>
>>
>>
>>
>> --
>> Lakmal Warusawithana
>> Vice President, Apache Stratos
>> Director - Cloud Architecture; WSO2 Inc.
>> Mobile : +94714289692
>> Blog : http://lakmalsview.blogspot.com/
>>
>>
>
>
> --
>
> Gayan Gunarathne
> Technical Lead
> WSO2 Inc. (http://wso2.com)
> email  : [email protected]  | mobile : +94 766819985
>
>

Reply via email to