controller.git
8 years agoBug 2853 : Adding Remote RPC MX bean 58/19358/2
Harman Singh [Thu, 30 Apr 2015 01:26:44 +0000 (18:26 -0700)]
Bug 2853 : Adding Remote RPC MX bean

This bean gives three attributes - bucket versions,local registered routed rpc names and global rpc
bucket versions will give information of latest version of remote rpc buckets on all nodes of cluster.
Name of locally registered RPCs can be found in other two attributes.

Two Search operations - findByRpcName and findByRpcRoute helps to search RPCs registered in cluster
via name or route keyword. Search happens in both local and remote bucket.

Change-Id: Ief08eb2e42deafdf2627c61e58c2e2a50f7dcd09
Signed-off-by: Harman Singh <harmasin@cisco.com>
8 years agoMerge "BUG-2288: deprecate old binding Notification API elements"
Tony Tkacik [Thu, 30 Apr 2015 14:53:02 +0000 (14:53 +0000)]
Merge "BUG-2288: deprecate old binding Notification API elements"

8 years agoMerge "Return local shard tree from FindPrimaryShard"
Tom Pantelis [Thu, 30 Apr 2015 05:16:37 +0000 (05:16 +0000)]
Merge "Return local shard tree from FindPrimaryShard"

8 years agoMerge "Add documentation in akka.conf on how to specify location of persistent data"
Tom Pantelis [Thu, 30 Apr 2015 03:05:10 +0000 (03:05 +0000)]
Merge "Add documentation in akka.conf on how to specify location of persistent data"

8 years agoReturn local shard tree from FindPrimaryShard 56/19356/1
Tom Pantelis [Tue, 21 Apr 2015 20:09:20 +0000 (16:09 -0400)]
Return local shard tree from FindPrimaryShard

Added a new ShardLeaderStateChanged message that includes the Shard's
DataTree as an Optional. If the shard is the leader, it returns it's
local DataTree, oherwise returns absent.

The ShardManager now returns a LocalPrimaryShardFound response to
FindPrimary if the shard's DataTree is present. Otherwise it returns
RemotePrimaryShardFound (renamed from PrimaryFound).

Change-Id: I4413aacfff3d3d2ee89df7c4a3a1d7f7c3d2c486
Signed-off-by: Tom Pantelis <tpanteli@brocade.com>
(cherry picked from commit fdddb482b07c3ee2f3ca853d09ee9a6ecdd7eb2a)

8 years agoAdd documentation in akka.conf on how to specify location of persistent data 02/17202/7
Moiz Raja [Thu, 26 Mar 2015 22:21:47 +0000 (15:21 -0700)]
Add documentation in akka.conf on how to specify location of persistent data

Change-Id: I085656d2b060aca2eae78dc85a9c0f660dcb9e3c
Signed-off-by: Moiz Raja <moraja@cisco.com>
(cherry picked from commit 7c209b8b08b56022b11c842c141d90d5b3d736e2)

8 years agoBUG 3054 : Check readiness status of datastore when receiving MemberUp. 50/19250/3
Moiz Raja [Tue, 28 Apr 2015 18:15:51 +0000 (11:15 -0700)]
BUG 3054 : Check readiness status of datastore when receiving MemberUp.

A Follower knows who the Leader is when it receives an AppendEntries message,
however it does record the address of the leader, that is supplied by the
ShardManager when the ShardManager receives a MemberUp. The Follower cannot
be considered ready till it knows both who the leader is and what is it's
address. This patch ensures that the ShardManager counts down the readiness
latch only when the follower knows both.

This also ensures that FindPrimaryShard will only return a primary if the Leader
is truly known.

Change-Id: I1cd6b62124d50c9eca37368d0379b0c75168bb76
Signed-off-by: Moiz Raja <moraja@cisco.com>
(cherry picked from commit bc5e040c7362243607e04045ac9d9309817bb9c1)

8 years agoBUG 3054 : Move ShardManager ready check into a single method. 48/19248/8
Moiz Raja [Tue, 28 Apr 2015 17:58:08 +0000 (10:58 -0700)]
BUG 3054 : Move ShardManager ready check into a single method.

Small refactoring to move code which checks for readiness into a
private method instead of duplicating it inline

Change-Id: I60cd603cb015c8602591769f1f931ae8580cfbd8
Signed-off-by: Moiz Raja <moraja@cisco.com>
(cherry picked from commit 7159b15b0efedb548f7fae5bb1eb9e970bc2e43f)

8 years agoMerge "Bug 2932: NPE on bundle activation"
Tony Tkacik [Wed, 29 Apr 2015 16:57:29 +0000 (16:57 +0000)]
Merge "Bug 2932: NPE on bundle activation"

8 years agoAdd {PHYS_ADDR} attribute to netconf stress client tool 04/18904/7
Tomas Cere [Mon, 27 Apr 2015 14:02:32 +0000 (16:02 +0200)]
Add {PHYS_ADDR} attribute to netconf stress client tool

{PHYS_ADDR} is a wildcard and will be replaced by a physical address based on
current edit indes. Suitable for testing edit-config performance with models
containing physical address.

Change-Id: I48a0a6eb2ccf903dadc02c87d9eb9dfcfe7bac07
Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
Signed-off-by: Tomas Cere <tcere@cisco.com>
8 years agoFix checkstyle violations caused by checkstyle 6.1.1 72/19272/1
Thanh Ha [Wed, 29 Apr 2015 02:25:15 +0000 (22:25 -0400)]
Fix checkstyle violations caused by checkstyle 6.1.1

