refactor: separate out NetworkRouter-specific status

This commit is contained in:
Matthias Radestock committed 2015-11-09 15:51:11 +00:00
1 parent 71b05972f4
commit 8eb680fcc9
2 files changed
+20 -11

No files matched your search

+4 -4
View File
@@ -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)}
}
+16 -7
View File
@@ -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()