jpictl: introduce jpictl dns show command
to list dns entries Signed-off-by: Alejandro Mery <amery@jpi.io>
This commit is contained in:
@@ -132,9 +132,27 @@ var dnsSyncCmd = &cobra.Command{
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var dnsShowCmd = &cobra.Command{
|
||||||
|
Use: "show [<name>...]",
|
||||||
|
Short: "dns show lists entries on DNS for our domain",
|
||||||
|
PreRun: setVerbosity,
|
||||||
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
mgr, err := newDNSManagerCommand(cmd, true, true)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx, cancel := context.WithTimeout(context.Background(), DNSSyncTimeout)
|
||||||
|
defer cancel()
|
||||||
|
|
||||||
|
return mgr.Show(ctx, args...)
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
rootCmd.AddCommand(dnsCmd)
|
rootCmd.AddCommand(dnsCmd)
|
||||||
|
|
||||||
dnsCmd.AddCommand(dnsWriteCmd)
|
dnsCmd.AddCommand(dnsWriteCmd)
|
||||||
dnsCmd.AddCommand(dnsSyncCmd)
|
dnsCmd.AddCommand(dnsSyncCmd)
|
||||||
|
dnsCmd.AddCommand(dnsShowCmd)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package dns
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"fmt"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"darvaza.org/core"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Show shows current DNS entries
|
||||||
|
func (mgr *Manager) Show(ctx context.Context, names ...string) error {
|
||||||
|
recs, err := mgr.GetRecords(ctx, names...)
|
||||||
|
if err != nil {
|
||||||
|
return core.Wrap(err, "GetRecords")
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, rr := range recs {
|
||||||
|
_, _ = fmt.Printf("%s\t%v\tIN\t%s\t%s\t; %s\n",
|
||||||
|
rr.Name,
|
||||||
|
int(rr.TTL/time.Second),
|
||||||
|
rr.Type,
|
||||||
|
rr.Value,
|
||||||
|
rr.ID)
|
||||||
|
}
|
||||||
|
|
||||||
|
_, _ = fmt.Printf("; %v records\n", len(recs))
|
||||||
|
return nil
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user