Hi,
So one gap in the current implementation of the install server
functionality I noticed is that the end-user still has to fiddle with
the backend cobbler server when they want to install a different than
the currently selected profile. It seems like the end user should be
able to select the profile to use on a host-by-host basis.
Some implementation notes:
- The link between autotest and cobbler is established by the label of
the autotest host being found in the comment field for the profile in
cobbler.
- Many spots still need to be parameterized on the presence of the
xmlrpc URL in the global config
- In my environment, I always want to reinstall the machine before
running any tests, so I've modified the default client and server
control files to run machine_install. Perhaps this makes sense to add
via a global config option -- always_reinstall_host or something. If
that is added, then I think the verify-before-job job should be
avoided if that option is set. Such an option also only makes sense if
xmlrpc_url is set.
diff --git a/frontend/afe/control_file.py b/frontend/afe/control_file.py
index d9df3e6..7f33717 100644
--- a/frontend/afe/control_file.py
+++ b/frontend/afe/control_file.py
@@ -85,6 +85,7 @@ def step_init():
# a host object we use solely for the purpose of finding out the booted
# kernel version, we use machines[0] since we already check that the same
# kernel has been booted on all machines
+ step0()
if len(kernel_list) > 1:
kernel_host = hosts.create_host(machines[0])
@@ -107,6 +108,12 @@ def step_init():
job.automatic_test_tag = kernel_host.get_kernel_ver()
step_test()
+def step0():
+ def run(machine):
+ host = hosts.create_host(machine, initialize=False)
+ job.run_test('reinstall', host=host, disable_sysinfo=True)
+
+ job.parallel_simple(run, machines)
def step_test():
""" % CLIENT_KERNEL_TEMPLATE
diff --git a/server/control_segments/client_wrapper
b/server/control_segments/client_wrapper
index 08e6018..c4c71cb 100644
--- a/server/control_segments/client_wrapper
+++ b/server/control_segments/client_wrapper
@@ -3,6 +3,7 @@ at = autotest_remote.Autotest()
def run_client(machine):
host = hosts.create_host(machine)
+ host.machine_install(timeout=3600)
host.log_kernel()
at.run(control, host=host)
I'm not sure if the division of the patches is accurate yet, but what I
have does compile and runs.
1/9: database: add profile column to afe_host_queue_entries table
2/9: frontend: add XMLRPC lookup of profile information from install server to
get_hosts
3/9: frontend: add profiles parameter to job creation interfaces
4/9: hosts: add installable_host class
5/9: autoserv: append profile selection to hostname parameter
6/9: frontend/afe: add current profile to host view
7/9: frontend/afe: add profile used to job view
8/9: frontend/afe: add listbox widget support
9/9: frontend/afe: add profile to host tables
Thanks,
Nish
--
Nishanth Aravamudan <[email protected]>
IBM Linux Technology Center
_______________________________________________
Autotest mailing list
[email protected]
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest