]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
ceph-disk: retry on OSError
authorKefu Chai <kchai@redhat.com>
Sat, 7 Oct 2017 14:15:11 +0000 (22:15 +0800)
committerKefu Chai <kchai@redhat.com>
Sat, 7 Oct 2017 15:33:14 +0000 (23:33 +0800)
we are likely to
1) create partition, for instance, sdc1
2) partprobe sdc
3) udevadm settle
4) check the device by its path: /dev/sdc1

but there is chance that the uevent sent from kernel fails to reach udev
before we call "udevadm", hence "/dev/sdc1" does not exist even after
"udevadm settle" returns. so we retry in case of OSError here.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/ceph-disk/ceph_disk/main.py

index a9eecc62b9e151550025f8d7e48ac82374369bfe..1f2101742f71c446752329f73f7c525674aff421 100644 (file)
@@ -1845,6 +1845,7 @@ class DevicePartition(object):
         return self.ptype_map[name]['ready']
 
     @staticmethod
+    @retry(OSError)
     def factory(path, dev, args):
         dmcrypt_type = CryptHelpers.get_dmcrypt_type(args)
         if ((path is not None and is_mpath(path)) or