'A specialization of run_group meant specifically for handling
a reboot. Includes support for capturing the kernel version
after the reboot.
reboot_func: a function that carries out the reboot
get_kernel_func: a function that returns a string
representing the kernel version.'

def run_reboot(self, reboot_func, get_kernel_func):

    try:
        self.record('START', None, 'reboot')
        reboot_func()
    except Exception as e:
        err_msg = ((str(e) + '\n') + traceback.format_exc())
        self.record('END    FAIL', None, 'reboot', err_msg)
        raise
    else:
        kernel = get_kernel_func()
        self.record('END    GOOD', None, 'reboot', optional_fields={'kernel': kernel})
