Address endpoint with no location is not counted into configuration 44/49244/12
authorVladimir Lavor <vlavor@cisco.com>
Mon, 12 Dec 2016 13:29:15 +0000 (14:29 +0100)
committerVladimir Lavor <vlavor@cisco.com>
Tue, 17 Jan 2017 16:05:51 +0000 (17:05 +0100)
Change-Id: Ide6f38453dcc738eabc4f1c3511be124cde82371
Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/renderer/RendererConfigurationBuilder.java
groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/renderer/RendererManager.java

index 00b343670899bea860a900363b7426550cdd4150..4799c960d8090c14316e93c89b1461a177fabe3c 100644 (file)
@@ -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<RendererEndpointKey, PeerEndpointKey, Set<RuleGroupWithRendererEndpointParticipation>> policiesByEpAndPeerEp =
             HashBasedTable.create();
     private final Table<RendererEndpointKey, PeerExternalEndpointKey, Set<RuleGroupWithRendererEndpointParticipation>> policiesByEpAndPeerExtEp =
@@ -265,8 +269,8 @@ public class RendererConfigurationBuilder {
         return peerExtContEps;
     }
 
-    public Endpoints buildEndoints(EndpointInfo epInfo, EndpointLocationInfo epLocInfo,
-            Map<InstanceIdentifier<?>, RendererName> rendererByNode, Set<EndpointAugmentor> augmentors) {
+    public Endpoints buildEndpoints(EndpointInfo epInfo, EndpointLocationInfo epLocInfo,
+                                    Map<InstanceIdentifier<?>, RendererName> rendererByNode, Set<EndpointAugmentor> augmentors) {
         List<AddressEndpointWithLocation> epsWithLoc =
                 resolveEpsWithLoc(getAddressEndpointKeys(), epInfo, epLocInfo, rendererByNode, augmentors);
         List<ContainmentEndpointWithLocation> contEpsWithLoc =
@@ -286,6 +290,10 @@ public class RendererConfigurationBuilder {
             Optional<AddressEndpointLocation> 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;
index c4590ee04d80f9330a8363d31411c1f6efb3efb5..5393971525bb36ceeb1e7ba23475f0fb0183e08c 100644 (file)
@@ -290,7 +290,7 @@ public class RendererManager implements AutoCloseable {
     private boolean writeRenderersConfigs(Map<RendererName, Optional<Configuration>> configsByRendererName) {
         List<Renderer> 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);