5 years agoFix maven-archetype-plugin not pulling its dependencies 08/21108/4
Robert Varga [Fri, 22 May 2015 10:04:52 +0000 (12:04 +0200)]
Fix maven-archetype-plugin not pulling its dependencies

commons-lang is needed to run, but it is not pulled automatically. Fix

Change-Id: I95dd2d527eb47d55597bb3d844867f0ca0c50b3f
Signed-off-by: Robert Varga <>
(cherry picked from commit 1ad148df405e6cd9e1ebcfe63bd65facb4007941)

5 years agoBug 3020: Add leader version to LeaderStateChanged 36/22036/2
Tom Pantelis [Fri, 24 Apr 2015 22:26:22 +0000 (18:26 -0400)]
Bug 3020: Add leader version to LeaderStateChanged

Added the leader's payload version to the LeaderStateChanged message and
modified the raft code to set it.

Change-Id: I9a34f90641a2962418d234bb56e55f2df5207e5b
Signed-off-by: Tom Pantelis <>
(cherry picked from commit 13ba9adfa24716a7b27bc4cfef198b3fa5c577b0)

5 years agoCheck total batched messages sent in ShardCommitCoordinator on tx ready 34/22034/2
Tom Pantelis [Sat, 30 May 2015 09:06:46 +0000 (05:06 -0400)]
Check total batched messages sent in ShardCommitCoordinator on tx ready

Added check in the ShardCommitCoordinator to ensure the total number of
batched messages sent equals the total number of messages received as
was done in the ShardWriteTransaction.

Change-Id: I86a67aec7a6a8e8994aee9a2a167972ede1808c7
Signed-off-by: Tom Pantelis <>
(cherry picked from commit eac2d5f506b801fcac619ca2cb7e4dcd85489a08)

5 years agoBug 3372: Convert backend DataTree exceptions appropriately 33/22033/2
Tom Pantelis [Sat, 6 Jun 2015 12:06:48 +0000 (08:06 -0400)]
Bug 3372: Convert backend DataTree exceptions appropriately

Specifically, convert ConflictingModificationAppliedException to
OptimisticLockFailedException and
DataValidationFailedException to TransactionCommitFailedException.

Change-Id: I7962e80d1fd51e818d17ed29a3e81262a78f9c3d
Signed-off-by: Tom Pantelis <>
(cherry picked from commit aa6342c2982aa30ffbcca6d1212de164041d9477)

5 years agoBug 2787: Batch AppendEntries to speed up follower sync 32/22032/1
Tom Pantelis [Tue, 2 Jun 2015 06:55:15 +0000 (02:55 -0400)]
Bug 2787: Batch AppendEntries to speed up follower sync

AbstractLeader#sendUpdatesToFollower now attempts to send all entries
to the follower to catch it up with 1 AppendEntries message. However, we
don't want to send too large a message and risk exceeding akka's message
size limit. So I added another param, maxDataSize, to
ReplicatedLog#getFrom. It will attempt to add all entries up to
maxEntries but stops if the accumulated data size exceeds maxDataSize.

For maxDataSize, I reused the existing snapshotChunkSize (default 2M)
defined in ConfigParams. This currently is hard-coded - we may want to
make this configurable.

Change-Id: Ib2c1165c4140a36f4eada8f81b4261260615dd18
Signed-off-by: Tom Pantelis <>
(cherry picked from commit 6065ba82c90e366919a1b78105507b935b91af8e)

5 years agoFix clustering-test app rpcs to add new data ensuring parents 15/22015/2
Moiz Raja [Fri, 5 Jun 2015 20:54:35 +0000 (13:54 -0700)]
Fix clustering-test app rpcs to add new data ensuring parents

The add-person rpc needs to pass true for ensureParents when adding
a person into the datastore. This ensures that it can be called on
an empty model.

Similarly when the CarBought notification is received and we try to
add a car-person to the datastore we need to do it with ensureParents
so that the data can be added to an empty model.

Change-Id: I551038298d635ff6daed0f5dae49a6eda86a24cb
Signed-off-by: Moiz Raja <>
(cherry picked from commit c154b24508a991092771901f0ee444e2c4ba096f)

5 years agoBUG 3566 : Get remote-rpc working again 14/22014/1
Moiz Raja [Thu, 4 Jun 2015 17:18:30 +0000 (10:18 -0700)]
BUG 3566 : Get remote-rpc working again

Some changes to moving from CompositeNode to NormalizedNode had broken
remote rpc. This patch attempts to get it working again.

Verified everything works in a 3 node cluster with the clustering-test-app

Change-Id: I2ec714f1d21d95812bd5b486260be3575df252a2
Signed-off-by: Moiz Raja <>
(cherry picked from commit 40217346551e20a809df37cd92955cd63c61944f)

5 years agoBUG 3340 : Log the count of modifications on a given transaction context 16/21916/1
Moiz Raja [Thu, 4 Jun 2015 18:40:57 +0000 (11:40 -0700)]
BUG 3340 : Log the count of modifications on a given transaction context

This log statement is to give a quick summary count - I found it useful for

Change-Id: I5ec2cb13fb75182bc94b3728188378fae2e55b43
Signed-off-by: Moiz Raja <>
(cherry picked from commit 48df31d5e46dd06aa97bb2ab0c0def2d28ed491d)

5 years agoSwitched sal-binding-it to use failsafe. 03/18903/3
Tony Tkacik [Thu, 23 Apr 2015 09:38:13 +0000 (11:38 +0200)]
Switched sal-binding-it to use failsafe.

sal-binding-it contained only integration tests
which should be run using failsafe instead of

This tests are sensitive to available performance
and sometimes may timeout if not enough CPU
power is availble thus marking them as optional
instead of dissabling them at all.

Change-Id: Iea8a7f093892587e707d6eccaf29311878a721fd
Signed-off-by: Tony Tkacik <>
5 years agoStreamline updating out-of-sync follower 99/21899/1
Tom Pantelis [Sat, 30 May 2015 03:27:33 +0000 (23:27 -0400)]
Streamline updating out-of-sync follower

The first AppendEntries message a leader sends to a follower contains
the leader's entry at the current commit index as it doesn't know the
follower's next index yet. If the the previous index isn't present
in the follower's log, the follower sends back an unsuccessful reply. The
leader then decrements the prior index it just sent and sends the
next message. This continue's until the next index gets down to the
follower's last index (or -1 if the follower's log is empty). Then
it succeeds on the follower and the leader increments the next index
and sends the rest.

This results in at least twice the number of messages sent to sync the
follower. The follower sends back its lastIndex in the unsuccessful
responses so it seems to make sense for the leader to use that index
instead of decrementing what it thinks might be the next index. This
eliminates the excessive AppendEntries messages. However we should only
do this is the follower's last index is present in the leader's log and
the terms match. Otherwise we fall back to decrementing the index.

Change-Id: If49ed48e8c70cb87b06b48a5ed3e6b0bbb6efc36
Signed-off-by: Tom Pantelis <>
(cherry picked from commit 6e4a2530fbd24f87b47a756bcc281cb825616e2a)

5 years agoBUG 2970 : Handle SchemaValidationFailedException instead of IllegalArgumentException 99/21599/2
Moiz Raja [Tue, 2 Jun 2015 01:28:32 +0000 (18:28 -0700)]
BUG 2970 : Handle SchemaValidationFailedException instead of IllegalArgumentException

Switch to handling the more specific SchemaValidationFailedException.

Change-Id: Id2f07aae4f45bb11257906fcc157e679b7e34948
Signed-off-by: Moiz Raja <>
(cherry picked from commit 796434267bba9c66f35fbab0648dd06c3d1206fc)

5 years agoBug 2970: Remove SchemaContextModules perisistence 65/21865/2
Tom Pantelis [Sun, 17 May 2015 16:20:05 +0000 (12:20 -0400)]
Bug 2970: Remove SchemaContextModules perisistence

Now that the GlobalBundleScanningSchemaServiceImpl has been fixed to
load all schema contexts on startup, we no longer need to persist the
last known schema context modules in the ShardManager.

