summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2013-06-14 12:10:49 -0700
committerSage Weil <sage@inktank.com>2013-06-14 12:10:49 -0700
commit82ff72f827b9bd7f91d30a09d35e42b25d2a7344 (patch)
tree19eb93306b0fc1b9ea3f5cf2383f7fcc0f1850e2
parent92b830075928c2113c9b5fc2d1b5eaab8c63b5ad (diff)
downloadceph-82ff72f827b9bd7f91d30a09d35e42b25d2a7344.tar.gz
ceph-disk: work around buggy rhel/centos parted
parted on RHEL/Centos prefixes the *machine readable output* with 1b 5b 3f 31 30 33 34 68 Note that the same thing happens when you 'import readline' in python. Work around it! Signed-off-by: Sage Weil <sage@inktank.com>
-rwxr-xr-xsrc/ceph-disk5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/ceph-disk b/src/ceph-disk
index 13d9f8203ce..1d1a1501e79 100755
--- a/src/ceph-disk
+++ b/src/ceph-disk
@@ -637,6 +637,11 @@ def get_free_partition_index(dev):
raise Error('parted failed to output anything')
lines = str(lines).splitlines(True)
+ # work around buggy libreadline(?) library in rhel/centos.
+ idiot_prefix = '\x1b\x5b\x3f\x31\x30\x33\x34\x68';
+ if lines[0].startswith(idiot_prefix):
+ lines[0] = lines[0][8:]
+
if lines[0] not in ['CHS;\n', 'CYL;\n', 'BYT;\n']:
raise Error('weird parted units', lines[0])
del lines[0]