close #3476: vzdump: add job-init hook
which allows users to prepare the backup storage for activation (e.g. by waking up a remote node). Suggested-by: Fabian Grünbichler <f.gruenbichler@proxmox.com> Reviewed-by: Fabian Grünbichler <f.gruenbichler@proxmox.com> Acked-by: Thomas Lamprecht <t.lamprecht@proxmox.com> Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
This commit is contained in:
parent
69cd5c7519
commit
b241deb731
@ -497,6 +497,13 @@ sub new {
|
||||
$opts->{storage} = 'local';
|
||||
}
|
||||
|
||||
$self->{job_init_log} = '';
|
||||
open my $job_init_fd, '>', \$self->{job_init_log};
|
||||
$self->run_hook_script('job-init', undef, $job_init_fd);
|
||||
close $job_init_fd;
|
||||
|
||||
PVE::Cluster::cfs_update(); # Pick up possible changes made by the hook script.
|
||||
|
||||
my $errors = '';
|
||||
|
||||
if ($opts->{storage}) {
|
||||
@ -1194,7 +1201,15 @@ sub exec_backup {
|
||||
|
||||
my $totaltime = time() - $starttime;
|
||||
|
||||
eval { $self->sendmail ($tasklist, $totaltime, undef, $job_start_log, $job_end_log); };
|
||||
eval {
|
||||
$self->sendmail(
|
||||
$tasklist,
|
||||
$totaltime,
|
||||
undef,
|
||||
$self->{job_init_log} . $job_start_log,
|
||||
$job_end_log,
|
||||
);
|
||||
};
|
||||
debugmsg ('err', $@) if $@;
|
||||
|
||||
die $err if $err;
|
||||
|
@ -11,11 +11,13 @@ print "HOOK: " . join (' ', @ARGV) . "\n";
|
||||
|
||||
my $phase = shift;
|
||||
|
||||
if ($phase eq 'job-start' ||
|
||||
if ($phase eq 'job-init' ||
|
||||
$phase eq 'job-start' ||
|
||||
$phase eq 'job-end' ||
|
||||
$phase eq 'job-abort') {
|
||||
|
||||
# undef for Proxmox Backup Server storages
|
||||
# undef in phase 'job-init' except when --dumpdir is used directly
|
||||
my $dumpdir = $ENV{DUMPDIR};
|
||||
|
||||
# undef when --dumpdir is used directly
|
||||
@ -26,6 +28,14 @@ if ($phase eq 'job-start' ||
|
||||
print "storeid=$storeid;" if defined($storeid);
|
||||
print "\n";
|
||||
|
||||
# example: wake up remote storage node and enable storage
|
||||
if ($phase eq 'job-init') {
|
||||
#system("wakeonlan AA:BB:CC:DD:EE:FF");
|
||||
#sleep(30);
|
||||
#system ("/sbin/pvesm set $storeid --disable 0") == 0 ||
|
||||
# die "enabling storage $storeid failed";
|
||||
}
|
||||
|
||||
# do what you want
|
||||
|
||||
} elsif ($phase eq 'backup-start' ||
|
||||
|
Loading…
Reference in New Issue
Block a user