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>
This commit is contained in:
Sebastiaan van Stijn 2023-07-23 10:52:13 +02:00
parent 536e3692c6
commit ca5ac19ea4
No known key found for this signature in database
GPG key ID: 76698F39D527CE8C

View file

@ -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
}