diff options
author | Daniel Silverstone <daniel.silverstone@codethink.co.uk> | 2012-10-11 18:04:27 +0100 |
---|---|---|
committer | Daniel Silverstone <daniel.silverstone@codethink.co.uk> | 2012-10-11 18:04:27 +0100 |
commit | 5e3cc68adbc312df8515f9ec60b5c45e4a9161da (patch) | |
tree | 0118835a56fccbb192e25a74347a98d104a3f70a /lorrycontroller | |
parent | 4334f9d810ea6e448ad4c452c8fd7fd99487c693 (diff) | |
download | lorry-controller-5e3cc68adbc312df8515f9ec60b5c45e4a9161da.tar.gz |
More tweaks to HTML status reporting
Diffstat (limited to 'lorrycontroller')
-rw-r--r-- | lorrycontroller/confparser.py | 5 | ||||
-rw-r--r-- | lorrycontroller/htmlstatus.py | 24 | ||||
-rw-r--r-- | lorrycontroller/workingstate.py | 3 |
3 files changed, 24 insertions, 8 deletions
diff --git a/lorrycontroller/confparser.py b/lorrycontroller/confparser.py index 71becd7..e24db07 100644 --- a/lorrycontroller/confparser.py +++ b/lorrycontroller/confparser.py @@ -210,8 +210,11 @@ class LorryControllerConfig(object): } repo_info[elems[1]] = this_repo state['last-ls-output'] = repo_info + logging.info("ls interval %d" % trove['ls-interval-parsed']) + logging.info("next-vls was %s" % time.asctime(time.gmtime(state['next-vls']))) while state['next-vls'] < now: state['next-vls'] += trove['ls-interval-parsed'] + logging.info("next-vls now %s" % time.asctime(time.gmtime(state['next-vls']))) else: # Pass through unchanged state['last-ls-output'] = state.get('last-ls-output', {}) @@ -238,6 +241,8 @@ class LorryControllerConfig(object): remotereponame), "controller-uuid": trove['uuid'], "source-HEAD": info["head"], + "refspecs": [ "+refs/heads/*:refs/heads/*", + "+refs/tags/*:refs/tags/*" ] } if localreponame in self.lorries: logging.warn("Skipping %s (%s from %s) because we already " diff --git a/lorrycontroller/htmlstatus.py b/lorrycontroller/htmlstatus.py index aae75c7..50b69ee 100644 --- a/lorrycontroller/htmlstatus.py +++ b/lorrycontroller/htmlstatus.py @@ -25,10 +25,12 @@ class HTMLStatusManager(object): self.series = None self.filename = self.app.settings['html-file'] self.mgr = None + self.all_processing = set() self.processing = None - self.processing_time = None + self.processing_time = time.time() self.failing = None self.all_lorries_ever = set() + self.bump_time = time.time() def set_failing(self, failmsg): self.failing = failmsg @@ -38,12 +40,15 @@ class HTMLStatusManager(object): self.mgr = mgr def set_processing(self, proc): + if self.processing is not None: + self.all_processing.add(self.processing) self.processing = proc self.processing_time = time.time() self.write_out_status() def bump_state(self): self.state = self.state + 1 + self.bump_time = time.time() self.processing = None self.write_out_status() @@ -137,7 +142,10 @@ function reloadAfter(timeout) { state = "Processing since " + \ time.asctime(time.gmtime(self.processing_time)) elif troveinfo.get('next-vls', now - 1) < now: - state = "Due to be checked" + if self.state < len(state_names) - 1: + state = "Due to be checked this run." + else: + state = "Due to be checked on the next run" state = self.tag("td", content=escape(state)) nextdue = self.tag("td", content=escape(time.asctime( time.gmtime(troveinfo.get('next-vls', now - 1))))) @@ -186,16 +194,20 @@ function reloadAfter(timeout) { lorryinfo = self.mgr.lorry_state.get(lorry_name, {}) uuid = self.tag("td", content= escape(lorry.get('controller-uuid', 'Dead'))) - state = "Waiting until " + \ - time.asctime(time.gmtime(lorryinfo.get('next-due', now - 1))) + state = "Waiting " if self.processing == lorry_name: state = "Processing since " + \ time.asctime(time.gmtime(self.processing_time)) - elif lorryinfo.get('next-due', now - 1) < now: - state = "Due to be checked" + elif lorryinfo.get('next-due', now - 1) < self.bump_time: + if self.state < len(state_names) - 1: + state = "Due to be checked this run." + else: + state = "Due to be checked on the next run" if self.mgr is not None: if self.mgr.lorry_state.get(lorry_name, None) is None: state = "Needs creating" + elif lorry_name in self.all_processing: + state = "Processed" if dead_lorry: state = "Dead - To be removed" if dead_and_gone: diff --git a/lorrycontroller/workingstate.py b/lorrycontroller/workingstate.py index 8e4b20e..e3a19b7 100644 --- a/lorrycontroller/workingstate.py +++ b/lorrycontroller/workingstate.py @@ -66,8 +66,7 @@ class WorkingStateManager(object): all_troves = self.trove_state self.trove_state = {} new_trove_count = 0 - for trove in self.app.conf.troves: - uuid = trove['uuid'] + for uuid, trove in all_troves.iteritems(): self.trove_state[uuid] = trove new_trove_count += 1 if old_trove_count != new_trove_count: |