Add a "repowait" stage right after "add_to_repo", so a package job can request_copy only once and nothing executes add_to_repo more than once. diff -Nur plague-0.4.4.1-orig/server/PackageJob.py plague-0.4.4.1/server/PackageJob.py --- plague-0.4.4.1-orig/server/PackageJob.py 2006-03-13 05:10:49.000000000 +0100 +++ plague-0.4.4.1/server/PackageJob.py 2008-01-18 13:40:29.000000000 +0100 @@ -87,7 +87,7 @@ def is_package_job_stage_valid(stage): """ Validate a job stage """ - stages = ['initialize', 'checkout_wait', 'checkout_wait_done', 'checkout', 'make_srpm', 'prep', 'waiting', 'building', 'build_done', 'add_to_repo', 'repodone', 'needsign', 'failed', 'finished'] + stages = ['initialize', 'checkout_wait', 'checkout_wait_done', 'checkout', 'make_srpm', 'prep', 'waiting', 'building', 'build_done', 'add_to_repo', 'repowait', 'repodone', 'needsign', 'failed', 'finished'] if stage in stages: return True return False @@ -615,6 +615,7 @@ self._set_cur_stage('repodone') else: self._set_cur_stage('add_to_repo') + self.endtime = time.time() return False # Don't want to wait return True @@ -687,9 +688,13 @@ # list from this object directly when the copy operation # happens if len(self.repofiles): + self.endtime = time.time() + self._set_cur_stage('repowait') self.repo.request_copy(self) - self.endtime = time.time() + return False + + def _stage_repowait(self): return True def repo_add_callback(self, success, bad_file=None): diff -Nur plague-0.4.4.1-orig/www/css/style.css plague-0.4.4.1/www/css/style.css --- plague-0.4.4.1-orig/www/css/style.css 2005-08-06 18:06:41.000000000 +0200 +++ plague-0.4.4.1/www/css/style.css 2008-01-18 13:13:20.000000000 +0100 @@ -201,6 +201,12 @@ font-size: 12px; } +font.status-repowait { + color: #aaaa00; + font-weight: bold; + font-size: 12px; +} + font.status-needsign { color: #00aa00; font-weight: bold; diff -Nur plague-0.4.4.1-orig/www/indiv.psp plague-0.4.4.1/www/indiv.psp --- plague-0.4.4.1-orig/www/indiv.psp 2005-08-31 21:31:00.000000000 +0200 +++ plague-0.4.4.1/www/indiv.psp 2008-01-18 03:29:07.000000000 +0100 @@ -59,7 +59,7 @@ # default cutoff is 1 day cutoff_time = 86400 - status_list = ['ALL', 'waiting', 'building', 'add_to_repo', 'needsign', 'failed', 'success'] + status_list = ['ALL', 'waiting', 'building', 'add_to_repo', 'repowait', 'needsign', 'failed', 'success'] %>
diff -Nur plague-0.4.4.1-orig/www/success.psp plague-0.4.4.1/www/success.psp --- plague-0.4.4.1-orig/www/success.psp 2005-08-31 21:31:00.000000000 +0200 +++ plague-0.4.4.1/www/success.psp 2008-01-18 14:03:07.000000000 +0100 @@ -10,7 +10,7 @@ try: # show any jobs that have successfully built args = {} - args['status'] = ['add_to_repo', 'needsign', 'repodone'] + args['status'] = ['add_to_repo', 'needsign', 'repowait', 'repodone'] args['orderby'] = ['status', 'endtime desc'] args['maxrows'] = 100 (e, msg, jobs) = server.list_jobs(args)