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 [rancher/rancher](//github.com/rancher/rancher/issues) with a title starting with `[cattle-cli] `.

Or just [click here](//github.com/rancher/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.4.tar.gz (3.4 kB view details)

Uploaded Source

File details

Details for the file cattle-0.5.4.tar.gz.

File metadata

  • Download URL: cattle-0.5.4.tar.gz
  • Upload date:
  • Size: 3.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for cattle-0.5.4.tar.gz
Algorithm Hash digest
SHA256 6ae8b377d9a70a4351598b84854785ee5f4cb4b1a29abf5c33454bb58de2470e
MD5 483ae05f45d70de898b76660a5c32797
BLAKE2b-256 17fd65395f2f114faae4ca287236b84846bdc325a18ea0acd2e14b99d0cda709

See more details on using hashes here.

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