(port composetypes.ServicePortConfig)
| 204 | } |
| 205 | |
| 206 | func expandPublishedPortRange(port composetypes.ServicePortConfig) ([]composetypes.ServicePortConfig, error) { |
| 207 | if !strings.Contains(port.Published, "-") { |
| 208 | return []composetypes.ServicePortConfig{port}, nil |
| 209 | } |
| 210 | |
| 211 | publishedRange := strings.Split(port.Published, "-") |
| 212 | if len(publishedRange) > 2 { |
| 213 | return nil, fmt.Errorf("invalid port range") |
| 214 | } |
| 215 | |
| 216 | begin, err := strconv.Atoi(publishedRange[0]) |
| 217 | if err != nil { |
| 218 | return nil, fmt.Errorf("invalid port range %s: beginning value must be numeric", port.Published) |
| 219 | } |
| 220 | |
| 221 | end, err := strconv.Atoi(publishedRange[1]) |
| 222 | if err != nil { |
| 223 | return nil, fmt.Errorf("invalid port range %s: end value must be numeric", port.Published) |
| 224 | } |
| 225 | |
| 226 | var portConfigs []composetypes.ServicePortConfig |
| 227 | for i := begin; i <= end; i++ { |
| 228 | portConfigs = append(portConfigs, composetypes.ServicePortConfig{ |
| 229 | HostIP: port.HostIP, |
| 230 | Protocol: port.Protocol, |
| 231 | Target: port.Target, |
| 232 | Published: strconv.Itoa(i), |
| 233 | Mode: "ingress", |
| 234 | }) |
| 235 | } |
| 236 | |
| 237 | return portConfigs, nil |
| 238 | } |
no test coverage detected