From ee63e80f7763677ff1f2c95b43631174ed1974ed Mon Sep 17 00:00:00 2001 From: Alejandro Mery Date: Mon, 21 Aug 2023 21:30:12 +0000 Subject: [PATCH] zones: add resolver and domain Signed-off-by: Alejandro Mery --- cmd/jpictl/config.go | 6 ++++-- cmd/jpictl/dump.go | 2 +- go.mod | 3 +++ go.sum | 6 ++++++ pkg/zones/zones.go | 16 +++++++++++----- 5 files changed, 25 insertions(+), 8 deletions(-) diff --git a/cmd/jpictl/config.go b/cmd/jpictl/config.go index 805707f..a65653d 100644 --- a/cmd/jpictl/config.go +++ b/cmd/jpictl/config.go @@ -2,9 +2,11 @@ package main // Config describes the repository type Config struct { - Base string + Base string + Domain string } var cfg = &Config{ - Base: "./m", + Base: "./m", + Domain: "m.jpi.cloud", } diff --git a/cmd/jpictl/dump.go b/cmd/jpictl/dump.go index 2823582..a951d64 100644 --- a/cmd/jpictl/dump.go +++ b/cmd/jpictl/dump.go @@ -17,7 +17,7 @@ var dumpCmd = &cobra.Command{ RunE: func(_ *cobra.Command, _ []string) error { var buf bytes.Buffer - m, err := zones.New(cfg.Base) + m, err := zones.New(cfg.Base, cfg.Domain) if err != nil { return err } diff --git a/go.mod b/go.mod index 210abf9..d9bbacd 100644 --- a/go.mod +++ b/go.mod @@ -3,6 +3,7 @@ module git.jpi.io/amery/jpictl go 1.19 require ( + darvaza.org/resolver v0.5.2 darvaza.org/sidecar v0.0.0-20230721122716-b9c54b8adbaf darvaza.org/slog v0.5.2 github.com/burntSushi/toml v0.3.1 @@ -23,12 +24,14 @@ require ( github.com/mattn/go-isatty v0.0.19 // indirect github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mgechev/dots v0.0.0-20210922191527-e955255bf517 // indirect + github.com/miekg/dns v1.1.55 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/olekukonko/tablewriter v0.0.5 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/rivo/uniseg v0.4.4 // indirect github.com/rs/zerolog v1.30.0 // indirect github.com/spf13/pflag v1.0.5 // indirect + golang.org/x/mod v0.12.0 // indirect golang.org/x/net v0.14.0 // indirect golang.org/x/sys v0.11.0 // indirect golang.org/x/text v0.12.0 // indirect diff --git a/go.sum b/go.sum index 4f21ba3..b810d46 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,7 @@ darvaza.org/core v0.9.5 h1:sS5pZFwicaxJIQixEiqkMr9GknVHYL+EbKDMkR/4jDM= darvaza.org/core v0.9.5/go.mod h1:O3tHBMlw+xB47uGh5CUx7dXAujBAMmD8BCRFPZmIw54= +darvaza.org/resolver v0.5.2 h1:VjHhEr/MJBszeDb7tYlXQ9Bsyh4xrDR7Sd10WAmPD6k= +darvaza.org/resolver v0.5.2/go.mod h1:fFvsVPEFeMzUIWlLG47Go/6uJYtRLb9R8HIgYg3uaxE= darvaza.org/sidecar v0.0.0-20230721122716-b9c54b8adbaf h1:ya5ZQicBb/GWll3rlqra8No7oJXks7y1m/cJGYBypv4= darvaza.org/sidecar v0.0.0-20230721122716-b9c54b8adbaf/go.mod h1:by+bPsMa7Rxc/ZYG1qBunrtKocv/DkrPBmyFlmq/j2Q= darvaza.org/slog v0.5.2 h1:8TG1WyHjOyh2vW6t3pjzZVaWzpko5MIIpeI7LWqHFvs= @@ -40,6 +42,8 @@ github.com/mgechev/dots v0.0.0-20210922191527-e955255bf517 h1:zpIH83+oKzcpryru8c github.com/mgechev/dots v0.0.0-20210922191527-e955255bf517/go.mod h1:KQ7+USdGKfpPjXk4Ga+5XxQM4Lm4e3gAogrreFAYpOg= github.com/mgechev/revive v1.3.2 h1:Wb8NQKBaALBJ3xrrj4zpwJwqwNA6nDpyJSEQWcCka6U= github.com/mgechev/revive v1.3.2/go.mod h1:UCLtc7o5vg5aXCwdUTU1kEBQ1v+YXPAkYDIDXbrs5I0= +github.com/miekg/dns v1.1.55 h1:GoQ4hpsj0nFLYe+bWiCToyrBEJXkQfOOIvFGFy0lEgo= +github.com/miekg/dns v1.1.55/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= @@ -68,8 +72,10 @@ github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1 h1:MGwJjxBy0HJshjDNfLsYO8xppfqWlA5ZT9OhtUUhTNw= golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14= golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/pkg/zones/zones.go b/pkg/zones/zones.go index a46485b..51e25a1 100644 --- a/pkg/zones/zones.go +++ b/pkg/zones/zones.go @@ -4,6 +4,8 @@ package zones import ( "io/fs" "os" + + "darvaza.org/resolver" ) // Zone represents one zone in a cluster @@ -22,15 +24,19 @@ func (z *Zone) String() string { // Zones represents all zones in a cluster type Zones struct { - dir fs.FS + dir fs.FS + resolver resolver.Resolver + domain string Zones []*Zone `toml:"zones"` } // NewFS builds a [Zones] tree using the given directory -func NewFS(dir fs.FS) (*Zones, error) { +func NewFS(dir fs.FS, domain string) (*Zones, error) { z := &Zones{ - dir: dir, + dir: dir, + resolver: resolver.SystemResolver(true), + domain: domain, } if err := z.scan(); err != nil { @@ -41,6 +47,6 @@ func NewFS(dir fs.FS) (*Zones, error) { } // New builds a [Zones] tree using the given directory -func New(dir string) (*Zones, error) { - return NewFS(os.DirFS(dir)) +func New(dir, domain string) (*Zones, error) { + return NewFS(os.DirFS(dir), domain) }