Fix up rpm_kernel to have a boot method, and provide a sample file
Pull in Steve's fix for the repeated kernel entries, seems to work fine
Signed-off-by: Martin J. Bligh <mbligh@google.com>
git-svn-id: http://test.kernel.org/svn/autotest/trunk@831 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/client/bin/kernel.py b/client/bin/kernel.py
index 960b483..11e79b7 100755
--- a/client/bin/kernel.py
+++ b/client/bin/kernel.py
@@ -602,6 +602,7 @@
def __init__(self, job, rpm_package, results_dir):
self.job = job
+ self.installed = False
self.rpm_package = rpm_package
self.log_dir = os.path.join(results_dir, 'debug')
if os.path.exists(self.log_dir):
@@ -642,7 +643,8 @@
# get version and release number
self.version, self.release = system_output(
- 'rpm --queryformat="%{VERSION}\\n%{RELEASE}" -q ' + rpm_name).splitlines()
+ 'rpm --queryformat="%{VERSION}\\n%{RELEASE}\\n" -q ' + rpm_name).splitlines()[0:2]
+ self.installed = True
def add_to_bootloader(self, tag='autotest', args=''):
@@ -671,3 +673,16 @@
# add the kernel entry
self.job.bootloader.add_kernel(self.image, tag, self.initrd, args = args, root = root)
+
+
+ def boot(self, args=''):
+ # Check if the kernel has been installed, if not install
+ # as the default tag and boot that.
+ if not self.installed:
+ self.install()
+
+ # Boot the selected tag.
+ self.add_to_bootloader(args=args)
+
+ # Boot it.
+ self.job.reboot()