mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-02 01:18:26 +03:00
Show available fields if report given invalid field. (e.g. lvs -o list)
This commit is contained in:
parent
f67c0fd5f7
commit
1baed0e1ae
@ -1,5 +1,6 @@
|
||||
Version 2.02.11 -
|
||||
=====================================
|
||||
Show available fields if report given invalid field. (e.g. lvs -o list)
|
||||
Add timestamp functions with --disable-realtime configure option.
|
||||
Add %VG, %LV and %FREE suffices to lvcreate/lvresize --extents arg.
|
||||
Fix two potential NULL pointer derefs in error cases in vg_read().
|
||||
|
@ -948,6 +948,44 @@ static struct {
|
||||
|
||||
const unsigned int _num_fields = sizeof(_fields) / sizeof(_fields[0]);
|
||||
|
||||
static void _display_fields(void)
|
||||
{
|
||||
uint32_t f;
|
||||
const char *type, *last_type = "";
|
||||
|
||||
for (f = 0; f < _num_fields; f++) {
|
||||
switch (_fields[f].type) {
|
||||
case PVS:
|
||||
type = "Physical Volume";
|
||||
break;
|
||||
case LVS:
|
||||
type = "Logical Volume";
|
||||
break;
|
||||
case VGS:
|
||||
type = "Volume Group";
|
||||
break;
|
||||
case SEGS:
|
||||
type = "Logical Volume Segment";
|
||||
break;
|
||||
case PVSEGS:
|
||||
type = "Physical Volume Segment";
|
||||
break;
|
||||
default:
|
||||
type = " ";
|
||||
}
|
||||
|
||||
if (type != last_type) {
|
||||
if (*last_type)
|
||||
log_print(" ");
|
||||
log_print("%s Fields", type);
|
||||
}
|
||||
|
||||
log_print("- %s", _fields[f].id);
|
||||
|
||||
last_type = type;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Initialise report handle
|
||||
*/
|
||||
@ -1080,6 +1118,8 @@ static int _parse_options(struct report_handle *rh, const char *format)
|
||||
while (*we && *we != ',')
|
||||
we++;
|
||||
if (!_field_match(rh, ws, (size_t) (we - ws))) {
|
||||
_display_fields();
|
||||
log_print(" ");
|
||||
log_error("Unrecognised field: %.*s", (int) (we - ws),
|
||||
ws);
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user