# # upgrade_migratefs_gui.py: dialog for migrating filesystems on upgrades # # Copyright (C) 2001, 2002 Red Hat, Inc. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # Author(s): Mike Fulbright # from iw_gui import * from constants import * import string import isys import iutil from fsset import * import gtk import gettext _ = lambda x: gettext.ldgettext("anaconda", x) class UpgradeMigrateFSWindow (InstallWindow): windowTitle = N_("Migrate File Systems") def getNext (self): for entry in self.migent: entry.setFormat(0) entry.setMigrate(0) entry.fsystem = entry.origfsystem for (cb, entry) in self.cbs: if cb.get_active(): try: newfs = entry.fsystem.migratetofs[0] newfs = fileSystemTypeGet(newfs) except Exception, e: log.info("failed to get new filesystem type, defaulting to ext3: %s" %(e,)) newfs = fileSystemTypeGet("ext3") entry.setFileSystemType(newfs) entry.setFormat(0) entry.setMigrate(1) return None def getScreen (self, anaconda): self.fsset = anaconda.id.fsset self.migent = self.fsset.getMigratableEntries() box = gtk.VBox (False, 5) box.set_border_width (5) text = (_("This release of %s supports " "an updated file system, which has several " "benefits over the file system traditionally shipped " "in %s. This installation program can migrate " "formatted partitions without data loss.\n\n" "Which of these partitions would you like to migrate?") % (productName, productName)) label = gtk.Label (text) label.set_alignment (0.5, 0.0) label.set_size_request(400, -1) label.set_line_wrap (True) box.pack_start(label, False) cbox = gtk.VBox(False, 5) self.cbs = [] for entry in self.migent: # don't allow the user to migrate /boot to ext4 (#439944) if entry.mountpoint == "/boot" and entry.origfsystem.getName() == "ext3": continue if entry.fsystem.getName() != entry.origfsystem.getName(): migrating = 1 else: migrating = 0 cb = gtk.CheckButton("/dev/%s - %s - %s" % (entry.device.getDevice(), entry.origfsystem.getName(), entry.mountpoint)) cb.set_active(migrating) cbox.pack_start(cb, False) self.cbs.append((cb, entry)) sw = gtk.ScrolledWindow() sw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC) sw.add_with_viewport(cbox) sw.set_size_request(-1, 175) viewport = sw.get_children()[0] viewport.set_shadow_type(gtk.SHADOW_IN) a = gtk.Alignment(0.25, 0.5) a.add(sw) box.pack_start(a, True) a = gtk.Alignment(0.5, 0.5) a.add(box) return a