Revision 3a26773f
b/lib/cmdlib.py | ||
---|---|---|
2100 | 2100 |
force = self.force = self.op.force |
2101 | 2101 |
|
2102 | 2102 |
if self.op.master_candidate == False: |
2103 |
if self.op.node_name == self.cfg.GetMasterNode(): |
|
2104 |
raise errors.OpPrereqError("The master node has to be a" |
|
2105 |
" master candidate") |
|
2103 | 2106 |
cp_size = self.cfg.GetClusterInfo().candidate_pool_size |
2104 | 2107 |
node_info = self.cfg.GetAllNodesInfo().values() |
2105 | 2108 |
num_candidates = len([node for node in node_info |
... | ... | |
2129 | 2132 |
# this will trigger configuration file update, if needed |
2130 | 2133 |
self.cfg.Update(node) |
2131 | 2134 |
# this will trigger job queue propagation or cleanup |
2132 |
self.context.ReaddNode(node) |
|
2135 |
if self.op.node_name != self.cfg.GetMasterNode(): |
|
2136 |
self.context.ReaddNode(node) |
|
2133 | 2137 |
|
2134 | 2138 |
return result |
2135 | 2139 |
|
b/lib/config.py | ||
---|---|---|
272 | 272 |
result.append("Highest used port mismatch, saved %s, computed %s" % |
273 | 273 |
(data.cluster.highest_used_port, keys[-1])) |
274 | 274 |
|
275 |
if not data.nodes[data.cluster.master_node].master_candidate: |
|
276 |
result.append("Master node is not a master candidate") |
|
277 |
|
|
275 | 278 |
cp_size = data.cluster.candidate_pool_size |
276 | 279 |
num_c = 0 |
277 | 280 |
for node in data.nodes.values(): |
278 | 281 |
if node.master_candidate: |
279 | 282 |
num_c += 1 |
280 |
if cp_size > num_c: |
|
281 |
result.append("Not enough master candidates: actual %d, desired %d" %
|
|
282 |
(num_c, cp_size))
|
|
283 |
if cp_size > num_c and num_c < len(data.nodes):
|
|
284 |
result.append("Not enough master candidates: actual %d, desired %d,"
|
|
285 |
" %d total nodes" % (num_c, cp_size, len(data.nodes)))
|
|
283 | 286 |
|
284 | 287 |
return result |
285 | 288 |
|
Also available in: Unified diff