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
|