hostnets: Remove SR-IOV info listing
This is fairly advanced stuff and it should be fine to get this info from the XML editor page
This commit is contained in:
parent
59873f3876
commit
2c03ea5c92
|
@ -2,6 +2,5 @@
|
||||||
<name>passthrough</name>
|
<name>passthrough</name>
|
||||||
<forward mode="hostdev" managed="yes">
|
<forward mode="hostdev" managed="yes">
|
||||||
<pf dev="eth3"/>
|
<pf dev="eth3"/>
|
||||||
<address type="pci" domain="0x0000" bus="0x03" slot="0x10" function="0x0"/>
|
|
||||||
</forward>
|
</forward>
|
||||||
</network>
|
</network>
|
||||||
|
|
|
@ -2,6 +2,5 @@
|
||||||
<name>new-foo</name>
|
<name>new-foo</name>
|
||||||
<forward mode="hostdev" managed="yes">
|
<forward mode="hostdev" managed="yes">
|
||||||
<pf dev="eth3"/>
|
<pf dev="eth3"/>
|
||||||
<address type="pci" domain="0x0000" bus="0x03" slot="0x10" function="0x0"/>
|
|
||||||
</forward>
|
</forward>
|
||||||
</network>
|
</network>
|
||||||
|
|
|
@ -1385,13 +1385,6 @@ class XMLParseTest(unittest.TestCase):
|
||||||
check = self._make_checker(net.forward.pf[0])
|
check = self._make_checker(net.forward.pf[0])
|
||||||
check("dev", "eth3")
|
check("dev", "eth3")
|
||||||
|
|
||||||
check = self._make_checker(net.forward.vfs[0])
|
|
||||||
check("type", "pci")
|
|
||||||
check("domain", 0x0000)
|
|
||||||
check("bus", 0x03)
|
|
||||||
check("slot", 0x10)
|
|
||||||
check("function", 0x0)
|
|
||||||
|
|
||||||
utils.diff_compare(net.get_xml(), outfile)
|
utils.diff_compare(net.get_xml(), outfile)
|
||||||
utils.test_create(self.conn, net.get_xml(), "networkDefineXML")
|
utils.test_create(self.conn, net.get_xml(), "networkDefineXML")
|
||||||
|
|
||||||
|
|
104
ui/hostnets.ui
104
ui/hostnets.ui
|
@ -234,6 +234,7 @@
|
||||||
<object class="GtkExpander" id="net-ipv4-expander">
|
<object class="GtkExpander" id="net-ipv4-expander">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
|
<property name="expanded">True</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkGrid" id="table3">
|
<object class="GtkGrid" id="table3">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
@ -384,6 +385,7 @@
|
||||||
<object class="GtkExpander" id="net-ipv6-expander">
|
<object class="GtkExpander" id="net-ipv6-expander">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
|
<property name="expanded">True</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkGrid" id="table9">
|
<object class="GtkGrid" id="table9">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
@ -531,108 +533,6 @@
|
||||||
<property name="position">2</property>
|
<property name="position">2</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
|
||||||
<object class="GtkExpander" id="net-sriov-expander">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkBox" id="net-sriov-box">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="orientation">vertical</property>
|
|
||||||
<property name="spacing">3</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkGrid" id="pf-table">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="row_spacing">5</property>
|
|
||||||
<property name="column_spacing">6</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel" id="pf-name">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="halign">start</property>
|
|
||||||
<property name="label">label</property>
|
|
||||||
<property name="selectable">True</property>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="left_attach">1</property>
|
|
||||||
<property name="top_attach">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel" id="pf-name-label">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="halign">start</property>
|
|
||||||
<property name="label" translatable="yes">Physical Function:</property>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="left_attach">0</property>
|
|
||||||
<property name="top_attach">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel" id="vf-scroll-label">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="halign">start</property>
|
|
||||||
<property name="label" translatable="yes">Virtual Functions:</property>
|
|
||||||
<property name="use_markup">True</property>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkScrolledWindow" id="vf-scroll">
|
|
||||||
<property name="height_request">144</property>
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<property name="shadow_type">in</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkTreeView" id="vf-list">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<child internal-child="selection">
|
|
||||||
<object class="GtkTreeSelection"/>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">True</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">2</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child type="label">
|
|
||||||
<object class="GtkLabel" id="net-sriov-expander-label">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="label" translatable="yes"><b>_SR-IOV information</b></property>
|
|
||||||
<property name="use_markup">True</property>
|
|
||||||
<property name="use_underline">True</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">True</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">3</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
|
|
|
@ -9,8 +9,6 @@ import logging
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk
|
||||||
from gi.repository import Pango
|
from gi.repository import Pango
|
||||||
|
|
||||||
from virtinst import NodeDevice
|
|
||||||
|
|
||||||
from . import uiutil
|
from . import uiutil
|
||||||
from .asyncjob import vmmAsyncJob
|
from .asyncjob import vmmAsyncJob
|
||||||
from .baseclass import vmmGObjectUI
|
from .baseclass import vmmGObjectUI
|
||||||
|
@ -108,19 +106,6 @@ class vmmHostNets(vmmGObjectUI):
|
||||||
self.widget("net-list").append_column(netCol)
|
self.widget("net-list").append_column(netCol)
|
||||||
netListModel.set_sort_column_id(1, Gtk.SortType.ASCENDING)
|
netListModel.set_sort_column_id(1, Gtk.SortType.ASCENDING)
|
||||||
|
|
||||||
# Virtual Function list
|
|
||||||
# [vf-name]
|
|
||||||
vf_list = self.widget("vf-list")
|
|
||||||
vf_list_model = Gtk.ListStore(str)
|
|
||||||
vf_list.set_model(vf_list_model)
|
|
||||||
vf_list.set_headers_visible(False)
|
|
||||||
|
|
||||||
vfTextCol = Gtk.TreeViewColumn()
|
|
||||||
vf_txt = Gtk.CellRendererText()
|
|
||||||
vfTextCol.pack_start(vf_txt, True)
|
|
||||||
vfTextCol.add_attribute(vf_txt, 'text', 0)
|
|
||||||
vf_list.append_column(vfTextCol)
|
|
||||||
|
|
||||||
self._xmleditor = vmmXMLEditor(self.builder, self.topwin,
|
self._xmleditor = vmmXMLEditor(self.builder, self.topwin,
|
||||||
self.widget("net-details-align"),
|
self.widget("net-details-align"),
|
||||||
self.widget("net-details"))
|
self.widget("net-details"))
|
||||||
|
@ -264,34 +249,6 @@ class vmmHostNets(vmmGObjectUI):
|
||||||
routevia = routeaddr + ", gateway=" + routevia
|
routevia = routeaddr + ", gateway=" + routevia
|
||||||
self.widget("net-ipv6-route").set_text(routevia or "")
|
self.widget("net-ipv6-route").set_text(routevia or "")
|
||||||
|
|
||||||
def _populate_sriov_state(self, net):
|
|
||||||
(is_vf_pool, pf_name, vfs) = net.get_sriov_vf_networks()
|
|
||||||
|
|
||||||
self.widget("net-sriov-expander").set_visible(is_vf_pool)
|
|
||||||
if not pf_name:
|
|
||||||
self.widget("pf-name").set_text("N/A")
|
|
||||||
return
|
|
||||||
|
|
||||||
self.widget("pf-name").set_text(pf_name)
|
|
||||||
|
|
||||||
vf_list_model = self.widget("vf-list").get_model()
|
|
||||||
vf_list_model.clear()
|
|
||||||
for vf in vfs:
|
|
||||||
addrStr = "%x:%x:%x.%x" % (vf.domain, vf.bus, vf.slot, vf.function)
|
|
||||||
pcidev = NodeDevice.lookupNodedevFromString(self.conn.get_backend(),
|
|
||||||
addrStr)
|
|
||||||
|
|
||||||
vf_name = None
|
|
||||||
|
|
||||||
netdevs = self.conn.filter_nodedevs("net")
|
|
||||||
for netdev in netdevs:
|
|
||||||
logging.debug(netdev.xmlobj.parent)
|
|
||||||
if pcidev.name == netdev.xmlobj.parent:
|
|
||||||
vf_name = netdev.xmlobj.interface
|
|
||||||
break
|
|
||||||
|
|
||||||
vf_list_model.append([vf_name or addrStr])
|
|
||||||
|
|
||||||
def _populate_net_state(self, net):
|
def _populate_net_state(self, net):
|
||||||
active = net.is_active()
|
active = net.is_active()
|
||||||
|
|
||||||
|
@ -319,7 +276,6 @@ class vmmHostNets(vmmGObjectUI):
|
||||||
|
|
||||||
self._populate_net_ipv4_state(net)
|
self._populate_net_ipv4_state(net)
|
||||||
self._populate_net_ipv6_state(net)
|
self._populate_net_ipv6_state(net)
|
||||||
self._populate_sriov_state(net)
|
|
||||||
|
|
||||||
self._xmleditor.set_xml_from_libvirtobject(net)
|
self._xmleditor.set_xml_from_libvirtobject(net)
|
||||||
|
|
||||||
|
@ -357,7 +313,6 @@ class vmmHostNets(vmmGObjectUI):
|
||||||
return
|
return
|
||||||
|
|
||||||
logging.debug("Stopping network '%s'", net.get_name())
|
logging.debug("Stopping network '%s'", net.get_name())
|
||||||
self.widget("vf-list").get_model().clear()
|
|
||||||
vmmAsyncJob.simple_async_noshow(net.stop, [], self,
|
vmmAsyncJob.simple_async_noshow(net.stop, [], self,
|
||||||
_("Error stopping network '%s'") % net.get_name())
|
_("Error stopping network '%s'") % net.get_name())
|
||||||
|
|
||||||
|
|
|
@ -176,18 +176,6 @@ class vmmNetwork(vmmLibvirtObject):
|
||||||
ret = self._get_network("ipv6")
|
ret = self._get_network("ipv6")
|
||||||
return ret + [self._get_static_route("ipv6")]
|
return ret + [self._get_static_route("ipv6")]
|
||||||
|
|
||||||
def get_sriov_vf_networks(self):
|
|
||||||
xmlobj = self.get_xmlobj()
|
|
||||||
pf_name = None
|
|
||||||
vfs = None
|
|
||||||
ret = False
|
|
||||||
if xmlobj.forward.mode == "hostdev":
|
|
||||||
ret = True
|
|
||||||
if xmlobj.forward.pf:
|
|
||||||
pf_name = xmlobj.forward.pf[0].dev
|
|
||||||
vfs = xmlobj.forward.vfs
|
|
||||||
return (ret, pf_name, vfs)
|
|
||||||
|
|
||||||
def pretty_forward_mode(self):
|
def pretty_forward_mode(self):
|
||||||
mode = self.xmlobj.forward.mode
|
mode = self.xmlobj.forward.mode
|
||||||
dev = self.xmlobj.forward.dev
|
dev = self.xmlobj.forward.dev
|
||||||
|
|
|
@ -54,15 +54,6 @@ class _NetworkForwardPf(XMLBuilder):
|
||||||
dev = XMLProperty("./@dev")
|
dev = XMLProperty("./@dev")
|
||||||
|
|
||||||
|
|
||||||
class _NetworkForwardAddress(XMLBuilder):
|
|
||||||
XML_NAME = "address"
|
|
||||||
type = XMLProperty("./@type")
|
|
||||||
domain = XMLProperty("./@domain", is_int=True)
|
|
||||||
bus = XMLProperty("./@bus", is_int=True)
|
|
||||||
slot = XMLProperty("./@slot", is_int=True)
|
|
||||||
function = XMLProperty("./@function", is_int=True)
|
|
||||||
|
|
||||||
|
|
||||||
class _NetworkForward(XMLBuilder):
|
class _NetworkForward(XMLBuilder):
|
||||||
XML_NAME = "forward"
|
XML_NAME = "forward"
|
||||||
|
|
||||||
|
@ -70,7 +61,6 @@ class _NetworkForward(XMLBuilder):
|
||||||
dev = XMLProperty("./@dev")
|
dev = XMLProperty("./@dev")
|
||||||
managed = XMLProperty("./@managed")
|
managed = XMLProperty("./@managed")
|
||||||
pf = XMLChildProperty(_NetworkForwardPf)
|
pf = XMLChildProperty(_NetworkForwardPf)
|
||||||
vfs = XMLChildProperty(_NetworkForwardAddress)
|
|
||||||
|
|
||||||
|
|
||||||
class _NetworkPortgroup(XMLBuilder):
|
class _NetworkPortgroup(XMLBuilder):
|
||||||
|
|
Loading…
Reference in New Issue