A library and command line interface for cloudscale.ch
Project description
Cloudscale
A cloudscale.ch API client for Python3 and your command line.
Install / Update
pip3 install -U cloudscale --user
export PATH=$PATH:$HOME/.local/bin
cloudscale-cli version
Command Line Interface
Autocompletion
zsh:
eval "$(_CLOUDSCALE_CLI_COMPLETE=source_zsh cloudscale-cli)"
bash:
eval "$(_CLOUDSCALE_CLI_COMPLETE=source cloudscale-cli)"
Authentication
Using the ENV CLOUDSCALE_API_TOKEN
variable:
export CLOUDSCALE_API_TOKEN=<your token>
cloudscale-cli flavor list
or by passing the --api-token
parameter:
cloudscale-cli server --api-token <your_token> create ...
Help
See all options:
$ cloudscale-cli --help
Usage: cloudscale-cli [OPTIONS] COMMAND [ARGS]...
Options:
-h, --help Show this message and exit.
Commands:
version
server
server-group
floating-ip
flavor
image
region
network
Usage Examples
Create a Server
cloudscale-cli server create --flavor flex-2 --name my-server --image centos-7 --ssh-keys "$(cat ~/.ssh/id_rsa.pub)"
List all Servers
cloudscale-cli server list
Get Servers having the tag project=gemini
cloudscale-cli server list --filter-tag project=gemini
Usage in Python
List the slug of all flavors
import os
from cloudscale import Cloudscale, CloudscaleApiException
api_token = os.getenv('CLOUDSCALE_API_TOKEN')
cloudscale = Cloudscale(api_token=api_token)
flavors = cloudscale.flavor.get_all()
for flavor in flavors:
print(flavor['slug'])
Print the server names of running servers
import os
from cloudscale import Cloudscale, CloudscaleApiException
api_token = os.getenv('CLOUDSCALE_API_TOKEN')
cloudscale = Cloudscale(api_token=api_token)
servers = cloudscale.server.get_all()
for server in servers:
if server['status'] == "running":
print(server['name'])
Get resource by UUID
import os
from cloudscale import Cloudscale, CloudscaleApiException
api_token = os.getenv('CLOUDSCALE_API_TOKEN')
try:
cloudscale = Cloudscale(api_token=api_token)
server_group = cloudscale.server_group.get_by_uuid(uuid="5a1e5b28-d354-47a8-bfb2-01b048c20204")
print(server_group['name'])
except CloudscaleApiException as e:
print(e)
Error handling
import os
from cloudscale import Cloudscale, CloudscaleApiException
api_token = os.getenv('CLOUDSCALE_API_TOKEN')
try:
cloudscale = Cloudscale(api_token=api_token)
server = cloudscale.server.get_by_uuid(uuid="does-not-exist")
print(server['name'])
except CloudscaleApiException as e:
# Prints "API Response Error (404): Not found."
print(e)
# Prints "404"
print(e.status_code)
# Prints raw API response
print(e.response)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
cloudscale-0.3.0.tar.gz
(11.2 kB
view hashes)
Built Distribution
cloudscale-0.3.0-py3-none-any.whl
(19.6 kB
view hashes)
Close
Hashes for cloudscale-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d1a34733372bf2b4454d8abcf711188e8f9c125213dbe13ffbe0fe075e0f9c0 |
|
MD5 | a6639448e20dae9de312143103c2b844 |
|
BLAKE2b-256 | cb1c3479fe2a3346ee3a29cf7e340b53d37a4bd18e6dd1eccddbffe75af98e89 |