Приватные сети разобраны на живом API
Раздел переписан по факту поведения платформы, а не по документации. - номер сети лежит в resource_id, а не id, добавлен vpc_id_of() - список сетей приходит голым массивом - при создании принимается только имя, регион и участники только для чтения - подключение сервера асинхронно и блокирует сервер, добавлен vpc_wait_member() - отключение участника и удаление сети настойчивые, ждут снятия блокировки Добавлен пример private_network.py. Claude-Session: https://claude.ai/code/session_01Loz5stgQZH6ofBdMqTxiJu
Этот коммит содержится в:
+29
-6
@@ -104,20 +104,43 @@ api.delete_snapshot(snap["id"])
|
||||
api.destroy_server(id) # дождётся снятия блокировки
|
||||
```
|
||||
|
||||
## Адреса и сети
|
||||
## Адреса
|
||||
|
||||
```python
|
||||
api.ips(server_id)
|
||||
api.add_ip(server_id, ipv4=1)
|
||||
api.set_ptr("1.2.3.4", "mail.example.com")
|
||||
api.delete_ip("1.2.3.4")
|
||||
|
||||
vpc = api.create_vpc("backoffice", region="openstack-msk1")
|
||||
api.vpc_attach(vpc["id"], server_id)
|
||||
api.vpc_members(vpc["id"])
|
||||
api.vpc_detach(vpc["id"], server_id)
|
||||
```
|
||||
|
||||
## Приватные сети
|
||||
|
||||
Серверы в одной приватной сети видят друг друга напрямую, минуя интернет. Трафик внутри
|
||||
не тарифицируется, а машине-исполнителю можно не выдавать публичный адрес вовсе.
|
||||
|
||||
```python
|
||||
net = api.create_vpc("backoffice") # кроме имени платформа ничего не принимает
|
||||
net_id = RegCloud.vpc_id_of(net) # номер лежит в resource_id, а не в id
|
||||
|
||||
api.vpc_attach(net_id, server_id) # действие асинхронное
|
||||
api.vpc_wait_member(net_id, server_id) # дожидаемся, пока сервер реально войдёт
|
||||
|
||||
api.vpc_members(net_id) # список номеров серверов
|
||||
api.rename_vpc(net_id, "новое имя")
|
||||
|
||||
api.vpc_detach(net_id, server_id)
|
||||
api.delete_vpc(net_id)
|
||||
```
|
||||
|
||||
Что выяснено на живом API и чего нет в документации.
|
||||
|
||||
Номер сети лежит в поле `resource_id`, а не `id`. Список сетей приходит голым массивом,
|
||||
без обёртки. При создании принимается только имя, а регион, участники и `resource_id`
|
||||
объявлены только для чтения и проставляются платформой. Подключение сервера к сети
|
||||
асинхронно, и пока оно не доиграет, сервер заблокирован, из-за чего не выйдет ни отключить
|
||||
его, ни удалить сеть. Поэтому `vpc_detach()` и `delete_vpc()` тут настойчивые, повторяют
|
||||
попытки, пока блокировка не снимется.
|
||||
|
||||
## Деньги
|
||||
|
||||
```python
|
||||
|
||||
Ссылка в новой задаче
Block a user