feat: Redis cluster support + version auto-detect + metrics API

This commit is contained in:
logan committed 2026-05-30 01:44:58 +08:00
1 parent 8384006ae9
commit 3af65f2350
10 files changed
+485 -66

No files matched your search

+9 -8
View File
@@ -20,9 +20,9 @@ func AccessibleInstances(c *gin.Context) {
// admin/dba see all instances, filter by access_mode if needed
query := model.DB.Order("id")
if accessType == "readonly" {
query = query.Where("access_mode IN ?", []string{"readwrite", "readonly"})
query = query.Where("access_mode IN ? OR access_mode IS NULL", []string{"readwrite", "readonly"})
} else {
query = query.Where("access_mode IN ?", []string{"readwrite", "write"})
query = query.Where("access_mode IN ? OR access_mode IS NULL", []string{"readwrite", "write"})
}
query.Find(&instances)
} else {
@@ -117,10 +117,11 @@ func TestNewConnection(c *gin.Context) {
instance.Database = &req.Database
}
success, message := testDBConnection(instance)
if success {
c.JSON(http.StatusOK, gin.H{"success": true, "message": message})
} else {
c.JSON(http.StatusBadRequest, gin.H{"success": false, "message": message})
}
result := testDBConnectionFull(instance)
c.JSON(http.StatusOK, gin.H{
"success": result.Success,
"message": result.Message,
"version": result.Version,
"cluster_mode": result.ClusterMode,
})
}