]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
systemctl: Allow 'edit' and 'cat' on unloaded units 2410/head
authorDouglas Christman <DouglasChristman@gmail.com>
Thu, 21 Jan 2016 23:22:55 +0000 (18:22 -0500)
committerDouglas Christman <DouglasChristman@gmail.com>
Thu, 21 Jan 2016 23:22:55 +0000 (18:22 -0500)
Don't fail if the unit has a LoadError; otherwise `systemctl edit` cannot be
used to correct the error (e.g. multiple "ExecStart=" lines).

Remove file changed warning so cat output isn't interspersed with log messages.

Fixes #829

src/systemctl/systemctl.c

index d021d30f78ca48aad727cb693f47600e963a34ec..0199f28eba5024720b871f18be9d0df86f2c4e7c 100644 (file)
@@ -2325,42 +2325,12 @@ static int unit_find_paths(
 
         if (!install_client_side() && !unit_name_is_valid(unit_name, UNIT_NAME_TEMPLATE)) {
                 _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
-                _cleanup_(sd_bus_message_unrefp) sd_bus_message *unit_load_error = NULL;
                 _cleanup_free_ char *unit = NULL;
-                char *unit_load_error_name, *unit_load_error_message;
 
                 unit = unit_dbus_path_from_name(unit_name);
                 if (!unit)
                         return log_oom();
 
-                if (need_daemon_reload(bus, unit_name) > 0)
-                        warn_unit_file_changed(unit_name);
-
-                r = sd_bus_get_property(
-                                bus,
-                                "org.freedesktop.systemd1",
-                                unit,
-                                "org.freedesktop.systemd1.Unit",
-                                "LoadError",
-                                &error,
-                                &unit_load_error,
-                                "(ss)");
-                if (r < 0)
-                        return log_error_errno(r, "Failed to get LoadError: %s", bus_error_message(&error, r));
-
-                r = sd_bus_message_read(
-                                unit_load_error,
-                                "(ss)",
-                                &unit_load_error_name,
-                                &unit_load_error_message);
-                if (r < 0)
-                        return bus_log_parse_error(r);
-
-                if (!isempty(unit_load_error_name)) {
-                        log_error("Unit %s is not loaded: %s", unit_name, unit_load_error_message);
-                        return 0;
-                }
-
                 r = sd_bus_get_property_string(
                                 bus,
                                 "org.freedesktop.systemd1",