mirror of
https://github.com/retspen/webvirtcloud
synced 2024-11-01 03:54:15 +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.IPy import IP
|
||||||
from vrtManager.connection import wvmConnect
|
from vrtManager.connection import wvmConnect
|
||||||
from xml.etree import ElementTree
|
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_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):
|
def network_size(net, dhcp=None):
|
||||||
|
@ -185,7 +185,7 @@ class wvmNetwork(wvmConnect):
|
||||||
|
|
||||||
def modify_fixed_address(self, name, address, mac):
|
def modify_fixed_address(self, name, address, mac):
|
||||||
util.validate_macaddr(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)
|
new_host_xml = ElementTree.fromstring(new_xml)
|
||||||
|
|
||||||
tree = ElementTree.fromstring(self._XMLDesc(0))
|
tree = ElementTree.fromstring(self._XMLDesc(0))
|
||||||
|
@ -197,16 +197,15 @@ class wvmNetwork(wvmConnect):
|
||||||
host = h
|
host = h
|
||||||
break
|
break
|
||||||
if host is None:
|
if host is None:
|
||||||
|
|
||||||
self.update(VIR_NETWORK_UPDATE_COMMAND_ADD_LAST, VIR_NETWORK_SECTION_IP_DHCP_HOST, -1, new_xml,
|
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:
|
else:
|
||||||
# change the host
|
# change the host
|
||||||
if host.get('name') == new_host_xml.get('name') and host.get('ip') == new_host_xml.get('ip'):
|
if host.get('name') == new_host_xml.get('name') and host.get('ip') == new_host_xml.get('ip'):
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
res = self.update(VIR_NETWORK_UPDATE_COMMAND_MODIFY, VIR_NETWORK_SECTION_IP_DHCP_HOST, -1, new_xml,
|
self.update(VIR_NETWORK_UPDATE_COMMAND_MODIFY, VIR_NETWORK_SECTION_IP_DHCP_HOST, -1, new_xml,
|
||||||
VIR_NETWORK_UPDATE_AFFECT_CURRENT)
|
VIR_NETWORK_UPDATE_AFFECT_LIVE|VIR_NETWORK_UPDATE_AFFECT_CONFIG)
|
||||||
|
|
||||||
def delete_fixed_address(self, mac):
|
def delete_fixed_address(self, mac):
|
||||||
util.validate_macaddr(mac)
|
util.validate_macaddr(mac)
|
||||||
|
@ -217,5 +216,16 @@ class wvmNetwork(wvmConnect):
|
||||||
if h.get('mac') == mac:
|
if h.get('mac') == mac:
|
||||||
new_xml = '<host mac="{}" name="{}" ip="{}"/>'.format(mac, h.get('name'), h.get('ip'))
|
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,
|
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
|
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…
Reference in a new issue