Revision 8135a2db
b/lib/bootstrap.py | ||
---|---|---|
323 | 323 |
new master. |
324 | 324 |
|
325 | 325 |
""" |
326 |
cfg = ssconf.SimpleConfigWriter()
|
|
326 |
sstore = ssconf.SimpleStore()
|
|
327 | 327 |
|
328 |
new_master = utils.HostInfo().name
|
|
329 |
old_master = cfg.GetMasterNode()
|
|
330 |
node_list = cfg.GetNodeList()
|
|
328 |
old_master, new_master = ssconf.GetMasterAndMyself(sstore)
|
|
329 |
node_list = sstore.GetNodeList()
|
|
330 |
mc_list = sstore.GetMasterCandidates()
|
|
331 | 331 |
|
332 | 332 |
if old_master == new_master: |
333 | 333 |
raise errors.OpPrereqError("This commands must be run on the node" |
... | ... | |
335 | 335 |
" %s is already the master" % |
336 | 336 |
old_master) |
337 | 337 |
|
338 |
if new_master not in mc_list: |
|
339 |
mc_no_master = [name for name in mc_list if name != old_master] |
|
340 |
raise errors.OpPrereqError("This node is not among the nodes marked" |
|
341 |
" as master candidates. Only these nodes" |
|
342 |
" can become masters. Current list of" |
|
343 |
" master candidates is:\n" |
|
344 |
"%s" % ('\n'.join(mc_no_master))) |
|
345 |
|
|
338 | 346 |
vote_list = GatherMasterVotes(node_list) |
339 | 347 |
|
340 | 348 |
if vote_list: |
... | ... | |
349 | 357 |
" this node." % (old_master, voted_master)) |
350 | 358 |
# end checks |
351 | 359 |
|
360 |
# instantiate a real config writer, as we now know we have the |
|
361 |
# configuration data |
|
362 |
cfg = ssconf.SimpleConfigWriter() |
|
363 |
|
|
352 | 364 |
rcode = 0 |
353 | 365 |
|
354 | 366 |
logging.info("Setting master to %s, old master: %s", new_master, old_master) |
b/lib/ssconf.py | ||
---|---|---|
255 | 255 |
The function does not handle any errors, these should be handled in |
256 | 256 |
the caller (errors.ConfigurationError, errors.ResolverError). |
257 | 257 |
|
258 |
@param ss: either a sstore.SimpleConfigReader or a |
|
259 |
sstore.SimpleStore instance |
|
260 |
@rtype: tuple |
|
261 |
@return: a tuple (master node name, my own name) |
|
262 |
|
|
258 | 263 |
""" |
259 | 264 |
if ss is None: |
260 | 265 |
ss = SimpleStore() |
Also available in: Unified diff