2001-11-19 18:20:50 +03:00
/*
2008-01-30 17:00:02 +03:00
* Copyright ( C ) 2001 - 2004 Sistina Software , Inc . All rights reserved .
2007-08-21 00:55:30 +04:00
* Copyright ( C ) 2004 - 2007 Red Hat , Inc . All rights reserved .
2001-11-19 18:20:50 +03:00
*
2004-03-30 23:35:44 +04:00
* This file is part of LVM2 .
2001-11-19 18:20:50 +03:00
*
2004-03-30 23:35:44 +04:00
* This copyrighted material is made available to anyone wishing to use ,
* modify , copy , or redistribute it subject to the terms and conditions
2007-08-21 00:55:30 +04:00
* of the GNU Lesser General Public License v .2 .1 .
2001-11-19 18:20:50 +03:00
*
2007-08-21 00:55:30 +04:00
* You should have received a copy of the GNU Lesser General Public License
2004-03-30 23:35:44 +04:00
* along with this program ; if not , write to the Free Software Foundation ,
2016-01-21 13:49:46 +03:00
* Inc . , 51 Franklin Street , Fifth Floor , Boston , MA 02110 - 1301 USA
2001-11-19 18:20:50 +03:00
*/
# include "tools.h"
2024-12-06 00:31:31 +03:00
static int _vgdisplay_colon_single ( struct cmd_context * cmd , const char * vg_name ,
2017-10-18 17:57:46 +03:00
struct volume_group * vg ,
struct processing_handle * handle __attribute__ ( ( unused ) ) )
2002-11-18 17:04:08 +03:00
{
2016-06-22 00:24:52 +03:00
if ( arg_is_set ( cmd , activevolumegroups_ARG ) & & ! lvs_in_vg_activated ( vg ) )
2013-12-03 17:41:25 +04:00
return ECMD_PROCESSED ;
2024-12-06 00:31:31 +03:00
vgdisplay_colons ( vg ) ;
return ECMD_PROCESSED ;
}
static int _vgdisplay_general_single ( struct cmd_context * cmd , const char * vg_name ,
struct volume_group * vg ,
struct processing_handle * handle __attribute__ ( ( unused ) ) )
{
if ( arg_is_set ( cmd , activevolumegroups_ARG ) & & ! lvs_in_vg_activated ( vg ) )
2003-10-22 02:06:07 +04:00
return ECMD_PROCESSED ;
2002-11-18 17:04:08 +03:00
2016-06-22 00:24:52 +03:00
if ( arg_is_set ( cmd , short_ARG ) ) {
2002-11-18 17:04:08 +03:00
vgdisplay_short ( vg ) ;
2003-10-22 02:06:07 +04:00
return ECMD_PROCESSED ;
2002-11-18 17:04:08 +03:00
}
2024-12-06 00:31:31 +03:00
vgdisplay_full ( vg ) ;
2002-11-18 17:04:08 +03:00
2016-06-22 00:24:52 +03:00
if ( arg_is_set ( cmd , verbose_ARG ) ) {
2002-11-18 17:04:08 +03:00
vgdisplay_extents ( vg ) ;
2014-10-07 19:45:45 +04:00
process_each_lv_in_vg ( cmd , vg , NULL , NULL , 0 , NULL ,
2016-11-29 21:00:15 +03:00
NULL , ( process_single_lv_fn_t ) lvdisplay_full ) ;
2002-11-18 17:04:08 +03:00
log_print ( " --- Physical volumes --- " ) ;
2014-10-07 03:34:04 +04:00
process_each_pv_in_vg ( cmd , vg , NULL ,
2007-08-07 13:06:05 +04:00
( process_single_pv_fn_t ) pvdisplay_short ) ;
2002-11-18 17:04:08 +03:00
}
2005-05-17 17:44:02 +04:00
check_current_backup ( vg ) ;
2003-10-22 02:06:07 +04:00
return ECMD_PROCESSED ;
2002-11-18 17:04:08 +03:00
}
2001-11-19 18:20:50 +03:00
2024-12-06 00:31:31 +03:00
int vgdisplay_colon_cmd ( struct cmd_context * cmd , int argc , char * * argv )
2001-11-19 18:20:50 +03:00
{
2024-12-06 18:18:23 +03:00
if ( argc & & arg_is_set ( cmd , activevolumegroups_ARG ) ) {
log_error ( " Option -A is not allowed with volume group names " ) ;
return EINVALID_CMD_LINE ;
}
2024-12-06 00:31:31 +03:00
return process_each_vg ( cmd , argc , argv , NULL , NULL , 0 , 0 , NULL , _vgdisplay_colon_single ) ;
}
2001-11-19 18:20:50 +03:00
2024-12-06 00:31:31 +03:00
int vgdisplay_general_cmd ( struct cmd_context * cmd , int argc , char * * argv )
{
2024-12-06 18:18:23 +03:00
if ( argc & & arg_is_set ( cmd , activevolumegroups_ARG ) ) {
log_error ( " Option -A is not allowed with volume group names " ) ;
return EINVALID_CMD_LINE ;
}
2024-11-22 15:25:29 +03:00
2024-12-06 18:18:23 +03:00
return process_each_vg ( cmd , argc , argv , NULL , NULL , 0 , 0 , NULL , _vgdisplay_general_single ) ;
2024-12-06 00:55:26 +03:00
}
2024-11-22 15:25:29 +03:00
int vgdisplay_columns_cmd ( struct cmd_context * cmd , int argc , char * * argv )
{
2024-12-06 00:31:31 +03:00
return vgs ( cmd , argc , argv ) ;
2024-11-22 15:25:29 +03:00
}
2024-12-06 00:31:31 +03:00
int vgdisplay ( struct cmd_context * cmd , int argc , char * * argv )
2024-11-22 15:25:29 +03:00
{
2024-12-06 00:31:31 +03:00
log_error ( INTERNAL_ERROR " Missing function for command definition %d:%s. " ,
cmd - > command - > command_index , command_enum ( cmd - > command - > command_enum ) ) ;
return ECMD_FAILED ;
2024-11-22 15:25:29 +03:00
}
2024-12-06 00:31:31 +03:00