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

Re: [Libguestfs] [PATCH] v2v: bootloaders: search grub config for all distributions



On 01.11.2016 17:06, Richard W.M. Jones wrote:
On Tue, Nov 01, 2016 at 03:10:51PM +0300, Pavel Butsykin wrote:
On 01.11.2016 13:11, Richard W.M. Jones wrote:
On Thu, Oct 27, 2016 at 08:22:30PM +0300, Pavel Butsykin wrote:
    match typ with
    | Grub1 ->
-    if config_file = "/boot/efi/EFI/redhat/grub.conf" then
-      g#aug_transform "grub" "/boot/efi/EFI/redhat/grub.conf";
-
+    (match inspect.i_firmware with
+    | I_BIOS -> ()
+    | I_UEFI _ -> g#aug_transform "grub" config_file
+    );
      new bootloader_grub1 g inspect config_file
    | Grub2 -> new bootloader_grub2 g config_file

I don't think this part of the patch is correct.  We need to use the
Augeas transform only for a particular path which is missing from the
Augeas lens.

It is necessary for /EFI/redhat/, but no need for others?

I believe so, because the Augeas grub lens has:

     (* View: filter *)
     let filter = incl "/boot/grub/grub.conf"
                . incl "/boot/grub/menu.lst"
                . incl "/etc/grub.conf"

so it wouldn't normally be activated for a grub.conf found under
any other path.

We can have the following paths:

/boot/efi/EFI/centos/grub.conf
/boot/efi/EFI/fedora/grub.conf
/boot/efi/EFI/*/grub.conf

which also need to activate. The Augeas grub lens has filters which are
used only for the BIOS. So (if I understand correctly) we have to use
the Augeas transform for other EFI paths too.

What do you think of the attached version instead?  It's smaller and
more efficient (only makes 2 libguestfs API calls in the normal case)?

Yeah, I agree. And in this version the code is easier to read :)

The slow tests passed, so I'll push this version shortly.

Thanks,

Rich.



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