Add server links management and timeout guard for VM/container discovery
This commit is contained in:
18
app/app.py
18
app/app.py
@@ -42,6 +42,7 @@ class Server(db.Model):
|
||||
last_collected = db.Column(db.DateTime, nullable=True)
|
||||
details = db.Column(db.JSON, nullable=True)
|
||||
notes = db.Column(db.Text, default='')
|
||||
links = db.Column(db.JSON, default=list) # [{"label": "...", "url": "..."}]
|
||||
parent_hostname = db.Column(db.String(255), default='')
|
||||
__table_args__ = (db.UniqueConstraint('username', 'hostname', name='uq_user_host'),)
|
||||
|
||||
@@ -319,6 +320,11 @@ def index():
|
||||
return render_template('index.html', groups=groups, children_map=children_map, build_date=BUILD_DATE)
|
||||
|
||||
|
||||
@app.route('/api/version')
|
||||
def api_version():
|
||||
return jsonify({'build_date': BUILD_DATE})
|
||||
|
||||
|
||||
@app.route('/api/servers')
|
||||
def api_servers():
|
||||
servers = Server.query.all()
|
||||
@@ -334,6 +340,7 @@ def api_servers():
|
||||
'is_online': s.is_online,
|
||||
'last_collected': s.last_collected.isoformat() if s.last_collected else None,
|
||||
'notes': s.notes,
|
||||
'links': s.links or [],
|
||||
'parent_hostname': s.parent_hostname,
|
||||
'details': s.details,
|
||||
})
|
||||
@@ -497,6 +504,16 @@ def api_update_notes(server_id):
|
||||
return jsonify({'ok': True})
|
||||
|
||||
|
||||
@app.route('/api/servers/<int:server_id>/links', methods=['PUT'])
|
||||
def api_update_links(server_id):
|
||||
from flask import request
|
||||
server = Server.query.get_or_404(server_id)
|
||||
data = request.get_json()
|
||||
server.links = data.get('links', [])
|
||||
db.session.commit()
|
||||
return jsonify({'ok': True})
|
||||
|
||||
|
||||
def _ip_sort_key(ip_str):
|
||||
if not ip_str:
|
||||
return [999, 999, 999, 999]
|
||||
@@ -646,6 +663,7 @@ def migrate_db():
|
||||
'url': "ALTER TABLE servers ADD COLUMN url VARCHAR(1024) DEFAULT ''",
|
||||
'notes': "ALTER TABLE servers ADD COLUMN notes TEXT DEFAULT ''",
|
||||
'parent_hostname': "ALTER TABLE servers ADD COLUMN parent_hostname VARCHAR(255) DEFAULT ''",
|
||||
'links': "ALTER TABLE servers ADD COLUMN links JSON DEFAULT '[]'",
|
||||
}
|
||||
for col, sql in migrations.items():
|
||||
if col not in existing:
|
||||
|
||||
Reference in New Issue
Block a user