49 lines
1.1 KiB
Go
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": "",
|
|
})
|
|
|
|
}
|