BMP: Sent/Received Open Message is not visible in DS 46/36246/5
authorMilos Fabian <milfabia@cisco.com>
Tue, 15 Mar 2016 11:28:07 +0000 (12:28 +0100)
committerRobert Varga <nite@hq.sk>
Mon, 18 Apr 2016 08:04:39 +0000 (08:04 +0000)
Instantiate codecs before initiating peer.
Enhance integration unit test to check presence of
sent and received Open message in DS.

Change-Id: Iad45750393bea9b68a1ad1f40def95f92d9e8fbd
Signed-off-by: Milos Fabian <milfabia@cisco.com>
bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/app/BmpRouterPeerImpl.java
bgp/bmp-impl/src/test/java/org/opendaylight/protocol/bmp/impl/app/BmpMonitorImplTest.java

index 2a88aa0b678bcc2023488c5522be1f61871cd9fa..5c38a8a9667822de6d55bfbb57ead7ef40bff9f6 100644 (file)
@@ -104,20 +104,15 @@ public final class BmpRouterPeerImpl implements BmpRouterPeer {
 
     private static final TablesKey DEFAULT_TABLE = new TablesKey(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class);
 
-    private static final InstanceIdentifier<SentOpen> SENT_OPEN_IID = InstanceIdentifier.builder(BmpMonitor.class)
+    private static final InstanceIdentifier<PeerSession> PEER_SESSION_ID = InstanceIdentifier.builder(BmpMonitor.class)
             .child(Monitor.class)
             .child(Router.class)
             .child(Peer.class)
-            .child(PeerSession.class)
-            .child(SentOpen.class)
-            .build();
-    private static final InstanceIdentifier<ReceivedOpen> RECEIVED_OPEN_IID = InstanceIdentifier.builder(BmpMonitor.class)
-            .child(Monitor.class)
-            .child(Router.class)
-            .child(Peer.class)
-            .child(PeerSession.class)
-            .child(ReceivedOpen.class)
-            .build();
+            .child(PeerSession.class).build();
+
+    private static final InstanceIdentifier<SentOpen> SENT_OPEN_IID = PEER_SESSION_ID.child(SentOpen.class);
+
+    private static final InstanceIdentifier<ReceivedOpen> RECEIVED_OPEN_IID = PEER_SESSION_ID.child(ReceivedOpen.class);
 
     private final DOMTransactionChain domTxChain;
     private final PeerId peerId;
@@ -134,6 +129,8 @@ public final class BmpRouterPeerImpl implements BmpRouterPeer {
         this.domTxChain = Preconditions.checkNotNull(domTxChain);
         this.peerId = peerId;
         this.peerYangIId = YangInstanceIdentifier.builder(peersYangIId).nodeWithKey(Peer.QNAME, PEER_ID_QNAME, this.peerId.getValue()).build();
+        this.sentOpenCodec = tree.getSubtreeCodec(SENT_OPEN_IID);
+        this.receivedOpenCodec = tree.getSubtreeCodec(RECEIVED_OPEN_IID);
 
         final Set<TablesKey> peerTables = setPeerTables(peerUp.getReceivedOpen());
         final DOMDataWriteTransaction wTx = this.domTxChain.newWriteOnlyTransaction();
@@ -143,8 +140,6 @@ public final class BmpRouterPeerImpl implements BmpRouterPeer {
                 this.domTxChain, extensions, peerTables, tree);
         this.postPolicyWriter = BmpRibInWriter.create(this.peerYangIId.node(PostPolicyRib.QNAME).node(BMP_TABLES_QNAME),
                 this.domTxChain, extensions, peerTables, tree);
-        this.sentOpenCodec = tree.getSubtreeCodec(SENT_OPEN_IID);
-        this.receivedOpenCodec = tree.getSubtreeCodec(RECEIVED_OPEN_IID);
     }
 
     public static BmpRouterPeer createRouterPeer(final DOMTransactionChain domTxChain,
@@ -254,14 +249,10 @@ public final class BmpRouterPeerImpl implements BmpRouterPeer {
                         ImmutableNodes.leafNode(PEER_UP_TIMESTAMP_QNAME,
                                 timestamp.getValue()));
         if (this.receivedOpenCodec != null) {
-            builder.withChild(Builders.containerBuilder(
-                    (ContainerNode) this.receivedOpenCodec.serialize(peerUp
-                            .getReceivedOpen())).build());
+            builder.withChild((ContainerNode) this.receivedOpenCodec.serialize(peerUp.getReceivedOpen()));
         }
         if (this.sentOpenCodec != null) {
-            builder.withChild(Builders.containerBuilder(
-                    (ContainerNode) this.sentOpenCodec.serialize(peerUp
-                            .getSentOpen())).build());
+            builder.withChild((ContainerNode) this.sentOpenCodec.serialize(peerUp.getSentOpen()));
         }
         return builder.build();
     }
index 5d2dfd969e13795a5b7eec03f2776b19802d1c33..b0c34bc979ba11b155b2e63c867067a3647af2f4 100644 (file)
@@ -262,6 +262,8 @@ public class BmpMonitorImplTest extends AbstractDataBrokerTest {
             assertEquals(TestUtil.PEER_LOCAL_PORT, peerSession.getLocalPort());
             assertEquals(TestUtil.PEER_REMOTE_PORT, peerSession.getRemotePort());
             assertEquals(Status.Up, peerSession.getStatus());
+            assertNotNull(peerSession.getReceivedOpen());
+            assertNotNull(peerSession.getSentOpen());
 
             final StatsReportsMessage statsMsg = TestUtil.createStatsReportMsg(PEER1);
             channel.writeAndFlush(statsMsg);