]> git-server-git.apps.pok.os.sepia.ceph.com Git - teuthology.git/commitdiff
task/kernel: adapt to el8 grub2 /boot/loader/entries/*.conf
authorSage Weil <sage@redhat.com>
Wed, 11 Dec 2019 19:27:22 +0000 (19:27 +0000)
committerSage Weil <sage@redhat.com>
Thu, 12 Dec 2019 19:13:09 +0000 (19:13 +0000)
Signed-off-by: Sage Weil <sage@redhat.com>
teuthology/task/kernel.py

index 6b01a3cf3393e1557f8c1a5892d0e7648c661963..9dfa862e446df05d5834d22c49c0eead70ab7dd5 100644 (file)
@@ -184,7 +184,8 @@ def need_to_install(ctx, role, version):
         stdout=uname_fp,
         )
     cur_version = uname_fp.getvalue().rstrip('\n')
-    log.debug('current kernel version is {ver}'.format(ver=cur_version))
+    log.debug('current kernel version is {ver} vs {want}'.format(ver=cur_version,
+                                                                 want=version))
 
     if '.' in str(version):
         # version is utsrelease, yay
@@ -906,12 +907,23 @@ def grub2_kernel_select_generic(remote, newversion, ostype):
     remote.run(args=['sudo', mkconfig, '-o', grubconfig, ])
     grub2conf = teuthology.get_file(remote, grubconfig, True)
     entry_num = 0
-    for line in grub2conf.split('\n'):
-        if line.startswith('menuentry'):
-            if newversion in line:
+    if '\nmenuitem ' not in grub2conf:
+        # okay, do the newer (el8) grub2 thing
+        grub2conf = remote.sh('sudo /bin/ls /boot/loader/entries')
+        entry = None
+        for line in grub2conf.split('\n'):
+            if line.endswith('.conf') and newversion in line:
+                entry = line[:-5]  # drop .conf suffix
                 break
-            entry_num += 1
-    remote.run(args=['sudo', grubset, str(entry_num), ])
+    else:
+        # do old menuitem counting thing
+        for line in grub2conf.split('\n'):
+            if line.startswith('menuentry '):
+                if newversion in line:
+                    break
+                entry_num += 1
+        entry = str(entry_num)
+    remote.run(args=['sudo', grubset, entry])
 
 
 def generate_legacy_grub_entry(remote, newversion):