summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Silverstone <daniel.silverstone@codethink.co.uk>2012-10-11 18:04:27 +0100
committerDaniel Silverstone <daniel.silverstone@codethink.co.uk>2012-10-11 18:04:27 +0100
commit5e3cc68adbc312df8515f9ec60b5c45e4a9161da (patch)
tree0118835a56fccbb192e25a74347a98d104a3f70a
parent4334f9d810ea6e448ad4c452c8fd7fd99487c693 (diff)
downloadlorry-controller-5e3cc68adbc312df8515f9ec60b5c45e4a9161da.tar.gz
More tweaks to HTML status reporting
-rw-r--r--lorrycontroller/confparser.py5
-rw-r--r--lorrycontroller/htmlstatus.py24
-rw-r--r--lorrycontroller/workingstate.py3
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: