| Index: server/frontend.py
|
| diff --git a/server/frontend.py b/server/frontend.py
|
| index 07c71b13e855c12fb2ee045736c56b92620f3c8b..353ccab99c79a08c6cfdf35737ba7bcfaa98985d 100644
|
| --- a/server/frontend.py
|
| +++ b/server/frontend.py
|
| @@ -263,18 +263,27 @@ class AFE(RpcClient):
|
|
|
|
|
| def create_job_by_test(self, tests, kernel=None, use_container=False,
|
| - **dargs):
|
| + kernel_cmdline=None, **dargs):
|
| """
|
| Given a test name, fetch the appropriate control file from the server
|
| and submit it.
|
|
|
| + @param kernel: A comma separated list of kernel versions to boot.
|
| + @param kernel_cmdline: The command line used to boot all kernels listed
|
| + in the kernel parameter.
|
| +
|
| Returns a list of job objects
|
| """
|
| assert ('hosts' in dargs or
|
| 'atomic_group_name' in dargs and 'synch_count' in dargs)
|
| if kernel:
|
| kernel_list = re.split('[\s,]+', kernel.strip())
|
| - kernel_info = [{'version': version} for version in kernel_list]
|
| + kernel_info = []
|
| + for version in kernel_list:
|
| + kernel_dict = {'version': version}
|
| + if kernel_cmdline is not None:
|
| + kernel_dict['cmdline'] = kernel_cmdline
|
| + kernel_info.append(kernel_dict)
|
| else:
|
| kernel_info = None
|
| control_file = self.generate_control_file(
|
| @@ -305,7 +314,7 @@ class AFE(RpcClient):
|
| def run_test_suites(self, pairings, kernel, kernel_label=None,
|
| priority='Medium', wait=True, poll_interval=10,
|
| email_from=None, email_to=None, timeout=168,
|
| - max_runtime_hrs=168):
|
| + max_runtime_hrs=168, kernel_cmdline=None):
|
| """
|
| Run a list of test suites on a particular kernel.
|
|
|
| @@ -317,6 +326,7 @@ class AFE(RpcClient):
|
| '<kernel-version> : <config> : <date>'
|
| If any pairing object has its job_label attribute set it
|
| will override this value for that particular job.
|
| + @param kernel_cmdline: The command line to boot the kernel(s) with.
|
| @param wait: boolean - Wait for the results to come back?
|
| @param poll_interval: Interval between polling for job results (in mins)
|
| @param email_from: Send notification email upon completion from here.
|
| @@ -327,6 +337,7 @@ class AFE(RpcClient):
|
| try:
|
| new_job = self.invoke_test(pairing, kernel, kernel_label,
|
| priority, timeout=timeout,
|
| + kernel_cmdline=kernel_cmdline,
|
| max_runtime_hrs=max_runtime_hrs)
|
| if not new_job:
|
| continue
|
| @@ -454,7 +465,7 @@ class AFE(RpcClient):
|
|
|
|
|
| def invoke_test(self, pairing, kernel, kernel_label, priority='Medium',
|
| - **dargs):
|
| + kernel_cmdline=None, **dargs):
|
| """
|
| Given a pairing of a control file to a machine label, find all machines
|
| with that label, and submit that control file to them.
|
| @@ -486,6 +497,7 @@ class AFE(RpcClient):
|
| tests=[pairing.control_file],
|
| priority=priority,
|
| kernel=kernel,
|
| + kernel_cmdline=kernel_cmdline,
|
| use_container=pairing.container,
|
| **dargs)
|
| if new_job:
|
|
|