-allow users to select profilers in the create job view
  -create profilers table + model
  -create RPCs for managing profilers
  -modify control file generation code to accept profilers
  -modify create job view
-some refactoring to create job view to allow code sharing and do things more cleanly with some sweet generics
-get rid of rpc_utils.sorted.  who knew there was a builtin?


git-svn-id: http://test.kernel.org/svn/autotest/trunk@1703 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/frontend/afe/control_file.py b/frontend/afe/control_file.py
index 9b8602b..464068f 100644
--- a/frontend/afe/control_file.py
+++ b/frontend/afe/control_file.py
@@ -101,7 +101,19 @@
     return '\n'.join(lines)
 
 
-def generate_control(tests, kernel=None, platform=None, is_server=False):
+def _get_profiler_commands(profilers, is_server):
+    'Return (prepend, append)'
+    prepend, append = [], []
+    if is_server:
+        return prepend, append
+    for profiler in profilers:
+        prepend.append("job.profilers.add('%s')" % profiler.name)
+        append.append("job.profilers.delete('%s')" % profiler.name)
+    return prepend, append
+
+
+def generate_control(tests, kernel=None, platform=None, is_server=False,
+                     profilers=[]):
     control_file_text = ''
     if kernel:
         control_file_text = get_kernel_stanza(kernel, platform,
@@ -109,5 +121,7 @@
     elif not is_server:
         control_file_text = 'def step_init():\n'
 
-    control_file_text += get_tests_stanza(tests, is_server)
+    prepend, append = _get_profiler_commands(profilers, is_server)
+
+    control_file_text += get_tests_stanza(tests, is_server, prepend, append)
     return control_file_text