7 years agoRemoved uncessary calls to RpcBroker to find routes. 84/22584/1
Tony Tkacik [Thu, 11 Jun 2015 15:19:46 +0000 (17:19 +0200)]
Removed uncessary calls to RpcBroker to find routes.

Moved invokeRpc part to RemoteRpcImplementation
which allowed to do ask for lookups in RemoteRpcImplementation.

This changed role of RpcBroker part to only delegate
to MD-SAL, if RPC was received via Akka.

remote.rpc.RpcBroker interaction model represented
multi-stepped pipeline which resulted in following
message pattern

RemoteRpcImplementaion ->
RpcBroker#InvokeRpc ->
RpcRegistry#FindRoutes ->

InvokeRpc only did lookup in FindRoutes and all
outgoing messages needed to pass via RpcBroker.
Unfortunatelly this also prevented lookup
of any RPC Path during executing RPC in MD-SAL.

Change-Id: I6e84bfcb74b71f7417c2d3f8c35a7f8b0406caf9
Signed-off-by: Tony Tkacik <>
(cherry picked from commit 9216287a4d1fc310f81f1956685f4e6deb7eefa8)

7 years agoBUG-3675 Support non-prefixed identityrefs in config subsystem 78/22378/2
Maros Marsalek [Thu, 11 Jun 2015 14:39:29 +0000 (16:39 +0200)]
BUG-3675 Support non-prefixed identityrefs in config subsystem

If a non prefixed but valid identityref was submitted as e.g. service type,
netconf connector for config subsystem failed.

Change-Id: I59dbb7dc83da9558db06118bdf1296f1ab9d782f
Signed-off-by: Maros Marsalek <>
7 years agoBUG 2970 : Recovery fails with SchemaValidationException when removing modules 05/22505/1
Moiz Raja [Fri, 12 Jun 2015 01:29:07 +0000 (18:29 -0700)]
BUG 2970 : Recovery fails with SchemaValidationException when removing modules

My prior fixes for bug 2970 did not address the recovery problem when a module is
removed but it's data is still present in the persisted files. This patch attempts
to address that.

There seems to be no schema validation when you write a normalized node at / so
for when writing or merging at / the pruning is done first before attempting a
write on InMemoryDataTreeModification

Also removed all unneccessary code.

Change-Id: Id2793330441606c62dfd903cdd698c2f86b14c1b
Signed-off-by: Moiz Raja <>
(cherry picked from commit 9a06d5de97157fdd497946f7c467c928344e0e67)

7 years agoBUG 3652 : GZip restconf response 00/22500/1
Moiz Raja [Thu, 11 Jun 2015 01:10:07 +0000 (18:10 -0700)]
BUG 3652 : GZip restconf response

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

7 years agoChange variables, methods, field names from transactionContextAdapter to transactionC... 82/22382/1
Moiz Raja [Wed, 10 Jun 2015 18:33:00 +0000 (11:33 -0700)]
Change variables, methods, field names from transactionContextAdapter to transactionContextWrapper

Change-Id: I675df3d3c5ace1fcb4b82025e862eafa8cc37357
Signed-off-by: Moiz Raja <>
(cherry picked from commit 080a1841e19ede9fd9c098d2e1350e0b618ac9f1)

7 years agoBUG 3019 : Fix Operation throttling for modification batching scenarios 71/22371/2
Moiz Raja [Wed, 10 Jun 2015 01:37:35 +0000 (18:37 -0700)]
BUG 3019 : Fix Operation throttling for modification batching scenarios

This patch straightens out where exactly limiting is done.

A TransactionProxy creates a TransactionContext for every shard on
which a transaction needs to be done. There are 3 types of TransactionContexts.
NoOpTransactionContext, LocalTransactionContext and RemoteTransactionContext.
When a operation is done on TransactionProxy it does not know which of these
TransactionContexts it should create so it first createas a TransactionContextWrapper.
All operations on TransactionProxy are then queued up in the TransactionContextWrapper
till we determine which TransactionContext to create. This patch creates an
OperationLimiter per TransactionContextWrapper. Everytime an operation is enqueued
we acquire a permit.

When the TransactionContext is finally created we do different things depending on
the TransactionContext. For NoOp and Local TransactionContexts we completely ignore
the limiter - that is for these TransactionContexts there is no limiting done. For
RemoteTransactionContext we do limiting. RemoteTransactionContext does not acquire
Operation permits till it is made visible by the TransactionContextWrapper - this is
signaled be the setting of the handOffComplete flag in AbstractTransactionContext.
After that RemoteTransactionContext takes over the business of acquiring permits.
OperationLimiter which also serves as the Operation completion handler is the only
component that releases the permits.

Another thing which this patch addresses is which configuration option we use for
operation limiting. We now use ShardBatchedModificationCount instead of the mailbox
limit from akka.conf. This removes the possibility of mis-configuration where
making ShardedBatchedModificationCount higher than mailbox limit could cause
unexpected blocking.

Change-Id: I571ba5278630e5166be6bcb3ff8e1c527c5e3343
Signed-off-by: Moiz Raja <>
(cherry picked from commit 21ccb7510c28e824d6441d48604aec7467d44710)

7 years agoBug 3570: Use SnapShot lastAppliedIndex for install snapshot 68/22368/1
Tom Pantelis [Wed, 10 Jun 2015 06:17:21 +0000 (02:17 -0400)]
Bug 3570: Use SnapShot lastAppliedIndex for install snapshot

Follow-up patch for to
use the captured Snapshot's lastAppliedIndex for the lastIncludedIndex
field in the InstallSnapshot message and the follower's matchIndex/nextIndex
once the install completes. This is in lieu of using the leader's snapshotIndex
which typically lags behind the lastAppliedIndex by 1 due to the trimming of
the in-memory log. This avoids the leader sending its last log entry
redundantly after the install completes as the last entry was included
in the snapshot.

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

7 years agoBug 3640 - RPC call error - impossible to call rpc 21/22221/2
Jan Hajnar [Tue, 9 Jun 2015 11:02:45 +0000 (13:02 +0200)]
Bug 3640 - RPC call error - impossible to call rpc

* disabled children search in post if request is rpc input
* fixed XmlNormalizedNodeBodyReader tests that were testing on wrong rpc
input data

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

7 years agoBug 3570: Persist snapshot on follower ApplySnapshot 50/22250/2
Tom Pantelis [Tue, 9 Jun 2015 13:32:52 +0000 (09:32 -0400)]
Bug 3570: Persist snapshot on follower ApplySnapshot

When a leader installs a snapshot on a follower, the follower now
perists the snapshot.

Change-Id: I56e25aa80f335e41a992ddce084c84c2a345b03b
Signed-off-by: Tom Pantelis <>
(cherry picked from commit 86f58c88f0e6a0d3caf930f1ac59ab617e034894)

7 years agoRemote RPC Broker: Make Futures non-blocking. 46/22246/2
Tony Tkacik [Tue, 9 Jun 2015 16:59:16 +0000 (18:59 +0200)]
Remote RPC Broker: Make Futures non-blocking.

Change-Id: I06eedf5eea33458f88b3bad94afcc8c1d85a9c19
Signed-off-by: Tony Tkacik <>
(cherry picked from commit c89c9a5f25ea53a002a3cd0672f6e86b7a876f05)

7 years agoBug 3020: Use leader version in LeaderStateChanged 48/22248/1
Tom Pantelis [Tue, 2 Jun 2015 01:30:59 +0000 (21:30 -0400)]
Bug 3020: Use leader version in LeaderStateChanged

Modified the ShardManager to store the leader's version obtained from the
LeaderStateChanged message in the ShardInformation and propagate to the
RemotePrimaryShardFound message in response to FindPrimary.

ActorContext#findPrimaryShardAsync sets the leader's version in the
PrimaryShardInfo based on the FindPrimary response. If the response is
LocalPrimaryShardFound, it sets it to CURRENT_VERSION, otherwise it sets
it from the RemotePrimaryShardFound response.

RemoteTransactionContextSupport#setPrimaryShard checks the leader's
version to determine if it can utilize the direct tx modification
preparation on the shard actor.

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

7 years agoBUG-3604 Ignore empty edits in netconf connector 23/22223/2
Maros Marsalek [Tue, 9 Jun 2015 08:15:35 +0000 (10:15 +0200)]
BUG-3604 Ignore empty edits in netconf connector

