Revision f2e07bb4 lib/backend.py
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