Files
tf_provider/check_ops.py
T
2026-06-30 15:46:41 +04:00

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]}")