For get_snapshots(), also set the default when no namespaced parameter
is present at all.
This would break any callers that have a namespace in the initial
config and explicitly don't set it for a later call, but the only
such caller is restore_pxar() in PMG, which /should/ be using the
namespace!
In other words, this implicitly fixes the restore_pxar() call in PMG
and avoids the need to extract the namespace from the configuration
(which already is present in the client) on the call site for all
functions that currently take a namespaced parameter.
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
return file_get_contents($encfile);
};
return file_get_contents($encfile);
};
-# Snapshot or group parameters can be either just a string and will then refer to the root
-# namespace, or a tuple of `[namespace, snapshot]`.
-my sub split_namespaced_parameter : prototype($) {
- my ($snapshot) = @_;
- return (undef, $snapshot) if !ref($snapshot);
+# Snapshot or group parameters can be either just a string and will then default to the namespace
+# that's part of the initial configuration in new(), or a tuple of `[namespace, snapshot]`.
+my sub split_namespaced_parameter : prototype($$) {
+ my ($self, $snapshot) = @_;
+ return ($self->{scfg}->{namespace}, $snapshot) if !ref($snapshot);
(my $namespace, $snapshot) = @$snapshot;
return ($namespace, $snapshot);
(my $namespace, $snapshot) = @$snapshot;
return ($namespace, $snapshot);
my $namespace;
if (defined($group)) {
my $namespace;
if (defined($group)) {
- ($namespace, $group) = split_namespaced_parameter($group);
+ ($namespace, $group) = split_namespaced_parameter($self, $group);
+ } else {
+ $namespace = $self->{scfg}->{namespace};
die "archive name not provided\n" if !defined($pxarname);
die "restore-target not provided\n" if !defined($target);
die "archive name not provided\n" if !defined($pxarname);
die "restore-target not provided\n" if !defined($target);
- (my $namespace, $snapshot) = split_namespaced_parameter($snapshot);
+ (my $namespace, $snapshot) = split_namespaced_parameter($self, $snapshot);
my $param = [
"$snapshot",
my $param = [
"$snapshot",
die "snapshot not provided\n" if !defined($snapshot);
die "snapshot not provided\n" if !defined($snapshot);
- (my $namespace, $snapshot) = split_namespaced_parameter($snapshot);
+ (my $namespace, $snapshot) = split_namespaced_parameter($self, $snapshot);
return run_client_cmd($self, 'forget', ["$snapshot"], 1, undef, $namespace)
};
return run_client_cmd($self, 'forget', ["$snapshot"], 1, undef, $namespace)
};
die "group not provided\n" if !defined($group);
die "group not provided\n" if !defined($group);
- (my $namespace, $group) = split_namespaced_parameter($group);
+ (my $namespace, $group) = split_namespaced_parameter($self, $group);
# do nothing if no keep options specified for remote
return [] if scalar(keys %$prune_opts) == 0;
# do nothing if no keep options specified for remote
return [] if scalar(keys %$prune_opts) == 0;
sub file_restore_list {
my ($self, $snapshot, $filepath, $base64) = @_;
sub file_restore_list {
my ($self, $snapshot, $filepath, $base64) = @_;
- (my $namespace, $snapshot) = split_namespaced_parameter($snapshot);
+ (my $namespace, $snapshot) = split_namespaced_parameter($self, $snapshot);
return run_client_cmd(
$self,
return run_client_cmd(
$self,
sub file_restore_extract {
my ($self, $output_file, $snapshot, $filepath, $base64) = @_;
sub file_restore_extract {
my ($self, $output_file, $snapshot, $filepath, $base64) = @_;
- (my $namespace, $snapshot) = split_namespaced_parameter($snapshot);
+ (my $namespace, $snapshot) = split_namespaced_parameter($self, $snapshot);
my $ret = eval {
local $SIG{ALRM} = sub { die "got timeout\n" };
my $ret = eval {
local $SIG{ALRM} = sub { die "got timeout\n" };