pvesm: add scan subcommands

Change to a cleaner sub command interface grouping all scan commands.

Alias to old command names for backward compatibility
Best viewed with the ignore whitespace/indent change '-w' flag from
git

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
Thomas Lamprecht
2018-11-19 16:23:25 +01:00
committed by Wolfgang Bumiller
parent 95de09ae15
commit 957321a86e

View File

@ -663,75 +663,77 @@ our $cmddef = {
}], }],
free => [ "PVE::API2::Storage::Content", 'delete', ['volume'], free => [ "PVE::API2::Storage::Content", 'delete', ['volume'],
{ node => $nodename } ], { node => $nodename } ],
nfsscan => [ __PACKAGE__, 'nfsscan', ['server'], scan => {
{ node => $nodename }, sub { nfs => [ __PACKAGE__, 'nfsscan', ['server'], { node => $nodename }, sub {
my $res = shift; my $res = shift;
my $maxlen = 0; my $maxlen = 0;
foreach my $rec (@$res) { foreach my $rec (@$res) {
my $len = length ($rec->{path}); my $len = length ($rec->{path});
$maxlen = $len if $len > $maxlen; $maxlen = $len if $len > $maxlen;
} }
foreach my $rec (@$res) { foreach my $rec (@$res) {
printf "%-${maxlen}s %s\n", $rec->{path}, $rec->{options}; printf "%-${maxlen}s %s\n", $rec->{path}, $rec->{options};
} }
}], }],
cifsscan => [ __PACKAGE__, 'cifsscan', ['server'], cifs => [ __PACKAGE__, 'cifsscan', ['server'], { node => $nodename }, sub {
{ node => $nodename }, sub { my $res = shift;
my $res = shift;
my $maxlen = 0; my $maxlen = 0;
foreach my $rec (@$res) { foreach my $rec (@$res) {
my $len = length ($rec->{share}); my $len = length ($rec->{share});
$maxlen = $len if $len > $maxlen; $maxlen = $len if $len > $maxlen;
} }
foreach my $rec (@$res) { foreach my $rec (@$res) {
printf "%-${maxlen}s %s\n", $rec->{share}, $rec->{description}; printf "%-${maxlen}s %s\n", $rec->{share}, $rec->{description};
} }
}], }],
glusterfsscan => [ __PACKAGE__, 'glusterfsscan', ['server'], glusterfs => [ __PACKAGE__, 'glusterfsscan', ['server'], { node => $nodename }, sub {
{ node => $nodename }, sub { my $res = shift;
my $res = shift;
foreach my $rec (@$res) { foreach my $rec (@$res) {
printf "%s\n", $rec->{volname}; printf "%s\n", $rec->{volname};
} }
}], }],
iscsiscan => [ __PACKAGE__, 'iscsiscan', ['portal'], iscsi => [ __PACKAGE__, 'iscsiscan', ['portal'], { node => $nodename }, sub {
{ node => $nodename }, sub { my $res = shift;
my $res = shift;
my $maxlen = 0; my $maxlen = 0;
foreach my $rec (@$res) { foreach my $rec (@$res) {
my $len = length ($rec->{target}); my $len = length ($rec->{target});
$maxlen = $len if $len > $maxlen; $maxlen = $len if $len > $maxlen;
} }
foreach my $rec (@$res) { foreach my $rec (@$res) {
printf "%-${maxlen}s %s\n", $rec->{target}, $rec->{portal}; printf "%-${maxlen}s %s\n", $rec->{target}, $rec->{portal};
} }
}], }],
lvmscan => [ __PACKAGE__, 'lvmscan', [], lvm => [ __PACKAGE__, 'lvmscan', [], { node => $nodename }, sub {
{ node => $nodename }, sub { my $res = shift;
my $res = shift; foreach my $rec (@$res) {
foreach my $rec (@$res) { printf "$rec->{vg}\n";
printf "$rec->{vg}\n"; }
} }],
}], lvmthin => [ __PACKAGE__, 'lvmthinscan', ['vg'], { node => $nodename }, sub {
lvmthinscan => [ __PACKAGE__, 'lvmthinscan', ['vg'], my $res = shift;
{ node => $nodename }, sub { foreach my $rec (@$res) {
my $res = shift; printf "$rec->{lv}\n";
foreach my $rec (@$res) { }
printf "$rec->{lv}\n"; }],
} zfs => [ __PACKAGE__, 'zfsscan', [], { node => $nodename }, sub {
}], my $res = shift;
zfsscan => [ __PACKAGE__, 'zfsscan', [],
{ node => $nodename }, sub {
my $res = shift;
foreach my $rec (@$res) { foreach my $rec (@$res) {
printf "$rec->{pool}\n"; printf "$rec->{pool}\n";
} }
}], }],
},
nfsscan => { alias => 'scan nfs' },
cifsscan => { alias => 'scan cifs' },
glusterfsscan => { alias => 'scan glusterfs' },
iscsiscan => { alias => 'scan iscsi' },
lvmscan => { alias => 'scan lvm' },
lvmthinscan => { alias => 'scan lvmthin' },
zfsscan => { alias => 'scan zfs' },
path => [ __PACKAGE__, 'path', ['volume']], path => [ __PACKAGE__, 'path', ['volume']],
extractconfig => [__PACKAGE__, 'extractconfig', ['volume']], extractconfig => [__PACKAGE__, 'extractconfig', ['volume']],
export => [ __PACKAGE__, 'export', ['volume', 'format', 'filename']], export => [ __PACKAGE__, 'export', ['volume', 'format', 'filename']],