Add ansible runtime script
This is designed to run on bridge.o.o and give us an overview of the last few ansible cron runs so we can see if there are issues. Change-Id: I1b23cac74272af891d0b29963dc943bd54128664
This commit is contained in:
parent
e54afccc77
commit
86adc42d5c
48
tools/ansible-runtime.py
Normal file
48
tools/ansible-runtime.py
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
# Copyright 2018 Red Hat, Inc.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
# This script parses the logfiles on bridge.o.o to give an overview of
|
||||||
|
# how long the last "run_all.sh" iterations took and give a clue to
|
||||||
|
# what might have changed inbetween runs.
|
||||||
|
|
||||||
|
from datetime import datetime
|
||||||
|
import os
|
||||||
|
|
||||||
|
# TODO: reverse walk rotated logs for longer history
|
||||||
|
with open('/var/log/ansible/run_all_cron.log') as f:
|
||||||
|
begin = None
|
||||||
|
for line in f:
|
||||||
|
if "--- begin run @" in line:
|
||||||
|
# 2018-09-05T01:10:36+00:00
|
||||||
|
begin = datetime.strptime(line[16:-5], '%Y-%m-%dT%H:%M:%S+00:00')
|
||||||
|
continue
|
||||||
|
if "--- end run @" in line:
|
||||||
|
end = datetime.strptime(line[14:-5], '%Y-%m-%dT%H:%M:%S+00:00')
|
||||||
|
if not begin:
|
||||||
|
print("end @ %s had no beginning?", end)
|
||||||
|
continue
|
||||||
|
runtime = end - begin
|
||||||
|
# NOTE(ianw): try to get what would have been the HEAD at
|
||||||
|
# the time the run started. "--first-parent" I hope means
|
||||||
|
# that we show merge commits of when the change actually
|
||||||
|
# was in the tree, not when it was originally proposed.
|
||||||
|
git_head_commit = os.popen('git -C /opt/system-config/ rev-list --first-parent -1 --before="%s" master' % begin).read().strip()
|
||||||
|
git_head = os.popen('git -C /opt/system-config log --abbrev-commit --pretty=oneline --max-count=1 %s' % git_head_commit).read().strip()
|
||||||
|
print("%s - %s - %s" % (runtime, begin, git_head))
|
||||||
|
begin = None
|
||||||
|
|
||||||
|
if begin:
|
||||||
|
print("Incomplete run started @ %s" % begin)
|
Loading…
Reference in New Issue
Block a user