[pve-devel] [PATCH] activate|deactivates volumes on ct start/stop.
Alexandre Derumier
aderumier at odiso.com
Thu Jul 30 12:36:07 CEST 2015
we need this for krbd volumes
Signed-off-by: Alexandre Derumier <aderumier at odiso.com>
---
src/PVE/API2/LXC.pm | 15 +++++++++++++++
src/PVE/LXC.pm | 12 ++++++++++++
2 files changed, 27 insertions(+)
diff --git a/src/PVE/API2/LXC.pm b/src/PVE/API2/LXC.pm
index 9e82bc4..f41d0df 100644
--- a/src/PVE/API2/LXC.pm
+++ b/src/PVE/API2/LXC.pm
@@ -942,6 +942,9 @@ __PACKAGE__->register_method({
PVE::Storage::activate_storage($stcfg, $sid);
}
+ my $volid = $conf->{'pve.volid'};
+ PVE::Storage::activate_volumes($stcfg, [$volid]) if $volid;
+
my $cmd = ['lxc-start', '-n', $vmid];
run_command($cmd);
@@ -984,6 +987,10 @@ __PACKAGE__->register_method({
my $vmid = extract_param($param, 'vmid');
+ my $conf = PVE::LXC::load_config($vmid);
+
+ my $storecfg = PVE::Storage::config();
+
die "CT $vmid not running\n" if !PVE::LXC::check_running($vmid);
if (PVE::HA::Config::vm_is_ha_managed($vmid) && $rpcenv->{type} ne 'ha') {
@@ -1015,6 +1022,8 @@ __PACKAGE__->register_method({
run_command($cmd);
+ PVE::LXC::vm_stop_cleanup($storecfg, $vmid, $conf);
+
return;
};
@@ -1068,6 +1077,10 @@ __PACKAGE__->register_method({
my $timeout = extract_param($param, 'timeout');
+ my $conf = PVE::LXC::load_config($vmid);
+
+ my $storecfg = PVE::Storage::config();
+
die "CT $vmid not running\n" if !PVE::LXC::check_running($vmid);
my $realcmd = sub {
@@ -1092,6 +1105,8 @@ __PACKAGE__->register_method({
push @$cmd, '--kill';
run_command($cmd);
+ PVE::LXC::vm_stop_cleanup($storecfg, $vmid, $conf);
+
return;
};
diff --git a/src/PVE/LXC.pm b/src/PVE/LXC.pm
index 2517ffd..0843c2e 100644
--- a/src/PVE/LXC.pm
+++ b/src/PVE/LXC.pm
@@ -1670,4 +1670,16 @@ sub snapshot_rollback {
lock_container($vmid, 5, $unlockfn);
}
+sub vm_stop_cleanup {
+ my ($storecfg, $vmid, $conf, $keepActive) = @_;
+
+ eval {
+ if (!$keepActive) {
+ my $volid = $conf->{'pve.volid'};
+ PVE::Storage::deactivate_volumes($storecfg, [$volid]) if $volid;
+ }
+ };
+ warn $@ if $@; # avoid errors - just warn
+}
+
1;
--
2.1.4
More information about the pve-devel
mailing list