api: status: fix unlink on file upload
after an error while copying the file to its destination the local path of the destination was unlinked in every case, even when on the destination was copied to via scp. Signed-off-by: Lorenz Stechauner <l.stechauner@proxmox.com>
This commit is contained in:
committed by
Thomas Lamprecht
parent
0a65c237ea
commit
31bd43648d
@ -448,6 +448,7 @@ __PACKAGE__->register_method ({
|
||||
# we simply overwrite the destination file if it already exists
|
||||
|
||||
my $cmd;
|
||||
my $err_cmd;
|
||||
if ($node ne 'localhost' && $node ne PVE::INotify::nodename()) {
|
||||
my $remip = PVE::Cluster::remote_node_ip($node);
|
||||
|
||||
@ -466,10 +467,12 @@ __PACKAGE__->register_method ({
|
||||
errmsg => "mkdir failed");
|
||||
|
||||
$cmd = ['/usr/bin/scp', @ssh_options, '-p', '--', $tmpfilename, "[$remip]:" . PVE::Tools::shell_quote($dest)];
|
||||
$err_cmd = [@remcmd, 'unlink', '--', $dest];
|
||||
} else {
|
||||
PVE::Storage::activate_storage($cfg, $param->{storage});
|
||||
File::Path::make_path($dirname);
|
||||
$cmd = ['cp', '--', $tmpfilename, $dest];
|
||||
$err_cmd = ['unlink', '--', $dest];
|
||||
}
|
||||
|
||||
my $worker = sub {
|
||||
@ -483,7 +486,7 @@ __PACKAGE__->register_method ({
|
||||
|
||||
eval { PVE::Tools::run_command($cmd, errmsg => 'import failed'); };
|
||||
if (my $err = $@) {
|
||||
unlink $dest;
|
||||
eval { PVE::Tools::run_command($err_cmd); };
|
||||
die $err;
|
||||
}
|
||||
print "finished file import successfully\n";
|
||||
|
||||
Reference in New Issue
Block a user