func (m *ServiceManagerImpl) locatePolicy(tenant, serviceName string) (*types.NetworkPolicy, error) { var policy *types.NetworkPolicy = nil policyName := makeServicePolicyName(m.config, tenant, serviceName) obj, err := m.client.FindByName("network-policy", strings.Join(policyName, ":")) if err != nil { policy = new(types.NetworkPolicy) policy.SetFQName("project", policyName) err = m.client.Create(policy) if err != nil { glog.Errorf("Create policy %s: %v", strings.Join(policyName, ":"), err) return nil, err } } else { policy = obj.(*types.NetworkPolicy) } return policy, nil }
func (m *ServiceManagerImpl) locatePolicy(tenant, serviceName string) (*types.NetworkPolicy, error) { var policy *types.NetworkPolicy = nil fqn := []string{DefaultDomain, tenant, serviceName} obj, err := m.client.FindByName("network-policy", strings.Join(fqn, ":")) if err != nil { policy = new(types.NetworkPolicy) policy.SetFQName("project", fqn) err = m.client.Create(policy) if err != nil { glog.Errorf("Create policy %s: %v", strings.Join(fqn, ":"), err) return nil, err } } else { policy = obj.(*types.NetworkPolicy) } return policy, nil }
func TestReadModifiedPolicy(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)) policy := new(types.NetworkPolicy) policy.SetFQName("project", []string{"default-domain", "p1", "x"}) assert.NoError(t, client.Create(policy)) net1 := new(types.VirtualNetwork) net1.SetFQName("project", []string{"default-domain", "p1", "n1"}) net1.AddNetworkPolicy(policy, types.VirtualNetworkPolicyType{ Sequence: &types.SequenceType{10, 0}, }) assert.NoError(t, client.Create(net1)) net2 := new(types.VirtualNetwork) net2.SetFQName("project", []string{"default-domain", "p1", "n2"}) net2.AddNetworkPolicy(policy, types.VirtualNetworkPolicyType{ Sequence: &types.SequenceType{10, 0}, }) assert.NoError(t, client.Create(net2)) refs, err := policy.GetVirtualNetworkBackRefs() assert.NoError(t, err) assert.Len(t, refs, 2) assert.NoError(t, client.Delete(net1)) refs, err = policy.GetVirtualNetworkBackRefs() assert.NoError(t, err) assert.Len(t, refs, 1) assert.NoError(t, client.Delete(net2)) refs, err = policy.GetVirtualNetworkBackRefs() assert.NoError(t, err) assert.Len(t, refs, 0) }
// Create (an empty) network-policy. func policyCreate(client *contrail.Client, flagSet *flag.FlagSet) { if flagSet.NArg() < 1 { flagSet.Usage() os.Exit(2) } name := flagSet.Args()[0] projectFQN, err := config.GetProjectFQN(client, policyCommonOpts.project, policyCommonOpts.projectId) if err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } policy := new(types.NetworkPolicy) policy.SetFQName("project", append(projectFQN, name)) err = client.Create(policy) if err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } }