Skip to content

Commit

Permalink
systemctl: suppress errors with "show" for nonexistent units and prop…
Browse files Browse the repository at this point in the history
…erties

Show is documented to be program-parseable, and printing the warning about
about a non-existent unit, while useful for humans, broke a lot of scripts.
Restore previous behaviour of returning success and printing empty or useless
stuff for units which do not exist, and printing empty values for properties
which do not exists.

With SYSTEMD_LOG_LEVEL=debug, hints are printed, but the return value is
still 0.

This undoes parts of e33a06a and 3dced37 and fixes #3856.

We might consider adding an explicit switch to fail on missing units/properties
(e.g. --ensure-exists or similar), and make -P foobar equivalent to
--ensure-exists --property=foobar.

Cherry-picked from: bd5b9f0
Resolves: #1380259
  • Loading branch information
keszybz authored and lnykryn committed Sep 29, 2016
1 parent cd23811 commit 6d590cc
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions src/systemctl/systemctl.c
Expand Up @@ -4272,12 +4272,14 @@ static int show_one(
return log_error_errno(r, "Failed to map properties: %s", bus_error_message(&error, r));

if (streq_ptr(info.load_state, "not-found") && streq_ptr(info.active_state, "inactive")) {
log_error("Unit %s could not be found.", unit);
log_full(streq(verb, "status") ? LOG_ERR : LOG_DEBUG,
"Unit %s could not be found.", unit);

if (streq(verb, "status"))
return EXIT_PROGRAM_OR_SERVICES_STATUS_UNKNOWN;

return -ENOENT;
if (!streq(verb, "show"))
return -ENOENT;
}

r = sd_bus_message_rewind(reply, true);
Expand Down Expand Up @@ -4343,10 +4345,11 @@ static int show_one(

if (show_properties) {
char **pp;
int not_found_level = streq(verb, "show") ? LOG_DEBUG : LOG_WARNING;

STRV_FOREACH(pp, arg_properties) {
if (!set_contains(found_properties, *pp)) {
log_warning("Property %s does not exist.", *pp);
log_full(not_found_level, "Property %s does not exist.", *pp);
r = -ENXIO;
}
}
Expand Down

0 comments on commit 6d590cc

Please sign in to comment.