gc-infra/iac/cluster/utils/utils.go

42 lines
939 B
Go

package utils
import (
"net"
"strconv"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func IncrementIP(ip net.IP) net.IP {
if ip == nil {
return ip
}
ip = ip.To4()
ip[3]++
return ip
}
func IDtoInt(val string) (int, error) {
i, err := strconv.Atoi(val)
return i, err
}
func IDtoIntPtr(val string) (*int, error) {
i, err := strconv.Atoi(val)
return &i, err
}
// Convert pulumi.IDOutput to pulumi.InOutput
//
// Some hcloud ID's are int based, but pulumi.IDOutput doesn't have a ToIntOutput method
func IDtoIntOutput(val pulumi.IDInput) pulumi.IntOutput {
return val.ToIDOutput().ToStringOutput().ApplyT(IDtoInt).(pulumi.IntOutput)
}
// Convert pulumi.IDOutput to pulumi.InOutput
//
// Some hcloud ID's are int based, but pulumi.IDOutput doesn't have a ToIntOutput method
func IDtoIntPtrOutput(val pulumi.IDInput) pulumi.IntPtrOutput {
return val.ToIDOutput().ToStringOutput().ApplyT(IDtoIntPtr).(pulumi.IntPtrOutput)
}