| #!/usr/bin/python | 
 | import urllib | 
 | import json | 
 | import sys | 
 |  | 
 |  | 
 | def print_usage(): | 
 |     print ("Usage: %s [jenkins_url (eg. http://50.56.12.202:8080/)]" | 
 |            % sys.argv[0]) | 
 |     sys.exit() | 
 |  | 
 |  | 
 | def fetch_blob(url): | 
 |     return json.loads(urllib.urlopen(url + '/api/json').read()) | 
 |  | 
 |  | 
 | if len(sys.argv) < 2: | 
 |     print_usage() | 
 |  | 
 | BASE_URL = sys.argv[1] | 
 |  | 
 | root = fetch_blob(BASE_URL) | 
 | results = {} | 
 | for job_url in root['jobs']: | 
 |     job = fetch_blob(job_url['url']) | 
 |     if job.get('activeConfigurations'): | 
 |         (tag, name) = job['name'].split('-') | 
 |         if not results.get(tag): | 
 |             results[tag] = {} | 
 |         if not results[tag].get(name): | 
 |             results[tag][name] = [] | 
 |  | 
 |         for config_url in job['activeConfigurations']: | 
 |             config = fetch_blob(config_url['url']) | 
 |  | 
 |             log_url = '' | 
 |             if config.get('lastBuild'): | 
 |                 log_url = config['lastBuild']['url'] + 'console' | 
 |  | 
 |             results[tag][name].append({'test': config['displayName'], | 
 |                                        'status': config['color'], | 
 |                                        'logUrl': log_url, | 
 |                                        'healthReport': config['healthReport']}) | 
 |  | 
 | print json.dumps(results) |