Change-Id: Ie5d261e3725c680d4365d63fecdb2115772f69ba
Signed-off-by: Tom Pantelis <>
(cherry picked from commit 7e5c1fa516878ee5744e95f784e724381335b21e)

5 years agoFix newly-broken javadocs 94/21094/3
Robert Varga [Tue, 12 May 2015 23:54:07 +0000 (01:54 +0200)]
Fix newly-broken javadocs

Self-closing elements are not allowed.

Change-Id: I9d9c655d04c420b575e6ace51aaf2b0af931ecef
Signed-off-by: Robert Varga <>
(cherry picked from commit 484a0983ea48160af9a8c79acbed57ee984f5103)

5 years agoBUG-3436 Fix UNION type leaves resolution in config subsystem 60/21660/2
Maros Marsalek [Mon, 1 Jun 2015 11:47:37 +0000 (13:47 +0200)]
BUG-3436 Fix UNION type leaves resolution in config subsystem

The descriptions for comoposite open types were not included in a reconstructed
open type, which affected resolution of subsequent composite attributes with
leaves of type union. Union leaves rely on description in order to find the
artificial JMX attribute in order to pass union value as string.

Change-Id: If6222e25840cb854e565ae476509d21ebc19ab3c
Signed-off-by: Maros Marsalek <>
(cherry picked from commit 10438f09cbbeb252e58a7fb381e9dd723cc14e2e)

5 years agoBug 3427 - Websockets: Cannot create stream if path contains predicates 25/21525/2
Jan Hajnar [Thu, 28 May 2015 21:28:46 +0000 (23:28 +0200)]
Bug 3427 - Websockets: Cannot create stream if path contains predicates
or if target is a leaf

* fixed registration of path containing nodes with predicates
* added abillity to listen on leaves

Change-Id: I2e74aa6bbc50137187a5f7ece8de6ca288a1ebbf
Signed-off-by: Jan Hajnar <>
(cherry picked from commit 2a5c10374e32ca292466c3a43a120bfc2df0de90)

5 years agoSet revision of inet-types in ietf-netconf-monitoring 93/21293/2
Maros Marsalek [Mon, 25 May 2015 13:21:36 +0000 (15:21 +0200)]
Set revision of inet-types in ietf-netconf-monitoring

If users introduce new version of inet types into ODL, netconf-monitoring model
fails to load proper class.

Change-Id: I392f160a2fb2cd9ddea3c331b5715fb0694ba391
Signed-off-by: Maros Marsalek <>
(cherry picked from commit 8a5dee49cac5e8560494e533b18c1fe7c4aff2a6)

5 years agoMinor changes in LibLLDP 02/21302/5
Jozef Gloncak [Thu, 28 May 2015 09:20:40 +0000 (11:20 +0200)]
Minor changes in LibLLDP

- change modifier of emptyTLV field to final
- added cisco header to CustomTLVKey class
- formatting CustomTlvKey and LLDPTest classes

Change-Id: Ic347f549fb3ba3a97e9b6f02883445c852cd3eb8
Signed-off-by: Jozef Gloncak <>
(cherry picked from commit 1bdead40997cbe805630fced64c93e328a354275)

5 years agoBUG-3335 Add keepalive mechanism to netconf-connector 34/21234/2
Maros Marsalek [Fri, 22 May 2015 14:40:58 +0000 (16:40 +0200)]
BUG-3335 Add keepalive mechanism to netconf-connector

Invoke harmless RPC (get-config with empty filter) with a fixed delay to check
whether the netconf session is still active. The RPC is postponed if any other
RPC is invoked by a user/application.

This also prevents the remote device to close session due to being idle.

Change-Id: I013d2641c38d4c8adb5d3198795e337b91c4f95d
Signed-off-by: Maros Marsalek <>
(cherry picked from commit 3a24446e77478fb68e043cfe16f090adb9fcc72c)

5 years agoBUG 2610: Delete config:service instance via restconf 22/21322/3
Tomas Cere [Thu, 28 May 2015 07:56:12 +0000 (09:56 +0200)]
BUG 2610: Delete config:service instance via restconf

Adds support for removing service instances to config subsystem.

Change-Id: I92211a67d1e74ca4421bd0158f2c3600fabc18cc
Signed-off-by: Tomas Cere <>
5 years agoBug 3414 - exposed location header in CORS setings 39/21339/3
Jan Hajnar [Thu, 28 May 2015 14:22:36 +0000 (16:22 +0200)]
Bug 3414 - exposed location header in CORS setings

Change-Id: I74e5f363cb931b2b8a792447b5d5d2fa6e0aa5aa
Signed-off-by: Jan Hajnar <>
(cherry picked from commit c515ff7c42b487ac5baeb6e3361b6457d1c4b096)

5 years agoBUG 2596: Use base service name in service serialization. 71/21671/2
Tomas Cere [Mon, 1 Jun 2015 14:58:20 +0000 (16:58 +0200)]
BUG 2596: Use base service name in service serialization.

Serialization of config was incorrectly using derived service name
instead of the name that was configured in xml.

Change-Id: Idf455f62b1ade06a3e52e4936227f485f74c8ef3
Signed-off-by: Tomas Cere <>
5 years agoFix wiring around sun.reflect 67/21367/2
Ed Warnicke [Thu, 28 May 2015 20:23:42 +0000 (13:23 -0700)]
Fix wiring around sun.reflect

Change-Id: Ief9b9470525e681bded2adeddccde84f8692202b
Signed-off-by: Ed Warnicke <>
5 years agoBUG 3121 - destroy topic implementation 03/21803/1
Marian Adamjak [Tue, 12 May 2015 07:15:21 +0000 (09:15 +0200)]
BUG 3121 - destroy topic implementation

   - implementing destroyTopic rpc in EventSourceTopology
   - add rpc dis-join-topic in event-sourec.yang and implement it
   - fixed bugs identified during test with real device
   - revision of code and cleaning up
   - rebased

Change-Id: I0f43ef2ca1f54db5a08c379792a59c3894a77767
Signed-off-by: Marian Adamjak <>
(cherry picked from commit d039ff1e73202fa815e72db49d63ded711386f07)

5 years agoBUG 3030 - reconnect netconf event source 98/21798/2
Marian Adamjak [Wed, 6 May 2015 10:46:05 +0000 (12:46 +0200)]
BUG 3030 - reconnect netconf event source

   - replay notification
   - publish notification about connection status

(cherry picked from commit 4c147b35d298b281afccb53c7fb8b83b1b96ddfc)
Change-Id: Ia6ead39a2e1a81135dcd86163fb7adb40a3d7d5c
Signed-off-by: Marian Adamjak <>
5 years agoFix intermittent ToasterTest failures 94/21494/2
Tom Pantelis [Sat, 30 May 2015 05:54:44 +0000 (01:54 -0400)]
Fix intermittent ToasterTest failures

The ToasterTest has been intermittently failing on jenkins for a while.
I repro'ed it locally after 5 tries. An error occurs indicating it
can't find the pingpong-databroker namespace. Not sure why this occurs

The test doesn't need/use the pingpong databroker so I commented it out
in the controller.xml. After this change the test ran successfully 80

Change-Id: Id0cfdd2464218173e91392ac9bb66e60a8f51595
Signed-off-by: Tom Pantelis <>
5 years agoRemove PrimaryShardInfoFutureCache entry on UnreachableMember event 71/21571/2
Tom Pantelis [Sat, 30 May 2015 07:15:10 +0000 (03:15 -0400)]
Remove PrimaryShardInfoFutureCache entry on UnreachableMember event

The ShardManager removes the PrimaryShardInfoFutureCache entry when
leadership changes. We should do the same for UnreachableMember events.

Change-Id: I9582450f1c319e6967f43aacd1b0dd668e2654d6
Signed-off-by: Tom Pantelis <>
(cherry picked from commit fef4101b5a5b2f1d8e3b266662e36a37dd9151d0)

