summaryrefslogtreecommitdiff
path: root/linuxnamespaces/systemd/dbussy.py
diff options
context:
space:
mode:
Diffstat (limited to 'linuxnamespaces/systemd/dbussy.py')
-rw-r--r--linuxnamespaces/systemd/dbussy.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/linuxnamespaces/systemd/dbussy.py b/linuxnamespaces/systemd/dbussy.py
index 77410df..60b74fc 100644
--- a/linuxnamespaces/systemd/dbussy.py
+++ b/linuxnamespaces/systemd/dbussy.py
@@ -52,6 +52,7 @@ class SystemdJobWaiter:
try:
return self.jobs_removed[job]
except KeyError:
+ self.jobs_removed.clear()
return await asyncio.wait_for(self.job_done, timeout)
def __exit__(self, *exc_info: typing.Any) -> None:
@@ -72,10 +73,15 @@ async def start_transient_unit(
"""
bus = await ravel.session_bus_async()
with SystemdJobWaiter(bus) as wait:
+ systemd1 = bus["org.freedesktop.systemd1"]["/org/freedesktop/systemd1"]
result = await wait(
- bus["org.freedesktop.systemd1"]["/org/freedesktop/systemd1"]
- .get_interface("org.freedesktop.systemd1.Manager")
- .StartTransientUnit(unitname, "fail", properties, [])[0],
+ (
+ await (
+ await systemd1.get_async_interface(
+ "org.freedesktop.systemd1.Manager"
+ )
+ ).StartTransientUnit(unitname, "fail", properties, [])
+ )[0],
)
if result != "done":
raise OSError("StartTransientUnit failed: " + result)