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)
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)
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)
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)
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)
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)
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)
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]
def __getitem__(self, job_name): if job_name in self: return Job(None, job_name, self.jenkins) else: raise UnknownJob(job_name)