Beispiel #1
0
 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
     })
Beispiel #2
0
 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
Beispiel #3
0
 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
Beispiel #4
0
 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})
Beispiel #5
0
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
Beispiel #6
0
 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,())
Beispiel #7
0
 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,())