From: Vladimir Lavor Date: Mon, 12 Dec 2016 13:29:15 +0000 (+0100) Subject: Address endpoint with no location is not counted into configuration X-Git-Tag: release/carbon~52 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=4aec2386ae8a32ec332dba77335e38ebd5b39a9c;p=groupbasedpolicy.git Address endpoint with no location is not counted into configuration Change-Id: Ide6f38453dcc738eabc4f1c3511be124cde82371 Signed-off-by: Vladimir Lavor --- diff --git a/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/renderer/RendererConfigurationBuilder.java b/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/renderer/RendererConfigurationBuilder.java index 00b343670..4799c960d 100644 --- a/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/renderer/RendererConfigurationBuilder.java +++ b/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/renderer/RendererConfigurationBuilder.java @@ -78,9 +78,13 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.p import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.resolved.policies.resolved.policy.policy.rule.group.with.endpoint.constraints.PolicyRuleGroupKey; import org.opendaylight.yangtools.yang.binding.Augmentation; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class RendererConfigurationBuilder { + private static final Logger LOG = LoggerFactory.getLogger(RendererConfigurationBuilder.class); + private final Table> policiesByEpAndPeerEp = HashBasedTable.create(); private final Table> policiesByEpAndPeerExtEp = @@ -265,8 +269,8 @@ public class RendererConfigurationBuilder { return peerExtContEps; } - public Endpoints buildEndoints(EndpointInfo epInfo, EndpointLocationInfo epLocInfo, - Map, RendererName> rendererByNode, Set augmentors) { + public Endpoints buildEndpoints(EndpointInfo epInfo, EndpointLocationInfo epLocInfo, + Map, RendererName> rendererByNode, Set augmentors) { List epsWithLoc = resolveEpsWithLoc(getAddressEndpointKeys(), epInfo, epLocInfo, rendererByNode, augmentors); List contEpsWithLoc = @@ -286,6 +290,10 @@ public class RendererConfigurationBuilder { Optional potentionalEpLoc = epLocInfo.getAdressEndpointLocation(epKey); Preconditions.checkArgument(potentionalEpLoc.isPresent()); RendererName rendererName = resolveRendererName(potentionalEpLoc.get(), rendererByNode); + if (rendererName == null) { + LOG.debug("Endpoint {} has no location, skipped", epKey); + continue; + } result.add(createEpWithLoc(potentialEp.get(), potentionalEpLoc.get(), rendererName, augmentors)); } return result; diff --git a/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/renderer/RendererManager.java b/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/renderer/RendererManager.java index c4590ee04..539397152 100644 --- a/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/renderer/RendererManager.java +++ b/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/renderer/RendererManager.java @@ -290,7 +290,7 @@ public class RendererManager implements AutoCloseable { private boolean writeRenderersConfigs(Map> configsByRendererName) { List renderers = new ArrayList<>(); for (RendererName rendererName : configsByRendererName.keySet()) { - RendererPolicy rendererPolicy = null; + RendererPolicy rendererPolicy; if (configsByRendererName.get(rendererName).isPresent()) { rendererPolicy = new RendererPolicyBuilder().setVersion(version) .setConfiguration(configsByRendererName.get(rendererName).get()) @@ -358,7 +358,7 @@ public class RendererManager implements AutoCloseable { configBuilder.setRendererEndpoints(rendererEndpoints); org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.renderer.policy.configuration.Endpoints endpoints = - rendererPolicyBuilder.buildEndoints(currentState.epInfo, currentState.epLocInfo, + rendererPolicyBuilder.buildEndpoints(currentState.epInfo, currentState.epLocInfo, currentState.rendererByNode, epAugmentorRegistry.getEndpointAugmentors()); configBuilder.setEndpoints(endpoints);