From: Tomas Cechvala Date: Tue, 17 May 2016 14:05:51 +0000 (+0200) Subject: Editing network containment of endpoints X-Git-Tag: release/boron~172^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=174bb5fadceb735919b12cf6bd70fdba3fea5a2e;p=groupbasedpolicy.git Editing network containment of endpoints Network containment can refer to - forwarding-context, e.g. l2-flood-domain - network-domain, e.g. subnet Signed-off-by: Tomas Cechvala --- diff --git a/groupbasedpolicy/src/main/yang/model/base-endpoint.yang b/groupbasedpolicy/src/main/yang/model/base-endpoint.yang index dbecfb9a1..ce394e27c 100644 --- a/groupbasedpolicy/src/main/yang/model/base-endpoint.yang +++ b/groupbasedpolicy/src/main/yang/model/base-endpoint.yang @@ -62,10 +62,17 @@ module base-endpoint { "The tenant with which this endpoint is associated"; } container network-containment { - description - "The network domain associated with this endpoint's fowarding - context."; - uses forwarding:network-domain-key; + choice containment { + description + "The network domain associated with this endpoint's fowarding + context."; + case network-domain-containment { + uses forwarding:network-domain-key; + } + case forwarding-context-containment { + uses forwarding:context-key; + } + } } leaf-list endpoint-group { type gbp-common:endpoint-group-id; diff --git a/groupbasedpolicy/src/main/yang/model/forwarding.yang b/groupbasedpolicy/src/main/yang/model/forwarding.yang index d39e0e4a4..d3394699f 100644 --- a/groupbasedpolicy/src/main/yang/model/forwarding.yang +++ b/groupbasedpolicy/src/main/yang/model/forwarding.yang @@ -29,7 +29,6 @@ module forwarding { identity context-type { description "Type of context."; - base network-domain; } typedef address-type-ref { diff --git a/groupbasedpolicy/src/test/java/org/opendaylight/groupbasedpolicy/base_endpoint/BaseEndpointRpcRegistryTest.java b/groupbasedpolicy/src/test/java/org/opendaylight/groupbasedpolicy/base_endpoint/BaseEndpointRpcRegistryTest.java index c26576f57..875043dee 100644 --- a/groupbasedpolicy/src/test/java/org/opendaylight/groupbasedpolicy/base_endpoint/BaseEndpointRpcRegistryTest.java +++ b/groupbasedpolicy/src/test/java/org/opendaylight/groupbasedpolicy/base_endpoint/BaseEndpointRpcRegistryTest.java @@ -9,6 +9,7 @@ package org.opendaylight.groupbasedpolicy.base_endpoint; import com.google.common.util.concurrent.CheckedFuture; + import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -19,6 +20,8 @@ import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFaile import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry; import org.opendaylight.groupbasedpolicy.api.BaseEndpointRendererAugmentation; import org.opendaylight.groupbasedpolicy.base_endpoint.BaseEndpointRpcRegistry; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.common.endpoint.fields.NetworkContainmentBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.common.endpoint.fields.network.containment.containment.NetworkDomainContainmentBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.register.endpoint.input.AddressEndpointRegKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.register.endpoint.input.ContainmentEndpointRegKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.*; @@ -26,7 +29,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpo import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.RegisterEndpointInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.UnregisterEndpointInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.UnregisterEndpointInputBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.common.endpoint.fields.NetworkContainmentBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.register.endpoint.input.AddressEndpointRegBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.register.endpoint.input.ContainmentEndpointRegBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.unregister.endpoint.input.AddressEndpointUnregBuilder; @@ -108,8 +110,8 @@ public class BaseEndpointRpcRegistryTest { .setAddress(MAC_ADDRESS) .setAddressType(MacAddressType.class) .setAddressType(AddressType.class) - .setNetworkContainment(new NetworkContainmentBuilder() - .setNetworkDomainId(new NetworkDomainId(DOMAIN)).setNetworkDomainType(Subnet.class).build()) + .setNetworkContainment(new NetworkContainmentBuilder().setContainment(new NetworkDomainContainmentBuilder() + .setNetworkDomainId(new NetworkDomainId(DOMAIN)).setNetworkDomainType(Subnet.class).build()).build()) .setKey(new AddressEndpointRegKey(MAC_ADDRESS,MacAddressType.class, new ContextId(CONTEXT_ID), L2FloodDomain.class)) .setTimestamp(timestamp).build()); @@ -119,8 +121,8 @@ public class BaseEndpointRpcRegistryTest { .setContextId(new L2FloodDomainId(FLOOD_DOMAIN)) .setContextType(L2FloodDomain.class) .setTenant(new TenantId(TENANT)) - .setNetworkContainment(new NetworkContainmentBuilder() - .setNetworkDomainId(new NetworkDomainId(DOMAIN)).setNetworkDomainType(Subnet.class).build()) + .setNetworkContainment(new NetworkContainmentBuilder().setContainment(new NetworkDomainContainmentBuilder() + .setNetworkDomainId(new NetworkDomainId(DOMAIN)).setNetworkDomainType(Subnet.class).build()).build()) .setKey(new ContainmentEndpointRegKey(new L2FloodDomainId(FLOOD_DOMAIN),L2FloodDomain.class)) .build()); diff --git a/location-providers/ne-location-provider/src/test/java/org/opendaylight/groupbasedpolicy/ne/location/provider/NeLocationProviderTest.java b/location-providers/ne-location-provider/src/test/java/org/opendaylight/groupbasedpolicy/ne/location/provider/NeLocationProviderTest.java index fc3260512..8f61ea2bf 100644 --- a/location-providers/ne-location-provider/src/test/java/org/opendaylight/groupbasedpolicy/ne/location/provider/NeLocationProviderTest.java +++ b/location-providers/ne-location-provider/src/test/java/org/opendaylight/groupbasedpolicy/ne/location/provider/NeLocationProviderTest.java @@ -39,6 +39,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpo import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.Endpoints; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.common.endpoint.fields.NetworkContainment; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.common.endpoint.fields.NetworkContainmentBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.common.endpoint.fields.network.containment.containment.NetworkDomainContainmentBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.AddressEndpoints; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.address.endpoints.AddressEndpoint; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.address.endpoints.AddressEndpointBuilder; @@ -150,7 +151,7 @@ public class NeLocationProviderTest extends CustomDataBrokerTest { public void test_AddressEndpointWrite_NoNE_Overwrite() throws Exception { test_AddressEndpointWrite_NoNE_NoOverwrite(); NetworkContainment nc = new NetworkContainmentBuilder() - .setNetworkDomainId(new NetworkDomainId(L3_CONTEXT_ID)) + .setContainment(new NetworkDomainContainmentBuilder().setNetworkDomainId(new NetworkDomainId(L3_CONTEXT_ID)).build()) .build(); InstanceIdentifier iid = InstanceIdentifier .builder(Endpoints.class) diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/SxpMapperReactorImpl.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/SxpMapperReactorImpl.java index 89bc8f48c..5723fae84 100644 --- a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/SxpMapperReactorImpl.java +++ b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/SxpMapperReactorImpl.java @@ -23,6 +23,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpo import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.RegisterEndpointInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.common.endpoint.fields.NetworkContainment; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.common.endpoint.fields.NetworkContainmentBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.common.endpoint.fields.network.containment.containment.NetworkDomainContainmentBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.AddressEndpoints; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.address.endpoints.AddressEndpoint; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.address.endpoints.AddressEndpointKey; @@ -73,8 +74,10 @@ public class SxpMapperReactorImpl implements SxpMapperReactor { // apply sxpMasterDB to policy template final Ipv4Prefix address = new Ipv4Prefix(epForwardingTemplate.getIpPrefix().getIpv4Prefix().getValue()); final NetworkContainment networkContainment = new NetworkContainmentBuilder() + .setContainment(new NetworkDomainContainmentBuilder() .setNetworkDomainType(epForwardingTemplate.getNetworkContainment().getNetworkDomainType()) .setNetworkDomainId(epForwardingTemplate.getNetworkContainment().getNetworkDomainId()) + .build()) .build(); final RegisterEndpointInput epInput = new RegisterEndpointInputBuilder() .setAddressEndpointReg(Collections.singletonList(new AddressEndpointRegBuilder()