"""Трекер созданных инстансов — только те что породило приложение.""" import json import os import threading _LOCK = threading.Lock() _PATH = "/tmp/instances.json" _INITIAL = { "884356cf-5212-4395-b56b-27c58a5fc1fa": {"svcId": 1, "displayName": "autotest-1-first", "instanceUid": "884356cf-5212-4395-b56b-27c58a5fc1fa"}, "6528854d-a4ea-428c-9fa4-68e85fa9b3ac": {"svcId": 1, "displayName": "curl-test-144834", "instanceUid": "6528854d-a4ea-428c-9fa4-68e85fa9b3ac"}, "fdcb5887-39f7-4ef8-a9c0-d55e434a55ff": {"svcId": 1, "displayName": "curl-final-test", "instanceUid": "fdcb5887-39f7-4ef8-a9c0-d55e434a55ff"}, } def _load(): try: with open(_PATH) as f: return json.load(f) except (FileNotFoundError, json.JSONDecodeError): data = dict(_INITIAL) _save(data) return data def _save(data): with open(_PATH, "w") as f: json.dump(data, f, indent=2) def add(instance_uid, svc_id, display_name): with _LOCK: data = _load() data[instance_uid] = { "svcId": svc_id, "displayName": display_name, "instanceUid": instance_uid, } _save(data) def remove(instance_uid): with _LOCK: data = _load() data.pop(instance_uid, None) _save(data) def list_all(): with _LOCK: return list(_load().values())