5 years agoBug:3260-Recovery misses flows installed on single node 70/21570/2
Kamal Rameshan [Thu, 28 May 2015 20:54:48 +0000 (13:54 -0700)]
Bug:3260-Recovery misses flows installed on single node

There are 2 bugs which were enountered
1. When akka replays the journal, it replays it from the peristent journal's sequence number present at the time of snapshot success
2. The log entry on which a snapshot capture is triggered does not make it to that snapshot and gets removed from persistent journal as well.
So on recovery, that log entry/data is missing

To fix the first, the snapshotSeqNr() method of UnTypedPersistenActor is overridden, so that akka uses the cached last-sequence-number rather than using its own

To fix the second issue, the capture of snapshot for single node is done after applyState. This ensures that the persistent journal and snapshot are in sync

Also the in-memory journal was replaying all its messages and not honoring the fromSequenceNr, like akka does. So fixed it.

The tests needed to be fixed primarily due to the in-memory journal change.

A new test is added to test out the recovery of single node.

Change-Id: I779d1d6ce9880b19322d831ef5c8696b4c751e3d
Signed-off-by: Kamal Rameshan <>
(cherry picked from commit 1c4abd5ad29d3200929275cf0030c0e4f35c3886)

5 years agoAddress comments in 68/21568/1
Tom Pantelis [Sat, 30 May 2015 08:30:34 +0000 (04:30 -0400)]
Address comments in

Patch was merged with
some minor comments. This follow-up patch addresses them.

Change-Id: I1842a85f35021b598e1ded0b334453fd7751d9f7
Signed-off-by: Tom Pantelis <>
(cherry picked from commit 879a3015b313694d8158e9fec151ce467f18a065)

5 years agoBUG 3340 : Improve logging 86/21486/1
Moiz Raja [Thu, 28 May 2015 02:22:40 +0000 (19:22 -0700)]
BUG 3340 : Improve logging

- In SimpleShardDataTreeCohort we log the contents of the tree at debug level. This
  makes it impossible to turn on debug for the package org.opendaylight.cluster.datastore
- At some point we seem to have lost the feature to include the chain number in the transaction
 identifier. I added that back in.

Change-Id: Ifd6cd4c9f5c49790dfb045d2800b5a8beef19b37
Signed-off-by: Moiz Raja <>
(cherry picked from commit afa53553bd476c625ae137e14c7484ff510fbcc4)

5 years agoBUG-2453 Enable nested enums in configuration 34/21334/2
Maros Marsalek [Tue, 26 May 2015 15:18:30 +0000 (17:18 +0200)]
BUG-2453 Enable nested enums in configuration

Nested enums could not be pushed due to an open type issue. Enums had a
composite open type, where the class name of the enum was stored. JMX was
not happy with this open type and expected a SimpleType.STRING.

After the enum is resolved, the open type is changed to SimpleType.

Change-Id: Ifce5bec70c8c3973f560260e93fadba2bd1119fa
Signed-off-by: Maros Marsalek <>
(cherry picked from commit 7d4251f30d145d8b402e206a11fb4a2ff90ac351)

5 years agoBUG 2970 : Create a PruningDataTreeModification 84/21384/2
Moiz Raja [Sat, 23 May 2015 00:22:02 +0000 (17:22 -0700)]
BUG 2970 : Create a PruningDataTreeModification

The PruningDataTreeModification automatically tries to prune the passed
in NormalizedNode if an IllegalArgumentException is thrown when doing
a write or a merge on the DataTreeModification.

*I know* that doing the pruning on IllegalArgumentException is flaky but
that is the best I can do unless we can change the implementation in yangtools
to throw a more specific exception when the data node does not map to a
the schema context

Change-Id: Iea0cea82eda8bd51c1f3f07b063404458798c348
Signed-off-by: Moiz Raja <>
(cherry picked from commit 759e3c83955458b56d5d3e5a64521e0662b41004)

5 years agoBUG-2976: Resolve clash between current and feature cfg pusher 11/21311/2
Maros Marsalek [Mon, 18 May 2015 14:11:57 +0000 (16:11 +0200)]
BUG-2976: Resolve clash between current and feature cfg pusher

Current config pusher now stores list of features present in karaf with the
config snapshot itself. Feature pusher now looks at the list and ignores
features listed in current config in the initial push.

A WARN log message is emitted for each ignored config file + feature.

Change-Id: I6e71e692e56d5219cf02cd704dd78215f4a7f5a2
Signed-off-by: Maros Marsalek <>
(cherry picked from commit fa8b972c6da7e3a24af396ea4bebe6d06f6a8d89)

5 years agoBug 3376: Add debug context for CDS transactions 71/21371/1
Tom Pantelis [Wed, 27 May 2015 06:03:20 +0000 (02:03 -0400)]
Bug 3376: Add debug context for CDS transactions

Added a new setting, transaction-context-debug-enabled, to the config yang
to enable/disable debug context that outputs the call site trace for
TransactionProxy instances for failed transactions.

Change-Id: I8b1a393871be4fa076054681c62c14fd68dc74b7
Signed-off-by: Tom Pantelis <>
(cherry picked from commit 1ae90cd1a9a8000a66942e38a4d1c13d3630c4f8)

5 years agoBUG-1135 Improve error reporting in config pusher 82/20782/5
Maros Marsalek [Wed, 20 May 2015 09:05:56 +0000 (11:05 +0200)]
BUG-1135 Improve error reporting in config pusher

Change-Id: I78e9550bf78cf5c5b3d929827f379e9009a4468f
Signed-off-by: Maros Marsalek <>
5 years agoFix deadlock in AsyncSshHandlerWriter 44/21144/4
Tomas Cere [Mon, 25 May 2015 13:07:19 +0000 (15:07 +0200)]
Fix deadlock in AsyncSshHandlerWriter

Ssh window resize would call write twice, while a write pending was in progress
causing a deadlock because the underlying channelSession was already locked.

Change-Id: I3a1498084327f12b2010744e570644259532b975
Signed-off-by: Tomas Cere <>
5 years agoBUG-2453 (De)Serialize enum values as defined in yang 25/20025/10
Maros Marsalek [Mon, 11 May 2015 14:53:19 +0000 (16:53 +0200)]
BUG-2453 (De)Serialize enum values as defined in yang

Netconf endpoint for config subsystem did not (de)serialize enum values properly
It assumed the enum constants are identical in yang and in generated binding

Change-Id: If46c770a49653348201cd5d5c9303b5207048252
Signed-off-by: Maros Marsalek <>
5 years agoBUG 2970 : Create a utility class which can prune a normalized node based on the... 01/21201/2
Moiz Raja [Fri, 22 May 2015 11:03:00 +0000 (04:03 -0700)]
BUG 2970 : Create a utility class which can prune a normalized node based on the schema context

This will be used when a data modification operation fails because of a missing schema

Change-Id: I6e07763051cc2181c0c786a0762cbf6a3c5c4eed
Signed-off-by: Moiz Raja <>
(cherry picked from commit 9055581e2aabac7478102c6b05f9118b443a9d64)

5 years agoBug -3221 : Adding a new DataStoreUnavailableException for external applications. 78/20678/6
Harman Singh [Mon, 18 May 2015 21:51:46 +0000 (14:51 -0700)]
Bug -3221 : Adding a new DataStoreUnavailableException for external applications.
If cluster member, which is a leader of one or multiple shards becomes unavailable,
Shard re-election happens after certain time period and anyone tries to access datastore,
receives akka.timeout exception. No application can act upon such exception.

DataStoreUnavailableException will help external applications to retry if they see this exception.

Change-Id: Iceb10580bbe73ae91dc8abb4bc6a183cb4fad6f8
Signed-off-by: Harman Singh <>
5 years agoIntroduce DOMNotificationRejectedException 96/21096/2
Robert Varga [Tue, 12 May 2015 23:54:29 +0000 (01:54 +0200)]
Introduce DOMNotificationRejectedException

DOMNotificationPublishService.REJECTED wraps a throwable, which may
cause problems with code which attempts to unwind it, as frameworks tend
to propagate Throwables rather than wrapping them.

