X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=groupbasedpolicy%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fgroupbasedpolicy%2Futil%2FIidFactory.java;h=0855c152de4e7371aeca229d270d2da433145c99;hb=5c967ea86f21966fdc4211ef5a9154c3a7c34176;hp=30365bcf8ce5360d8848b88957ecf56b4b1c6187;hpb=f566a3c34977ba7b0708477e39e0b1e5a2cde890;p=groupbasedpolicy.git diff --git a/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/util/IidFactory.java b/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/util/IidFactory.java index 30365bcf8..0855c152d 100644 --- a/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/util/IidFactory.java +++ b/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/util/IidFactory.java @@ -43,33 +43,53 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ClassifierDefinitionKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.Tenant; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.TenantKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.Contract; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.ContractKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.EndpointGroup; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.EndpointGroupKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.L2BridgeDomain; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.L2BridgeDomainKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.L2FloodDomain; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.L2FloodDomainKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.L3Context; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.L3ContextKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.SubjectFeatureInstances; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.Subnet; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.SubnetKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.contract.Clause; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.contract.ClauseKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.contract.Subject; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.contract.SubjectKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.contract.subject.Rule; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.contract.subject.RuleKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.endpoint.group.ConsumerNamedSelector; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.endpoint.group.ConsumerNamedSelectorKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.endpoint.group.ProviderNamedSelector; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.endpoint.group.ProviderNamedSelectorKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.subject.feature.instances.ActionInstance; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.subject.feature.instances.ActionInstanceKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.subject.feature.instances.ClassifierInstance; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.subject.feature.instances.ClassifierInstanceKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.ForwardingContext; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.Policy; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.forwarding.context.L2BridgeDomain; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.forwarding.context.L2BridgeDomainKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.forwarding.context.L2FloodDomain; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.forwarding.context.L2FloodDomainKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.forwarding.context.L3Context; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.forwarding.context.L3ContextKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.forwarding.context.Subnet; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.forwarding.context.SubnetKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.Contract; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.ContractKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.EndpointGroup; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.EndpointGroupKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.ExternalImplicitGroup; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.ExternalImplicitGroupKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.SubjectFeatureInstances; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.contract.Clause; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.contract.ClauseKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.contract.Subject; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.contract.SubjectKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.contract.subject.Rule; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.contract.subject.RuleKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.endpoint.group.ConsumerNamedSelector; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.endpoint.group.ConsumerNamedSelectorKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.endpoint.group.ProviderNamedSelector; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.endpoint.group.ProviderNamedSelectorKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.subject.feature.instances.ActionInstance; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.subject.feature.instances.ActionInstanceKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.subject.feature.instances.ClassifierInstance; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.subject.feature.instances.ClassifierInstanceKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.RendererName; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.Renderers; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.Renderer; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.RendererKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.Capabilities; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.Interests; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.capabilities.SupportedActionDefinition; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.capabilities.SupportedClassifierDefinition; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.interests.FollowedTenants; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.interests.followed.tenants.FollowedTenant; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.interests.followed.tenants.FollowedTenantKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.interests.followed.tenants.followed.tenant.FollowedEndpointGroup; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.interests.followed.tenants.followed.tenant.FollowedEndpointGroupKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.statistics.store.rev151215.StatisticsStore; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.statistics.store.rev151215.statistics.store.StatisticRecord; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.statistics.store.rev151215.statistics.store.StatisticRecordKey; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public class IidFactory { @@ -78,7 +98,8 @@ public class IidFactory { throw new UnsupportedOperationException(); } - private static final InstanceIdentifier ENDPOINTS_IID = InstanceIdentifier.builder(Endpoints.class).build(); + private static final InstanceIdentifier ENDPOINTS_IID = + InstanceIdentifier.builder(Endpoints.class).build(); public static InstanceIdentifier tenantIid(TenantId id) { return InstanceIdentifier.builder(Tenants.class).child(Tenant.class, new TenantKey(id)).build(); @@ -87,6 +108,7 @@ public class IidFactory { public static InstanceIdentifier endpointGroupIid(TenantId tenantId, EndpointGroupId epgId) { return InstanceIdentifier.builder(Tenants.class) .child(Tenant.class, new TenantKey(tenantId)) + .child(Policy.class) .child(EndpointGroup.class, new EndpointGroupKey(epgId)) .build(); } @@ -94,14 +116,24 @@ public class IidFactory { public static InstanceIdentifier contractIid(TenantId tenantId, ContractId contractId) { return InstanceIdentifier.builder(Tenants.class) .child(Tenant.class, new TenantKey(tenantId)) + .child(Policy.class) .child(Contract.class, new ContractKey(contractId)) .build(); } + public static InstanceIdentifier contractWildcardIid(TenantId tenantId) { + return InstanceIdentifier.builder(Tenants.class) + .child(Tenant.class, new TenantKey(tenantId)) + .child(Policy.class) + .child(Contract.class) + .build(); + } + public static InstanceIdentifier subjectIid(TenantId tenantId, ContractId contractId, SubjectName subjectName) { return InstanceIdentifier.builder(Tenants.class) .child(Tenant.class, new TenantKey(tenantId)) + .child(Policy.class) .child(Contract.class, new ContractKey(contractId)) .child(Subject.class, new SubjectKey(subjectName)) .build(); @@ -111,6 +143,7 @@ public class IidFactory { EndpointGroupId epgId, SelectorName providerSelectorName) { return InstanceIdentifier.builder(Tenants.class) .child(Tenant.class, new TenantKey(tenantId)) + .child(Policy.class) .child(EndpointGroup.class, new EndpointGroupKey(epgId)) .child(ProviderNamedSelector.class, new ProviderNamedSelectorKey(providerSelectorName)) .build(); @@ -120,14 +153,17 @@ public class IidFactory { EndpointGroupId epgId, SelectorName consumerSelectorName) { return InstanceIdentifier.builder(Tenants.class) .child(Tenant.class, new TenantKey(tenantId)) + .child(Policy.class) .child(EndpointGroup.class, new EndpointGroupKey(epgId)) .child(ConsumerNamedSelector.class, new ConsumerNamedSelectorKey(consumerSelectorName)) .build(); } - public static InstanceIdentifier clauseIid(TenantId tenantId, ContractId contractId, ClauseName clauseName) { + public static InstanceIdentifier clauseIid(TenantId tenantId, ContractId contractId, + ClauseName clauseName) { return InstanceIdentifier.builder(Tenants.class) .child(Tenant.class, new TenantKey(tenantId)) + .child(Policy.class) .child(Contract.class, new ContractKey(contractId)) .child(Clause.class, new ClauseKey(clauseName)) .build(); @@ -137,6 +173,7 @@ public class IidFactory { RuleName ruleName) { return InstanceIdentifier.builder(Tenants.class) .child(Tenant.class, new TenantKey(tenantId)) + .child(Policy.class) .child(Contract.class, new ContractKey(contractId)) .child(Subject.class, new SubjectKey(subjectName)) .child(Rule.class, new RuleKey(ruleName)) @@ -146,6 +183,7 @@ public class IidFactory { public static InstanceIdentifier actionInstanceIid(TenantId tenantId, ActionName actionName) { return InstanceIdentifier.builder(Tenants.class) .child(Tenant.class, new TenantKey(tenantId)) + .child(Policy.class) .child(SubjectFeatureInstances.class) .child(ActionInstance.class, new ActionInstanceKey(actionName)) .build(); @@ -155,6 +193,7 @@ public class IidFactory { ClassifierName classifierName) { return InstanceIdentifier.builder(Tenants.class) .child(Tenant.class, new TenantKey(tenantId)) + .child(Policy.class) .child(SubjectFeatureInstances.class) .child(ClassifierInstance.class, new ClassifierInstanceKey(classifierName)) .build(); @@ -177,6 +216,7 @@ public class IidFactory { SubjectName subjectName, RuleName ruleName, ClassifierName classifierRefName) { return InstanceIdentifier.builder(Tenants.class) .child(Tenant.class, new TenantKey(tenantId)) + .child(Policy.class) .child(Contract.class, new ContractKey(contractId)) .child(Subject.class, new SubjectKey(subjectName)) .child(Rule.class, new RuleKey(ruleName)) @@ -184,9 +224,11 @@ public class IidFactory { .build(); } - public static InstanceIdentifier l2FloodDomainIid(TenantId tenantId, L2FloodDomainId l2FloodDomainId) { + public static InstanceIdentifier l2FloodDomainIid(TenantId tenantId, + L2FloodDomainId l2FloodDomainId) { return InstanceIdentifier.builder(Tenants.class) .child(Tenant.class, new TenantKey(tenantId)) + .child(ForwardingContext.class) .child(L2FloodDomain.class, new L2FloodDomainKey(l2FloodDomainId)) .build(); } @@ -195,6 +237,7 @@ public class IidFactory { L2BridgeDomainId l2BridgeDomainId) { return InstanceIdentifier.builder(Tenants.class) .child(Tenant.class, new TenantKey(tenantId)) + .child(ForwardingContext.class) .child(L2BridgeDomain.class, new L2BridgeDomainKey(l2BridgeDomainId)) .build(); } @@ -202,12 +245,14 @@ public class IidFactory { public static InstanceIdentifier l3ContextIid(TenantId tenantId, L3ContextId l3ContextId) { return InstanceIdentifier.builder(Tenants.class) .child(Tenant.class, new TenantKey(tenantId)) + .child(ForwardingContext.class) .child(L3Context.class, new L3ContextKey(l3ContextId)) .build(); } /** * Get the {@link Endpoint} {@link InstanceIdentifier} based on the {@link EndpointKey} + * * @param endpointKey The {@link EndpointKey} of a particular {@link Endpoint} * @return The {@link InstanceIdentifier} of the {@link Endpoint} */ @@ -219,16 +264,16 @@ public class IidFactory { return IidFactory.endpointIid(new EndpointKey(l2Context, macAddress)); } + public static InstanceIdentifier l3EndpointIid(EndpointL3Key endpointL3Key) { + return InstanceIdentifier.builder(Endpoints.class).child(EndpointL3.class, endpointL3Key).build(); + } + public static InstanceIdentifier l3EndpointIid(L3ContextId l3Context, IpAddress ipAddress) { - return InstanceIdentifier.builder(Endpoints.class) - .child(EndpointL3.class, new EndpointL3Key(ipAddress, l3Context)) - .build(); + return IidFactory.l3EndpointIid(new EndpointL3Key(ipAddress, l3Context)); } public static InstanceIdentifier l3EndpointsIidWildcard() { - return InstanceIdentifier.builder(Endpoints.class) - .child(EndpointL3.class) - .build(); + return InstanceIdentifier.builder(Endpoints.class).child(EndpointL3.class).build(); } public static InstanceIdentifier endpointL3PrefixIid(L3ContextId l3Context, IpPrefix ipPrefix) { @@ -244,9 +289,74 @@ public class IidFactory { public static InstanceIdentifier subnetIid(TenantId tenantId, SubnetId subnetId) { return InstanceIdentifier.builder(Tenants.class) .child(Tenant.class, new TenantKey(tenantId)) + .child(ForwardingContext.class) .child(Subnet.class, new SubnetKey(subnetId)) .build(); } + public static InstanceIdentifier subnetWildcardIid(TenantId tenantId) { + return InstanceIdentifier.builder(Tenants.class) + .child(Tenant.class, new TenantKey(tenantId)) + .child(ForwardingContext.class) + .child(Subnet.class) + .build(); + } + + public static InstanceIdentifier followedEndpointgroupIid(RendererName rendererName, + TenantId tenantId, EndpointGroupId epgId) { + return InstanceIdentifier.builder(Renderers.class) + .child(Renderer.class, new RendererKey(rendererName)) + .child(Interests.class) + .child(FollowedTenants.class) + .child(FollowedTenant.class, new FollowedTenantKey(tenantId)) + .child(FollowedEndpointGroup.class, new FollowedEndpointGroupKey(epgId)) + .build(); + } + + public static InstanceIdentifier supportedActionDefinitionIidWildcard() { + return InstanceIdentifier.builder(Renderers.class) + .child(Renderer.class) + .child(Capabilities.class) + .child(SupportedActionDefinition.class) + .build(); + } + + public static InstanceIdentifier supportedClassifierDefinitionIidWildcard() { + return InstanceIdentifier.builder(Renderers.class) + .child(Renderer.class) + .child(Capabilities.class) + .child(SupportedClassifierDefinition.class) + .build(); + } + + public static InstanceIdentifier statisticRecordIid(StatisticRecordKey key) { + return InstanceIdentifier.builder(StatisticsStore.class).child(StatisticRecord.class, key).build(); + } + + public static InstanceIdentifier followedTenantIid(RendererName rendererName, TenantId tenantId) { + return InstanceIdentifier.builder(Renderers.class) + .child(Renderer.class, new RendererKey(rendererName)) + .child(Interests.class) + .child(FollowedTenants.class) + .child(FollowedTenant.class, new FollowedTenantKey(tenantId)) + .build(); + } + + public static InstanceIdentifier rendererIid(RendererName rendererName) { + return InstanceIdentifier.builder(Renderers.class).child(Renderer.class, new RendererKey(rendererName)).build(); + } + + public static InstanceIdentifier renderersIid() { + return InstanceIdentifier.builder(Renderers.class).build(); + } + + public static InstanceIdentifier externalImplicitGroupIid(TenantId tenantId, + EndpointGroupId epgId) { + return InstanceIdentifier.builder(Tenants.class) + .child(Tenant.class, new TenantKey(tenantId)) + .child(Policy.class) + .child(ExternalImplicitGroup.class, new ExternalImplicitGroupKey(epgId)) + .build(); + } }