Revision a97da6b7

b/lib/cmdlib.py
6293 6293
      self.cfg.SetDiskID(disk, src_node)
6294 6294

  
6295 6295
    try:
6296
      for disk in instance.disks:
6296
      for idx, disk in enumerate(instance.disks):
6297 6297
        # new_dev_name will be a snapshot of an lvm leaf of the one we passed
6298 6298
        new_dev_name = self.rpc.call_blockdev_snapshot(src_node, disk)
6299 6299
        if new_dev_name.failed or not new_dev_name.data:
6300
          self.LogWarning("Could not snapshot block device %s on node %s",
6301
                          disk.logical_id[1], src_node)
6300
          self.LogWarning("Could not snapshot disk/%d on node %s",
6301
                          idx, src_node)
6302 6302
          snap_disks.append(False)
6303 6303
        else:
6304 6304
          new_dev = objects.Disk(dev_type=constants.LD_LV, size=disk.size,
......
6323 6323
        result = self.rpc.call_snapshot_export(src_node, dev, dst_node.name,
6324 6324
                                               instance, cluster_name, idx)
6325 6325
        if result.failed or not result.data:
6326
          self.LogWarning("Could not export block device %s from node %s to"
6327
                          " node %s", dev.logical_id[1], src_node,
6328
                          dst_node.name)
6326
          self.LogWarning("Could not export disk/%d from node %s to"
6327
                          " node %s", idx, src_node, dst_node.name)
6329 6328
        msg = self.rpc.call_blockdev_remove(src_node, dev).RemoteFailMsg()
6330 6329
        if msg:
6331
          self.LogWarning("Could not remove snapshot block device %s from node"
6332
                          " %s: %s", dev.logical_id[1], src_node, msg)
6330
          self.LogWarning("Could not remove snapshot for disk/%d from node"
6331
                          " %s: %s", idx, src_node, msg)
6333 6332

  
6334 6333
    result = self.rpc.call_finalize_export(dst_node.name, instance, snap_disks)
6335 6334
    if result.failed or not result.data:
b/lib/rpc.py
959 959
    """
960 960
    flat_disks = []
961 961
    for disk in snap_disks:
962
      flat_disks.append(disk.ToDict())
962
      if isinstance(disk, bool):
963
        flat_disks.append(disk)
964
      else:
965
        flat_disks.append(disk.ToDict())
963 966

  
964 967
    return self._SingleNodeCall(node, "finalize_export",
965 968
                                [self._InstDict(instance), flat_disks])

Also available in: Unified diff