Newer
Older
"""Plugins helpers for Cloud Control node."""
from itertools import chain, imap
class Base(object):
"""Example skeleton plugin for cc-node.
If you want to create your own plugin for the `cc-node` you may create an
object that would quack just like this one or just inherit from this class.
"""
def __init__(self, *args, **kwargs):
"""
# plugins may define tags (see :mod:`ccnode.tags`)
self.tag_db = TagDB(self.main, parent_db=self.main.tag_db)
# plugins may define handler functions that would be called by the
# server
self.rpc_handler = dict()
# tag_db and rpc_handler can be implemented as properties if more logic
# is needed
def __hash__(self):
"""This method is used when registering a plugin in the main loop.
By default, only one instance is allowed. Subclasses can overide this
method to change this behaviour.
"""
return hash(self.__class__.__name__)
def start(self):
"""Used to start pyev watchers."""
def stop(self):
"""Cleanup for plugins, can be used to clean pyev watchers."""