Revision 3cebe102

b/daemons/ganeti-masterd
566 566
      # activate ip
567 567
      master_node = ssconf.SimpleStore().GetMasterNode()
568 568
      result = rpc.RpcRunner.call_node_start_master(master_node, False, False)
569
      msg = result.RemoteFailMsg()
569
      msg = result.fail_msg
570 570
      if msg:
571 571
        logging.error("Can't activate master IP address: %s", msg)
572 572

  
b/lib/bootstrap.py
323 323

  
324 324
  """
325 325
  result = rpc.RpcRunner.call_node_stop_master(master, True)
326
  msg = result.RemoteFailMsg()
326
  msg = result.fail_msg
327 327
  if msg:
328 328
    logging.warning("Could not disable the master role: %s" % msg)
329 329
  result = rpc.RpcRunner.call_node_leave_cluster(master)
330
  msg = result.RemoteFailMsg()
330
  msg = result.fail_msg
331 331
  if msg:
332 332
    logging.warning("Could not shutdown the node daemon and cleanup"
333 333
                    " the node: %s", msg)
......
442 442
  logging.info("Setting master to %s, old master: %s", new_master, old_master)
443 443

  
444 444
  result = rpc.RpcRunner.call_node_stop_master(old_master, True)
445
  msg = result.RemoteFailMsg()
445
  msg = result.fail_msg
446 446
  if msg:
447 447
    logging.error("Could not disable the master role on the old master"
448 448
                 " %s, please disable manually: %s", old_master, msg)
......
460 460
  cfg.Update(cluster_info)
461 461

  
462 462
  result = rpc.RpcRunner.call_node_start_master(new_master, True, no_voting)
463
  msg = result.RemoteFailMsg()
463
  msg = result.fail_msg
464 464
  if msg:
465 465
    logging.error("Could not start the master role on the new master"
466 466
                  " %s, please check: %s", new_master, msg)
......
523 523
  for node in results:
524 524
    nres = results[node]
525 525
    data = nres.payload
526
    msg = nres.RemoteFailMsg()
526
    msg = nres.fail_msg
527 527
    fail = False
528 528
    if msg:
529 529
      logging.warning("Error contacting node %s: %s", node, msg)
b/lib/cmdlib.py
1641 1641
    changed = []
1642 1642
    for node, dskl in per_node_disks.items():
1643 1643
      result = self.rpc.call_blockdev_getsizes(node, [v[2] for v in dskl])
1644
      if result.RemoteFailMsg():
1644
      if result.fail_msg:
1645 1645
        self.LogWarning("Failure in blockdev_getsizes call to node"
1646 1646
                        " %s, ignoring", node)
1647 1647
        continue
......
2885 2885
      # and make sure the new node will not have old files around
2886 2886
      if not new_node.master_candidate:
2887 2887
        result = self.rpc.call_node_demote_from_mc(new_node.name)
2888
        msg = result.RemoteFailMsg()
2888
        msg = result.fail_msg
2889 2889
        if msg:
2890 2890
          self.LogWarning("Node failed to demote itself from master"
2891 2891
                          " candidate status: %s" % msg)
......
3013 3013
          changed_mc = True
3014 3014
          result.append(("master_candidate", "auto-demotion due to drain"))
3015 3015
          rrc = self.rpc.call_node_demote_from_mc(node.name)
3016
          msg = rrc.RemoteFailMsg()
3016
          msg = rrc.fail_msg
3017 3017
          if msg:
3018 3018
            self.LogWarning("Node failed to demote itself: %s" % msg)
3019 3019
        if node.offline:
......
4077 4077
        if result.offline:
4078 4078
          # offline nodes will be in both lists
4079 4079
          off_nodes.append(name)
4080
        if result.RemoteFailMsg():
4080
        if result.fail_msg:
4081 4081
          bad_nodes.append(name)
4082 4082
        else:
4083 4083
          if result.payload:
b/lib/config.py
1090 1090
    result = rpc.RpcRunner.call_upload_file(node_list, self._cfg_file,
1091 1091
                                            address_list=addr_list)
1092 1092
    for to_node, to_result in result.items():
1093
      msg = to_result.RemoteFailMsg()
1093
      msg = to_result.fail_msg
1094 1094
      if msg:
1095 1095
        msg = ("Copy of file %s to node %s failed: %s" %
1096 1096
               (self._cfg_file, to_node, msg))
......
1126 1126
          self._UnlockedGetNodeList(),
1127 1127
          self._UnlockedGetSsconfValues())
1128 1128
        for nname, nresu in result.items():
1129
          msg = nresu.RemoteFailMsg()
1129
          msg = nresu.fail_msg
1130 1130
          if msg:
1131 1131
            logging.warning("Error while uploading ssconf files to"
1132 1132
                            " node %s: %s", nname, msg)
b/lib/jqueue.py
673 673

  
674 674
    # Clean queue directory on added node
675 675
    result = rpc.RpcRunner.call_jobqueue_purge(node_name)
676
    msg = result.RemoteFailMsg()
676
    msg = result.fail_msg
677 677
    if msg:
678 678
      logging.warning("Cannot cleanup queue directory on node %s: %s",
679 679
                      node_name, msg)
......
697 697
      result = rpc.RpcRunner.call_jobqueue_update([node_name],
698 698
                                                  [node.primary_ip],
699 699
                                                  file_name, content)
700
      msg = result[node_name].RemoteFailMsg()
700
      msg = result[node_name].fail_msg
701 701
      if msg:
702 702
        logging.error("Failed to upload file %s to node %s: %s",
703 703
                      file_name, node_name, msg)
......
737 737
    success = []
738 738

  
739 739
    for node in nodes:
740
      msg = result[node].RemoteFailMsg()
740
      msg = result[node].fail_msg
741 741
      if msg:
742 742
        failed.append(node)
743 743
        logging.error("RPC call %s failed on node %s: %s",
b/lib/mcpu.py
448 448
      res = results[node_name]
449 449
      if res.offline:
450 450
        continue
451
      msg = res.RemoteFailMsg()
451
      msg = res.fail_msg
452 452
      if msg:
453 453
        self.lu.LogWarning("Communication failure to node %s: %s",
454 454
                           node_name, msg)
b/lib/rpc.py
147 147
      ec = errors.OpExecError
148 148
    raise ec(msg)
149 149

  
150
  def RemoteFailMsg(self):
151
    """Check if the remote procedure failed.
152

  
153
    @return: the fail_msg attribute
154

  
155
    """
156
    return self.fail_msg
157

  
158 150

  
159 151
class Client:
160 152
  """RPC Client class.

Also available in: Unified diff