Files
terraform-provider-unifi/internal/provider/cidr.go
Joshua Spence ca71d9e4f9 Add IPv6 support to static routes (#349)
* Improve tests

* Add Ipv6 support

* We can't create IPv6 static routes without a gateway

* Revert "We can't create IPv6 static routes without a gateway"

This reverts commit dfff85c5b7d22c28d50485536c567e3a8b657136.

* Adopt device

* Fix

* Revert "Adopt device"

This reverts commit a1fb209c7b2cd0d9ae44640fece91f4bafeed2ae.
2023-03-10 20:15:54 +11:00

57 lines
945 B
Go

package provider
import (
"fmt"
"net"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)
func cidrValidate(raw interface{}, key string) ([]string, []error) {
v, ok := raw.(string)
if !ok {
return nil, []error{fmt.Errorf("expected string, got %T", raw)}
}
_, _, err := net.ParseCIDR(v)
if err != nil {
return nil, []error{err}
}
return nil, nil
}
func cidrDiffSuppress(k, old, new string, d *schema.ResourceData) bool {
_, oldNet, err := net.ParseCIDR(old)
if err != nil {
return false
}
_, newNet, err := net.ParseCIDR(new)
if err != nil {
return false
}
return oldNet.String() == newNet.String()
}
func cidrZeroBased(cidr string) string {
_, cidrNet, err := net.ParseCIDR(cidr)
if err != nil {
return ""
}
return cidrNet.String()
}
func cidrOneBased(cidr string) string {
_, cidrNet, err := net.ParseCIDR(cidr)
if err != nil {
return ""
}
cidrNet.IP[3]++
return cidrNet.String()
}