From: Sage Weil Date: Wed, 13 Aug 2014 18:39:47 +0000 (-0700) Subject: ceph-disk: add get_partition_base() helper X-Git-Tag: v0.85~31^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b75e8a340c49cbc067baa19790b994a5f904bb4f;p=ceph.git ceph-disk: add get_partition_base() helper Return the base devices/disk for a partition device. Signed-off-by: Sage Weil --- diff --git a/src/ceph-disk b/src/ceph-disk index ba890a2d7cd1..0fe1ee21457a 100755 --- a/src/ceph-disk +++ b/src/ceph-disk @@ -437,6 +437,23 @@ def list_partitions(basename): partitions.append(name) return partitions +def get_partition_base(dev): + """ + Get the base device for a partition + """ + dev = os.path.realpath(dev) + if not stat.S_ISBLK(os.lstat(dev).st_mode): + raise Error('not a block device', dev) + + name = get_dev_name(dev) + if os.path.exists(os.path.join('/sys/block', name)): + raise Error('not a partition', dev) + + # find the base + for basename in os.listdir('/sys/block'): + if os.path.exists(os.path.join('/sys/block', basename, name)): + return '/dev/' + basename + raise Error('no parent device for partition', dev) def is_partition(dev): """