Change-Id: I77d7ceeef8213425636dab92f6994fcd3f1443e9
Signed-off-by: Robert Varga <>
(cherry picked from commit 12bf820406245feb0285317a88e5c7b3c9829ce6)

5 years agoFix intermittent ConfigPersisterTest failure 39/21139/2
Tom Pantelis [Fri, 15 May 2015 17:21:13 +0000 (13:21 -0400)]
Fix intermittent ConfigPersisterTest failure

testSuccessConflictingVersionException fails intermittently on Jenkins
with different errors. I think the problem is that it sets up the
"workingService" which the ConfigPusher is accessing createService on
another thread. In reading Mockito FAQs, you may get strange intermittent
results with multi-threading wrt to stubbing. Mocks can be accessed from
multiple threads but it's recommended that you setup all the stubbed
methods ahead of time. So I changed
testSuccessConflictingVersionException to do so.

After the fix, I ran the ConfigPersisterTest 550 times w/o failure.

Change-Id: Ia22936cfad82416e317935bd40b0eb3ccbdb232c
Signed-off-by: Tom Pantelis <>
(cherry picked from commit e60d699bfe040f3ce570b4e634b0612eadeaca45)

5 years agoBug 3234: Do not notify empty Rpc implementation change. 30/21130/2
Tony Tkacik [Tue, 19 May 2015 09:48:49 +0000 (11:48 +0200)]
Bug 3234: Do not notify empty Rpc implementation change.

DOMRpcBroker was sending notifications with empty
set of RPC added or removed.

This is possible if registration for RPC already exists
and another one was registered.

Change-Id: Iab92d6f1e5c76a050dc00dee802e1698ca26eccc
Signed-off-by: Tony Tkacik <>
(cherry picked from commit 2b2ee780fded7fca2d2a3e4695e3aec7f6c1bcc2)

5 years agoBug 3194: Dynamically update PrimaryShardInfo cache when leader changes 48/21148/2
Tom Pantelis [Thu, 14 May 2015 16:40:48 +0000 (12:40 -0400)]
Bug 3194: Dynamically update PrimaryShardInfo cache when leader changes

Added a PrimaryShardInfoFutureCache class which maintains the cache of
PrimaryShardInfo Future instances per shard. This code was moved from the ActorContext.

The PrimaryShardInfoFutureCache instance is created by the
DistributedDataStore and passed to the ShardManager, as well as to the
ActorContext. The ActorContext uses the cache as before.

On ShardLeaderChanged message, if the leaderId has changed, the
ShardManager calls remove on the PrimaryShardInfoFutureCache to
invalidate the entry for the shard name.

As part of this patch some refactoring was done which removed ShardInfoListeners.

There are a few miscellaneous changes in this patch as well,
- Create the appropriate type of transaction on the datatree for local transactions
- Tracking only read-only transactions which phantom references

Change-Id: I4c7a3845e311e5130d80f22f7cfb3c82c5ad731d
Signed-off-by: Tom Pantelis <>
(cherry picked from commit 7fbe47abd15ea486c69c08f20c4cb21324775c3f)

5 years agoMigrade junit.frawork.Assert 07/21107/2
Robert Varga [Mon, 25 May 2015 15:33:31 +0000 (17:33 +0200)]
Migrade junit.frawork.Assert

The new place s org.junit.Assert, migrate imports to squash eclipse

Change-Id: I6900b400b32c7b3fd840497fec99159d6ec779db
Signed-off-by: Robert Varga <>
(cherry picked from commit 392a8e3b69781c91cc52174dcb0c8132682c13c3)

5 years agoIntroduced Lazy DOM Rpc Result future. 10/21110/2
Tony Tkacik [Thu, 21 May 2015 15:08:47 +0000 (17:08 +0200)]
Introduced Lazy DOM Rpc Result future.

Introduced LazyDOMRpcResultFuture which is used
when Binding Aware app invokes Binding Aware Rpc implementation.

  - This future encapsulates original future which
    is deencapsulated without any processing once returned
    back to Binding RPC implementation.

Change-Id: I4b65bdc884925a128db0ec6697ba84f37527593f
Signed-off-by: Tony Tkacik <>
(cherry picked from commit 4a8854a49907eb11952af93f188fa5050729d85b)

5 years agoBug 3216 - Restconf GET operations functionality are not supported yet 11/21111/2
Vaclav Demcak [Tue, 12 May 2015 08:56:04 +0000 (10:56 +0200)]
Bug 3216 - Restconf GET operations functionality are not supported yet

* missing list of all operations for all modules or for some module

Change-Id: I937890b83fe2bf3198278123373c5d3bad0aa927
Signed-off-by: Vaclav Demcak <>
(cherry picked from commit a59286ee063c90817958e9cef4836e15aec3c7a6)

5 years agoBUG-3183: Extend notification publisher API 93/21093/2
Michal Rehak [Tue, 12 May 2015 08:36:26 +0000 (10:36 +0200)]
BUG-3183: Extend notification publisher API

 - offer methods of notificationPublishService now return ListenableFuture
 - added exception for notification rejected outcome

Change-Id: Iff17e1edd754d49e6c53f97e357c34f5eac6a8ef
Signed-off-by: Michal Rehak <>
(cherry picked from commit 38c80b0fc0c559aabd0a8dce59dd99deab1c3418)

5 years agoBug 2150: Feature wrappers now log parse errors better. 52/11752/8
Maros Marsalek [Mon, 25 May 2015 14:32:13 +0000 (16:32 +0200)]
Bug 2150: Feature wrappers now log parse errors better.

getFeatureConfigSnapshotHolders() logging is now similar
to what XmlDirectoryPersister.fromXmlSnapshot() does.

Also, files not ending with .xml (and not available files)
are filtered out as they do not hold configuration snapshots.

Warn level for config load failure.

Change-Id: I7c9d472bbe0ad031aaf7cc8dead1fd1e41d93306
Signed-off-by: Vratko Polak <>
Signed-off-by: Maros Marsalek <>
5 years agoBUG-2838: Trim leading whitespaces from incoming NETCONF messages. 27/16927/5
Gwenael Lambrouin [Thu, 21 May 2015 13:32:35 +0000 (15:32 +0200)]
BUG-2838: Trim leading whitespaces from incoming NETCONF messages.

Some network devices (such as Cisco routers) send RPC replies with a leading
newline before the XML declaration. The OpenDaylight controller does not accept
those replies: the XML parsing fails.

This patch fixes the NETCONF messages before they are sent to the XML parser:
it removes all the spurious characters at the beginning of the messages.

Change-Id: Ibc6eb6dc5bad6252a3c9bed73d3db83814aff501
Signed-off-by: Gwenael Lambrouin <>
Signed-off-by: Maros Marsalek <>
5 years agoRename stress-client classifier in netconf-testtool 42/20642/3
Maros Marsalek [Mon, 18 May 2015 11:41:17 +0000 (13:41 +0200)]
Rename stress-client classifier in netconf-testtool

2 shaded jars with same classifier overwrite each other in nexus

Change-Id: If08d83ccda4c716ef12818fd8eb0da2ae37706b9
Signed-off-by: Maros Marsalek <>
5 years agoBUG-2976 Generate hash/equals for config generated DTOs 99/20499/2
Maros Marsalek [Fri, 15 May 2015 09:28:27 +0000 (11:28 +0200)]
BUG-2976 Generate hash/equals for config generated DTOs

The DTOs generated by config subsystem did not have hashCode and equals methods
This caused the canReuse instance to return false even if the old module could
be reused.

Change-Id: I11392c2947f570a05d1a5b84fdaaee9e6b89a717
Signed-off-by: Maros Marsalek <>
5 years agoBUG-3301 Extract additional header properly on each OS 40/20940/3
Maros Marsalek [Thu, 21 May 2015 13:21:10 +0000 (15:21 +0200)]
BUG-3301 Extract additional header properly on each OS

