package main import ( "context" mirko "code.hackerspace.pl/hscloud/go/mirko" "code.hackerspace.pl/hscloud/go/statusz" ) const statuszFragment = `
Current leases: {{ .Leases | len }}
{{range .Leases }} {{end}}
IP Address MAC Address Start End
{{ .IP }} {{ .MAC }} {{ .Start }} {{ .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, } }) }