1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2025-07-31 12:41:08 +00:00

Live network interface add remove capability is added. No need to shutdown to add/remove network interfaces

This commit is contained in:
catborise 2019-07-17 13:52:14 +03:00
parent edd4887a2d
commit a3e7a5472f
3 changed files with 20 additions and 17 deletions

View file

@ -970,12 +970,18 @@ class wvmInstance(wvmConnect):
""" % nwfilter
xml_interface += """</interface>"""
# if self.get_status() == 5:
# devices = tree.find('devices')
# elm_interface = ElementTree.fromstring(xml_interface)
# devices.append(elm_interface)
# xmldom = ElementTree.tostring(tree)
# self._defineXML(xmldom)
if self.get_status() == 1:
self.instance.attachDeviceFlags(xml_interface, VIR_DOMAIN_AFFECT_LIVE)
self.instance.attachDeviceFlags(xml_interface, VIR_DOMAIN_AFFECT_CONFIG)
if self.get_status() == 5:
devices = tree.find('devices')
elm_interface = ElementTree.fromstring(xml_interface)
devices.append(elm_interface)
xmldom = ElementTree.tostring(tree)
self._defineXML(xmldom)
self.instance.attachDeviceFlags(xml_interface, VIR_DOMAIN_AFFECT_CONFIG)
def delete_network(self, mac_address):
tree = ElementTree.fromstring(self._XMLDesc(0))
@ -983,10 +989,13 @@ class wvmInstance(wvmConnect):
for interface in tree.findall('devices/interface'):
source = interface.find('mac')
if source.get('address', '') == mac_address:
source = None
devices.remove(interface)
new_xml = ElementTree.tostring(tree)
self._defineXML(new_xml)
new_xml = ElementTree.tostring(interface)
if self.get_status() == 1:
self.instance.detachDeviceFlags(new_xml, VIR_DOMAIN_AFFECT_LIVE)
self.instance.detachDeviceFlags(new_xml, VIR_DOMAIN_AFFECT_CONFIG)
if self.get_status() == 5:
self.instance.detachDeviceFlags(new_xml, VIR_DOMAIN_AFFECT_CONFIG)
def change_network(self, network_data):
xml = self._XMLDesc(VIR_DOMAIN_XML_SECURE)