]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core: move Slice from runtime to context in io.systemd.Unit.List
authorIvan Kruglov <mail@ikruglov.com>
Fri, 11 Jul 2025 13:54:53 +0000 (06:54 -0700)
committerIvan Kruglov <mail@ikruglov.com>
Fri, 11 Jul 2025 13:56:17 +0000 (06:56 -0700)
src/core/varlink-cgroup.c
src/core/varlink-unit.c
src/shared/varlink-io.systemd.Unit.c

index 7d8392bcea8c0918bb0cc1d9cc9564e55a2db562..59c0a0f15bae0caba672ec78bb622043c4f56054 100644 (file)
@@ -258,10 +258,12 @@ static int controllers_build_json(sd_json_variant **ret, const char *name, void
 }
 
 int unit_cgroup_context_build_json(sd_json_variant **ret, const char *name, void *userdata) {
+        Unit *u = ASSERT_PTR(userdata);
+
         assert(ret);
         assert(name);
 
-        CGroupContext *c = userdata;
+        CGroupContext *c = unit_get_cgroup_context(u);
         if (!c) {
                 *ret = NULL;
                 return 0;
@@ -270,6 +272,8 @@ int unit_cgroup_context_build_json(sd_json_variant **ret, const char *name, void
         return sd_json_buildo(
                         ret,
 
+                        JSON_BUILD_PAIR_STRING_NON_EMPTY("Slice", unit_slice_name(u)),
+
                         /* CPU Control */
                         JSON_BUILD_PAIR_UNSIGNED_NOT_EQUAL("CPUWeight", c->cpu_weight, CGROUP_WEIGHT_INVALID),
                         JSON_BUILD_PAIR_UNSIGNED_NOT_EQUAL("StartupCPUWeight", c->startup_cpu_weight, CGROUP_WEIGHT_INVALID),
@@ -579,7 +583,6 @@ int unit_cgroup_runtime_build_json(sd_json_variant **ret, const char *name, void
                         /* ID */
                         JSON_BUILD_PAIR_UNSIGNED_NON_ZERO("ID", crt->cgroup_id),
                         JSON_BUILD_PAIR_STRING_NON_EMPTY("Path", crt->cgroup_path ? empty_to_root(crt->cgroup_path) : NULL),
-                        JSON_BUILD_PAIR_STRING_NON_EMPTY("Slice", unit_slice_name(u)),
 
                         /* Memory */
                         JSON_BUILD_PAIR_CALLBACK_NON_NULL("MemoryCurrent", memory_accounting_metric_build_json, u),
index 84ce79220c46f4ec39ffb9eaabbaae54f4e69a61..71ca5d4a7dfcd32806f4aefea83de7b4854afa93 100644 (file)
@@ -181,7 +181,7 @@ static int unit_context_build_json(sd_json_variant **ret, const char *name, void
                         SD_JSON_BUILD_PAIR_BOOLEAN("DebugInvocation", u->debug_invocation),
 
                         /* CGroup */
-                        JSON_BUILD_PAIR_CALLBACK_NON_NULL("CGroup", unit_cgroup_context_build_json, unit_get_cgroup_context(u)));
+                        JSON_BUILD_PAIR_CALLBACK_NON_NULL("CGroup", unit_cgroup_context_build_json, u));
 
         // TODO follow up PRs:
         // JSON_BUILD_PAIR_CALLBACK_NON_NULL("Exec", exec_context_build_json, u)
index dd561f35abfe17f9ee451d0d5303c621f323bf46..30d5d8cd5746c6d610c3ec8900cd809ea56caaed 100644 (file)
@@ -87,6 +87,9 @@ static SD_VARLINK_DEFINE_STRUCT_TYPE(
 static SD_VARLINK_DEFINE_STRUCT_TYPE(
                 CGroupContext,
 
+                SD_VARLINK_FIELD_COMMENT("Slice of the CGroup"),
+                SD_VARLINK_DEFINE_FIELD(Slice, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),
+
                 /* CPU Control
                  * https://www.freedesktop.org/software/systemd/man/latest/systemd.resource-control.html#CPU%20Control */
                 SD_VARLINK_FIELD_COMMENT("https://www.freedesktop.org/software/systemd/man/latest/systemd.resource-control.html#CPUWeight=weight"),
@@ -403,8 +406,6 @@ static SD_VARLINK_DEFINE_STRUCT_TYPE(
                 SD_VARLINK_DEFINE_FIELD(ID, SD_VARLINK_INT, SD_VARLINK_NULLABLE),
                 SD_VARLINK_FIELD_COMMENT("Path of the CGroup"),
                 SD_VARLINK_DEFINE_FIELD(Path, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),
-                SD_VARLINK_FIELD_COMMENT("Slice of the CGroup"),
-                SD_VARLINK_DEFINE_FIELD(Slice, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),
 
                 /* Memory */
                 SD_VARLINK_FIELD_COMMENT("The current amount of memory used by the cgroup, in bytes"),