Revert "Merge remote branch 'cros/upstream' into tempbranch2"

This reverts commit 25fc6d1f28e54c46689f12d3b93c2540ef45323a.

TBR=ericli@chromium.org

Review URL: http://codereview.chromium.org/3541002

Change-Id: Ib0165b19bfdf02264f8a6a74ddf3ae74c8c0f7df
diff --git a/client/bin/kernel.py b/client/bin/kernel.py
index da91389..b398697 100644
--- a/client/bin/kernel.py
+++ b/client/bin/kernel.py
@@ -64,51 +64,7 @@
                           root=root)
 
 
-class BootableKernel(object):
-
-    def __init__(self, job):
-        self.job = job
-        self.installed_as = None  # kernel choice in bootloader menu
-        self.image = None
-        self.initrd = ''
-
-
-    def _boot_kernel(self, args, ident_check, expected_ident, subdir, notes):
-        """
-        Boot a kernel, with post-boot kernel id check
-
-        @param args:  kernel cmdline arguments
-        @param ident_check: check kernel id after boot
-        @param expected_ident:
-        @param subdir: job-step qualifier in status log
-        @param notes:  additional comment in status log
-        """
-
-        # If we can check the kernel identity do so.
-        if ident_check:
-            when = int(time.time())
-            args += " IDENT=%d" % when
-            self.job.next_step_prepend(["job.end_reboot_and_verify", when,
-                                        expected_ident, subdir, notes])
-        else:
-            self.job.next_step_prepend(["job.end_reboot", subdir,
-                                        expected_ident, notes])
-
-        # Point bootloader to the selected tag.
-        _add_kernel_to_bootloader(self.job.bootloader,
-                                  self.job.config_get('boot.default_args'),
-                                  self.installed_as, args, self.image,
-                                  self.initrd)
-
-        # defer fsck for next reboot, to avoid reboots back to default kernel
-        utils.system('touch /fastboot')  # this file is removed automatically
-
-        # Boot it.
-        self.job.start_reboot()
-        self.job.reboot(tag=self.installed_as)
-
-
-class kernel(BootableKernel):
+class kernel(object):
     """ Class for compiling kernels.
 
     Data for the object includes the src files
@@ -153,7 +109,7 @@
         leave
                 Boolean, whether to leave existing tmpdir or not
         """
-        super(kernel, self).__init__(job)
+        self.job = job
         self.autodir = job.autodir
 
         self.src_dir    = os.path.join(tmp_dir, 'src')
@@ -164,6 +120,8 @@
         self.results_dir = os.path.join(subdir, 'results')
         self.subdir     = os.path.basename(subdir)
 
+        self.installed_as = None
+
         if not leave:
             if os.path.isdir(self.src_dir):
                 utils.system('rm -rf ' + self.src_dir)
@@ -492,6 +450,16 @@
                           self.system_map, self.initrd)
 
 
+    def add_to_bootloader(self, tag='autotest', args=''):
+        """ add this kernel to bootloader, taking an
+            optional parameter of space separated parameters
+            e.g.:  kernel.add_to_bootloader('mykernel', 'ro acpi=off')
+        """
+        _add_kernel_to_bootloader(self.job.bootloader,
+                                  self.job.config_get('boot.default_args'),
+                                  tag, args, self.image, self.initrd)
+
+
     def get_kernel_build_arch(self, arch=None):
         """
         Work out the current kernel architecture (as a kernel arch)
@@ -558,14 +526,29 @@
             just make it happen.
         """
 
-        # If the kernel has not yet been installed,
-        #   install it now as default tag.
+        # If we can check the kernel identity do so.
+        expected_ident = self.get_kernel_build_ident()
+        if ident:
+            when = int(time.time())
+            args += " IDENT=%d" % (when)
+            self.job.next_step_prepend(["job.end_reboot_and_verify", when,
+                                        expected_ident, self.subdir,
+                                        self.applied_patches])
+        else:
+            self.job.next_step_prepend(["job.end_reboot", self.subdir,
+                                        expected_ident, self.applied_patches])
+
+        # Check if the kernel has been installed, if not install
+        # as the default tag and boot that.
         if not self.installed_as:
             self.install()
 
-        expected_ident = self.get_kernel_build_ident()
-        self._boot_kernel(args, ident, expected_ident,
-                          self.subdir, self.applied_patches)
+        # Boot the selected tag.
+        self.add_to_bootloader(args=args, tag=self.installed_as)
+
+        # Boot it.
+        self.job.start_reboot()
+        self.job.reboot(tag=self.installed_as)
 
 
     def get_kernel_build_ver(self):
@@ -663,19 +646,20 @@
         pickle.dump(temp, open(filename, 'w'))
 
 
-class rpm_kernel(BootableKernel):
+class rpm_kernel(object):
     """
     Class for installing a binary rpm kernel package
     """
 
     def __init__(self, job, rpm_package, subdir):
-        super(rpm_kernel, self).__init__(job)
+        self.job = job
         self.rpm_package = rpm_package
         self.log_dir = os.path.join(subdir, 'debug')
         self.subdir = os.path.basename(subdir)
         if os.path.exists(self.log_dir):
             utils.system('rm -rf ' + self.log_dir)
         os.mkdir(self.log_dir)
+        self.installed_as = None
 
 
     def build(self, *args, **dargs):
@@ -741,23 +725,44 @@
                                       % (vmlinux, rpm_pack))
 
 
+    def add_to_bootloader(self, tag='autotest', args=''):
+        """ Add this kernel to bootloader
+        """
+        _add_kernel_to_bootloader(self.job.bootloader,
+                                  self.job.config_get('boot.default_args'),
+                                  tag, args, self.image, self.initrd)
+
+
     def boot(self, args='', ident=True):
         """ install and boot this kernel
         """
 
-        # If the kernel has not yet been installed,
-        #   install it now as default tag.
+        # Check if the kernel has been installed, if not install
+        # as the default tag and boot that.
         if not self.installed_as:
             self.install()
 
+        # If we can check the kernel identity do so.
         expected_ident = self.full_version
         if not expected_ident:
             expected_ident = '-'.join([self.version,
                                        self.rpm_flavour,
                                        self.release])
+        if ident:
+            when = int(time.time())
+            args += " IDENT=%d" % (when)
+            self.job.next_step_prepend(["job.end_reboot_and_verify",
+                                        when, expected_ident, None, 'rpm'])
+        else:
+            self.job.next_step_prepend(["job.end_reboot", None,
+                                        expected_ident, []])
 
-        self._boot_kernel(args, ident, expected_ident,
-                          None, 'rpm')
+        # Boot the selected tag.
+        self.add_to_bootloader(args=args, tag=self.installed_as)
+
+        # Boot it.
+        self.job.start_reboot()
+        self.job.reboot(tag=self.installed_as)
 
 
 class rpm_kernel_suse(rpm_kernel):