_SS_FILEPREFIX = "ssconf_"
_VALID_KEYS = (
constants.SS_CLUSTER_NAME,
+ constants.SS_CLUSTER_TAGS,
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_OFFLINE_NODES,
+ constants.SS_ONLINE_NODES,
+ constants.SS_INSTANCE_LIST,
+ constants.SS_RELEASE_VERSION,
)
_MAX_SIZE = 131072
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"
- utils.WriteFile(self.KeyToFilename(name), data=value)
+ utils.WriteFile(self.KeyToFilename(name), data=value, mode=0444)
finally:
ssconf_lock.Unlock()
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()