MCPcopy
hub / github.com/docker/compose / parseIPAMPool

Function parseIPAMPool

pkg/compose/create.go:1710–1753  ·  view source on GitHub ↗
(pool *types.IPAMPool)

Source from the content-addressed store, hash-verified

1708}
1709
1710func parseIPAMPool(pool *types.IPAMPool) (network.IPAMConfig, error) {
1711 var (
1712 err error
1713 subNet netip.Prefix
1714 ipRange netip.Prefix
1715 gateway netip.Addr
1716 auxAddress map[string]netip.Addr
1717 )
1718 if pool.Subnet != "" {
1719 subNet, err = netip.ParsePrefix(pool.Subnet)
1720 if err != nil {
1721 return network.IPAMConfig{}, fmt.Errorf("invalid subnet: %w", err)
1722 }
1723 }
1724 if pool.IPRange != "" {
1725 ipRange, err = netip.ParsePrefix(pool.IPRange)
1726 if err != nil {
1727 return network.IPAMConfig{}, fmt.Errorf("invalid ip-range: %w", err)
1728 }
1729 }
1730 if pool.Gateway != "" {
1731 gateway, err = netip.ParseAddr(pool.Gateway)
1732 if err != nil {
1733 return network.IPAMConfig{}, fmt.Errorf("invalid gateway address: %w", err)
1734 }
1735 }
1736 if len(pool.AuxiliaryAddresses) > 0 {
1737 auxAddress = make(map[string]netip.Addr, len(pool.AuxiliaryAddresses))
1738 for auxName, addr := range pool.AuxiliaryAddresses {
1739 auxAddr, err := netip.ParseAddr(addr)
1740 if err != nil {
1741 return network.IPAMConfig{}, fmt.Errorf("invalid auxiliary address: %w", err)
1742 }
1743 auxAddress[auxName] = auxAddr
1744 }
1745
1746 }
1747 return network.IPAMConfig{
1748 Subnet: subNet,
1749 IPRange: ipRange,
1750 Gateway: gateway,
1751 AuxAddress: auxAddress,
1752 }, nil
1753}
1754
1755func parseMACAddr(macAddress string) (network.HardwareAddr, error) {
1756 if macAddress == "" {

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected