for dsk in disks:
rbd = _RecursiveFindBD(dsk)
if rbd is None:
- raise errors.BlockDeviceError("Can't find device %s" % str(dsk))
+ _Fail("Can't find device %s", dsk)
stats.append(rbd.CombinedSyncStatus())
- return stats
+ return True, stats
def _RecursiveFindBD(disk):
result['NIC_%d_MAC' % idx] = nic.mac
if nic.ip:
result['NIC_%d_IP' % idx] = nic.ip
- result['NIC_%d_BRIDGE' % idx] = nic.bridge
+ result['NIC_%d_MODE' % idx] = nic.nicparams[constants.NIC_MODE]
+ if nic.nicparams[constants.NIC_MODE] == constants.NIC_MODE_BRIDGED:
+ result['NIC_%d_BRIDGE' % idx] = nic.nicparams[constants.NIC_LINK]
+ if nic.nicparams[constants.NIC_LINK]:
+ result['NIC_%d_LINK' % idx] = nic.nicparams[constants.NIC_LINK]
if constants.HV_NIC_TYPE in instance.hvparams:
result['NIC_%d_FRONTEND_TYPE' % idx] = \
instance.hvparams[constants.HV_NIC_TYPE]
r_dev = _RecursiveFindBD(disk)
if r_dev is not None:
# let's stay on the safe side and ask for the full size, for now
- return r_dev.Snapshot(disk.size)
+ return True, r_dev.Snapshot(disk.size)
else:
- return None
+ _Fail("Cannot find block device %s", disk)
else:
- raise errors.ProgrammerError("Cannot snapshot non-lvm block device"
- " '%s' of type '%s'" %
- (disk.unique_id, disk.dev_type))
+ _Fail("Cannot snapshot non-lvm block device '%s' of type '%s'",
+ disk.unique_id, disk.dev_type)
def ExportSnapshot(disk, dest_node, instance, cluster_name, idx):
os.mkdir(constants.LOG_OS_DIR, 0750)
real_disk = _RecursiveFindBD(disk)
if real_disk is None:
- raise errors.BlockDeviceError("Block device '%s' is not set up" %
- str(disk))
+ _Fail("Block device '%s' is not set up", disk)
+
real_disk.Open()
export_env['EXPORT_DEVICE'] = real_disk.dev_path
result = utils.RunCmd(command, env=export_env)
if result.failed:
- logging.error("os snapshot export command '%s' returned error: %s"
- " output: %s", command, result.fail_reason, result.output)
- return False
+ _Fail("OS snapshot export command '%s' returned error: %s"
+ " output: %s", command, result.fail_reason, result.output)
- return True
+ return (True, None)
def FinalizeExport(instance, snap_disks):