X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/5fcc718f5a511fead627c6a5e489b3c3cf5198d1..5c3b5f99df49ea1a10f2cef1c6695b28fed0b0b7:/lib/bootstrap.py diff --git a/lib/bootstrap.py b/lib/bootstrap.py index def4073..0308484 100644 --- a/lib/bootstrap.py +++ b/lib/bootstrap.py @@ -25,7 +25,6 @@ import os import os.path -import sha import re import logging import tempfile @@ -205,6 +204,9 @@ def InitCluster(cluster_name, mac_prefix, def_bridge, raise errors.OpPrereqError("Init.d script '%s' missing or not" " executable." % constants.NODE_INITD_SCRIPT) + dirs = [(constants.RUN_GANETI_DIR, constants.RUN_DIRS_MODE)] + utils.EnsureDirs(dirs) + utils.ForceDictType(beparams, constants.BES_PARAMETER_TYPES) # hvparams is a mapping of hypervisor->hvparams dict for hv_name, hv_params in hvparams.iteritems(): @@ -443,6 +445,22 @@ def MasterFailover(): return rcode +def GetMaster(): + """Returns the current master node. + + This is a separate function in bootstrap since it's needed by + gnt-cluster, and instead of importing directly ssconf, it's better + to abstract it in bootstrap, where we do use ssconf in other + functions too. + + """ + sstore = ssconf.SimpleStore() + + old_master, _ = ssconf.GetMasterAndMyself(sstore) + + return old_master + + def GatherMasterVotes(node_list): """Check the agreement on who is the master.