Provide an alternative for os.minor working around its bug
authorKlaus Aehlig <aehlig@google.com>
Tue, 7 Apr 2015 16:04:28 +0000 (18:04 +0200)
committerKlaus Aehlig <aehlig@google.com>
Tue, 7 Apr 2015 16:22:09 +0000 (18:22 +0200)
Python's os.minor still contains an old definition, whereas the
current one has changed. So we add our own definition working around
this bug.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Hrvoje Ribicic <riba@google.com>

lib/utils/storage.py

index b424fab..485df92 100644 (file)
@@ -180,3 +180,13 @@ def LookupSpaceInfoByStorageType(storage_space_info, storage_type):
         logging.warning("Storage space information requested for"
                         " ambiguous storage type '%s'.", storage_type)
   return result
+
+
+def osminor(dev):
+  """Return the device minor number from a raw device number.
+
+  This is a replacement for os.minor working around the issue that
+  Python's os.minor still has the old definition. See Ganeti issue
+  1058 for more details.
+  """
+  return (dev & 0xff) | ((dev >> 12) & ~0xff)