mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-03 01:17:45 +03:00
core: do not return 'skipped' when Condition*= fail with StartUnitWithFlags()
Backward incompatible change to avoid returning 'skipped' if a condition causes
a job activation to be skipped when using StartUnitWithFlags().
Job results are broadcasted, so it is theoretically possible that existing
software could get confused if they see this result.
Replaces https://github.com/systemd/systemd/pull/22369
(cherry picked from commit ee3ae55e75
)
This commit is contained in:
parent
1072a9382b
commit
5b7c7ed357
@ -1193,10 +1193,7 @@ node /org/freedesktop/systemd1 {
|
||||
|
||||
<para><function>StartUnitWithFlags()</function> is similar to <function>StartUnit()</function> but
|
||||
allows the caller to pass an extra <varname>flags</varname> parameter, which does not support any
|
||||
flags for now, and is reserved for future extensions. The new method also changes the behaviour
|
||||
of the <varname>JobRemoved</varname> signal and make it return <literal>skipped</literal> in case
|
||||
the unit activation job is skipped because a <varname>Condition*=</varname> is not satisfied.
|
||||
With the <varname>StartUnit</varname> method, <literal>done</literal> would be returned instead.</para>
|
||||
flags for now, and is reserved for future extensions.</para>
|
||||
|
||||
<para><function>StopUnit()</function> is similar to <function>StartUnit()</function> but stops the
|
||||
specified unit rather than starting it. Note that the <literal>isolate</literal> mode is invalid for this
|
||||
|
@ -417,10 +417,6 @@ int bus_unit_method_start_generic(
|
||||
return sd_bus_reply_method_errorf(message, SD_BUS_ERROR_INVALID_ARGS,
|
||||
"Invalid 'flags' parameter '%" PRIu64 "'",
|
||||
input_flags);
|
||||
|
||||
/* The new method unconditionally uses the new behaviour of returning 'skip' when
|
||||
* a job is skipped. */
|
||||
job_flags |= BUS_UNIT_QUEUE_RETURN_SKIP_ON_CONDITION_FAIL;
|
||||
}
|
||||
|
||||
r = bus_verify_manage_units_async_full(
|
||||
|
@ -31,7 +31,7 @@ int bus_unit_method_thaw(sd_bus_message *message, void *userdata, sd_bus_error *
|
||||
typedef enum BusUnitQueueFlags {
|
||||
BUS_UNIT_QUEUE_RELOAD_IF_POSSIBLE = 1 << 0,
|
||||
BUS_UNIT_QUEUE_VERBOSE_REPLY = 1 << 1,
|
||||
BUS_UNIT_QUEUE_RETURN_SKIP_ON_CONDITION_FAIL = 1 << 2,
|
||||
BUS_UNIT_QUEUE_RETURN_SKIP_ON_CONDITION_FAIL = 1 << 2, // FIXME: currently not used, will be changed soon
|
||||
} BusUnitQueueFlags;
|
||||
|
||||
int bus_unit_queue_job_one(
|
||||
|
Loading…
Reference in New Issue
Block a user