[cleanup] Addresses cyclomatic complexity, spelling errors, ineffectual assignments

This commit is contained in:
dougbtv 2019-04-25 08:32:26 -04:00
parent 6613341954
commit 89cb628253
5 changed files with 80 additions and 56 deletions

View File

@ -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())

View File

@ -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 {

View File

@ -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
}

View File

@ -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() {

View File

@ -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},