Ignore merge/put operation with data that result in an empty edit-config rpc.
Some netconf devices ignore it, but some dont and return errors.

This kind of merge is triggered e.g. by Restconf when trying to ensure parent
structure for top level list.

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

7 years agoAvoid ClassCastException in remote-rpc-connector 15/22215/1
Moiz Raja [Tue, 9 Jun 2015 02:22:28 +0000 (19:22 -0700)]
Avoid ClassCastException in remote-rpc-connector

Change-Id: Idc41c2d4409ac321bc47e48150c801166999ce17
Signed-off-by: Moiz Raja <>
(cherry picked from commit 6e0016fba14509df5eff3314c70401c5491b2ccc)

7 years agoUnify declarations in archetype-parent 68/22168/2
Robert Varga [Sun, 31 May 2015 23:20:04 +0000 (01:20 +0200)]
Unify declarations in archetype-parent

Instead of repeating extends/pluginManagement sections, make sure they
are inherited from the parent.

Change-Id: I49882c57221a5c5806d936ff3b94cf71aeef64e6
Signed-off-by: Robert Varga <>
(cherry picked from commit e2e553602698c475e7cf7fe73a8bfd7a2a045e35)

7 years agoMove operation limiter down to TransactionContextWrapper 47/22147/3
Robert Varga [Tue, 19 May 2015 20:04:10 +0000 (22:04 +0200)]
Move operation limiter down to TransactionContextWrapper

The limiter tracks the number of operations invoked on the shard leader,
which does not correspond to the number of operations executed on the

The appropriate entity to decide what is throttled how is the
TransactionContext, which unfortunately may not exist. We will solve
this problem by making TransactionContextWrapper perform pessimistic
limiting as long as the context does not exist. Once the context is
materialized, the outstanding operation queue is handed off to it and
the context becomes the entity managing the limits.

This patch has the side-effect that committing a transaction requires
number of permits equal to the number of shards it touches. It also
ensures that readAll() is properly throttled.

Change-Id: If91816d806bbb3895592e1f42b0b8e389443d0f7
Signed-off-by: Robert Varga <>
(cherry picked from commit 9e7a9b3725ad25f9adf85f0ad796b7cf748795a4)

7 years agoMigrate to MoreObjects 65/22165/1
Robert Varga [Sat, 6 Jun 2015 19:45:12 +0000 (21:45 +0200)]
Migrate to MoreObjects

Objects is overloaded with JDK7, use the MoreObjects class.

Change-Id: I73f9ba24e990df8160b45b6fb0763a1b2ac231d6
Signed-off-by: Robert Varga <>
7 years agoFix various netconf warnings 93/22093/2
Robert Varga [Sat, 6 Jun 2015 19:43:10 +0000 (21:43 +0200)]
Fix various netconf warnings

Overridden version, potentially static methods.

Change-Id: I54af7e8b48335b4b81594d4deeb0f75e21dbc932
Signed-off-by: Robert Varga <>
(cherry picked from commit 2660b697228bb3e708a556b53e06a89d5ea00440)

7 years agoBug 3067: Enable blocking behaviour 91/22091/2
Tony Tkacik [Tue, 26 May 2015 14:07:15 +0000 (16:07 +0200)]
Bug 3067: Enable blocking behaviour

MD-SAL Binding components will block user threads
till schemas for used binding classes is loaded
or 5sec timeout expires.

Change-Id: Ib1280e0d68e7bda979ad0e944b1e7d199a243399
Signed-off-by: Tony Tkacik <>
(cherry picked from commit 67682d67e9b5e80a4d2a9cf117ba615ec4169f6f)

7 years agoConvert OperationCompleter to OperationLimiter 41/22141/1
Robert Varga [Tue, 19 May 2015 19:50:12 +0000 (21:50 +0200)]
Convert OperationCompleter to OperationLimiter

The completer and limiter functions are related to each other, so
encapsulate them in a single object.

Since a TransactionProxy cannot really do anything without touching the
limiter, make sure we instantiate it in constructor, preventing some
volatile reads in the fast path.

Change-Id: I4cf31ef46c11676611a62db7a794f504712ce5af
Signed-off-by: Robert Varga <>
(cherry picked from commit b2af021ee27b2977961f0fec6f8bb1a4acbcdbd7)

