diff --git a/src/virtManager/create.py b/src/virtManager/create.py index ab644cab9..45199e767 100644 --- a/src/virtManager/create.py +++ b/src/virtManager/create.py @@ -548,7 +548,7 @@ class vmmCreate(vmmGObjectUI): # Networking net_list = self.window.get_widget("config-netdev") - do_warn = uihelpers.populate_network_list(net_list, self.conn) + do_warn = uihelpers.populate_network_list(net_list, self.conn, False) self.set_net_warn(self.conn.netdev_error or do_warn, self.conn.netdev_error, True) diff --git a/src/virtManager/uihelpers.py b/src/virtManager/uihelpers.py index 6328a2032..6bdc293e1 100644 --- a/src/virtManager/uihelpers.py +++ b/src/virtManager/uihelpers.py @@ -354,7 +354,7 @@ def get_network_selection(net_list, bridge_entry): return net_type, net_src -def populate_network_list(net_list, conn, show_manual_bridge=True): +def populate_network_list(net_list, conn, show_direct_interfaces=True): model = net_list.get_model() model.clear() @@ -438,8 +438,15 @@ def populate_network_list(net_list, conn, show_manual_bridge=True): bridge_name = name brlabel = _("(Empty bridge)") else: - sensitive = False - brlabel = "(%s)" % _("Not bridged") + if (show_direct_interfaces and virtinst.support.check_conn_support(conn.vmm, + virtinst.support.SUPPORT_CONN_HV_DIRECT_INTERFACE)): + sensitive = True + nettype = VirtualNetworkInterface.TYPE_DIRECT + bridge_name = name + brlabel = ": %s" % _("macvtap") + else: + sensitive = False + brlabel = "(%s)" % _("Not bridged") label = _("Host device %s %s") % (br.get_name(), brlabel) if hasShared and not brIdxLabel: @@ -482,11 +489,10 @@ def populate_network_list(net_list, conn, show_manual_bridge=True): model.insert(0, row) default = 0 - if show_manual_bridge: - # After all is said and done, add a manual bridge option - manual_row = build_row(None, None, _("Specify shared device name"), - True, False, manual_bridge=True) - model.append(manual_row) + # After all is said and done, add a manual bridge option + manual_row = build_row(None, None, _("Specify shared device name"), + True, False, manual_bridge=True) + model.append(manual_row) set_active(default) return return_warn @@ -527,6 +533,8 @@ def validate_network(parent, conn, nettype, devname, macaddr, model=None): netname = devname elif nettype == VirtualNetworkInterface.TYPE_BRIDGE: bridge = devname + elif nettype == VirtualNetworkInterface.TYPE_DIRECT: + bridge = devname elif nettype == VirtualNetworkInterface.TYPE_USER: pass