# targets are either a VMID, or a 'host:zpool/path' with 'host:' being optional
my $TARGETRE = qr!^(?:($HOSTRE):)?(\d+|(?:[\w\-_]+)(/.+)?)$!;
+my $DISK_KEY_RE = qr/^(?:(?:(?:virtio|ide|scsi|sata|efidisk|mp)\d+)|rootfs): /;
+
my $command = $ARGV[0];
if (defined($command) && $command ne 'help' && $command ne 'printpod') {
update_state($job);
}); #cron and state lock
- eval {
- sync($param) if !$param->{skip};
- };
- if(my $err = $@) {
+ return if $param->{skip};
+
+ eval { sync($param) };
+ if (my $err = $@) {
destroy_job($param);
print $err;
}
my $line = $1;
next if $line =~ /media=cdrom/;
- next if $line !~ m/^(?:((?:virtio|ide|scsi|sata|mp)\d+)|rootfs): /;
+ next if $line !~ m/$DISK_KEY_RE/;
#QEMU if backup is not set include in sync
next if $vm_type eq 'qemu' && ($line =~ m/backup=(?i:0|no|off|false)/);
my $disk = undef;
my $stor = undef;
- if($line =~ m/^(?:(?:(?:virtio|ide|scsi|sata|mp)\d+)|rootfs): (.*)$/) {
+ if($line =~ m/$DISK_KEY_RE(.*)$/) {
my @parameter = split(/,/,$1);
foreach my $opt (@parameter) {