third-party-ci-tools/monitoring/ci-status/README.rst

3.0 KiB

CI Status Tool

Used for a quick stats collection on Third Party CIs for various OpenStack projects.

Example usage:

$ ./ci-status.py -v -u datera-ci \\
        -k /home/user/.ssh/id_rsa \\
        -c "Datera CI" -a datera-dsvm-full -t 2 \\
        -j openstack/cinder \\
        --failures --number-of-reports --is-reporting \\
        --jenkins_disagreement

Output:

Gerrit Query: ssh -i /home/user/.ssh/id_rsa -p 29418 dater
a-ci@review.openstack.org "gerrit query --format=JSON --comments --current-
patch-set project:openstack/cinder NOT age:2d  reviewer:Datera CI "

##### DATERA-DSVM-FULL #####

####### --number-of-reports arg result #######

40 results in 2 days

###### --is-reporting arg result #######

Review: 263026 --> 2016-07-07T17:02:15+00:00

###### --failures arg result #######

20% failures

###### --jenkins-disagreement arg result #######

0% -1 Jenkins && +1 CI
20% +1 Jenkins && -1 CI

Minimal usage:

$ ./ci-status.py -u datera-ci -k /home/user/.ssh/id_rsa \\
        -j openstack/cinder -c "Datera CI" -a datera-dsvm-full \\
        --is-reporting

Output:

##### DATERA-DSVM-FULL #####
Review: 263026 --> 2016-07-07T17:02:15+00:00

Passthrough query usage:

$ ./ci-status.py -u datera-ci -k /home/user/.ssh/id_rsa \\
        -q "reviewer:{Some Body} -j openstack/cinder"

Output:

Will be a large dictionary

Config example:

# In .gerritqueryrc file in your $HOME directory
# (or passed in via config option)

[DEFAULT]
verbose=True
host=review.openstack.org
username=datera-ci
port=29418
query_project=openstack/cinder
keyfile=/home/user/.ssh/id_rsa

# I would not recommend putting any other flags into this config
# file otherwise you could introduce silent errors
# For example:

# Adding these fields
ci_account=datera-ci
ci_runner_name=datera-dsvm-full

# Then running this command
# $ ./ci-status.py -c mellanox-ci --is-reporting

# Would report a false negative for Datera. A CI
# will show as non-reporting if you provide the
# ci_account name of one CI and the ci_runner_name of
# a different CI.  The tool has no way to tell that
# these values do not belong together and will just
# report that the CI has not posted within the specified
# timeframe.

The "--all" flag:

# In order to use this flag, you must first run this command:
$ ./ci-status.py --scrape-wiki --force -j openstack/your_project


# It will fill your .gerritquerycache file with information about
# the various CIs for your desired OpenStack project

# Now you're free to run commands with the --all flag
$ ./ci-status -j openstack/you_project --all --is-reporting