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))?))$/) {
# 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) = @_;