SCOM API package offers modules for accessing COMAR over D-Bus without pain and
common methods/classes for SCOM scripts.
Here are some examples for accessing SCOM:
import scom
link = scom.Link()
# Localize strings
link.setLocale()
# Never use authentication agent (GUI)
link.useAgent(False)
# Get a list of packages that provide system.service method
packages = list(link.System.Service)
# Start a service
link.System.Service["kdebase"].start()
# Stop all services and ignore replies from packages.
link.System.Service.stop(quiet=True)
Asynchronous calls:
import gobject
import dbus.mainloop.glib
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
mainloop = gobject.MainLoop()
import scom
link = scom.Link()
# Localize strings
link.setLocale()
# Use authentication agent (GUI)
link.useAgent()
# Make an asynchronous call to get service information
def handler(package, exception, result):
if exception:
print ("%s error: %s" % (package, exception))
else:
print ("%s result: %s" % (package, result))
link.System.Service.info(async=handler)
mainloop.run()
Connecting SCOM service on alternate destination:
import scom
link = scom.Link(alternate=True)
This will simply try to connect tr.org.pardus.scom2 instead
of tr.org.pardus.scom
Connecting to alternative DBus server:
import scom
link = scom.Link(socket="/mnt/target/var/run/dbus/system_bus_socket")