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/retr0h/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.