diff --git a/lib/backend.py b/lib/backend.py index 89c1b2b9db115236250cba3ad3ae92a747ea8bf1..70afa6034901f33b6663cace612f214cde9a9207 100644 --- a/lib/backend.py +++ b/lib/backend.py @@ -1227,7 +1227,12 @@ def UploadFile(file_name, data, mode, uid, gid, atime, mtime): def WriteSsconfFiles(values): - ssconf.WriteSsconfFiles(values) + """Update all ssconf files. + + Wrapper around the SimpleStore.WriteFiles. + + """ + ssconf.SimpleStore().WriteFiles(values) def _ErrnoOrStr(err): diff --git a/lib/ssconf.py b/lib/ssconf.py index 2189382b412a85e7dfb22ccdde3df2ee7aaa266f..5e2ec042938a62531e471e54caf90b2df370d060 100644 --- a/lib/ssconf.py +++ b/lib/ssconf.py @@ -171,6 +171,25 @@ class SimpleStore(object): " '%s'" % str(err)) return data + def WriteFiles(self, values): + """Writes ssconf files used by external scripts. + + @type values: dict + @param values: Dictionary of (name, value) + + """ + ssconf_lock = utils.FileLock(constants.SSCONF_LOCK_FILE) + + # Get lock while writing files + ssconf_lock.Exclusive(blocking=True, timeout=SSCONF_LOCK_TIMEOUT) + try: + for name, value in values.iteritems(): + if not value.endswith("\n"): + value += "\n" + utils.WriteFile(self.KeyToFilename(name), data=value) + finally: + ssconf_lock.Unlock() + def GetFileList(self): """Return the list of all config files. @@ -218,33 +237,6 @@ class SimpleStore(object): return nl -def _SsconfPath(name): - if not RE_VALID_SSCONF_NAME.match(name): - raise errors.ParameterError("Invalid ssconf name: %s" % name) - return "%s/ssconf_%s" % (constants.DATA_DIR, name) - - -def WriteSsconfFiles(values): - """Writes legacy ssconf files to be used by external scripts. - - @type values: dict - @param values: Dictionary of (name, value) - - """ - ssconf_lock = utils.FileLock(constants.SSCONF_LOCK_FILE) - - # Get lock while writing files - ssconf_lock.Exclusive(blocking=True, timeout=SSCONF_LOCK_TIMEOUT) - try: - for name, value in values.iteritems(): - if not value.endswith("\n"): - value += "\n" - utils.WriteFile(_SsconfPath(name), - data=value) - finally: - ssconf_lock.Unlock() - - def GetMasterAndMyself(ss=None): """Get the master node and my own hostname.