[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [PATCH] Fix the filesystem migration dialog in text mode (#688314).
- From: David Lehman <dlehman redhat com>
- To: Discussion of Development and Customization of the Red Hat Linux Installer <anaconda-devel-list redhat com>
- Subject: Re: [PATCH] Fix the filesystem migration dialog in text mode (#688314).
- Date: Fri, 18 Mar 2011 16:41:34 -0500
Looks good except for two things, below.
On Fri, 2011-03-18 at 17:10 -0400, Chris Lumens wrote:
> ---
> pyanaconda/textw/upgrade_text.py | 43 +++++++++++++++++++++++---------------
> 1 files changed, 26 insertions(+), 17 deletions(-)
>
> diff --git a/pyanaconda/textw/upgrade_text.py b/pyanaconda/textw/upgrade_text.py
> index ed00ad9..7dca48f 100644
> --- a/pyanaconda/textw/upgrade_text.py
> +++ b/pyanaconda/textw/upgrade_text.py
> @@ -36,7 +36,6 @@ seenExamineScreen = False
>
> class UpgradeMigrateFSWindow:
> def __call__ (self, screen, anaconda):
> -
> migent = anaconda.storage.migratableDevices
>
> g = GridFormHelp(screen, _("Migrate File Systems"), "upmigfs", 1, 4)
> @@ -64,15 +63,15 @@ class UpgradeMigrateFSWindow:
> device.format.type,
> device.format.mountpoint),
> device, migrating)
> -
> +
> g.add(partlist, 0, 1, padding = (0, 0, 0, 1))
> -
> +
> buttons = ButtonBar(screen, [TEXT_OK_BUTTON, TEXT_BACK_BUTTON] )
> g.add(buttons, 0, 3, anchorLeft = 1, growx = 1)
>
> - while 1:
> + while True:
> result = g.run()
> -
> +
> if (buttons.buttonPressed(result)):
> result = buttons.buttonPressed(result)
>
> @@ -80,20 +79,30 @@ class UpgradeMigrateFSWindow:
> screen.popWindow()
> return INSTALL_BACK
>
> - # reset
> - # XXX the way to do this is by scheduling and cancelling actions
> - #for entry in migent:
> - # entry.setFormat(0)
> - # entry.setMigrate(0)
> - # entry.fsystem = entry.origfsystem
> + # Cancel any previously scheduled migrate actions first.
> + for entry in partlist:
> + action = anaconda.storage.devicetree.findActions(device=entry[1],
> + type="migrate")
findActions will return a list of actions, possibly empty.
> + if not action:
> + continue
> +
> + anaconda.storage.devicetree.cancelAction(action)
>
> + # Then schedule an action for whatever rows were selected.
> for entry in partlist.getSelection():
> - try:
> - newfs = getFormat(entry.format.migratetofs[0])
> - except Exception, e:
> - log.info("failed to get new filesystem type, defaulting to ext3: %s" %(e,))
> - newfs = getFormat("ext3")
> - anaconda.storage.migrateFormat(entry, newfs)
> + action = anaconda.storage.devicetree.findActions(device=entry[1],
> + type="migrate")
> + if action:
> + # the migrate action has already been scheduled
> + continue
Surely the above won't ever happen if you've just canceled all
previously scheduled migrate actions.
> +
> + newfs = getFormat(entry[1].format.migrationTarget)
> + if not newfs:
> + log.warning("failed to get new filesystem type (%s)"
> + % entry[1].format.migrationTarget)
> + continue
> + action = ActionMigrateFormat(entry[1])
> + anaconda.storage.devicetree.registerAction(action)
>
> screen.popWindow()
> return INSTALL_OK
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]