On 29.05.2012 [17:41:34 -0300], Lucas Meneghel Rodrigues wrote: > I've been thinking about this one, my conclusions: > > 1 - Although I don't mind the regexp search in the control file, if > by a chance the control file is hand made, this code won't bring the > correct fields > 2 - Having 1) in mind, I believe it is a better idea to leave this as > is, until we find a better solution for it. After all, changing the > control file is always an option. > > So I'm marking this patch as superseded, but of course don't hesitate > to express your opinion if you think we should look into this option > more carefully. > > Thanks for all the work so far, Nishanth!
I think that's perfectly ok -- I may keep it in my local repo, as I like being sure the clone is accurate, and I'm trying to minimize a general user's need to interact with the control files at first. I will say, the code was intended as a "best effort" to make clone be a full clone of the UI -- I think it would be ok to fail to fill in some fields, etc. Thanks, Nish > On Tue, May 22, 2012 at 8:34 PM, Nishanth Aravamudan > <[email protected]> wrote: > > On 17.05.2012 [17:09:49 -0700], Nishanth Aravamudan wrote: > >> Hi, > >> > >> When I clone a job that, say, is building 3.4-rc7 to run kernbench, the > >> kernel field is uneditable but blank. The control file in-page does > >> display the correct value. Could we write in the kernel field before we > >> mark it uneditable? > > > > I spent some time in issue #351 talking with Lucas about this. There > > isn't a particularly clean way to deal with the data right now, because > > the kernel information is only stored in the control file. Moving it > > requires database changes, etc, but there is a "quick'n'dirty" way of > > obtaining the data, as implemented below. > > > > Have the server parse out the control file's kernel_list line and munge > > in a "kernel" and "cmdline" entry into the job information. > > > > Signed-off-by: Nishanth Aravamudan <[email protected]> > > > > --- > > > > At this point, I'm curious if it makes sense to not call disableInputs() on > > clone? That is, make the kernel and cmdline fields editable, since they will > > have data in them. This would also allow one to modify what tests are run, > > etc. > > > > I guess it depends on what clone is intended for -- right now, it's only for > > running the exact same job (except I think you can change the hosts > > involved). > > I think it's more useful if it starts there, but the user can modify the > > job to > > be whatever they need to be. > > > > diff --git a/frontend/afe/rpc_interface.py b/frontend/afe/rpc_interface.py > > index e4fa1bf..31916fd 100644 > > --- a/frontend/afe/rpc_interface.py > > +++ b/frontend/afe/rpc_interface.py > > @@ -29,7 +29,7 @@ See doctests/001_rpc_test.txt for (lots) more examples. > > > > __author__ = '[email protected] (Steve Howard)' > > > > -import datetime, xmlrpclib > > +import datetime, xmlrpclib, re > > try: > > import autotest.common as common > > except ImportError: > > @@ -658,6 +658,18 @@ def get_info_for_clone(id, preserve_metahosts, > > queue_entry_filter_data=None): > > info = dict(job=job.get_object_dict(), > > meta_host_counts=meta_host_counts, > > hosts=host_dicts) > > + kernel = "" > > + cmdline = "" > > + kernel_list = re.search("kernel_list\s*=\s*\[(.*?)\]", > > info['job']['control_file']) > > + if kernel_list is not None: > > + kernel_list = kernel_list.group(1) > > + cmdlineSearch = re.search("'cmdline':\s*'(.*?)'", kernel_list) > > + if cmdlineSearch is not None: > > + cmdline = cmdline.group(1) > > + if re.search("'version':\s*'(.*?)'", kernel_list) is not None: > > + kernel = " ".join(re.findall("'version':\s*'(.*?)'", > > kernel_list)) > > + info['job']['kernel'] = kernel > > + info['job']['cmdline'] = cmdline > > info['job']['dependencies'] = job_info['dependencies'] > > if job_info['atomic_group']: > > info['atomic_group_name'] = (job_info['atomic_group']).name > > diff --git > > a/frontend/client/src/autotest/afe/create/CreateJobViewPresenter.java > > b/frontend/client/src/autotest/afe/create/CreateJobViewPresenter.java > > index 822832a..5751972 100644 > > --- a/frontend/client/src/autotest/afe/create/CreateJobViewPresenter.java > > +++ b/frontend/client/src/autotest/afe/create/CreateJobViewPresenter.java > > @@ -138,6 +138,8 @@ public class CreateJobViewPresenter implements > > TestSelectorListener { > > String priority = > > jobObject.get("priority").isString().stringValue(); > > display.getPriorityList().selectByName(priority); > > > > + > > display.getKernel().setText(jobObject.get("kernel").isString().stringValue()); > > + > > display.getKernelCmdline().setText(jobObject.get("cmdline").isString().stringValue()); > > > > display.getTimeout().setText(Utils.jsonToString(jobObject.get("timeout"))); > > > > display.getMaxRuntime().setText(Utils.jsonToString(jobObject.get("max_runtime_hrs"))); > > display.getEmailList().setText( > > > > > > -- > > Nishanth Aravamudan <[email protected]> > > IBM Linux Technology Center > > > > _______________________________________________ > > Autotest mailing list > > [email protected] > > http://test.kernel.org/cgi-bin/mailman/listinfo/autotest > > > > -- > Lucas > -- Nishanth Aravamudan <[email protected]> IBM Linux Technology Center _______________________________________________ Autotest mailing list [email protected] http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
