[pve-devel] [PATCH 1/3] add nic hotplug to update_vm
Derumier Alexandre
aderumier at odiso.com
Sat Jan 28 11:02:27 CET 2012
Signed-off-by: Derumier Alexandre <aderumier at odiso.com>
---
PVE/API2/Qemu.pm | 14 +++++++++++++-
1 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm
index adb19ff..48b99d1 100644
--- a/PVE/API2/Qemu.pm
+++ b/PVE/API2/Qemu.pm
@@ -563,12 +563,24 @@ __PACKAGE__->register_method({
}
}
#nics
+ my $net = undef;
if ($opt =~ m/^net(\d+)$/) {
- my $net = PVE::QemuServer::parse_net($param->{$opt});
+ $net = PVE::QemuServer::parse_net($param->{$opt});
$param->{$opt} = PVE::QemuServer::print_net($net);
+ #if online update, then unplug first
+ die "error hot-unplug $opt for update" if $conf->{$opt} && !PVE::QemuServer::vm_deviceunplug($vmid, $conf, $opt);
}
PVE::QemuServer::change_config_nolock($vmid, { $opt => $param->{$opt} }, {}, 1);
+
+ #nic hotplug after config write as we need it for pve-bridge script
+ if (defined ($net)) {
+ if(!PVE::QemuServer::vm_deviceplug($storecfg, $conf, $vmid, $opt, $net)) {
+ #rewrite conf to remove nic if hotplug fail
+ PVE::QemuServer::change_config_nolock($vmid, {}, { $opt => 1 }, 1);
+ die "error hotplug $opt";
+ }
+ }
}
};
--
1.7.2.5
More information about the pve-devel
mailing list