summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-09-23 15:38:42 +0200
committerLennart Poettering <lennart@poettering.net>2010-09-23 15:38:42 +0200
commit76bf48b7d09b6e22d1952ac2fa07fec8ee501b76 (patch)
treea1b29cd56327310d713e6e557ef8eb1e7aab2dca /src
parent22be093ffb403a1c474037939ca9b88b1ee39f77 (diff)
dbus: export number of total failed jobs on D-Bus interface
Diffstat (limited to 'src')
-rw-r--r--src/dbus-manager.c2
-rw-r--r--src/job.c6
-rw-r--r--src/manager.h1
3 files changed, 8 insertions, 1 deletions
diff --git a/src/dbus-manager.c b/src/dbus-manager.c
index eeea821e45..efff06a18e 100644
--- a/src/dbus-manager.c
+++ b/src/dbus-manager.c
@@ -133,6 +133,7 @@
" <property name=\"NNames\" type=\"u\" access=\"read\"/>\n" \
" <property name=\"NJobs\" type=\"u\" access=\"read\"/>\n" \
" <property name=\"NInstalledJobs\" type=\"u\" access=\"read\"/>\n" \
+ " <property name=\"NFailedJobs\" type=\"u\" access=\"read\"/>\n" \
" <property name=\"Progress\" type=\"d\" access=\"read\"/>\n" \
" <property name=\"Environment\" type=\"as\" access=\"read\"/>\n" \
" <property name=\"ConfirmSpawn\" type=\"b\" access=\"read\"/>\n" \
@@ -267,6 +268,7 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection,
{ "org.freedesktop.systemd1.Manager", "NNames", bus_manager_append_n_names, "u", NULL },
{ "org.freedesktop.systemd1.Manager", "NJobs", bus_manager_append_n_jobs, "u", NULL },
{ "org.freedesktop.systemd1.Manager", "NInstalledJobs",bus_property_append_uint32, "u", &m->n_installed_jobs },
+ { "org.freedesktop.systemd1.Manager", "NFailedJobs", bus_property_append_uint32, "u", &m->n_failed_jobs },
{ "org.freedesktop.systemd1.Manager", "Progress", bus_manager_append_progress, "d", NULL },
{ "org.freedesktop.systemd1.Manager", "Environment", bus_property_append_strv, "as", m->environment },
{ "org.freedesktop.systemd1.Manager", "ConfirmSpawn", bus_property_append_bool, "b", &m->confirm_spawn },
diff --git a/src/job.c b/src/job.c
index ac3bb9d729..c219b0d18b 100644
--- a/src/job.c
+++ b/src/job.c
@@ -478,9 +478,13 @@ int job_finish_and_invalidate(Job *j, bool success) {
return 0;
}
+ j->failed = !success;
+
log_debug("Job %s/%s finished, success=%s", j->unit->meta.id, job_type_to_string(j->type), yes_no(success));
- j->failed = !success;
+ if (j->failed)
+ j->manager->n_failed_jobs ++;
+
u = j->unit;
t = j->type;
job_free(j);
diff --git a/src/manager.h b/src/manager.h
index c404443f52..df87ed6b62 100644
--- a/src/manager.h
+++ b/src/manager.h
@@ -210,6 +210,7 @@ struct Manager {
int n_deserializing;
unsigned n_installed_jobs;
+ unsigned n_failed_jobs;
};
int manager_new(ManagerRunningAs running_as, Manager **m);