now it is possible to erase templates with pveam
---
 PVE/CLI/pveam.pm | 45 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/PVE/CLI/pveam.pm b/PVE/CLI/pveam.pm
index b6adfc4..0f907cf 100644
--- a/PVE/CLI/pveam.pm
+++ b/PVE/CLI/pveam.pm
@@ -14,6 +14,7 @@ use PVE::RPCEnvironment;
 use PVE::JSONSchema qw(get_standard_option);
 use PVE::CLIHandler;
 use PVE::API2::Nodes;
+use PVE::Storage;
 
 use base qw(PVE::CLIHandler);
 
@@ -98,6 +99,49 @@ __PACKAGE__->register_method ({
        return $res;
     }});
 
+__PACKAGE__->register_method ({
+    name => 'destroy',
+    path => 'destroy',
+    method => 'DELETE',
+    description => "Destroy a template",
+    permissions => {
+       description => "Only user how can create templates can delete them",
+       check => ['perm', '/storage/{storage}', ['Datastore.AllocateTemplate']],
+    },
+    proxyto => 'node',
+    protected => 1,
+    parameters => {
+       additionalProperties => 0,
+       properties => {
+           node => get_standard_option('pve-node'),
+           template_path => { type => 'string',
+                         description => "The template which will destroyed",
+                         maxLength => 255,
+           },
+       },
+    },
+    returns => { type => 'null' },
+    code => sub {
+       my ($param) = @_;
+
+       my $rpcenv = PVE::RPCEnvironment::get();
+
+       my $authuser = $rpcenv->get_user();
+
+       my $template = $param->{template_path};
+
+       my $cfg = PVE::Cluster::cfs_read_file("storage.cfg");
+
+       $rpcenv->check_volume_access($authuser, $cfg, undef, $template);
+
+       my $abs_path = PVE::Storage::abs_filesystem_path($cfg, $template);
+
+       unlink $abs_path;
+
+       return undef;
+    }});
+
+
 my $print_list = sub {
     my ($list) = @_;
 
@@ -113,6 +157,7 @@ our $cmddef = {
     update => [ __PACKAGE__, 'update', []],
     download => [ 'PVE::API2::Nodes::Nodeinfo', 'apl_download', [ 'storage', 
'template'], { node => $nodename } ],
     list => [  __PACKAGE__, 'index', [ 'storage' ], { node => $nodename }, 
$print_list ],
+    destroy => [  __PACKAGE__, 'destroy', [ 'template_path' ], { node => 
$nodename }]
 };
 
 1;
-- 
2.1.4


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to