implement extract_vzdump_config for PBSPlugin

This commit is contained in:
Dietmar Maurer
2020-02-19 13:55:28 +01:00
committed by Thomas Lamprecht
parent 271fe39460
commit c855ac150c
2 changed files with 36 additions and 0 deletions

View File

@ -1370,6 +1370,15 @@ sub extract_vzdump_config_vma {
sub extract_vzdump_config {
my ($cfg, $volid) = @_;
my ($storeid, $volname) = parse_volume_id($volid);
if (defined($storeid)) {
my $scfg = storage_config($cfg, $storeid);
if ($scfg->{type} eq 'pbs') {
storage_check_enabled($cfg, $storeid);
return PVE::Storage::PBSPlugin->extract_vzdump_config($scfg, $volname, $storeid);
}
}
my $archive = abs_filesystem_path($cfg, $volid);
if ($volid =~ /vzdump-(lxc|openvz)-\d+-(\d{4})_(\d{2})_(\d{2})-(\d{2})_(\d{2})_(\d{2})\.(tgz|(tar(\.(gz|lzo))?))$/) {

View File

@ -144,6 +144,33 @@ sub run_client_cmd {
# Storage implementation
sub extract_vzdump_config {
my ($class, $scfg, $volname, $storeid) = @_;
my ($vtype, $name, $vmid, undef, undef, undef, $format) = $class->parse_volname($volname);
my $config = '';
my $outfunc = sub {
my $line = shift;
$config .= "$line\n";
};
my $config_name;
if ($format eq 'pbs-vm') {
$config_name = 'qemu-server.conf';
} elsif ($format eq 'pbs-ct') {
$config_name = 'pct.conf';
} else {
die "unable to extract configuration for backup format '$format'\n";
}
run_raw_client_cmd(undef, $scfg, $storeid, 'restore', [ $name, $config_name, '-' ],
outfunc => $outfunc, errmsg => 'proxmox-backup-client failed');
return $config;
}
sub on_add_hook {
my ($class, $storeid, $scfg, %param) = @_;