list.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package dns
  2. import (
  3. "fmt"
  4. "os"
  5. "github.com/gravitl/netmaker/cli/functions"
  6. "github.com/gravitl/netmaker/models"
  7. "github.com/guumaster/tablewriter"
  8. "github.com/spf13/cobra"
  9. )
  10. var dnsListCmd = &cobra.Command{
  11. Use: "list",
  12. Args: cobra.NoArgs,
  13. Short: "List DNS entries",
  14. Long: `List DNS entries`,
  15. Run: func(cmd *cobra.Command, args []string) {
  16. var data []models.DNSEntry
  17. if networkName != "" {
  18. switch dnsType {
  19. case "node":
  20. data = *functions.GetNodeDNS(networkName)
  21. case "custom":
  22. data = *functions.GetCustomDNS(networkName)
  23. case "network", "":
  24. data = *functions.GetNetworkDNS(networkName)
  25. default:
  26. fmt.Println("Invalid DNS type provided ", dnsType)
  27. }
  28. } else {
  29. data = *functions.GetDNS()
  30. }
  31. table := tablewriter.NewWriter(os.Stdout)
  32. table.SetHeader([]string{"Name", "Network", "IPv4 Address", "IPv6 Address"})
  33. for _, d := range data {
  34. table.Append([]string{d.Name, d.Network, d.Address, d.Address6})
  35. }
  36. table.Render()
  37. },
  38. }
  39. func init() {
  40. dnsListCmd.Flags().StringVar(&networkName, "network", "", "Network name")
  41. dnsListCmd.Flags().StringVar(&dnsType, "type", "", "Type of DNS records to fetch ENUM(node, custom, network)")
  42. rootCmd.AddCommand(dnsListCmd)
  43. }