postpone the fetch repomd and cleanup configmgr
authorJF Ding <Jian-feng.Ding@intel.com>
Wed, 7 Sep 2011 08:19:15 +0000 (17:19 +0900)
committerJF Ding <Jian-feng.Ding@intel.com>
Wed, 7 Sep 2011 08:19:15 +0000 (17:19 +0900)
the previous implementation to fetch repomd is too early, it's
very very bad, fixed it
and the there are many unused and ugly methed in configmgr also,
cleaned them up

mic/configmgr.py
mic/imager/baseimager.py
plugins/imager/fs_plugin.py
plugins/imager/livecd_plugin.py
plugins/imager/liveusb_plugin.py
plugins/imager/loop_plugin.py
plugins/imager/raw_plugin.py

index e6b077d..0fbdb50 100644 (file)
 import os, sys
 import ConfigParser
 
-from mic.utils import misc
-from mic.utils import errors
 from mic import kickstart
 from mic import msger
+from mic.utils import misc
+from mic.utils import errors
 
 DEFAULT_GSITECONF='/etc/mic/mic.conf'
 
@@ -36,7 +36,7 @@ DEFAULT_CREATE = {
     "cachedir": DEFAULT_CACHEDIR,
     "outdir": DEFAULT_OUTDIR,
     "arch": None,
-    "pkgmgr": "zypp",
+    "pkgmgr": "yum",
     "name": "output",
     "ksfile": None,
     "ks": None,
@@ -50,7 +50,7 @@ class ConfigMgr(object):
         self.create = {}
         self.convert = {}
         self.chroot = {}
-        self.ksconf = None
+        self.__ksconf = None
         self.siteconf = None
 
         # initial create
@@ -62,8 +62,6 @@ class ConfigMgr(object):
         if not self.siteconf:
             self._siteconf = DEFAULT_GSITECONF
 
-        self._ksconf = ksconf
-
     def __set_siteconf(self, siteconf):
         try:
             self.siteconf = siteconf
@@ -75,10 +73,10 @@ class ConfigMgr(object):
     _siteconf = property(__get_siteconf, __set_siteconf)
 
     def __set_ksconf(self, ksconf):
-        self.ksconf = ksconf
+        self.__ksconf = ksconf
         self.parse_kickstart(ksconf)
     def __get_ksconf(self):
-        return self.ksconf
+        return self.__ksconf
     _ksconf = property(__get_ksconf, __set_ksconf)
 
     def parse_siteconf(self, siteconf = None):
@@ -112,74 +110,14 @@ class ConfigMgr(object):
             return
 
         ks = kickstart.read_kickstart(ksconf)
-        ksrepos = misc.get_repostrs_from_ks(ks)
-
-        msger.info("Retrieving repo metadata:")
-        repometadata = misc.get_metadata_from_repos(ksrepos, self.create['cachedir'])
-        msger.raw(" DONE")
 
         self.create['ks'] = ks
-        self.create['repomd'] = repometadata
         self.create['name'] = os.path.splitext(os.path.basename(ksconf))[0]
 
-    def setProperty(self, key, value):
-        if not hasattr(self, key):
-            return False
-
-        if key == 'ksconf':
-            self._ksconf = value
-            return True
-
-        if key == 'siteconf':
-            self._siteconf = value
-            return True
-
-        return setattr(self, key, value)
-
-    def getProperty(self, key):
-        if not hasattr(self, key):
-            return None
-
-        return getattr(self, key)
-
-    def setCategoryProperty(self, category, key, value):
-        if not hasattr(self, category):
-            raise errors.ConfigError("Error to parse %s", category)
-        categ = getattr(self, category)
-        categ[key] = value
-
-    def getCategoryProperty(self, category, key):
-        if not hasattr(self, category):
-            raise errors.ConfigError("Error to parse %s", category)
-        categ = getattr(self, category)
-        return categ[key]
-
-    def getCreateOption(self, key):
-        if not self.create.has_key(key):
-            raise errors.ConfigError("Attribute Error: not such attribe %s" % key)
-        return self.create[key]
-
-    def getConvertOption(self, key):
-        if not self.convert.has_key(key):
-            raise errors.ConfigError("Attribute Error: not such attribe %s" % key)
-        return self.convert[key]
-
-    def getChrootOption(self, key):
-        if not self.chroot.has_key(key):
-            raise errors.ConfigError("Attribute Error: not such attribe %s" % key)
-        return self.chroot[key]
-
-    def dumpAllConfig(self):
-        # just for debug
-        msger.debug("create options:\n")
-        for key in self.create.keys():
-            msger.debug("%-8s= %s\n" % (key, self.create[key]))
-        msger.debug("convert options:\n")
-        for key in self.convert.keys():
-            msger.debug("%-8s= %s\n" % (key, self.ccnvert[key]))
-        msger.debug("chroot options:\n")
-        for key in self.chroot.keys():
-            msger.debug("%-8s= %s\n" % (key, self.chroot[key]))
+        msger.info("Retrieving repo metadata:")
+        ksrepos = misc.get_repostrs_from_ks(ks)
+        self.create['repomd'] = misc.get_metadata_from_repos(ksrepos, self.create['cachedir'])
+        msger.raw(" DONE")
 
 def getConfigMgr():
     return configmgr
index 2a2c4e5..2f0f31f 100644 (file)
@@ -63,7 +63,6 @@ class BaseImageCreator(object):
         if createopts:
             # A pykickstart.KickstartParser instance."""
             self.ks = createopts['ks']
-            self.repometadata = createopts['repomd']
 
             # A name for the image."""
             self.name = createopts['name']
@@ -80,7 +79,6 @@ class BaseImageCreator(object):
 
         else:
             self.ks = None
-            self.repometadata = None
             self.name = "target"
             self.tmpdir = "/var/tmp/mic"
             self.cachedir = "/var/tmp/mic/cache"
index f6c7d3f..5594cc1 100644 (file)
@@ -39,14 +39,12 @@ class FsPlugin(ImagerPlugin):
         if not args:
             raise errors.Usage("More arguments needed")
 
-        if len(args) == 1:
-            ksconf = args[0]
-        else:
+        if len(args) != 1:
             raise errors.Usage("Extra arguments given")
 
         cfgmgr = configmgr.getConfigMgr()
         createopts = cfgmgr.create
-        cfgmgr.setProperty("ksconf", ksconf)
+        cfgmgr._ksconf = args[0]
 
         # try to find the pkgmgr
         pkgmgr = None
index 56610d6..c5032af 100644 (file)
@@ -40,14 +40,12 @@ class LiveCDPlugin(ImagerPlugin):
         if not args:
             raise errors.Usage("More arguments needed")
 
-        if len(args) == 1:
-            ksconf = args[0]
-        else:
+        if len(args) != 1:
             raise errors.Usage("Extra arguments given")
 
         cfgmgr = configmgr.getConfigMgr()
-        cfgmgr.setProperty("ksconf", ksconf)
         creatoropts = cfgmgr.create
+        cfgmgr._ksconf = args[0]
 
         if creatoropts['arch'] and creatoropts['arch'].startswith('arm'):
             msger.warning('livecd cannot support arm images, Quit')
index d230e18..6c4617b 100644 (file)
@@ -42,15 +42,12 @@ class LiveUSBPlugin(ImagerPlugin):
         if not args:
             raise errors.Usage("More arguments needed")
 
-        if len(args) == 1:
-            ksconf = args[0]
-        else:
+        if len(args) != 1:
             raise errors.Usage("Extra arguments given")
 
-
         cfgmgr = configmgr.getConfigMgr()
         creatoropts = cfgmgr.create
-        cfgmgr.setProperty("ksconf", args[0])
+        cfgmgr._ksconf = args[0]
 
         if creatoropts['arch'] and creatoropts['arch'].startswith('arm'):
             msger.warning('liveusb cannot support arm images, Quit')
index b2fe531..b19aed4 100644 (file)
@@ -45,9 +45,7 @@ class LoopPlugin(ImagerPlugin):
         if not args:
             raise errors.Usage("More arguments needed")
 
-        if len(args) == 1:
-            ksconf = args[0]
-        else:
+        if len(args) != 1:
             raise errors.Usage("Extra arguments given")
 
         try:
@@ -60,7 +58,7 @@ class LoopPlugin(ImagerPlugin):
 
         cfgmgr = configmgr.getConfigMgr()
         creatoropts = cfgmgr.create
-        cfgmgr.setProperty("ksconf", ksconf)
+        cfgmgr._ksconf = args[0]
 
         # try to find the pkgmgr
         pkgmgr = None
index 995d271..5c4b1e3 100644 (file)
@@ -43,14 +43,12 @@ class RawPlugin(ImagerPlugin):
         if not args:
             raise errors.Usage("More arguments needed")
 
-        if len(args) == 1:
-            ksconf = args[0]
-        else:
+        if len(args) != 1:
             raise errors.Usage("Extra arguments given")
 
         cfgmgr = configmgr.getConfigMgr()
         creatoropts = cfgmgr.create
-        cfgmgr.setProperty("ksconf", ksconf)
+        cfgmgr._ksconf = args[0]
 
         # try to find the pkgmgr
         pkgmgr = None