[PATCH 3/7] Migrate FS user interface plumbing.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hook up the migrate fs UI components with the new storage backend.
Highlights:
    - If user selects Migrate filesystem to, the Format checkbox is
      disabled.  Same for the reverse, selecting Format disables
      the Migrate options.
    - Mount point entry box is not disabled for migrate selections.
    - Wrap the return value in storage.formats.fs.FS.migratable
      in bool().  If the filter() operation returns a list, that's
      what we get in the return value rather than True.
    - Other minor typo and syntax fixes.
---
 iw/partition_ui_helpers_gui.py |   45 ++++++++++++++++++++++-----------------
 storage/formats/__init__.py    |    2 +-
 storage/formats/fs.py          |   11 +++++----
 3 files changed, 32 insertions(+), 26 deletions(-)

diff --git a/iw/partition_ui_helpers_gui.py b/iw/partition_ui_helpers_gui.py
index 723367c..4179ab9 100644
--- a/iw/partition_ui_helpers_gui.py
+++ b/iw/partition_ui_helpers_gui.py
@@ -30,7 +30,7 @@ import iutil
 from constants import *
 from partIntfHelpers import *
 from partedUtils import *
-from storage.formats import device_formats, getFormat, get_default_filesystem_type
+from storage.formats import *
 
 import gettext
 _ = lambda x: gettext.ldgettext("anaconda", x)
@@ -89,17 +89,18 @@ def createMountPointCombo(request, excludeMountPoints=[]):
     if request.exists and label and label.startswith("/"):
         mntptlist.append(label)
         idx = 0
-    
+
     for p in defaultMountPoints:
-	if p in excludeMountPoints:
-	    continue
-	
-	if not p in mntptlist and (p[0] == "/"):
-	    mntptlist.append(p)
+        if p in excludeMountPoints:
+            continue
+
+        if not p in mntptlist and (p[0] == "/"):
+            mntptlist.append(p)
 
     map(mountCombo.append_text, mntptlist)
 
-    if request.format.type and request.format.mountable:
+    if (request.format.type or request.format.migrate) and \
+       request.format.mountable:
         mountpoint = request.format.mountpoint
         mountCombo.set_sensitive(1)
         if mountpoint:
@@ -248,9 +249,12 @@ def formatOptionResizeCB(widget, resizesb):
     if resizesb.get_value_as_int() < lower:
         resizesb.set_value(adj.lower)
 
-def formatOptionCB(widget, data):
-    (combowidget, mntptcombo, ofstype, lukscb) = data
+def formatMigrateOptionCB(widget, data):
+    (combowidget, mntptcombo, ofstype, lukscb, othercombo, othercb) = data
     combowidget.set_sensitive(widget.get_active())
+    othercb.set_sensitive(not widget.get_active())
+    othercombo.set_sensitive(not widget.get_active())
+
     if lukscb is not None:
         lukscb.set_data("formatstate", widget.get_active())
         if not widget.get_active():
@@ -262,11 +266,11 @@ def formatOptionCB(widget, data):
 
     # inject event for fstype menu
     if widget.get_active():
-	fstype = combowidget.get_active_value()
-	setMntPtComboStateFromType(fstype, mntptcombo)
+        fstype = combowidget.get_active_value()
+        setMntPtComboStateFromType(fstype, mntptcombo)
         combowidget.grab_focus()
     else:
-	setMntPtComboStateFromType(ofstype, mntptcombo)
+        setMntPtComboStateFromType(ofstype, mntptcombo)
 
 def noformatCB(widget, data):
     (combowidget, mntptcombo, ofstype) = data
@@ -274,7 +278,7 @@ def noformatCB(widget, data):
 
     # inject event for fstype menu
     if widget.get_active():
-	setMntPtComboStateFromType(ofstype, mntptcombo)
+        setMntPtComboStateFromType(ofstype, mntptcombo)
 
 
 """ createPreExistFSOptionSection: given inputs for a preexisting partition,
@@ -314,10 +318,6 @@ def createPreExistFSOptionSection(origrequest, maintable, row, mountCombo,
     # this gets added to the table a bit later on
     lukscb = gtk.CheckButton(_("_Encrypt"))
 
-    formatcb.connect("toggled", formatOptionCB,
-                    (fstypeCombo, mountCombo, ofstype, lukscb))
-
-
     if origrequest.format.migratable:
 	migratecb = gtk.CheckButton(label=_("Mi_grate filesystem to:"))
         migratecb.set_active(istruefalse(origrequest.format.migrate))
@@ -333,12 +333,17 @@ def createPreExistFSOptionSection(origrequest, maintable, row, mountCombo,
 	row = row + 1
         rc["migratecb"] = migratecb
         rc["migfstypeCombo"] = migfstypeCombo
-	migratecb.connect("toggled", formatOptionCB,
-                          (migfstypeCombo, mountCombo, ofstype, None))
+	migratecb.connect("toggled", formatMigrateOptionCB,
+                          (migfstypeCombo, mountCombo, ofstype, None,
+                           fstypeCombo, formatcb))
     else:
 	migratecb = None
 	migfstypeCombo = None
 
+    formatcb.connect("toggled", formatMigrateOptionCB,
+                    (fstypeCombo, mountCombo, ofstype, lukscb,
+                     migfstypeCombo, migratecb))
+
     if origrequest.resizable:
         resizecb = gtk.CheckButton(label=_("_Resize"))
         resizecb.set_active(origrequest.targetSize != origrequest.currentSize)
diff --git a/storage/formats/__init__.py b/storage/formats/__init__.py
index 8602923..c072f91 100644
--- a/storage/formats/__init__.py
+++ b/storage/formats/__init__.py
@@ -118,7 +118,7 @@ def get_device_format_class(fmt_type):
     fmt = device_formats.get(fmt_type)
     if not fmt:
         for fmt_class in device_formats.values():
-            if fmt_type == fmt_class.name:
+            if fmt_type == fmt_class:
                 fmt = fmt_class
                 break
             elif fmt_type in fmt_class._udevTypes:
diff --git a/storage/formats/fs.py b/storage/formats/fs.py
index 694b1f4..7c73ff4 100644
--- a/storage/formats/fs.py
+++ b/storage/formats/fs.py
@@ -599,11 +599,12 @@ class FS(DeviceFormat):
     @property
     def migratable(self):
         """ Can filesystems of this type be migrated? """
-        return (self._migratable and self.migratefsProg and
-                filter(lambda d: os.access("%s/%s" % (d, self.migratefsProg),
-                                           os.X_OK),
-                       os.environ["PATH"].split(":")) and
-                self.migrationTarget)
+        return bool(self._migratable and self.migratefsProg and
+                    filter(lambda d: os.access("%s/%s"
+                                               % (d, self.migratefsProg,),
+                                               os.X_OK),
+                           os.environ["PATH"].split(":")) and
+                    self.migrationTarget)
 
     def _setMigrate(self, migrate):
         if not migrate:
-- 
1.6.1.3

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/anaconda-devel-list

[Index of Archives]     [Kickstart]     [Fedora Users]     [Fedora Legacy List]     [Fedora Maintainers]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]
  Powered by Linux