A client library written in Python to interact with the Rundeck API. It uses the awesome requests library.
Documentation is hosted on Read the Docs
DISCLAIMER: Still in active development, but most features have been tested and should work. Should work on at least Python 2.7 and Python 3.3.
$ pip install rundeckrun
>>> 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':'RundeckRun'})
{'argstring': '-from RundeckRun',
'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': 'rundeckrun'}
Note
You'll probably want to create a virtualenv for this.
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 of RUNDECK_API_TOKEN
but 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).
RUNDECK_API_TOKEN
RUNDECK_SERVER
RUNDECK_PORT
RUNDECK_PROTOCOL
Next clone the repo.
git clone https://github.com/marklap/rundeckrun
Note
activate your virtualenv
Then install the requirements and dev requirements.
pip install -r requirements.txt
pip install -r requirements_dev.txt
Lastly, execute nose tests.
nosetests