diff options
-rw-r--r-- | TODO | 3 | ||||
-rw-r--r-- | kswriter/KSWriter.py | 23 |
2 files changed, 15 insertions, 11 deletions
@@ -1,7 +1,4 @@ List of things to do: - - - Add support for build IDs (partially done) - - Multi arch repos (partially done) - Support kickstart magic Add addition options per image to describe how it should be created, i.e. image type and other options The generated kickstart files should then have the line on top that can be evaluated by mic diff --git a/kswriter/KSWriter.py b/kswriter/KSWriter.py index 0695544..89da4d3 100644 --- a/kswriter/KSWriter.py +++ b/kswriter/KSWriter.py @@ -5,6 +5,7 @@ import yaml import os, re import sys import errno +from urlparse import urlparse from kickstart import kickstart @@ -89,7 +90,7 @@ class KSWriter(): def process_files(self, meta, repos): new_repos = [] - if meta.has_key("Architecture") and meta['Architecture']: + if ( meta.has_key("Architecture") and meta['Architecture'] ) or ( meta.has_key("Distribution") and meta['Distribution']): for repo in repos: r = {} r['Name'] = repo['Name'] @@ -100,9 +101,16 @@ class KSWriter(): repourl = repourl.replace("@ARCH@", self.arch or meta['Architecture']) if meta.has_key("Distribution") or self.dist: repourl = repourl.replace("@DIST@", self.dist or meta['Distribution']) - r['Url'] = repourl.replace("@RELEASE@", meta['Baseline']) - new_repos.append(r) + url = repourl.replace("@RELEASE@", meta['Baseline']) + o = urlparse(url) + new_url = "%s://" % o[0] + if repo.has_key('Username') and repo['Username']: + new_url = "%s%s" % (new_url, repo['Username'] ) + if repo.has_key('Password') and repo['Password']: + new_url = "%s:%s@" % (new_url, repo['Password'] ) + r['Url'] = "%s%s%s" % (new_url, o[1], o[2] ) + new_repos.append(r) else: new_repos = repos @@ -121,24 +129,23 @@ class KSWriter(): def generate(self): out = {} - r = self.repo_meta['Repositories'] + repos = self.repo_meta['Repositories'] if self.image_meta.has_key('Configurations'): for img in self.image_meta['Configurations']: conf = self.parse(img) if self.config: if img.has_key('FileName') and self.config == img['FileName']: print "Creating %s (%s.ks)" %(img['Name'], img['FileName'] ) - self.process_files(conf, r) + self.process_files(conf, repos) break else: if conf.has_key('Active') and conf['Active'] : print "Creating %s (%s.ks)" %(img['Name'], img['FileName'] ) - self.process_files(conf, r) + self.process_files(conf, repos) else: print "%s is inactive, not generating %s at this time" %(img['Name'], img['FileName'] ) for path in self.image_meta['ExternalConfigs']: external_config_dir = os.path.join(os.path.dirname(self.image_filename), path) - for f in os.listdir(external_config_dir): if f.endswith('.yaml'): fp = file('%s/%s' %(external_config_dir, f), 'r') @@ -152,7 +159,7 @@ class KSWriter(): out['packages'] = conf['ExtraPackages'] else: print "Creating %s (%s.ks)" %(conf['Name'], conf['FileName'] ) - self.process_files(conf, r) + self.process_files(conf, repos) break else: if conf.has_key('Active') and conf['Active']: |