class SystemdMon::DBusManager

Attributes

dbus[RW]
systemd_object[RW]
systemd_service[RW]

Public Class Methods

new() click to toggle source
# File lib/systemd_mon/dbus_manager.rb, line 7
def initialize
  self.dbus            = DBus::SystemBus.instance
  self.systemd_service = dbus.service("org.freedesktop.systemd1")
  self.systemd_object  = systemd_service.object("/org/freedesktop/systemd1")
  systemd_object.introspect
  if systemd_object.respond_to?("Subscribe")
    systemd_object.Subscribe
  else
    raise SystemdMon::SystemdError, "Systemd is not installed, or is an incompatible version. It must provide the Subscribe dbus method: version 204 is the minimum recommended version."
  end
end

Public Instance Methods

fetch_unit(unit_name) click to toggle source
# File lib/systemd_mon/dbus_manager.rb, line 19
def fetch_unit(unit_name)
  path = systemd_object.GetUnit(unit_name).first
  DBusUnit.new(unit_name, path, systemd_service.object(path))
rescue DBus::Error
  raise SystemdMon::UnknownUnitError, "Unknown or unloaded systemd unit '#{unit_name}'"
end
runner() click to toggle source
# File lib/systemd_mon/dbus_manager.rb, line 26
def runner
  main = DBus::Main.new
  main << dbus
  main
end