Files
pve-storage/PVE/API2/Storage/Replication.pm
2017-05-05 10:01:26 +02:00

79 lines
1.6 KiB
Perl

package PVE::API2::Storage::Replication;
use warnings;
use strict;
use PVE::JSONSchema qw(get_standard_option);
use PVE::ReplicationTools;
use PVE::RESTHandler;
use base qw(PVE::RESTHandler);
__PACKAGE__->register_method ({
name => 'index',
path => '',
method => 'GET',
permissions => { user => 'all' },
description => "Directory index.",
parameters => {
additionalProperties => 0,
properties => {
node => get_standard_option('pve-node'),
},
},
returns => {
type => 'array',
items => {
type => "object",
properties => {},
},
links => [ { rel => 'child', href => "{name}" } ],
},
code => sub {
my ($param) = @_;
return [
{ name => 'jobs' },
];
}});
__PACKAGE__->register_method ({
name => 'jobs',
path => 'jobs',
method => 'GET',
description => "List of all replication jobs.",
permissions => {
user => 'all',
},
protected => 1,
proxyto => 'node',
parameters => {
additionalProperties => 0,
properties => {
node => get_standard_option('pve-node'),
nodes => get_standard_option('pve-node-list' ,
{description => "Notes where the jobs is located.",
optional => 1}),
},
},
returns => { type => 'object' },
code => sub {
my ($param) = @_;
if ($param->{nodes}) {
foreach my $node (PVE::Tools::split_list($param->{nodes})) {
die "Node: $node does not exists.\n" if
!PVE::Cluster::check_node_exists($node);
}
}
my $nodes = $param->{nodes} ?
$param->{nodes} : $param->{node};
return PVE::ReplicationTools::get_all_jobs($nodes);
}});
1;