mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-26 10:03:40 +03:00
core: generate nice error messages for auxiliary transient units, too
Let's move the validation checks into the loop that sets up the main and auxiliary transient units, so that we can generate pretty error messages for all units a transient unit transaction generates, not just for the main unit.
This commit is contained in:
parent
d1fcdcd87a
commit
06cc6afa04
@ -644,6 +644,7 @@ static int transient_unit_from_message(
|
||||
Unit **unit,
|
||||
sd_bus_error *error) {
|
||||
|
||||
UnitType t;
|
||||
Unit *u;
|
||||
int r;
|
||||
|
||||
@ -651,6 +652,13 @@ static int transient_unit_from_message(
|
||||
assert(message);
|
||||
assert(name);
|
||||
|
||||
t = unit_name_to_type(name);
|
||||
if (t < 0)
|
||||
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid unit name or type.");
|
||||
|
||||
if (!unit_vtable[t]->can_transient)
|
||||
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Unit type %s does not support transient units.", unit_type_to_string(t));
|
||||
|
||||
r = manager_load_unit(m, name, NULL, error, &u);
|
||||
if (r < 0)
|
||||
return r;
|
||||
@ -735,7 +743,6 @@ static int method_start_transient_unit(sd_bus_message *message, void *userdata,
|
||||
const char *name, *smode;
|
||||
Manager *m = userdata;
|
||||
JobMode mode;
|
||||
UnitType t;
|
||||
Unit *u;
|
||||
int r;
|
||||
|
||||
@ -750,13 +757,6 @@ static int method_start_transient_unit(sd_bus_message *message, void *userdata,
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
t = unit_name_to_type(name);
|
||||
if (t < 0)
|
||||
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid unit type.");
|
||||
|
||||
if (!unit_vtable[t]->can_transient)
|
||||
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Unit type %s does not support transient units.", unit_type_to_string(t));
|
||||
|
||||
mode = job_mode_from_string(smode);
|
||||
if (mode < 0)
|
||||
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Job mode %s is invalid.", smode);
|
||||
|
Loading…
x
Reference in New Issue
Block a user