On Windows, the additional header in hello netconf message was no fully
extracted and it left \n byte in front on netconf xml hello message. This
is not allowed as long as the <?xml ... > declaration is present.

Change-Id: I611a5c689e86fb45065e6a9cd3b14cd5718af54f
Signed-off-by: Maros Marsalek <>
5 years agoBug 3148 - Fixed binding.api.NotificationListener support 90/20090/2
Tony Tkacik [Thu, 7 May 2015 17:24:15 +0000 (19:24 +0200)]
Bug 3148 - Fixed binding.api.NotificationListener support

Change-Id: I5017e502a23f9cdb7d35dc393e84db7c2989f491
Signed-off-by: Tony Tkacik <>
(cherry picked from commit 9ca4deb2c87a332baefb4b58e264d544362b30f5)

5 years agoAllow DOMNotificationRouter to be tuneable 43/20843/2
Robert Varga [Wed, 20 May 2015 15:53:21 +0000 (17:53 +0200)]
Allow DOMNotificationRouter to be tuneable

The details of how deep is the queue and how the backoff strategy is
applied should be tuneable. Model them and provide the hooks.

Change-Id: I6eda6bebc2cf506d627e09d3949a73e97ed866e4
Signed-off-by: Robert Varga <>
(cherry picked from commit 1ef2ed07ea9d7d42963b8b2ce5e99004f6c33274)

5 years agoReduce SchemaContext updates on shutdown 00/21000/1
Tom Pantelis [Mon, 18 May 2015 00:33:53 +0000 (20:33 -0400)]
Reduce SchemaContext updates on shutdown

