Пример #1
0
    def run(self, dmd, args):
        report = []
        zem = dmd.ZenEventManager
        windows_class = None

        # Guard against people removing the /Server/Windows device class.
        try:
            windows_class = dmd.getObjByPath('Devices/Server/Windows')
        except KeyError:
            return []

        for d in windows_class.getSubDevices():
            if "MSExchangeIS" not in d.zDeviceTemplates: continue
            if not d.monitorDevice(): continue

            availability = d.availability()
            uptime = d.sysUpTime()
            uptime_string = "unknown"
            if uptime and uptime != -1:
                uptime = uptime / 100
                uptime_string = Time.Duration(uptime)
            else:
                uptime = None

            r = Utils.Record(
                device=d.titleOrId(),
                deviceUrl=d.getPrimaryUrlPath(),
                availability=float(availability),
                availability_string=str(availability),
                uptime=uptime,
                uptime_string=uptime_string,
                )

            for winservice in self.winservices:
                ws = getattr(d.os.winservices, winservice, None)
                if ws:
                    r.values[winservice] = ws.getStatusString(
                        '/Status/WinService')

                    r.values[winservice+'_img'] = d.getStatusImgSrc(
                        ws.getStatus())

            report.append(r)

        return report
Пример #2
0
 def niceDuration(self):
     """Return a human readable version of the duration in
     days, hours, minutes"""
     return Time.Duration(self.duration * 60)