Revision fe89794e

b/lib/cmdlib.py
1544 1544
  REQ_BGL = False
1545 1545

  
1546 1546
  def ExpandNames(self):
1547

  
1548 1547
    if not isinstance(self.op.instances, list):
1549 1548
      raise errors.OpPrereqError("Invalid argument type 'instances'")
1550 1549

  
......
1602 1601
    changed = []
1603 1602
    for node, dskl in per_node_disks.items():
1604 1603
      result = self.rpc.call_blockdev_getsizes(node, [v[2] for v in dskl])
1605
      if result.failed:
1604
      if result.failed or result.fail_msg:
1606 1605
        self.LogWarning("Failure in blockdev_getsizes call to node"
1607 1606
                        " %s, ignoring", node)
1608 1607
        continue
b/lib/rpc.py
111 111
    else:
112 112
      self.data = data
113 113
      if not isinstance(self.data, (tuple, list)):
114
        self.failed = True
114 115
        self.fail_msg = ("RPC layer error: invalid result type (%s)" %
115 116
                         type(self.data))
116 117
      elif len(data) != 2:
118
        self.failed = True
117 119
        self.fail_msg = ("RPC layer error: invalid result length (%d), "
118 120
                         "expected 2" % len(self.data))
119 121
      elif not self.data[0]:
122
        self.failed = True
120 123
        self.fail_msg = self._EnsureErr(self.data[1])
121 124
      else:
122 125
        # finally success
......
810 813
    """
811 814
    result = self._SingleNodeCall(node, "blockdev_getmirrorstatus",
812 815
                                  [dsk.ToDict() for dsk in disks])
813
    if not result.failed:
816
    if not (result.failed or result.fail_msg):
814 817
      result.payload = [objects.BlockDevStatus.FromDict(i)
815 818
                        for i in result.payload]
816 819
    return result

Also available in: Unified diff