mirror of
				https://github.com/retspen/webvirtcloud
				synced 2025-07-31 12:41:08 +00:00 
			
		
		
		
	Add modify dhcp range function. Change Current config to live+config
This commit is contained in:
		
							parent
							
								
									be1acf8d77
								
							
						
					
					
						commit
						b812a05cdc
					
				
					 1 changed files with 18 additions and 8 deletions
				
			
		|  | @ -2,9 +2,9 @@ from vrtManager import util | |||
| from vrtManager.IPy import IP | ||||
| from vrtManager.connection import wvmConnect | ||||
| from xml.etree import ElementTree | ||||
| from libvirt import VIR_NETWORK_SECTION_IP_DHCP_HOST | ||||
| from libvirt import VIR_NETWORK_SECTION_IP_DHCP_HOST, VIR_NETWORK_SECTION_IP_DHCP_RANGE | ||||
| from libvirt import VIR_NETWORK_UPDATE_COMMAND_ADD_LAST, VIR_NETWORK_UPDATE_COMMAND_DELETE, VIR_NETWORK_UPDATE_COMMAND_MODIFY | ||||
| from libvirt import VIR_NETWORK_UPDATE_AFFECT_LIVE, VIR_NETWORK_UPDATE_AFFECT_CONFIG, VIR_NETWORK_UPDATE_AFFECT_CURRENT | ||||
| from libvirt import VIR_NETWORK_UPDATE_AFFECT_LIVE, VIR_NETWORK_UPDATE_AFFECT_CONFIG | ||||
| 
 | ||||
| 
 | ||||
| def network_size(net, dhcp=None): | ||||
|  | @ -185,7 +185,7 @@ class wvmNetwork(wvmConnect): | |||
| 
 | ||||
|     def modify_fixed_address(self, name, address, mac): | ||||
|         util.validate_macaddr(mac) | ||||
|         new_xml = '<host mac="{}" name="{}" ip="{}"/>'.format(mac, name, address) | ||||
|         new_xml = '<host mac="{}" name="{}" ip="{}"/>'.format(mac, name, IP(address)) | ||||
|         new_host_xml = ElementTree.fromstring(new_xml) | ||||
| 
 | ||||
|         tree = ElementTree.fromstring(self._XMLDesc(0)) | ||||
|  | @ -197,16 +197,15 @@ class wvmNetwork(wvmConnect): | |||
|                 host = h | ||||
|                 break | ||||
|         if host is None: | ||||
| 
 | ||||
|             self.update(VIR_NETWORK_UPDATE_COMMAND_ADD_LAST, VIR_NETWORK_SECTION_IP_DHCP_HOST, -1, new_xml, | ||||
|                         VIR_NETWORK_UPDATE_AFFECT_CURRENT) | ||||
|                         VIR_NETWORK_UPDATE_AFFECT_LIVE|VIR_NETWORK_UPDATE_AFFECT_CONFIG) | ||||
|         else: | ||||
|             # change the host | ||||
|             if host.get('name') == new_host_xml.get('name') and host.get('ip') == new_host_xml.get('ip'): | ||||
|                 return False | ||||
|             else: | ||||
|                 res = self.update(VIR_NETWORK_UPDATE_COMMAND_MODIFY, VIR_NETWORK_SECTION_IP_DHCP_HOST, -1, new_xml, | ||||
|                                   VIR_NETWORK_UPDATE_AFFECT_CURRENT) | ||||
|                 self.update(VIR_NETWORK_UPDATE_COMMAND_MODIFY, VIR_NETWORK_SECTION_IP_DHCP_HOST, -1, new_xml, | ||||
|                             VIR_NETWORK_UPDATE_AFFECT_LIVE|VIR_NETWORK_UPDATE_AFFECT_CONFIG) | ||||
| 
 | ||||
|     def delete_fixed_address(self, mac): | ||||
|         util.validate_macaddr(mac) | ||||
|  | @ -217,5 +216,16 @@ class wvmNetwork(wvmConnect): | |||
|             if h.get('mac') == mac: | ||||
|                 new_xml = '<host mac="{}" name="{}" ip="{}"/>'.format(mac, h.get('name'), h.get('ip')) | ||||
|                 self.update(VIR_NETWORK_UPDATE_COMMAND_DELETE, VIR_NETWORK_SECTION_IP_DHCP_HOST, -1, new_xml, | ||||
|                             VIR_NETWORK_UPDATE_AFFECT_CURRENT) | ||||
|                             VIR_NETWORK_UPDATE_AFFECT_LIVE|VIR_NETWORK_UPDATE_AFFECT_CONFIG) | ||||
|                 break | ||||
| 
 | ||||
|     def modify_dhcp_range(self, range_start, range_end): | ||||
|         if not self.is_active(): | ||||
|             new_range = '<range start="{}" end="{}"/>'.format(range_start, range_end) | ||||
|             tree = ElementTree.fromstring(self._XMLDesc(0)) | ||||
|             dhcp = tree.find("./ip/dhcp") | ||||
|             old_range = dhcp.find('range') | ||||
|             dhcp.remove(old_range) | ||||
|             dhcp.append(ElementTree.fromstring(new_range)) | ||||
| 
 | ||||
|             self.wvm.networkDefineXML(ElementTree.tostring(tree)) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue