func buildNetworkInfo(net *types.VirtualNetwork, detail bool) ( *NetworkInfo, error) { var subnets []string var policies []string refList, err := net.GetNetworkIpamRefs() if err != nil { return nil, err } for _, ref := range refList { attr := ref.Attr.(types.VnSubnetsType) for _, ipamSubnet := range attr.IpamSubnets { subnets = append(subnets, fmt.Sprintf("%s/%d", ipamSubnet.Subnet.IpPrefix, ipamSubnet.Subnet.IpPrefixLen)) } } if detail { refList, err = net.GetNetworkPolicyRefs() for _, ref := range refList { policies = append(policies, strings.Join(ref.To, ":")) } } info := &NetworkInfo{ net.GetUuid(), net.GetName(), net.GetIdPerms().Enable, net.GetVirtualNetworkProperties().NetworkId, net.GetVirtualNetworkProperties().AllowTransit, net.GetVirtualNetworkProperties().ForwardingMode, subnets, policies, net.GetRouteTargetList().RouteTarget, } return info, err }