mirror of
git://git.proxmox.com/git/qemu-server.git
synced 2024-12-25 23:21:43 +03:00
110 lines
2.3 KiB
Perl
Executable File
110 lines
2.3 KiB
Perl
Executable File
#!/usr/bin/perl -w
|
|
|
|
use strict;
|
|
use PVE::SafeSyslog;
|
|
use PVE::Tools qw(extract_param);
|
|
use PVE::INotify;
|
|
use PVE::RPCEnvironment;
|
|
use PVE::CLIHandler;
|
|
use PVE::JSONSchema qw(get_standard_option);
|
|
use PVE::API2::Qemu;
|
|
|
|
use Data::Dumper; # fixme: remove
|
|
|
|
use base qw(PVE::CLIHandler);
|
|
|
|
$ENV{'PATH'} = '/sbin:/bin:/usr/sbin:/usr/bin';
|
|
|
|
initlog('qmrestore');
|
|
|
|
die "please run as root\n" if $> != 0;
|
|
|
|
PVE::INotify::inotify_init();
|
|
|
|
my $rpcenv = PVE::RPCEnvironment->init('cli');
|
|
|
|
$rpcenv->init_request();
|
|
$rpcenv->set_language($ENV{LANG});
|
|
$rpcenv->set_user('root@pam');
|
|
|
|
__PACKAGE__->register_method({
|
|
name => 'qmrestore',
|
|
path => 'qmrestore',
|
|
method => 'POST',
|
|
description => "Restore QemuServer vzdump backups.",
|
|
parameters => {
|
|
additionalProperties => 0,
|
|
properties => {
|
|
vmid => get_standard_option('pve-vmid'),
|
|
archive => {
|
|
description => "The backup file. You can pass '-' to read from standard input.",
|
|
type => 'string',
|
|
maxLength => 255,
|
|
},
|
|
storage => get_standard_option('pve-storage-id', {
|
|
description => "Default storage.",
|
|
optional => 1,
|
|
}),
|
|
force => {
|
|
optional => 1,
|
|
type => 'boolean',
|
|
description => "Allow to overwrite existing VM.",
|
|
},
|
|
unique => {
|
|
optional => 1,
|
|
type => 'boolean',
|
|
description => "Assign a unique random ethernet address.",
|
|
},
|
|
pool => {
|
|
optional => 1,
|
|
type => 'string', format => 'pve-poolid',
|
|
description => "Add the VM to the specified pool.",
|
|
},
|
|
},
|
|
},
|
|
returns => {
|
|
type => 'string',
|
|
},
|
|
code => sub {
|
|
my ($param) = @_;
|
|
|
|
$param->{node} = PVE::INotify::nodename();
|
|
|
|
return PVE::API2::Qemu->create_vm($param);
|
|
}});
|
|
|
|
my $cmddef = [ __PACKAGE__, 'qmrestore', ['archive', 'vmid'], undef,
|
|
sub {
|
|
my $upid = shift;
|
|
my $status = PVE::Tools::upid_read_status($upid);
|
|
exit($status eq 'OK' ? 0 : -1);
|
|
}];
|
|
|
|
push @ARGV, 'help' if !scalar(@ARGV);
|
|
|
|
PVE::CLIHandler::handle_simple_cmd($cmddef, \@ARGV, undef, $0);
|
|
|
|
exit 0;
|
|
|
|
__END__
|
|
|
|
=head1 NAME
|
|
|
|
qmrestore - restore QemuServer vzdump backups
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
=include synopsis
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
Restore the QemuServer vzdump backup C<archive> to virtual machine
|
|
C<vmid>. Volumes are allocated on the original storage if there is no
|
|
C<storage> specified.
|
|
|
|
=head1 SEE ALSO
|
|
|
|
vzdump(1) vzrestore(1)
|
|
|
|
=include pve_copyright
|