Merge pull request #32236 from poettering/journalctl-list-namespace-followup
journalctl: --list-namespaces followup
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user