diff --git a/prog/weaver/http.go b/prog/weaver/http.go index 968ea227..8871468e 100644 --- a/prog/weaver/http.go +++ b/prog/weaver/http.go @@ -146,16 +146,16 @@ var dnsEntriesTemplate = defTemplate("dnsEntries", `\ type WeaveStatus struct { Version string - Router *weave.Status `json:"Router,omitempty"` - IPAM *ipam.Status `json:"IPAM,omitempty"` - DNS *nameserver.Status `json:"DNS,omitempty"` + Router *weave.NetworkRouterStatus `json:"Router,omitempty"` + IPAM *ipam.Status `json:"IPAM,omitempty"` + DNS *nameserver.Status `json:"DNS,omitempty"` } func HandleHTTP(muxRouter *mux.Router, version string, router *weave.NetworkRouter, allocator *ipam.Allocator, defaultSubnet address.CIDR, ns *nameserver.Nameserver, dnsserver *nameserver.DNSServer) { status := func() WeaveStatus { return WeaveStatus{ version, - weave.NewStatus(router), + weave.NewNetworkRouterStatus(router), ipam.NewStatus(allocator, defaultSubnet), nameserver.NewStatus(ns, dnsserver)} } diff --git a/router/status.go b/router/status.go index f59d55d8..776f359f 100644 --- a/router/status.go +++ b/router/status.go @@ -14,9 +14,6 @@ type Status struct { Name string NickName string Port int - Interface string - CaptureStats map[string]int - MACs []MACStatus Peers []PeerStatus UnicastRoutes []UnicastRouteStatus BroadcastRoutes []BroadcastRouteStatus @@ -25,6 +22,13 @@ type Status struct { OverlayDiagnostics interface{} } +type NetworkRouterStatus struct { + *Status + Interface string + CaptureStats map[string]int + MACs []MACStatus +} + type MACStatus struct { Mac string Name string @@ -65,7 +69,7 @@ type LocalConnectionStatus struct { Info string } -func NewStatus(router *NetworkRouter) *Status { +func NewStatus(router *Router) *Status { return &Status{ Protocol, ProtocolMinVersion, @@ -75,9 +79,6 @@ func NewStatus(router *NetworkRouter) *Status { router.Ourself.Name.String(), router.Ourself.NickName, router.Port, - router.Bridge.String(), - router.Bridge.Stats(), - NewMACStatusSlice(router.Macs), NewPeerStatusSlice(router.Peers), NewUnicastRouteStatusSlice(router.Routes), NewBroadcastRouteStatusSlice(router.Routes), @@ -86,6 +87,14 @@ func NewStatus(router *NetworkRouter) *Status { router.Overlay.Diagnostics()} } +func NewNetworkRouterStatus(router *NetworkRouter) *NetworkRouterStatus { + return &NetworkRouterStatus{ + NewStatus(router.Router), + router.Bridge.String(), + router.Bridge.Stats(), + NewMACStatusSlice(router.Macs)} +} + func NewMACStatusSlice(cache *MacCache) []MACStatus { cache.RLock() defer cache.RUnlock()