Support kernel install for server-side control files


git-svn-id: http://test.kernel.org/svn/autotest/trunk@1338 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/frontend/afe/control_file.py b/frontend/afe/control_file.py
index 7b2d7bd..080eee1 100644
--- a/frontend/afe/control_file.py
+++ b/frontend/afe/control_file.py
@@ -11,7 +11,7 @@
     os.path.dirname(frontend.settings.__file__), '..'))
 
 
-KERNEL_INSTALL_TEMPLATE = """\
+CLIENT_KERNEL_TEMPLATE = """\
 def step_init():
 	job.next_step([step_test])
 	testkernel = job.kernel('%(kernel)s')
@@ -22,6 +22,20 @@
 def step_test():
 """
 
+SERVER_KERNEL_TEMPLATE = """\
+kernel_install_control = \"""
+%s	pass
+\"""
+
+at = autotest.Autotest()
+def install_kernel(machine):
+	host = hosts.SSHHost(machine)
+	at.run(kernel_install_control, host=host)
+parallel_simple(install_kernel, machines)
+
+""" % CLIENT_KERNEL_TEMPLATE
+
+
 def kernel_config_line(kernel, platform):
 	if (not kernel.endswith('.rpm') and platform and
 	    platform.kernel_config):
@@ -36,11 +50,19 @@
 	return control_contents
 
 
-def get_kernel_stanza(kernel, platform, kernel_args):
-	return KERNEL_INSTALL_TEMPLATE % {
+def get_kernel_stanza(kernel, platform=None, kernel_args='', is_server=False):
+	if is_server:
+		template = SERVER_KERNEL_TEMPLATE
+		indent = ''
+	else:
+		template = CLIENT_KERNEL_TEMPLATE
+		indent = '\t'
+
+	stanza = template % {
 	    'kernel' : kernel,
 	    'kernel_config_line' : kernel_config_line(kernel, platform),
 	    'kernel_args' : kernel_args}
+	return stanza, indent
 
 
 def get_tests_stanza(tests):
@@ -52,16 +74,11 @@
 	return '\n'.join(lines)
 
 
-def generate_client_control(tests, kernel=None, platform=None):
+def generate_control(tests, kernel=None, platform=None, is_server=False):
 	control_file = ''
 	indent = ''
 	if kernel:
-		control_file = get_kernel_stanza(kernel, platform, '')
-		indent = '\t'
-
+		control_file, indent = get_kernel_stanza(kernel, platform,
+							 is_server=is_server)
 	control_file += indent_text(get_tests_stanza(tests), indent)
 	return control_file
-
-
-def generate_server_control(tests):
-	return get_tests_stanza(tests)