diff options
author | Paul Sokolovsky <paul.sokolovsky@linaro.org> | 2013-08-28 15:18:44 +0300 |
---|---|---|
committer | Paul Sokolovsky <paul.sokolovsky@linaro.org> | 2013-08-28 15:18:44 +0300 |
commit | e680572031d18a28991a499217e8aaedc874476c (patch) | |
tree | 022578498d6001d4be770d7d0e693226c60370f2 /utils | |
parent | 384108fed2773576189998b4bb5cd620939570cd (diff) |
Implement "build" command, more refactoring.
Diffstat (limited to 'utils')
-rwxr-xr-x | utils/cmdline-client/android-build-client | 28 |
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]) |