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):
openSUSE Build Service is sponsored by