Exemplo n.º 1
0
    def init(self):
        """Initialize Monitor class"""

        self.setMinimumPollingInterval(333)

        self.monitor = Monitor()
        self.ifaces = self.monitor.readnet()

        self.enabled_ifaces = []
        self.wireless_ifaces = filter(self.monitor.has_wireless,
                                      self.ifaces.keys())

        sorted_ifaces = self.ifaces.keys()
        sorted_ifaces.sort()

        net = self.monitor.readnet()

        for iface in sorted_ifaces:
            device_exists, data_in, data_out = self.monitor.get_traffic(
                iface, net)
            self.ifaces[iface] = {
                'data_in': 0,
                'data_out': 0,
                'total_in': 0,
                'total_out': 0,
                'graph': None,
                'histogram': [],
                'address': "",
            }
            if self.monitor.has_network_accounting(iface):
                self.enabled_ifaces.append(iface)

        self.refresh_connections()
Exemplo n.º 2
0
    def init(self):
        """Initialize Monitor class"""

        self.setMinimumPollingInterval(333)

        self.monitor = Monitor()
        self.ifaces = self.monitor.readnet()

        self.enabled_ifaces = []
        self.wireless_ifaces = filter(self.monitor.has_wireless, self.ifaces.keys())

        sorted_ifaces = self.ifaces.keys()
        sorted_ifaces.sort()

        net=self.monitor.readnet()

        for iface in sorted_ifaces:
            device_exists, data_in, data_out = self.monitor.get_traffic(iface,net)
            self.ifaces[iface] = {'data_in': 0,
                              'data_out': 0,
                              'total_in': 0,
                              'total_out': 0,
                              'graph': None,
                              'histogram': [],
                              'address': "",
                              }
            if self.monitor.has_network_accounting(iface):
                self.enabled_ifaces.append(iface)

        self.refresh_connections()
Exemplo n.º 3
0
class NetMonitorDataEngine(plasmascript.DataEngine):
    def __init__(self, parent, args=None):
        plasmascript.DataEngine.__init__(self, parent)

    def init(self):
        """Initialize Monitor class"""

        self.setMinimumPollingInterval(333)

        self.monitor = Monitor()
        self.ifaces = self.monitor.readnet()

        self.enabled_ifaces = []
        self.wireless_ifaces = filter(self.monitor.has_wireless,
                                      self.ifaces.keys())

        sorted_ifaces = self.ifaces.keys()
        sorted_ifaces.sort()

        net = self.monitor.readnet()

        for iface in sorted_ifaces:
            device_exists, data_in, data_out = self.monitor.get_traffic(
                iface, net)
            self.ifaces[iface] = {
                'data_in': 0,
                'data_out': 0,
                'total_in': 0,
                'total_out': 0,
                'graph': None,
                'histogram': [],
                'address': "",
            }
            if self.monitor.has_network_accounting(iface):
                self.enabled_ifaces.append(iface)

        self.refresh_connections()

    def refresh_connections(self):
        """Updates connections"""
        for proto in ["tcp", "udp"]:
            connections = self.monitor.get_connections(proto=proto)
            for loc_addr, loc_port, rem_addr, rem_port, status in connections:
                #print "%s - %s - %s - %s - %s - %s" % (proto, loc_addr, loc_port, rem_addr, rem_port, status)
                pass

    def sources(self):
        """List of provided sources"""
        sources = self.ifaces.keys()
        print sources
        return sources

    def sourceRequestEvent(self, name):
        """Prepare source event"""
        self.refresh_connections()
        return self.updateSourceEvent(name)

    def updateSourceEvent(self, name):
        """Returns monitoring data"""
        print "Getting info for %s " % name
        net = self.monitor.readnet()
        interval = 1  # update interval
        wifi_stats = self.monitor.wireless_stats()
        for iface in [name]:
            iface = str(iface)
            status = self.monitor.get_status(iface)
            old_data_in = self.ifaces[iface]['data_in']
            old_data_out = self.ifaces[iface]['data_out']
            total_in = self.ifaces[iface]['total_in']
            total_out = self.ifaces[iface]['total_out']
            # get the uptime
            uptime = self.monitor.get_uptime(iface)
            # update widgets
            ip, mac = self.monitor.get_address(iface)
            device_exists, data_in, data_out = self.monitor.get_traffic(
                iface, net)
            # is it a wireless interface?
            if iface in self.wireless_ifaces:
                essid = self.monitor.wifi_get_essid(iface)
                mode = self.monitor.wifi_get_mode(iface)
                bitrate = self.monitor.wifi_get_bitrate(iface)
                ap = self.monitor.wifi_get_ap(iface)
                link = wifi_stats.get(iface, 0)
                # calculate link quality
                if "max_quality" in self.ifaces[iface]:
                    max_quality = self.ifaces[iface]["max_quality"]
                    if max_quality != 0:
                        quality = link * 100.0 / max_quality
                    else:
                        quality = 0
                else:
                    quality = 0
            else:
                essid = None
                mode = None
                bitrate = None
                ap = None
                quality = 0
            # is it the first measure?
            if old_data_in == 0 and old_data_out == 0:
                old_data_in = data_in
                old_data_out = data_out
            # check if device exists
            if not device_exists:
                old_data_in = data_in
                old_data_out = data_out
            # check total download
            diff_in = data_in - old_data_in
            diff_out = data_out - old_data_out
            # checking for 32bits overflow
            if diff_in < 0:
                diff_in += 2**32
            if diff_out < 0:
                diff_out += 2**32
            total_in += diff_in
            total_out += diff_out
            # speed
            speed_in = diff_in / interval
            speed_out = diff_out / interval
            # update saved values
            self.ifaces[iface]['data_in'] = data_in
            self.ifaces[iface]['data_out'] = data_out
            self.ifaces[iface]['total_in'] = total_in
            self.ifaces[iface]['total_out'] = total_out
            # now set the applet data
            self.setData(iface, "data_in", QVariant(data_in))
            self.setData(iface, "data_out", QVariant(data_in))
            self.setData(iface, "total_in", QVariant(data_in))
            self.setData(iface, "total_out", QVariant(data_in))
            for item, value in [
                ('ip_address', ip),
                ('status', status),
                ('hw_address', mac),
                ('essid', essid),
                ('mode', mode),
                ('bitrate', bitrate),
                ('ap', ap),
                ('quality', "%d%%" % quality),
                ('widget_uptime', uptime),
            ]:
                self.setData(iface, item, QVariant(value))
            return True
