7 years agoBase projects and parents for IT tests. 94/16294/13
Ed Warnicke [Wed, 11 Mar 2015 00:31:03 +0000 (17:31 -0700)]
Base projects and parents for IT tests.

This provides a very very simple working basis for IT tests.

Change-Id: I16fae750c32ffe6fce356c8036b6d74988aa4f99
Signed-off-by: Ed Warnicke <>
Signed-off-by: Ed Warnicke <>
7 years agoFix AppendEntry logic when prevLogIndex and prevLogTerm is -1 46/24546/2
Moiz Raja [Mon, 13 Jul 2015 20:31:42 +0000 (13:31 -0700)]
Fix AppendEntry logic when prevLogIndex and prevLogTerm is -1

When an AppendEntry arrives at a Follower with the prevLogIndex and
prevLogTerm = -1 the Follower will accept that append entry and add it
to the log. For a newly started Follower this can be problematic
because this will be the first entry in that Followers log and so
applying this entry to the Follower's state can end up corrupting the
state or cause failures in committing transactions.

To fix this we now verify if the replicatedToAllIndex is present in the
Followers log. If it is present then the log is considered in sync else

Change-Id: I09bead430f1a4556182263de54846792668cd27c
Signed-off-by: Moiz Raja <>
(cherry picked from commit 0efdc8e538815024cc54955be0b55ebec0321be6)

7 years agoBUG 2185 : Introduce RaftPolicy & DefaultRaftPolicy 49/24549/1
Moiz Raja [Tue, 21 Jul 2015 23:42:47 +0000 (16:42 -0700)]
BUG 2185 : Introduce RaftPolicy & DefaultRaftPolicy

These allow for simple customization of the Raft algorithm. The intention is
to support the 2-Node clustering scenario in which leaders for a Shard will need
to be specified externally and where weak(er) consistency may be considered ok

Change-Id: I16bc69a67ac3096082324f11e62565a7b9d7cc57
Signed-off-by: Moiz Raja <>
(cherry picked from commit 0717961816253536d0ca107f4094de7f00c1ee54)

7 years agoBug 4035: Invert dependency binding-impl -> binding-config 85/24385/6
Tony Tkacik [Wed, 22 Jul 2015 09:24:03 +0000 (11:24 +0200)]
Bug 4035: Invert dependency binding-impl -> binding-config

Dependency between sal-binding-broker-impl and sal-binding-config
was inverted in order to ease split-off and to provide config
wiring outside of implementation.

This is required for separation of MD-SAL Binding implementation
into MD-SAL Project.

Change-Id: Id18567b2c51045461ed12500fe5cb2f324f55b0c
Signed-off-by: Tony Tkacik <>
7 years agoExpose default module instances into OSGi 86/24186/2
Maros Marsalek [Thu, 16 Jul 2015 08:56:09 +0000 (10:56 +0200)]
Expose default module instances into OSGi

Default modules are now registered as services in config subsystem thus making
them available in the OSGi service registry.

Change-Id: I2a3b85ea6aab0d9c98d0b5dfb5b8efd392292042
Signed-off-by: Maros Marsalek <>
7 years agoAdd config subsystem binding to netconf-auth API 85/24185/2
Maros Marsalek [Wed, 15 Jul 2015 13:20:08 +0000 (15:20 +0200)]
Add config subsystem binding to netconf-auth API

Change-Id: Ie04d9a7cb72bfcbeae6c7ca7dc0dbb2bdeadef0d
Signed-off-by: Maros Marsalek <>
7 years agoBug 2358 - Remove tests cnsn to json and add tests nn to json 18/22618/6
Jakub Toth [Wed, 27 May 2015 09:41:45 +0000 (11:41 +0200)]
Bug 2358 - Remove tests cnsn to json and add 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.

* remove test
* add to nn/to/json/test/
  * test with not existing leaf type

Change-Id: Id7a1256b42a3a754e13343613dcad7059a2316c4
Signed-off-by: Jakub Toth <>
(cherry picked from commit 1fa839d51563b9588bf7502e86a5e9c2425fab2f)

7 years agoBug 2358 - Remove tests cnsn to json and add tests nn to json 17/22617/6
Jakub Toth [Wed, 27 May 2015 10:44:31 +0000 (12:44 +0200)]
Bug 2358 - Remove tests cnsn to json and add 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.

* remove CnSnToJsonWithAugmentTest test
* add NnToJsonWithAugmentTest to nn/to/json/test/
  * positive test for test augmented elements

Change-Id: I4c8b92e828ade1d43a5af5384ec7938854fda9ce
Signed-off-by: Jakub Toth <>
(cherry picked from commit 6b97753fc17bb2d9d73047038105754fcebe029d)

7 years agoBug 2358 - Remove tests json to cnsn and add tests json to nn 90/19290/7
ary [Wed, 29 Apr 2015 10:09:41 +0000 (12:09 +0200)]
Bug 2358 - Remove tests json to cnsn and add tests json to nn

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.

