/libcloud-beget

libcloud driver for beget.com

Primary LanguagePythonThe UnlicenseUnlicense

beget.com libcloud driver

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

NodeDriver

Параметры

Параметр Поддержка
key
secret
secure
host
port
api_version
region

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

Метод Поддержка
create_node #15
deploy_node
destroy_node #19
features
list_nodes #20
reboot_node #21
start_node #21
stop_node #21
wait_until_running

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

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

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

Метод Поддержка
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_locations
list_sizes

Методы Node

Параметры

Параметр Поддержка
id
name
state
public_ips
private_ips
driver
size
image
created_at
extra

Методы

Метод Поддержка
destroy
reboot
start
stop_node

Методы NodeSize

Параметры

Параметр Поддержка
id
name
ram
disk
bandwidth
price
driver
extra

NodeImage

Параметры

Параметр Поддержка
id
name
driver
extra

NodeLocation

Параметры

Параметр Поддержка
id
name
country
driver
extra

NodeAuthSSHKey

Параметры

Параметр Поддержка
pubkey

NodeAuthPassword

Параметры

Параметр Поддержка
password

StorageVolume

Параметры

Параметр Поддержка
id
name
size
driver
state
extra

Методы

Метод Поддержка
attach
destroy
detach
list_snapshots
snapshot

VolumeSnapshot

Параметры

Параметр Поддержка
id
driver
size
extra
created
state
name

Методы

Метод Поддержка
destroy

KeyPair

Параметр Поддержка
name
fingerprint
public_key
private_key
extra

NodeState

Указаны возомжно состояния

Состояние Поддержка
RUNNING

DNS

DNSDriver

Параметры

Параметр Поддержка
key
secret
secure
host
port

Методы

Метод Поддержка Примечание
create_record
create_zone #3
delete_record #7
delete_zone #4
list_records
list_zones #2
iterate_records
iterate_zones
list_record_types
get_record
get_zone #5
update_record
update_zone #6
export_zone_to_bind_format
export_zone_to_bind_zone_file

Zone

Параметры

Параметр Поддержка
id
domain
type
ttl
driver
extra

Record

Параметры

Параметр Поддержка
id
name
type
data
zone
driver
ttl
extra

Разработка

Для запуска тестов настроен 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