Skip to content

Commit 9ade181

Browse files
Fix lint
1 parent a6cbcff commit 9ade181

File tree

1 file changed

+39
-26
lines changed

1 file changed

+39
-26
lines changed

pkg/cloud/instance.go

Lines changed: 39 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package cloud
1919
import (
2020
"encoding/base64"
2121
"fmt"
22+
"net"
2223
"strconv"
2324
"strings"
2425

@@ -31,8 +32,6 @@ import (
3132
"github.com/pkg/errors"
3233
corev1 "k8s.io/api/core/v1"
3334
infrav1 "sigs.k8s.io/cluster-api-provider-cloudstack/api/v1beta3"
34-
35-
netpkg "net"
3635
)
3736

3837
type VMIface interface {
@@ -339,7 +338,7 @@ func (c *client) isFreeIPAvailable(networkID, ip string) (bool, error) {
339338

340339
func (c *client) buildIPEntry(resolvedNet *cloudstack.Network, ip string) (map[string]string, error) {
341340
if ip != "" {
342-
if err := c.validateIPInCIDR(ip, resolvedNet, resolvedNet.Id); err != nil {
341+
if err := validateIPInCIDR(ip, resolvedNet.Cidr); err != nil {
343342
return nil, err
344343
}
345344
}
@@ -417,21 +416,51 @@ func (c *client) resolveNetwork(net infrav1.NetworkSpec) (*cloudstack.Network, e
417416
return resolvedNet, nil
418417
}
419418

420-
func (c *client) validateIPInCIDR(ipStr string, net *cloudstack.Network, netID string) error {
421-
ip := netpkg.ParseIP(ipStr)
419+
func validateIPInCIDR(ipStr, cidrStr string) error {
420+
ip := net.ParseIP(ipStr)
422421
if ip == nil {
423422
return errors.Errorf("invalid IP address %q", ipStr)
424423
}
425424

426-
_, cidr, err := netpkg.ParseCIDR(net.Cidr)
425+
_, cidr, err := net.ParseCIDR(cidrStr)
427426
if err != nil {
428-
return errors.Wrapf(err, "invalid CIDR %q for network %q", net.Cidr, netID)
427+
return errors.Wrapf(err, "invalid CIDR %q", cidrStr)
429428
}
430429

431430
if !cidr.Contains(ip) {
432-
return errors.Errorf("IP %q is not within network CIDR %q", ipStr, net.Cidr)
431+
return errors.Errorf("IP %q is not within network CIDR %q", ipStr, cidrStr)
432+
}
433+
434+
return nil
435+
}
436+
437+
func (c *client) configureNetworkParams(
438+
p *cloudstack.DeployVirtualMachineParams,
439+
csMachine *infrav1.CloudStackMachine,
440+
fd *infrav1.CloudStackFailureDomain,
441+
) error {
442+
if len(csMachine.Spec.Networks) == 0 && fd.Spec.Zone.Network.ID != "" {
443+
p.SetNetworkids([]string{fd.Spec.Zone.Network.ID})
444+
return nil
445+
}
446+
447+
firstNetwork := csMachine.Spec.Networks[0]
448+
zoneNet := fd.Spec.Zone.Network
449+
450+
// Validate match between zone network and first template network.
451+
if zoneNet.ID != "" && firstNetwork.ID != "" && firstNetwork.ID != zoneNet.ID {
452+
return errors.Errorf("first network ID %q does not match zone network ID %q", firstNetwork.ID, zoneNet.ID)
453+
}
454+
if zoneNet.Name != "" && firstNetwork.Name != "" && firstNetwork.Name != zoneNet.Name {
455+
return errors.Errorf("first network name %q does not match zone network name %q", firstNetwork.Name, zoneNet.Name)
456+
}
457+
458+
ipToNetworkList, err := c.buildIPToNetworkList(csMachine)
459+
if err != nil {
460+
return err
433461
}
434462

463+
p.SetIptonetworklist(ipToNetworkList)
435464
return nil
436465
}
437466

@@ -456,24 +485,8 @@ func (c *client) DeployVM(
456485

457486
p := c.cs.VirtualMachine.NewDeployVirtualMachineParams(offering.Id, templateID, fd.Spec.Zone.ID)
458487

459-
if len(csMachine.Spec.Networks) == 0 && fd.Spec.Zone.Network.ID != "" {
460-
p.SetNetworkids([]string{fd.Spec.Zone.Network.ID})
461-
} else {
462-
firstNetwork := csMachine.Spec.Networks[0]
463-
zoneNet := fd.Spec.Zone.Network
464-
465-
if zoneNet.ID != "" && firstNetwork.ID != "" && firstNetwork.ID != zoneNet.ID {
466-
return errors.Errorf("first network ID %q does not match zone network ID %q", firstNetwork.ID, zoneNet.ID)
467-
}
468-
if zoneNet.Name != "" && firstNetwork.Name != "" && firstNetwork.Name != zoneNet.Name {
469-
return errors.Errorf("first network name %q does not match zone network name %q", firstNetwork.Name, zoneNet.Name)
470-
}
471-
472-
ipToNetworkList, err := c.buildIPToNetworkList(csMachine)
473-
if err != nil {
474-
return err
475-
}
476-
p.SetIptonetworklist(ipToNetworkList)
488+
if err := c.configureNetworkParams(p, csMachine, fd); err != nil {
489+
return err
477490
}
478491

479492
setIfNotEmpty(csMachine.Name, p.SetName)

0 commit comments

Comments
 (0)