Skip to main content

Python API and CLI for Cattle

Project description

# Cattle Python API and Client

A Python client for Cattle

## Installing

pip install cattle

## Running as command line client

```bash
export CATTLE_URL=http://localhost:8080/v1

cattle --help

# curl -s http://localhost:8080/v1/widgets?foo=bar
cattle list-widget --foo=bar

# curl -s -X POST http://localhost:8080/v1/widgets -H 'Content-Type: application/json' -d '{ "foo" : "bar" }'
cattle create-widget --foo=bar

# curl -s -X PUT http://localhost:8080/v1/widgets/42 -H 'Content-Type: application/json' -d '{ "foo" : "bar" }'
cattle update-widget --id=42 --foo=bar

# curl -s -X DELETE http://localhost:8080/v1/widgets/42
cattle delete-widget --id=42
```

### Environment variables

|Name | Description | Example |
|-----------------|----------------|-----------------------------------------|
|CATTLE_URL | URL of the API | http://localhost:8080/v1 |
|CATTLE_ACCESS_KEY | Access Key | 4C27AB31828A4E469C09 |
|CATTLE_SECRET_KEY | Secrey Key | fDxEzyxdFMWbmugstPpzykj2qA84Tn9DPDiAc3Sb|

The above environment variables can be passed as arguments on the command line such as `--url`, `--access-key`, and `--secret-key`.

### Bash Autocompletion

Add the below to your `.bashrc` or similar profile script:
```
eval "$(register-python-argcomplete cattle)"
```

## Using API

```python

import cattle

client = cattle.Client(url='http://localhost:8080/v1',
access_key='4C27AB31828A4E469C09',
secret_key='fDxEzyxdFMWbmugstPpzykj2qA84Tn9DPDiAc3Sb')

# curl -s http://localhost:8080/v1/widgets?foo=bar
client.list_widget(foo='bar')

# curl -s -X POST http://localhost:8080/v1/widgets -H 'Content-Type: application/json' -d '{ "foo" : "bar" }'
client.create_widget(foo='bar')

# curl -s -X PUT http://localhost:8080/v1/widgets/42 -H 'Content-Type: application/json' -d '{ "foo" : "bar" }'
widget = client.by_id_widget('42')
client.update(widget, foo='bar')

# curl -s -X DELETE http://localhost:8080/v1/widgets/42
widget = client.by_id_widget('42')
client.delete(widget)

# Links
# curl -s -X DELETE http://localhost:8080/v1/widgets/42/foobars
widget = client.by_id_widget('42')
widget.foobars()
```

## Contact
For bugs, questions, comments, corrections, suggestions, etc., open an issue in [rancherio/rancher](//github.com/rancherio/rancher/issues) with a title starting with `[cattle-cli] `.

Or just [click here](//github.com/rancherio/rancher/issues/new?title=%5Bcattle-cli%5D%20) to create a new issue.


## Release Process

First, be ibuildthecloud, because he owns the PyPi account. Then create a file `${HOME}/.pypirc`

```
[distutils]
index-servers = pypi

[pypi]
repository: https://pypi.python.org/pypi
username: ibuildthecloud
password: *************
```

Then run `python setup.py sdist upload`


## License

MIT Style

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cattle-0.5.1.tar.gz (3.3 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page