mirror of
https://github.com/moby/moby.git
synced 2026-01-11 10:41:43 +00:00
And generate the ServiceInfo struct from the Swagger spec. Signed-off-by: Cory Snider <csnider@mirantis.com>
33 lines
776 B
Go
33 lines
776 B
Go
package container
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
|
|
"github.com/moby/moby/api/types/network"
|
|
"github.com/moby/moby/v2/daemon/internal/netiputil"
|
|
"github.com/moby/swarmkit/v2/api"
|
|
)
|
|
|
|
func ipamConfig(ic *api.IPAMConfig) (network.IPAMConfig, error) {
|
|
var (
|
|
cfg network.IPAMConfig
|
|
errs []error
|
|
err error
|
|
)
|
|
cfg.Subnet, err = netiputil.MaybeParseCIDR(ic.Subnet)
|
|
if err != nil {
|
|
errs = append(errs, fmt.Errorf("invalid subnet: %w", err))
|
|
}
|
|
cfg.IPRange, err = netiputil.MaybeParseCIDR(ic.Range)
|
|
if err != nil {
|
|
errs = append(errs, fmt.Errorf("invalid ip range: %w", err))
|
|
}
|
|
gw, err := netiputil.MaybeParseAddr(ic.Gateway)
|
|
cfg.Gateway = gw.Unmap()
|
|
if err != nil {
|
|
errs = append(errs, fmt.Errorf("invalid gateway: %w", err))
|
|
}
|
|
return cfg, errors.Join(errs...)
|
|
}
|