58 lines
2.9 KiB
Python
58 lines
2.9 KiB
Python
#!/usr/bin/env python3
|
|
# Проверка операций на инстансе pg-test-02 (710C1C21)
|
|
import json, urllib.request
|
|
|
|
TFVARS = "/home/naeel/terra/sless/examples/PG_TEST/terraform.tfvars"
|
|
INSTANCE_UID = "710C1C21-B9E8-4973-8DE4-EAA796ADDA00"
|
|
API = "https://deck-api-test.ngcloud.ru/api/v1/index.cfm"
|
|
|
|
# Читаем токен из tfvars
|
|
token = ""
|
|
for line in open(TFVARS):
|
|
if "api_token" in line:
|
|
token = line.split('"')[1]
|
|
break
|
|
|
|
def get(path):
|
|
req = urllib.request.Request(f"{API}{path}", headers={"Authorization": f"Bearer {token}"})
|
|
return json.loads(urllib.request.urlopen(req, timeout=10).read())
|
|
|
|
# Операции на инстансе
|
|
print("=== Операции на инстансе ===")
|
|
ops = get(f"/instanceOperations?instanceUid={INSTANCE_UID}")
|
|
items = ops if isinstance(ops, list) else ops.get("data", [])
|
|
for i in items[:10]:
|
|
print(f" uid={i.get('uid')} op={i.get('svcOperation')} status={i.get('status')} created={i.get('createdAt')}")
|
|
|
|
# Статус инстанса
|
|
print("\n=== Статус инстанса ===")
|
|
inst = get(f"/instances/{INSTANCE_UID}")
|
|
print(f" name={inst.get('name') or inst.get('displayName')} state={inst.get('state') or inst.get('instanceState')} status={inst.get('status') or inst.get('instanceStatus')}")
|
|
# Все ключи инстанса для диагностики
|
|
print(" DEBUG keys:", list(inst.keys())[:15])
|
|
|
|
# Поиск по имени через search API (как делает провайдер)
|
|
print("\n=== Поиск pg-test-02 через search API ===")
|
|
search_res = get("/instances?fields=instanceUid,displayName,serviceId&page=1&pageSize=100&search=pg-test-02&isAuxiliary=false&isDeleted=false")
|
|
results = search_res if isinstance(search_res, list) else search_res.get("results", search_res.get("data", []))
|
|
for i in results:
|
|
uid = i.get("instanceUid") or i.get("uid")
|
|
print(f" uid={uid} name={i.get('displayName') or i.get('name')} svcId={i.get('serviceId')} state={i.get('state')}")
|
|
|
|
# Пагинированный список всех инстансов (первая страница)
|
|
print("\n=== Все инстансы (страница 1, size=100) ===")
|
|
all_inst = get("/instances?page=1&size=100")
|
|
all_items = all_inst if isinstance(all_inst, list) else all_inst.get("data", all_inst.get("results", []))
|
|
pg_found = 0
|
|
for i in all_items:
|
|
name = i.get("displayName") or i.get("name") or ""
|
|
if "pg-test" in name.lower():
|
|
uid = i.get("instanceUid") or i.get("uid")
|
|
print(f" uid={uid} name={name} state={i.get('state')} status={i.get('status')}")
|
|
pg_found += 1
|
|
if pg_found == 0:
|
|
print(f" pg-test инстансов не найдено (всего в ответе: {len(all_items)} записей)")
|
|
# Печатаем первые 3 для отладки структуры
|
|
for i in all_items[:3]:
|
|
print(f" DEBUG: keys={list(i.keys())[:8]}")
|