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: |