this allows the config dir to be set on the destination target. this can
be useful if the default path in $CONFIG_PATH (/var/lib/pve-zsync) is not
persistent. the option is optional and falls back to $CONFIG_PATH if not
specified.

Signed-off-by: Mira Limbeck <m.limb...@proxmox.com>
---
v2:
 - applies cleanly on master now
 - added dest_config_path to local send_config as well. this is a simple mkdir 
+ cp

 pve-zsync | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/pve-zsync b/pve-zsync
index 473d35f..425ffa2 100755
--- a/pve-zsync
+++ b/pve-zsync
@@ -220,6 +220,7 @@ sub parse_argv {
        source_user => undef,
        dest_user => undef,
        properties => undef,
+       dest_config_path => undef,
     };
 
     my ($ret) = GetOptionsFromArray(
@@ -235,6 +236,7 @@ sub parse_argv {
        'source-user=s' => \$param->{source_user},
        'dest-user=s' => \$param->{dest_user},
        'properties' => \$param->{properties},
+       'dest-config-path=s' => \$param->{dest_config_path},
     );
 
     die "can't parse options\n" if $ret == 0;
@@ -304,6 +306,7 @@ sub param_to_job {
     $job->{source_user} = $param->{source_user};
     $job->{dest_user} = $param->{dest_user};
     $job->{properties} = !!$param->{properties};
+    $job->{dest_config_path} = $param->{dest_config_path} if 
$param->{dest_config_path};
 
     return $job;
 }
@@ -450,6 +453,7 @@ sub format_job {
     $text .= " --source-user $job->{source_user}";
     $text .= " --dest-user $job->{dest_user}";
     $text .= " --properties" if $job->{properties};
+    $text .= " --dest-config-path $job->{dest_config_path}" if 
$job->{dest_config_path};
     $text .= "\n";
 
     return $text;
@@ -627,9 +631,9 @@ sub sync {
                &$sync_path($source, $dest, $job, $param, $date);
            }
            if ($param->{method} eq "ssh" && ($source->{ip} || $dest->{ip})) {
-               send_config($source, $dest,'ssh', $param->{source_user}, 
$param->{dest_user});
+               send_config($source, $dest,'ssh', $param->{source_user}, 
$param->{dest_user}, $param->{dest_config_path});
            } else {
-               send_config($source, $dest,'local', $param->{source_user}, 
$param->{dest_user});
+               send_config($source, $dest,'local', $param->{source_user}, 
$param->{dest_user}, $param->{dest_config_path});
            }
        } else {
            &$sync_path($source, $dest, $job, $param, $date);
@@ -963,12 +967,12 @@ sub send_image {
 
 
 sub send_config{
-    my ($source, $dest, $method, $source_user, $dest_user) = @_;
+    my ($source, $dest, $method, $source_user, $dest_user, $dest_config_path) 
= @_;
 
     my $source_target = $source->{vm_type} eq 'qemu' ? 
"$QEMU_CONF/$source->{vmid}.conf": "$LXC_CONF/$source->{vmid}.conf";
     my $dest_target_new 
="$source->{vmid}.conf.$source->{vm_type}.$source->{new_snap}";
 
-    my $config_dir = $CONFIG_PATH;
+    my $config_dir = $dest_config_path // $CONFIG_PATH;
     $config_dir .= "/$dest->{last_part}" if $dest->{last_part};
 
     $dest_target_new = $config_dir.'/'.$dest_target_new;
@@ -1096,6 +1100,10 @@ $PROGNAME create -dest <string> -source <string> 
[OPTIONS]
        -properties     boolean
 
                Include the dataset's properties in the stream.
+
+       -dest-config-path    string
+
+               specify a custom config path on the destination target. default 
is /var/lib/pve-zsync
     },
     sync => qq{
 $PROGNAME sync -dest <string> -source <string> [OPTIONS]\n
@@ -1138,6 +1146,10 @@ $PROGNAME sync -dest <string> -source <string> 
[OPTIONS]\n
        -properties     boolean
 
                Include the dataset's properties in the stream.
+
+       -dest-config-path    string
+
+               specify a custom config path on the destination target. default 
is /var/lib/pve-zsync
     },
     list => qq{
 $PROGNAME list
-- 
2.11.0


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to