Revision 2209788e

b/lib/backend.py
1916 1916

  
1917 1917
  """
1918 1918
  try:
1919
    result = _RecursiveAssembleBD(disk, owner, as_primary)
1920
    if isinstance(result, bdev.BlockDev):
1921
      # pylint: disable=E1103
1922
      result = result.dev_path
1919
    device = _RecursiveAssembleBD(disk, owner, as_primary)
1920
    if isinstance(device, bdev.BlockDev):
1921
      dev_path = device.dev_path
1922
      link_name = None
1923 1923
      if as_primary:
1924
        _SymlinkBlockDev(owner, result, idx)
1924
        link_name = _SymlinkBlockDev(owner, dev_path, idx)
1925 1925
  except errors.BlockDeviceError, err:
1926 1926
    _Fail("Error while assembling disk: %s", err, exc=True)
1927 1927
  except OSError, err:
1928 1928
    _Fail("Error while symlinking disk: %s", err, exc=True)
1929 1929

  
1930
  return result
1930
  return dev_path, link_name
1931 1931

  
1932 1932

  
1933 1933
def BlockdevShutdown(disk):
b/lib/cmdlib/instance.py
1766 1766
                        idx, result.fail_msg)
1767 1767
        errs.append(result.fail_msg)
1768 1768
        break
1769
      dev_path = result.payload
1769
      dev_path, _ = result.payload
1770 1770
      result = self.rpc.call_blockdev_export(source_node, (disk, instance),
1771 1771
                                             target_node, dev_path,
1772 1772
                                             cluster_name)
......
3108 3108
    self.LogInfo("Trying to hotplug device...")
3109 3109
    result = self.rpc.call_hotplug_device(self.instance.primary_node,
3110 3110
                                          self.instance, action, dev_type,
3111
                                          device, extra, seq)
3111
                                          (device, self.instance),
3112
                                          extra, seq)
3112 3113
    if result.fail_msg:
3113 3114
      self.LogWarning("Could not hotplug device: %s" % result.fail_msg)
3114 3115
      self.LogInfo("Continuing execution..")
......
3143 3144
                         cleanup=new_disks)
3144 3145

  
3145 3146
    if self.op.hotplug:
3146
      _, device_info = AssembleInstanceDisks(self, self.instance,
3147
                                             [disk], check=False)
3148
      _, _, dev_path = device_info[0]
3149
      self._HotplugDevice(constants.HOTPLUG_ACTION_ADD,
3150
                          constants.HOTPLUG_TARGET_DISK,
3151
                          disk, dev_path, idx)
3147
      # _, device_info = AssembleInstanceDisks(self, self.instance,
3148
      #                                       [disk], check=False)
3149
      self.cfg.SetDiskID(disk, self.instance.primary_node)
3150
      result = self.rpc.call_blockdev_assemble(self.instance.primary_node,
3151
                                               (disk, self.instance),
3152
                                               self.instance.name, True, idx)
3153
      if result.fail_msg:
3154
        self.LogWarning("Can't assemble newly created disk %d: %s",
3155
                        idx, result.fail_msg)
3156
      else:
3157
        # _, _, dev_path = device_info[0]
3158
        _, link_name = result.payload
3159
        self._HotplugDevice(constants.HOTPLUG_ACTION_ADD,
3160
                            constants.HOTPLUG_TARGET_DISK,
3161
                            disk, link_name, idx)
3152 3162

  
3153 3163
    return (disk, [
3154 3164
      ("disk/%d" % idx, "add:size=%s,mode=%s" % (disk.size, disk.mode)),
b/lib/cmdlib/instance_storage.py
1252 1252
                      inst_disk.iv_name, node, msg)
1253 1253
        disks_ok = False
1254 1254
      else:
1255
        dev_path = result.payload
1255
        dev_path, _ = result.payload
1256 1256

  
1257 1257
    device_info.append((instance.primary_node, inst_disk.iv_name, dev_path))
1258 1258

  
b/lib/rpc.py
740 740
        n.netinfo = objects.Network.ToDict(nobj)
741 741
    return n.ToDict()
742 742

  
743
  def _DeviceDict(self, device):
743
  def _DeviceDict(self, (device, instance)):
744 744
    if isinstance(device, objects.NIC):
745 745
      return self._NicDict(device)
746 746
    elif isinstance(device, objects.Disk):
747
      return _ObjectToDict(device)
747
      return self._SingleDiskDictDP((device, instance))
748 748

  
749 749
  def _InstDict(self, instance, hvp=None, bep=None, osp=None):
750 750
    """Convert the given instance to a dict.

Also available in: Unified diff