* remove all tests json to composite node and simple node
* rewrite json leafref input tests from comp and simple node to normalized node
  * we're testing REST provider URI path translator with payload
* add test for test data in json with identityref to normalized node
  * positive test
  * test data in builded normalized node with data in json
    * used identityref type to reference an existing identity
* add test for test data in json with leafref to normalized node
  * positive test
  * test data in builded normalized node with data in json
    * used leafref type to reference particular leaf instance in the data tree
* add test for test data in json with more type of nodes and values
  * positive tests
    * test normalized node from json with:
      * simple data in list
      * simple data in container
      * multiple items in leaf-list
      * multiple items in list
      * empty leaf
      * augmented data
  * negative tests
    * test fail on bad top level elements
      * contains 3 situations
    * test fail for null data
      * empty leaf-list
      * leaf without any value
    * test on build normalized node with blank json
    * test fail with different namespaces
    * test fail because of unsupported format of json
    * test on invalid URI character

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

7 years agoCLEANUP : Fix javadoc warnings in sal-akka-raft code 53/24453/1
Moiz Raja [Wed, 22 Jul 2015 00:23:19 +0000 (17:23 -0700)]
CLEANUP : Fix javadoc warnings in sal-akka-raft code

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

7 years agoFixed wrong format in ShardedDOMDataTree 91/18991/4
Tony Tkacik [Thu, 23 Apr 2015 14:09:28 +0000 (16:09 +0200)]
Fixed wrong format in ShardedDOMDataTree

Change-Id: Ie32ff9ad72e4bbae9a5ef1290ff63d5780c92313
Signed-off-by: Tony Tkacik <>
7 years agoRemove deprecated constructors from RemoteDeviceId 99/24099/5
Maros Marsalek [Tue, 14 Jul 2015 12:26:15 +0000 (14:26 +0200)]
Remove deprecated constructors from RemoteDeviceId

Change-Id: I26d48930a16213d2264de964f60103e67f80b9bd
Signed-off-by: Maros Marsalek <>
7 years agoImprove performance of notification emitting in netconf testtool 26/23826/2
Maros Marsalek [Mon, 8 Jun 2015 15:22:45 +0000 (17:22 +0200)]
Improve performance of notification emitting in netconf testtool

- pre-parse all notifications beforehand
- remove unwanted outputs

Change-Id: I6dd823786fd0d5f9ab04943633f8aa3b61a540e8
Signed-off-by: Maros Marsalek <>
(cherry picked from commit 7392728edfe0b150833c7af47c3bc8d4b0ce101a)

7 years agoImprove performance of netconf notification processing 21/23721/3
Maros Marsalek [Mon, 8 Jun 2015 15:21:22 +0000 (17:21 +0200)]
Improve performance of netconf notification processing

Couple of minor performance fixes e.g:
- create QName without revision when not needed
- delete unnecessary logs
- parse event time using QName.parseRevision

Change-Id: Ic099e40fb5fdb7001af946e5f3e053911e54053f
Signed-off-by: Maros Marsalek <>
(cherry picked from commit 07797c1f8e35731ca7dce1d4524f669a171b731e)

7 years agoBug 3887 - Autogenerated API documentation doesn't show application/xml 78/24378/2
Jan Hajnar [Wed, 1 Jul 2015 09:03:44 +0000 (11:03 +0200)]
Bug 3887 - Autogenerated API documentation doesn't show application/xml
as an option for RPC operations

* added xml input option for rpcs, put and post methods

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

7 years agoBUG-3963 Remove netconf-usermanager 92/24092/2
Maros Marsalek [Tue, 14 Jul 2015 08:56:59 +0000 (10:56 +0200)]
BUG-3963 Remove netconf-usermanager

This way of authentication relied on AD-SAL and thats deprecated/removed now
from ODL.

Change-Id: I0daeee09ff88b1c4677206c1b7216e972d34f01c
Signed-off-by: Maros Marsalek <>
7 years agoBUG-2652: Remove inventory related code from netconf connector 65/23165/2
Tomas Cere [Tue, 23 Jun 2015 13:16:39 +0000 (15:16 +0200)]
BUG-2652: Remove inventory related code from netconf connector

Also removed unused BundleContext fields since registerProvider
method does not use BundleContext anymore.

Change-Id: Ia5bc5b7148a981b5a132676dd78bc351b637d9d1
Signed-off-by: Tomas Cere <>
7 years agoBug 1500 - Null pointer exception when using mounted resources tab to 07/23807/2
Jan Hajnar [Tue, 7 Jul 2015 09:38:33 +0000 (11:38 +0200)]
Bug 1500 - Null pointer exception when using mounted resources tab to
see the operations on mount point

* added check for when revision is null in modules comparator