Change-Id: I84f356707f97184ae8708e429c6b440db8bd632f
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
8 years agoMerge "Bug 2983: Added support for creation of multiple list entries"
Ed Warnicke [Mon, 27 Apr 2015 19:17:38 +0000 (19:17 +0000)]
Merge "Bug 2983: Added support for creation of multiple list entries"

8 years agoBug 2932: NPE on bundle activation 98/18798/8
Marian Dubai [Wed, 22 Apr 2015 07:53:21 +0000 (09:53 +0200)]
Bug 2932: NPE on bundle activation

Error might occured when value containing YangStoreContext
is overwritten to null by refresh method, executed within another thread.
After fix, in case context is null, context is calculated again.

Change-Id: Icefe2a5970ec2ce0b67d5b3b386a35f781fc4156
Signed-off-by: Marian Dubai <mdubai@cisco.com>
8 years agoMerge "Event Source: switch from wildcards to regexs"
Tony Tkacik [Mon, 27 Apr 2015 08:34:09 +0000 (08:34 +0000)]
Merge "Event Source: switch from wildcards to regexs"

8 years agoMerge "BUG 3029 - netconf event source modification - add TopicId into published...
Tony Tkacik [Mon, 27 Apr 2015 08:30:18 +0000 (08:30 +0000)]
Merge "BUG 3029 - netconf event source modification    - add TopicId into published notifications"

8 years agoBug 3063 - Notification brokers does not properly scans notification listeners for... 05/19105/1
Martin Bobak [Sun, 26 Apr 2015 14:00:33 +0000 (16:00 +0200)]
Bug 3063 - Notification brokers does not properly scans notification listeners for implemented interfaces

Change-Id: Ie3b136bd40c443191d22bfbfd0ea532b65f717c2
Signed-off-by: Martin Bobak <mbobak@cisco.com>
8 years agoFix sal-akka-raft-example package directory 99/19099/1
Tom Pantelis [Fri, 24 Apr 2015 02:04:13 +0000 (22:04 -0400)]
Fix sal-akka-raft-example package directory

The sal-akka-raft-example component was created with package directory names
starting with "opendaylight.controller...". It should be
"org.opendaylight.controller...".

Change-Id: Ie6fa043fe83c8cff28bbd125eaeb79de811ca8b9
Signed-off-by: Tom Pantelis <tpanteli@brocade.com>
(cherry picked from commit 36955e19a84ad3e636c3343fec85c0cb9c3e49f6)

8 years agoMerge "Bumped controller version by minor for next release cycle."
Tony Tkacik [Fri, 24 Apr 2015 22:09:43 +0000 (22:09 +0000)]
Merge "Bumped controller version by minor for next release cycle."

8 years agoMerge "Fix ReplicationAndSnapshotsIntegrationTest failure"
Tony Tkacik [Fri, 24 Apr 2015 21:15:56 +0000 (21:15 +0000)]
Merge "Fix ReplicationAndSnapshotsIntegrationTest failure"

8 years agoBug 2983: Added support for creation of multiple list entries 16/19016/2
Tony Tkacik [Fri, 24 Apr 2015 12:59:07 +0000 (14:59 +0200)]
Bug 2983: Added support for creation of multiple list entries

JSON payload for POST allows user to specify multiple list
entries to be created. This resulted in confusing behaviour
where only one entry was allowed.

Updated RESTCONF to allow multiple entry creation via POST
for lists only.

Change-Id: I7dc11098676d4e761e1b31a0504f3e5af75157f3
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
8 years agoMerge "Remove local override of odlparent version for org.eclipse.persistence.version"
Moiz Raja [Fri, 24 Apr 2015 17:57:10 +0000 (17:57 +0000)]
Merge "Remove local override of odlparent version for org.eclipse.persistence.version"

8 years agoRemove local override of odlparent version for org.eclipse.persistence.version 37/19037/1
Ed Warnicke [Fri, 24 Apr 2015 17:13:25 +0000 (10:13 -0700)]
Remove local override of odlparent version for org.eclipse.persistence.version

Change-Id: I297cc9ddae7958ba2d1c72c76e1b5b6d19ebc290
Signed-off-by: Ed Warnicke <hagbard@gmail.com>
8 years agoBumped controller version by minor for next release cycle. 23/18923/4
Tony Tkacik [Thu, 23 Apr 2015 14:19:33 +0000 (14:19 +0000)]
Bumped controller version by minor for next release cycle.

Change-Id: I80ea0aecf42e5ee96dcebc68af1e872b1f10e7b5
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
8 years agoMerge "NPE in RaftActor#onGetOnDemandRaftStats"
Tom Pantelis [Fri, 24 Apr 2015 16:12:30 +0000 (16:12 +0000)]
Merge "NPE in RaftActor#onGetOnDemandRaftStats"

8 years agoMerge "Fix NoSuchElementException thrown when transaction is empty"
Tom Pantelis [Fri, 24 Apr 2015 15:57:37 +0000 (15:57 +0000)]
Merge "Fix NoSuchElementException thrown when transaction is empty"

8 years agoMerge "Use ImmutableNodes.fromInstanceId in netconf"
Tony Tkacik [Fri, 24 Apr 2015 15:43:20 +0000 (15:43 +0000)]
Merge "Use ImmutableNodes.fromInstanceId in netconf"

8 years agoMerge "Improve performance of XmlElement.getName"
Tony Tkacik [Fri, 24 Apr 2015 15:42:27 +0000 (15:42 +0000)]
Merge "Improve performance of XmlElement.getName"

8 years agoMerge "Fix test failure in TopologyManagerImplTest#testNotifyNodeConnector"
Tony Tkacik [Fri, 24 Apr 2015 15:30:23 +0000 (15:30 +0000)]
Merge "Fix test failure in TopologyManagerImplTest#testNotifyNodeConnector"

