mirror of https://github.com/apache/cloudstack.git
CLOUDSTACK-4315: add code to clean up libvirt data structure after plug/unplug, that's the only thing I can do to fix this kind of libvirt issue
This commit is contained in:
parent
37d58313c9
commit
90388ce77e
|
|
@ -1738,9 +1738,10 @@ ServerResource {
|
|||
private PlugNicAnswer execute(PlugNicCommand cmd) {
|
||||
NicTO nic = cmd.getNic();
|
||||
String vmName = cmd.getVmName();
|
||||
Domain vm = null;
|
||||
try {
|
||||
Connect conn = LibvirtConnection.getConnectionByVmName(vmName);
|
||||
Domain vm = getDomain(conn, vmName);
|
||||
vm = getDomain(conn, vmName);
|
||||
List<InterfaceDef> pluggedNics = getInterfaces(conn, vmName);
|
||||
Integer nicnum = 0;
|
||||
for (InterfaceDef pluggedNic : pluggedNics) {
|
||||
|
|
@ -1760,6 +1761,14 @@ ServerResource {
|
|||
String msg = " Plug Nic failed due to " + e.toString();
|
||||
s_logger.warn(msg, e);
|
||||
return new PlugNicAnswer(cmd, false, msg);
|
||||
} finally {
|
||||
if (vm != null) {
|
||||
try {
|
||||
vm.free();
|
||||
} catch (LibvirtException l) {
|
||||
s_logger.trace("Ignoring libvirt error.", l);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1767,9 +1776,10 @@ ServerResource {
|
|||
Connect conn;
|
||||
NicTO nic = cmd.getNic();
|
||||
String vmName = cmd.getVmName();
|
||||
Domain vm = null;
|
||||
try {
|
||||
conn = LibvirtConnection.getConnectionByVmName(vmName);
|
||||
Domain vm = getDomain(conn, vmName);
|
||||
vm = getDomain(conn, vmName);
|
||||
List<InterfaceDef> pluggedNics = getInterfaces(conn, vmName);
|
||||
for (InterfaceDef pluggedNic : pluggedNics) {
|
||||
if (pluggedNic.getMacAddress().equalsIgnoreCase(nic.getMac())) {
|
||||
|
|
@ -1787,6 +1797,14 @@ ServerResource {
|
|||
String msg = " Unplug Nic failed due to " + e.toString();
|
||||
s_logger.warn(msg, e);
|
||||
return new UnPlugNicAnswer(cmd, false, msg);
|
||||
} finally {
|
||||
if (vm != null) {
|
||||
try {
|
||||
vm.free();
|
||||
} catch (LibvirtException l) {
|
||||
s_logger.trace("Ignoring libvirt error.", l);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue