mirror of https://github.com/apache/cloudstack.git
CLOUDSTACK-5076: fix wrong bridge name in vm domain xml desc after upgrade from 4.0 or before to 4.2
This commit is contained in:
parent
9e6a1eaffe
commit
86976fb298
|
|
@ -205,6 +205,7 @@ import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.GuestDef;
|
|||
import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.GuestResourceDef;
|
||||
import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.InputDef;
|
||||
import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.InterfaceDef;
|
||||
import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.InterfaceDef.guestNetType;
|
||||
import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.InterfaceDef.hostNicType;
|
||||
import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.SerialDef;
|
||||
import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.TermPolicy;
|
||||
|
|
@ -4385,6 +4386,21 @@ ServerResource {
|
|||
try {
|
||||
dm = conn.domainLookupByName(vmName);
|
||||
String vmDef = dm.getXMLDesc(0);
|
||||
LibvirtDomainXMLParser parser = new LibvirtDomainXMLParser();
|
||||
parser.parseDomainXML(vmDef);
|
||||
for (InterfaceDef nic :parser.getInterfaces()) {
|
||||
if ((nic.getNetType() == guestNetType.BRIDGE) && (nic.getBrName().startsWith("cloudVirBr"))) {
|
||||
try {
|
||||
int vnetId = Integer.parseInt(nic.getBrName().replaceFirst("cloudVirBr", ""));
|
||||
String pifName = getPif(_guestBridgeName);
|
||||
String newBrName = "br" + pifName + "-"+ vnetId;
|
||||
vmDef = vmDef.replaceAll("'" + nic.getBrName() + "'", "'" + newBrName + "'");
|
||||
s_logger.debug("VM bridge name is changed from " + nic.getBrName() + " to " + newBrName);
|
||||
} catch (NumberFormatException e) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
s_logger.debug(vmDef);
|
||||
msg = stopVM(conn, vmName);
|
||||
msg = startVM(conn, vmName, vmDef);
|
||||
|
|
|
|||
Loading…
Reference in New Issue