8 years agoFix NoSuchElementException thrown when transaction is empty 24/19024/2
Moiz Raja [Fri, 24 Apr 2015 15:02:33 +0000 (08:02 -0700)]
Fix NoSuchElementException thrown when transaction is empty

Change-Id: I5d2c26a1ff3d8f5b8ace893b7206da2d23bf637c
Signed-off-by: Moiz Raja <moraja@cisco.com>
8 years agoMerge "Fix CloseTransactionChain NotSerializableException"
Moiz Raja [Fri, 24 Apr 2015 14:08:01 +0000 (14:08 +0000)]
Merge "Fix CloseTransactionChain NotSerializableException"

8 years agoMerge topic 'li/cleanup/javassist'
Tom Pantelis [Fri, 24 Apr 2015 13:43:21 +0000 (13:43 +0000)]
Merge topic 'li/cleanup/javassist'

* changes:
  Removed unused implementation code from Binding MD-SAL.
  Migrated Hydrogen Notification Broker to not use Javassist.

8 years agoMerge "Stop SubtreeFitler from rereading reply even if no filter element is present."
Tony Tkacik [Fri, 24 Apr 2015 13:17:43 +0000 (13:17 +0000)]
Merge "Stop SubtreeFitler from rereading reply even if no filter element is present."

8 years agoMerge "Tests for CDS DataTreeChangedListener"
Tom Pantelis [Fri, 24 Apr 2015 11:58:19 +0000 (11:58 +0000)]
Merge "Tests for CDS DataTreeChangedListener"

8 years agoMerge "Use ImmutableNodes.fromInstanceId in restconf"
Tony Tkacik [Fri, 24 Apr 2015 11:47:01 +0000 (11:47 +0000)]
Merge "Use ImmutableNodes.fromInstanceId in restconf"

8 years agoRemoved unused implementation code from Binding MD-SAL. 56/18256/5
Tony Tkacik [Wed, 8 Apr 2015 12:40:25 +0000 (14:40 +0200)]
Removed unused implementation code from Binding MD-SAL.

Change-Id: I9da77e3bb10b70dba1d97429f06cde31831d62d5
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
8 years agoUse ImmutableNodes.fromInstanceId in netconf 02/18802/7
Maros Marsalek [Wed, 22 Apr 2015 07:32:31 +0000 (09:32 +0200)]
Use ImmutableNodes.fromInstanceId in netconf

Build normalized node strcuture from Yang Instance Id using new utilities from
yang-data-impl.

Change-Id: I1862d17e2356b965d4875ce5e715891cf94b17fb
Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
8 years agoMerge "BUG 3045 : Use non-strict parsing in hello message."
Tony Tkacik [Fri, 24 Apr 2015 10:18:05 +0000 (10:18 +0000)]
Merge "BUG 3045 : Use non-strict parsing in hello message."

8 years agoMerge "Create transaction on the backend datastore only when neccessary"
Tony Tkacik [Fri, 24 Apr 2015 10:09:48 +0000 (10:09 +0000)]
Merge "Create transaction on the backend datastore only when neccessary"

8 years agoMerge "Reduce non-existent Tx chain logging on close in ShardDataTree"
Moiz Raja [Fri, 24 Apr 2015 10:03:18 +0000 (10:03 +0000)]
Merge "Reduce non-existent Tx chain logging on close in ShardDataTree"

8 years agoMerge "Return local shard's DataTree from ActorContext#findPrimaryShardAsync"
Moiz Raja [Fri, 24 Apr 2015 10:02:16 +0000 (10:02 +0000)]
Merge "Return local shard's DataTree from ActorContext#findPrimaryShardAsync"

8 years agoBUG 3029 - netconf event source modification 85/18985/1
Marian Adamjak [Wed, 22 Apr 2015 06:04:32 +0000 (08:04 +0200)]
BUG 3029 - netconf event source modification
   - add TopicId into published notifications

Change-Id: I9ff95935fd37c2978a7e41d77646546adc30d4d2
Signed-off-by: Marian Adamjak <madamjak@cisco.com>
8 years agoMigrated Hydrogen Notification Broker to not use Javassist. 20/18820/3
Tony Tkacik [Wed, 22 Apr 2015 11:30:54 +0000 (13:30 +0200)]
Migrated Hydrogen Notification Broker to not use Javassist.

Change-Id: Id85deca318041be5bbe97d18d484004daf5e290d
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
8 years agoMerge "Tests for DOMDataTreeListener"
Tom Pantelis [Fri, 24 Apr 2015 02:53:32 +0000 (02:53 +0000)]
Merge "Tests for DOMDataTreeListener"

8 years agoMerge "Moved legacy Notification implementation to compat package."
Tom Pantelis [Fri, 24 Apr 2015 02:52:17 +0000 (02:52 +0000)]
Merge "Moved legacy Notification implementation to compat package."

8 years agoMerge "Replaced Helium Notification Broker with new Notifcation Broker."
Tom Pantelis [Fri, 24 Apr 2015 02:51:38 +0000 (02:51 +0000)]
Merge "Replaced  Helium Notification Broker with new Notifcation Broker."

8 years agoMerge "Make TransactionProxy.isRootPath() static"
Tom Pantelis [Fri, 24 Apr 2015 00:42:10 +0000 (00:42 +0000)]
Merge "Make TransactionProxy.isRootPath() static"

