class ServiceSettings: """Service-level settings (SLS) for a single service.""" def __init__(self, jobname): self.jobname = jobname if '/' in jobname: basename = jobname.split('/')[0] else: basename = jobname self.filename = '' for loc in (JobService.SLS_LOCAL, JobService.SLS_SYSTEM, JobService.SLS_DEFAULT): if not loc: continue self.filename = loc.format(basename) if exists(self.filename): log.debug('Using ' + self.filename) break self.settingnames = [] self.settings = {} self.parser = SettingParser(self.filename, jobname) def get_all_settings(self): if not self.settingnames: self.settingnames = self.parser.get_all_settings() return self.settingnames def get_setting(self, name, lang=''): setting = self.parser.get_setting(name, lang) inst = TYPE_MAP[setting[1]](setting[4], setting[5]) self.settings[name] = inst return setting def set_setting(self, name, value): self.parser.set_setting(name, value) def validate_setting(self, name, value): self.settings[name].validate(value) return True
def __init__(self, jobname): self.jobname = jobname if '/' in jobname: basename = jobname.split('/')[0] else: basename = jobname self.filename = '' for loc in (JobService.SLS_LOCAL, JobService.SLS_SYSTEM, JobService.SLS_DEFAULT): if not loc: continue self.filename = loc.format(basename) if exists(self.filename): log.debug('Using ' + self.filename) break self.settingnames = [] self.settings = {} self.parser = SettingParser(self.filename, jobname)