if lvm_type == 'thin':
pool_name = "%s-pool" % self.vg_name
if self.get_volume(pool_name) is None:
- self.create_thin_pool(pool_name)
- else:
- self.vg_thin_pool = pool_name
-
+ try:
+ self.create_thin_pool(pool_name)
+ except putils.ProcessExecutionError:
+ # Maybe we just lost the race against another copy of
+ # this driver being in init in parallel - e.g.
+ # cinder-volume and cinder-backup starting in parallel
+ if self.get_volume(pool_name) is None:
+ raise
+
+ self.vg_thin_pool = pool_name
self.activate_lv(self.vg_thin_pool)
self.pv_list = self.get_all_physical_volumes(root_helper, vg_name)
+ if lvm_conf and os.path.isfile(lvm_conf):
+ LVM.LVM_CMD_PREFIX = ['env',
+ 'LC_ALL=C',
+ 'LVM_SYSTEM_DIR=/etc/cinder']
def _vg_exists(self):
"""Simple check to see if VG exists.