Package ZenHub :: Module HubService
[hide private]
[frames] | no frames]

Source Code for Module ZenHub.HubService

 1  ########################################################################### 
 2  # 
 3  # This program is part of Zenoss Core, an open source monitoring platform. 
 4  # Copyright (C) 2007, Zenoss Inc. 
 5  # 
 6  # This program is free software; you can redistribute it and/or modify it 
 7  # under the terms of the GNU General Public License version 2 as published by 
 8  # the Free Software Foundation. 
 9  # 
10  # For complete information please visit: http://www.zenoss.com/oss/ 
11  # 
12  ########################################################################### 
13  from twisted.spread import pb 
14   
15  import logging 
16  import time 
17   
18 -class HubService(pb.Referenceable):
19
20 - def __init__(self, dmd, instance):
21 self.log = logging.getLogger('zen.hub') 22 self.dmd = dmd 23 self.zem = dmd.ZenEventManager 24 self.instance = instance 25 self.listeners = [] 26 self.callTime = 0. 27 self.methodPriorityMap = {}
28
29 - def getPerformanceMonitor(self):
30 return self.dmd.Monitors.getPerformanceMonitor(self.instance)
31
32 - def remoteMessageReceived(self, broker, message, args, kw):
33 self.log.debug("Servicing %s in %s", message, self.name()) 34 now = time.time() 35 try: 36 return pb.Referenceable.remoteMessageReceived(self, broker, message, args, kw) 37 finally: 38 secs = time.time() - now 39 self.log.debug("Time in %s: %.2f", message, secs) 40 self.callTime += secs
41
42 - def update(self, object):
43 pass
44
45 - def deleted(self, object):
46 pass
47
48 - def name(self):
49 return self.__class__.__name__
50
51 - def addListener(self, remote):
52 remote.notifyOnDisconnect(self.removeListener) 53 self.log.debug("adding listener for %s:%s", self.instance, self.name()) 54 self.listeners.append(remote)
55
56 - def removeListener(self, listener):
57 self.log.debug("removing listener for %s:%s", self.instance, self.name()) 58 try: 59 self.listeners.remove(listener) 60 except ValueError: 61 self.warning("Unable to remove listener... ignoring")
62
63 - def getMethodPriority(self, methodName):
64 if self.methodPriorityMap.has_key(methodName): 65 return self.methodPriorityMap[methodName] 66 return 0.4
67