7 years agoAdd missing capabilities declaration to toaster test configuration. 80/22080/2
Tony Tkacik [Wed, 20 May 2015 12:39:29 +0000 (14:39 +0200)]
Add missing capabilities declaration to toaster test configuration.

Change-Id: I7055a36adce5e21a80a025f4cf55bdc9224b6879
Signed-off-by: Tony Tkacik <>
(cherry picked from commit 63d26e2faa3082804ced0ca1b7a38289152a1485)

7 years agoBug 3039 - PUT augmentNode like last path element 85/22085/2
Vaclav Demcak [Thu, 4 Jun 2015 16:13:48 +0000 (18:13 +0200)]
Bug 3039 - PUT augmentNode like last path element

* fixed JsonNormalizedNodeBodyReader error when PUT operation was used
and data were wrapped in augmentation or choice nodes
* fixed bug that allowed XmlNormalizedNodeBodyReader to parse PUT with
incorrect data (when PUT request was written as POST)

note: testet manualy describled scenario + CSIT OFP_test_suite

Change-Id: Ia25b6b45a1154866dea29c763be67cdb17fa0ce1
Signed-off-by: Jan Hajnar <>
Signed-off-by: Vaclav Demcak <>
7 years agoBug 568 - Websockets: Test & fix data change notifications 61/21861/3
Jan Hajnar [Tue, 2 Jun 2015 09:01:21 +0000 (11:01 +0200)]
Bug 568 - Websockets: Test & fix data change notifications

* changed WebSocketClient input parameter to accept "ws" protocol
instead of "http"

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

7 years agoBug 2358 - Decrease Technical Debt 79/22079/2
Jakub Toth [Thu, 4 Jun 2015 08:48:47 +0000 (10:48 +0200)]
Bug 2358 - Decrease Technical Debt

fix compilation eclipse ID error

Change-Id: I39398878338a9c02d6cc8219aa76d1c9e15c8e10
Signed-off-by: Jakub Toth <>
(cherry picked from commit d7b5e0619787f99844e19b9ef36f0a1793044f33)

7 years agoBug 2358 - Resources for tests nn to xml 64/22064/3
Jakub Toth [Mon, 1 Jun 2015 07:19:22 +0000 (09:19 +0200)]
Bug 2358 - Resources for tests nn to xml

Tests of codecs are included in codecs yangtools yang-data-codec-gson and
yang-data-impl but we test codec on input data and also with presentation of Rest path.

* fix and add yang files for tests
* fix xmls files
* rename base folder of cnsn-to-xml to nn-to-xml

Change-Id: I6ad16f4e12c5f79089eda824d7b4879cdff14e6f
Signed-off-by: Jakub Toth <>
(cherry picked from commit cfdf1580b9a00e592ef79dc682ca234a97705413)

7 years agoBug 3104 - fixed XmlNormalizedNodeBodyReader 78/22078/2
Vaclav Demcak [Fri, 29 May 2015 09:53:14 +0000 (11:53 +0200)]
Bug 3104 - fixed XmlNormalizedNodeBodyReader

Note: add missing key is relevant only for a POST scenario.

Change-Id: Ibe97f83de4411c0fa5e28ced192f69aa65454027
Signed-off-by: Vaclav Demcak <>
(cherry picked from commit 37aa81d301af72a6ea4ddf5e51c3f26f53c66a3d)

7 years agoBug 3104 - fixed XmlNormalizedNodeBodyReader bug when data started at 77/22077/2
Jan Hajnar [Thu, 28 May 2015 09:41:35 +0000 (11:41 +0200)]
Bug 3104 - fixed XmlNormalizedNodeBodyReader bug when data started at

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

7 years agoBug 2358 - Resources for tests nn to json 76/22076/2
ary [Thu, 7 May 2015 07:56:59 +0000 (09:56 +0200)]
Bug 2358 - Resources for tests nn to json

Tests of codecs are included in codecs yangtools yang-data-codec-gson and yang-data-impl
but we test codec on input data and also with presentation of Rest path.

* fix and add yang files for tests
* fix json and xml files
* rename base folder of csns-to-json to nn-to-json