The GlobalBundleScanningSchemaServiceImpl sends out a ton (hundreds) of
SchemaContext updates on shutdown. This because the removedBundle method
calls tryToUpdateSchemaContext even for bundles that weren't tracked, ie
bundles w/o yang URLs. So I added a check`for # URLs > 0.

Change-Id: I203047f04ba5761c1927102b3cb0f2e309b6bf77
Signed-off-by: Tom Pantelis <>
(cherry picked from commit bc312b3f54c8c089fdc2f2f2b8b8bb6903cca038)

5 years agoBUG-2961 Disable auth and idle timeout for netconf connector 34/20734/2
Maros Marsalek [Tue, 19 May 2015 14:06:15 +0000 (16:06 +0200)]
BUG-2961 Disable auth and idle timeout for netconf connector

The timeouts appeared in the mina SSHD lib in version 14 and are not suitable
for netconf connector.

Change-Id: I05f0feb58ef30d12a29eefa53ec5ccf300cb3123
Signed-off-by: Maros Marsalek <>
5 years agoUse TransactionCommitOperationTimeout when commiting a Local transaction 18/20918/1
Moiz Raja [Thu, 21 May 2015 18:20:55 +0000 (11:20 -0700)]
Use TransactionCommitOperationTimeout when commiting a Local transaction

This is to make this similar to how we do a remote transaction. The transaction
commit timeout is much larger than the operation timeout and is more appropriate
for committing because the latencies involved in committing are much larger as
committing involves replication which could sometimes be pretty slow.

Change-Id: Ie76e05bf875b4ea5eee9618519d7167f50671c8f
Signed-off-by: Moiz Raja <>
(cherry picked from commit 3ca4e8353a32a68ebf71e98fed1954af5c419ca3)

5 years agoBug 2970: Fix GlobalBundleScanningSchemaServiceImpl to get RESOLVED bundles correctly 08/20908/2
Tom Pantelis [Sun, 17 May 2015 14:49:00 +0000 (10:49 -0400)]
Bug 2970: Fix GlobalBundleScanningSchemaServiceImpl to get RESOLVED bundles correctly

The GlobalBundleScanningSchemaServiceImpl uses a BundleTracker to get
all RESOLVED bundles. When BundleTracker#open() is called
on start(), the BundleTracker will notify addingBundles of all current
bundles that pass the state mask. The OSGi container must resolve all
bundles before activating on startup. So after open() is called we
should have all the current bundles that have yang models and a complete
SchemaContext on startup based on the installed bundles from he last run.
However I was seeing some bundles notified during open() but others notified
later. This why CDS and other components may not see a complete
SchemaContext on startup.

The problem is that GlobalBundleScanningSchemaServiceImpl is passing the
wrong state mask constants. It's referencing constants defined in
BundleEvent but the BundleTracker checks bundle.getState() which
corresponds to constants defined in Bundle. The 2 have slightly
different constants and the values differ. When I change it to use
Bundle constants, it works as expected, ie all current bundles are
notified during open() and we have a complete SchemaContext after start().
I really don't see how this worked before at all using the wrong constants.

I also noticed that start() is being called twice, once in
GlobalBundleScanningSchemaServiceImpl#createInstance and then also in
the Activator after it calls createInstance. So 2 instances of
BundleTracker were being created resulting in double the notifications.
I removed the call to start() in the Activator.

Change-Id: I8c8330f75dd1a779af186688aae4cfaee89bd43b
Signed-off-by: Tom Pantelis <>
(cherry picked from commit cd0eea4a97a6279b801074061dd64f6663e8b837)

5 years agoBug 868: Remove AD-SAL components which were deprecated in Lithium 40/18740/4
Tony Tkacik [Mon, 27 Apr 2015 08:24:21 +0000 (08:24 +0000)]
Bug 868: Remove AD-SAL components which were deprecated in Lithium

Removes legacy components,which were deprecated in Lithium
and scheduled to be removed Berrylium.

Code is still preserved on stable/lithium branch.

Change-Id: Icef5e39cc59324db203ccb2cb5f9a3aea0e57b21
Signed-off-by: Tony Tkacik <>
5 years agoMake sure invokeOperation is set once 70/20870/2
Robert Varga [Tue, 19 May 2015 19:16:32 +0000 (21:16 +0200)]
Make sure invokeOperation is set once

This clarifies how it is initialized and make it final to ensure it is
initialized exactly once.

Change-Id: Ib05b58dec492870257da2a8653b5b6b010891312
Signed-off-by: Robert Varga <>
(cherry picked from commit 37a5dd4bdd5d0eda6afa0762b42b94762e969956)

5 years agoBug 3206: CDS - issues with direct commit 90/20890/2
Tom Pantelis [Wed, 13 May 2015 11:44:01 +0000 (07:44 -0400)]
Bug 3206: CDS - issues with direct commit

Modified RaftActor#persistData to send the ApplyState message instead of
calling applyState directly in case the Shard tries to persist another
entry during the persist callback.

Modified Shard to use the correct sneder to send the
CommitTransactionReply message.

The third fix is to ensure direct commits in a chain aren't committed
before previous coordinated commits. In the ShardCommitCoordinator, I
changed it to enqueue all CohortEntries when they are readied so they
are processed in that order.

I also included the unit test scenario that caused the issues to occur.

Change-Id: I65ffcbbac37d6be28c4e1c2dc17d3b0ca21847dc
Signed-off-by: Tom Pantelis <>
(cherry picked from commit cf088cc87d5e9c0dfd3fb8e47e0d6d7c5ddc19fd)

5 years agoDisable failing config persister test 21/20521/4
Maros Marsalek [Fri, 15 May 2015 14:36:03 +0000 (16:36 +0200)]
Disable failing config persister test

The test needs to be redesigned. BundleContext and Concurrency need to be
removed from the test to make it more stable and readable.

Looks like the failure reported by mockito is caused by "wrongly written
multi-threaded tests".

Change-Id: I85a04194573c500ce9c4c4a8cfc4960e66203545
Signed-off-by: Maros Marsalek <>
5 years agoFix CDS serialization failures due to YangInstanceIdentifier change 94/20794/1
Tom Pantelis [Sat, 16 May 2015 19:13:41 +0000 (15:13 -0400)]
Fix CDS serialization failures due to YangInstanceIdentifier change

YangInstanceIdentifier was recently made an abstract class with 2
implementations which broke CDS serialization as it was looking for
an exact match for the YangInstanceIdentifier class.

Change-Id: Iba94dda9584f65f5c8d76a1514d3f9f09d2f0483
Signed-off-by: Tom Pantelis <>
(cherry picked from commit bc42ccb9b9bef46de08370e9d958e0e2fe3dda5a)

5 years agoValue for transactions moved to yang module 14/20514/3
Marian Dubai [Fri, 15 May 2015 13:53:57 +0000 (15:53 +0200)]
Value for transactions moved to yang module

Timeout value for blocking operations within
transactions moved from AbstractWriteTx to yang module

Change-Id: I4414a613445c914b0b3262705ca5ceae058b51d5
Signed-off-by: Marian Dubai <>
5 years agoBug 3258 : Changed the order of condition for OrderedMap and MapNode, 67/20667/3
Harman Singh [Mon, 18 May 2015 18:10:23 +0000 (11:10 -0700)]
Bug 3258 : Changed the order of condition for OrderedMap and MapNode,
same for OrderedLeafSet and LeafSet
Added a test to validate it works for OrderedMap

Change-Id: Ifb0375d47668fcc36d824fb33a8b4684e89dccc8
Signed-off-by: Harman Singh <>
5 years agoBUG 3249 : Operation Limiter not release on completion of operation 98/20698/2
Moiz Raja [Mon, 18 May 2015 21:12:08 +0000 (14:12 -0700)]
BUG 3249 : Operation Limiter not release on completion of operation

The OperationLimiter uses up one permit and per operation done on a
transaction. When that operation is complete the permit must be
released. For Local transactions this was not happening. Due to this
when a local transaction has more operations than the maximum outstanding
operations we would block for the operation timeout period (5 seconds
by default) this can have all sorts of adverse side effects on

This patch ensures that for local transactions those permits are freed
up when the operation is complete.

Change-Id: Id8ba99c6ea081c7e37da0b517860dca818a91218
Signed-off-by: Moiz Raja <>
(cherry picked from commit 7deb48eedb9aec8230c65237c48679ecca6af919)

5 years agoLog NetconfServer authentication fail when authProvider is missing. 27/20027/2
Tomas Cere [Mon, 11 May 2015 15:11:59 +0000 (17:11 +0200)]
Log NetconfServer authentication fail when authProvider is missing.

Change-Id: I43fef075fdf43624f1b83ddec16d77c129f98964
Signed-off-by: Tomas Cere <>
5 years agoUse callbacks while parsing to NormalizedNodes. 32/18632/26
Tomas Cere [Tue, 28 Apr 2015 12:45:42 +0000 (14:45 +0200)]
Use callbacks while parsing to NormalizedNodes.

Implemented custom parsing strategies that handle netconf operations
and manipulation of the data tree in NetconfMDSal.

Change-Id: I99d7f049710393743714d90ac3123041e87040cd
Signed-off-by: Tomas Cere <>
Signed-off-by: Maros Marsalek <>
5 years agoBUG 3213: Add missing netconf-tcp dependency to mdsal-netconf-connector 57/20357/3
Tomas Cere [Thu, 14 May 2015 10:32:02 +0000 (12:32 +0200)]
BUG 3213: Add missing netconf-tcp dependency to mdsal-netconf-connector

Change-Id: I6d9839e24e994d28f0059c7dfbd2a9e3ab4b4c05
Signed-off-by: Tomas Cere <>
5 years agoBug 3197: Netconf client not reconnecting due address unresolved 14/20414/5
Marian Dubai [Thu, 14 May 2015 16:55:03 +0000 (18:55 +0200)]
Bug 3197: Netconf client not reconnecting due address unresolved

Netconf client not reconnecting, when failed 1st time due
address unresolved. InetSocketAddress remains in state unresolved,
after connection failed first time due address unresolved.
Now recreating InetSocketAddress by each reconnect,
so address is checked by each reconnect attempt.

Change-Id: I29ef130d7bf3f65023a611cee51245a6ae6f9a03
Signed-off-by: Marian Dubai <>
5 years agoSet weak keys for binding mountpoint cache 96/20496/2
Maros Marsalek [Fri, 15 May 2015 09:28:19 +0000 (11:28 +0200)]
Set weak keys for binding mountpoint cache

Change-Id: Ie3995beb7f2ffe51c882bde411048b2c59780184
Signed-off-by: Maros Marsalek <>
5 years agoFix intermittent RaftActorTest failures 82/20682/1
Tom Pantelis [Fri, 15 May 2015 01:28:14 +0000 (21:28 -0400)]
Fix intermittent RaftActorTest failures

I've seen the following test failure on jenkins several times:

expected:<Leader> but was:<Candidate>

This is a result of the short-circuiting of the election timeout scheduling
when there are no peers so it goes from from Follower -> Candidate -> Leader
quickly. The test artificially sets the behavior to Leader but the immediate
ElectionTimeout messages may cause it to switch back to Candidate and
cause assertion failures before the test completes. This didn't happen
before b/c it sets the heartbeat interval really high. To alleviate the
failures, I set a peer to elide the short-circuiting.

Change-Id: I2c086f214baefb826beb898dfe4b11b659cd1eaa
Signed-off-by: Tom Pantelis <>
(cherry picked from commit 2f2dd5376f885a160d3204a407f24e174375a5a5)

5 years agohotfix Bug 3226 - unable to configure flows 44/20544/3
Vaclav Demcak [Fri, 15 May 2015 14:24:37 +0000 (16:24 +0200)]
hotfix Bug 3226 - unable to configure flows

* NormalizedNodeContainer has NodeIdentifierWithPredicates which
has to contain the map of all node keys
* (new codecs [xml,json] don't populate Attributes)

Change-Id: I5befc6d8ad5a63a04c11ad9102610be9508df672
Signed-off-by: Vaclav Demcak <>
(cherry picked from commit f00c40b510b85a0adbc407ba745a606bb4910a09)

5 years agoBug-2704:Clustering: Fix akka-raft TestDriver logging to run with slf4j 05/20505/2
Kamal Rameshan [Thu, 14 May 2015 00:19:07 +0000 (17:19 -0700)]
Bug-2704:Clustering: Fix akka-raft TestDriver logging to run with slf4j

Change-Id: I5634914b086d87557afb9a851c47958744301253
Signed-off-by: Kamal Rameshan <>
(cherry picked from commit 864f3c5bb156a7f6f6e2d91a6c7d43e916909e84)

5 years agoBUG 3232 : Fix intermittent failure in ShardTest 92/20592/2
Moiz Raja [Sat, 16 May 2015 00:44:11 +0000 (17:44 -0700)]
BUG 3232 : Fix intermittent failure in ShardTest

Change-Id: Ia556fe4833614080d891dd1edcfa8878152bc595
Signed-off-by: Moiz Raja <>
(cherry picked from commit 1b4baa35633543d70488d7b5cd7dd92147b643bc)

5 years agoBUG 3125 : Set Rate Limit just before acquiring a permit to avoid contention 84/20584/1
Moiz Raja [Mon, 11 May 2015 22:43:43 +0000 (15:43 -0700)]
BUG 3125 : Set Rate Limit just before acquiring a permit to avoid contention

During perfomance test performance is hampered by the rate limiting code. To
avoid the penalty of possible contention when setting the rate limit in a
separate thread from the one acquiring a rate permit this patch calculates the
new rate limit and sets it on the rate limiter on the same thread which
acquires the rate limit.

Moving the setting of the rate limit into the same thread which does the
acquiring of the permit did not have any discernable effect on performance so
I continued playing around and found that simply calculating the rate limit
can cause issues with performance. This happens because the Coda Hale metrics
Timer that we use to help calculate the rate limit is also synchronized
internally with a read write lock and that causes contention.

To fix the situation with the rate limit calculation I do not calculate the rate
limit everytime someone tries to acquire a permit but only after acquiring about 1/2 of
the last calculated rate limit.

To make it easier to understand/test the rate limiting code I have slightly refactored
the code. All the transaction rate limiting code is now in TransactionRateLimiter.

After making these changes I was able to get the same performance in the dsBenchmark
test as you would get from not using a rate limiter at all.

Change-Id: Ia7639ac3acdc08140fbf5eef03120f857dc44994
Signed-off-by: Moiz Raja <>
(cherry picked from commit 89e2dda49ea99a79d510a9cc72ebcb09a9d879de)

5 years agoBug 3020: Add version to AppendEntries and AppendEntriesReply 24/20524/2
Tom Pantelis [Fri, 24 Apr 2015 15:17:27 +0000 (11:17 -0400)]
Bug 3020: Add version to AppendEntries and AppendEntriesReply

To handle backwards compatibility, a leader needs to know the version of
its followers wrt to the derived RaftActor's payload data. This will
the derived RaftActor to translate its payload data to an older version.
So I added a version field to AppendEntriesReply which the leader stores
in the FollowerLogInformation.

In addition, a follower needs to know the version of its leader so we
can handle backwards compatibility wrt to transactions since we no
longer send the CreateTransaction message to the leader (currently only
for write-only). This patch adds a version field to AppendEntries - a
subsequent patch will utilize it.

Change-Id: I41632024a270206153e7c5d363ee1c79800e4200
Signed-off-by: Tom Pantelis <>
(cherry picked from commit 655216a6c75aa29d31c4c56c56a5000db56ba233)

5 years agoCDS: Implement front-end support for local transactions 23/20523/2
Robert Varga [Fri, 24 Apr 2015 11:33:24 +0000 (13:33 +0200)]
CDS: Implement front-end support for local transactions

Implemented support on the TransactionProxy front-end for optimizations
where the Shard is local to the controller instance. In this mode, the
Shard's DataTree obtained from the FindPrimaryShard message is used to
prepare the modifications completely on the front-end. On ready, the
DataTreeModification instance is passed to the Shard via
the ReadyLocalTransaction message. The Shard then does a direct commit,
eliding the 3PC from the front-end (it's a no-op as it is for remote
write-only txns).

TransactionContext instances are now obtained via an
AbstractTransactionContextFactory passed to TransactionProxy of which
there are 2 kinds: one for single, unchained txns and one for chained
tnxs. Each creates a different DOM transaction instance to handle
preperation of modifications. The DOM transacton is wrapped in a
LocalTransactionContext which the TransactionProxy interfaces with.

Change-Id: I0322b586f394e4b6c7793b8287ac804b41964378
Signed-off-by: Robert Varga <>
Signed-off-by: Tom Pantelis <>
(cherry picked from commit 2f7c93174d7834a4c4aedacc9b88aa53a5a0422c)

5 years agoCDS: make sure to assert non-null Exception in test 50/20550/1
Robert Varga [Fri, 1 May 2015 19:57:32 +0000 (21:57 +0200)]
CDS: make sure to assert non-null Exception in test

The exception can be potentially null, make sure we fail the test if it

Change-Id: I6b987e2962abfaa8afa570791e3500fa4916e5c2
Signed-off-by: Robert Varga <>
(cherry picked from commit 366726ce5400e77ad813aba0ed1289331093db50)

5 years agoAdd AuthHandler to stresstool 87/19687/7
Tomas Cere [Tue, 5 May 2015 09:21:18 +0000 (11:21 +0200)]
Add AuthHandler to stresstool

Stop bundling BouncyCastle into strestool uber-jar,
JCE certificate gets wiped this way and Oracle JDK refuses to use it.
Instead export them into target/lib dir and setup stresstool jar classpath to point to this directory.

Change-Id: I3c7ab9ea0f5faba2f02f4e0cfa21adda6bce2e4e
Signed-off-by: Tomas Cere <>
5 years agoBug 2981 - POST mismatching IDs data vs URI possibility 14/19014/7
Vaclav Demcak [Fri, 24 Apr 2015 13:14:27 +0000 (15:14 +0200)]
Bug 2981 - POST mismatching IDs data vs URI possibility

fix forgotten validation for check IDs from data and Uri

Change-Id: I465a3550399c5d2d4fcb546b608a9b47e3d97e63
Signed-off-by: Vaclav Demcak <>
5 years agoBUG 3200 : Serialize a child node even when it is UNMODIFIED 18/20318/1
Moiz Raja [Thu, 14 May 2015 00:11:39 +0000 (17:11 -0700)]
BUG 3200 : Serialize a child node even when it is UNMODIFIED

Change-Id: If1220cd2a84d770ca02bca6a5f070032188b5e21
Signed-off-by: Moiz Raja <>
(cherry picked from commit 1c06873f9d31586aa73ba6ca72b1c286887dbd02)

5 years agoBUG 3156 : Recreating CDS should not fail 81/20181/3
Moiz Raja [Thu, 7 May 2015 01:43:31 +0000 (18:43 -0700)]
BUG 3156 : Recreating CDS should not fail

When CDS is recreated it can fail because we try to
create actors on a datastore that is already terminated.

To address this issue I have enhanced DistributedDataStoreFactory
as follows,

- Simplified the actor system creation code by synchronizing
  all static methods. Since these methods are anyway not used in
  any fast paths - it is a fair enough solution.
- Added another static field in DistributedDataStoreFactory to
  track the createdInstances. This is so that we can properly
  cleanup the actor system as instances of the data store are destroyed.
- The actor system is now shutdown when there are no datastrore instances.
- Removed actor system shutdown from ActorContext to ensure that we
  use the symmetric method destroyInstance

Now that we do not shutdown actor system till both the data stores
are destroyed it may so happen that we may have a situation where we are
trying to create an actor on the old actor system with an already used name
like shardmnanager-config or shardmanager-operational. To avoid this
I have added a loop when creating shardmanager which catches the thrown
exception and retries 100 times after waiting for 100 milliseconds. This
is to give some time for the actor to properly die.

Change-Id: I3c8b2b3b21a1519610bf2ed5e1af8be93f3120ce
Signed-off-by: Moiz Raja <>
(cherry picked from commit 35f8cf2335afa8cf87ce565bbb974431ad5008a6)

5 years agoBug 3161: Create new UpdateElectionTerm class 12/20212/2
Tom Pantelis [Fri, 8 May 2015 21:18:36 +0000 (17:18 -0400)]
Bug 3161: Create new UpdateElectionTerm class

Deprecated inner class RaftActor.UpdateElectionTerm and created a new
stand-alone UpdateElectionTerm class with serialVersionUID set.

Change-Id: Idf9a67656f0103e4f8e668e0812a80687423bfdd
Signed-off-by: Tom Pantelis <>
(cherry picked from commit dc3e8242e7f0a2c937bacad2f2a7d41162d2209e)

5 years agoBug 2351 Speed-up Binding-to-Binding routed RPC Invocation. 12/19312/6
Tony Tkacik [Mon, 27 Apr 2015 12:16:06 +0000 (14:16 +0200)]
Bug 2351 Speed-up Binding-to-Binding routed RPC Invocation.

Current RPC Broker uses LazySerializedContainerNodes
when going thru DOM RPC broker, so in case
RPC is returned it can by-pass deserialization and
use Binding DTO directly.

In case of routed RPCs full serialization to normalized
node was triggered when DOM RPC broker tried to
read RPC route.

This patchset introduces support for LazySerializedContainerNode
to precompute this value and do not use full serialization
when DOM Rpc Broker reads only routing context.

Change-Id: I6d949b5257d40a96ae9edce3bf15c4c3ff932c27
Signed-off-by: Tony Tkacik <>
(cherry picked from commit 313b9c3cdff6c7fbf94583db4b8933aa394bccc0)

5 years agoBug 3161: Remove serialVersionUID to maintain backwards compatibility 64/20164/1
Tom Pantelis [Fri, 8 May 2015 20:32:41 +0000 (16:32 -0400)]
Bug 3161: Remove serialVersionUID to maintain backwards compatibility

The serialVersionUID field was added earlier in Lithium for
RaftActor.DeleteEntries and RaftActor.UpdateElectionTerm however it
breaks backwards compatibility. We need to remove serialVersionUID.

DeleteEntries has already been deprecated for a new class that has
serialVersionUID set and is not an inner class. I will do that same for
UpdateElectionTerm in another patch.

Change-Id: I8180de5865d89d3fea190e48ebeb825743af959d
Signed-off-by: Tom Pantelis <>
(cherry picked from commit 0dd3756434941ff5635a3a3bc60a2f0b59338c1c)

5 years agoBug 1773: Use new Binding Notification Broker by default. 38/18838/4
Tony Tkacik [Wed, 22 Apr 2015 13:01:48 +0000 (15:01 +0200)]
Bug 1773: Use new Binding Notification Broker by default.

New Binding Notification Broker is required in order
to forward Notifications from Binding producers
to DOM Broker, so these notifications could be exposed
via netconf / restconf or in future releases via

Change-Id: I520eb0b31512ec5f2114f0a5ee9492f5d9210679
Signed-off-by: Tony Tkacik <>
5 years agoCDS: add backend support for local transactions 72/19072/7
Robert Varga [Sat, 25 Apr 2015 08:44:13 +0000 (10:44 +0200)]
CDS: add backend support for local transactions

Add the message for submitting a DataTreeModification from the frontend
and the logic to apply it to the Shard's DataTree instance. This is
similar to BatchedModifications, except is is always considered ready.

The ReadyLocalTransaction is not directly serializable, but we create a
new serializer, which turns it into BatchedModifications when
serializing to byte stream.

Change-Id: I23a39c7b5997b48a355af73287d19bbf3ab0ae20
Signed-off-by: Robert Varga <>
5 years agoBug 3135 - Fixed support for InterestListener 83/19783/2
Tony Tkacik [Wed, 6 May 2015 10:42:28 +0000 (12:42 +0200)]
Bug 3135 - Fixed support for InterestListener

InterestListener was one of undocumented beta MD-SAL APIs
which was not intented for public support, but accidentally
was public since Hydrogen and as it turned out other Opendaylight
projects started to using it.

Added support to affected components in order to still support
this API even when using new Notification Broker.

Change-Id: I060474f68a6c37ed05b262a9b46923f668ca3c8b
Signed-off-by: Tony Tkacik <>
(cherry picked from commit 96246098ccbe56af4f688d93dfffc9fdf62713ab)

5 years agoFix racecondition in AsyncSshHandlerWriter 94/19794/2
Tomas Cere [Thu, 7 May 2015 11:39:51 +0000 (13:39 +0200)]
Fix racecondition in AsyncSshHandlerWriter

Fixed racecondition between releasing of netty ByteBuff and removing the msg from pendingWrites.

Change-Id: I40eff55d9c7858534d105a242d3ec6feb9d950d0
Signed-off-by: Tomas Cere <>
5 years agoAdd NetconfXmlUnitRecursiveQualifier to netconf-util. 06/20006/5
Tomas Cere [Mon, 11 May 2015 08:03:18 +0000 (10:03 +0200)]
Add NetconfXmlUnitRecursiveQualifier to netconf-util.

XmlUnit's RecursiveElementNameAndTextQualifier has trouble with non-trivial xml's and
element order in bigger depths.
This adds our own qualifier based on XmlUnit's implementation.

Change-Id: Ie89e84813e11cb2af7c9d3c0c6d80377816f79a7
Signed-off-by: Tomas Cere <>
5 years agoChange http port for NorthBoundIT tests 82/19982/1
Tom Pantelis [Sat, 9 May 2015 03:36:50 +0000 (23:36 -0400)]
Change http port for NorthBoundIT tests

The NorthBoundIT tests are failing on jenkins due to port http 8080
already in use. I don't know what else would be running on port 8080
on the build machines - maybe a remnant of another test that didn't
cleanup or didn't finish cleaning up in the background. In any event,
I changed the port to 8180 to hopefully avoid the issue so verify
builds can succeed.

Change-Id: Ia11ef1d69c8cd5948063ec6dbfc08fab2492319c
Signed-off-by: Tom Pantelis <>
(cherry picked from commit 0ffa3f90a7546c29165d13b9ff448a82f0af1317)

5 years agoFix test to return PrimaryShardInfo when retrieving primary shard 74/19974/1
Moiz Raja [Wed, 29 Apr 2015 04:00:30 +0000 (21:00 -0700)]
Fix test to return PrimaryShardInfo when retrieving primary shard

Without these changes the tests log a lot of ClassCastExceptions when

I also removed one method in the test that was unused

Change-Id: I9501dc7cd6be461297052182de79dae831409a8c
Signed-off-by: Moiz Raja <>
(cherry picked from commit 17787472279e0c04061a1ef1ad2b110b1f77b9b3)

5 years agoUse MoreExecutors.directExecutor() 73/19973/1
Robert Varga [Sat, 2 May 2015 03:02:07 +0000 (05:02 +0200)]
Use MoreExecutors.directExecutor()

Remove open-coded equivalent of the direct executor. We do not need an
ExecutorService, so it is sufficient and does precisely what our class

Change-Id: Ib9424a1b4d3ba56f32ef5aec525de4026be0970a
Signed-off-by: Robert Varga <>
(cherry picked from commit 335ea558bd22d4b09e4490aed96ddcbe44da6d76)

5 years agoCDS: Introduce ChainedTransactionIdentifier 47/19147/5
Robert Varga [Mon, 27 Apr 2015 12:40:45 +0000 (14:40 +0200)]
CDS: Introduce ChainedTransactionIdentifier

Conceptually the identifier of a a transaction is an extension point,
which allows passing of arbitratry, extensible identifier. It can thus
be reused to track the chain identifier as well as the normal source

Introduce ChainedTransactionIdentifier to carry the transaction chain ID
attached to the transaction on the frontend. This is not used in this
commit directly, but rather in the follow-up patch.

Change-Id: Iad24a1b59c6231e003579bb25149b73b11d6db25
Signed-off-by: Robert Varga <>
5 years agoCDS: split TransactionType from TransactionProxy 89/19089/8
Robert Varga [Sat, 25 Apr 2015 15:05:01 +0000 (17:05 +0200)]
CDS: split TransactionType from TransactionProxy

The type is used outside, too, so split it out into its own file.

Change-Id: I00589bc46b724ae5b0de3852056111a3f1bcb897
Signed-off-by: Robert Varga <>
5 years agoCDS: do not propagate SchemaContext 88/19088/9
Robert Varga [Sat, 25 Apr 2015 14:46:50 +0000 (16:46 +0200)]
CDS: do not propagate SchemaContext

TransactionContext implementations do not need, so remove the
constructor argument and adjust callers.

Change-Id: I7f6644e3e673057586a1ec6cfbe93b6e258ca9ad
Signed-off-by: Robert Varga <>
5 years agoMerge "BUG-3095 Add EventTime attribute to DOMNotification from netconf"
Tony Tkacik [Thu, 7 May 2015 10:26:05 +0000 (10:26 +0000)]
Merge "BUG-3095 Add EventTime attribute to DOMNotification from netconf"

5 years agoMerge "Add missing copyright text"
Tony Tkacik [Thu, 7 May 2015 09:56:54 +0000 (09:56 +0000)]
Merge "Add missing copyright text"

5 years agoMerge "BUG 2954 : Thread local DocumentBuilder's for XmlUtil"
Tony Tkacik [Thu, 7 May 2015 09:28:02 +0000 (09:28 +0000)]
Merge "BUG 2954 : Thread local DocumentBuilder's for XmlUtil"

5 years agoMerge "Bug 2983 - POST operation to list only accepts data for keys"
Tony Tkacik [Thu, 7 May 2015 07:55:36 +0000 (07:55 +0000)]
Merge "Bug 2983 - POST operation to list only accepts data for keys"

©2013 OpenDaylight, A Linux Foundation Collaborative Project. All Rights Reserved.
OpenDaylight is a registered trademark of The OpenDaylight Project, Inc.
Linux Foundation and OpenDaylight are registered trademarks of the Linux Foundation.
Linux is a registered trademark of Linus Torvalds.