all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH storage 1/2] pvesm: reformat cmd definitions
@ 2021-09-27  7:09 Lorenz Stechauner
  2021-09-27  7:09 ` [pve-devel] [PATCH storage 2/2] fix #3633: pvesm: use print_api_results Lorenz Stechauner
  2021-09-27 12:36 ` [pve-devel] [PATCH storage 1/2] pvesm: reformat cmd definitions Thomas Lamprecht
  0 siblings, 2 replies; 3+ messages in thread
From: Lorenz Stechauner @ 2021-09-27  7:09 UTC (permalink / raw)
  To: pve-devel

Signed-off-by: Lorenz Stechauner <l.stechauner@proxmox.com>
---
 PVE/CLI/pvesm.pm | 343 ++++++++++++++++++++++++++++++-----------------
 1 file changed, 223 insertions(+), 120 deletions(-)

diff --git a/PVE/CLI/pvesm.pm b/PVE/CLI/pvesm.pm
index 190de91..7afbe22 100755
--- a/PVE/CLI/pvesm.pm
+++ b/PVE/CLI/pvesm.pm
@@ -574,76 +574,143 @@ my $print_api_result = sub {
 };
 
 our $cmddef = {
-    add => [ "PVE::API2::Storage::Config", 'create', ['type', 'storage'] ],
-    set => [ "PVE::API2::Storage::Config", 'update', ['storage'] ],
-    remove => [ "PVE::API2::Storage::Config", 'delete', ['storage'] ],
-    status => [ "PVE::API2::Storage::Status", 'index', [],
-		{ node => $nodename }, $print_status ],
-    list => [ "PVE::API2::Storage::Content", 'index', ['storage'],
-	      { node => $nodename }, $print_content ],
-    alloc => [ "PVE::API2::Storage::Content", 'create', ['storage', 'vmid', 'filename', 'size'],
-	       { node => $nodename }, sub {
-		   my $volid = shift;
-		   print "successfully created '$volid'\n";
-	       }],
-    free => [ "PVE::API2::Storage::Content", 'delete', ['volume'],
-	      { node => $nodename } ],
+    add => [
+	"PVE::API2::Storage::Config",
+	'create',
+	['type', 'storage'],
+    ],
+    set => [
+	"PVE::API2::Storage::Config",
+	'update',
+	['storage'],
+    ],
+    remove => [
+	"PVE::API2::Storage::Config",
+	'delete',
+	['storage'],
+    ],
+    status => [
+	"PVE::API2::Storage::Status",
+	'index',
+	[],
+	{ node => $nodename },
+	$print_status,
+    ],
+    list => [
+	"PVE::API2::Storage::Content",
+	'index',
+	['storage'],
+	{ node => $nodename },
+	$print_content,
+    ],
+    alloc => [
+	"PVE::API2::Storage::Content",
+	'create',
+	['storage', 'vmid', 'filename', 'size'],
+	{ node => $nodename },
+	sub {
+	    my $volid = shift;
+	    print "successfully created '$volid'\n";
+	},
+    ],
+    free => [
+	"PVE::API2::Storage::Content",
+	'delete',
+	['volume'],
+	{ node => $nodename },
+    ],
     scan => {
-	nfs => [ "PVE::API2::Storage::Scan", 'nfsscan', ['server'], { node => $nodename }, sub  {
-	    my $res = shift;
-
-	    my $maxlen = 0;
-	    foreach my $rec (@$res) {
-		my $len = length ($rec->{path});
-		$maxlen = $len if $len > $maxlen;
-	    }
-	    foreach my $rec (@$res) {
-		printf "%-${maxlen}s %s\n", $rec->{path}, $rec->{options};
-	    }
-	}],
-	cifs => [ "PVE::API2::Storage::Scan", 'cifsscan', ['server'], { node => $nodename }, sub  {
-	    my $res = shift;
-
-	    my $maxlen = 0;
-	    foreach my $rec (@$res) {
-		my $len = length ($rec->{share});
-		$maxlen = $len if $len > $maxlen;
-	    }
-	    foreach my $rec (@$res) {
-		printf "%-${maxlen}s %s\n", $rec->{share}, $rec->{description};
-	    }
-	}],
-	glusterfs => [ "PVE::API2::Storage::Scan", 'glusterfsscan', ['server'], { node => $nodename }, sub  {
-	    my $res = shift;
-
-	    foreach my $rec (@$res) {
-		printf "%s\n", $rec->{volname};
-	    }
-	}],
-	iscsi => [ "PVE::API2::Storage::Scan", 'iscsiscan', ['portal'], { node => $nodename }, sub  {
-	    my $res = shift;
+	nfs => [
+	    "PVE::API2::Storage::Scan",
+	    'nfsscan',
+	    ['server'],
+	    { node => $nodename },
+	    sub  {
+		my $res = shift;
+
+		my $maxlen = 0;
+		foreach my $rec (@$res) {
+		    my $len = length ($rec->{path});
+		    $maxlen = $len if $len > $maxlen;
+		}
+		foreach my $rec (@$res) {
+		    printf "%-${maxlen}s %s\n", $rec->{path}, $rec->{options};
+		}
+	    },
+	],
+	cifs => [
+	    "PVE::API2::Storage::Scan",
+	    'cifsscan',
+	    ['server'],
+	    { node => $nodename },
+	    sub  {
+		my $res = shift;
+
+		my $maxlen = 0;
+		foreach my $rec (@$res) {
+		    my $len = length ($rec->{share});
+		    $maxlen = $len if $len > $maxlen;
+		}
+		foreach my $rec (@$res) {
+		    printf "%-${maxlen}s %s\n", $rec->{share}, $rec->{description};
+		}
+	    },
+	],
+	glusterfs => [
+	    "PVE::API2::Storage::Scan",
+	    'glusterfsscan',
+	    ['server'],
+	    { node => $nodename },
+	    sub  {
+		my $res = shift;
 
-	    my $maxlen = 0;
-	    foreach my $rec (@$res) {
-		my $len = length ($rec->{target});
-		$maxlen = $len if $len > $maxlen;
-	    }
-	    foreach my $rec (@$res) {
-		printf "%-${maxlen}s %s\n", $rec->{target}, $rec->{portal};
-	    }
-	}],
-	lvm => [ "PVE::API2::Storage::Scan", 'lvmscan', [], { node => $nodename }, sub  {
-	    my $res = shift;
-	    foreach my $rec (@$res) {
-		printf "$rec->{vg}\n";
-	    }
-	}],
-	lvmthin => [ "PVE::API2::Storage::Scan", 'lvmthinscan', ['vg'], { node => $nodename }, sub  {
-	    my $res = shift;
-	    foreach my $rec (@$res) {
-		printf "$rec->{lv}\n";
-	    }
-	}],
+		foreach my $rec (@$res) {
+		    printf "%s\n", $rec->{volname};
+		}
+	    },
+	],
+	iscsi => [
+	    "PVE::API2::Storage::Scan",
+	    'iscsiscan',
+	    ['portal'],
+	    { node => $nodename },
+	    sub  {
+		my $res = shift;
+
+		my $maxlen = 0;
+		foreach my $rec (@$res) {
+		    my $len = length ($rec->{target});
+		    $maxlen = $len if $len > $maxlen;
+		}
+		foreach my $rec (@$res) {
+		    printf "%-${maxlen}s %s\n", $rec->{target}, $rec->{portal};
+		}
+	    },
+	],
+	lvm => [
+	    "PVE::API2::Storage::Scan",
+	    'lvmscan',
+	    [],
+	    { node => $nodename },
+	    sub  {
+		my $res = shift;
+		foreach my $rec (@$res) {
+		    printf "$rec->{vg}\n";
+		}
+	    },
+	],
+	lvmthin => [
+	    "PVE::API2::Storage::Scan",
+	    'lvmthinscan',
+	    ['vg'],
+	    { node => $nodename },
+	    sub  {
+		my $res = shift;
+		foreach my $rec (@$res) {
+		    printf "$rec->{lv}\n";
+		}
+	    },
+	],
 	pbs => [
 	    "PVE::API2::Storage::Scan",
 	    'pbsscan',
@@ -652,13 +719,19 @@ our $cmddef = {
 	    $print_api_result,
 	    $PVE::RESTHandler::standard_output_options,
 	],
-	zfs => [ "PVE::API2::Storage::Scan", 'zfsscan', [], { node => $nodename }, sub  {
-	    my $res = shift;
+	zfs => [
+	    "PVE::API2::Storage::Scan",
+	    'zfsscan',
+	    [],
+	    { node => $nodename },
+	    sub  {
+		my $res = shift;
 
-	    foreach my $rec (@$res) {
-		 printf "$rec->{pool}\n";
-	    }
-	}],
+		foreach my $rec (@$res) {
+		    printf "$rec->{pool}\n";
+		}
+	    },
+	],
     },
     nfsscan => { alias => 'scan nfs' },
     cifsscan => { alias => 'scan cifs' },
@@ -667,55 +740,85 @@ our $cmddef = {
     lvmscan => { alias => 'scan lvm' },
     lvmthinscan => { alias => 'scan lvmthin' },
     zfsscan => { alias => 'scan zfs' },
-    path => [ __PACKAGE__, 'path', ['volume']],
-    extractconfig => [__PACKAGE__, 'extractconfig', ['volume']],
-    export => [ __PACKAGE__, 'export', ['volume', 'format', 'filename']],
-    import => [ __PACKAGE__, 'import', ['volume', 'format', 'filename'], {}, sub  {
-	my $volid = shift;
-	print PVE::Storage::volume_imported_message($volid);
-    }],
-    apiinfo => [ __PACKAGE__, 'apiinfo', [], {}, sub {
-	my $res = shift;
-
-	print "APIVER $res->{apiver}\n";
-	print "APIAGE $res->{apiage}\n";
-    }],
-    'prune-backups' => [ __PACKAGE__, 'prunebackups', ['storage'], { node => $nodename }, sub {
-	my $res = shift;
-
-	my ($dryrun, $list) = ($res->{dryrun}, $res->{list});
-
-	return if !$dryrun;
-
-	if (!scalar(@{$list})) {
-	    print "No backups found\n";
-	    return;
-	}
+    path => [
+	__PACKAGE__,
+	'path',
+	['volume'],
+    ],
+    extractconfig => [
+	__PACKAGE__,
+	'extractconfig',
+	['volume'],
+    ],
+    export => [
+	__PACKAGE__,
+	'export',
+	['volume', 'format', 'filename'],
+    ],
+    import => [
+	__PACKAGE__,
+	'import',
+	['volume', 'format', 'filename'],
+	{},
+	sub {
+	    my $volid = shift;
+	    print PVE::Storage::volume_imported_message($volid);
+	},
+    ],
+    apiinfo => [
+	__PACKAGE__,
+	'apiinfo',
+	[],
+	{},
+	sub {
+	    my $res = shift;
 
-	print "NOTE: this is only a preview and might not be what a subsequent\n" .
-	      "prune call does if backups are removed/added in the meantime.\n\n";
+	    print "APIVER $res->{apiver}\n";
+	    print "APIAGE $res->{apiage}\n";
+	},
+    ],
+    'prune-backups' => [
+	__PACKAGE__,
+	'prunebackups',
+	['storage'],
+	{ node => $nodename },
+	sub {
+	    my $res = shift;
 
-	my @sorted = sort {
-	    my $vmcmp = PVE::Tools::safe_compare($a->{vmid}, $b->{vmid}, sub { $_[0] <=> $_[1] });
-	    return $vmcmp if $vmcmp ne 0;
-	    return $a->{ctime} <=> $b->{ctime};
-	} @{$list};
+	    my ($dryrun, $list) = ($res->{dryrun}, $res->{list});
 
-	my $maxlen = 0;
-	foreach my $backup (@sorted) {
-	    my $volid = $backup->{volid};
-	    $maxlen = length($volid) if length($volid) > $maxlen;
-	}
-	$maxlen+=1;
-
-	printf("%-${maxlen}s %15s %10s\n", 'Backup', 'Backup-ID', 'Prune-Mark');
-	foreach my $backup (@sorted) {
-	    my $type = $backup->{type};
-	    my $vmid = $backup->{vmid};
-	    my $backup_id = defined($vmid) ? "$type/$vmid" : "$type";
-	    printf("%-${maxlen}s %15s %10s\n", $backup->{volid}, $backup_id, $backup->{mark});
-	}
-    }],
+	    return if !$dryrun;
+
+	    if (!scalar(@{$list})) {
+		print "No backups found\n";
+		return;
+	    }
+
+	    print "NOTE: this is only a preview and might not be what a subsequent\n" .
+		"prune call does if backups are removed/added in the meantime.\n\n";
+
+	    my @sorted = sort {
+		my $vmcmp = PVE::Tools::safe_compare($a->{vmid}, $b->{vmid}, sub { $_[0] <=> $_[1] });
+		return $vmcmp if $vmcmp ne 0;
+		return $a->{ctime} <=> $b->{ctime};
+	    } @{$list};
+
+	    my $maxlen = 0;
+	    foreach my $backup (@sorted) {
+		my $volid = $backup->{volid};
+		$maxlen = length($volid) if length($volid) > $maxlen;
+	    }
+	    $maxlen+=1;
+
+	    printf("%-${maxlen}s %15s %10s\n", 'Backup', 'Backup-ID', 'Prune-Mark');
+	    foreach my $backup (@sorted) {
+		my $type = $backup->{type};
+		my $vmid = $backup->{vmid};
+		my $backup_id = defined($vmid) ? "$type/$vmid" : "$type";
+		printf("%-${maxlen}s %15s %10s\n", $backup->{volid}, $backup_id, $backup->{mark});
+	    }
+	},
+    ],
 };
 
 1;
-- 
2.30.2





^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-09-27 12:38 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-27  7:09 [pve-devel] [PATCH storage 1/2] pvesm: reformat cmd definitions Lorenz Stechauner
2021-09-27  7:09 ` [pve-devel] [PATCH storage 2/2] fix #3633: pvesm: use print_api_results Lorenz Stechauner
2021-09-27 12:36 ` [pve-devel] [PATCH storage 1/2] pvesm: reformat cmd definitions Thomas Lamprecht

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal