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.4.2/virtManager/create.py =================================================================== --- virt-manager-1.4.2.orig/virtManager/create.py +++ virt-manager-1.4.2/virtManager/create.py @@ -397,8 +397,20 @@ 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) self.widget("vz-virt-type-hvm").set_active(True) + # 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) if self._set_conn(activeconn) is False: return False Index: virt-manager-1.4.2/virtManager/netlist.py =================================================================== --- virt-manager-1.4.2.orig/virtManager/netlist.py +++ virt-manager-1.4.2/virtManager/netlist.py @@ -170,9 +170,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 = [] @@ -232,10 +242,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_model(self, model):