vscaledriver

Libcloud driver for vds.selectel.ru (vscale.io)


Keywords
libcloud
License
Unlicense
Install
pip install vscaledriver==0.9.0

Documentation

libcloud драйвер для сервиса vscale.io.

Поддерживаемые методы Compute

Управление нодами

Метод Поддержка
create_node #7
deploy_node
destroy_node #8
features
list_nodes ✔️
reboot_node #17
start_node #11
stop_node #11
wait_until_running

Управление образами

Метод Поддержка
copy_image
create_image
delete_image
get_image
list_images ✔️

Управление дисками

Метод Поддержка
attach_volume
create_volume_snapshot
create_volume
destroy_volume_snapshot
destroy_volume
detach_volume
list_volume_snapshots
list_volumes

Управление SSH ключами

Метод Поддержка
create_key_pair ✔️
delete_key_pair ✔️
get_key_pair ✔️
import_key_pair_from_file
import_key_pair_from_string
list_key_pairs ✔️

Остальные

Метод Поддержка
list_images #4
list_locations ✔️
list_sizes #6

Методы DNS

Метод Поддержка Примечание
create record ✔️
create zone ✔️
delete record ✔️
delete zone ✔️
list records ✔️
list zones ✔️
list_record_types ✔️ 1
get_record ✔️
get_zone ✔️
update record ✔️
update zone ✔️
export_zone_to_bind_format
export_zone_to_bind_zone_file
  1. Поддерживаемые типы получены из документации, в описании метода Domains_Records - Создать ресурсную запись для домена.. Возможно поддерживаются и другие типы записей.

Документация к API

https://developers.vscale.io/documentation/api/v1/

Разработка

Для запуска тестов настроен tox. Для проверки коммитов настроен pre-commit.

Так же в проекте настроена автоматический запуск tox в GitHub Actions.

Тесты

Тесты запускаются через tox, внутри используется pytest.

Для создания фикстур нужен установленный ключ окружения DRIVER_TOKEN с API ключём.

Линтеры и форматтеры

Для запуска линтеров необходимо установить pre-commit. Линтеры запускаются командой $ pre-commit run -a.

Настройка pre-commit

Github Actions запускаются в stage: commit, поэтому в .pre-commit-config.yaml проверка id: no-commit-to-branch установлена в stage: push. Что бы проверка запускалась локально и не срабатывала в CI. Локально надо установить pre-commit хуки на пуши и на коммиты следующей командой:

$ pre-commit install --hook-type pre-commit --hook-type pre-push