Skip to content

Commit ac83d98

Browse files
committed
waterfall/cvo-waterfall: Display uncompleted manifests too
In red, so you can distinguish them from completed manifests.
1 parent a4acb2a commit ac83d98

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

waterfall/cvo-waterfall.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
log_regexp = re.compile('^I[0-9]+ ([0-9:.]+) .* (Running sync|Done syncing) for ([^ ]+) "([^"]+)" \(([0-9]+) of ([0-9]+)\)')
1212

1313
resources = {}
14-
reference_time = None
14+
reference_time = last_log = None
1515
for line in sys.stdin.readlines():
1616
match = log_regexp.match(line)
1717
if not match:
@@ -20,6 +20,7 @@
2020
timestamp = datetime.datetime.strptime(time, '%H:%M:%S.%f')
2121
if reference_time is None:
2222
reference_time = timestamp
23+
last_log = timestamp
2324
if objType not in resources:
2425
resources[objType] = {}
2526
if name not in resources[objType]:
@@ -33,19 +34,27 @@
3334
time_ranges = []
3435
for objType, names in resources.items():
3536
for name, data in names.items():
36-
if 'Done syncing' not in data:
37-
logging.warning('not finished: {} {}'.format(objType, name))
38-
continue
3937
start = (data['Running sync'] - reference_time).total_seconds()
40-
stop = (data['Done syncing'] - reference_time).total_seconds()
38+
if 'Done syncing' in data:
39+
stop = (data['Done syncing'] - reference_time).total_seconds()
40+
else:
41+
stop = None
42+
logging.warning('not finished: {} {}'.format(objType, name))
4143
time_ranges.append((start, stop, objType, name, data))
4244

4345
rectangles = []
4446
y = 0
4547
step = 4
4648
last_stop = 0
49+
max_stop = (last_log - reference_time).total_seconds()
4750
for start, stop, objType, name, data in sorted(time_ranges):
48-
rectangles.append('<rect x="{}" y="{}" width="{}" height="{}" fill="blue"><title>{} {} {}/{} ({})</title></rect>'.format(start, y, stop - start, step, objType, name, data['index'], data['total'], data['Done syncing'] - data['Running sync']))
51+
if stop is None:
52+
stop = max_stop
53+
data['Done syncing'] = last_log
54+
fill = 'red'
55+
else:
56+
fill = 'blue'
57+
rectangles.append('<rect x="{}" y="{}" width="{}" height="{}" fill="{}"><title>{} {} {}/{} ({})</title></rect>'.format(start, y, stop - start, step, fill, objType, name, data['index'], data['total'], data['Done syncing'] - data['Running sync']))
4958
y += step
5059
if stop > last_stop:
5160
last_stop = stop

0 commit comments

Comments
 (0)