func TestPropertyUpdate(t *testing.T) { client := contrail.NewClient("localhost", 8082) net := types.VirtualNetwork{} net.SetName("test") err := client.Create(&net) if err != nil { t.Error(err) } defer client.Delete(&net) props := net.GetVirtualNetworkProperties() if len(props.ForwardingMode) > 0 { t.Error(props.ForwardingMode) } props.ForwardingMode = "l2_l3" net.SetVirtualNetworkProperties(&props) err = client.Update(&net) if err != nil { t.Error(err) } obj, err := client.FindByUuid("virtual-network", net.GetUuid()) if err != nil { t.Fatal(err) } netPtr := obj.(*types.VirtualNetwork) p2 := netPtr.GetVirtualNetworkProperties() if p2.ForwardingMode != "l2_l3" { t.Errorf("Expected: l2_l3 got: %s", p2.ForwardingMode) } }
func TestReadBackRefs(t *testing.T) { client := new(ApiClient) client.Init() project := new(types.Project) project.SetFQName("domain", []string{"default-domain", "p1"}) assert.NoError(t, client.Create(project)) net := new(types.VirtualNetwork) net.SetFQName("project", []string{"default-domain", "p1", "n1"}) props := new(types.VirtualNetworkType) props.ForwardingMode = "turbo" net.SetVirtualNetworkProperties(props) assert.NoError(t, client.Create(net)) vmi1 := new(types.VirtualMachineInterface) vmi1.SetFQName("project", []string{"default-domain", "p1", "port1"}) vmi1.AddVirtualNetwork(net) assert.NoError(t, client.Create(vmi1)) vmi2 := new(types.VirtualMachineInterface) vmi2.SetFQName("project", []string{"default-domain", "p1", "port2"}) vmi2.AddVirtualNetwork(net) assert.NoError(t, client.Create(vmi2)) refs, err := net.GetVirtualMachineInterfaceBackRefs() assert.NoError(t, err) assert.Len(t, refs, 2) idList := make([]string, len(refs)) for i, ref := range refs { idList[i] = ref.Uuid } assert.Contains(t, idList, vmi1.GetUuid()) assert.Contains(t, idList, vmi2.GetUuid()) rProps := net.GetVirtualNetworkProperties() assert.Equal(t, "turbo", rProps.ForwardingMode) }
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 }