+from bootyutil import getDiskPart
+
if rhpl.getArch() not in ("s390", "s390x"):
import block
@@ -2041,39 +2043,6 @@ class sparcBootloaderInfo(bootloaderInfo):
###############
# end of boot loader objects... these are just some utility functions used
-# return (disk, partition number) eg ('hda', 1)
-def getDiskPart(dev):
- cut = len(dev)
- if dev[-1] in string.digits:
- if (dev.startswith('rd/') or dev.startswith('ida/') or
- dev.startswith('cciss/') or dev.startswith('sx8/') or
- dev.startswith('mapper/')):
- if dev[-2] == 'p':
- cut = -1
- elif dev[-3] == 'p' and dev[-2] in string.digits:
- cut = -2
- else:
- if dev[-2] in string.digits:
- cut = -2
- else:
- cut = -1
-
- name = dev[:cut]
-
- # hack off the trailing 'p' from /dev/cciss/*, for example
- if name[-1] == 'p':
- for letter in name:
- if letter not in string.letters and letter != "/":
- name = name[:-1]
- break
-
- if cut < 0:
- partNum = int(dev[cut:]) - 1
- else:
- partNum = None
-
- return (name, partNum)
-
# hackery to determine if we should do root=LABEL=/ or whatnot
# as usual, knows too much about anaconda
def getRootDevName(initrd, fsset, rootDev, instRoot):
diff --git a/bootyutil.py b/bootyutil.py
new file mode 100644
index 0000000..cbfab5c
--- /dev/null
+++ b/bootyutil.py
@@ -0,0 +1,48 @@
+#
+# bootyutil.py: functions commonly used by various booty and anaconda modules
+#
+# Copyright 2011 Red Hat, Inc.
+#
+# This software may be freely redistributed under the terms of the GNU
+# library public license.
+#
+# You should have received a copy of the GNU Library Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+#
+
+import string
+
+# return (disk, partition number) eg ('hda', 1)
+def getDiskPart(dev):
+ cut = len(dev)
+ if dev[-1] in string.digits:
+ if (dev.startswith('rd/') or dev.startswith('ida/') or
+ dev.startswith('cciss/') or dev.startswith('sx8/') or
+ dev.startswith('mapper/')):
+ if dev[-2] == 'p':
+ cut = -1
+ elif dev[-3] == 'p' and dev[-2] in string.digits:
+ cut = -2
+ else:
+ if dev[-2] in string.digits:
+ cut = -2
+ else:
+ cut = -1
+
+ name = dev[:cut]
+
+ # hack off the trailing 'p' from /dev/cciss/*, for example
+ if name[-1] == 'p':
+ for letter in name:
+ if letter not in string.letters and letter != "/":
+ name = name[:-1]
+ break
+
+ if cut < 0:
+ partNum = int(dev[cut:]) - 1
+ else:
+ partNum = None
+
+ return (name, partNum)
diff --git a/checkbootloader.py b/checkbootloader.py
index 4b51056..512e880 100644
--- a/checkbootloader.py
+++ b/checkbootloader.py
@@ -23,40 +23,7 @@ liloConfigFile = "/etc/lilo.conf"
yabootConfigFile = "/etc/yaboot.conf"
siloConfigFile = "/etc/silo.conf"
-
-# XXX: this is cut and pasted directly from booty/bootloaderInfo.py
-# should eventually just go from there
-def getDiskPart(dev):
- """Return (disk, partition number) tuple for dev"""
- cut = len(dev)
- if (dev[:3] == "rd/" or dev[:4] == "ida/" or
- dev[:6] == "cciss/"):
- if dev[-2] == 'p':
- cut = -1
- elif dev[-3] == 'p':
- cut = -2
- else:
- if dev[-2] in string.digits:
- cut = -2
- elif dev[-1] in string.digits:
- cut = -1
-
- name = dev[:cut]
-
- # hack off the trailing 'p' from /dev/cciss/*, for example
- if name[-1] == 'p':
- for letter in name:
- if letter not in string.letters and letter != "/":
- name = name[:-1]
- break
-
- if cut < 0:
- partNum = int(dev[cut:]) - 1
- else:
- partNum = None
-
- return (name, partNum)
-
+from bootyutil import getDiskPart