8 years agoMerge "Bug 3024 - Restconf PUT exception when top level node is from augmentation"
Tony Tkacik [Thu, 23 Apr 2015 21:15:25 +0000 (21:15 +0000)]
Merge "Bug 3024 - Restconf PUT exception when top level node is from augmentation"

8 years agoMerge "IMDS: trim down commit overhead"
Tony Tkacik [Thu, 23 Apr 2015 18:01:05 +0000 (18:01 +0000)]
Merge "IMDS: trim down commit overhead"

8 years agoMerge "Publish SnapshotBacked transactions"
Tony Tkacik [Thu, 23 Apr 2015 18:00:30 +0000 (18:00 +0000)]
Merge "Publish SnapshotBacked transactions"

8 years agoBug 3024 - Restconf PUT exception when top level node is from 65/18765/6
Jan Hajnar [Tue, 21 Apr 2015 17:11:52 +0000 (19:11 +0200)]
Bug 3024 - Restconf PUT exception when top level node is from
augmentation

* added check for PUT into JsonNormalizedNodeBodyReader. If method is
PUT then data are unwraped from augmentations/choice nodes
* added wrapping of augmentation nodes when using XmlNormalizedNodeBodyReader
* commented out check for namespace in createConfigurationData (it should be
moved to parse stage)
* both XmlNormalizedNodeBodyReader and JsonNormalizedNodeBodyReader
should now produce the same normalized node data and paths for
equivalent XML and JSON input.

Change-Id: I21f4594d20170f33177cbae00791b81f6ae640b2
Signed-off-by: Jan Hajnar <jhajnar@cisco.com>
8 years agoMerge "Fix ShardTest#testCreateSnapshot unit test failures"
Moiz Raja [Thu, 23 Apr 2015 17:08:12 +0000 (17:08 +0000)]
Merge "Fix ShardTest#testCreateSnapshot unit test failures"

8 years agoMerge "CDS: switch persistence to persisting the candidates"
Moiz Raja [Thu, 23 Apr 2015 17:07:28 +0000 (17:07 +0000)]
Merge "CDS: switch persistence to persisting the candidates"

8 years agoCreate transaction on the backend datastore only when neccessary 39/18839/3
Moiz Raja [Wed, 22 Apr 2015 13:42:05 +0000 (06:42 -0700)]
Create transaction on the backend datastore only when neccessary

I've borrowed a bunch of code from the data broker because I needed to modify
the code for lazy transaction creation which needed me to pass around the
factories for creating the transaction on the appropriate store.

Basic tests are in place for now which ensure
that we do not create transactions on all the stores when not needed and that on
submit we only have cohorts for the transactions that we created.

The data broker still goes through the three phase commit but since now this has
been optimized with the direct commit enhancement on the datastore itself it should
not matter if we call one method or 4 as far as message passing goes. Calling the 4 methods
may result in extra object creation and such which could be avoided. I would put that in
a follow up commit.

Change-Id: Id77bb1642748e7df15e084a3f0b5e580783f2f8d
Signed-off-by: Moiz Raja <moraja@cisco.com>
8 years agoFix ReplicationAndSnapshotsIntegrationTest failure 32/19032/1
Tom Pantelis [Thu, 23 Apr 2015 13:25:11 +0000 (09:25 -0400)]
Fix ReplicationAndSnapshotsIntegrationTest failure

Saw this fail sproradically a few times on jenkins with
InvalidActorNameException trying to kill and re-create the actor with
the same name. We wait for the actor to terminate but it seems it may
not be removed from akka at that point. So I added a retry loop for
creating the actor.

Change-Id: Ia2d7388b00df329d62a4683a18f49067cfdc17a0
Signed-off-by: Tom Pantelis <tpanteli@brocade.com>
8 years agoMake TransactionProxy.isRootPath() static 18/18918/1
Robert Varga [Thu, 23 Apr 2015 13:20:23 +0000 (15:20 +0200)]
Make TransactionProxy.isRootPath() static

Its result depends only on the argument, so make it static.

Change-Id: I8a117974a57f4f1e96d06b6223152387d33519d4
Signed-off-by: Robert Varga <rovarga@cisco.com>
8 years agoFix TestModel whitespace and warning 14/18914/2
Robert Varga [Thu, 23 Apr 2015 11:25:43 +0000 (13:25 +0200)]
Fix TestModel whitespace and warning

Migrates the new yang parser interfaces and cleans up whitespace to
follow coding style.

Change-Id: Iefe7893e51d24192b2f4ce4da14b351d348e76ea
Signed-off-by: Robert Varga <rovarga@cisco.com>
8 years agoIMDS: trim down commit overhead 46/18846/5
Robert Varga [Wed, 22 Apr 2015 14:17:57 +0000 (16:17 +0200)]
IMDS: trim down commit overhead

After refactoring things out it is quite obvious that we can skip adding
a listener to the commit cohort when committing a chained transaction.

Extract the inner class from InMemoryDOMDataStore so it can be reused
and subclass it in ChainedTransactionCommitImpl. That makes it also
obvious our commit cannot fail.

Change-Id: I71d9fa60cf63d826ba066c381d8db91af7f8f31e
Signed-off-by: Robert Varga <rovarga@cisco.com>
8 years agoPublish SnapshotBacked transactions 43/18843/6
Robert Varga [Wed, 22 Apr 2015 12:36:13 +0000 (14:36 +0200)]
Publish SnapshotBacked transactions

IMDS-internal transaction implementations can be used by the CDS
frontend. Fix them up for publishing and make them available in SPI as a
Beta API.

