this will be used for the lvm part of the disk management
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
my $cmd = ['/sbin/vgs', '--separator', ':', '--noheadings', '--units', 'b',
my $cmd = ['/sbin/vgs', '--separator', ':', '--noheadings', '--units', 'b',
- '--unbuffered', '--nosuffix', '--options',
- 'vg_name,vg_size,vg_free'];
+ '--unbuffered', '--nosuffix', '--options'];
+
+ my $cols = [qw(vg_name vg_size vg_free lv_count)];
+
+ if ($includepvs) {
+ push @$cols, qw(pv_name pv_size pv_free);
+ }
+
+ push @$cmd, join(',', @$cols);
- my ($name, $size, $free) = split (':', $line);
+ my ($name, $size, $free, $lvcount, $pvname, $pvsize, $pvfree) = split (':', $line);
+
+ $vgs->{$name} = { size => int ($size), free => int ($free), lvcount => int($lvcount) }
+ if !$vgs->{$name};
- $vgs->{$name} = { size => int ($size), free => int ($free) };
+ if (defined($pvname) && defined($pvsize) && defined($pvfree)) {
+ push @{$vgs->{$name}->{pvs}}, {
+ name => $pvname,
+ size => int($pvsize),
+ free => int($pvfree),
+ };
+ }