2 * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.groupbasedpolicy.renderer;
11 import java.util.Arrays;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.common.endpoint.fields.NetworkContainmentBuilder;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.common.endpoint.fields.network.containment.containment.ForwardingContextContainmentBuilder;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoint.locations.AddressEndpointLocationBuilder;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoint.locations.ContainmentEndpointLocationBuilder;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.address.endpoints.AddressEndpointBuilder;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.address.endpoints.AddressEndpointKey;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.containment.endpoints.ContainmentEndpointBuilder;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.containment.endpoints.ContainmentEndpointKey;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.has.absolute.location.AbsoluteLocationBuilder;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.has.absolute.location.absolute.location.LocationType;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.has.relative.location.RelativeLocationsBuilder;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.has.relative.location.relative.locations.InternalLocation;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ActionDefinitionId;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ActionName;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierDefinitionId;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierName;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ContextId;
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ContractId;
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.EndpointGroupId;
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.RuleName;
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.SubjectName;
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.TenantId;
35 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.forwarding.rev160427.AddressType;
36 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.forwarding.rev160427.ContextType;
37 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.HasDirection.Direction;
38 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.has.actions.Action;
39 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.has.actions.ActionBuilder;
40 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.has.classifiers.Classifier;
41 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.has.classifiers.ClassifierBuilder;
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.has.resolved.rules.ResolvedRule;
43 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.has.resolved.rules.ResolvedRuleBuilder;
44 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.resolved.policies.ResolvedPolicyBuilder;
45 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.resolved.policies.resolved.policy.PolicyRuleGroupWithEndpointConstraints;
46 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.resolved.policies.resolved.policy.PolicyRuleGroupWithEndpointConstraintsBuilder;
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.resolved.policies.resolved.policy.policy.rule.group.with.endpoint.constraints.PolicyRuleGroup;
48 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.resolved.policies.resolved.policy.policy.rule.group.with.endpoint.constraints.PolicyRuleGroupBuilder;
50 import com.google.common.collect.ImmutableList;
52 public class TestDataFactory {
54 public static final TenantId TENANT_ID = new TenantId("cisco_tenant");
55 public static final ActionDefinitionId AD_1 = new ActionDefinitionId("ad_1");
56 public static final ActionName AN_1 = new ActionName("an_1");
57 public static final ClassifierDefinitionId CD_1 = new ClassifierDefinitionId("cd_1");
58 public static final ClassifierName CN_1 = new ClassifierName("cn_1");
59 public static final ContextId CTX_1 = new ContextId("ctx_1");
61 public static AddressEndpointLocationBuilder defaultAdrEpLoc(AddressEndpointKey adrEpKey, LocationType realLoc,
62 InternalLocation... relativeLocs) {
63 AddressEndpointLocationBuilder result =
64 new AddressEndpointLocationBuilder().setContextType(adrEpKey.getContextType())
65 .setContextId(adrEpKey.getContextId())
66 .setAddressType(adrEpKey.getAddressType())
67 .setAddress(adrEpKey.getAddress())
68 .setAbsoluteLocation(new AbsoluteLocationBuilder().setLocationType(realLoc).build());
69 if (relativeLocs != null) {
70 result.setRelativeLocations(
71 new RelativeLocationsBuilder().setInternalLocation(Arrays.asList(relativeLocs)).build());
76 public static ContainmentEndpointLocationBuilder defaultContEpLoc(ContainmentEndpointKey contEpKey,
77 InternalLocation... relativeLocs) {
78 ContainmentEndpointLocationBuilder result = new ContainmentEndpointLocationBuilder()
79 .setContextType(contEpKey.getContextType()).setContextId(contEpKey.getContextId()).setRelativeLocations(
80 new RelativeLocationsBuilder().setInternalLocation(Arrays.asList(relativeLocs)).build());
84 public static AddressEndpointBuilder defaultAdrEp(String address, EndpointGroupId... epgs) {
85 return new AddressEndpointBuilder().setContextType(DummyContextType.class)
87 .setAddressType(DummyAddressType.class)
90 .setEndpointGroup(Arrays.asList(epgs))
91 .setNetworkContainment(
92 new NetworkContainmentBuilder().setContainment(new ForwardingContextContainmentBuilder()
93 .setContextType(DummyContextType.class).setContextId(CTX_1).build()).build());
96 public static ContainmentEndpointBuilder defaultContEp(EndpointGroupId... epgs) {
97 return new ContainmentEndpointBuilder().setContextType(DummyContextType.class)
100 .setEndpointGroup(Arrays.asList(epgs))
101 .setNetworkContainment(
102 new NetworkContainmentBuilder().setContainment(new ForwardingContextContainmentBuilder()
103 .setContextType(DummyContextType.class).setContextId(CTX_1).build()).build());
106 public static ResolvedRuleBuilder defaultResolvedRule(RuleName ruleName) {
107 Action action = new ActionBuilder().setActionDefinitionId(AD_1).setName(AN_1).setOrder(0).build();
108 Classifier classifier = new ClassifierBuilder().setClassifierDefinitionId(CD_1)
110 .setDirection(Direction.In)
112 return new ResolvedRuleBuilder().setName(ruleName)
114 .setAction(ImmutableList.of(action))
115 .setClassifier(ImmutableList.of(classifier));
118 public static PolicyRuleGroupBuilder defaultPolicyRuleGrp(ContractId contractId, SubjectName subjectName,
119 ResolvedRule... resolvedRules) {
120 return new PolicyRuleGroupBuilder().setTenantId(TENANT_ID)
121 .setContractId(contractId)
122 .setSubjectName(subjectName)
123 .setResolvedRule(Arrays.asList(resolvedRules));
126 public static ResolvedPolicyBuilder defaultResolvedPolicy(EndpointGroupId consEpg, EndpointGroupId provEpg,
127 PolicyRuleGroup... policyRuleGrps) {
128 PolicyRuleGroupWithEndpointConstraints blueRuleGrpWithoutCons =
129 new PolicyRuleGroupWithEndpointConstraintsBuilder().setPolicyRuleGroup(Arrays.asList(policyRuleGrps))
131 return new ResolvedPolicyBuilder().setConsumerEpgId(consEpg)
132 .setConsumerTenantId(TENANT_ID)
133 .setProviderEpgId(provEpg)
134 .setProviderTenantId(TENANT_ID)
135 .setPolicyRuleGroupWithEndpointConstraints(ImmutableList.of(blueRuleGrpWithoutCons));
138 public static abstract class DummyContextType extends ContextType {
140 public static abstract class DummyAddressType extends AddressType {