Merge pull request #32236 from poettering/journalctl-list-namespace-followup

journalctl: --list-namespaces followup
This commit is contained in:
Lennart Poettering
2024-04-16 15:45:06 +02:00
committed by GitHub
2 changed files with 25 additions and 12 deletions
+24 -12
View File
@@ -211,7 +211,6 @@ int action_list_field_names(void) {
int action_list_namespaces(void) {
_cleanup_(table_unrefp) Table *table = NULL;
sd_id128_t machine;
char machine_id[SD_ID128_STRING_MAX];
int r;
assert(arg_action == ACTION_LIST_NAMESPACES);
@@ -220,8 +219,6 @@ int action_list_namespaces(void) {
if (r < 0)
return log_error_errno(r, "Failed to get machine ID: %m");
sd_id128_to_string(machine, machine_id);
table = table_new("namespace");
if (!table)
return log_oom();
@@ -243,27 +240,42 @@ int action_list_namespaces(void) {
}
FOREACH_DIRENT(de, dirp, return log_error_errno(errno, "Failed to iterate through %s: %m", path)) {
char *dot;
if (!startswith(de->d_name, machine_id))
const char *e = strchr(de->d_name, '.');
if (!e)
continue;
dot = strchr(de->d_name, '.');
if (!dot)
_cleanup_free_ char *ids = strndup(de->d_name, e - de->d_name);
if (!ids)
return log_oom();
sd_id128_t id;
r = sd_id128_from_string(ids, &id);
if (r < 0)
continue;
if (!log_namespace_name_valid(dot + 1))
if (!sd_id128_equal(machine, id))
continue;
r = table_add_cell(table, NULL, TABLE_STRING, dot + 1);
e++;
if (!log_namespace_name_valid(e))
continue;
r = table_add_cell(table, NULL, TABLE_STRING, e);
if (r < 0)
return table_log_add_error(r);
}
}
r = table_print_with_pager(table, arg_json_format_flags, arg_pager_flags, !arg_quiet);
if (r < 0)
return table_log_print_error(r);
if (table_isempty(table) && FLAGS_SET(arg_json_format_flags, JSON_FORMAT_OFF)) {
if (!arg_quiet)
log_notice("No namespaces found.");
} else {
r = table_print_with_pager(table, arg_json_format_flags, arg_pager_flags, !arg_quiet);
if (r < 0)
return r;
}
return 0;
}
+1
View File
@@ -265,6 +265,7 @@ static int help(void) {
" -N --fields List all field names currently used\n"
" -F --field=FIELD List all values that a specified field takes\n"
" --list-boots Show terse information about recorded boots\n"
" --list-namespaces Show list of journal namespaces\n"
" --disk-usage Show total disk usage of all journal files\n"
" --vacuum-size=BYTES Reduce disk usage below specified size\n"
" --vacuum-files=INT Leave only the specified number of journal files\n"