in management/python/lib/qmf/console.py [0:0]
def __call__(self, **kwargs):
"""
This is the handler for unsolicited stuff received from the agent
"""
if 'qmf_object' in kwargs:
if self.session.console:
obj = kwargs['qmf_object']
if self.session.class_filter and obj.getClassKey():
# slow path: check classKey against event_filter
pname = obj.getClassKey().getPackageName()
cname = obj.getClassKey().getClassName()
if ((pname, cname) not in self.session.class_filter
and (pname, None) not in self.session.class_filter):
return
if obj.getProperties():
self.session.console.objectProps(self.broker, obj)
if obj.getStatistics():
# QMFv2 objects may also contain statistic updates
self.session.console.objectStats(self.broker, obj)
elif 'qmf_object_stats' in kwargs:
if self.session.console:
obj = kwargs['qmf_object_stats']
if len(self.session.class_filter) == 0:
self.session.console.objectStats(self.broker, obj)
elif obj.getClassKey():
# slow path: check classKey against event_filter
pname = obj.getClassKey().getPackageName()
cname = obj.getClassKey().getClassName()
if ((pname, cname) in self.session.class_filter
or (pname, None) in self.session.class_filter):
self.session.console.objectStats(self.broker, obj)
elif 'qmf_event' in kwargs:
if self.session.console:
event = kwargs['qmf_event']
if len(self.session.event_filter) == 0:
self.session.console.event(self.broker, event)
elif event.classKey:
# slow path: check classKey against event_filter
pname = event.classKey.getPackageName()
ename = event.classKey.getClassName()
if ((pname, ename) in self.session.event_filter
or (pname, None) in self.session.event_filter):
self.session.console.event(self.broker, event)
elif 'qmf_schema_id' in kwargs:
ckey = kwargs['qmf_schema_id']
new_pkg, new_cls = self.session.schemaCache.declareClass(ckey)
if self.session.console:
if new_pkg:
self.session._newPackageCallback(ckey.getPackageName())
if new_cls:
# translate V2's string based type value to legacy
# integer value for backward compatibility
cls_type = ckey.getType()
if str(cls_type) == ckey.TYPE_DATA:
cls_type = 1
elif str(cls_type) == ckey.TYPE_EVENT:
cls_type = 2
self.session._newClassCallback(cls_type, ckey)