+1 for the idea! There is a good discussion on this topic in StackOverflow:
http://stackoverflow.com/questions/932069/building-a-minimal-plugin-architecture-in-python

On Thu, Nov 27, 2014 at 3:19 PM, Chamila De Alwis <chami...@wso2.com> wrote:

> +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 <gay...@wso2.com> 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 <lak...@wso2.com>
>> 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 <
>>> raviha...@wso2.com> 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  : gay...@wso2.com  | mobile : +94 766819985
>>
>>
>
>


-- 
Imesh Gunaratne

Technical Lead, WSO2
Committer & PMC Member, Apache Stratos

Reply via email to