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