remove debug string methods,

simplify PCI devices
This commit is contained in:
2025-02-11 07:11:05 +00:00
parent e65dda0327
commit 4b979448a4
6 changed files with 124 additions and 215 deletions

View File

@@ -5,12 +5,14 @@ import (
"flag"
"fmt"
"log"
"time"
"net/http"
"strconv"
"github.com/gin-gonic/gin"
"github.com/luthermonson/go-proxmox"
)
const APIVersion string = "0.0.1"
const APIVersion string = "0.0.2"
var client ProxmoxClient
@@ -26,36 +28,55 @@ func Run() {
token := fmt.Sprintf(`%s@%s!%s`, config.PVE.Token.USER, config.PVE.Token.REALM, config.PVE.Token.ID)
client = NewClient(token, config.PVE.Token.Secret)
//router := gin.Default()
router := gin.Default()
start := time.Now()
cluster := Cluster{}
cluster.Init(client)
cluster.Rebuild()
elapsed := time.Since(start)
fmt.Println(cluster)
fmt.Println(elapsed)
router.GET("/version", func(c *gin.Context) {
PVEVersion, err := client.Version()
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
} else {
c.JSON(http.StatusOK, gin.H{"api-version": APIVersion, "pve-version": PVEVersion})
}
})
/*
router.GET("/version", func(c *gin.Context) {
PVEVersion, err := client.Version()
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
router.GET("/nodes/:node", func(c *gin.Context) {
node := c.Param("node")
Host, ok := cluster.Hosts[node]
if !ok {
c.JSON(http.StatusInternalServerError, gin.H{"error": fmt.Sprintf("%s not found in cluster", node)})
return
} else {
c.JSON(http.StatusOK, gin.H{"node": Host})
return
}
})
router.GET("/nodes/:node/instances/:instance", func(c *gin.Context) {
host := c.Param("node")
vmid, err := strconv.ParseUint(c.Param("instance"), 10, 64)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": fmt.Sprintf("%s could not be converted to vmid (uint)", c.Param("instance"))})
return
}
Node, ok := cluster.Hosts[host]
if !ok {
c.JSON(http.StatusInternalServerError, gin.H{"error": fmt.Sprintf("vmid %s not found in cluster", host)})
return
} else {
Instance, ok := Node.Instances[uint(vmid)]
if !ok {
c.JSON(http.StatusInternalServerError, gin.H{"error": fmt.Sprintf("%d not found in %s", vmid, host)})
return
} else {
c.JSON(http.StatusOK, gin.H{"api-version": APIVersion, "pve-version": PVEVersion})
c.JSON(http.StatusOK, gin.H{"instance": Instance})
return
}
})
}
})
router.GET("/nodes/:node", func(c *gin.Context) {
Node, err := client.Node(c.Param("node"))
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
} else {
c.JSON(http.StatusOK, gin.H{"node": Node})
}
})
router.Run("0.0.0.0:" + strconv.Itoa(config.ListenPort))
*/
router.Run("0.0.0.0:" + strconv.Itoa(config.ListenPort))
}