From 03455c2879699852b691903343e378c28992ff6a Mon Sep 17 00:00:00 2001 From: Lucas De Marchi Date: Wed, 18 Feb 2015 14:22:37 -0200 Subject: core: emit changes for NFailedUnits property By notifying the clients when this property is changed it's possible to allow "system health monitor" tools to get transitions like running<->degraded. This is an alternative to send changes on the SystemState property since the latter is more difficult to derive. --- src/core/manager.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/core/manager.c') diff --git a/src/core/manager.c b/src/core/manager.c index 79a9d54954..7966b387fc 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -3053,6 +3053,23 @@ const char *manager_get_runtime_prefix(Manager *m) { getenv("XDG_RUNTIME_DIR"); } +void manager_update_failed_units(Manager *m, Unit *u, bool failed) { + unsigned size; + + assert(m); + assert(u->manager == m); + + size = set_size(m->failed_units); + + if (failed) + set_put(m->failed_units, u); + else + set_remove(m->failed_units, u); + + if (set_size(m->failed_units) != size) + bus_manager_send_change_signal(m); +} + ManagerState manager_state(Manager *m) { Unit *u; -- cgit v1.2.3-54-g00ecf