#!/usr/bin/env python3 # Copyright (C) 2020 The Qt Company Ltd. # SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only import os import sys import subprocess import logging import requests import json #HOSTNAME = "10.213.255.45:8086" #HOSTNAME = "localhost:8086" HOSTNAME = "testresults.qt.io:443/influxdb" def post_annotation(title, text, tag, branch): # TODO: we could consider splitting tag on , and inserting multiple annotations # this is required, unfortunately, as Grafana's InfluxDB source requires that you # fetch tags from multiple fields rather than turning a single field into # multiple tags.. fields = ('title=\"%s\"' % title, 'text=\"%s\"' % text, 'tagText=\"%s\"' % tag, 'branch=\"%s\"' % branch, ) data = 'annotations %s' % (','.join(fields)) result = requests.post("https://%s/write?db=qmlbench" % HOSTNAME, auth=requests.auth.HTTPBasicAuth(os.environ["INFLUXDBUSER"], os.environ["INFLUXDBPASSWORD"]), data=data.encode('utf-8')) print(data) print(result) if __name__ == "__main__": import argparse parser = argparse.ArgumentParser() parser.add_argument("--title", help="title of the annotation (e.g. --title=\"qtbase update\")") parser.add_argument("--tag", help="a tag for the annotation") parser.add_argument("--text", help="text for the annotation") parser.add_argument("--branch", help="the branch the annotation is relevant to (e.g. 5.6, dev") args = parser.parse_args(sys.argv[1:]) print("Adding annotation: " + args.title) post_annotation(args.title, args.text, args.tag, args.branch)