4 import micng.utils as utils
8 DEFAULT_CACHE='/var/tmp'
9 DEFAULT_GSITECONF='/etc/micng/micng.conf'
10 DEFAULT_USITECONF='~/.micng.conf'
12 class ConfigMgr(object):
13 def __init__(self, siteconf=None, ksfile=None):
14 self.outdir = DEFAULT_OUTDIR
15 self.tmpdir = DEFAULT_TMPDIR
16 self.cache = DEFAULT_CACHE
17 self.siteconf = siteconf
22 self.repometadata = None
23 self.init_siteconf(self.siteconf)
24 self.init_kickstart(self.ksfile)
26 def init_siteconf(self, siteconf = None):
27 from ConfigParser import SafeConfigParser
28 siteconf_parser = SafeConfigParser()
29 siteconf_files = [DEFAULT_GSITECONF, DEFAULT_USITECONF]
32 self.siteconf = siteconf
33 siteconf_files = [self.siteconf]
34 siteconf_parser.read(siteconf_files)
36 for option in siteconf_parser.options('main'):
37 value = siteconf_parser.get('main', option)
38 setattr(self, option, value)
40 def init_kickstart(self, ksfile=None):
45 self.kickstart = utils.kickstart.read_kickstart(self.ksfile)
46 self.ksrepos = utils.misc.get_repostrs_from_ks(self.kickstart)
47 print "retrieving repo metadata..."
48 self.repometadata = utils.misc.get_metadata_from_repos(self.ksrepos, self.cache)
50 raise Exception("failed to create image: %s" % e)
52 raise Exception("unable to load kickstart file '%s': %s" % (self.ksfile, e))
55 def setProperty(self, name, value):
56 if not hasattr(self, name):
58 #print ">>", name, value
60 self.init_kickstart(value)
62 if name == 'siteconf':
63 self.init_siteconf(value)
65 return setattr(self, name, value)
67 def getProperty(self, name):
68 if not hasattr(self, name):
70 return getattr(self, name)
72 configmgr = ConfigMgr()
77 def setProperty(cinfo, name):
78 if not isinstance(cinfo, ConfigMgr):
80 if not hasattr(cinfo, name):
83 def getProperty(cinfo, name):
84 if not isinstance(cinfo, ConfigMgr):
86 if not hasattr(cinfo, name):