Change-Id: I3bdc4ed798297d31ea25001d25918e298c8124bb
Signed-off-by: Jan Hajnar <>
7 years agoBUG-3878 Prevent null pointer in nc for unresolved addresses 95/24095/4
Maros Marsalek [Tue, 14 Jul 2015 11:27:23 +0000 (13:27 +0200)]
BUG-3878 Prevent null pointer in nc for unresolved addresses

Unresolved address is not a reason for config pusher failure. Use host string
instead of resolved address string representation.

Change-Id: Ieba345077860cd55325ca49980c3fb9edd66051c
Signed-off-by: Maros Marsalek <>
7 years agoCDS: Changes to Tx abort in Shard 62/24262/2
Tom Pantelis [Wed, 1 Jul 2015 22:59:51 +0000 (18:59 -0400)]
CDS: Changes to Tx abort in Shard

I noticed when a tx times out on the front-end during CAN_COMMIT, it
tries to abort the tx but it may not get aborted in the Shard and the
front-end gets an AskTimeoutEx on the abort. The reason is that the
Shard only processes the abort request if the tx is the current tx being
committed. If it isn't, the request is ignored and no response is sent,
resulting in the front-end timeout.

I think it makes sense to also process the abort if the tx is sitting in
the queue awaiting CAN_COMMIT. If the front-end says to abort for any
reason, the Shard should honor it. Also, if it isn't aborted, the Shard
may dequeue it sometime later and attempt to commit it which can lead to
unpredictable results if prior commits failed.

As per the comments in the Helium patch, I did some re-factoring to make
it a bit cleaner. I moved the abort code from the Shard to the
ShardCommitCoordinator. This makes it consistent with the other tx
phases where the Shard mostly delegates to the ShardCommitCoordinator. I
also removed the getCohort method from CohortEntry and added appropriate
methods so the internal cohort instance isn't exposed.

