(pool *types.IPAMPool)
| 1708 | } |
| 1709 | |
| 1710 | func 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 | |
| 1755 | func parseMACAddr(macAddress string) (network.HardwareAddr, error) { |
| 1756 | if macAddress == "" { |
no outgoing calls
no test coverage detected