File virtinst-modify-gui-defaults.patch of Package virt-manager
Enhancement for the following GUI wizard installation options.
1) If Xen, leave 'Architecture options' expanded so users know PV
is the default
2) Under 'Network selection' default to a bridge that has an actual
IP address if available (not just the first one found).
Index: virt-manager-1.1.0/virtManager/create.py
===================================================================
--- virt-manager-1.1.0.orig/virtManager/create.py
+++ virt-manager-1.1.0/virtManager/create.py
@@ -331,7 +331,19 @@ class vmmCreate(vmmGObjectUI):
self.widget("method-local").set_active(True)
self.widget("create-conn").set_active(-1)
activeconn = self.populate_conn_list(urihint)
- self.widget("arch-expander").set_expanded(False)
+ # For Xen have the expander open so users can see PV is the default
+ if activeconn and activeconn.is_xen():
+ self.widget("arch-expander").set_expanded(True)
+ else:
+ self.widget("arch-expander").set_expanded(False)
+
+ # Default to Network install if host was installed that way
+ host_instsrc = util.getHostInstallSource()
+ if host_instsrc is not None and \
+ (host_instsrc.startswith('ftp:') or host_instsrc.startswith('http:') or \
+ host_instsrc.startswith('smb:') or host_instsrc.startswith('nfs:')):
+ self.widget("method-local").set_active(False)
+ self.widget("method-tree").set_active(True)
try:
self.set_conn(activeconn, force_validate=True)
Index: virt-manager-1.1.0/virtManager/netlist.py
===================================================================
--- virt-manager-1.1.0.orig/virtManager/netlist.py
+++ virt-manager-1.1.0/virtManager/netlist.py
@@ -167,9 +167,19 @@ class vmmNetworkList(vmmGObjectUI):
return rows, vnet_bridges, default_label
def _find_physical_devices(self, vnet_bridges):
+ def check_for_inet(bname):
+ if bname is not None:
+ from subprocess import Popen, PIPE
+ p = Popen(['/sbin/ip', 'addr', 'show', bname], stdout=PIPE, stderr=PIPE)
+ stdout, stderr = p.communicate()
+ if stdout and 'inet' in stdout:
+ return True
+ return False
+
rows = []
can_default = False
default_label = None
+ default_label_with_inet = None
skip_ifaces = ["lo"]
vnet_taps = []
@@ -229,10 +239,18 @@ class vmmNetworkList(vmmGObjectUI):
if can_default and not default_label:
default_label = label
+ # Default to a bridge that has an actual inet addr
+ if default_label_with_inet is None:
+ if check_for_inet(source_name):
+ default_label_with_inet = label
+
rows.append(self._build_source_row(
nettype, source_name, label, sensitive, True,
key=name))
+ if default_label and default_label_with_inet is not None:
+ default_label = default_label_with_inet
+
return rows, default_label
def _populate_network_list(self):