Last active
August 24, 2017 15:31
-
-
Save grafuls/a9de69395b6efcb78a2abf65d616e89f to your computer and use it in GitHub Desktop.
Script for retrieving Jenkins job art_test_runner logs timestamps
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /usr/bin/python | |
from __future__ import print_function | |
from ast import literal_eval | |
from argparse import ArgumentParser | |
import urllib2 | |
BASE_URL = "https://{jenkins}/job/%s/%s" | |
ART_URI = BASE_URL + "/api/python?tree=artifacts[fileName]" | |
LOG_URI = BASE_URL + "/artifact/logs/%s/*view*/" | |
LOG = "art_test_runner.log" | |
def _request(job, build, log): | |
url_q = LOG_URI % (job, build, log) | |
req = urllib2.Request(url_q) | |
req.headers['Range'] = 'bytes=0-18' | |
resp = urllib2.urlopen(req) | |
timestamp = resp.read() | |
print("%s starts at: %s" % (log, timestamp)) | |
return url_q | |
if __name__ == "__main__": | |
ap = ArgumentParser() | |
ap.add_argument("-j", "--job", help="jenkins job name", required=True) | |
ap.add_argument( | |
"-b", "--build", | |
type=int, | |
help="jenkins job build number", | |
required=True | |
) | |
ap.add_argument( | |
"-l", "--log", | |
type=int, | |
help="log number to retrieve link for" | |
) | |
args = vars(ap.parse_args()) | |
_job = args.get("job") | |
_build = args.get("build") | |
_log = args.get("log") | |
info = urllib2.urlopen(ART_URI % (_job, _build)) | |
resp = info.read() | |
artifacts = literal_eval(resp) | |
logs = [ | |
log["fileName"] | |
for log in artifacts["artifacts"] | |
if LOG in log["fileName"] | |
] | |
if _log is None: | |
for log in logs: | |
_request(_job, _build, log) | |
else: | |
if _log > 0: | |
log = LOG + ".%s" % str(_log) | |
else: | |
log = LOG | |
url_q = _request(_job, _build, log) | |
print(url_q) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment