"repourl": {},
"localrepos": [], # save localrepos
"runtime": "bootstrap",
- "repo": {},
+ "extrarepos": {},
"ignore_ksrepo": False,
},
'chroot': {
self.create['name_suffix'])
msger.info("Retrieving repo metadata:")
- ksrepos = misc.get_repostrs_from_ks(ks)
+ ksrepos = kickstart.get_repos(ks,
+ self.create['extrarepos'],
+ self.create['ignore_ksrepo'])
if not ksrepos:
raise errors.KsError('no valid repos found in ks file')
configmgr.create['repourl'][key] = val
if self.options.repo:
- configmgr.create['repo'] = self.options.repo
+ for optvalue in self.options.repo:
+ repo = {}
+ for item in optvalue.split(';'):
+ try:
+ key, val = item.split('=')
+ except:
+ continue
+ repo[key.strip()] = val.strip()
+ if 'name' in repo:
+ configmgr.create['extrarepos'][repo['name']] = repo
+
if self.options.ignore_ksrepo:
configmgr.create['ignore_ksrepo'] = self.options.ignore_ksrepo
into the install root. By default, the packages are installed from the
repository URLs specified in the kickstart.
- repo_urls -- a dict which maps a repository name to a repository URL;
+ repo_urls -- a dict which maps a repository name to a repository;
if supplied, this causes any repository URLs specified in
the kickstart to be overridden.
self._excluded_pkgs = None
self._required_groups = None
+ if not repo_urls:
+ repo_urls = self.extrarepos
+
pkg_manager = self.get_pkg_manager()
pkg_manager.setup()
if 'debuginfo' in self.install_pkgs:
pkg_manager.install_debuginfo = True
- for repo in kickstart.get_repos(self.ks, repo_urls):
+ for repo in kickstart.get_repos(self.ks, repo_urls, self.ignore_ksrepo):
(name, baseurl, mirrorlist, inc, exc,
proxy, proxy_username, proxy_password, debuginfo,
source, gpgkey, disable, ssl_verify, nocache,
if 'name' in repo:
repos[repo['name']] = Repo(**repo)
+ if repo_urls:
+ if ignore_ksrepo:
+ repos = {}
+ for name, repo in repo_urls.items():
+ if 'baseurl' in repo:
+ repo['baseurl'] = SafeURL(repo.get('baseurl'),
+ repo.get('user', None),
+ repo.get('passwd', None))
+ repos[name] = Repo(**repo)
+
return repos.values()
def convert_method_to_repo(ks):
def get_metadata_from_repos(repos, cachedir):
my_repo_metadata = []
for repo in repos:
- reponame = repo['name']
- baseurl = repo['baseurl']
+ reponame = repo.name
+ baseurl = repo.baseurl
- if 'proxy' in repo:
- proxy = repo['proxy']
+ if hasattr(repo, 'proxy'):
+ proxy = repo.proxy
else:
proxy = get_proxy_for(baseurl)