aboutsummaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorPaul Sokolovsky <paul.sokolovsky@linaro.org>2013-08-28 15:18:44 +0300
committerPaul Sokolovsky <paul.sokolovsky@linaro.org>2013-08-28 15:18:44 +0300
commite680572031d18a28991a499217e8aaedc874476c (patch)
tree022578498d6001d4be770d7d0e693226c60370f2 /utils
parent384108fed2773576189998b4bb5cd620939570cd (diff)
Implement "build" command, more refactoring.
Diffstat (limited to 'utils')
-rwxr-xr-xutils/cmdline-client/android-build-client28
1 files changed, 21 insertions, 7 deletions
diff --git a/utils/cmdline-client/android-build-client b/utils/cmdline-client/android-build-client
index 1bd478c..93fe085 100755
--- a/utils/cmdline-client/android-build-client
+++ b/utils/cmdline-client/android-build-client
@@ -50,7 +50,9 @@ class Jenkins(object):
req = urllib2.Request(
url, data, headers)
resp = urllib2.urlopen(req)
- return resp.read()
+ data = resp.read()
+ resp.close()
+ return data
def get_csrf_headers(self):
if self.csrf is None:
@@ -63,19 +65,26 @@ class Jenkins(object):
self.csrf = {}
return self.csrf
+ def jenkins_rest_post(self, jenkins_path, data, extra_headers=None):
+ if extra_headers is None:
+ extra_headers = {}
+ extra_headers.update(self.get_csrf_headers())
+ return self.jenkins_rest(jenkins_path, data, extra_headers)
+
def get_job_config(self, job_name):
return self.jenkins_rest('job/' + job_name + '/config.xml')
- def _post_config(self, url, config_xml):
- headers = self.get_csrf_headers()
- headers['Content-Type'] = 'text/xml'
- return self.jenkins_rest(url, config_xml, headers)
+ def post_config(self, url, config_xml):
+ return self.jenkins_rest_post(url, config_xml, {'Content-Type': 'text/xml'})
def set_job_config(self, job_name, config_xml):
- return self._post_config('job/' + job_name + '/config.xml', config_xml)
+ return self.post_config('job/' + job_name + '/config.xml', config_xml)
def create_job(self, job_name, config_xml):
- return self._post_config('createItem?name=' + job_name, config_xml)
+ return self.post_config('createItem?name=' + job_name, config_xml)
+
+ def build_job(self, job_name):
+ self.jenkins_rest_post('job/' + job_name + '/buildWithParameters?delay=0sec', '')
def job2user_group(job_group):
if job_group == "linaro-android":
@@ -135,6 +144,11 @@ def main():
except urllib2.HTTPError, e:
error("Error creating job '%s' (job exists?)" % jenkins_job)
print "Job created successfully: %s/job/%s/" % (options.url, jenkins_job)
+ elif args[0] == "build":
+ if len(args) != 2:
+ optparser.error("Usage: build <job_name>")
+ j.build_job(args[1].replace("/", "_"))
+ print "Build queued"
else:
optparser.error("Unknown command '%s'" % args[0])