1
2 import Ganga.Utility.logging
3 log = Ganga.Utility.logging.getLogger()
4
5
7 - def __init__( self, monitoringService, serviceName = 'Main' ):
8 self.__MC = {}
9 self.subscribe( serviceName, monitoringService )
10
11 - def subscribe( self, serviceName, monitoringService ):
12 if self.isSubscribed( serviceName ):
13 log.debug( "The %s service already exists. Please unsubscribe first." % serviceName )
14 return False
15 else:
16 log.debug( "Subscribing to the %s service." % serviceName )
17 try:
18 self.__MC[ serviceName ] = monitoringService
19 except Exception, msg:
20 log.debug( msg )
21 return False
22 return True
23
25 if self.isSubscribed( serviceName ):
26 del self.__MC[ serviceName ]
27 return True
28 return False
29
31 _s = serviceName in self.__MC
32 if not _s:
33 log.debug( "Service %s does not exist." % serviceName )
34 return _s
35
37 for service in self.__MC.keys():
38 self.__MC[ service ].stop()
39
40 - def stop( self, serviceName = 'Main' ):
41 """Stops the disconnects from server and stops monitoring mechanism is required."""
42 if self.isSubscribed( serviceName ):
43 self.__MC[ serviceName ].stop()
44
45 - def pause( self, enableMonitoring = False, serviceName = 'Main' ):
51
52 - def update( self, serviceName = 'Main' ):
54
56 for service in self.__MC:
57 self.update( serviceName = service )
58
60 return self.__MC[ serviceName ].registry
61
63 return self.__MC[ serviceName ].updateJobStatus
64
67
68
69
73
75 if self.isSubscribed( serviceName ):
76 try:
77 self.__MC[ serviceName ].removeClientCallback( func )
78 except Exception, msg:
79 log.debug( "unbindClientFunction() failed on %s: %s." % ( serviceName, msg ) )
80
81
82
83 - def bindMLFunction( self, hookFunc, argDict, enabled = True, serviceName = 'Main' ):
86
88 if self.isSubscribed( serviceName ):
89 try:
90 self.__MC[ serviceName ].removeCallbackHook( hookFunc )
91 except Exception, msg:
92 log.debug( "unbindClientFunction() failed on %s: %s." % ( serviceName, msg ) )
93
94
95
96 - def addFilter( self, mcFilterName, mcFilter, serviceName = 'Main' ):
99
100 - def removeFilter( self, mcFilterName, serviceName = 'Main' ):
103
104 - def enableFilter( self, mcFilterName, enabled, serviceName = 'Main' ):
107
108
109
110
111
112
114 if self.isSubscribed( serviceName ):
115 return getattr( self.__MC[ serviceName ], attributeName )
116