Exemple #1
0
    def poll(self):

        """Returns .
        self.poll() is threadsafe"""

        self.__lock.acquire()
        try:
            buf = gtop.netload(self.__dev)
            bytes_in, bytes_out = buf.bytes_in, buf.bytes_out

            now      = time.time()
            interval = now - self.__time

            in_diff  = bytes_in  - self.__in
            out_diff = bytes_out - self.__out

            speed_in  = int(in_diff / interval)
            speed_out = int(out_diff / interval)

            self.__time = now
            self.__in, self.__out = bytes_in, bytes_out

            return (speed_in, speed_out)

        finally:
            self.__lock.release()
Exemple #2
0
 def _get_net_stats(self):
     ifs = { }
     nets = gtop.netlist()
     for net in nets:
         netload = gtop.netload(net)
         ifs[net] = [ netload.bytes_in, netload.bytes_out ]
     nets.insert(0, "Net")
     return ifs, nets
Exemple #3
0
 def _get_net_stats(self):
     ifs = {}
     nets = gtop.netlist()
     for net in nets:
         netload = gtop.netload(net)
         ifs[net] = [netload.bytes_in, netload.bytes_out]
     nets.insert(0, "Net")
     return ifs, nets
Exemple #4
0
    def __init__(self, dev):

        Device.__init__(self)

        self.__dev = dev
        buf = gtop.netload(dev)
        self.__in, self.__out = buf.bytes_in, buf.bytes_out
        self.__time = time.time()
        self.__lock = threading.Lock()
Exemple #5
0
    def net_state(self, dev):
        """
        @param dev: interface
        @type  dev: str

        @return : whether a network device is up or not (i.e. down)
        @rtype  : bool
        """

        return gtop.netload(dev).if_flags & gtop.NETLOAD_IF_FLAGS_UP
Exemple #6
0
def repl():
    global s
    shell = Monitor('rohit')
    cls()
    cls()
    curEpocs1 = time.time()
    curEpocs2 = time.time()
    lastBytes = 0
    while True:
        cpu, mem = map(
            float,
            shell.run(
                "ps axo pcpu,pmem | awk '{sum += $0; pmem += $2} END {print sum/8, pmem}'"
            ).split(' '))
        #cpu = 0
        #for core in gtop.cpu().cpus:
        #  cpu += 100.0 * (core.user+core.sys) / core.total
        #print cpu
        #cpu /= 8
        if cpu > 100.0: cpu = 100  # Happens on Intel multicores
        mem = 1.0 * gtop.mem().user / gtop.mem().total * (
            gtop.mem().total / 1024.0 / 1024.0 / 1024.0)  #3.98
        temp = float(
            shell.run(
                """sensors | grep temp1 | head -1 | awk '{print $2}' | sed 's/+//' | sed 's/.C//'"""
            ))
        netload = gtop.netload('eth0')
        curEpocs2 = time.time()
        net = (netload.bytes_total - lastBytes) / (curEpocs2 -
                                                   curEpocs1) / 1024  #kbps
        lastBytes = netload.bytes_total
        curEpocs1 = curEpocs2
        if net > 999:
            net /= 1024
            netstr = "%.1fM" % net
        else:
            netstr = "%.1fK" % net

        goto(0, 0)
        pl("%.1f%% " % cpu)
        goto(0, 6)
        pl("%0.1fG" % mem)
        goto(0, 11)
        pl("%0.1fC" % temp)
        goto(1, 0)
        pl(time.strftime("%H:%M:%S"))
        goto(1, 9)
        pl(netstr.zfill(7))
        #sound_data = getFFT()
        #for i in range(samples): # don't have sound data for now
        #  writenum(s, sound_data[i] % 8)
        time.sleep(0.4)
