mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	Merge pull request #736 from ustcweizhou/CLOUDSTACK-8765
CLOUDSTACK-8765: fix vm migration failure due to different dev name on KVM * pr/736: CLOUDSTACK-8765: fix vm migration failure due to different dev name on KVM Signed-off-by: Remi Bergsma <github@remi.nl>
This commit is contained in:
		
						commit
						002296ac4f
					
				| @ -16,6 +16,7 @@ | ||||
| # specific language governing permissions and limitations | ||||
| # under the License. | ||||
| import sys | ||||
| import re | ||||
| from xml.dom.minidom import parse | ||||
| from cloudutils.configFileOps import configFileOps | ||||
| from cloudutils.networkConfig import networkConfig | ||||
| @ -24,21 +25,29 @@ def isOldStyleBridge(brName): | ||||
|        return True | ||||
|     else: | ||||
|        return False | ||||
| def isNewStyleBridge(brName): | ||||
|     if re.match(r"br(\w+)-(\d+)", brName) == None: | ||||
|        return False | ||||
|     else: | ||||
|        return True | ||||
| def getGuestNetworkDevice(): | ||||
|     netlib = networkConfig()  | ||||
|     cfo = configFileOps("/etc/cloudstack/agent/agent.properties") | ||||
|     guestDev = cfo.getEntry("guest.network.device") | ||||
|     enslavedDev = netlib.getEnslavedDev(guestDev, 1) | ||||
|     return enslavedDev  | ||||
|     return enslavedDev.split(".")[0] | ||||
| def handleMigrateBegin(): | ||||
|     try: | ||||
|         domain = parse(sys.stdin) | ||||
|         for interface in domain.getElementsByTagName("interface"): | ||||
|             source = interface.getElementsByTagName("source")[0] | ||||
|             bridge = source.getAttribute("bridge") | ||||
|             if not isOldStyleBridge(bridge): | ||||
|                 continue | ||||
|             if isOldStyleBridge(bridge): | ||||
|                 vlanId = bridge.replace("cloudVirBr","") | ||||
|             elif isNewStyleBridge(bridge): | ||||
|                 vlanId = re.sub(r"br(\w+)-","",bridge) | ||||
|             else: | ||||
|                 continue | ||||
|             phyDev = getGuestNetworkDevice() | ||||
|             newBrName="br" + phyDev + "-" + vlanId | ||||
|             source.setAttribute("bridge", newBrName) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user