File: dstat_dbus.py

package info (click to toggle)
dstat 0.7.4-6.1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 1,608 kB
  • sloc: python: 5,964; makefile: 70; sh: 3
file content (41 lines) | stat: -rw-r--r-- 1,432 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
### Author: Dag Wieers <dag$wieers,com>

class dstat_plugin(dstat):
    """
    Number of active dbus sessions.
    """
    def __init__(self):
        self.name = 'dbus'
        self.nick = ('sys', 'ses')
        self.vars = ('system', 'session')
        self.type = 'd'
        self.width = 3
        self.scale = 100

    def check(self):
#       dstat.info(1, 'The dbus module is an EXPERIMENTAL module.')
        try:
            global dbus
            import dbus
            try:
                self.sysbus = dbus.Bus(dbus.Bus.TYPE_SYSTEM).get_service('org.freedesktop.DBus').get_object('/org/freedesktop/DBus', 'org.freedesktop.DBus')
                try:
                    self.sesbus = dbus.Bus(dbus.Bus.TYPE_SESSION).get_service('org.freedesktop.DBus').get_object('/org/freedesktop/DBus', 'org.freedesktop.DBus')
                except:
                    self.sesbus = None
            except:
                raise Exception('Unable to connect to dbus message bus')
        except:
            raise Exception('Needs python-dbus module')

    def extract(self):
        self.val['system'] = len(self.sysbus.ListServices()) - 1
        try:
            self.val['session'] = len(self.sesbus.ListServices()) - 1
        except:
            self.val['session'] = -1
#       print(dir(b)); print(dir(s)); print(dir(d)); print(d.ListServices())
#       print(dir(d))
#       print(d.ListServices())

# vim:ts=4:sw=4:et