Ejemplo n.º 1
0
 def __getitem__(self, job_name):
     if job_name in self:
         job_data = [job_row for job_row in self._data
                     if job_row['name'] == job_name][0]
         return Job(job_data['url'], job_data['name'], self.jenkins)
     else:
         raise UnknownJob(job_name)
Ejemplo n.º 2
0
    def __getitem__(self, job_name):
        for row in self.jenkins._data.get('jobs', []):
            if row['name'] == job_name:
                return Job(
                    row['url'],
                    row['name'],
                    self.jenkins)

        raise UnknownJob(job_name)
Ejemplo n.º 3
0
 def __getitem__(self, jobname):
     """
     Get a job by name
     :param jobname: name of job, str
     :return: Job obj
     """
     for info in self._data["jobs"]:
         if info["name"] == jobname:
             return Job(info["url"], info["name"], jenkins_obj=self)
     raise UnknownJob(jobname)
Ejemplo n.º 4
0
 def __getitem__(self, job_name):
     if job_name in self:
         job_data = [job_row for job_row in self._data
                     if job_row['name'] == job_name or
                     Job.get_full_name_from_url_and_baseurl(
                         job_row['url'],
                         self.jenkins.baseurl) == job_name][0]
         return Job(job_data['url'], job_data['name'], self.jenkins)
     else:
         raise UnknownJob(job_name)
Ejemplo n.º 5
0
 def __getitem__(self, jobname):
     """
     Get a job by name
     :param jobname: name of job, str
     :return: Job obj
     """
     # We have to ask for 'color' here because folder resolution
     # relies on it
     jobs = self.poll(tree='jobs[name,url,color]')['jobs']
     for info in jobs:
         if info["name"] == jobname:
             return Job(info["url"], info["name"], jenkins_obj=self)
     raise UnknownJob(jobname)
Ejemplo n.º 6
0
    def test_job_unknown(self, mock_jenkins):
        self.mock_client.get_job.side_effect = UnknownJob()
        mock_jenkins.return_value = self.mock_client

        status = jenkins.get_job_status(self.mock_config, 'unknown-job')

        expected = {
            'active': None,
            'succeeded': None,
            'job_number': None,
            'blocked_build_time': None,
            'status_code': 404
        }
        self.assertEqual(status, expected)
Ejemplo n.º 7
0
    def aget_job(self, name):
        self.load()
        url = self.rest.job(name)
        try:
            data = yield from url.api.python.aget()
        except aiohttp.errors.HttpProcessingError as e:
            if 404 == e.code:
                raise UnknownJob()
            raise

        instance = JenkinsJob(data['url'], data['name'], self._instance)
        instance._data = data
        payload = yield from url('config.xml').aget()
        instance._config = payload.data
        return Job.factory(instance)
Ejemplo n.º 8
0
 def update_job(self, jobname, config):
     """
     Update a job
     :param jobname: name of job, str
     :param config: new configuration of job, xml
     :return: updated Job obj
     """
     if self.has_job(jobname):
         if isinstance(config, unicode):
             config = str(config)
         self.requester.post_xml_and_confirm_status('%s/job/%s/config.xml' %
                                                    (self.baseurl, jobname),
                                                    data=config)
         self.poll()
         if (not self.has_job(jobname)
                 and self.jobs[jobname].get_config() != config):
             raise JenkinsAPIException('Cannot update job %s' % jobname)
     else:
         raise UnknownJob(jobname)
     return self[jobname]
Ejemplo n.º 9
0
 def __getitem__(self, job_name):
     if job_name in self:
         return Job(None, job_name, self.jenkins)
     else:
         raise UnknownJob(job_name)