Jan Hruban 1946ed303b Do not require requests-kerberos for tests
The test for kerberos was dropped in
34cca0c4d939b0b681d34cf204ae0be53e46069e, as it was not needed for the
simpler implementation with requests. Let's drop the requests-kerberos
from test dependencies as well, as it has only caused troubles in other
tests - at least for me.

One had to set jenkins.requests_kerberos to None, as was done in the
tests.base.JenkinsTestBase. In places where it was not set to None, the
jenkins.Jenkins.jenkins_open tried the kerberos authentication in
addition to anonymous authentication on the /api/json endpoint.

This was the case for
  tests.test_jenkins_sockets.JenkinsRequestTimeoutTests.test_jenkins_open_timeout
where it has resulted in a different exception than was expected:

  Traceback (most recent call last):
    File "tests/test_jenkins_sockets.py", line 31, in test_jenkins_open_timeout
      j.jenkins_open(request, add_crumb=False)
    File "jenkins/__init__.py", line 533, in jenkins_open
      return self.jenkins_request(req, add_crumb, resolve_auth).text
    File "jenkins/__init__.py", line 547, in jenkins_request
      self._maybe_add_auth()
    File "jenkins/__init__.py", line 384, in _maybe_add_auth
      % '\n'.join(failures))
  jenkins.JenkinsException: Unable to authenticate with any scheme:
  auth(kerberos) Error in request: HTTPConnectionPool(host='127.0.0.1', port=33921): Read timed out. (read timeout=0.1)
  auth(anonymous) Error in request: HTTPConnectionPool(host='127.0.0.1', port=33921): Read timed out. (read timeout=0.1)

Change-Id: I45cbb3a666ee6a9ecbe628ca8b7f0b07dcfcb0eb
2018-05-11 22:24:36 +02:00
2018-04-17 10:27:59 +02:00
2016-12-20 22:17:24 +01:00
2018-04-04 23:25:21 +01:00
2015-10-17 22:37:18 +00:00
2018-04-04 23:25:21 +01:00
2018-04-11 16:56:05 +01:00
2011-06-30 17:54:54 +01:00
2014-08-22 11:29:08 -05:00
2018-04-21 08:40:51 +08:00
2018-02-12 11:16:54 +00:00
2017-03-10 17:52:14 +08:00

README

Python Jenkins is a python wrapper for the Jenkins REST API which aims to provide a more conventionally pythonic way of controlling a Jenkins server. It provides a higher-level API containing a number of convenience functions.

We like to use python-jenkins to automate our Jenkins servers. Here are some of the things you can use it for:

  • Create new jobs
  • Copy existing jobs
  • Delete jobs
  • Update jobs
  • Get a job's build information
  • Get Jenkins master version information
  • Get Jenkins plugin information
  • Start a build on a job
  • Create nodes
  • Enable/Disable nodes
  • Get information on nodes
  • Create/delete/reconfig views
  • Put server in shutdown mode (quiet down)
  • List running builds
  • Delete builds
  • Wipeout job workspace
  • Create/delete/update folders1
  • Set the next build number2
  • Install plugins
  • and many more..

To install:

$ sudo python setup.py install

Online documentation:

Developers

Bug report:

Repository:

Cloning:

Patches are submitted via Gerrit at:

Please do not submit GitHub pull requests, they will be automatically closed.

More details on how you can contribute is available on our wiki at:

Writing a patch

We ask that all code submissions be flake8 clean. The easiest way to do that is to run tox before submitting code for review in Gerrit. It will run flake8 in the same manner as the automated test suite that will run on proposed patchsets.

Installing without setup.py

Then install the required python packages using pip:

$ sudo pip install python-jenkins

Footnotes


  1. The free Cloudbees Folders Plugin provides support for a subset of the full folders functionality. For the complete capabilities you will need the paid for version of the plugin.↩︎

  2. The Next Build Number Plugin provides support for setting the next build number.↩︎

Description
Python API for managing jobs and nodes in a Jenkins CI instance
Readme 3.7 MiB
Languages
Python 100%