summaryrefslogtreecommitdiff
path: root/src/core/transaction.c
diff options
context:
space:
mode:
authorFranck Bui <fbui@suse.com>2016-01-14 09:25:18 +0100
committerFranck Bui <fbui@suse.com>2016-01-14 10:46:12 +0100
commitf14637fc19c449502af0209d1862e4f829c5cb47 (patch)
tree6a4a14670342f6efa84db0f54603f68885d7c237 /src/core/transaction.c
parentca9ec350f39096f19d6672e38ca2419877627a4b (diff)
transaction: downgrade warnings about wanted unit which are not found
If a unit was pulled by a Wants= dependency but its unit file was not present then we logged this as an error. However Wants= might be used to configure a soft/optional dependency on another unit, ie. start an optional service only if it's installed otherwise simply skip it. In this case emitting an error doesn't look appropriate. But it's still an error if the optional dependency exists but its activation fails for any reasons.
Diffstat (limited to 'src/core/transaction.c')
-rw-r--r--src/core/transaction.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/core/transaction.c b/src/core/transaction.c
index 2f163190e9..bc85cef266 100644
--- a/src/core/transaction.c
+++ b/src/core/transaction.c
@@ -949,9 +949,10 @@ int transaction_add_job_and_dependencies(
SET_FOREACH(dep, ret->unit->dependencies[UNIT_WANTS], i) {
r = transaction_add_job_and_dependencies(tr, JOB_START, dep, ret, false, false, false, ignore_order, e);
if (r < 0) {
+ /* unit masked and unit not found are not considered as errors. */
log_unit_full(dep,
- r == -EBADR /* unit masked */ ? LOG_DEBUG : LOG_WARNING, r,
- "Cannot add dependency job, ignoring: %s",
+ r == -EBADR || r == -ENOENT ? LOG_DEBUG : LOG_WARNING,
+ r, "Cannot add dependency job, ignoring: %s",
bus_error_message(e, r));
sd_bus_error_free(e);
}