def __init__(self): ServiceNode.__init__(self) # Instantiate implicit children. from mpx.service.interactive import InteractiveService InteractiveService().configure({ 'name': 'Interactive Service', 'parent': self, 'debug': 0, 'port': 9666, 'interface': 'localhost' }) from mpx.service.time import Time Time().configure({'name': 'time', 'parent': self}) from mpx.service.session import SessionManager SessionManager().configure({'name': 'session_manager', 'parent': self}) from mpx.service.user_manager import UserManager UserManager().configure({'name': 'User Manager', 'parent': self}) from mpx.service.subscription_manager import SUBSCRIPTION_MANAGER SUBSCRIPTION_MANAGER.configure({ 'name': 'Subscription Manager', 'parent': self }) # Guarantee that /services/garbage_collector will exist, whether or not # there is an entry in the XML file. from mpx.service.garbage_collector import GARBAGE_COLLECTOR # @todo Make ReloadableSingleton! GARBAGE_COLLECTOR.configure({ 'name': 'garbage_collector', 'parent': self })
def __register(self, name=None, file=None, dmtype=None): if name is None: assert file is None and dmtype is None, ( "If name is None, file, and dmtype must be as well." ) if not self.__deferred_register: # Already registerred. return name = self.__deferred_register['name'] file = self.__deferred_register['file'] dmtype = self.__deferred_register['dmtype'] self.__deferred_register = None else: assert file is not None, ( "If name is not None, file must not be as well." ) assert self.__deferred_register is None, ( "If name is not None, self.__deferred_register must be None." ) if is_node_url(name): try: from mpx.service.garbage_collector import GARBAGE_COLLECTOR GARBAGE_COLLECTOR.register(name, file, dmtype) except: self.__deferred_register = {"name":name, "file":file, "dmtype":dmtype} return
def __register(self, name=None, file=None, dmtype=None): if name is None: assert file is None and dmtype is None, ( "If name is None, file, and dmtype must be as well.") if not self.__deferred_register: # Already registerred. return name = self.__deferred_register['name'] file = self.__deferred_register['file'] dmtype = self.__deferred_register['dmtype'] self.__deferred_register = None else: assert file is not None, ( "If name is not None, file must not be as well.") assert self.__deferred_register is None, ( "If name is not None, self.__deferred_register must be None.") if is_node_url(name): try: from mpx.service.garbage_collector import GARBAGE_COLLECTOR GARBAGE_COLLECTOR.register(name, file, dmtype) except: self.__deferred_register = { "name": name, "file": file, "dmtype": dmtype } return
def __init__(self): ServiceNode.__init__(self) # Instantiate implicit children. from mpx.service.interactive import InteractiveService InteractiveService().configure({'name':'Interactive Service', 'parent':self,'debug':0, 'port':9666,'interface':'localhost'}) from mpx.service.time import Time Time().configure({'name':'time','parent':self}) from mpx.service.session import SessionManager SessionManager().configure({'name':'session_manager', 'parent':self}) from mpx.service.user_manager import UserManager UserManager().configure({'name':'User Manager', 'parent':self}) from mpx.service.subscription_manager import SUBSCRIPTION_MANAGER SUBSCRIPTION_MANAGER.configure({'name':'Subscription Manager', 'parent':self}) # Guarantee that /services/garbage_collector will exist, whether or not # there is an entry in the XML file. from mpx.service.garbage_collector import GARBAGE_COLLECTOR # @todo Make ReloadableSingleton! GARBAGE_COLLECTOR.configure({'name':'garbage_collector', 'parent':self})
def new_trend(target,period): if target.debug: msglog.log('Energywise:', msglog.types.INFO, 'Configuring trend points' ) if target.trend_node: if target.period == period: msglog.log('Energywise:', msglog.types.INFO, 'trend points already configured' ) return else: msglog.log('Energywise:', msglog.types.INFO, 'trend configured for different period' ) target.trend_node.destroy() target.trend_node.prune() if target.debug: msglog.log('Energywise:', msglog.types.INFO, 'Configuring trend points') manager = as_node('/services/Trend Manager/trends') # the name of top level domain will be domain name itself only if target.domain is '': name=target.name else: name = target.domain + '.' + target.name preferences ={'width':800, 'points':[{'color':16711680,'y-axis':1}, {'color':65280,'y-axis':1}, {'color':255,'y-axis':1}, {'color':16776960,'y-axis':1}, {'color':52224,'y-axis':1}, {'color':204,'y-axis':1}, {'color':13421568,'y-axis':1}, {'color':52428,'y-axis':1}, {'color':13369548,'y-axis':1}], 'title': name, 'background':{'color':2041901}, 'y-axes':[{'to':'auto','map':{},'enable':1, 'type':'numeric','from':'auto'}, {'to':'auto','map':{},'enable':0, 'type':'binary','from':'auto'}], 'text':{'color':13686232,'fontname':'Verdona', 'fontsize':12}, 'timespan':{'value':'1','unit':'hours'}, 'height':600} config = {'name':name, 'parent':manager, 'description':"Trend logs for mib points", 'period':period, 'points':[{'name':'value','node':target.as_node_url()}], 'preferences':preferences, 'externally_managed': True } trend = Trend() trend.configure(config) trend.start() target.trend_node = manager.get_child(name) target.period = period if target.debug: msglog.log('Energywise:', msglog.types.INFO, 'period configured %s' %str(period) ) targetnode = as_node_url(target) target_filename = '/var/mpx/log/'+name+'.log.1' try: GARBAGE_COLLECTOR.register(targetnode, target_filename) #by default GC_ONDELETE except: msglog.log("EnergywiseManager",msglog.log.INFO, "%r's logfile not registered with garbage_collector" %name) msglog.exception() return
def get_node_pdos(self, node_url): registered_pdos = GC.registered_pdo_tuple() if self.__registered_pdos is not registered_pdos: self.__rebuild_pdo_map(registered_pdos) return self.__pdo_map.get(node_url,())