package network import ( "bytes" "encoding/json" "floares/config" "io" "log" "net/http" "time" ) type CreatNet struct { Name string `json:"name,omitzero"` Id string `json:"id,omitzero"` Driver string `json:"driver,omitzero"` NetworkInterface string `json:"network_interface,omitzero"` Created time.Time `json:"created,omitzero"` Subnets []SubNet `json:"subnets,omitzero"` Ipv6Enabled bool `json:"ipv6_enabled,omitzero"` Internal bool `json:"internal,omitzero"` DnsEnabled bool `json:"dns_enabled,omitzero"` IpamOptions struct { Driver string `json:"driver,omitzero"` } `json:"ipam_options,omitzero"` } type SubNet struct { Subnet string `json:"subnet"` Gateway string `json:"gateway"` } func MakerNet(name string, id []string) (err error) { var create CreatNet create.DnsEnabled = true create.Driver = "bridge" create.Name = name b, _ := json.Marshal(&create) log.Println(string(b)) req, _ := http.NewRequest(http.MethodPost, config.Entrypoint+"/v4.0.0/libpod/networks/create", bytes.NewReader(b)) res, err := http.DefaultClient.Do(req) if err != nil { log.Println("request for network list error:", err) return } if res.StatusCode != 200 { str, _ := io.ReadAll(res.Body) log.Println(string(str)) } log.Println(id) var c ConnectInfo for _, v := range id { c.ContainerID = v b, _ = json.Marshal(&c) req, _ = http.NewRequest(http.MethodPost, config.Entrypoint+"/v4.0.0/libpod/networks/"+name+"/connect", bytes.NewReader(b)) _, err = http.DefaultClient.Do(req) if err != nil { log.Println(err) return err } } return }