There's more refactoring/cleanup that can be done re: Futures and also
moving CohortEntry into its own class (it's large enough) but I don't
want to overload this patch.

Change-Id: I73c79a5e4a2b39b7ee4d97a011de2d29b050dbc4
Signed-off-by: Tom Pantelis <>
(cherry picked from commit 70e0f223f41ab77de24b6df940d12acd39279e9a)

7 years agoCDS: Retry remote front-end transactions on AskTimeoutException 61/24261/2
Tom Pantelis [Wed, 1 Jul 2015 20:28:43 +0000 (16:28 -0400)]
CDS: Retry remote front-end transactions on AskTimeoutException

With the front-end PrimaryShardInfo cache, if the cached primary/leader
shard is remote and unavailable, the RemoteTransactionContextSupport
will fail with an AskTimeoutException when it tries to send the
CreateTransaction message. Since it can take at least 1 election timeout
period to re-elect a new leader, I changed RemoteTransactionContextSupport
to also retry on AskTimeoutException (it already retries on
NoShardLeaderException). However instead of re-sending the
CreateTransaction message, as it did before, it now re-sends the
FindPrimary message to get a new primary shard actor.

I also modified how RemoteTransactionContextSupport retries. It will now
retry for a total period of 2 times the shard election timeout which
should be ample time for a re-election to occur. If no leader is found then
the txn will fail.

I also added a ShardLeaderNotRespondingException which the
RemoteTransactionContextSupport will throw if it ends up with an
AskTimeoutException after the tx creation timeout period. This shouldn't
occur normally as, with the retries, it should get a NoShardLeaderException
even if the initial error was AskTimeoutException. But it's possible to
end up with an AskTimeoutException, eg if the system is overloaded and
the election timeout is delayed.

During testing, I noticed that if you take down the 2 followers and try
a transaction, it fails with an AskTimeoutEx instead of
NoShardLeaderException as one would expect. This is b/c the leader
changes to an isolated leader. So I changed the Shardanager to return
NoShardLeaderException if the state is IsolatedLeader.

Change-Id: I3efd3f841cf41b7738aedb694fa18b44851b3074
Signed-off-by: Tom Pantelis <>
(cherry picked from commit 845609758d1739ee07d5ca92f5448e18a8933861)

7 years agoCDS: Real snapshot log trimming changes 60/24260/2
Tom Pantelis [Fri, 10 Jul 2015 12:30:11 +0000 (08:30 -0400)]
CDS: Real snapshot log trimming changes

Bug 2692 changed real snapshotting to trim the in-memory log based on
the current replicatedToAllIndex for the normal case when all follower's
are up and "fake" snapshotting is advancing replicatedToAllIndex.

When a follower is down, real snapshots don't trim the log b/c
replicatedToAllIndex isn't advancing unless the memory threshold is
exceeded. So it will let the in-memory log keep growing past the
snapshot batch count. This sort of defeats the purpose of snapshotting,
ie to keep the journal size in check both on disk and in memory. It's
also a bit dangerous - it can chew up a lot of memory and starve the
rest of the system and cause large STW GC's once the follower comes
back up and the log is cleared. This can also cause multiple snapshots
in the follower once it comes back and catches up - eg, if it's behind
60K entries, it will snapshot after each 20K batch in quick succession.

To alleviate the potential excessive memory growth, in addition to
trimming the log from the captured lastAppliedIndex if the log memory
size threshold is exceeded, I changed the code to do the same if the log
size exceeds the snapshot batch count. So if a follower is down long
enough to exceed the snapshot batch count, the leader will install a
single snapshot to catch up the follower. Otherwise, the follower will
be caught up via AppendEntries.

I also noticed that if snapshot tries happen in quick succession, a
second attempt may be tried prematurely while the previous one is in
the PERSISTING state. This is b/c isCapturing() returns false in the
PERSISTING state. The state machine prevents another capture from
actually initiating b/c only the IDLE state implements capture but I
think to be clean we should disallow it by returning true from
isCapturing() in the PERSISTING state. This avoids state violations
during valid workflows (it's not invalid to attempt a capture while
another is in progress). Therefore, since every state now returns true
for isCapturing() except IDLE, I made true the default in
AbstractSnapshotState so only IDLE overrides it.

I added more end-to-end test cases to
ReplicationAndSnapshotsWithLaggingFollowerIntegrationTest to cover
leader snapshots where the log size exceeds the snapshotBatchCount,
where the memory threshold is exceeded and where neither of the first
2 conditions are met and the log is effectively not trimmed. The former
2 cases trim the log to last applied and result in a snapshot installed on
the follower once it's resumed. The latter case results in the leader
catching up the follower via AppendEntries.

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

7 years agoAdd netconf-mapping-api test for HandlingPriority 63/23163/3
Tomas Cere [Tue, 23 Jun 2015 09:35:50 +0000 (11:35 +0200)]
Add netconf-mapping-api test for HandlingPriority

Change-Id: I29a6fdaab266acd42c5355101769bb82c14135fc
Signed-off-by: Tomas Cere <>
7 years agoAdd discardChanges branch to unit test 62/23162/3
Tomas Cere [Mon, 22 Jun 2015 12:57:09 +0000 (14:57 +0200)]
Add discardChanges branch to unit test

Add service instance deletion to NetconfMappingTest

Change-Id: I25d1ebefde86050c42a2d43ec445feaf8d5889de
Signed-off-by: Tomas Cere <>
7 years agoAdd netconf-cli and netconf-testtool to sonar exclusions. 60/23060/4
Tomas Cere [Mon, 22 Jun 2015 09:01:37 +0000 (11:01 +0200)]
Add netconf-cli and netconf-testtool to sonar exclusions.

Change-Id: Ibdaf3eada4828c8120c1c280fc2f326c9d0173ef
Signed-off-by: Tomas Cere <>
7 years agoAdd controller default JVM options 79/17379/5
Thanh Ha [Mon, 30 Mar 2015 17:47:53 +0000 (13:47 -0400)]
Add controller default JVM options

Maven 3.3.1 has a new feature which lets us configure default
commandline options per project. This patch takes advantage of the new
feature so that Controller devs using the Maven 3.3.1+ no longer have
to export MAVEN_OPTS.

Change-Id: Ic42840b5778bd8a421997f6e22df4a74f56210f7
Signed-off-by: Thanh Ha <>
7 years agoRemove yang-data-operations dependencies 88/24088/1
Maros Marsalek [Tue, 14 Jul 2015 08:41:56 +0000 (10:41 +0200)]
Remove yang-data-operations dependencies

Not used anymore

Change-Id: I692bdbc00efb38bb29d7f5c18ca042bc10eeb11f
Signed-off-by: Maros Marsalek <>
7 years agoCDS: Add pending tx queue size to ShardStats 08/24008/1
Tom Pantelis [Wed, 1 Jul 2015 20:58:28 +0000 (16:58 -0400)]
CDS: Add pending tx queue size to ShardStats

To aid debugging, I added the pending commit queue size of the
ShardCommitCoordinator to the ShardStats bean.

Change-Id: I2af3493eb5dd54f9f9406b0a005d66be004c12ff
Signed-off-by: Tom Pantelis <>
(cherry picked from commit 5fc8785d919cd3cad92036b1add1a7fdd25bf715)

7 years agoBug 3195: Cleanup on error paths and error handling 11/23911/2
Tom Pantelis [Mon, 15 Jun 2015 23:38:06 +0000 (19:38 -0400)]
Bug 3195: Cleanup on error paths and error handling

Modified ShardCommitCoordinator#handleBatchedModifications to remove the
cohortEntry from the cache if the total messages sent doesn't match the
total received.

With recent yangtools changes, write and merge on a DOM tx can throw
unchecked exceptions if he data is invalid. Modified the front-end
local tx path to catch unchecked exceptions in LocalTransactionContext
and propagate to the LocalThreePhaseCommit to immediately fail the

Similarly modified ShardCommitCoordinator#handleBatchedModifications to
handle unchecked exceptions from applied operations and propagate when
the tx is readied.

Added unit tests to cover these cases.

Also, modified LocalTransactionContext#readyTransaction to handle
unchecked exceptions from the DOM tx ready.

Change-Id: Ib6fe6e04b8626bf996cfabfe74da780f05ce838a
Signed-off-by: Tom Pantelis <>
(cherry picked from commit 3cd149e98ed5260b46006ff474bebe96f198756f)

7 years agoCDS: Change operationTimeout units to millis 84/23884/2
Tom Pantelis [Wed, 1 Jul 2015 20:21:35 +0000 (16:21 -0400)]
CDS: Change operationTimeout units to millis

For upcoming changes, I'll need to be able to set the operationTimeout
in millis for unit tests.

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

7 years agoBug 868 - Continuous: remove deprecated APIs 16/22616/3
Jan Hajnar [Wed, 10 Jun 2015 11:55:42 +0000 (13:55 +0200)]
Bug 868 - Continuous: remove deprecated APIs

* removed deprecated API from Bug3595Test

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

7 years agoBug 2358 - Remove tests cnsn to json and add tests nn to json 15/22615/3
Jakub Toth [Wed, 20 May 2015 21:34:52 +0000 (23:34 +0200)]
Bug 2358 - Remove tests cnsn to json and add 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.

* add test NnToJsonLeafrefType to nn/to/json/test
  * positive tests of leafref
    * absolut path
    * relative path
    * leafref to not leaf
    * from leaflist to leaf
    * from leafref to leafref
  * negative tests of leafref
    * non existing Leaf

Change-Id: I652204071d874d6c7a2a65e100dd68c16a12af8f
Signed-off-by: Jakub Toth <>
(cherry picked from commit 1f4b4062cbdd0cfadcf61e60bce9ee9e951c975c)

7 years agoBug 2358 - Remove tests cnsn to json and add tests nn to json 14/22614/3
ary [Fri, 15 May 2015 13:25:08 +0000 (15:25 +0200)]
Bug 2358 - Remove tests cnsn to json and add 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.

* remove CnSnJsonChoiceCaseTest test
* add NnJsonChoiceCaseTest to nn/to/json/test/
  * positive and negative tests for choice statement

Change-Id: I83d351bf0de9bb4a1c649c5851209ae472aaaa24
Signed-off-by: Jakub Toth <>
(cherry picked from commit 33657892ea175d459184732b0fbc08eb7589e787)

7 years agoBug 2358 - Fix resources for tests nn to json 13/22613/3
Jakub Toth [Thu, 4 Jun 2015 12:45:53 +0000 (14:45 +0200)]
Bug 2358 - Fix resources for tests nn to json

yang's namespace fix

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

7 years agoBug 2358 - Remove tests cnsn to xml and add tests nn to xml 12/22612/4
Jakub Toth [Mon, 1 Jun 2015 08:53:53 +0000 (10:53 +0200)]
Bug 2358 - Remove tests cnsn to xml and add 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.

* remove CnSnToXmlWithDataFromSeveralModulesTest test
* add NnToXmlWithDataFromSeveralModulesTest to nn/to/xml/test/
  * positive test for test more modules

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

7 years agoBug 2358 - Remove tests cnsn to xml and add tests nn to xml 11/22611/4
Jakub Toth [Mon, 1 Jun 2015 07:34:50 +0000 (09:34 +0200)]
Bug 2358 - Remove tests cnsn to xml and add 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.

* remove CnSnInstanceIdentifierToXmlTest test
* add NnInstanceIdentifierToXmlTest to nn/to/xml/test/
  * positive test for instance identifier

Change-Id: Iceb73ed4d96f7686fca04047524716532297a2f8
Signed-off-by: Jakub Toth <>
(cherry picked from commit 6c0c438071d2e85ef2f08070935cb310165f25cf)

7 years agoBug 2358 - Remove tests cnsn to xml and add tests nn to xml 10/22610/4
Jakub Toth [Mon, 1 Jun 2015 08:15:54 +0000 (10:15 +0200)]
Bug 2358 - Remove tests cnsn to xml and add 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.

* remove CnSnToXmlTest test
* add NnToXmlTest to nn/to/xml/test/
  * positive tests for basic data types

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

7 years agoBug 2358 - Remove tests cnsn to xml and add tests nn to xml 09/22609/4
Jakub Toth [Mon, 1 Jun 2015 08:33:58 +0000 (10:33 +0200)]
Bug 2358 - Remove tests cnsn to xml and add 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.

* remove CnSnToXmlWithChoiceTest test
* add NnToXmlWithChoiceTest to nn/to/xml/test/
  * positive test for choice statement

Change-Id: Ie3fba1c51db57ef7621703812f7a98b6d417feca
Signed-off-by: Jakub Toth <>
(cherry picked from commit 015b6436357637c6cbd29b72e931735ff2a34007)

7 years agoBug 2358 - Remove tests cnsn to xml and add tests nn to xml 08/22608/4
Jakub Toth [Mon, 1 Jun 2015 08:24:40 +0000 (10:24 +0200)]
Bug 2358 - Remove tests cnsn to xml and add 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.

* remove CnSnToXmlNotExistingLeafTypeTest test
* add NnToXmlNotExistingLeafTypeTest to nn/to/xml/test/
  * negative test for not existing leaf type

Change-Id: I6f55fd82c40a03726aecb78cfc2ece9888cf9717
Signed-off-by: Jakub Toth <>
(cherry picked from commit 0c957832fd6587f5cfe6fb8de215d97cd6fd9c24)

7 years agoUse AsyncAppender in pax-logging 22/23722/2
Robert Varga [Fri, 26 Jun 2015 10:37:15 +0000 (12:37 +0200)]
Use AsyncAppender in pax-logging

Using an async appender throughput of the logger, lowering its impact on
overall system performance. Testing with BGP debugging enabled, the
overall time to complete for 100K routes went down from 137 seconds to
81 seconds.

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

7 years agoBug 3782: Fix NPE in API doc explorer 84/22884/3
Tom Pantelis [Tue, 16 Jun 2015 21:15:51 +0000 (17:15 -0400)]
Bug 3782: Fix NPE in API doc explorer

Fixed NPE when a netconf mounted device has a yang file without a version.

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

7 years agoBUG 2839: Config: remove dependencies on commons-io 55/21855/4
Tomas Cere [Tue, 2 Jun 2015 14:36:57 +0000 (16:36 +0200)]
BUG 2839: Config: remove dependencies on commons-io

Migrated commons-io users to guava and
custom solutions when there were no alternatives in guava.

Change-Id: I399030df1fbd7ea6e40b2591346802068e32f681
Signed-off-by: Tomas Cere <>
7 years agoBUG-3861 Detect RPC errors when committing netconf transaction 74/23674/1
Maros Marsalek [Thu, 25 Jun 2015 12:45:23 +0000 (14:45 +0200)]
BUG-3861 Detect RPC errors when committing netconf transaction

Transaction from netconf southbound would return a succeeded future in case
an rpc-error was returned as response to commit rpc.

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

7 years agoPrevent possible null pointer in netconf-connector's keepalives 63/22763/2
Maros Marsalek [Tue, 16 Jun 2015 12:09:32 +0000 (14:09 +0200)]
Prevent possible null pointer in netconf-connector's keepalives

Change-Id: If73a6eae2b11b3f4f3b37b0f5a022ebf5b9b18a8
Signed-off-by: Maros Marsalek <>
(cherry picked from commit 5a4c31766fe1f8d3b600f1d4aa59b8407e90d100)

7 years agoBUG-3625 Allow replace nested composite nodes in cfg-subsystem 03/22803/2
Maros Marsalek [Tue, 16 Jun 2015 11:36:30 +0000 (13:36 +0200)]
BUG-3625 Allow replace nested composite nodes in cfg-subsystem

Netconf-endpoint for config-subsystem now supports replace operation on nested
elements. Now it is possible to invoke PUT on nested composite attributes for
config-subsystem modules.

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

7 years agoBug 3595 - RESTCONF: GET operation on a node in a list, identified by 70/22270/4
Jan Hajnar [Mon, 8 Jun 2015 15:28:12 +0000 (17:28 +0200)]
Bug 3595 - RESTCONF: GET operation on a node in a list, identified by
leaf-ref fails.

* added referenced type resolution for leafrefs in ControllerContext

Change-Id: Ic38b77038feb786a46a8bdd069448f006418d7bf
Signed-off-by: Jan Hajnar <>
(cherry picked from commit 5af9027a8ce234f3dcc44ee0d1791036b7f0ed62)

7 years agoBUG 2155 - depth parameter in URI 07/22607/3
Jan Hajnar [Tue, 2 Jun 2015 15:47:08 +0000 (17:47 +0200)]
BUG 2155 - depth parameter in URI

* added interface RestconfNormalizedNodeWriter
* added two implementations of RestconfNormalizedNodeWriter,
RestconfDelegatingNormalizedNodeWriter just calls normalized node
writer from yangtools and DepthAwareNormalizedNodeWriter is writer
implementation tha checks depth
* added CutDataToCorrectDepthTest (randomly failing, needs to be checked
or removed for now)
* added condition to xml and json normalized node writers to create
depth aware normalized node writer id depth is specified in writer parameters

Change-Id: I922942e24cbe505c2803644c25acd755fe4dfae7
Signed-off-by: Jozef Gloncak <>
Signed-off-by: Jan Hajnar <>
(cherry picked from commit f94de91bba1210fa852aaab0490743f9f3553e99)

7 years agoMake constants really constant 61/22761/2
Robert Varga [Tue, 16 Jun 2015 19:23:21 +0000 (21:23 +0200)]
Make constants really constant

This triggers a major sonar warning, and is insecure as these fields could
get modified by anyone, throwing the system out of whack.

Also optimize comparison and make sure the netconf QNameModule is cached.
Also prevent unneeded QName instantiation.
Also use an immutable list to hold arguments, preventing a copy in

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

7 years agoUse YangInstanceIdentifier.isEmpty() 62/22762/2
Robert Varga [Tue, 16 Jun 2015 19:52:14 +0000 (21:52 +0200)]
Use YangInstanceIdentifier.isEmpty()

Do not force instatiation of path arguments, emptiness can be checked
quickly using isEmpty() method.

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

7 years agoBump maven-archetype plugin to 2.3 63/22263/2
Robert Varga [Sun, 31 May 2015 23:29:44 +0000 (01:29 +0200)]
Bump maven-archetype plugin to 2.3

This is a newer version, so make a central bump.

Change-Id: I512b2ec1db75db53e47e23458fa99724e22eef53
Signed-off-by: Robert Varga <>
(cherry picked from commit 8e10ecfb7061564f2441a1beaeed2bed58de1370)

7 years agoUse Beryllium parent pom versions 25/23225/3
Thanh Ha [Wed, 24 Jun 2015 14:27:19 +0000 (10:27 -0400)]
Use Beryllium parent pom versions

- Sets poms to point to correct Beryllium parent pom version
- Also removes unnecessary <relativePath> declaration

Change-Id: I82315ce20dfe22bb7e67027dd5d93c3e0ab866b3
Signed-off-by: Thanh Ha <>
7 years agoUpdating remoteRPC logging for better debugging. 20/23620/2
Harman Singh [Tue, 30 Jun 2015 23:56:45 +0000 (16:56 -0700)]
Updating remoteRPC logging for better debugging.
Moving Gossip ticks to trace because it happens very frequently.

Change-Id: I8e664b79fbf12a6b45b8483da8940ed8e0be9cac
Signed-off-by: Harman Singh <>
7 years agoRevert "BUG-2679 Workaround for wrong nagasena encode/decode with reused transmogrifier" 73/22973/3
Maros Marsalek [Fri, 19 Jun 2015 07:58:13 +0000 (09:58 +0200)]
Revert "BUG-2679 Workaround for wrong nagasena encode/decode with reused transmogrifier"

This reverts commit 8bedb6be52f21b52d6df08d1501cf46f8ddbdbdc.

Change-Id: I52d02ae6a980bae6798385636f9d779e3c80b72d
Signed-off-by: Maros Marsalek <>
Signed-off-by: Tomas Cere <>
Signed-off-by: Maros Marsalek <>
7 years agoBUG 2458: Bump nagasena version to 2.53.0 72/22972/3
Maros Marsalek [Fri, 19 Jun 2015 07:57:59 +0000 (09:57 +0200)]
BUG 2458: Bump nagasena version to 2.53.0

Change-Id: I77e21237355cee3973a05a37981ab49a05018bf9
Signed-off-by: Tomas Cere <>
Signed-off-by: Maros Marsalek <>
7 years agoDrop executable bit from 84/23284/2
Robert Varga [Thu, 25 Jun 2015 18:07:55 +0000 (20:07 +0200)]
Drop executable bit from

This is a plaintext file, it should not be executable

Change-Id: I9e98802e3fb136952c91a56fd059c39e0e6d2f67
Signed-off-by: Robert Varga <>
7 years agoIncrease UnitTest coverage/refactor for MDsal Netconf. 56/23056/3
Tomas Cere [Thu, 18 Jun 2015 13:21:06 +0000 (15:21 +0200)]
Increase UnitTest coverage/refactor for MDsal Netconf.

Change-Id: I486565bec7bbce0a85ee2dfa389887ca0d3a2903
Signed-off-by: Tomas Cere <>
7 years agoFix features-netconf-connector not being included 15/23215/1
Robert Varga [Mon, 22 Jun 2015 15:27:31 +0000 (17:27 +0200)]
Fix features-netconf-connector not being included

mdsal-artifacts should be listing the features it needs, so users can
pick up their versions. This was not true for

Change-Id: I4d53d8cf3d6ff1bce57e9de223126fea5269419d
Signed-off-by: Robert Varga <>
7 years agoFix NetconfMessageTransformerTest 56/22356/3
Moiz Raja [Wed, 10 Jun 2015 22:36:45 +0000 (15:36 -0700)]
Fix NetconfMessageTransformerTest

It fails and breaks the build

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

7 years agoRemove commons-io dependency in netconf-ssh 56/21856/3
Tomas Cere [Wed, 3 Jun 2015 14:22:00 +0000 (16:22 +0200)]
Remove commons-io dependency in netconf-ssh

Remove the replacement of File separators in key path,
windows can handle linux style paths, added a warning to config to use linux style paths.

Change-Id: I01d07fa65cd11dcc321cbf4d6f5aac0792922309
Signed-off-by: Tomas Cere <>
7 years agoMake sure DataTreeModifications are ready. 27/22727/2
Tony Tkacik [Tue, 16 Jun 2015 11:05:56 +0000 (13:05 +0200)]
Make sure DataTreeModifications are ready.

Change-Id: I1fa957d0f827f34187c4f22b7896581447159890
Signed-off-by: Tony Tkacik <>
(cherry picked from commit 893b2448147076cb43b45d005d086e7003f91e8c)

7 years agoFix CDS unit test failures 30/22730/1
Tom Pantelis [Tue, 16 Jun 2015 01:11:19 +0000 (21:11 -0400)]
Fix CDS unit test failures

Manually cherry-picked from stable/lithium patch

Change-Id: Id075cdff80dbee236067f4786f2dcf904ad8b800
Signed-off-by: Tom Pantelis <>
7 years ago[RFC][Fix] Fix for connection in pom.xml. 76/21776/3
Jan-Simon Möller [Wed, 3 Jun 2015 13:41:22 +0000 (15:41 +0200)]
[RFC][Fix] Fix for connection in pom.xml.

The connection value was wrong.
Apply values proposed by zxiiro.

Also fix sal-dom-xsql (wrong developerConnection).

This allows me to run  mvn site
w/o failing due to the wrong entry.

Change-Id: I15d953647a40dde4b37246a78bae120552efb15b
Signed-off-by: Jan-Simon Möller <>
7 years agoBug 2153 - pretty printer 06/22606/2
Jan Hajnar [Thu, 21 May 2015 07:46:57 +0000 (09:46 +0200)]
Bug 2153 - pretty printer

NormalizedNodeJsonBodyWriter - added ability to create JsonWritter with
prettyPrint enabled
NormalizedNodeXmlBodyWriter - added IndentingXMLStreamWriter when
prettyPrint is enabled

NormalizedNodeContext - info about requirements on indentation (true |
false) was added

RestconfImpl - added pretty print parsing method and added pretty print
detection to GET methods and RPC call methods

Change-Id: I44cfa778279d67f7dc1bf1532cd7fc1087b492dc
Signed-off-by: Jozef Gloncak <>
Signed-off-by: Jan Hajnar <>
(cherry picked from commit d40d77c862ece5276cee68073a13386bbc5a347a)

7 years agoSet revisions for notification models in netconf 05/22605/2
Maros Marsalek [Mon, 8 Jun 2015 15:20:40 +0000 (17:20 +0200)]
Set revisions for notification models in netconf

Change-Id: I83159f20250914c9e178b83dc526d9e9e14dce74
Signed-off-by: Maros Marsalek <>
(cherry picked from commit 12d79e66e26bc7a521b0380e158dca5dd2b98abc)

7 years agoBug 2358 - Resources for tests json to nn 85/19285/5
ary [Wed, 29 Apr 2015 09:45:31 +0000 (11:45 +0200)]
Bug 2358 - Resources for tests json to nn

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 files
* rename base folder of json-to-cnsn to json-to-nn

Change-Id: Id0a23e655c3ddaaeb60f8652d57a7a5d1458063a
Signed-off-by: ary <>
(cherry picked from commit 6047f7d9e4f6dbd22666718fcd2d62b91cd245d7)

7 years agoBUG-3553 Introduce custom config file 66/22566/3
Maros Marsalek [Wed, 10 Jun 2015 08:30:29 +0000 (10:30 +0200)]
BUG-3553 Introduce custom config file

Set the list of excluded ciphers available for use in ODL. The list was
developed in order to disable weak/vulnerable ciphers and also to prevent
the Logjam exploit.

The security file can be set using ODL_JAVA_SECURITY_PROPERTIES env variable.

Change-Id: I4867fe05986c020e09938c138d4d033299e0f9b7
Signed-off-by: Maros Marsalek <>
(cherry picked from commit 482cb4a1845e2e8109b9176704f2421ff7f40277)

7 years agoAdd a keepalive executor to controller config loopback connection. 90/21990/3
Maros Marsalek [Tue, 9 Jun 2015 11:19:47 +0000 (13:19 +0200)]
Add a keepalive executor to controller config loopback connection.

Change-Id: Id4b93df4eb59a19dea2d00b348db3dd4866338cb
Signed-off-by: Tomas Cere <>
Signed-off-by: Maros Marsalek <>
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)