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

adds bridge slave list to details of interface

This commit is contained in:
catborise 2019-11-04 12:03:13 +03:00
parent f3f4f0afe8
commit 0738ec7ec4
3 changed files with 60 additions and 5 deletions

View file

@ -1,5 +1,6 @@
from vrtManager.connection import wvmConnect
from vrtManager import util
from xml.etree import ElementTree
from libvirt import VIR_INTERFACE_XML_INACTIVE
@ -119,9 +120,34 @@ class wvmInterface(wvmConnect):
return int_ipv6_ip + '/' + int_ipv6_mask
def get_bridge(self):
bridge = None
if self.get_type() == 'bridge':
xml = self._XMLDesc()
return util.get_xml_path(xml, "/interface/bridge/interface/@name")
bridge = util.get_xml_path(self._XMLDesc(), "/interface/bridge/interface/@name")
for iface in self.get_bridge_slave_ifaces():
if iface.get('state') == 'up' and iface.get('speed') is not 'unknown':
bridge = iface.get('name')
return bridge
return bridge
else:
return None
def get_bridge_slave_ifaces(self):
ifaces = list()
if self.get_type() == 'bridge':
tree = ElementTree.fromstring(self._XMLDesc())
for iface in tree.findall("./bridge/"):
address = state = speed = None
name = iface.get('name')
type = iface.get('type')
link = iface.find('link')
if link is not None:
state = link.get('state')
speed = link.get('speed')
mac = iface.find('mac')
if mac is not None:
address = mac.get('address')
ifaces.append({'name': name, 'type': type, 'state': state, 'speed': speed, 'mac': address})
return ifaces
else:
return None