Revision f2e07bb4

b/lib/backend.py
1526 1526
  return bdev.FindDevice(disk.dev_type, disk.physical_id, children, disk.size)
1527 1527

  
1528 1528

  
1529
def _OpenRealBD(disk):
1530
  """Opens the underlying block device of a disk.
1531

  
1532
  @type disk: L{objects.Disk}
1533
  @param disk: the disk object we want to open
1534

  
1535
  """
1536
  real_disk = _RecursiveFindBD(disk)
1537
  if real_disk is None:
1538
    _Fail("Block device '%s' is not set up", disk)
1539

  
1540
  real_disk.Open()
1541

  
1542
  return real_disk
1543

  
1544

  
1529 1545
def BlockdevFind(disk):
1530 1546
  """Check if a device is activated.
1531 1547

  
......
1589 1605
  @rtype: None
1590 1606

  
1591 1607
  """
1592
  real_disk = _RecursiveFindBD(disk)
1593
  if real_disk is None:
1594
    _Fail("Block device '%s' is not set up", disk)
1595

  
1596
  real_disk.Open()
1608
  real_disk = _OpenRealBD(disk)
1597 1609

  
1598 1610
  # the block size on the read dd is 1MiB to match our units
1599 1611
  expcmd = utils.BuildShellCmd("set -e; set -o pipefail; "
......
1903 1915
      variant = inst_os.supported_variants[0]
1904 1916
    result['OS_VARIANT'] = variant
1905 1917
  for idx, disk in enumerate(instance.disks):
1906
    real_disk = _RecursiveFindBD(disk)
1907
    if real_disk is None:
1908
      raise errors.BlockDeviceError("Block device '%s' is not set up" %
1909
                                    str(disk))
1910
    real_disk.Open()
1918
    real_disk = _OpenRealBD(disk)
1911 1919
    result['DISK_%d_PATH' % idx] = real_disk.dev_path
1912 1920
    result['DISK_%d_ACCESS' % idx] = disk.mode
1913 1921
    if constants.HV_DISK_TYPE in instance.hvparams:
......
1937 1945

  
1938 1946
  return result
1939 1947

  
1948

  
1940 1949
def BlockdevGrow(disk, amount):
1941 1950
  """Grow a stack of block devices.
1942 1951

  
......
2018 2027
  logfile = _InstanceLogName("export", inst_os.name, instance.name)
2019 2028
  if not os.path.exists(constants.LOG_OS_DIR):
2020 2029
    os.mkdir(constants.LOG_OS_DIR, 0750)
2021
  real_disk = _RecursiveFindBD(disk)
2022
  if real_disk is None:
2023
    _Fail("Block device '%s' is not set up", disk)
2024 2030

  
2025
  real_disk.Open()
2031
  real_disk = _OpenRealBD(disk)
2026 2032

  
2027 2033
  export_env['EXPORT_DEVICE'] = real_disk.dev_path
2028 2034
  export_env['EXPORT_INDEX'] = str(idx)

Also available in: Unified diff