Change-Id: Iaa4cd6792db0f262ce41281280f2ccfde6146532
Signed-off-by: Robert Varga <rovarga@cisco.com>
8 years agoCDS: switch persistence to persisting the candidates 91/18591/27
Robert Varga [Sat, 18 Apr 2015 22:35:57 +0000 (00:35 +0200)]
CDS: switch persistence to persisting the candidates

With us being in control of the DataTree, we can now use
DataTreeCandidate for replication and persistence. Add the appropriate
payload and add appropriate hooks.

Exposing the DataTreeCandidate from the cohort is actually pushing
towards having our own cohort type -- ShardDataTreeCohort. With that we
can get rid of DOMStoreThreePhaseCommitCohort, so eliminate its mention
to prevent accidental leakage.

Change-Id: I37a22b445f955330193c762894764feee94bebdb
Signed-off-by: Robert Varga <rovarga@cisco.com>
8 years agoNPE in RaftActor#onGetOnDemandRaftStats 54/18854/4
Tom Pantelis [Wed, 22 Apr 2015 06:09:15 +0000 (02:09 -0400)]
NPE in RaftActor#onGetOnDemandRaftStats

I had a 3 node setup with 1 node down and when I tried to access the
shard info via JConsole I saw this exception :

java.lang.NullPointerException: null value in entry:
member-3-shard-car-config=null
        at
com.google.common.collect.CollectPreconditions.checkEntryNotNull(CollectPreconditions.java:33)[114:com.google.guava:18.0.0]
        at
com.google.common.collect.RegularImmutableMap.<init>(RegularImmutableMap.java:88)[114:com.google.guava:18.0.0]
        at
com.google.common.collect.ImmutableMap.copyOf(ImmutableMap.java:294)[114:com.google.guava:18.0.0]
        at
org.opendaylight.controller.cluster.raft.RaftActor.onGetOnDemandRaftStats(RaftActor.java:247)[227:org.opendaylight.controller.sal-akka-raft:1.2.0.SNAPSHOT]

The peer address in the map for the down node was null which
ImmutableMap.copyOf doesn't like. I changed it to HashMap.

Change-Id: If9e0dfb3f7f213c11c99d98a5fd9c804c0876776
Signed-off-by: Tom Pantelis <tpanteli@brocade.com>
8 years agoFix test failure in TopologyManagerImplTest#testNotifyNodeConnector 19/19019/1
Tom Pantelis [Thu, 23 Apr 2015 11:12:17 +0000 (07:12 -0400)]
Fix test failure in TopologyManagerImplTest#testNotifyNodeConnector

Saw a sporadic test failure on jenkins:

java.lang.AssertionError: expected:<2> but was:<1>
        at org.junit.Assert.fail(Assert.java:88)
        at org.junit.Assert.failNotEquals(Assert.java:743)
        at org.junit.Assert.assertEquals(Assert.java:118)
        at org.junit.Assert.assertEquals(Assert.java:555)
        at org.junit.Assert.assertEquals(Assert.java:542)
        at
org.opendaylight.controller.topologymanager.internal.TopologyManagerImplTest.testNotifyNodeConnector(TopologyManagerImplTest.java:835)

The test flushes the pending queue and does a 1 sec sleep before
asserting but that might not be enough time so I added a 5 sec loop to
verify the expected edges map size.

Change-Id: Id7deaab93888819b71c286ca85864068f4d5dac6
Signed-off-by: Tom Pantelis <tpanteli@brocade.com>
8 years agoUse ImmutableNodes.fromInstanceId in restconf 03/18803/3
Maros Marsalek [Wed, 22 Apr 2015 07:34:42 +0000 (09:34 +0200)]
Use ImmutableNodes.fromInstanceId in restconf

Build normalized node strcuture from Yang Instance Id using new utilities from
yang-data-impl.

Change-Id: Iee74bc0a7529b0fe7b901c04d2e26f9e2e60fac1
Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
8 years agoBUG 3045 : Use non-strict parsing in hello message. 52/18852/3
Tomas Cere [Wed, 22 Apr 2015 14:46:31 +0000 (16:46 +0200)]
BUG 3045 : Use non-strict parsing in hello message.

Made NetconfMessageTransformer use non-strict parsing mode when parsing
hello message.

Change-Id: I02cbaa1dccc82409292e1c3f186ad05877297135
Signed-off-by: Tomas Cere <tcere@cisco.com>
8 years agoFix ShardTest#testCreateSnapshot unit test failures 79/18879/4
Tom Pantelis [Wed, 22 Apr 2015 10:54:07 +0000 (06:54 -0400)]
Fix ShardTest#testCreateSnapshot unit test failures

This unit test is failing on jenkins quite often due to a timing issue
with the tests resulting from recent changes. Basically akka uses a
calling thread dispatcher by default so the call to
createSnapshotProcedure in the SnapshotManager may result in a direct
call to persist which fails b/c it's still in the Idle state. Moving the
setting of currentState to CREATING prior to calling
createSnapshotProcedure fixes the issue.

Change-Id: If68333d042896e25fd3f85dd16da7b84ca56d944
Signed-off-by: Tom Pantelis <tpanteli@brocade.com>
8 years agoTests for CDS DataTreeChangedListener 52/17652/12
Jan Hajnar [Thu, 2 Apr 2015 15:26:46 +0000 (17:26 +0200)]
Tests for CDS DataTreeChangedListener

* implemented tests

Change-Id: I6cc8f4011a056f19991165a5b324b3999d25a951
Signed-off-by: Jan Hajnar <jhajnar@cisco.com>
8 years agoReturn local shard's DataTree from ActorContext#findPrimaryShardAsync 83/18783/3
Tom Pantelis [Tue, 21 Apr 2015 21:03:23 +0000 (17:03 -0400)]
Return local shard's DataTree from ActorContext#findPrimaryShardAsync

For upcoming patches to optimize local shard transactions, we need
access to the Shard's local DataTree in the TransactionProxy. This can
be returned by ActorContext#findPrimaryShardAsync along with the shard's
ActorSelection.

I added a new class PrimaryShardInfo that encapsulates the shard's
ActorSelection and an Optional whose value contains the Shard's DataTree
if the shard actor is local to the caller.

ActorContext#findPrimaryShardAsync now returns a Future<PrimaryShardInfo>.
Currently, the PrimaryShardInfo contains an absent Optional but will be
implemented to contain the local Shard's DataTree in a subsequent patch.
Another subsequent patch will utilize the DataTree in the
TransactionProxy.

Change-Id: I9bd6425d597c307391d09554fe9ccebd03593180
Signed-off-by: Tom Pantelis <tpanteli@brocade.com>
8 years agoReduce non-existent Tx chain logging on close in ShardDataTree 87/18887/2
Tom Pantelis [Wed, 22 Apr 2015 16:53:12 +0000 (12:53 -0400)]
Reduce non-existent Tx chain logging on close in ShardDataTree

In ShardDataTree#closeTransactionChain, if the Tx chain doesn't exist it
emits a warning. However the CloseTransactionChain message is
broadcasted to all shards so there will always be a non-existent chain
on some shards so I reduced the log level to debug.

Change-Id: Ia4243c4a2987fa4f43d272a7435a9d7b5d43445b
Signed-off-by: Tom Pantelis <tpanteli@brocade.com>
8 years agoFix CloseTransactionChain NotSerializableException 86/18886/2
Tom Pantelis [Wed, 22 Apr 2015 16:42:03 +0000 (12:42 -0400)]
Fix CloseTransactionChain NotSerializableException

In a 3 node cluster, I created a Tx chain on a follower and, on closing
the chain, I saw a NotSerializableException for the
CloseTransactionChain message. CloseTransactionChain is serializable via
protobuff but TransactionChainProxy doesn't call toSerializable.

Change-Id: I09ed1d937f766b527c0e94d02fde2aa9cf4e5e37
Signed-off-by: Tom Pantelis <tpanteli@brocade.com>
8 years agoFix compile errors in NetconfDeviceSimulator 89/18889/1
Tom Pantelis [Wed, 22 Apr 2015 17:44:27 +0000 (13:44 -0400)]
Fix compile errors in NetconfDeviceSimulator

Jenkins builds are failing due to compile errors in
NetconfDeviceSimulator apparently due to recent yangtools changes.

Change-Id: If48d23f8907f848def5f448bb95f10fd5486f89e
Signed-off-by: Tom Pantelis <tpanteli@brocade.com>
8 years agoTests for DOMDataTreeListener 54/17554/7
Jan Hajnar [Wed, 1 Apr 2015 15:06:23 +0000 (17:06 +0200)]
Tests for DOMDataTreeListener

* added tests for DOMDataTreeListener registration on notifications
retrieval

Change-Id: I65135f77fcb09cb34579433718193873d84d3282
Signed-off-by: Jan Hajnar <jhajnar@cisco.com>
8 years agoCDS: use internal DataTree instance 98/18498/32
Robert Varga [Thu, 16 Apr 2015 14:30:47 +0000 (16:30 +0200)]
CDS: use internal DataTree instance

Instead of using a captive InMemoryDataStore instance, which is geared
toward interaction with a DOMDataBroker, use the baseline DataTree
instance and utility classes for implementing the data store behavior.

Since most of CDS is geared for interactions with the usual DOMStore
interfaces, this patch provides a set of bare-bone workalike classes,
but taking advantage of the safeties provided by the AKKA actor system.

Immediate benefit should be a speed up in backend processing, as we
eliminate intermediate Future instances when accessing and manipulating
data.

We also gain explicit control over DataTree lifecycle, which enables us
switching to DataTreeCandidate as the replication and persistence unit,
as opposed to individual modifications.

Change-Id: I031d0ed4d82dcc923fd377c13fefba2819923f9b
Signed-off-by: Robert Varga <rovarga@cisco.com>
8 years agoMoved legacy Notification implementation to compat package. 19/18819/2
Tony Tkacik [Wed, 22 Apr 2015 11:04:39 +0000 (13:04 +0200)]
Moved legacy Notification implementation to compat package.

Change-Id: Iba88a62c1d0327c69a16004b123cb0e5749f8ea8
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
8 years agoReplaced Helium Notification Broker with new Notifcation Broker. 55/18255/5
Tony Tkacik [Wed, 8 Apr 2015 11:54:41 +0000 (13:54 +0200)]
Replaced  Helium Notification Broker with new Notifcation Broker.

Change-Id: I01b249b0e7d412d0075f7bb0727e146c2e109fc7
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
8 years agoClustering: Expose PathArgument writer 93/18593/13
Robert Varga [Sun, 19 Apr 2015 01:03:10 +0000 (03:03 +0200)]
Clustering: Expose PathArgument writer

In our upcoming clustering work we will be serializing
DataTreeCandidate, which is a PathArgument-indexed tree structure.
Expose PathArgument writer and read methods for later use. Also fix
NormalizedNodeOutputStreamWriter not calling flush() on close().

Change-Id: Ided34a8bc1bc77b5ef357346e3d5b057bffc40c1
Signed-off-by: Robert Varga <rovarga@cisco.com>
8 years agoActive ennunciate for AD-SAL only on JDK 7 99/18799/3
Tony Tkacik [Wed, 22 Apr 2015 08:01:07 +0000 (08:01 +0000)]
Active ennunciate for AD-SAL  only on JDK 7

