(itemPorts []container.Port)
| 2134 | return len(composeMap) |
| 2135 | } |
| 2136 | func loadContainerPortForInfo(itemPorts []container.Port) []dto.PortHelper { |
| 2137 | var exposedPorts []dto.PortHelper |
| 2138 | samePortMap := make(map[string]dto.PortHelper) |
| 2139 | ports := transPortToStr(itemPorts) |
| 2140 | for _, item := range ports { |
| 2141 | itemStr := strings.Split(item, "->") |
| 2142 | if len(itemStr) < 2 { |
| 2143 | continue |
| 2144 | } |
| 2145 | var itemPort dto.PortHelper |
| 2146 | lastIndex := strings.LastIndex(itemStr[0], ":") |
| 2147 | if lastIndex == -1 { |
| 2148 | itemPort.HostPort = itemStr[0] |
| 2149 | } else { |
| 2150 | itemPort.HostIP = itemStr[0][0:lastIndex] |
| 2151 | itemPort.HostPort = itemStr[0][lastIndex+1:] |
| 2152 | } |
| 2153 | itemContainer := strings.Split(itemStr[1], "/") |
| 2154 | if len(itemContainer) != 2 { |
| 2155 | continue |
| 2156 | } |
| 2157 | itemPort.ContainerPort = itemContainer[0] |
| 2158 | itemPort.Protocol = itemContainer[1] |
| 2159 | keyItem := fmt.Sprintf("%s->%s/%s", itemPort.HostPort, itemPort.ContainerPort, itemPort.Protocol) |
| 2160 | if val, ok := samePortMap[keyItem]; ok { |
| 2161 | val.HostIP = "" |
| 2162 | samePortMap[keyItem] = val |
| 2163 | } else { |
| 2164 | samePortMap[keyItem] = itemPort |
| 2165 | } |
| 2166 | } |
| 2167 | for _, val := range samePortMap { |
| 2168 | exposedPorts = append(exposedPorts, val) |
| 2169 | } |
| 2170 | return exposedPorts |
| 2171 | } |
| 2172 | |
| 2173 | func searchWithFilter(req dto.PageContainer, containers []container.Summary) []dto.ContainerInfo { |
| 2174 | var ( |
no test coverage detected