[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] pyGrub: Use proper bootloader class when entering command manually



On Wed, 2010-05-26 at 10:27 +0100, Michal Novotny wrote:
> Yeah, that's right Ian. However adding a new method called new_image() 
> to all of the boot loader configuration classes (*ConfigFile classes) 
> will still be necessary. I wrote a new version of my patch to add 
> support for new_image() method all the existing classes and did the 
> modifications to pygrub.
> 
> As in previous version of my patch, the isconfig debug option has been 
> fixed too.
> 
> Keir, please use this version to be committed.
> 
> Thanks,
> Michal
> 
> Signed-off-by: Michal Novotny <minovotn@xxxxxxxxxx>

Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>

> 
> On 05/25/2010 06:22 PM, Ian Campbell wrote:
> > On Tue, 2010-05-25 at 16:13 +0100, Michal Novotny wrote:
> >    
> >> Ok, I found that the infrastructure of ExtLinuxImage and LiloImage is
> >> different so I rewrote it a little (but according to the code the old
> >> behaviour should be preserved) and also fixed the isconfig bug (since no
> >> img.initrd is accessible that time).
> >>
> >> So please ignore the previous version of my patch and use this one.
> >>      
> > Perhaps instead of these two hunks:
> >
> > --- a/tools/pygrub/src/pygrub   Tue May 25 11:28:58 2010 +0100
> > +++ b/tools/pygrub/src/pygrub   Tue May 25 17:10:32 2010 +0200
> > @@ -356,7 +356,7 @@ class Grub:
> >                       continue
> >
> >                   # if we got boot, then we want to boot the entered image
> > -                img = grub.GrubConf.GrubImage(lines)
> > +                img = self.imgcl("entered", lines)
> >                   self.cf.add_image(img)
> >                   self.selected_image = len(self.cf.images) - 1
> >                   self.isdone = True
> >
> > [...]
> >                   self.cf = parser()
> >                   self.cf.filename = f
> > +
> > +                # Get the bootloader image file constructor to imgcl
> > +                if type(self.cf) == grub.LiloConf.LiloConfigFile:
> > +                    self.imgcl = grub.LiloConf.LiloImage
> > +                elif type(self.cf) == grub.GrubConf.Grub2ConfigFile:
> > +                    self.imgcl = grub.GrubConf.Grub2Image
> > +                elif type(self.cf) ==
> > grub.ExtLinuxConf.ExtLinuxConfigFile:
> > +                    self.imgcl = grub.ExtLinuxConf.ExtLinuxImage
> > +                else:
> > +                    self.imgcl = grub.GrubConf.GrubImage
> > +
> >                   break
> >           if self.__dict__.get('cf', None) is None:
> >               raise RuntimeError, "couldn't find bootloader config file
> > in the image provided."
> >
> > We could add a method to each of the self.cf classes which returns a new
> > image from the title+lines given. Then the first hunk becomes something
> > like:
> >
> > -                img = grub.GrubConf.GrubImage(lines)
> > +                img = self.cf.new_image("entered", lines)
> >
> > and the second bit goes away. This would be nice since it avoids
> > hardcoding another list of bootloaders.
> >
> > Ian.
> >
> >    
> 
> 



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.