mirror of
https://git.proxmox.com/git/pve-manager
synced 2025-04-29 19:46:59 +00:00
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';
|
$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 = '';
|
my $errors = '';
|
||||||
|
|
||||||
if ($opts->{storage}) {
|
if ($opts->{storage}) {
|
||||||
@ -1194,7 +1201,15 @@ sub exec_backup {
|
|||||||
|
|
||||||
my $totaltime = time() - $starttime;
|
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 $@;
|
debugmsg ('err', $@) if $@;
|
||||||
|
|
||||||
die $err if $err;
|
die $err if $err;
|
||||||
|
@ -11,11 +11,13 @@ print "HOOK: " . join (' ', @ARGV) . "\n";
|
|||||||
|
|
||||||
my $phase = shift;
|
my $phase = shift;
|
||||||
|
|
||||||
if ($phase eq 'job-start' ||
|
if ($phase eq 'job-init' ||
|
||||||
|
$phase eq 'job-start' ||
|
||||||
$phase eq 'job-end' ||
|
$phase eq 'job-end' ||
|
||||||
$phase eq 'job-abort') {
|
$phase eq 'job-abort') {
|
||||||
|
|
||||||
# undef for Proxmox Backup Server storages
|
# undef for Proxmox Backup Server storages
|
||||||
|
# undef in phase 'job-init' except when --dumpdir is used directly
|
||||||
my $dumpdir = $ENV{DUMPDIR};
|
my $dumpdir = $ENV{DUMPDIR};
|
||||||
|
|
||||||
# undef when --dumpdir is used directly
|
# undef when --dumpdir is used directly
|
||||||
@ -26,6 +28,14 @@ if ($phase eq 'job-start' ||
|
|||||||
print "storeid=$storeid;" if defined($storeid);
|
print "storeid=$storeid;" if defined($storeid);
|
||||||
print "\n";
|
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
|
# do what you want
|
||||||
|
|
||||||
} elsif ($phase eq 'backup-start' ||
|
} elsif ($phase eq 'backup-start' ||
|
||||||
|
Loading…
Reference in New Issue
Block a user