[poky] [PATCH 3/4][Image Creator]Introduce new param caches_array into Cache impl.

Ke, Liping liping.ke at intel.com
Tue May 31 01:11:10 PDT 2011


Hi, Richard

Thanks for the comment! I will resend the patch. Sorry for the delay.
And also, for how to pass extra_cache parameters, yes, current impl
is not perfect. I add your comment into TODO comment above the
corresponding code part.

Thanks& Regards,
criping

> -----Original Message-----
> From: Richard Purdie [mailto:richard.purdie at linuxfoundation.org]
> Sent: Thursday, May 26, 2011 6:27 PM
> To: Ke, Liping
> Cc: poky at yoctoproject.org
> Subject: Re: [poky] [PATCH 3/4][Image Creator]Introduce new param
> caches_array into Cache impl.
> 
> Hi Liping,
> 
> This looks good, just a couple more minor tweaks:
> 
> On Thu, 2011-05-26 at 10:53 +0800, Ke Liping wrote:
> > diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
> > index a1cd4d7..0dc895a 100644
> > --- a/bitbake/lib/bb/cooker.py
> > +++ b/bitbake/lib/bb/cooker.py
> > @@ -72,6 +72,43 @@ class BBCooker:
> >
> >          self.configuration = configuration
> >
> > +        self.caches_array = []
> > +        # Currently, only Image Creator hob ui needs extra cache.
> > +        # So, we save Extra Cache class name and container file
> > +        # information into a extraCaches field in hob UI.
> > +        # In future, having a registration mechanism for extra cache
> > +        # fields in cache_extra is a better solution. Also, we may
> > +        # need to consider adding a user-hidden parameter
> 'CacheRequest'
> > +        # for bitbake command line. It will be filled by those sub
> > +        # command who need to have extra cache support.
> > +        caches_name_array = ['bb.cache:CoreRecipeInfo']
> > +        if configuration.ui:
> > +            try:
> > +                module = __import__('bb.ui', fromlist=[configuration.ui])
> > +                name_array = (getattr(module,
> configuration.ui)).extraCaches
> > +                for recipeInfoName in name_array:
> > +                    caches_name_array.append(recipeInfoName)
> > +            except ImportError, exc:
> > +                # bb.ui.XXX is not defined and imported. It's an error!
> > +                logger.critical("Unable to import '%s' interface from
> bb.ui: %s" % (configuration.ui, exc))
> > +                sys.exit("FATAL: Failed to import '%s' interface." %
> configuration.ui)
> > +            except AttributeError:
> > +                # This is not an error. If the field is not defined in the ui,
> > +                # this interface might need no extra cache fields, so
> > +                # just skip this error!
> > +                logger.info("UI '%s' does not require extra cache!" %
> (configuration.ui))
> 
> This should be logger.debug as we don't need to show this to the user in
> general.
> 
> Whilst this code block is better than what we had previously, I think
> bin/bitbake should pass some kind of information into cooker about the
> required caches rather than cooker poking around the ui variables. We
> can leave that as is for now but its a cleanup we should really do when
> we get time. There are various UI startup issues we should probably
> address at the same time.
> 
> > +        # At least CoreRecipeInfo will be loaded, so caches_array will
> never be empty!
> > +        # This is the entry point, no further check needed!
> > +        for var in caches_name_array:
> > +            try:
> > +                module_name, cache_name = var.split(':')
> > +                module = __import__(module_name,
> fromlist=(cache_name,))
> > +                self.caches_array.append(getattr(module,
> cache_name))
> > +            except ImportError, exc:
> > +                logger.critical("Unable to import extra RecipeInfo '%s'
> from bb.extra_cache: %s" % (cache_name, exc))
> 
> We should use module_name instead of bb.extra_cache here :)
> 
> I'm really happy with these changes in general though, looks good!
> 
> Cheers,
> 
> Richard
> 
> 



More information about the poky mailing list