def find_addons(self): self._addon_module_services = [] dbus = DBus.get_dbus_proxy() names = dbus.ListActivatableNames() for name in names: if name.startswith(DBUS_ADDON_NAMESPACE): self._addon_module_services.append(name)
def add_addon_modules(self): """Add the addon modules.""" dbus = DBus.get_dbus_proxy() names = dbus.ListActivatableNames() for name in names: if name.startswith(DBUS_ADDON_NAMESPACE): self.add_module(name, auto_object_path(name))
def add_addon_modules(self): """Add the addon modules.""" dbus = DBus.get_dbus_proxy() names = dbus.ListActivatableNames() prefix = get_dbus_name(*ADDONS_NAMESPACE) for service_name in names: if service_name.startswith(prefix): self.add_module(service_name)
def connect(self): """Connect to the service immediately. :raise DBusObserverError: if service is not available """ bus_proxy = DBus.get_dbus_proxy() if not bus_proxy.NameHasOwner(self.service_name): raise DBusObserverError("Service {} is not available.".format( self._service_name)) self._enable_service() self._watch()
def run_boss(kickstart_modules=None, addons_enabled=True): """Start Boss service on DBus. :param kickstart_modules: a list of service identifiers :param addons_enabled: should we start the addons? """ if kickstart_modules is None: kickstart_modules = ALL_KICKSTART_MODULES bus_proxy = DBus.get_dbus_proxy() bus_proxy.StartServiceByName(BOSS.service_name, DBUS_FLAG_NONE) boss_proxy = BOSS.get_proxy() boss_proxy.StartModules([m.service_name for m in kickstart_modules], addons_enabled)
def add_addon_modules(self): """Add the addon modules.""" dbus = DBus.get_dbus_proxy() names = dbus.ListActivatableNames() prefix = get_dbus_name(*ADDONS_NAMESPACE) for service_name in names: if service_name.startswith(prefix): # Get the object path. namespace = get_namespace_from_name(service_name) object_path = get_dbus_path(*namespace) # Add the observer. observer = DBus.get_observer(service_name, object_path) self._module_observers.append(observer)
def start_modules(self): """Start anaconda modules (including addons).""" log.debug("Start modules.") dbus = DBus.get_dbus_proxy() for observer in self.module_observers: log.debug("Starting %s", observer) dbus.StartServiceByName(observer.service_name, DBUS_FLAG_NONE, callback=self._start_modules_callback, callback_args=(observer,)) # Watch the module. observer.service_available.connect(self._process_module_is_available) observer.service_unavailable.connect(self._process_module_is_unavailable) observer.connect_once_available()
def start_modules(self): """Starts anaconda modules (including addons).""" log.debug("starting modules") self.check_no_modules_are_running() dbus = DBus.get_dbus_proxy() for service in self.expected_module_services: log.debug("Starting %s", service) try: dbus.StartServiceByName(service, 0, callback=self._finish_start_service_cb, callback_args=(service, )) except Exception: # pylint: disable=broad-except self._failed_module_services.append(service) log.exception("module startup failed") log.debug("started all modules")
def check_no_modules_are_running(self): dbus = DBus.get_dbus_proxy() for service in self.expected_module_services: if dbus.NameHasOwner(service): log.error("service %s has unexpected owner", service)
def run_boss(): """Start Boss service on DBus.""" bus_proxy = DBus.get_dbus_proxy() bus_proxy.StartServiceByName(BOSS.service_name, DBUS_FLAG_NONE)
def _start_boss(self): """Start the boss.""" bus_proxy = DBus.get_dbus_proxy() bus_proxy.StartServiceByName(BOSS.service_name, DBUS_FLAG_NONE)