flores/service/network/inspect.go
2025-04-15 19:57:11 +08:00

49 lines
1.1 KiB
Go

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) {
ns := c.Param("ns")
if ns == "" {
c.JSON(http.StatusBadRequest, gin.H{
"code": http.StatusBadRequest,
"msg": "namespace is required",
})
}
inspect := network.GetInspect(ns)
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": "",
})
}