Revision eb1742d5 lib/cmdlib.py
b/lib/cmdlib.py | ||
---|---|---|
1622 | 1622 |
|
1623 | 1623 |
self.rpc.call_node_leave_cluster(node.name) |
1624 | 1624 |
|
1625 |
# Promote nodes to master candidate as needed |
|
1626 |
cp_size = self.cfg.GetClusterInfo().candidate_pool_size |
|
1627 |
node_info = self.cfg.GetAllNodesInfo().values() |
|
1628 |
num_candidates = len([n for n in node_info |
|
1629 |
if n.master_candidate]) |
|
1630 |
num_nodes = len(node_info) |
|
1631 |
random.shuffle(node_info) |
|
1632 |
for node in node_info: |
|
1633 |
if num_candidates >= cp_size or num_candidates >= num_nodes: |
|
1634 |
break |
|
1635 |
if node.master_candidate: |
|
1636 |
continue |
|
1637 |
node.master_candidate = True |
|
1638 |
self.LogInfo("Promoting node %s to master candidate", node.name) |
|
1639 |
self.cfg.Update(node) |
|
1640 |
self.context.ReaddNode(node) |
|
1641 |
num_candidates += 1 |
|
1642 |
|
|
1625 | 1643 |
|
1626 | 1644 |
class LUQueryNodes(NoHooksLU): |
1627 | 1645 |
"""Logical unit for querying nodes. |
Also available in: Unified diff