From: Ivan Kruglov Date: Wed, 9 Jul 2025 13:00:04 +0000 (-0700) Subject: core: move ShowStatus/Log* from runtime to context X-Git-Tag: v258-rc1~105^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=303d1b6b57105a564b921e5a813d6bbbf739554b;p=thirdparty%2Fsystemd.git core: move ShowStatus/Log* from runtime to context --- diff --git a/src/core/varlink-manager.c b/src/core/varlink-manager.c index 65b4723f14b..a6a89488a40 100644 --- a/src/core/varlink-manager.c +++ b/src/core/varlink-manager.c @@ -39,11 +39,41 @@ static int manager_environment_build_json(sd_json_variant **ret, const char *nam return sd_json_variant_new_array_strv(ret, l); } +static int log_level_build_json(sd_json_variant **ret, const char *name, void *userdata) { + _cleanup_(sd_json_variant_unrefp) sd_json_variant *v = NULL; + int log_max_level = log_get_max_level(); + int r; + + assert(ret); + + for (LogTarget log_target = 0; log_target < _LOG_TARGET_SINGLE_MAX; log_target++) { + _cleanup_free_ char *log_level_string = NULL; + + int target_max_level = log_get_target_max_level(log_target); + const char *log_target_string = log_target_to_string(log_target); + + int log_level = MIN(log_max_level, target_max_level); + r = log_level_to_string_alloc(log_level, &log_level_string); + if (r < 0) + return r; + + r = sd_json_variant_set_field_string(&v, log_target_string, log_level_string); + if (r < 0) + return r; + } + + *ret = TAKE_PTR(v); + return 0; +} + static int manager_context_build_json(sd_json_variant **ret, const char *name, void *userdata) { Manager *m = ASSERT_PTR(userdata); return sd_json_buildo( ASSERT_PTR(ret), + SD_JSON_BUILD_PAIR_BOOLEAN("ShowStatus", manager_get_show_status_on(m)), + JSON_BUILD_PAIR_CALLBACK_NON_NULL("LogLevel", log_level_build_json, m), + SD_JSON_BUILD_PAIR_STRING("LogTarget", log_target_to_string(log_get_target())), JSON_BUILD_PAIR_CALLBACK_NON_NULL("Environment", manager_environment_build_json, m), SD_JSON_BUILD_PAIR_STRING("DefaultStandardOutput", exec_output_to_string(m->defaults.std_output)), SD_JSON_BUILD_PAIR_STRING("DefaultStandardError", exec_output_to_string(m->defaults.std_error)), @@ -76,33 +106,6 @@ static int manager_context_build_json(sd_json_variant **ret, const char *name, v SD_JSON_BUILD_PAIR_STRING("CtrlAltDelBurstAction", emergency_action_to_string(m->cad_burst_action))); } -static int log_level_build_runtime_json(sd_json_variant **ret, const char *name, void *userdata) { - _cleanup_(sd_json_variant_unrefp) sd_json_variant *v = NULL; - int log_max_level = log_get_max_level(); - int r; - - assert(ret); - - for (LogTarget log_target = 0; log_target < _LOG_TARGET_SINGLE_MAX; log_target++) { - _cleanup_free_ char *log_level_string = NULL; - - int target_max_level = log_get_target_max_level(log_target); - const char *log_target_string = log_target_to_string(log_target); - - int log_level = MIN(log_max_level, target_max_level); - r = log_level_to_string_alloc(log_level, &log_level_string); - if (r < 0) - return r; - - r = sd_json_variant_set_field_string(&v, log_target_string, log_level_string); - if (r < 0) - return r; - } - - *ret = TAKE_PTR(v); - return 0; -} - static int manager_runtime_build_json(sd_json_variant **ret, const char *name, void *userdata) { Manager *m = ASSERT_PTR(userdata); dual_timestamp watchdog_last_ping; @@ -141,9 +144,6 @@ static int manager_runtime_build_json(sd_json_variant **ret, const char *name, v JSON_BUILD_PAIR_DUAL_TIMESTAMP_NON_NULL("InitRDGeneratorsFinishTimestamp", &m->timestamps[MANAGER_TIMESTAMP_INITRD_GENERATORS_FINISH]), JSON_BUILD_PAIR_DUAL_TIMESTAMP_NON_NULL("InitRDUnitsLoadStartTimestamp", &m->timestamps[MANAGER_TIMESTAMP_INITRD_UNITS_LOAD_START]), JSON_BUILD_PAIR_DUAL_TIMESTAMP_NON_NULL("InitRDUnitsLoadFinishTimestamp", &m->timestamps[MANAGER_TIMESTAMP_INITRD_UNITS_LOAD_FINISH]), - SD_JSON_BUILD_PAIR_BOOLEAN("ShowStatus", manager_get_show_status_on(m)), - JSON_BUILD_PAIR_CALLBACK_NON_NULL("LogLevel", log_level_build_runtime_json, m), - SD_JSON_BUILD_PAIR_STRING("LogTarget", log_target_to_string(log_get_target())), SD_JSON_BUILD_PAIR_UNSIGNED("NNames", hashmap_size(m->units)), SD_JSON_BUILD_PAIR_UNSIGNED("NFailedUnits", set_size(m->failed_units)), SD_JSON_BUILD_PAIR_UNSIGNED("NJobs", hashmap_size(m->jobs)), diff --git a/src/shared/varlink-io.systemd.Manager.c b/src/shared/varlink-io.systemd.Manager.c index 7a31f42559e..551d2d592e9 100644 --- a/src/shared/varlink-io.systemd.Manager.c +++ b/src/shared/varlink-io.systemd.Manager.c @@ -20,6 +20,12 @@ static SD_VARLINK_DEFINE_STRUCT_TYPE( static SD_VARLINK_DEFINE_STRUCT_TYPE( ManagerContext, + SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd-system.conf.html#LogColor="), + SD_VARLINK_DEFINE_FIELD(ShowStatus, SD_VARLINK_BOOL, 0), + SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd-system.conf.html#LogColor="), + SD_VARLINK_DEFINE_FIELD_BY_TYPE(LogLevel, LogLevelStruct, 0), + SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd-system.conf.html#LogColor="), + SD_VARLINK_DEFINE_FIELD(LogTarget, SD_VARLINK_STRING, 0), SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd-system.conf.html#ManagerEnvironment="), SD_VARLINK_DEFINE_FIELD(Environment, SD_VARLINK_STRING, SD_VARLINK_ARRAY|SD_VARLINK_NULLABLE), SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/"PROJECT_VERSION_STR"/systemd-system.conf.html#DefaultStandardOutput="), @@ -137,12 +143,6 @@ static SD_VARLINK_DEFINE_STRUCT_TYPE( SD_VARLINK_DEFINE_FIELD_BY_TYPE(InitRDUnitsLoadStartTimestamp, Timestamp, SD_VARLINK_NULLABLE), SD_VARLINK_FIELD_COMMENT("Timestamp when the manager first finished loading units in the initrd"), SD_VARLINK_DEFINE_FIELD_BY_TYPE(InitRDUnitsLoadFinishTimestamp, Timestamp, SD_VARLINK_NULLABLE), - SD_VARLINK_FIELD_COMMENT("The current show status of the manager"), - SD_VARLINK_DEFINE_FIELD(ShowStatus, SD_VARLINK_BOOL, 0), - SD_VARLINK_FIELD_COMMENT("The current log level of the manager"), - SD_VARLINK_DEFINE_FIELD_BY_TYPE(LogLevel, LogLevelStruct, 0), - SD_VARLINK_FIELD_COMMENT("The current log target of the manager"), - SD_VARLINK_DEFINE_FIELD(LogTarget, SD_VARLINK_STRING, 0), SD_VARLINK_FIELD_COMMENT("The amount of unique unit names currently loaded"), SD_VARLINK_DEFINE_FIELD(NNames, SD_VARLINK_INT, 0), SD_VARLINK_FIELD_COMMENT("The amount of failed units"),