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
> <n...@linux.vnet.ibm.com> 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 <n...@us.ibm.com>
> >
> > ---
> >
> > 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__ = 'show...@google.com (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 <n...@us.ibm.com>
> > IBM Linux Technology Center
> >
> > _______________________________________________
> > Autotest mailing list
> > Autotest@test.kernel.org
> > http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
>
>
>
> --
> Lucas
>
--
Nishanth Aravamudan <n...@us.ibm.com>
IBM Linux Technology Center
_______________________________________________
Autotest mailing list
Autotest@test.kernel.org
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest