Skip to main content

DNS

DNS configuration query and update operations.

Methods​

MethodDescription
Get(ctx, target, iface)Get DNS config
Update(ctx, target, iface, servers, search, overrideDHCP)Update DNS servers
Delete(ctx, target, iface)Remove managed DNS config

Usage​

import "github.com/osapi-io/osapi/pkg/sdk/client"

c := client.New("http://localhost:8080", token)

// Get DNS configuration for an interface
resp, err := c.DNS.Get(ctx, "web-01", "eth0")
for _, r := range resp.Data.Results {
fmt.Printf("Servers: %v\n", r.Servers)
fmt.Printf("Search: %v\n", r.SearchDomains)
}

// Update DNS servers
resp, err := c.DNS.Update(
ctx, "web-01", "eth0",
[]string{"8.8.8.8", "8.8.4.4"},
nil, // search domains
false, // override DHCP
)

// Update DNS servers and override DHCP-provided servers
resp, err = c.DNS.Update(
ctx, "web-01", "eth0",
[]string{"1.1.1.1"},
nil,
true, // only use configured servers, ignore DHCP
)

// Delete managed DNS configuration
resp, err := c.DNS.Delete(ctx, "web-01", "eth0")

Example​

See examples/sdk/client/dns.go for a complete working example.

Permissions​

Get requires network:read. Update and Delete require network:write.