Ejemplo n.º 1
0
 def _display_news():
     alertThread.join()
     news = web_client.read_news()
     if news is None:
         return
     self.webNews = news['message']
     canv.itemconfig('webNews',
                     text=utils.break_lines(self.webNews,
                                            MAX_INFO_LINE_CHARS))
Ejemplo n.º 2
0
 def _display_alerts():
     self.webAlerts = web_client.read_alerts()
     if not self.webAlerts:
         return
     canv.create_text(self.infoBoxXCenter,
                      BOX_Y_MIN + self.newsBoxYMax * 0.5,
                      text=i18n.webNews[i18n.lang()][2],
                      tags=('webAlertsHeader'),
                      fill='red',
                      font=("Times", 25, "bold"))
     for alert in self.webAlerts:
         alert = alert['message']
         canv.create_text(self.infoBoxXCenter,
                          BOX_Y_MIN + self.newsBoxYMax,
                          text=utils.break_lines(
                              alert, MAX_INFO_LINE_CHARS),
                          tags=('webAlerts'))
Ejemplo n.º 3
0
    def get_raid():
        result = str(check_output("cat /proc/mdstat", shell=True), "UTF-8")
        result = break_lines(result)

        table = {}
        prev = None
        for line in result[1:]:
            if prev is not None:
                parts = line.split(" ")
                total, count = parts[-2].strip("[]").split("/")
                ready = parts[-1].strip("[]")
                table[dev] = table[dev][:-3] + (int(total), int(count), ready)
                prev = None

            if "md" in line and ":" in line:
                parts = line.split(" ")

                dev = parts[0]
                status = ""
                mode = None
                devices = []
                # Filter each part, the raid part indicates the before (status) and next (devices)
                for part in parts[2:]:
                    if mode is None:
                        if "raid" in part:
                            mode = part
                        else:
                            if len(status) > 0:
                                status += " "
                            status += part
                    else:
                        device = part.split("[")[0]
                        devices.append(device)

                table[dev] = (status, mode, devices, None, None, None)

                # RAID0 doesn't have count/ready
                if mode is not None and mode != "raid0":
                    prev = dev

                continue

        return table
Ejemplo n.º 4
0
    def get_arp():
        result = str(check_output("cat /proc/net/arp", shell=True), "UTF-8")
        result = break_lines(result)

        table = {}
        for line in result[1:]:
            ip = None
            mac = None
            dev = None
            for index, column in enumerate(filter(None, line.split(" "))):
                if index == 0:
                    ip = column
                elif index == 3:
                    mac = column
                elif index == 5:
                    dev = column

            if ip and mac and dev:
                table[ip] = (mac, dev)
        return table
Ejemplo n.º 5
0
    def get_smart(device):
        process = run("smartctl -H -i /dev/%s" % device, stdout=PIPE, shell=True)
        result = str(process.stdout, "UTF-8")
        code = process.returncode
        result = break_lines(result)
        line_status = "SMART support is:"
        line_firmware = "A firmware update for this drive may be available"
        line_test = "SMART overall-health self-assessment test result:"

        status = None
        firmware = False
        test = None
        for line in result:
            parts = line.split(" ")
            if line_status in line:
                status = parts[-1]
            if line_firmware in line:
                firmware = True
            if line_test in line:
                test = parts[-1]
        return status, firmware, test, code
Ejemplo n.º 6
0
    def get_gateway():
        result = str(check_output("route -n", shell=True), "UTF-8")
        result = break_lines(result)

        for line in result[2:]:
            destination = None
            gateway = None
            flags = None
            dev = None
            for index, column in enumerate(filter(None, line.split(" "))):
                if index == 0:
                    destination = column
                elif index == 1:
                    gateway = column
                elif index == 3:
                    flags = column
                elif index == 7:
                    dev = column

            if destination and gateway and dev and "G" in flags:
                return destination, gateway, flags, dev
        return None