mirror of
https://github.com/systemd/systemd.git
synced 2025-03-25 18:50:18 +03:00
core: use bus_unit_check_load_state() in transaction_add_job_and_dependencies()
This commit is contained in:
parent
bca27e1729
commit
ee87525c5e
@ -27,6 +27,7 @@
|
||||
#include "bus-error.h"
|
||||
#include "terminal-util.h"
|
||||
#include "transaction.h"
|
||||
#include "dbus-unit.h"
|
||||
|
||||
static void transaction_unlink_job(Transaction *tr, Job *j, bool delete_dependencies);
|
||||
|
||||
@ -860,30 +861,12 @@ int transaction_add_job_and_dependencies(
|
||||
if (!IN_SET(unit->load_state, UNIT_LOADED, UNIT_ERROR, UNIT_NOT_FOUND, UNIT_MASKED))
|
||||
return sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED, "Unit %s is not loaded properly.", unit->id);
|
||||
|
||||
if (type != JOB_STOP && unit->load_state == UNIT_ERROR) {
|
||||
if (unit->load_error == -ENOENT || unit->manager->test_run)
|
||||
return sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED,
|
||||
"Unit %s failed to load: %s.",
|
||||
unit->id,
|
||||
strerror(-unit->load_error));
|
||||
else
|
||||
return sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED,
|
||||
"Unit %s failed to load: %s. "
|
||||
"See system logs and 'systemctl status %s' for details.",
|
||||
unit->id,
|
||||
strerror(-unit->load_error),
|
||||
unit->id);
|
||||
if (type != JOB_STOP) {
|
||||
r = bus_unit_check_load_state(unit, e);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
|
||||
if (type != JOB_STOP && unit->load_state == UNIT_NOT_FOUND)
|
||||
return sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED,
|
||||
"Unit %s failed to load: %s.",
|
||||
unit->id, strerror(-unit->load_error));
|
||||
|
||||
if (type != JOB_STOP && unit->load_state == UNIT_MASKED)
|
||||
return sd_bus_error_setf(e, BUS_ERROR_UNIT_MASKED,
|
||||
"Unit %s is masked.", unit->id);
|
||||
|
||||
if (!unit_job_is_applicable(unit, type))
|
||||
return sd_bus_error_setf(e, BUS_ERROR_JOB_TYPE_NOT_APPLICABLE,
|
||||
"Job type %s is not applicable for unit %s.",
|
||||
|
@ -2631,7 +2631,13 @@ static int start_unit_one(
|
||||
|
||||
verb = method_to_verb(method);
|
||||
|
||||
return log_error_errno(r, "Failed to %s %s: %s", verb, name, bus_error_message(error, r));
|
||||
log_error("Failed to %s %s: %s", verb, name, bus_error_message(error, r));
|
||||
|
||||
if (!sd_bus_error_has_name(error, BUS_ERROR_NO_SUCH_UNIT) &&
|
||||
!sd_bus_error_has_name(error, BUS_ERROR_UNIT_MASKED))
|
||||
log_error("See system logs and 'systemctl status %s' for details.", name);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
r = sd_bus_message_read(reply, "o", &path);
|
||||
|
Loading…
x
Reference in New Issue
Block a user