$self->log('info', "shutdown CT $vmid\n");
- my $cmd = ['lxc-stop', '-n', $vmid, '--timeout', $timeout];
- $self->cmd($cmd, timeout => $timeout + 5);
-
- # make sure container is stopped
- $cmd = ['lxc-wait', '-n', $vmid, '-t', 5, '-s', 'STOPPED'];
- $self->cmd($cmd);
+ PVE::LXC::vm_stop($vmid, 0, $timeout);
$running = 0;
}
return;
}
- $volhash->{$volid} = defined($snapname) ? 'snapshot' : 'config';
+ $volhash->{$volid}->{ref} = defined($snapname) ? 'snapshot' : 'config';
+ $volhash->{$volid}->{snapshots} = defined($snapname);
my ($path, $owner) = PVE::Storage::path($self->{storecfg}, $volid);
PVE::Storage::foreach_volid($dl, sub {
my ($volid, $sid, $volname) = @_;
- $volhash->{$volid} = 'storage';
+ $volhash->{$volid}->{ref} = 'storage';
});
}
}
foreach my $volid (sort keys %$volhash) {
- if ($volhash->{$volid} eq 'storage') {
+ my $ref = $volhash->{$volid}->{ref};
+ if ($ref eq 'storage') {
$self->log('info', "found local volume '$volid' (via storage)\n");
- } elsif ($volhash->{$volid} eq 'config') {
+ } elsif ($ref eq 'config') {
$self->log('info', "found local volume '$volid' (in current VM config)\n");
- } elsif ($volhash->{$volid} eq 'snapshot') {
+ } elsif ($ref eq 'snapshot') {
$self->log('info', "found local volume '$volid' (referenced by snapshot(s))\n");
} else {
$self->log('info', "found local volume '$volid'\n");
next if $rep_volumes->{$volid};
my ($sid, $volname) = PVE::Storage::parse_volume_id($volid);
push @{$self->{volumes}}, $volid;
- PVE::Storage::storage_migrate($self->{storecfg}, $volid, $self->{ssh_info}, $sid, undef, undef, undef, undef, $insecure);
+ my $with_snapshots = $volhash->{$volid}->{snapshots};
+ PVE::Storage::storage_migrate($self->{storecfg}, $volid, $self->{ssh_info}, $sid, undef, undef, undef, undef, $insecure, $with_snapshots);
}
my $conffile = PVE::LXC::Config->config_file($vmid);