Change-Id: Id1c88f069d259536d34438d7b68666dd3010adc4
Signed-off-by: Jakub Toth <>
(cherry picked from commit b0e9c2a7deb5a49e7f964ec1eee06198c0c15f5a)

7 years agoBug 3017 - Error messages and logs missing for this or other RPC failures 75/22075/2
Vaclav Demcak [Wed, 6 May 2015 13:10:14 +0000 (15:10 +0200)]
Bug 3017 - Error messages and logs missing for this or other RPC failures

Note: Restconf doesn't contain logs for more functionality (not only RPC)
so this patch adds better logging for Restconf (BrokerFacade and RestconfImpl).
Administrators are not able to pair user's reports and karaf log without better
logging information and it would help for better problem identify (e.g. bug 3080).

* BrokerFacade - add Logging for lev info for all extra state
* RestconfImpl - add Logging for lev warn for unexpected error state
               - add Logging for lev debug for another extra state

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

7 years agoBug 3104 - Sal Rest Connector: Data already exists for path when adding 74/22074/2
Jan Hajnar [Mon, 4 May 2015 14:57:49 +0000 (16:57 +0200)]
Bug 3104 - Sal Rest Connector: Data already exists for path when adding
new item to list in augmentation

* changed XmlNormalizedNodeBodyReader and JsonNormalizedNodeBodyReader
to return YangInstanceIdentifier pointing to root of payload data.
* changed BrokerFacade datastore functions for PUT and POST to use
returned path from reader without modifications
* modified rest connector tests according to new behavior and added
tests for POST when payload is from augment/choice

Change-Id: Iac6a9853ea4c4529d2f484c464bd27123f4fafa2
Signed-off-by: Jan Hajnar <>
(cherry picked from commit 3d4dc18c01ebca47030284dde81988a44424d821)

7 years agoBug 2358 - Changed modifier of method in AbstractBodyReaderTest to protected 87/19287/7
ary [Wed, 29 Apr 2015 10:00:31 +0000 (12:00 +0200)]
Bug 2358 - Changed modifier of method in AbstractBodyReaderTest to protected

Tests of codecs are included in codecs yangtools yang-data-codec-gson and yang-data-impl but we test codec on input data and also with presentation of Rest path.

* changed modifier of method getMediaType() to protected
* fix tests with method getMediaType()
* remove additional assertions

Change-Id: I211c2dc43690b663cada31deb3942e10fcc95366
Signed-off-by: ary <>
(cherry picked from commit 90aed8ac03ee3496178bdc3ec4b46f5c98dd78fc)

7 years agoImprove BindingDOMRpcImplementationAdapter performance 82/22082/3
Robert Varga [Thu, 28 May 2015 11:20:30 +0000 (13:20 +0200)]
Improve BindingDOMRpcImplementationAdapter performance

BindingReflections return a non-shared QNameModule instance, which means
that we may end up using suboptimal lookups when comparing QNames.
Furthermore it is not the QNameModule which we need in the fastpath, but
rather QName of the input statement, hence create a cached reference of
that -- leading to minimal object allocation in the fast path.

Change-Id: I97ceb43d80c50d53d21cc66a31bfaae6ff0193e9
Signed-off-by: Robert Varga <>
(cherry picked from commit c4ee9b293370b81b76cc0e06accf3cde31ac1722)

7 years agoInstantiate faster RpcServiceInvokers 84/22084/2
Robert Varga [Wed, 27 May 2015 15:00:07 +0000 (17:00 +0200)]
Instantiate faster RpcServiceInvokers

Now that we have the SchemaPath->Method mapping available and
RpcServiceInvoker can instantiate efficient invokers based on the
QName->Method mapping, switch over to them by creating an intermediate

Change-Id: If5e17924d9deb494045965578cfcec6d321d04d2
Signed-off-by: Robert Varga <>
(cherry picked from commit 0aedb207da64e63900e2dbc85ba2a030ea7800e4)

7 years agoRework BindingDOMRpcImplementationAdapter instantiation 81/22081/3
Robert Varga [Wed, 27 May 2015 11:45:07 +0000 (13:45 +0200)]
Rework BindingDOMRpcImplementationAdapter instantiation

