summaryrefslogtreecommitdiff
path: root/get_jenkins_variable.py
blob: ace8acfa475edb51ab18a543c9531c9e45c7b991 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/python
import os
import json
import urllib2
import argparse

ci_base_url = os.environ.get('CI_BASE_URL',
                             'https://ci.linaro.org/jenkins/job/')

def main(args):
    input_arguments = dict()
    input_arguments['json_url'] = args.json_url

    request = urllib2.Request(ci_base_url + input_arguments['json_url'] +
                              '/lastSuccessfulBuild/api/json')
    try:
        response = urllib2.urlopen(request)
    except urllib2.URLError, e:
       if hasattr(e, 'reason'):
           print 'Failed to reach %s.' % ci_base_url
           print 'Reason: ', e.reason
           print e.headers
       elif hasattr(e, 'code'):
           print 'Could not fulfill the request: %s' % ci_base_url
           print 'Error code: ', e.code
           print e.headers
       sys.exit('Failed to get response.')
    values = json.load(response)

    if args.input_variable:
        input_arguments['input_variable'] = args.input_variable
        for item in values['actions'][0]['parameters']:
            if input_arguments['input_variable'] in item.get('name'):
                print item.get('value')
    else:
        config = json.dumps(values, indent=2)
        print config

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument("json_url", help="url to json file")
    parser.add_argument("--input_variable", help="variable to get back")
    args = parser.parse_args()
    main(args)
# vim: set ts=8 sw=4 sts=4 et tw=80 fileencoding=utf-8 :