Exemple #7
0
def repl():
  global s
  shell = Monitor('rohit')
  cls()
  cls()
  curEpocs1 = time.time()
  curEpocs2 = time.time()
  lastBytes = 0
  while True:
    cpu, mem = map(float, shell.run("ps axo pcpu,pmem | awk '{sum += $0; pmem += $2} END {print sum/8, pmem}'").split(' '))
    #cpu = 0
    #for core in gtop.cpu().cpus:
    #  cpu += 100.0 * (core.user+core.sys) / core.total
    #print cpu
    #cpu /= 8
    if cpu > 100.0: cpu = 100 # Happens on Intel multicores
    mem = 1.0 * gtop.mem().user / gtop.mem().total * (gtop.mem().total/1024.0/1024.0/1024.0)#3.98
    temp = float(shell.run("""sensors | grep 'Core.*+' | awk '{print $3}' | sed 's/+//' | sed 's/.C//' | awk '{sum+=$0} END {print sum/4}'"""))
    netload = gtop.netload('eth0')
    curEpocs2 = time.time()
    net = (netload.bytes_total - lastBytes) / (curEpocs2 - curEpocs1) / 1024 #kbps
    lastBytes = netload.bytes_total
    curEpocs1 = curEpocs2
    if net > 999:
      net /= 1024
      netstr = "%.2fM" % net
    else:
      netstr = "%.2fK" % net

    goto(0,0)
    pl("%.1f%% " % cpu)
    goto(0, 6)
    pl("%0.1fG" % mem)
    goto(0,11)
    pl("%0.1fC" % temp)
    goto(1,0)
    pl(time.strftime("%H:%M:%S"))
    goto(1,9)
    pl(netstr.zfill(7))
    #sound_data = getFFT()
    #for i in range(samples): # don't have sound data for now
    #  writenum(s, sound_data[i] % 8)
    time.sleep(0.4)
Exemple #8
0
    def get_theme_properties(self):
        properties = { }

        def convert_bytes(bytes):
            bytes = float(bytes)
            if bytes >= 1099511627776:
                terabytes = bytes / 1099511627776
                size = '%.2fT' % terabytes
            elif bytes >= 1073741824:
                gigabytes = bytes / 1073741824
                size = '%.2fG' % gigabytes
            elif bytes >= 1048576:
                megabytes = bytes / 1048576
                size = '%.2fM' % megabytes
            elif bytes >= 1024:
                kilobytes = bytes / 1024
                size = '%.2fK' % kilobytes
            else:
                size = '%.2fb' % bytes
            return size

        # Split vnstat data into array
        def get_traffic_data(dataType, dataValue, vn):
            line=''
            for item in vn.split("\n"):
                if "%s;%d;" % (dataType, dataValue) in item:
                    line = item.strip().split(';')
                    break
            return line

        # convert MiB and KiB into KB
        def cb(mib, kib):
            return (int(mib) * 1000000) + (int(kib) * 1000)

        '''
        Get the details to display and place them as properties which are passed to
        the theme
        '''

        if self.use_vnstat is False:
            bootup = datetime.datetime.fromtimestamp(int(gtop.uptime().boot_time)).strftime('%d.%m.%y %H:%M')
            sd = gtop.netload(self.networkdevice)
            properties["sdn"] = "DL: " +convert_bytes(sd.bytes_in)
            properties["sup"] = "UL: " +convert_bytes(sd.bytes_out)
            properties["des1"] = "Traffic since: " +bootup
            properties["title"] = self.networkdevice + " Traffic"

        else:
            vnstat, vn = g15os.get_command_output('vnstat -i ' + self.networkdevice + ' --dumpdb')
            if vnstat != 0:
                properties["message"] = "vnstat is not installed!"
            else:
                chErr = str(vn.find("Error"));
                if chErr != "-1":
                    properties["message"] = "No stats for device " + self.networkdevice
                else:
                    properties["title"] = self.networkdevice +" Traffic (U/D)"

                    def get_data(kind, period):
                        # get vnstat data as array, array content: 2 = unixtime, 4 = up MiB, 6 = up KiB, 3 = dn MiB, 5 = dn KiB
                        line = get_traffic_data(kind, period, vn)
                        if line[7] == '1':
                            up = convert_bytes(cb(line[4], line[6]))
                            dn = convert_bytes(cb(line[3], line[5]))
                            des = int(line[2])
                            return [up, dn, des]
                        else:
                            return None

                    if self.loadpage == 'vnstat_daily':
                        k = "d"
                        fmt = '%A'
                    elif self.loadpage == 'vnstat_monthly':
                        k = "m"
                        fmt = '%B'

                    for p in range(0,3):
                        data = get_data(k,p)
                        if data is not None:
                            properties["d"] = "/"
                            properties["dup" + str(p + 1)] = data[0]
                            properties["ddn" + str(p + 1)] = data[1]
                            properties["des" + str(p + 1)] = datetime.datetime.fromtimestamp(data[2]).strftime(fmt)

        return properties