URL = namedtuple('URL', 'url user password')
-class OBSConf(object):
- 'Config items related to obs section'
+class SectionConf(object):
+ """Config items related to obs and repo sections."""
- def __init__(self, parent, name, url, base, target):
+ def __init__(self, parent, name, url, base=None, target=None):
self.parent = parent
self.name = name
self.base = base
raise errors.ConfigError('%s for %s' % (str(err), url.url))
def dump(self, fhandler):
- 'dump ini to file object'
+ """Dump ini to file object."""
parser = BrainConfigParser()
parser.add_section(self.name)
parser.write(fhandler)
-class RepoConf(object):
- 'Config items related to repo section'
-
- def __init__(self, parent, name, url):
- self.parent = parent
- self.name = name
-
- user = url.user or parent.common_user
- password = url.password or parent.common_password
- try:
- self.url = SafeURL(url.url, user, password)
- except ValueError, err:
- raise errors.ConfigError('%s for %s' % (str(err), url.url))
-
- def dump(self, fhandler):
- 'dump ini to file object'
- parser = BrainConfigParser()
- parser.add_section(self.name)
-
- parser.set(self.name, 'url', self.url)
-
- if self.url.user and self.url.user != self.parent.common_user:
- parser.set(self.name, 'user', self.url.user)
-
- if self.url.passwd and self.url.passwd != self.parent.common_password:
- parser.set(self.name, 'passwdx',
- encode_passwd(self.url.passwd))
- parser.write(fhandler)
-
-
class Profile(object):
'''Profile which contains all config values related to same domain'''
raise errors.ConfigError('obs section name should start '
'with string "obs.": %s' % obs)
- obsconf = OBSConf(profile, obs,
- self._get_url_options(obs),
- self.get_optional_item(obs, 'base_prj'),
- self.get_optional_item(obs, 'target_prj'))
+ obsconf = SectionConf(profile, obs,
+ self._get_url_options(obs),
+ self.get_optional_item(obs, 'base_prj'),
+ self.get_optional_item(obs, 'target_prj'))
profile.set_obs(obsconf)
repos = self.get_optional_item(name, 'repos')
'with string "repo."' % repo)
continue
- repoconf = RepoConf(profile, repo,
- self._get_url_options(repo))
+ repoconf = SectionConf(profile, repo,
+ self._get_url_options(repo))
profile.add_repo(repoconf)
profile.buildroot = self.get_optional_item(name, 'buildroot')
password = self.get_optional_item(sec, 'passwd')
url = URL(addr, user, password)
- obsconf = OBSConf(profile, 'obs.%s' % sec, url,
- self.get_optional_item('remotebuild', 'base_prj'),
- self.get_optional_item('remotebuild', 'target_prj'))
+ obsconf = SectionConf(profile, 'obs.%s' % sec, url,
+ self.get_optional_item('remotebuild', 'base_prj'),
+ self.get_optional_item('remotebuild', 'target_prj'))
profile.set_obs(obsconf)
repos = self._parse_build_repos()
raise errors.ConfigError("URL is not specified for %s" % key)
url = URL(item['url'], item.get('user'), item.get('passwd'))
- repoconf = RepoConf(profile, 'repo.%s' % key, url)
+ repoconf = SectionConf(profile, 'repo.%s' % key, url)
profile.add_repo(repoconf)
return profile