mirror of
https://github.com/k8snetworkplumbingwg/whereabouts.git
synced 2025-06-03 06:42:26 +00:00
[cleanup] Addresses cyclomatic complexity, spelling errors, ineffectual assignments
This commit is contained in:
parent
6613341954
commit
89cb628253
@ -77,7 +77,7 @@ var _ = Describe("Whereabouts operations", func() {
|
||||
|
||||
// Now, create the same thing again, and expect the same IP
|
||||
// That way we know it dealloced the IP and assigned it again.
|
||||
r, raw, err = testutils.CmdAddWithArgs(args, func() error {
|
||||
r, _, err = testutils.CmdAddWithArgs(args, func() error {
|
||||
return cmdAdd(args)
|
||||
})
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
|
@ -15,7 +15,7 @@ import (
|
||||
func AssignIP(ipamConf types.IPAMConfig, reservelist string, containerID string) (net.IPNet, string, error) {
|
||||
|
||||
// Setup the basics here.
|
||||
ip, ipnet, err := net.ParseCIDR(ipamConf.Range)
|
||||
ip, ipnet, _ := net.ParseCIDR(ipamConf.Range)
|
||||
|
||||
newip, updatedreservelist, err := IterateForAssignment(ip, *ipnet, SplitReserveList(reservelist), ipamConf.OmitRanges, containerID)
|
||||
if err != nil {
|
||||
|
@ -64,6 +64,26 @@ func LoadIPAMConfig(bytes []byte, envArgs string) (*types.IPAMConfig, string, er
|
||||
n.IPAM.Gateway = gwip
|
||||
}
|
||||
|
||||
for i := range n.IPAM.OmitRanges {
|
||||
_, _, err := net.ParseCIDR(n.IPAM.OmitRanges[i])
|
||||
if err != nil {
|
||||
return nil, "", fmt.Errorf("invalid CIDR in exclude list %s: %s", n.IPAM.OmitRanges[i], err)
|
||||
}
|
||||
}
|
||||
|
||||
err = configureStatic(&n, envArgs)
|
||||
if err != nil {
|
||||
return nil, "", err
|
||||
}
|
||||
|
||||
// Copy net name into IPAM so not to drag Net struct around
|
||||
n.IPAM.Name = n.Name
|
||||
|
||||
return n.IPAM, n.CNIVersion, nil
|
||||
}
|
||||
|
||||
func configureStatic(n *types.Net, envArgs string) error {
|
||||
|
||||
// Validate all ranges
|
||||
numV4 := 0
|
||||
numV6 := 0
|
||||
@ -71,13 +91,13 @@ func LoadIPAMConfig(bytes []byte, envArgs string) (*types.IPAMConfig, string, er
|
||||
for i := range n.IPAM.Addresses {
|
||||
ip, addr, err := net.ParseCIDR(n.IPAM.Addresses[i].AddressStr)
|
||||
if err != nil {
|
||||
return nil, "", fmt.Errorf("invalid CIDR in addresses %s: %s", n.IPAM.Addresses[i].AddressStr, err)
|
||||
return fmt.Errorf("invalid CIDR in addresses %s: %s", n.IPAM.Addresses[i].AddressStr, err)
|
||||
}
|
||||
n.IPAM.Addresses[i].Address = *addr
|
||||
n.IPAM.Addresses[i].Address.IP = ip
|
||||
|
||||
if err := canonicalizeIP(&n.IPAM.Addresses[i].Address.IP); err != nil {
|
||||
return nil, "", fmt.Errorf("invalid address %d: %s", i, err)
|
||||
return fmt.Errorf("invalid address %d: %s", i, err)
|
||||
}
|
||||
|
||||
if n.IPAM.Addresses[i].Address.IP.To4() != nil {
|
||||
@ -89,68 +109,72 @@ func LoadIPAMConfig(bytes []byte, envArgs string) (*types.IPAMConfig, string, er
|
||||
}
|
||||
}
|
||||
|
||||
for i := range n.IPAM.OmitRanges {
|
||||
_, _, err := net.ParseCIDR(n.IPAM.OmitRanges[i])
|
||||
if err != nil {
|
||||
return nil, "", fmt.Errorf("invalid CIDR in exclude list %s: %s", n.IPAM.OmitRanges[i], err)
|
||||
}
|
||||
}
|
||||
|
||||
if envArgs != "" {
|
||||
e := types.IPAMEnvArgs{}
|
||||
err := cnitypes.LoadArgs(envArgs, &e)
|
||||
newnumV6, newnumV4, err := handleEnvArgs(n, numV6, numV4, envArgs)
|
||||
if err != nil {
|
||||
return nil, "", err
|
||||
}
|
||||
|
||||
if e.IP != "" {
|
||||
for _, item := range strings.Split(string(e.IP), ",") {
|
||||
ipstr := strings.TrimSpace(item)
|
||||
|
||||
ip, subnet, err := net.ParseCIDR(ipstr)
|
||||
if err != nil {
|
||||
return nil, "", fmt.Errorf("invalid CIDR %s: %s", ipstr, err)
|
||||
}
|
||||
|
||||
addr := types.Address{Address: net.IPNet{IP: ip, Mask: subnet.Mask}}
|
||||
if addr.Address.IP.To4() != nil {
|
||||
addr.Version = "4"
|
||||
numV4++
|
||||
} else {
|
||||
addr.Version = "6"
|
||||
numV6++
|
||||
}
|
||||
n.IPAM.Addresses = append(n.IPAM.Addresses, addr)
|
||||
}
|
||||
}
|
||||
|
||||
if e.GATEWAY != "" {
|
||||
for _, item := range strings.Split(string(e.GATEWAY), ",") {
|
||||
gwip := net.ParseIP(strings.TrimSpace(item))
|
||||
if gwip == nil {
|
||||
return nil, "", fmt.Errorf("invalid gateway address: %s", item)
|
||||
}
|
||||
|
||||
for i := range n.IPAM.Addresses {
|
||||
if n.IPAM.Addresses[i].Address.Contains(gwip) {
|
||||
n.IPAM.Addresses[i].Gateway = gwip
|
||||
}
|
||||
}
|
||||
}
|
||||
return err
|
||||
}
|
||||
numV4 = newnumV4
|
||||
numV6 = newnumV6
|
||||
}
|
||||
|
||||
// CNI spec 0.2.0 and below supported only one v4 and v6 address
|
||||
if numV4 > 1 || numV6 > 1 {
|
||||
for _, v := range types020.SupportedVersions {
|
||||
if n.CNIVersion == v {
|
||||
return nil, "", fmt.Errorf("CNI version %v does not support more than 1 address per family", n.CNIVersion)
|
||||
return fmt.Errorf("CNI version %v does not support more than 1 address per family", n.CNIVersion)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Copy net name into IPAM so not to drag Net struct around
|
||||
n.IPAM.Name = n.Name
|
||||
return nil
|
||||
|
||||
}
|
||||
|
||||
func handleEnvArgs(n *types.Net, numV6 int, numV4 int, envArgs string) (int, int, error) {
|
||||
|
||||
e := types.IPAMEnvArgs{}
|
||||
err := cnitypes.LoadArgs(envArgs, &e)
|
||||
if err != nil {
|
||||
return numV6, numV4, err
|
||||
}
|
||||
|
||||
if e.IP != "" {
|
||||
for _, item := range strings.Split(string(e.IP), ",") {
|
||||
ipstr := strings.TrimSpace(item)
|
||||
|
||||
ip, subnet, err := net.ParseCIDR(ipstr)
|
||||
if err != nil {
|
||||
return numV6, numV4, fmt.Errorf("invalid CIDR %s: %s", ipstr, err)
|
||||
}
|
||||
|
||||
addr := types.Address{Address: net.IPNet{IP: ip, Mask: subnet.Mask}}
|
||||
if addr.Address.IP.To4() != nil {
|
||||
addr.Version = "4"
|
||||
numV4++
|
||||
} else {
|
||||
addr.Version = "6"
|
||||
numV6++
|
||||
}
|
||||
n.IPAM.Addresses = append(n.IPAM.Addresses, addr)
|
||||
}
|
||||
}
|
||||
|
||||
if e.GATEWAY != "" {
|
||||
for _, item := range strings.Split(string(e.GATEWAY), ",") {
|
||||
gwip := net.ParseIP(strings.TrimSpace(item))
|
||||
if gwip == nil {
|
||||
return numV6, numV4, fmt.Errorf("invalid gateway address: %s", item)
|
||||
}
|
||||
|
||||
for i := range n.IPAM.Addresses {
|
||||
if n.IPAM.Addresses[i].Address.Contains(gwip) {
|
||||
n.IPAM.Addresses[i].Gateway = gwip
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return numV6, numV4, nil
|
||||
|
||||
return n.IPAM, n.CNIVersion, nil
|
||||
}
|
||||
|
@ -42,7 +42,6 @@ var _ = Describe("logging operations", func() {
|
||||
It("Check file setter with empty", func() {
|
||||
SetLogFile("/tmp/foobar.logging")
|
||||
Expect(loggingFp).NotTo(Equal(nil))
|
||||
// check file existance
|
||||
})
|
||||
|
||||
It("Check loglevel setter", func() {
|
||||
|
@ -25,7 +25,8 @@ var (
|
||||
func IPManagement(mode int, ipamConf types.IPAMConfig, containerID string) (net.IPNet, error) {
|
||||
|
||||
logging.Debugf("IPManagement -- mode: %v / host: %v / containerID: %v", mode, ipamConf.EtcdHost, containerID)
|
||||
ctx, _ := context.WithTimeout(context.Background(), RequestTimeout)
|
||||
ctx, cancel := context.WithTimeout(context.Background(), RequestTimeout)
|
||||
defer cancel()
|
||||
cli, _ := clientv3.New(clientv3.Config{
|
||||
DialTimeout: DialTimeout,
|
||||
Endpoints: []string{ipamConf.EtcdHost},
|
||||
|
Loading…
Reference in New Issue
Block a user