On Mon, 2011-02-07 at 14:00 -0800, Eric Li(李咏竹) wrote: > Lucas, > > > I saw you were signed on this patch from patchwork. Are you still > reviewing this CL?
Yes, I was planning to not take long to finish it, but I went to a conference last week and some work items got behind. Give me some hours to read it! Cheers, Lucas > Eric > > On Tue, Jan 25, 2011 at 4:32 PM, Dale Curtis <[email protected]> > wrote: > A while back I added support for labels with commas to the > host list > cli commands. I've now added the same support to dependencies > so > metahost scheduling can be used with dependencies that have > commas. > > Signed-off-by: Dale Curtis <[email protected]> > --- > cli/job.py | 17 +++++++++-------- > cli/job_unittest.py | 31 +++++++++++++++++++++++++++++++ > 2 files changed, 40 insertions(+), 8 deletions(-) > > diff --git a/cli/job.py b/cli/job.py > index 5eb00a5..ddb534f 100644 > --- a/cli/job.py > +++ b/cli/job.py > @@ -299,7 +299,7 @@ class > job_create_or_clone(action_common.atest_create, job): > return (hosts, meta_hosts) > > > - def parse(self): > + def parse(self, parse_info=[]): > host_info = > topic_common.item_parse_info(attribute_name='hosts', > > inline_option='machine', > > filename_option='mlist') > @@ -310,9 +310,9 @@ class > job_create_or_clone(action_common.atest_create, job): > label_info = > topic_common.item_parse_info(attribute_name='labels', > > inline_option='labels') > > - options, leftover = super(job_create_or_clone, > - self).parse([host_info, > job_info, oth_info, > - label_info], > req_items='jobname') > + options, leftover = super(job_create_or_clone, > self).parse( > + [host_info, job_info, oth_info, label_info] + > parse_info, > + req_items='jobname') > self.data = {} > if len(self.jobname) > 1: > self.invalid_syntax('Too many arguments specified, > only expected ' > @@ -440,7 +440,10 @@ class job_create(job_create_or_clone): > > > def parse(self): > - options, leftover = super(job_create, self).parse() > + deps_info = > topic_common.item_parse_info(attribute_name='dependencies', > + > inline_option='dependencies') > + options, leftover = super(job_create, self).parse( > + parse_info=[deps_info]) > > if (len(self.hosts) == 0 and not self.one_time_hosts > and not options.labels and not > options.atomic_group): > @@ -499,9 +502,7 @@ class job_create(job_create_or_clone): > if options.atomic_group: > self.data['atomic_group_name'] = > options.atomic_group > > - deps = options.dependencies.split(',') > - deps = [dep.strip() for dep in deps if dep.strip()] > - self.data['dependencies'] = deps > + self.data['dependencies'] = self.dependencies > > if options.synch_count: > self.data['synch_count'] = options.synch_count > diff --git a/cli/job_unittest.py b/cli/job_unittest.py > index d0240e5..06d9df1 100755 > --- a/cli/job_unittest.py > +++ b/cli/job_unittest.py > @@ -831,6 +831,19 @@ class > job_create_unittest(cli_mock.cli_unittest): > file_temp.clean() > > > + def > test_execute_create_job_with_control_and_comma_dependencies(self): > + data = self.data.copy() > + data['dependencies'] = ['dep2,False', 'dep1,True'] > + file_temp = cli_mock.create_file(self.ctrl_file) > + self.run_cmd(argv=['atest', 'job', 'create', '-f', > file_temp.name, > + 'test_job0', '-m', 'host0', '-d', > + 'dep1\,True, dep2\,False ', > '--ignore_site_file'], > + rpcs=[('create_job', data, True, 42)], > + out_words_ok=['test_job0', 'Created'], > + out_words_no=['Uploading', 'Done']) > + file_temp.clean() > + > + > def test_execute_create_job_with_synch_count(self): > data = self.data.copy() > data['synch_count'] = 2 > @@ -862,6 +875,24 @@ class > job_create_unittest(cli_mock.cli_unittest): > out_words_no=['Uploading', 'Done']) > > > + def > test_execute_create_job_with_test_and_comma_dependencies(self): > + data = self.data.copy() > + data['dependencies'] = ['dep1,True', 'dep2,False', > 'dep3,123'] > + self.run_cmd(argv=['atest', 'job', 'create', '-t', > 'sleeptest', > + 'test_job0', '-m', 'host0', '-d', > + 'dep1\,True dep2\,False ', > '--ignore_site_file'], > + rpcs=[('generate_control_file', > + {'tests': ['sleeptest']}, > + True, > + {'control_file' : self.ctrl_file, > + 'synch_count' : 1, > + 'is_server' : False, > + 'dependencies' : ['dep3,123']}), > + ('create_job', data, True, 42)], > + out_words_ok=['test_job0', 'Created'], > + out_words_no=['Uploading', 'Done']) > + > + > def test_execute_create_job_with_kernel(self): > data = self.data.copy() > data['control_file'] = self.kernel_ctrl_file > -- > 1.7.3.1 > _______________________________________________ > Autotest mailing list > [email protected] > http://test.kernel.org/cgi-bin/mailman/listinfo/autotest > > > > -- > Eric Li > 李咏竹 > Google Kirkland > > > _______________________________________________ Autotest mailing list [email protected] http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
