Zbigniew Jędrzejewski-Szmek ea1976
From 1034fff7872e864bc6a7e091724b85a44f34474f Mon Sep 17 00:00:00 2001
Zbigniew Jędrzejewski-Szmek ea1976
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Zbigniew Jędrzejewski-Szmek ea1976
Date: Sun, 2 Nov 2014 12:19:38 -0500
Zbigniew Jędrzejewski-Szmek ea1976
Subject: [PATCH] manager: do not print timing when running in test mode
Zbigniew Jędrzejewski-Szmek ea1976
Zbigniew Jędrzejewski-Szmek ea1976
(cherry picked from commit 56dacdbc1ca95cef8bf8c97c0d7af761a71eaab3)
Zbigniew Jędrzejewski-Szmek ea1976
---
Zbigniew Jędrzejewski-Szmek ea1976
 src/core/manager.c | 84 ++++++++++++++++++++++++++++++------------------------
Zbigniew Jędrzejewski-Szmek ea1976
 1 file changed, 46 insertions(+), 38 deletions(-)
Zbigniew Jędrzejewski-Szmek ea1976
Zbigniew Jędrzejewski-Szmek ea1976
diff --git a/src/core/manager.c b/src/core/manager.c
Zbigniew Jędrzejewski-Szmek ea1976
index d427d88d4e..ff29ae1d9d 100644
Zbigniew Jędrzejewski-Szmek ea1976
--- a/src/core/manager.c
Zbigniew Jędrzejewski-Szmek ea1976
+++ b/src/core/manager.c
Zbigniew Jędrzejewski-Szmek ea1976
@@ -2584,45 +2584,13 @@ bool manager_unit_inactive_or_pending(Manager *m, const char *name) {
Zbigniew Jędrzejewski-Szmek ea1976
         return unit_inactive_or_pending(u);
Zbigniew Jędrzejewski-Szmek ea1976
 }
Zbigniew Jędrzejewski-Szmek ea1976
 
Zbigniew Jędrzejewski-Szmek ea1976
-void manager_check_finished(Manager *m) {
Zbigniew Jędrzejewski-Szmek ea1976
+static void manager_notify_finished(Manager *m) {
Zbigniew Jędrzejewski-Szmek ea1976
         char userspace[FORMAT_TIMESPAN_MAX], initrd[FORMAT_TIMESPAN_MAX], kernel[FORMAT_TIMESPAN_MAX], sum[FORMAT_TIMESPAN_MAX];
Zbigniew Jędrzejewski-Szmek ea1976
         usec_t firmware_usec, loader_usec, kernel_usec, initrd_usec, userspace_usec, total_usec;
Zbigniew Jędrzejewski-Szmek ea1976
-        Unit *u = NULL;
Zbigniew Jędrzejewski-Szmek ea1976
-        Iterator i;
Zbigniew Jędrzejewski-Szmek ea1976
 
Zbigniew Jędrzejewski-Szmek ea1976
-        assert(m);
Zbigniew Jędrzejewski-Szmek ea1976
-
Zbigniew Jędrzejewski-Szmek ea1976
-        if (m->n_running_jobs == 0)
Zbigniew Jędrzejewski-Szmek ea1976
-                m->jobs_in_progress_event_source = sd_event_source_unref(m->jobs_in_progress_event_source);
Zbigniew Jędrzejewski-Szmek ea1976
-
Zbigniew Jędrzejewski-Szmek ea1976
-        if (hashmap_size(m->jobs) > 0) {
Zbigniew Jędrzejewski-Szmek ea1976
-
Zbigniew Jędrzejewski-Szmek ea1976
-                if (m->jobs_in_progress_event_source)
Zbigniew Jędrzejewski-Szmek ea1976
-                        sd_event_source_set_time(m->jobs_in_progress_event_source, now(CLOCK_MONOTONIC) + JOBS_IN_PROGRESS_WAIT_USEC);
Zbigniew Jędrzejewski-Szmek ea1976
-
Zbigniew Jędrzejewski-Szmek ea1976
-                return;
Zbigniew Jędrzejewski-Szmek ea1976
-        }
Zbigniew Jędrzejewski-Szmek ea1976
-
Zbigniew Jędrzejewski-Szmek ea1976
-        manager_flip_auto_status(m, false);
Zbigniew Jędrzejewski-Szmek ea1976
-
Zbigniew Jędrzejewski-Szmek ea1976
-        /* Notify Type=idle units that we are done now */
Zbigniew Jędrzejewski-Szmek ea1976
-        m->idle_pipe_event_source = sd_event_source_unref(m->idle_pipe_event_source);
Zbigniew Jędrzejewski-Szmek ea1976
-        manager_close_idle_pipe(m);
Zbigniew Jędrzejewski-Szmek ea1976
-
Zbigniew Jędrzejewski-Szmek ea1976
-        /* Turn off confirm spawn now */
Zbigniew Jędrzejewski-Szmek ea1976
-        m->confirm_spawn = false;
Zbigniew Jędrzejewski-Szmek ea1976
-
Zbigniew Jędrzejewski-Szmek ea1976
-        /* No need to update ask password status when we're going non-interactive */
Zbigniew Jędrzejewski-Szmek ea1976
-        manager_close_ask_password(m);
Zbigniew Jędrzejewski-Szmek ea1976
-
Zbigniew Jędrzejewski-Szmek ea1976
-        /* This is no longer the first boot */
Zbigniew Jędrzejewski-Szmek ea1976
-        manager_set_first_boot(m, false);
Zbigniew Jędrzejewski-Szmek ea1976
-
Zbigniew Jędrzejewski-Szmek ea1976
-        if (dual_timestamp_is_set(&m->finish_timestamp))
Zbigniew Jędrzejewski-Szmek ea1976
+        if (m->test_run)
Zbigniew Jędrzejewski-Szmek ea1976
                 return;
Zbigniew Jędrzejewski-Szmek ea1976
 
Zbigniew Jędrzejewski-Szmek ea1976
-        dual_timestamp_get(&m->finish_timestamp);
Zbigniew Jędrzejewski-Szmek ea1976
-
Zbigniew Jędrzejewski-Szmek ea1976
         if (m->running_as == SYSTEMD_SYSTEM && detect_container(NULL) <= 0) {
Zbigniew Jędrzejewski-Szmek ea1976
 
Zbigniew Jędrzejewski-Szmek ea1976
                 /* Note that m->kernel_usec.monotonic is always at 0,
Zbigniew Jędrzejewski-Szmek ea1976
@@ -2677,10 +2645,6 @@ void manager_check_finished(Manager *m) {
Zbigniew Jędrzejewski-Szmek ea1976
                            NULL);
Zbigniew Jędrzejewski-Szmek ea1976
         }
Zbigniew Jędrzejewski-Szmek ea1976
 
Zbigniew Jędrzejewski-Szmek ea1976
-        SET_FOREACH(u, m->startup_units, i)
Zbigniew Jędrzejewski-Szmek ea1976
-                if (u->cgroup_path)
Zbigniew Jędrzejewski-Szmek ea1976
-                        cgroup_context_apply(unit_get_cgroup_context(u), unit_get_cgroup_mask(u), u->cgroup_path, manager_state(m));
Zbigniew Jędrzejewski-Szmek ea1976
-
Zbigniew Jędrzejewski-Szmek ea1976
         bus_manager_send_finished(m, firmware_usec, loader_usec, kernel_usec, initrd_usec, userspace_usec, total_usec);
Zbigniew Jędrzejewski-Szmek ea1976
 
Zbigniew Jędrzejewski-Szmek ea1976
         sd_notifyf(false,
Zbigniew Jędrzejewski-Szmek ea1976
@@ -2689,6 +2653,50 @@ void manager_check_finished(Manager *m) {
Zbigniew Jędrzejewski-Szmek ea1976
                    format_timespan(sum, sizeof(sum), total_usec, USEC_PER_MSEC));
Zbigniew Jędrzejewski-Szmek ea1976
 }
Zbigniew Jędrzejewski-Szmek ea1976
 
Zbigniew Jędrzejewski-Szmek ea1976
+void manager_check_finished(Manager *m) {
Zbigniew Jędrzejewski-Szmek ea1976
+        Unit *u = NULL;
Zbigniew Jędrzejewski-Szmek ea1976
+        Iterator i;
Zbigniew Jędrzejewski-Szmek ea1976
+
Zbigniew Jędrzejewski-Szmek ea1976
+        assert(m);
Zbigniew Jędrzejewski-Szmek ea1976
+
Zbigniew Jędrzejewski-Szmek ea1976
+        if (m->n_running_jobs == 0)
Zbigniew Jędrzejewski-Szmek ea1976
+                m->jobs_in_progress_event_source = sd_event_source_unref(m->jobs_in_progress_event_source);
Zbigniew Jędrzejewski-Szmek ea1976
+
Zbigniew Jędrzejewski-Szmek ea1976
+        if (hashmap_size(m->jobs) > 0) {
Zbigniew Jędrzejewski-Szmek ea1976
+
Zbigniew Jędrzejewski-Szmek ea1976
+                if (m->jobs_in_progress_event_source)
Zbigniew Jędrzejewski-Szmek ea1976
+                        sd_event_source_set_time(m->jobs_in_progress_event_source, now(CLOCK_MONOTONIC) + JOBS_IN_PROGRESS_WAIT_USEC);
Zbigniew Jędrzejewski-Szmek ea1976
+
Zbigniew Jędrzejewski-Szmek ea1976
+                return;
Zbigniew Jędrzejewski-Szmek ea1976
+        }
Zbigniew Jędrzejewski-Szmek ea1976
+
Zbigniew Jędrzejewski-Szmek ea1976
+        manager_flip_auto_status(m, false);
Zbigniew Jędrzejewski-Szmek ea1976
+
Zbigniew Jędrzejewski-Szmek ea1976
+        /* Notify Type=idle units that we are done now */
Zbigniew Jędrzejewski-Szmek ea1976
+        m->idle_pipe_event_source = sd_event_source_unref(m->idle_pipe_event_source);
Zbigniew Jędrzejewski-Szmek ea1976
+        manager_close_idle_pipe(m);
Zbigniew Jędrzejewski-Szmek ea1976
+
Zbigniew Jędrzejewski-Szmek ea1976
+        /* Turn off confirm spawn now */
Zbigniew Jędrzejewski-Szmek ea1976
+        m->confirm_spawn = false;
Zbigniew Jędrzejewski-Szmek ea1976
+
Zbigniew Jędrzejewski-Szmek ea1976
+        /* No need to update ask password status when we're going non-interactive */
Zbigniew Jędrzejewski-Szmek ea1976
+        manager_close_ask_password(m);
Zbigniew Jędrzejewski-Szmek ea1976
+
Zbigniew Jędrzejewski-Szmek ea1976
+        /* This is no longer the first boot */
Zbigniew Jędrzejewski-Szmek ea1976
+        manager_set_first_boot(m, false);
Zbigniew Jędrzejewski-Szmek ea1976
+
Zbigniew Jędrzejewski-Szmek ea1976
+        if (dual_timestamp_is_set(&m->finish_timestamp))
Zbigniew Jędrzejewski-Szmek ea1976
+                return;
Zbigniew Jędrzejewski-Szmek ea1976
+
Zbigniew Jędrzejewski-Szmek ea1976
+        dual_timestamp_get(&m->finish_timestamp);
Zbigniew Jędrzejewski-Szmek ea1976
+
Zbigniew Jędrzejewski-Szmek ea1976
+        manager_notify_finished(m);
Zbigniew Jędrzejewski-Szmek ea1976
+
Zbigniew Jędrzejewski-Szmek ea1976
+        SET_FOREACH(u, m->startup_units, i)
Zbigniew Jędrzejewski-Szmek ea1976
+                if (u->cgroup_path)
Zbigniew Jędrzejewski-Szmek ea1976
+                        cgroup_context_apply(unit_get_cgroup_context(u), unit_get_cgroup_mask(u), u->cgroup_path, manager_state(m));
Zbigniew Jędrzejewski-Szmek ea1976
+}
Zbigniew Jędrzejewski-Szmek ea1976
+
Zbigniew Jędrzejewski-Szmek ea1976
 static int create_generator_dir(Manager *m, char **generator, const char *name) {
Zbigniew Jędrzejewski-Szmek ea1976
         char *p;
Zbigniew Jędrzejewski-Szmek ea1976
         int r;