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