Exemplo n.º 4
0
class NetMonitorDataEngine(plasmascript.DataEngine):
    def __init__(self,parent,args=None):
        plasmascript.DataEngine.__init__(self,parent)

    def init(self):
        """Initialize Monitor class"""

        self.setMinimumPollingInterval(333)

        self.monitor = Monitor()
        self.ifaces = self.monitor.readnet()

        self.enabled_ifaces = []
        self.wireless_ifaces = filter(self.monitor.has_wireless, self.ifaces.keys())

        sorted_ifaces = self.ifaces.keys()
        sorted_ifaces.sort()

        net=self.monitor.readnet()

        for iface in sorted_ifaces:
            device_exists, data_in, data_out = self.monitor.get_traffic(iface,net)
            self.ifaces[iface] = {'data_in': 0,
                              'data_out': 0,
                              'total_in': 0,
                              'total_out': 0,
                              'graph': None,
                              'histogram': [],
                              'address': "",
                              }
            if self.monitor.has_network_accounting(iface):
                self.enabled_ifaces.append(iface)

        self.refresh_connections()

    def refresh_connections(self):
        """Updates connections"""
        for proto in ["tcp", "udp"]:
            connections = self.monitor.get_connections(proto=proto)
            for loc_addr, loc_port, rem_addr, rem_port, status in connections:
                #print "%s - %s - %s - %s - %s - %s" % (proto, loc_addr, loc_port, rem_addr, rem_port, status)
                pass

    def sources(self):
        """List of provided sources"""
        sources = self.ifaces.keys()
        print sources
        return sources

    def sourceRequestEvent(self, name):
        """Prepare source event"""
        self.refresh_connections()
        return self.updateSourceEvent(name)

    def updateSourceEvent(self, name):
        """Returns monitoring data"""
        print "Getting info for %s " % name
        net=self.monitor.readnet()
        interval = 1 # update interval
        wifi_stats = self.monitor.wireless_stats()
        for iface in [name]:
            iface = str(iface)
            status = self.monitor.get_status(iface)
            old_data_in = self.ifaces[iface]['data_in']
            old_data_out = self.ifaces[iface]['data_out']
            total_in = self.ifaces[iface]['total_in']
            total_out = self.ifaces[iface]['total_out']
            # get the uptime
            uptime = self.monitor.get_uptime(iface)
            # update widgets
            ip, mac = self.monitor.get_address(iface)
            device_exists, data_in, data_out = self.monitor.get_traffic(iface, net)
            # is it a wireless interface?
            if iface in self.wireless_ifaces:
                essid = self.monitor.wifi_get_essid(iface)
                mode = self.monitor.wifi_get_mode(iface)
                bitrate = self.monitor.wifi_get_bitrate(iface)
                ap = self.monitor.wifi_get_ap(iface)
                link = wifi_stats.get(iface, 0)
                # calculate link quality
                if "max_quality" in self.ifaces[iface]:
                    max_quality = self.ifaces[iface]["max_quality"]
                    if max_quality != 0:
                        quality = link * 100.0 / max_quality
                    else:
                        quality = 0
                else:
                    quality = 0
            else:
                essid = None
                mode = None
                bitrate = None
                ap = None
                quality = 0
            # is it the first measure?
            if old_data_in == 0 and old_data_out == 0:
                old_data_in = data_in
                old_data_out = data_out
            # check if device exists
            if not device_exists:
                old_data_in = data_in
                old_data_out = data_out
            # check total download
            diff_in = data_in - old_data_in
            diff_out = data_out - old_data_out
            # checking for 32bits overflow
            if diff_in < 0:
                diff_in += 2**32
            if diff_out < 0:
                diff_out += 2**32
            total_in += diff_in
            total_out += diff_out
            # speed
            speed_in = diff_in / interval
            speed_out = diff_out / interval
            # update saved values
            self.ifaces[iface]['data_in'] = data_in
            self.ifaces[iface]['data_out'] = data_out
            self.ifaces[iface]['total_in'] = total_in
            self.ifaces[iface]['total_out'] = total_out
            # now set the applet data
            self.setData(iface, "data_in", QVariant(data_in))
            self.setData(iface, "data_out", QVariant(data_in))
            self.setData(iface, "total_in", QVariant(data_in))
            self.setData(iface, "total_out", QVariant(data_in))
            for item, value in [('ip_address', ip),
                                  ('status', status),
                                  ('hw_address', mac),
                                  ('essid', essid),
                                  ('mode', mode),
                                  ('bitrate', bitrate),
                                  ('ap', ap),
                                  ('quality', "%d%%" % quality),
                                  ('widget_uptime', uptime),
                                  ]:
                self.setData(iface, item, QVariant(value))
            return True