+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 > >
