Use preferred URL scheme for jobs
authorVojtech Juranek <vjuranek@redhat.com>
Thu, 2 May 2013 23:49:30 +0000 (01:49 +0200)
committerVojtech Juranek <vjuranek@redhat.com>
Thu, 2 May 2013 23:49:30 +0000 (01:49 +0200)
Some Jenkins instances are configured to allow reading the data over HTTP scheme, while for manipulating with data (e.g. create or delete
 job) HTTPS scheme is required. Allow user to specify preferred URL scheme (by specifying Jenkins URL) and use this scheme also
manipulations with jobs.

jenkinsapi/jenkins.py

index cb4b0b1856736ea83d830235e8b0818caad521fc..5ee55f1901e0b31ce8c74c1aba590c02530efaae 100644 (file)
@@ -318,7 +318,10 @@ class Jenkins(JenkinsBase):
         """
         for url, name in self.get_jobs_info():
             if name == jobname:
-                return Job(url, name, jenkins_obj=self)
+                preferred_scheme = urlparse.urlsplit(self.baseurl).scheme
+                url_split = urlparse.urlsplit(url)
+                preffered_url = urlparse.urlunsplit([preferred_scheme, url_split.netloc, url_split.path, url_split.query, url_split.fragment])
+                return Job(preferred_url, name, jenkins_obj=self)
         raise UnknownJob(jobname)
 
     def get_node_dict(self):