Преглед на файлове

daemon: refactor buildPeerInfoResources

Move the length-check into the function, and change the code to
be a basic type-case, as networkdb.PeerInfo and network.PeerInfo
are identical types.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Sebastiaan van Stijn преди 2 години
родител
ревизия
ca5ac19ea4
променени са 1 файла, в които са добавени 8 реда и са изтрити 9 реда
  1. 8 9
      daemon/network.go

+ 8 - 9
daemon/network.go

@@ -615,16 +615,12 @@ func buildNetworkResource(nw *libnetwork.Network) types.NetworkResource {
 	buildIpamResources(&r, info)
 	r.Labels = info.Labels()
 	r.ConfigOnly = info.ConfigOnly()
+	r.Peers = buildPeerInfoResources(info.Peers())
 
 	if cn := info.ConfigFrom(); cn != "" {
 		r.ConfigFrom = network.ConfigReference{Network: cn}
 	}
 
-	peers := info.Peers()
-	if len(peers) != 0 {
-		r.Peers = buildPeerInfoResources(peers)
-	}
-
 	return r
 }
 
@@ -672,13 +668,16 @@ func buildDetailedNetworkResources(r *types.NetworkResource, nw *libnetwork.Netw
 	}
 }
 
+// buildPeerInfoResources converts a list of [networkdb.PeerInfo] to a
+// [network.PeerInfo] for inclusion in API responses. It returns nil if
+// the list of peers is empty.
 func buildPeerInfoResources(peers []networkdb.PeerInfo) []network.PeerInfo {
+	if len(peers) == 0 {
+		return nil
+	}
 	peerInfo := make([]network.PeerInfo, 0, len(peers))
 	for _, peer := range peers {
-		peerInfo = append(peerInfo, network.PeerInfo{
-			Name: peer.Name,
-			IP:   peer.IP,
-		})
+		peerInfo = append(peerInfo, network.PeerInfo(peer))
 	}
 	return peerInfo
 }