my ($class, $vmid, $unfreeze) = @_;
if ($unfreeze) {
- eval { PVE::Tools::run_command(['/usr/bin/lxc-unfreeze', '-n', $vmid]); };
+ eval { PVE::LXC::freeze_thaw($vmid, 0); };
warn $@ if $@;
} else {
- PVE::Tools::run_command(['/usr/bin/lxc-freeze', '-n', $vmid]);
+ PVE::LXC::freeze_thaw($vmid, 1);
PVE::LXC::sync_container_namespace($vmid);
}
}
PVE::VZDump::check_bin('lxc-stop');
PVE::VZDump::check_bin('lxc-start');
- PVE::VZDump::check_bin('lxc-freeze');
- PVE::VZDump::check_bin('lxc-unfreeze');
my $self = bless {};
sub suspend_vm {
my ($self, $task, $vmid) = @_;
- $self->cmd ("lxc-freeze -n $vmid");
+ PVE::LXC::freeze_thaw($vmid, 1);
}
sub resume_vm {
my ($self, $task, $vmid) = @_;
- $self->cmd ("lxc-unfreeze -n $vmid");
+ PVE::LXC::freeze_thaw($vmid, 0);
}
sub assemble {
}
}
+sub mocked_freeze_thaw {
+ my ($vmid, $freeze) = @_;
+ return () if $freeze_possible;
+ die "lxc-[un]freeze disabled\n";
+}
+
sub mocked_run_command {
my ($cmd, %param) = @_;
my $cmdstring;
if (my $ref = ref($cmd)) {
$cmdstring = PVE::Tools::cmd2string($cmd);
- if ($cmdstring =~ m/.*\/lxc-(un)?freeze.*/) {
- return 1 if $freeze_possible;
- die "lxc-[un]freeze disabled\n";
- }
if ($cmdstring =~ m/.*\/lxc-stop.*--kill.*/) {
mocked_vm_stop();
}
$lxc_module->mock('sync_container_namespace', sub { return; });
$lxc_module->mock('check_running', \&mocked_check_running);
$lxc_module->mock('vm_stop', \&mocked_vm_stop);
+$lxc_module->mock('freeze_thaw', \&mocked_freeze_thaw);
my $lxc_config_module = new Test::MockModule('PVE::LXC::Config');
$lxc_config_module->mock('config_file_lock', sub { return "snapshot-working/pve-test.lock"; });