Skip to content

Commit

Permalink
Merge pull request systemd#34572 from keszybz/fix-printing-of-RootIma…
Browse files Browse the repository at this point in the history
…geOptions

Fix printing of RootImageOptions
  • Loading branch information
keszybz authored Sep 28, 2024
2 parents 6fd5853 + 8dc40c2 commit d713c13
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 7 deletions.
4 changes: 3 additions & 1 deletion src/shared/bus-print-properties.c
Original file line number Diff line number Diff line change
Expand Up @@ -363,8 +363,10 @@ int bus_message_print_all_properties(
if (!name_with_equal)
return log_oom();

if (!filter || strv_contains(filter, name) ||
if (!filter ||
strv_contains(filter, name) ||
(expected_value = strv_find_startswith(filter, name_with_equal))) {

r = sd_bus_message_peek_type(m, NULL, &contents);
if (r < 0)
return r;
Expand Down
11 changes: 7 additions & 4 deletions src/shared/bus-unit-util.c
Original file line number Diff line number Diff line change
Expand Up @@ -656,9 +656,9 @@ static int bus_append_cgroup_property(sd_bus_message *m, const char *field, cons
if (r >= 0) {
char *n;

/* When this is a percentage we'll convert this into a relative value in the range 0…UINT32_MAX
* and pass it in the MemoryLowScale property (and related ones). This way the physical memory
* size can be determined server-side. */
/* When this is a percentage we'll convert this into a relative value in the range
* 0…UINT32_MAX and pass it in the MemoryLowScale property (and related ones). This
* way the physical memory size can be determined server-side. */

n = strjoina(field, "Scale");
r = sd_bus_message_append(m, "(sv)", n, "u", UINT32_SCALE_FROM_PERMYRIAD(r));
Expand Down Expand Up @@ -728,7 +728,10 @@ static int bus_append_cgroup_property(sd_bus_message *m, const char *field, cons
return 1;
}

if (cgroup_io_limit_type_from_string(field) >= 0 || STR_IN_SET(field, "BlockIOReadBandwidth", "BlockIOWriteBandwidth")) {
if (cgroup_io_limit_type_from_string(field) >= 0 ||
STR_IN_SET(field, "BlockIOReadBandwidth",
"BlockIOWriteBandwidth")) {

if (isempty(eq))
r = sd_bus_message_append(m, "(sv)", field, "a(st)", 0);
else {
Expand Down
27 changes: 25 additions & 2 deletions src/systemctl/systemctl-show.c
Original file line number Diff line number Diff line change
Expand Up @@ -1769,6 +1769,29 @@ static int print_property(const char *name, const char *expected_value, sd_bus_m
return bus_log_parse_error(r);

return 1;

} else if (streq(name, "RootImageOptions")) {
const char *a, *p;

/* In config files, the syntax allows the partition name to be omitted. Here, we
* always print the partition name, also because we have no way of knowing if it was
* originally omitted or not. We also print the partitions on separate lines. */

r = sd_bus_message_enter_container(m, SD_BUS_TYPE_ARRAY, "(ss)");
if (r < 0)
return bus_log_parse_error(r);

while ((r = sd_bus_message_read(m, "(ss)", &a, &p)) > 0)
bus_print_property_valuef(name, expected_value, flags, "%s:%s", a, p);
if (r < 0)
return bus_log_parse_error(r);

r = sd_bus_message_exit_container(m);
if (r < 0)
return bus_log_parse_error(r);

return 1;

} else if (streq(name, "MountImages")) {
_cleanup_free_ char *paths = NULL;

Expand Down Expand Up @@ -2008,8 +2031,8 @@ typedef enum SystemctlShowMode{

static const char* const systemctl_show_mode_table[_SYSTEMCTL_SHOW_MODE_MAX] = {
[SYSTEMCTL_SHOW_PROPERTIES] = "show",
[SYSTEMCTL_SHOW_STATUS] = "status",
[SYSTEMCTL_SHOW_HELP] = "help",
[SYSTEMCTL_SHOW_STATUS] = "status",
[SYSTEMCTL_SHOW_HELP] = "help",
};

DEFINE_PRIVATE_STRING_TABLE_LOOKUP_FROM_STRING(systemctl_show_mode, SystemctlShowMode);
Expand Down

0 comments on commit d713c13

Please sign in to comment.