Unofficial Yandex.Cloud REST API Client
Project description
Unofficial Yandex.Cloud REST API Client
PRE-ALPHA VERSION
Probably, this REST API Client will make your life with Yandex.Cloud a little easier.
Installing
- Installing from pypi:
pip3 install yandex-cloud-client
- Also, you can install from source with:
git clone https://github.com/akimrx/python-yc-client --recursive
cd python-yc-client
make install
or
git clone https://github.com/akimrx/python-yc-client --recursive
cd python-yc-client
python3 setup.py install
Getting started
Client and authorization
The first step is to import required client of the Yandex.Cloud Services.
Each client of a Yandex.Cloud service inherits authorization from the base client, which supports three methods:
from yandex_cloud_client import ComputeClient
client = ComputeClient(oauth_token='YOUR_OAUTH_TOKEN')
from yandex_cloud_client import ComputeClient
client = ComputeClient(iam_token='YOUR_IAM_TOKEN')
import json
from yandex_cloud_client import ComputeClient
with open('/path/to/key.json', 'r') as infile:
credentials = json.load(infile)
client = ComputeClient(service_account_key=credentials)
You can get key.json from Yandex Cloud CLI
yc iam key create --service-account-name my-robot -o my-robot-key.json
Basic example for Instance from Compute Cloud Service
from yandex_cloud_client import ComputeClient
compute = ComputeClient(oauth_token='YOUR_OAUTH_TOKEN')
def show_instance_and_restart(instance_id):
instance = compute.instance(instance_id, metadata=True)
print('Name:', instance.name)
print('Cores:', instance.resources.cores)
print('Memory:', instance.resources.memory)
print('SSH-keys:', instance.metadata.ssh_keys)
if instance.running:
operation = instance.restart()
if operation.completed:
print(f'Instance {instance.name} restarted!')
print('Current instance state:', instance.status)
def boot_disk_snapshot(instance_id):
instance = compute.instance(instance_id)
if not instance.stopped: # also, you can use instance.status != 'STOPPED'
print('Stopping instance..')
instance.stop()
print('Creating snapshot for boot disk..')
instance.boot_disk.create_snapshot()
print('Starting instance without awaiting complete.')
instance.start(await_complete=False)
if __name__ == '__main__':
show_instance_and_restart('YOUR_INSTANCE_ID')
boot_disk_snapshot('YOUR_INSTANCE_ID')
Logging
This library uses the logging
module.
Example of usage:
import logging
logging.basicConfig(level=logging.INFO,
format='[%(levelname)s] %(message)s')
logger = logging.getLogger(__name__)
Borrowed arch design
The client was written under the inspiration of architecture design:
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
yandex-cloud-client-1.0.1.tar.gz
(22.1 kB
view hashes)
Built Distribution
Close
Hashes for yandex-cloud-client-1.0.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | f21013eea2c5458c3a2e3e03e53f4368d69df600058f1a7bf02748c559ae0241 |
|
MD5 | 9cc2656f6d90737f80dc739ecace3a6a |
|
BLAKE2b-256 | f836be690bd9028abe748cea74d7b35cc0559eb61e670d313df4bac7d9ea4486 |
Close
Hashes for yandex_cloud_client-1.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1775d0aeb66ee3a438c8ff48fa4c40ab52152fadd388459bf605226e5bb58611 |
|
MD5 | 8ddd6301c2965c6e18b1c29b2cb79f8d |
|
BLAKE2b-256 | 8f3150c8c00ed772078eadd2c13fce8c3fb3b14c1435ee1ec0697ea2e7c3648c |