Change-Id: I204ea5feb6a1df103d9321c88eec958e1d1ee263
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
8 years agoMerge "Elide front-end 3PC for single-shard Tx"
Moiz Raja [Tue, 21 Apr 2015 20:25:27 +0000 (20:25 +0000)]
Merge "Elide front-end 3PC for single-shard Tx"

8 years agoMerge "BUG-3033: DataBroker should extend DataTreeChangeService"
Tony Tkacik [Tue, 21 Apr 2015 13:25:28 +0000 (13:25 +0000)]
Merge "BUG-3033: DataBroker should extend DataTreeChangeService"

8 years agoBUG-3033: DataBroker should extend DataTreeChangeService 37/18737/1
Robert Varga [Tue, 21 Apr 2015 11:49:40 +0000 (13:49 +0200)]
BUG-3033: DataBroker should extend DataTreeChangeService

The implementation already implements it, but users are not awat of this
capability, as they need to use an explicit cast. Fix it by requiring
all DataBroker implementations to also provide DataTreeChangeService.

Change-Id: Idf61a665b303e03106c223f9bacd9a827b2d9046
Signed-off-by: Robert Varga <rovarga@cisco.com>
8 years agoSimplify instantiation of NormalizedNodeInputStreamReader 34/18734/1
Robert Varga [Tue, 21 Apr 2015 11:35:19 +0000 (13:35 +0200)]
Simplify instantiation of NormalizedNodeInputStreamReader

Constructor which takes a DataInput does not need to throw, so remove
that declaration. That makes it easier for users to instantiate it.

Change-Id: Ia9267c6610fe2ebbfa2cb24a4475bba5c486f6df
Signed-off-by: Robert Varga <rovarga@cisco.com>
8 years agoStop SubtreeFitler from rereading reply even if no filter element is present. 37/18037/5
Tomas Cere [Tue, 7 Apr 2015 09:49:40 +0000 (11:49 +0200)]
Stop SubtreeFitler from rereading reply even if no filter element is present.

Change-Id: Ib8c28e4289aa0d8b6c228c5daecec713c1c874f3
Signed-off-by: Tomas Cere <tcere@cisco.com>
8 years agoMerge "Add assertNotNull to prevent null analysis warnings"
Tony Tkacik [Tue, 21 Apr 2015 10:41:20 +0000 (10:41 +0000)]
Merge "Add assertNotNull to prevent null analysis warnings"

8 years agoMerge "Improve xml lookup in edit-config rpc for md-sal"
Tony Tkacik [Tue, 21 Apr 2015 07:41:12 +0000 (07:41 +0000)]
Merge "Improve xml lookup in edit-config rpc for md-sal"

8 years agoMerge "Bug 2998 - RESTCONF not recogizing top-level input."
Tony Tkacik [Tue, 21 Apr 2015 07:40:38 +0000 (07:40 +0000)]
Merge "Bug 2998 - RESTCONF not recogizing top-level input."

8 years agoMerge "Cleanup: Remove passing around of DataPersistenceProvider"
Moiz Raja [Tue, 21 Apr 2015 07:15:45 +0000 (07:15 +0000)]
Merge "Cleanup: Remove passing around of DataPersistenceProvider"

8 years agoMerge "Address comment in gerrit 17266"
Moiz Raja [Tue, 21 Apr 2015 07:15:35 +0000 (07:15 +0000)]
Merge "Address comment in gerrit 17266"

8 years agoMerge "Bug 2948: Perform create snapshot synchronously"
Moiz Raja [Tue, 21 Apr 2015 07:15:28 +0000 (07:15 +0000)]
Merge "Bug 2948: Perform create snapshot synchronously"

8 years agoMerge "Netconf testtool stress client"
Tony Tkacik [Mon, 20 Apr 2015 15:23:49 +0000 (15:23 +0000)]
Merge "Netconf testtool stress client"

8 years agoMerge "BUG-3018: report DataTreeChangeListener initial state"
Tony Tkacik [Mon, 20 Apr 2015 15:12:52 +0000 (15:12 +0000)]
Merge "BUG-3018: report DataTreeChangeListener initial state"

8 years agoNetconf testtool stress client 80/18580/3
Maros Marsalek [Sat, 18 Apr 2015 17:44:46 +0000 (19:44 +0200)]
Netconf testtool stress client

Change-Id: I4bd351fe17e596e9153a48bf233432b8c8b19ea9
Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
8 years agoBUG-3018: report DataTreeChangeListener initial state 85/18585/7
Robert Varga [Sat, 18 Apr 2015 19:26:27 +0000 (21:26 +0200)]
BUG-3018: report DataTreeChangeListener initial state

Once we have make callout to AbstractDOMStoreTreeChangePublisher, also
examine our current state to see if we should report an initial event.
Requires https://git.opendaylight.org/gerrit/18583 in yangtools.

Change-Id: If6ccdb32057d1cf54bfc83888bf1540142c3ec7f
Signed-off-by: Robert Varga <rovarga@cisco.com>
8 years agoImprove DataExistsReply construction 68/18568/3
Robert Varga [Fri, 17 Apr 2015 21:29:18 +0000 (23:29 +0200)]
Improve DataExistsReply construction

DataExistsReply is immutable and has low cardinality. Pre-construct the
two possible instances and the two possible serializable instances and
expose them through a static factory method, which reuses these
instances, thus lowering garbage creation. Also remove unneeded
autoboxing of boolean to Boolean in ShardTransaction.

