Package: brundeckrun
brundeckrunA(nother) fork of the client library written in Python to interact with the Rundeck API, the majority of
which was created by Mark LaPerriere.The fork exists mostly because the environment Lambda Vector uses it in requires it to be hosted on
pypi, so updates must be pushed quickly. In addition, the requirement to run tests against a live
Rundeck is a no-no.Rundeck (API) version compatibility:Somecalls are under active use/development, primarily:Job imports: API v1+Project archive imports: API v14+All other callsshouldwork correctly as long as they are not deprecated or if Rundeck fail to
correctly implement backwards compatibility.Python versionTarget python version: 2.7
Should work (but not tested aagainst): 3Installationpip install brundeckrunUse>>> from rundeck.client import Rundeck
>>> rd = Rundeck('rundeck.server.com', api_token='SECRET_API_TOKEN')
>>> rd.list_projects()
[{
    'description': None,
    'name': 'TestProject',
    'resources': {'providerURL': 'http://localhost:8000/resources.xml'},
}]
>>> rd.list_jobs('TestProject')
[{'description': 'Hello World!',
  'group': None,
  'id': 'a6e1e0f7-ad32-4b93-ba2c-9387be06a146',
  'name': 'HelloWorld',
  'project': 'TestProject'}]
>>> rd.run_job('a6e1e0f7-ad32-4b93-ba2c-9387be06a146', argString={'from':'brundeckrun'})
{'argstring': '-from brundeckrun',
 'date-started': datetime.datetime(2013, 7, 11, 18, 4, 24),
 'description': 'Plugin[localexec, nodeStep: true]',
 'href': 'http://rundeck.server.com/execution/follow/123',
 'id': '123',
 'job': None,
 'status': 'running',
 'user': 'brundeckrun'}TestsUnit testsUnit tests are performed via tox.To install tox and then run the tests:pip install tox
toxIntegration testsNote:currently the integrations are not up-to-date and are not under continous integration. Soon though...Running the tests requires a running Rundeck server (the Rundeck standalone jar works well) and an
API token for said Rundeck server.You'll have to at least set the API token environment variable ofRUNDECK_API_TOKENbut there
are other environment variables to be aware of. The list is below and can be found at the head of
the tests/__init__.py file. They should be fairly self-explanatory (OK, RUNDECK_PROTOCOL might
not be self-explanatory... use either 'http' or 'https' there)... code-block:: bashRUNDECK_API_TOKEN
RUNDECK_SERVER
RUNDECK_PORT
RUNDECK_PROTOCOLNext clone the repo... code-block:: bashgit clone https://github.com/pmatias/brundeckrun.. note:: activate yourvirtualenv <http://www.virtualenv.org/en/latest/>_Then install the requirements and dev requirements... code-block:: bashpip install -r requirements.txt
pip install -r requirements_dev.txtLastly, execute nose tests... code-block:: bashnosetests.. _requests:http://docs.python-requests.org/.. _Read the Docs:http://brundeckrun.readthedocs.org/Some calls are under active use/development, primarily:Job imports: API v1+Project archive imports: API v14+All other callsshouldwork correctly as long as they are not deprecated or if Rundeck fail to
correctly implement backwards compatibility.Target python version: 2.7
Should work (but not tested aagainst): 3Installationpip install brundeckrunUse>>> from rundeck.client import Rundeck
>>> rd = Rundeck('rundeck.server.com', api_token='SECRET_API_TOKEN')
>>> rd.list_projects()
[{
    'description': None,
    'name': 'TestProject',
    'resources': {'providerURL': 'http://localhost:8000/resources.xml'},
}]
>>> rd.list_jobs('TestProject')
[{'description': 'Hello World!',
  'group': None,
  'id': 'a6e1e0f7-ad32-4b93-ba2c-9387be06a146',
  'name': 'HelloWorld',
  'project': 'TestProject'}]
>>> rd.run_job('a6e1e0f7-ad32-4b93-ba2c-9387be06a146', argString={'from':'brundeckrun'})
{'argstring': '-from brundeckrun',
 'date-started': datetime.datetime(2013, 7, 11, 18, 4, 24),
 'description': 'Plugin[localexec, nodeStep: true]',
 'href': 'http://rundeck.server.com/execution/follow/123',
 'id': '123',
 'job': None,
 'status': 'running',
 'user': 'brundeckrun'}TestsUnit testsUnit tests are performed via tox.To install tox and then run the tests:pip install tox
toxIntegration testsNote:currently the integrations are not up-to-date and are not under continous integration. Soon though...Running the tests requires a running Rundeck server (the Rundeck standalone jar works well) and an
API token for said Rundeck server.You'll have to at least set the API token environment variable ofRUNDECK_API_TOKENbut there
are other environment variables to be aware of. The list is below and can be found at the head of
the tests/__init__.py file. They should be fairly self-explanatory (OK, RUNDECK_PROTOCOL might
not be self-explanatory... use either 'http' or 'https' there)... code-block:: bashRUNDECK_API_TOKEN
RUNDECK_SERVER
RUNDECK_PORT
RUNDECK_PROTOCOLNext clone the repo... code-block:: bashgit clone https://github.com/pmatias/brundeckrun.. note:: activate yourvirtualenv <http://www.virtualenv.org/en/latest/>_Then install the requirements and dev requirements... code-block:: bashpip install -r requirements.txt
pip install -r requirements_dev.txtLastly, execute nose tests... code-block:: bashnosetests.. _requests:http://docs.python-requests.org/.. _Read the Docs:http://brundeckrun.readthedocs.org/