projects
/
ganeti-local
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add utils.IsNormAbsPath function
[ganeti-local]
/
lib
/
ssconf.py
diff --git
a/lib/ssconf.py
b/lib/ssconf.py
index
5e2ec04
..
cce1141
100644
(file)
--- a/
lib/ssconf.py
+++ b/
lib/ssconf.py
@@
-126,11
+126,17
@@
class SimpleStore(object):
_SS_FILEPREFIX = "ssconf_"
_VALID_KEYS = (
constants.SS_CLUSTER_NAME,
_SS_FILEPREFIX = "ssconf_"
_VALID_KEYS = (
constants.SS_CLUSTER_NAME,
+ constants.SS_CLUSTER_TAGS,
constants.SS_FILE_STORAGE_DIR,
constants.SS_FILE_STORAGE_DIR,
+ constants.SS_MASTER_CANDIDATES,
constants.SS_MASTER_IP,
constants.SS_MASTER_NETDEV,
constants.SS_MASTER_NODE,
constants.SS_NODE_LIST,
constants.SS_MASTER_IP,
constants.SS_MASTER_NETDEV,
constants.SS_MASTER_NODE,
constants.SS_NODE_LIST,
+ constants.SS_OFFLINE_NODES,
+ constants.SS_ONLINE_NODES,
+ constants.SS_INSTANCE_LIST,
+ constants.SS_RELEASE_VERSION,
)
_MAX_SIZE = 131072
)
_MAX_SIZE = 131072
@@
-184,9
+190,9
@@
class SimpleStore(object):
ssconf_lock.Exclusive(blocking=True, timeout=SSCONF_LOCK_TIMEOUT)
try:
for name, value in values.iteritems():
ssconf_lock.Exclusive(blocking=True, timeout=SSCONF_LOCK_TIMEOUT)
try:
for name, value in values.iteritems():
- if not value.endswith("\n"):
+ if value and not value.endswith("\n"):
value += "\n"
value += "\n"
- utils.WriteFile(self.KeyToFilename(name), data=value)
+ utils.WriteFile(self.KeyToFilename(name), data=value, mode=0444)
finally:
ssconf_lock.Unlock()
finally:
ssconf_lock.Unlock()
@@
-210,6
+216,14
@@
class SimpleStore(object):
"""
return self._ReadFile(constants.SS_FILE_STORAGE_DIR)
"""
return self._ReadFile(constants.SS_FILE_STORAGE_DIR)
+ def GetMasterCandidates(self):
+ """Return the list of master candidates.
+
+ """
+ data = self._ReadFile(constants.SS_MASTER_CANDIDATES)
+ nl = data.splitlines(False)
+ return nl
+
def GetMasterIP(self):
"""Get the IP of the master node for this cluster.
def GetMasterIP(self):
"""Get the IP of the master node for this cluster.
@@
-246,6
+260,11
@@
def GetMasterAndMyself(ss=None):
The function does not handle any errors, these should be handled in
the caller (errors.ConfigurationError, errors.ResolverError).
The function does not handle any errors, these should be handled in
the caller (errors.ConfigurationError, errors.ResolverError).
+ @param ss: either a sstore.SimpleConfigReader or a
+ sstore.SimpleStore instance
+ @rtype: tuple
+ @return: a tuple (master node name, my own name)
+
"""
if ss is None:
ss = SimpleStore()
"""
if ss is None:
ss = SimpleStore()