6 def submit_commits(commits, dashboard_url, slave_name, slave_password):
9 'slaveName': slave_name,
10 'slavePassword': slave_password,
13 request = urllib2.Request(dashboard_url + '/api/report-commits')
14 request.add_header('Content-Type', 'application/json')
15 request.add_header('Content-Length', len(payload))
17 output = urllib2.urlopen(request, payload).read()
19 result = json.loads(output)
20 except Exception, error:
21 raise Exception(error, output)
23 if result.get('status') != 'OK':
24 raise Exception(result)
25 except Exception as error:
26 sys.exit('Failed to submit commits: %s' % str(error))
29 def text_content(element):
31 for child in element.childNodes:
32 if child.nodeType == child.TEXT_NODE:
35 text += text_content(child)
39 HTTP_AUTH_HANDLERS = {
40 'basic': urllib2.HTTPBasicAuthHandler,
41 'digest': urllib2.HTTPDigestAuthHandler,
45 def setup_auth(server):
46 auth = server.get('auth')
50 password_manager = urllib2.HTTPPasswordMgr()
51 password_manager.add_password(realm=auth['realm'], uri=server['url'], user=auth['username'], passwd=auth['password'])
52 auth_handler = HTTP_AUTH_HANDLERS[auth['type']](password_manager)
53 urllib2.install_opener(urllib2.build_opener(auth_handler))
56 def load_server_config(json_path):
57 with open(json_path) as server_config_json:
58 server_config = json.load(server_config_json)
59 server = server_config['server']
60 server['url'] = server['scheme'] + '://' + server['host'] + ':' + str(server['port'])