Hardware Details -> NIC of every VM should now contain checkbox for interface's link state. This checkbox edits domain's XML by changing <link state='up/down'/>. If XML doesn't contain this tag, virt manager assumes state "up". https://bugzilla.redhat.com/show_bug.cgi?id=1614532 Signed-off-by: Simon Kobyda <skobyda@xxxxxxxxxx> --- ui/details.ui | 25 +++++++++++++++++++++++++ virtManager/details.py | 12 +++++++++++- virtManager/domain.py | 5 ++++- 3 files changed, 40 insertions(+), 2 deletions(-) diff --git a/ui/details.ui b/ui/details.ui index 88379b0e..9df12a7f 100644 --- a/ui/details.ui +++ b/ui/details.ui @@ -4014,6 +4014,31 @@ <property name="top_attach">2</property> </packing> </child> + <child> + <object class="GtkLabel" id="network_link_state_label"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Link state</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">3</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="network_link_state_checkbox"> + <property name="label" translatable="yes">active</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="on_network_link_state_checkbox_toggled" swapped="no"/> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">3</property> + </packing> + </child> </object> </child> </object> diff --git a/virtManager/details.py b/virtManager/details.py index e9ca5bda..1797c4e8 100644 --- a/virtManager/details.py +++ b/virtManager/details.py @@ -69,6 +69,7 @@ from .graphwidgets import Sparkline EDIT_NET_VPORT, EDIT_NET_SOURCE, EDIT_NET_MAC, + EDIT_NET_LINKSTATE, EDIT_GFX_PASSWD, EDIT_GFX_TYPE, @@ -93,7 +94,7 @@ from .graphwidgets import Sparkline EDIT_FS, - EDIT_HOSTDEV_ROMBAR) = range(1, 50) + EDIT_HOSTDEV_ROMBAR) = range(1, 51) # Columns in hw list model @@ -545,6 +546,9 @@ class vmmDetails(vmmGObjectUI): "on_network_model_combo_changed": lambda *x: self.enable_apply(x, EDIT_NET_MODEL), "on_network_mac_entry_changed": lambda *x: self.enable_apply(x, EDIT_NET_MAC), + "on_network_link_state_checkbox_toggled": lambda *x: self.enable_apply(x, + EDIT_NET_LINKSTATE), + "on_sound_model_combo_changed": lambda *x: self.enable_apply(x, EDIT_SOUND_MODEL), @@ -2178,6 +2182,9 @@ class vmmDetails(vmmGObjectUI): if self.edited(EDIT_NET_MAC): kwargs["macaddr"] = self.widget("network-mac-entry").get_text() + if self.edited(EDIT_NET_LINKSTATE): + kwargs["linkstate"] = self.widget("network_link_state_checkbox").get_active() + return vmmAddHardware.change_config_helper(self.vm.define_network, kwargs, self.vm, self.err, devobj=devobj) @@ -2717,6 +2724,9 @@ class vmmDetails(vmmGObjectUI): else: self.widget("network-mac-entry").set_text(macaddr) + state = net.link_state == "up" or net.link_state is None + self.widget("network_link_state_checkbox").set_active(state) + self.netlist.set_dev(net) def refresh_input_page(self): diff --git a/virtManager/domain.py b/virtManager/domain.py index a3166f0d..5af6ee01 100644 --- a/virtManager/domain.py +++ b/virtManager/domain.py @@ -757,7 +757,7 @@ class vmmDomain(vmmLibvirtObject): mode=_SENTINEL, model=_SENTINEL, addrstr=_SENTINEL, vtype=_SENTINEL, managerid=_SENTINEL, typeid=_SENTINEL, typeidversion=_SENTINEL, instanceid=_SENTINEL, - portgroup=_SENTINEL, macaddr=_SENTINEL): + portgroup=_SENTINEL, macaddr=_SENTINEL, linkstate=_SENTINEL): xmlobj = self._make_xmlobj_to_define() editdev = self._lookup_device_to_define(xmlobj, devobj, do_hotplug) if not editdev: @@ -787,6 +787,9 @@ class vmmDomain(vmmLibvirtObject): if macaddr != _SENTINEL: editdev.macaddr = macaddr + if linkstate != _SENTINEL: + editdev.link_state = "up" if linkstate else "down" + if do_hotplug: self.hotplug(device=editdev) else: -- 2.17.1 _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list