[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |