package main
import (
"context"
mirko "code.hackerspace.pl/hscloud/go/mirko"
"code.hackerspace.pl/hscloud/go/statusz"
)
const statuszFragment = `
Current leases: {{ .Leases | len }}
IP Address |
MAC Address |
Start |
End |
{{range .Leases }}
{{ .IP }} |
{{ .MAC }} |
{{ .Start }} |
{{ .End }} |
{{end}}
`
type szLeases struct {
IP string
MAC string
Start string
End string
}
func (s *service) setupStatusz(m *mirko.Mirko) {
statusz.AddStatusPart("Leases", statuszFragment, func(ctx context.Context) interface{} {
c := make(chan []lease)
s.leaseC <- c
leases := <-c
ls := make([]szLeases, len(leases))
for i, l := range leases {
ls[i].IP = l.ip.String()
ls[i].MAC = l.hardware.String()
ls[i].Start = l.from.String()
ls[i].End = l.to.String()
}
return struct {
Leases []szLeases
}{
Leases: ls,
}
})
}