def handle(config): try: flagcheck=True logger.info("calling jmx for metrics") #check for jmx hosts file #TODO add code for handling metrics from multiple JMX hosts # #JAVA(libjvm='./lib/jmx/libjvm.so') #JAVA() jpype.attachThreadToJVM() jmx=JMX(host='96.119.153.107',port=9999) DS=DataStore() for condition in config.get('if').get('jmx'): baseline=DS.getbaseline(condition) current=jmx.get_attr(condition.get('object'),condition.get('type'),condition.get('attribute')) logger.debug(current) logger.debug(str(current) + condition.get('operator') + repr(baseline)) out=eval(str(current) + condition.get('operator') + repr(baseline)) if not bool(out): flagcheck=False break DS.setbaseline(current.floatValue(),baseline,condition) del jmx return flagcheck except Exception,e: print "in exception" print e logger.error(e) return False