improving performance in the get_job() method
authorVictor Garcia <victor@tuenti.com>
Tue, 26 Jun 2012 14:01:33 +0000 (16:01 +0200)
committerVictor Garcia <victor@tuenti.com>
Tue, 26 Jun 2012 14:01:33 +0000 (16:01 +0200)
jenkinsapi/jenkins.py

index 646098e577d4bf3359685bfd361735572557b492..040b8d26e09bb4c8f627e7408aee9282bc0aed69 100644 (file)
@@ -117,6 +117,14 @@ class Jenkins(JenkinsBase):
         for info in self._data["jobs"]:
             yield info["name"], Job(info["url"], info["name"], jenkins_obj=self)
 
+    def get_jobs_info(self):
+        """
+        Get the jobs information
+        :return url, name
+        """
+        for info in self._data["jobs"]:
+            yield info["url"], info["name"]
+
     def get_jobs_list(self):
         """
         return jobs dict,'name:url'
@@ -263,9 +271,9 @@ class Jenkins(JenkinsBase):
         :param jobname: name of job, str
         :return: Job obj
         """
-        for name, job in self.get_jobs():
+        for url, name in self.get_jobs_info():
             if name == jobname:
-                return job
+                return Job(url, name, jenkins_obj=self)
         raise UnknownJob(jobname)
 
     def get_node_dict(self):