171 |
171 |
" '%s'" % str(err))
|
172 |
172 |
return data
|
173 |
173 |
|
|
174 |
def WriteFiles(self, values):
|
|
175 |
"""Writes ssconf files used by external scripts.
|
|
176 |
|
|
177 |
@type values: dict
|
|
178 |
@param values: Dictionary of (name, value)
|
|
179 |
|
|
180 |
"""
|
|
181 |
ssconf_lock = utils.FileLock(constants.SSCONF_LOCK_FILE)
|
|
182 |
|
|
183 |
# Get lock while writing files
|
|
184 |
ssconf_lock.Exclusive(blocking=True, timeout=SSCONF_LOCK_TIMEOUT)
|
|
185 |
try:
|
|
186 |
for name, value in values.iteritems():
|
|
187 |
if not value.endswith("\n"):
|
|
188 |
value += "\n"
|
|
189 |
utils.WriteFile(self.KeyToFilename(name), data=value)
|
|
190 |
finally:
|
|
191 |
ssconf_lock.Unlock()
|
|
192 |
|
174 |
193 |
def GetFileList(self):
|
175 |
194 |
"""Return the list of all config files.
|
176 |
195 |
|
... | ... | |
218 |
237 |
return nl
|
219 |
238 |
|
220 |
239 |
|
221 |
|
def _SsconfPath(name):
|
222 |
|
if not RE_VALID_SSCONF_NAME.match(name):
|
223 |
|
raise errors.ParameterError("Invalid ssconf name: %s" % name)
|
224 |
|
return "%s/ssconf_%s" % (constants.DATA_DIR, name)
|
225 |
|
|
226 |
|
|
227 |
|
def WriteSsconfFiles(values):
|
228 |
|
"""Writes legacy ssconf files to be used by external scripts.
|
229 |
|
|
230 |
|
@type values: dict
|
231 |
|
@param values: Dictionary of (name, value)
|
232 |
|
|
233 |
|
"""
|
234 |
|
ssconf_lock = utils.FileLock(constants.SSCONF_LOCK_FILE)
|
235 |
|
|
236 |
|
# Get lock while writing files
|
237 |
|
ssconf_lock.Exclusive(blocking=True, timeout=SSCONF_LOCK_TIMEOUT)
|
238 |
|
try:
|
239 |
|
for name, value in values.iteritems():
|
240 |
|
if not value.endswith("\n"):
|
241 |
|
value += "\n"
|
242 |
|
utils.WriteFile(_SsconfPath(name),
|
243 |
|
data=value)
|
244 |
|
finally:
|
245 |
|
ssconf_lock.Unlock()
|
246 |
|
|
247 |
|
|
248 |
240 |
def GetMasterAndMyself(ss=None):
|
249 |
241 |
"""Get the master node and my own hostname.
|
250 |
242 |
|