// NewNetConfig - create a new netconfig object without interfaces func NewNetConfig( hostname utils.Nstring, workgroup utils.Nstring, domain utils.Nstring, winslist utils.Nstring, dnsnamelist utils.Nstring, dnssearchlist utils.Nstring) NetConfig { var netconfig NetConfig netconfig = NetConfig{ WINSList: winslist, DNSNameList: dnsnamelist, DNSSearchList: dnssearchlist, } if !hostname.IsNil() { netconfig.Hostname = hostname.String() } if !workgroup.IsNil() { netconfig.Workgroup = workgroup.String() } if !domain.IsNil() { netconfig.Domain = domain.String() } return netconfig }
// NewNetConfigInterface - creates an interface object for NetConfig func (n *NetConfig) NewNetConfigInterface( enable bool, macaddr string, isdhcp bool, isipv6 bool, ipv6gateway utils.Nstring, // ipv6 gateway, required with isipv6 is true ipv4gateway utils.Nstring, // ipv4 gateway, required when isdhcp is false staticnets utils.Nstring, // comma seperated list of ip's, required when isdhcp is false name utils.Nstring, // optional name wins utils.Nstring, // comma seperated list of wins servers dnsservers utils.Nstring, // comma seperated list of dns servers dnssearch utils.Nstring, vlandid int) NetConfigInterface { // comma seperated list of dns search var inetconfig NetConfigInterface inetconfig = NetConfigInterface{ Enabled: enable, MACAddr: macaddr, DHCPv4: isdhcp, IPv6Autoconfig: isipv6, VlanID: vlandid, } if macaddr == "" { log.Error("Network configuration (NetConfigInterface) requires a MAC Address to create a new interface object.") } if isipv6 { if ipv6gateway.IsNil() { log.Error("Gateway for ipv6 is required, configure IPv6Gateway") } inetconfig.IPv6Gateway = ipv6gateway.String() } if !isdhcp { if ipv4gateway.IsNil() { log.Error("Static ipv4 configuration requires a gateway configured (IPv4Gateway)") } inetconfig.IPv4Gateway = ipv4gateway.String() if staticnets.IsNil() { log.Error("Static ipv4 configuration requires static network list") } inetconfig.StaticNetworks = strings.Split(staticnets.String(), SplitSep) } if !name.IsNil() { inetconfig.Name = name.String() } if !wins.IsNil() { inetconfig.WINSServers = strings.Split(wins.String(), SplitSep) } if !dnsservers.IsNil() { inetconfig.DNSServers = strings.Split(dnsservers.String(), SplitSep) } if !dnssearch.IsNil() { inetconfig.DNSSearch = strings.Split(dnssearch.String(), SplitSep) } return inetconfig }