-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathmain.go
More file actions
85 lines (72 loc) · 1.78 KB
/
Copy pathmain.go
File metadata and controls
85 lines (72 loc) · 1.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package main
import (
"fmt"
"log"
"os"
omada "github.com/dougbw/go-omada"
)
func main() {
// variables
controllerUrl, present := os.LookupEnv("OMADA_URL")
if !present {
controllerUrl = "https://10.0.0.10"
}
user, present := os.LookupEnv("OMADA_USERNAME")
if !present {
log.Fatal("⛔ required environment variable not set: OMADA_USERNAME")
os.Exit(1)
}
pass, present := os.LookupEnv("OMADA_PASSWORD")
if !present {
log.Fatal("⛔ required environment variable not set: OMADA_PASSWORD")
os.Exit(1)
}
siteName := "Home"
// setup
omada := omada.New(controllerUrl)
err := omada.GetControllerInfo()
if err != nil {
log.Fatal(err)
}
// login
err = omada.Login(user, pass)
if err != nil {
log.Fatal(err)
}
// set site
err = omada.SetSite(siteName)
if err != nil {
log.Fatal(err)
}
// get clients
clients, err := omada.GetClients()
if err != nil {
log.Printf("error getting clients: %v", err)
}
for _, client := range clients {
fmt.Printf("client ip: %s, dnsName: %s, name: %s\n", client.Ip, client.DnsName, client.Name)
}
// get devices
devices, err := omada.GetDevices()
if err != nil {
log.Printf("error getting devices: %v", err)
}
for _, device := range devices {
fmt.Printf("device name: %s, dnsName: %s, ip: %s\n", device.Name, device.DnsName, device.IP)
}
// get networks
networks, err := omada.GetNetworks()
if err != nil {
log.Printf("error getting devices: %v", err)
}
for _, network := range networks {
fmt.Printf("network name: %s, subnet: %s, domain: %s\n", network.Name, network.Subnet, network.Domain)
}
dhcpr, err := omada.GetDhcpReservations()
if err != nil {
log.Printf("error getting dhcp reservations: %v", err)
}
for _, r := range dhcpr {
fmt.Printf("dhcp ip: %s, description: %s\n", r.IP, r.Description)
}
}