def eventInp_inward_relaying_shutdown(self, eventMsg=None): """ forward the event to all objects in this container through the signal filter """ print "Site.eventInp_inward_relaying_shutdown()" for name, obj in self.items(): if ISite.providedBy(obj): targetFunctionName = "inward_relaying_shutdown" elif IIpNet.providedBy(obj): targetFunctionName = "inward_relaying_shutdown" else: targetFunctionName = None if eventMsg is not None: inst_event = MsgEvent(senderObj = self, oidEventObject = eventMsg.oidEventObject, logText = u"inward relaying by site '%s'"\ % self.ikName, targetFunctionName = targetFunctionName) eventMsg.stopit(self, u"relaying by site '%s'" % self.ikName) else: inst_event = MsgEvent(senderObj = self, logText = u"inward relaying by site '%s'"\ % self.ikName, targetFunctionName = targetFunctionName) obj.injectInpEQueue(inst_event)
def eventInp_inward_relaying_shutdown(self, eventMsg=None): """ forward the event to all objects in this container through the signal filter """ print "Net.eventInp_inward_relaying_shutdown()" for name, obj in self.items(): # first call if INet.providedBy(obj): targetFunctionName = "inward_relaying_shutdown" logText = u"inward relaying to net '%s'" % obj.ikName elif IHostVMwareEsx.providedBy(obj): targetFunctionName = "inward_relaying_shutdown" logText = u"inward relaying to esx host '%s'" % obj.ikName elif IHostVMwareVm.providedBy(obj): targetFunctionName = None else: targetFunctionName = "shutdown" logText = u"send shutdown to '%s'" % obj.ikName if targetFunctionName is not None: if eventMsg is not None: inst_event = MsgEvent( senderObj=self, oidEventObject=eventMsg.oidEventObject, logText=logText, targetFunctionName=targetFunctionName) eventMsg.stopit(self, u"relaying by site '%s'" % self.ikName) else: inst_event = MsgEvent( senderObj=self, logText=logText, targetFunctionName=targetFunctionName) obj.injectInpEQueue(inst_event) # second call if IHostVMwareEsx.providedBy(obj): targetFunctionName = "shutdown" logText = u"send shutdown to esx host '%s'" % obj.ikName else: targetFunctionName = None if targetFunctionName is not None: if eventMsg is not None: inst_event = MsgEvent( senderObj=self, oidEventObject=eventMsg.oidEventObject, logText=logText, targetFunctionName=targetFunctionName) eventMsg.stopit(self, u"relaying by site '%s'" % self.ikName) else: inst_event = MsgEvent( senderObj=self, logText=logText, targetFunctionName=targetFunctionName) obj.injectInpEQueue(inst_event)
def eventOut_upsmgEnvironmentHumidityOK(self): """ sends event (source is snmp """ self.appendHistoryEntry(u"upsmgEnvironmentHumidityOK") self.trigger_online() for my_event in self.eventOutObjs_upsmgEnvironmentHumidityOK: inst_event = MsgEvent(self, my_event) self.injectOutEQueue(inst_event)
def eventOut_upsByPassAvailable(self): """ sends event (source is snmp """ self.appendHistoryEntry(u"upsByPassAvailable") self.trigger_online() for my_event in self.eventOutObjs_upsByPassAvailable: inst_event = MsgEvent(self, my_event) self.injectOutEQueue(inst_event)
def eventOut_upsReturnFromBuck(self): """ sends event (source is snmp """ self.appendHistoryEntry(u"upsReturnFromBuck") self.trigger_online() for my_event in self.eventOutObjs_upsReturnFromBuck: inst_event = MsgEvent(self, my_event) self.injectOutEQueue(inst_event)
def eventOut_upsExternalAlarmInactive(self): """ sends event (source is snmp """ self.appendHistoryEntry(u"upsExternalAlarmInactive") self.trigger_online() for my_event in self.eventOutObjs_upsExternalAlarmInactive: inst_event = MsgEvent(self, my_event) self.injectOutEQueue(inst_event)
def eventOut_upsBatteryTestFail(self): """ sends event (source is snmp """ self.appendHistoryEntry(u"upsBatteryTestFail") self.trigger_offline() for my_event in self.eventOutObjs_upsBatteryTestFail: inst_event = MsgEvent(self, my_event) self.injectOutEQueue(inst_event)
def eventOut_upsDiagnosticTestOK(self): """ sends event (source is snmp """ self.appendHistoryEntry(u"upsDiagnosticTestOK") self.trigger_online() for my_event in self.eventOutObjs_upsDiagnosticTestOK: inst_event = MsgEvent(self, my_event) self.injectOutEQueue(inst_event)
def eventOut_upsFromLowRecharge(self): """ sends event (source is snmp """ self.appendHistoryEntry(u"upsFromLowRecharge") self.trigger_online() for my_event in self.eventOutObjs_upsFromLowRecharge: inst_event = MsgEvent(self, my_event) self.injectOutEQueue(inst_event)
def eventOut_upsInputBad(self): """ sends event (source is snmp """ self.appendHistoryEntry(u"upsInputBad") self.trigger_offline() for my_event in self.eventOutObjs_upsInputBad: inst_event = MsgEvent(self, my_event) self.injectOutEQueue(inst_event)
def eventOut_upsCommunicationRestored(self): """ sends event (source is snmp """ self.appendHistoryEntry(u"upsCommunicationRestored") self.trigger_online() for my_event in self.eventOutObjs_upsCommunicationRestored: inst_event = MsgEvent(self, my_event) self.injectOutEQueue(inst_event)
def eventOut_upsmgEnvironmentTemperatureHigh(self): """ sends event (source is snmp """ self.appendHistoryEntry(u"upsmgEnvironmentTemperatureHigh") self.trigger_offline() for my_event in self.eventOutObjs_upsmgEnvironmentTemperatureHigh: inst_event = MsgEvent(self, my_event) self.injectOutEQueue(inst_event)
def eventOut_upsBatteryReplacementNotIndicated(self): """ sends event (source is snmp """ self.appendHistoryEntry(u"upsBatteryReplacementNotIndicated") self.trigger_online() for my_event in self.eventOutObjs_upsBatteryReplacementNotIndicated: inst_event = MsgEvent(self, my_event) self.injectOutEQueue(inst_event)
def send_event(self, logText=u"event triggered by call of send_event"): """ sends an the event to the list of ALL receivers """ for oidPlusFunct in self.outObjects: oid = oidPlusFunct.split('.', 2)[0] # normal component objects my_catalog = zapi.getUtility(ICatalog) for resObj in my_catalog.searchResults(oid_index=oid): inst_event = MsgEvent(oidEventObject=self.objectID, logText=logText) resObj.injectInpEQueue(inst_event)
def eventInp_inward_relaying_shutdown(self, eventMsg=None): """ forward the event to all objects in this container through the signal filter """ if self.inEventMask(eventMsg, testHostGroup=False): print "HostVMwareEsx.eventInp_inward_relaying_shutdown() [%s]" % self.ikName esx_utility = zapi.getUtility(IAdmUtilEsxVim) if esx_utility and len(self.esxUuid) > 0: self.appendHistoryEntry("inward relaying shutdown") #esx_utility.getFilteredList(self.esxUuid) myParams = {\ 'cmd': 'find_entity_views', 'view_type': 'HostSystem', 'admUtilEsxVim': esx_utility, 'filter': {'name':self.esxUuid}, } myEsxDict = esx_utility.get_EsxVimObject_Dict(myParams, None) if not myEsxDict.has_key(self.esxUuid): print "dont find" return None myEsxObj = myEsxDict[self.esxUuid] myParams = {\ 'cmd': 'find_entity_views', 'view_type': 'VirtualMachine', 'admUtilEsxVim': esx_utility, 'begin_entity': myEsxObj.perlEsxObjRef, 'filter': {'runtime.powerState':'poweredOn'}, } myVmDict = esx_utility.get_EsxVimObject_Dict(myParams, None) my_catalog = zapi.getUtility(ICatalog) if myVmDict is not None and len(myVmDict) > 0: for vmName, vmObj in myVmDict.items(): #print "----->", vmObj.uuid res = my_catalog.searchResults( host_vmuuid_index=str(vmObj.uuid)) #import pdb #pdb.set_trace() if len(res) > 0: internalVmObj = list(res)[0] #print "ref-->", internalVmObj inst_event = MsgEvent(senderObj = self, oidEventObject = eventMsg.oidEventObject, logText = u"inward relaying by esx host '%s'"\ % self.ikName, targetFunctionName = 'shutdown') internalVmObj.injectInpEQueue(inst_event)
def eventOut_1sec(self): """ sends one-second event """ for my_event in self.eventOutObjs_1sec: inst_event = MsgEvent(self, my_event) self.injectOutEQueue(inst_event)
def eventOut_pulse(self): """ sends pulse event """ for my_event in self.eventOutObjs_pulse: inst_event = MsgEvent(self, my_event) self.injectOutEQueue(inst_event)
def eventOut_delayed(self): """ sends delayed event """ print "EventTimingRelay.eventOut_delayed" for my_event in self.eventOutObjs_delayed: inst_event = MsgEvent(self, my_event) self.injectOutEQueue(inst_event)
def eventOut_upsmgEnvironmentInput2Open(self): """ sends event (source is snmp """ self.appendHistoryEntry(u"upsmgEnvironmentInput2Open") for my_event in self.eventOutObjs_upsmgEnvironmentInput2Open: inst_event = MsgEvent(self, my_event) self.injectOutEQueue(inst_event)