finish runtime

This commit is contained in:
2025-04-15 19:57:11 +08:00
parent 72b2c8d089
commit 0a5f457059
13 changed files with 1097 additions and 45 deletions
+1
View File
@@ -10,6 +10,7 @@ func ListContainers(c *gin.Context) {
container := containers.List()
c.JSON(200, gin.H{
"data": container,
"err": "",
})
}
+36
View File
@@ -0,0 +1,36 @@
package network
import (
"floares/lib/http/network"
"github.com/gin-gonic/gin"
"net/http"
)
func Disconnect(c *gin.Context) {
ns := c.Param("ns")
id := c.Query("id")
err := network.DisConnect(ns, id)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{
"error": err.Error(),
})
return
}
c.JSON(http.StatusOK, gin.H{
"err": "",
})
}
func Connect(c *gin.Context) {
ns := c.Param("ns")
id := c.Query("id")
err := network.Connect(ns, id)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{
"error": err.Error(),
})
return
}
c.JSON(http.StatusOK, gin.H{
"err": "",
})
}
+29 -1
View File
@@ -1,9 +1,12 @@
package network
import (
"floares/lib/http/containers"
"floares/lib/http/network"
"floares/lib/model"
"github.com/gin-gonic/gin"
"net/http"
"time"
)
func ListConnect(c *gin.Context) {
@@ -15,6 +18,31 @@ func ListConnect(c *gin.Context) {
})
}
inspect := network.GetInspect(ns)
c.JSON(http.StatusOK, inspect)
var res model.NetworkInspect
res.Name = inspect.Name
res.Id = inspect.Id
res.Ipam = model.Config{
Subnet: inspect.IPAM.Config[0].Subnet,
Gateway: inspect.IPAM.Config[0].Gateway,
}
res.Containers = make([]model.NetConnect, 0)
res.Driver = inspect.Driver
res.Created = inspect.Created.Format(time.DateTime)
for k, v := range inspect.Containers {
container := containers.InspectContainer(k)
res.Containers = append(res.Containers, model.NetConnect{
Name: v.Name,
Id: k,
Gateway: container.NetworkSettings.Networks[ns].Gateway,
Alias: container.NetworkSettings.Networks[ns].Aliases,
Ip: v.IPv4Address,
Mac: v.MacAddress,
})
}
c.JSON(http.StatusOK, gin.H{
"data": res,
"code": http.StatusOK,
"err": "",
})
}
+4 -1
View File
@@ -4,5 +4,8 @@ import "github.com/gin-gonic/gin"
func RegisterRouter(r *gin.RouterGroup) {
r.GET("/", ListNetwork)
r.GET("/:ns/containers", ListConnect)
r.GET("/:ns/inspect", ListConnect)
r.DELETE("/:ns/disconnect", Disconnect)
r.POST("/:ns/connect", Connect)
}