Move the SchemaPath/Method map closer to where we instantiate invokers.
This has the benefit of speeding up registration code very slightly,
but more importantly it allows instantiating more efficient invokers, as
we have the SchemaPath->Method map readily available.

Change-Id: Iefc0faadcfd7df6c40240ce1f78c7b734f06c618
Signed-off-by: Robert Varga <>
(cherry picked from commit 99783448ed6bbcad04b66379db638241c58e3ec8)

7 years agoBug 3189: Check consistency of Instance Identifier and Data 65/22065/2
Tony Tkacik [Wed, 13 May 2015 09:24:36 +0000 (11:24 +0200)]
Bug 3189: Check consistency of Instance Identifier and Data

Change-Id: If6f5cf8b28eb27cba89faf8a7c9489ed7fdc3dca
Signed-off-by: Tony Tkacik <>
(cherry picked from commit c567ebbe7ffdb38e88524e710145cab7d3c790bc)

7 years agoBUG 3067: Added support for blocking if schema is not available. 63/22063/2
Tony Tkacik [Tue, 5 May 2015 11:57:57 +0000 (13:57 +0200)]
BUG 3067: Added support for blocking if schema is not available.

Codecs are able to send specific exception, which describes
reason of failure for codec failing. If the reason is
missing schema (not yet loaded) we catch it and retry
serialization after schema context is upgraded.

User thread will be blocked maximally for 5 seconds
after that it will be unblocked.

Change-Id: I3494702eae644b495211a1a34c074e268c2f5f46
Signed-off-by: Tony Tkacik <>
(cherry picked from commit 6aba3ef282f86a84920fa5a7ccf21c91d459806b)

7 years agoFix archetype compilation 62/22062/2
Robert Varga [Sun, 31 May 2015 23:16:36 +0000 (01:16 +0200)]
Fix archetype compilation

Change-Id: I9217cb78881118c46c81f7c5d4f8c9bafe82d3fd
Signed-off-by: Robert Varga <>
(cherry picked from commit 684c48aba29d1c87190679ed1409d506f59f967e)

7 years agoBUG-3335 Disable keepalives in netconf testtool 61/22061/2
Maros Marsalek [Mon, 25 May 2015 10:37:34 +0000 (12:37 +0200)]
BUG-3335 Disable keepalives in netconf testtool

Change-Id: I607cd0b11555847a30ca57f339bb7d24fc79368e
Signed-off-by: Maros Marsalek <>
(cherry picked from commit 1e15cd54715a29f17adb847664500a16470cd6a5)

7 years agoGet rid of netconf session preferences after connect 60/22060/2
Maros Marsalek [Wed, 27 May 2015 15:10:56 +0000 (17:10 +0200)]
Get rid of netconf session preferences after connect

Memory usage improvement for sal-netconf-connector: The preferences object was
kept inside the data broker during the entire lifetime of a netconf connector.
This is not necessary as it only needs 3 boolean values from it.

+ intern String representation of capabilities written into datastore.

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

7 years agoBUG 2820: Fix breakage from Import-Package 94/21294/2
Jozef Gloncak [Thu, 28 May 2015 07:24:04 +0000 (09:24 +0200)]
BUG 2820: Fix breakage from Import-Package

Change-Id: I41401d4745c2126ccdc7ed9dffee3299aae9ed0c
Signed-off-by: Ed Warnicke <>
Signed-off-by: Jozef Gloncak <>
(cherry picked from commit 6759779bebf8d724f35518c45a114cca2a0da60c)

7 years agoTweak notification queue backoff 59/22059/2
Robert Varga [Mon, 25 May 2015 11:57:47 +0000 (13:57 +0200)]
Tweak notification queue backoff

Local testing seems to indicate that the LMAX dispatch gives better
throughput with 16 switches when configured to go blocking.

Change-Id: Id273cccc2cbb19ae91ca799ccabca65d1cfd93c4
Signed-off-by: Robert Varga <>
(cherry picked from commit d1050e395b46448ae6031389557d9304992f5e6c)

7 years agoTake advantage of YangInstanceIdentifier methods 09/21109/3
Robert Varga [Fri, 22 May 2015 16:14:47 +0000 (18:14 +0200)]
Take advantage of YangInstanceIdentifier methods

