GitHub Action
commited on
Commit
·
64dc4f8
1
Parent(s):
ff4bc35
Sync from GitHub with Git LFS
Browse files- agents/tools/storage.py +18 -0
agents/tools/storage.py
CHANGED
|
@@ -883,6 +883,24 @@ class Storage:
|
|
| 883 |
# Работа с пирам (agent_peers)
|
| 884 |
def add_or_update_peer(self, peer_id, name, addresses, source="discovery", status="unknown"):
|
| 885 |
c = self.conn.cursor()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 886 |
c.execute("""
|
| 887 |
INSERT INTO agent_peers (id, name, addresses, source, status, last_seen)
|
| 888 |
VALUES (?, ?, ?, ?, ?, ?)
|
|
|
|
| 883 |
# Работа с пирам (agent_peers)
|
| 884 |
def add_or_update_peer(self, peer_id, name, addresses, source="discovery", status="unknown"):
|
| 885 |
c = self.conn.cursor()
|
| 886 |
+
|
| 887 |
+
# ищем существующий peer по любому совпадающему адресу
|
| 888 |
+
c.execute("SELECT id, addresses FROM agent_peers")
|
| 889 |
+
rows = c.fetchall()
|
| 890 |
+
existing_id = None
|
| 891 |
+
for row in rows:
|
| 892 |
+
db_id, db_addresses_json = row
|
| 893 |
+
try:
|
| 894 |
+
db_addresses = json.loads(db_addresses_json)
|
| 895 |
+
except Exception:
|
| 896 |
+
db_addresses = []
|
| 897 |
+
if any(addr in db_addresses for addr in addresses):
|
| 898 |
+
existing_id = db_id
|
| 899 |
+
break
|
| 900 |
+
|
| 901 |
+
if existing_id:
|
| 902 |
+
peer_id = existing_id # используем существующий ID
|
| 903 |
+
|
| 904 |
c.execute("""
|
| 905 |
INSERT INTO agent_peers (id, name, addresses, source, status, last_seen)
|
| 906 |
VALUES (?, ?, ?, ?, ?, ?)
|