aboutsummaryrefslogtreecommitdiffstats
path: root/src/gdbus/org_freedesktop_systemd1_unit.xml
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2022-09-10 12:15:20 -0400
committerScott Murray <scott.murray@konsulko.com>2022-09-10 12:30:27 -0400
commitc52afaf8b5c96136fe20e5d5a1332121d3b09ee9 (patch)
tree4f749a779cdf92abb7e49fee7398b8e0e2ef852a /src/gdbus/org_freedesktop_systemd1_unit.xml
parentc675bafdf15cc19276bd8276c34f56404a5ecb62 (diff)
Add gRPC API implementation
Changes: - Rename the existing daemon to applaunchd-dbus, and add a new version that exposes a gRPC based implementation of the API based on the protobuf definition added in a top-level protos directory. Having both the D-Bus and gRPC APIs exposed by a single daemon was posing difficulties around startup dependencies stemming from D-Bus activation of the daemon. Since the end goal is dropping the D-Bus API entirely, it is easier to just add a second daemon for gRPC that will eventually be the only one present. - To facilitate building the two implementations, a significant amount of code refactoring has been done to move things from the D-Bus API implementing app_launcher.[ch] to systemd_manager.[ch] so the code can be reused. - All use of the systemd D-Bus library except for the path encoding helper function has been replaced with GDBus. The systemd interface wrapper code was generated with gdbus-codegen from XML files captured via introspection on a running system. The motivation for this change was to avoid multithreading issues with sd_bus exposed when calling into it from the gRPC threads. - The copyright headers in the source files have been tweaked to remove the Apache license boilerplate in favour of a SPDX license tag. Notes: - The gRPC API differs slightly from the D-Bus one in that it has a single status streaming RPC method as opposed to the separate signals for application started or terminated that the D-Bus API has. - The gRPC API is currently unauthenticated, the aim is to circle back and implement authentication once a consensus can be reached on what mechanism should be used (fixed JWT configuration, OAuth, etc.). Bug-AGL: SPEC-4559 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I828f38a58b60e9959162b98054982124d4fa4380
Diffstat (limited to 'src/gdbus/org_freedesktop_systemd1_unit.xml')
-rw-r--r--src/gdbus/org_freedesktop_systemd1_unit.xml326
1 files changed, 326 insertions, 0 deletions
diff --git a/src/gdbus/org_freedesktop_systemd1_unit.xml b/src/gdbus/org_freedesktop_systemd1_unit.xml
new file mode 100644
index 0000000..5bc3f60
--- /dev/null
+++ b/src/gdbus/org_freedesktop_systemd1_unit.xml
@@ -0,0 +1,326 @@
+<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
+"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
+<node>
+ <interface name="org.freedesktop.systemd1.Unit">
+ <property name="Id" type="s" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="Names" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="Following" type="s" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
+ </property>
+ <property name="Requires" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="Requisite" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="Wants" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="BindsTo" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="PartOf" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="RequiredBy" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="RequisiteOf" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="WantedBy" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="BoundBy" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="ConsistsOf" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="Conflicts" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="ConflictedBy" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="Before" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="After" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="OnFailure" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="OnFailureOf" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="OnSuccess" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="OnSuccessOf" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="Triggers" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="TriggeredBy" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="PropagatesReloadTo" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="ReloadPropagatedFrom" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="PropagatesStopTo" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="StopPropagatedFrom" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="JoinsNamespaceOf" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="SliceOf" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="RequiresMountsFor" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="Documentation" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="Description" type="s" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="LoadState" type="s" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="ActiveState" type="s" access="read">
+ </property>
+ <property name="FreezerState" type="s" access="read">
+ </property>
+ <property name="SubState" type="s" access="read">
+ </property>
+ <property name="FragmentPath" type="s" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="SourcePath" type="s" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="DropInPaths" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="UnitFileState" type="s" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
+ </property>
+ <property name="UnitFilePreset" type="s" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
+ </property>
+ <property name="StateChangeTimestamp" type="t" access="read">
+ </property>
+ <property name="StateChangeTimestampMonotonic" type="t" access="read">
+ </property>
+ <property name="InactiveExitTimestamp" type="t" access="read">
+ </property>
+ <property name="InactiveExitTimestampMonotonic" type="t" access="read">
+ </property>
+ <property name="ActiveEnterTimestamp" type="t" access="read">
+ </property>
+ <property name="ActiveEnterTimestampMonotonic" type="t" access="read">
+ </property>
+ <property name="ActiveExitTimestamp" type="t" access="read">
+ </property>
+ <property name="ActiveExitTimestampMonotonic" type="t" access="read">
+ </property>
+ <property name="InactiveEnterTimestamp" type="t" access="read">
+ </property>
+ <property name="InactiveEnterTimestampMonotonic" type="t" access="read">
+ </property>
+ <property name="CanStart" type="b" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="CanStop" type="b" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="CanReload" type="b" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="CanIsolate" type="b" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="CanClean" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="CanFreeze" type="b" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="Job" type="(uo)" access="read">
+ </property>
+ <property name="StopWhenUnneeded" type="b" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="RefuseManualStart" type="b" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="RefuseManualStop" type="b" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="AllowIsolate" type="b" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="DefaultDependencies" type="b" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="OnSuccessJobMode" type="s" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="OnFailureJobMode" type="s" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="IgnoreOnIsolate" type="b" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="NeedDaemonReload" type="b" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
+ </property>
+ <property name="Markers" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
+ </property>
+ <property name="JobTimeoutUSec" type="t" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="JobRunningTimeoutUSec" type="t" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="JobTimeoutAction" type="s" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="JobTimeoutRebootArgument" type="s" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="ConditionResult" type="b" access="read">
+ </property>
+ <property name="AssertResult" type="b" access="read">
+ </property>
+ <property name="ConditionTimestamp" type="t" access="read">
+ </property>
+ <property name="ConditionTimestampMonotonic" type="t" access="read">
+ </property>
+ <property name="AssertTimestamp" type="t" access="read">
+ </property>
+ <property name="AssertTimestampMonotonic" type="t" access="read">
+ </property>
+ <property name="Conditions" type="a(sbbsi)" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="invalidates"/>
+ </property>
+ <property name="Asserts" type="a(sbbsi)" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="invalidates"/>
+ </property>
+ <property name="LoadError" type="(ss)" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="Transient" type="b" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="Perpetual" type="b" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="StartLimitIntervalUSec" type="t" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="StartLimitBurst" type="u" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="StartLimitAction" type="s" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="FailureAction" type="s" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="FailureActionExitStatus" type="i" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="SuccessAction" type="s" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="SuccessActionExitStatus" type="i" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="RebootArgument" type="s" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="InvocationID" type="ay" access="read">
+ </property>
+ <property name="CollectMode" type="s" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+ </property>
+ <property name="Refs" type="as" access="read">
+ <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
+ </property>
+ <method name="Start">
+ <arg type="s" name="mode" direction="in"/>
+ <arg type="o" name="job" direction="out"/>
+ </method>
+ <method name="Stop">
+ <arg type="s" name="mode" direction="in"/>
+ <arg type="o" name="job" direction="out"/>
+ </method>
+ <method name="Reload">
+ <arg type="s" name="mode" direction="in"/>
+ <arg type="o" name="job" direction="out"/>
+ </method>
+ <method name="Restart">
+ <arg type="s" name="mode" direction="in"/>
+ <arg type="o" name="job" direction="out"/>
+ </method>
+ <method name="TryRestart">
+ <arg type="s" name="mode" direction="in"/>
+ <arg type="o" name="job" direction="out"/>
+ </method>
+ <method name="ReloadOrRestart">
+ <arg type="s" name="mode" direction="in"/>
+ <arg type="o" name="job" direction="out"/>
+ </method>
+ <method name="ReloadOrTryRestart">
+ <arg type="s" name="mode" direction="in"/>
+ <arg type="o" name="job" direction="out"/>
+ </method>
+ <method name="EnqueueJob">
+ <arg type="s" name="job_type" direction="in"/>
+ <arg type="s" name="job_mode" direction="in"/>
+ <arg type="u" name="job_id" direction="out"/>
+ <arg type="o" name="job_path" direction="out"/>
+ <arg type="s" name="unit_id" direction="out"/>
+ <arg type="o" name="unit_path" direction="out"/>
+ <arg type="s" name="job_type" direction="out"/>
+ <arg type="a(uosos)" name="affected_jobs" direction="out"/>
+ </method>
+ <method name="Kill">
+ <arg type="s" name="whom" direction="in"/>
+ <arg type="i" name="signal" direction="in"/>
+ </method>
+ <method name="ResetFailed">
+ </method>
+ <method name="SetProperties">
+ <arg type="b" name="runtime" direction="in"/>
+ <arg type="a(sv)" name="properties" direction="in"/>
+ </method>
+ <method name="Ref">
+ </method>
+ <method name="Unref">
+ </method>
+ <method name="Clean">
+ <arg type="as" name="mask" direction="in"/>
+ </method>
+ <method name="Freeze">
+ </method>
+ <method name="Thaw">
+ </method>
+ </interface>
+</node>