[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [PATCH] Add --root-device to upgrade in ks.cfg
- From: Alexander Todorov <atodorov redhat com>
- To: Discussion of Development and Customization of the Red Hat Linux Installer <anaconda-devel-list redhat com>
- Subject: Re: [PATCH] Add --root-device to upgrade in ks.cfg
- Date: Fri, 12 Dec 2008 16:14:21 +0200
Jeremy Katz wrote:
This makes sense, but we probably want to be a little bit more
flexible. In addition to specifying the device name, UUID or LABEL
should be usable also. Especially as we continue to de-emphasize device
naming due to its somewhat unpredictable nature.
Good afternoon,
here's take two at this. No need to change pykickstart again, we just change the
meaning to:
upgrade [--root-device=DEV] where
DEV=/dev/sda1 or
DEV=UUID=abcd-fdeb-.... or
DEV=LABEL=/
Anaconda will try to match the supplied parameter to the device name, label or
UUID. If we succeed then this is the device we're looking for.
Thanks,
Alexander.
upgrade.py | 22 +++++++++++++++++++++-
1 files changed, 21 insertions(+), 1 deletions(-)
diff --git a/upgrade.py b/upgrade.py
index 4aee58c..2fb6ef6 100644
--- a/upgrade.py
+++ b/upgrade.py
@@ -128,9 +128,29 @@ def findRootParts(anaconda):
if anaconda.id.rootParts is None:
anaconda.id.rootParts = findExistingRoots(anaconda)
+ root_device = None
+ # ks.cfg can pass device as raw device, label or uuid
+ if (anaconda.id.ksdata is not None) and anaconda.id.ksdata.upgrade and (anaconda.id.ksdata.upgrade.root_device is not None):
+ root_device=anaconda.id.ksdata.upgrade.root_device
+
+ if root_device.startswith("LABEL="):
+ root_device = root_device[6:]
+
+ if root_device.startswith("UUID="):
+ root_device = root_device[5:]
+
+ # strip both kind of quotes. we can pass UUID="ID"
+ root_device = root_device.strip('"')
+ root_device = root_device.strip("'")
+
anaconda.id.upgradeRoot = []
for (dev, fs, meta, label) in anaconda.id.rootParts:
- anaconda.id.upgradeRoot.append( (dev, fs) )
+ if (root_device is not None):
+ uuid = isys.readFSUuid(dev)
+ if (root_device == dev) or (root_device == label) or (root_device == uuid):
+ anaconda.id.upgradeRoot.append( (dev, fs) )
+ else:
+ anaconda.id.upgradeRoot.append( (dev, fs) )
if anaconda.id.rootParts is not None and len(anaconda.id.rootParts) > 0:
anaconda.dispatch.skipStep("findinstall", skip = 0)
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]