diff --git a/bumblebee/modules/libvirtvms.py b/bumblebee/modules/libvirtvms.py new file mode 100644 index 0000000..2b09de3 --- /dev/null +++ b/bumblebee/modules/libvirtvms.py @@ -0,0 +1,37 @@ + +"""Displays count of running libvirt VMs. + +Required the following python packages: + * libvirt + * sys + +""" +import sys +import libvirt +import bumblebee.input +import bumblebee.output +import bumblebee.engine + +class Module(bumblebee.engine.Module): + def __init__(self, engine, config): + super(Module, self).__init__(engine, config, + bumblebee.output.Widget(full_text=self.status) + ) + self._status = self.status + engine.input.register_callback(self, button=bumblebee.input.LEFT_MOUSE, + cmd="virt-manager") + + def status(self, _): +"""Get number of currently running libvirt VMs""" + conn = None + try: + conn = libvirt.openReadOnly(None) + except: + return None + if conn == None: + return None + return "VMs: %d" % conn.numOfDomains() + + def update(self, widgets): + self._status = self.status +