diff --git a/runbot/models/build.py b/runbot/models/build.py index 9ac59763..5d8fdeb3 100644 --- a/runbot/models/build.py +++ b/runbot/models/build.py @@ -120,7 +120,6 @@ class runbot_build(models.Model): @api.depends('children_ids.global_state', 'local_state', 'duplicate_id.global_state') def _compute_global_state(self): - # could we use nb_pending / nb_testing ? not in a compute, but in a update state method for record in self: if record.duplicate_id: record.global_state = record.duplicate_id.global_state @@ -172,23 +171,6 @@ class runbot_build(models.Model): def _get_result_score(self, result): return result_order.index(result) - def _update_nb_children(self, new_state, old_state=None): - # could be interresting to update state in batches. - tracked_count_list = ['pending', 'testing', 'running'] - if (new_state not in tracked_count_list and old_state not in tracked_count_list) or new_state == old_state: - return - - for record in self: - values = {} - if old_state in tracked_count_list: - values['nb_%s' % old_state] = record['nb_%s' % old_state] - 1 - if new_state in tracked_count_list: - values['nb_%s' % new_state] = record['nb_%s' % new_state] + 1 - - record.write(values) - if record.parent_id: - record.parent_id._update_nb_children(new_state, old_state) - @api.depends('active_step', 'duplicate_id.active_step') def _compute_job(self): for build in self: @@ -209,7 +191,6 @@ class runbot_build(models.Model): return self.env['runbot.build'] vals['config_id'] = vals['config_id'] if 'config_id' in vals else branch.config_id.id build_id = super(runbot_build, self).create(vals) - build_id._update_nb_children(build_id.local_state) extra_info = {'sequence': build_id.id if not build_id.sequence else build_id.sequence} context = self.env.context @@ -316,8 +297,6 @@ class runbot_build(models.Model): build_by_old_values = defaultdict(lambda: self.env['runbot.build']) for record in self: build_by_old_values[record.local_state] += record - for local_state, builds in build_by_old_values.items(): - builds._update_nb_children(values.get('local_state'), local_state) assert 'state' not in values local_result = values.get('local_result') for build in self: diff --git a/runbot/templates/build.xml b/runbot/templates/build.xml index c2a1a2d9..db51b773 100644 --- a/runbot/templates/build.xml +++ b/runbot/templates/build.xml @@ -148,9 +148,6 @@ Children: - pending - testing - running diff --git a/runbot/tests/test_build.py b/runbot/tests/test_build.py index b3fe1aeb..1d6974a8 100644 --- a/runbot/tests/test_build.py +++ b/runbot/tests/test_build.py @@ -327,62 +327,59 @@ class Test_Build(RunbotCase): 'extra_params': '5', }) - def assert_state(nb_pending, nb_testing, nb_running, global_state, build): - self.assertEqual(build.nb_pending, nb_pending) - self.assertEqual(build.nb_testing, nb_testing) - self.assertEqual(build.nb_running, nb_running) + def assert_state(global_state, build): self.assertEqual(build.global_state, global_state) - assert_state(5, 0, 0, 'pending', build1) - assert_state(3, 0, 0, 'pending', build1_1) - assert_state(1, 0, 0, 'pending', build1_2) - assert_state(1, 0, 0, 'pending', build1_1_1) - assert_state(1, 0, 0, 'pending', build1_1_2) + assert_state('pending', build1) + assert_state('pending', build1_1) + assert_state('pending', build1_2) + assert_state('pending', build1_1_1) + assert_state('pending', build1_1_2) build1.local_state = 'testing' build1_1.local_state = 'testing' build1.local_state = 'done' build1_1.local_state = 'done' - assert_state(3, 0, 0, 'waiting', build1) - assert_state(2, 0, 0, 'waiting', build1_1) - assert_state(1, 0, 0, 'pending', build1_2) - assert_state(1, 0, 0, 'pending', build1_1_1) - assert_state(1, 0, 0, 'pending', build1_1_2) + assert_state('waiting', build1) + assert_state('waiting', build1_1) + assert_state('pending', build1_2) + assert_state('pending', build1_1_1) + assert_state('pending', build1_1_2) build1_1_1.local_state = 'testing' - assert_state(2, 1, 0, 'waiting', build1) - assert_state(1, 1, 0, 'waiting', build1_1) - assert_state(1, 0, 0, 'pending', build1_2) - assert_state(0, 1, 0, 'testing', build1_1_1) - assert_state(1, 0, 0, 'pending', build1_1_2) + assert_state('waiting', build1) + assert_state('waiting', build1_1) + assert_state('pending', build1_2) + assert_state('testing', build1_1_1) + assert_state('pending', build1_1_2) build1_2.local_state = 'testing' - assert_state(1, 2, 0, 'waiting', build1) - assert_state(1, 1, 0, 'waiting', build1_1) - assert_state(0, 1, 0, 'testing', build1_2) - assert_state(0, 1, 0, 'testing', build1_1_1) - assert_state(1, 0, 0, 'pending', build1_1_2) + assert_state('waiting', build1) + assert_state('waiting', build1_1) + assert_state('testing', build1_2) + assert_state('testing', build1_1_1) + assert_state('pending', build1_1_2) build1_2.local_state = 'testing' # writing same state a second time - assert_state(1, 2, 0, 'waiting', build1) - assert_state(1, 1, 0, 'waiting', build1_1) - assert_state(0, 1, 0, 'testing', build1_2) - assert_state(0, 1, 0, 'testing', build1_1_1) - assert_state(1, 0, 0, 'pending', build1_1_2) + assert_state('waiting', build1) + assert_state('waiting', build1_1) + assert_state('testing', build1_2) + assert_state('testing', build1_1_1) + assert_state('pending', build1_1_2) build1_1_2.local_state = 'done' build1_1_1.local_state = 'done' build1_2.local_state = 'done' - assert_state(0, 0, 0, 'done', build1) - assert_state(0, 0, 0, 'done', build1_1) - assert_state(0, 0, 0, 'done', build1_2) - assert_state(0, 0, 0, 'done', build1_1_1) - assert_state(0, 0, 0, 'done', build1_1_2) + assert_state('done', build1) + assert_state('done', build1_1) + assert_state('done', build1_2) + assert_state('done', build1_1_1) + assert_state('done', build1_1_2) def test_duplicate_childrens(self): build_old = self.create_build({ @@ -406,8 +403,6 @@ class Test_Build(RunbotCase): self.assertEqual(build_child.local_state, 'duplicate') self.assertEqual(build_child.duplicate_id, build_old) self.assertEqual(build_child.global_state, 'done') - self.assertEqual(build_parent.nb_pending, 0) - self.assertEqual(build_parent.nb_testing, 0) self.assertEqual(build_parent.global_state, 'done') diff --git a/runbot/views/host_views.xml b/runbot/views/host_views.xml index bfbd09b5..ae784994 100644 --- a/runbot/views/host_views.xml +++ b/runbot/views/host_views.xml @@ -16,8 +16,6 @@ - -