fix(dbus): Update systemd interface and path handling
Revised DBus interactions to explicitly use `org.freedesktop.systemd1` interface and path. This ensures that the correct interfaces are used and bypasses ".systemd1" magic from the library `pydbus`.
This commit is contained in:
@@ -324,7 +324,11 @@ def configure_gui(action: ConfigActions):
|
|||||||
return gui_available
|
return gui_available
|
||||||
|
|
||||||
bus = SystemBus()
|
bus = SystemBus()
|
||||||
systemd_manager = bus.get(".systemd1")
|
systemd = bus.get(
|
||||||
|
"org.freedesktop.systemd1",
|
||||||
|
"/org/freedesktop/systemd1",
|
||||||
|
)
|
||||||
|
systemd_manager = systemd["org.freedesktop.systemd1.Manager"]
|
||||||
|
|
||||||
if action is ConfigActions.ENABLE:
|
if action is ConfigActions.ENABLE:
|
||||||
systemd_manager.SetDefaultTarget("graphical.target", True)
|
systemd_manager.SetDefaultTarget("graphical.target", True)
|
||||||
@@ -384,7 +388,11 @@ def get_rfkill_index(device_class_path: str) -> Optional[int]:
|
|||||||
|
|
||||||
def simple_systemd(action: ConfigActions, unit: str):
|
def simple_systemd(action: ConfigActions, unit: str):
|
||||||
bus = SystemBus()
|
bus = SystemBus()
|
||||||
systemd_manager = bus.get(".systemd1")
|
systemd = bus.get(
|
||||||
|
"org.freedesktop.systemd1",
|
||||||
|
"/org/freedesktop/systemd1",
|
||||||
|
)
|
||||||
|
systemd_manager = systemd["org.freedesktop.systemd1.Manager"]
|
||||||
|
|
||||||
if action is ConfigActions.ENABLE:
|
if action is ConfigActions.ENABLE:
|
||||||
systemd_manager.UnmaskUnitFiles([unit], False)
|
systemd_manager.UnmaskUnitFiles([unit], False)
|
||||||
@@ -398,7 +406,7 @@ def simple_systemd(action: ConfigActions, unit: str):
|
|||||||
elif action is ConfigActions.STATUS:
|
elif action is ConfigActions.STATUS:
|
||||||
try:
|
try:
|
||||||
unit_path = systemd_manager.LoadUnit(unit)
|
unit_path = systemd_manager.LoadUnit(unit)
|
||||||
properties = bus.get(".systemd1", unit_path)
|
properties = bus.get("org.freedesktop.systemd1", unit_path)
|
||||||
except Exception:
|
except Exception:
|
||||||
log.warning(f"could not get systemd unit {unit}")
|
log.warning(f"could not get systemd unit {unit}")
|
||||||
return False
|
return False
|
||||||
@@ -408,7 +416,7 @@ def simple_systemd(action: ConfigActions, unit: str):
|
|||||||
elif action is ConfigActions.AVAILABLE:
|
elif action is ConfigActions.AVAILABLE:
|
||||||
try:
|
try:
|
||||||
unit_path = systemd_manager.LoadUnit(unit)
|
unit_path = systemd_manager.LoadUnit(unit)
|
||||||
properties = bus.get(".systemd1", unit_path)
|
properties = bus.get("org.freedesktop.systemd1", unit_path)
|
||||||
except Exception:
|
except Exception:
|
||||||
log.warning(f"could not get systemd unit {unit}")
|
log.warning(f"could not get systemd unit {unit}")
|
||||||
return False
|
return False
|
||||||
|
|||||||
Reference in New Issue
Block a user