def recordData(self, record, role, column): # Online/Offline Icon if role == Qt.DecorationRole and column == 'Service': return QtCore.QVariant(self.serviceStateIcon(record)) if role in [Qt.DisplayRole, Qt.EditRole]: if Service(record).isRecord() and column == 'Pulse': return QtCore.QVariant(Service(record).forbiddenProcesses()) if HostService(record).isRecord() and column == 'Service': return QtCore.QVariant(HostService(record).host().name()) return RecordListModel.recordData(self, record, role, column)
def refresh(self): self.RefreshTime = QDateTime.currentDateTime() self.updateRecords(self.getServiceList()) self.HostServiceIndex.setCacheEnabled(False) for idx in ModelIter.collect(self): self.updateRecords( Service(self.getRecord(idx)).hostServices(), idx) self.HostServiceIndex.setCacheEnabled(True)
def serviceState(self,record): ret = ServiceStateOffline s = Service(record) hs = HostService(record) if s.isRecord() and s.enabled(): ret = ServiceStateOnline if s.unique() and s.active(): onlineHostCount = 0 for hs in Service(record).hostServices(): if self.serviceState(hs)==ServiceStateOnline: onlineHostCount += 1 if onlineHostCount > 1: ret = ServiceStateConflict elif onlineHostCount < 1: ret = ServiceStateError elif hs.isRecord() and hs.enabled(): if hs.pulseDateTime().secsTo(self.RefreshTime) > (60 * 10): ret = ServiceStateError else: ret = ServiceStateOnline return ret
def serviceState(self, record): ret = ServiceStateOffline s = Service(record) hs = HostService(record) if s.isRecord() and s.enabled(): ret = ServiceStateOnline if s.unique() and s.active(): onlineHostCount = 0 for hs in Service(record).hostServices(): if self.serviceState(hs) == ServiceStateOnline: onlineHostCount += 1 if onlineHostCount > 1: ret = ServiceStateConflict elif onlineHostCount < 1: ret = ServiceStateError elif hs.isRecord() and hs.enabled(): if hs.pulseDateTime().secsTo(self.RefreshTime) > (60 * 10): ret = ServiceStateError else: ret = ServiceStateOnline return ret
def getServiceList(self): return Service.select("service~'%s'" % self.ServiceFilter)
def children(self, record): if Service(record).isRecord(): return Service(record).hostServices() return RecordList()