YangInstanceIdentifier provides new, fast methods to acquire parent,
check if it empty and size of path arguments. Take advantage of them.

Change-Id: I527ff8cefb2799cb188ffe294c69e3b81a0d6909
Signed-off-by: Robert Varga <>
(cherry picked from commit ad7a6537b709a72e763835cae683b8cc12401ce1)

7 years agoBUG-2150 Report errors for semantic issues with config snapshots 68/21868/2
Maros Marsalek [Fri, 29 May 2015 12:39:06 +0000 (14:39 +0200)]
BUG-2150 Report errors for semantic issues with config snapshots

Change-Id: Ie8cf61e71649f64147a3cff6f92ae67b26454cb9
Signed-off-by: Maros Marsalek <>
(cherry picked from commit 2763c33336189a88b1c7ae1cc1c5311709610ee2)

7 years agoBug 2521 - Wrong return status code for non-existing mount-point 66/21866/2
Vaclav Demcak [Tue, 2 Jun 2015 13:14:48 +0000 (15:14 +0200)]
Bug 2521 - Wrong return status code for non-existing mount-point

Note: MountpointService returns Optional object without mountpoint,
so this is the point where we would like to see error code 404.

Change-Id: Id7902e5c80786275c82e279ae0433a011fa486fc
Signed-off-by: Vaclav Demcak <>
(cherry picked from commit 097cf9e9d96e6ad94ab91728ab84c49b0eba5f61)

7 years agoFix duplicate dependency declarations 63/21863/2
Robert Varga [Sun, 31 May 2015 23:16:59 +0000 (01:16 +0200)]
Fix duplicate dependency declarations

Dumplicate dependencies trigger a maven warning, remove them.

Change-Id: I9eeff5900650e8781bc883f1dea2cc930403123a
Signed-off-by: Robert Varga <>
7 years agoHttp client for testing restconf 43/21143/5
Tomas Cere [Thu, 14 May 2015 15:31:09 +0000 (17:31 +0200)]
Http client for testing restconf

use --help to find out all suported args.

Change-Id: Ib9cae0479d672d4432bbc0fe87dc98a32f524784
Signed-off-by: Tomas Cere <>
7 years agoFix Subtree filter failing prefix lookup in element. 42/21142/3
Tomas Cere [Wed, 20 May 2015 11:45:36 +0000 (13:45 +0200)]
Fix Subtree filter failing prefix lookup in element.

If element is f.ex a mac adress subtree filter would
try to match a nonexisting prefix.

Change-Id: Id23d78f6c7312f7c7b0b4f92f1cd99d97932de7f
Signed-off-by: Tomas Cere <>
7 years agoBUG-3438 Prevent null pointer for keepalives(netconf-connector) 62/21862/2
Maros Marsalek [Mon, 1 Jun 2015 08:47:41 +0000 (10:47 +0200)]
BUG-3438 Prevent null pointer for keepalives(netconf-connector)

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

7 years agoBUG 3555: disable RC4 in mina-sshd 50/21850/2
Tomas Cere [Wed, 3 Jun 2015 14:57:31 +0000 (16:57 +0200)]
BUG 3555: disable RC4 in mina-sshd

There are various security problems with RC4, this removes
RC4 from the ciphers used in the netconf ssh server.

Change-Id: I8973daf2dfb3670f0c77ffc9099eab2cc2a6cd05
Signed-off-by: Tomas Cere <>
(cherry picked from commit 598345a6d62c4f0a2cfb55bfbc22b6ddd9c9bab7)

7 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)

7 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)

7 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)

7 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)

7 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)

7 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)

7 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)

7 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)

7 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 <>
7 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)

7 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)

7 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)

7 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)

7 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)

7 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)

7 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)

7 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)

7 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)

7 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 <>
7 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)

7 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 <>
7 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 <>
7 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)

7 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 <>
7 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 <>
7 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)

7 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)

7 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)

7 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)

7 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)

7 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)

7 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)

7 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)

7 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 <>
7 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 <>
7 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 <>
7 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)

7 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 <>
7 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)

7 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)

7 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)

7 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)

7 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)

7 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)

7 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)

7 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)

7 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 <>
7 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 <>
7 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 <>
7 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 <>
7 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 <>
7 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)