Change-Id: I2b1e0db5abb00a7b98eda4c3cc21ad35b9a921c6
Signed-off-by: Robert Varga <rovarga@cisco.com>
8 years agoMerge "Parse Xml Netconf msgs without defer-node-expansion option"
Tony Tkacik [Mon, 20 Apr 2015 08:28:55 +0000 (08:28 +0000)]
Merge "Parse Xml Netconf msgs without defer-node-expansion option"

8 years agoMerge "Fix compilation with JDK8"
Tony Tkacik [Mon, 20 Apr 2015 08:24:07 +0000 (08:24 +0000)]
Merge "Fix compilation with JDK8"

8 years agoBug 2998 - RESTCONF not recogizing top-level input. 05/18605/2
Jan Hajnar [Fri, 17 Apr 2015 14:42:17 +0000 (16:42 +0200)]
Bug 2998 - RESTCONF not recogizing top-level input.

* added choice resolution when top level element is from case node.
Resolved choice is then fed into parser.

Change-Id: Iadea8cc3d190afb13fa2447edd05abd8708e591a
Signed-off-by: Jan Hajnar <jhajnar@cisco.com>
8 years agoImprove xml lookup in edit-config rpc for md-sal 89/18589/2
Maros Marsalek [Sat, 18 Apr 2015 21:10:38 +0000 (23:10 +0200)]
Improve xml lookup in edit-config rpc for md-sal

Lookup the attributes of rpc in xml payload directly to improve lookup
performance instead of using utility XmlElement class

Change-Id: I47e8f47f279ccbd271e5ed903a352ebbc307d0f9
Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
9 years agoAdd assertNotNull to prevent null analysis warnings 81/18581/2
Robert Varga [Sat, 18 Apr 2015 15:40:19 +0000 (17:40 +0200)]
Add assertNotNull to prevent null analysis warnings

Eclipse can perform null-derefence analysis, which triggers a warning
here.

Change-Id: I42f85f98009717214c8029b5517b1142431dfbc8
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoImprove performance of XmlElement.getName 84/18584/1
Maros Marsalek [Sat, 18 Apr 2015 18:41:15 +0000 (20:41 +0200)]
Improve performance of XmlElement.getName

getLocalName on a DOM element was called 3x instead of 1.

Change-Id: Ibc758bd440f601adc76d8f62972950d30906610b
Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
9 years agoParse Xml Netconf msgs without defer-node-expansion option 79/18579/1
Maros Marsalek [Fri, 17 Apr 2015 11:46:21 +0000 (13:46 +0200)]
Parse Xml Netconf msgs without defer-node-expansion option

The defer-node-expansion expands inner nodes on traversal, but its suitable for
bigger xmls (100k bytes) and messages that are not fully traversed. This is not
the case with incomming netconf rpc.

Source:
https://xerces.apache.org/xerces2-j/faq-performance.html

Tested:
Netconf server pipeline performance was improved by 5-6%

Change-Id: I3bd4b917841f0ebe212ff753d6e0f655d618968c
Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
9 years agoFix compilation with JDK8 78/18578/1
Robert Varga [Sat, 18 Apr 2015 11:31:02 +0000 (13:31 +0200)]
Fix compilation with JDK8

Direct cast was not working, so restructure it a bit.

Change-Id: I58bb6ab2d636cdfe15d1a7ed9c47c393ff6a6920
Signed-off-by: Robert Varga <rovarga@cisco.com>
9 years agoElide front-end 3PC for single-shard Tx 92/18392/7
Tom Pantelis [Fri, 17 Apr 2015 22:53:21 +0000 (18:53 -0400)]
Elide front-end 3PC for single-shard Tx

A new method, directCommit, was added to TransactionContext.
In TransactionContextImpl#directCommit, it sends the final ready
BatchedModifications message as before but with a new flag,
doCommitOnReady, set to true. In ShardCommitCoordinator, if
doCommitOnReady is true, it immediately initiates the canCommit
phase without waiting for the CanCommitTransaction message.

In ShardWriteTransaction, if doCommitOnReady is true, it sets a new
similar flag in the ForwardedReadyTransaction message. Similarly,
the ShardCommitCoordinator immediately initiates the canCommit phase.
This code path is executed for read-write transactions as they still
utilize the transaction actor.

In TransactionProxy, when only 1 shard was accessed, it creates a
SingleCommitCohortProxy instance. This class also implements
DOMStoreThreePhaseCommitCohort but the 3 phases are essentially a
no-op with direct commit. The canCommit phase simply waits for the direct
commit Future to complete and returns success (true). If a failure occurs
from the Shard, the exception is propagated to the caller.

For backwards compatibility, we still need the
ThreePhaseCommitCohortProxy even with a single-shard transaction. A
complication with this is that TransactionProxy#ready may not know
immediately if it can do direct commit or not because it may not have the
TransactionContext instance yet due to the async nature of things.
So in either case it still creates a SingleCommitCohortProxy. When it gets
the callback to finally complete the operation, it checks the
TransactionContext to see if it supports direct commit (only
pre-Lithium versions won't). If supported, it calls directCommit, otherwise
readyTransaction. In the SingleCommitCohortProxy, on successful
completion of the ready/direct commit Future, it checks the response
type. If it's an ActorSelection then it needs to do 3-phase commit
so it creates and delegates to a ThreePhaseCommitCohortProxy.

I moved the code in Shard#handleCommitTransaction to the
ShardCommitCoordinator as this is also needed for direct commit. I
also moved the handleForwardedReadyTransaction code into
ShardCommitCoordinator to make it easier to handle direct commit.

Change-Id: I40b04dd5abd24c78709598a5acfc16484e165427
Signed-off-by: Tom Pantelis <tpanteli@brocade.com>