[pve-devel] [PATCH 2/4] add pveam download
Wolfgang Link
w.link at proxmox.com
Wed Feb 24 12:11:06 CET 2016
With this function you can download templates from the repositories.
---
PVE/API2/Nodes.pm | 26 ++++++++++++++++++++++++--
PVE/CLI/pveam.pm | 2 ++
2 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/PVE/API2/Nodes.pm b/PVE/API2/Nodes.pm
index aa1fa0b..434b936 100644
--- a/PVE/API2/Nodes.pm
+++ b/PVE/API2/Nodes.pm
@@ -1040,8 +1040,15 @@ __PACKAGE__->register_method({
additionalProperties => 0,
properties => {
node => get_standard_option('pve-node'),
- storage => get_standard_option('pve-storage-id'),
- template => { type => 'string', maxLength => 255 },
+ storage => get_standard_option('pve-storage-id', {
+ description => "Only list status for specified storage",
+ completion => \&PVE::Storage::complete_storage_enabled,
+ }),
+ template => { type => 'string',
+ description => "The template wich will downloaded",
+ maxLength => 255,
+ completion => \&complete_templet_repo,
+ },
},
},
returns => { type => "string" },
@@ -1519,6 +1526,21 @@ __PACKAGE__->register_method ({
}});
+# bash completion helper
+
+sub complete_templet_repo {
+ my ($cmdname, $pname, $cvalue) = @_;
+
+ my $repo = PVE::APLInfo::load_data();
+ my $res = [];
+ foreach my $templ (keys %{$repo->{all}}) {
+ next if $templ !~ m/^$cvalue/;
+ push @$res, $templ;
+ }
+
+ return $res;
+}
+
package PVE::API2::Nodes;
use strict;
diff --git a/PVE/CLI/pveam.pm b/PVE/CLI/pveam.pm
index 407d629..e90a7d7 100644
--- a/PVE/CLI/pveam.pm
+++ b/PVE/CLI/pveam.pm
@@ -13,6 +13,7 @@ use PVE::INotify;
use PVE::RPCEnvironment;
use PVE::JSONSchema qw(get_standard_option);
use PVE::CLIHandler;
+use PVE::API2::Nodes;
use base qw(PVE::CLIHandler);
@@ -46,6 +47,7 @@ __PACKAGE__->register_method ({
our $cmddef = {
update => [ __PACKAGE__, 'update', []],
+ download => [ 'PVE::API2::Nodes::Nodeinfo', 'apl_download', [ 'storage', 'template'], { node => $nodename } ],
};
1;
--
2.1.4
More information about the pve-devel
mailing list