2 years agoFix shard deadlock in 3 nodes 74/72874/11
Tom Pantelis [Tue, 12 Jun 2018 11:54:30 +0000 (07:54 -0400)]
Fix shard deadlock in 3 nodes

Change-Id: I10a9cb43bcdb35f66abebb054f37c05e7fda54e7
Signed-off-by: Tom Pantelis <>
2 years agomdsal-trace does not need a ClassLoadingStrategy 50/73150/1
Robert Varga [Mon, 18 Jun 2018 18:19:32 +0000 (20:19 +0200)]
mdsal-trace does not need a ClassLoadingStrategy

This blueprint does not really use classLoadingStrategy,
remove the reference.

Change-Id: Id34c3c97fed3150357c95956c6b03a398d34547e
Signed-off-by: Robert Varga <>
2 years agoRemove CSS features 03/73003/6
Tom Pantelis [Thu, 14 Jun 2018 14:04:49 +0000 (10:04 -0400)]
Remove CSS features

Change-Id: I963daed0f5cc379edeaa98054890dcde0b75cf54
Signed-off-by: Tom Pantelis <>
2 years agoFix pax exam issue 69/73069/2
Tom Pantelis [Sun, 17 Jun 2018 15:02:08 +0000 (11:02 -0400)]
Fix pax exam issue

auto-release is all of a sudden seeing these failure for the

2018-06-17T01:54:27,557 | WARN  | pool-2-thread-1  | AetherBasedResolver              | 2 - org.ops4j.pax.url.mvn - 2.5.4 | Error resolving artifact org.ops4j.pax.tipi:org.ops4j.pax.tipi.junit:jar: [Could not find artifact org.ops4j.pax.tipi:org.ops4j.pax.tipi.junit:jar: in defaultlocal (file:/tmp/r/), Could not find artifact org.ops4j.pax.tipi:org.ops4j.pax.tipi.junit:jar: in system.repository (file:/w/workspace/autorelease-release-oxygen/controller/opendaylight/md-sal/samples/toaster-it/target/exam/f302a2c9-2cc5-40dc-8c2b-02b85c0fe216/system/)]

2018-06-17T01:54:27,557 | WARN  | pool-2-thread-3  | AetherBasedResolver              | 2 - org.ops4j.pax.url.mvn - 2.5.4 | Error resolving artifact org.ops4j.pax.tipi:org.ops4j.pax.tipi.hamcrest.core:jar: [Could not find artifact org.ops4j.pax.tipi:org.ops4j.pax.tipi.hamcrest.core:jar: in defaultlocal (file:/tmp/r/), Could not find artifact org.ops4j.pax.tipi:org.ops4j.pax.tipi.hamcrest.core:jar: in system.repository (file:/w/workspace/autorelease-release-oxygen/controller/opendaylight/md-sal/samples/toaster-it/target/exam/f302a2c9-2cc5-40dc-8c2b-02b85c0fe216/system/)]

I was able to repro locally by removing the
org.ops4j.pax.tipi.hamcrest.junit and org.ops4j.pax.tipi.hamcrest.core artifacts
from ny local .m2 repo. Adding the dependencies to the mdsal-it-base pom
causes them to be downloaded and fixes the issue. However it's a mystery why
this issue all of a sudden popped up and why it seems we have to explicitly
reference those depnedencies.

Change-Id: Ic614f243d0a79aa298961a4a340d4fa3fb483843
Signed-off-by: Tom Pantelis <>
2 years agoUse MD-SAL BindingToNormalizedNodeCodec for most operations 80/72880/6
Robert Varga [Tue, 12 Jun 2018 14:47:57 +0000 (16:47 +0200)]
Use MD-SAL BindingToNormalizedNodeCodec for most operations

This subclasses BindingToNormalizedNodeCodec from MD-SAL, overriding
the operations we need to have overridden. Overall this class is to
be treated as deprecated.

Change-Id: I96f5085ee0e16191855cdc4ca1ed04de6d76f6fb
Signed-off-by: Robert Varga <>
2 years agoUse (Identifiable)Item.of() 87/72887/2
Robert Varga [Tue, 12 Jun 2018 15:25:33 +0000 (17:25 +0200)]
Use (Identifiable)Item.of()

Constructors have been deprecated, use static factory methods

Change-Id: Ib456b7f4a0788d4074f73168b8b8cb73b8e0d68b
Signed-off-by: Robert Varga <>
2 years agoRemove CSS modules 74/72674/8
Tom Pantelis [Mon, 4 Jun 2018 21:46:56 +0000 (17:46 -0400)]
Remove CSS modules

The CSS features are still installed until we can work
out the ModuleInfoBackedContext/ClassLoaderStrategy situation
that is currently provided by the ConfigManagerActivator.

Change-Id: Id3b2cc287d17532482a2dd893c41e2dcd8d29ff0
Signed-off-by: Tom Pantelis <>
Signed-off-by: Robert Varga <>
2 years agofix FollowerInfo @ConstructorProperties for valid ShardStatsMXBean 95/72795/1
Michael Vorburger [Fri, 8 Jun 2018 13:41:01 +0000 (15:41 +0200)]
fix FollowerInfo @ConstructorProperties for valid ShardStatsMXBean

Change-Id: I563105e8af79c0687cbb99444b34b540e80cbaa5
Signed-off-by: Michael Vorburger <>
2 years agoexport two additional packages containing JMX *M[X]Bean 91/72791/2
Michael Vorburger [Fri, 8 Jun 2018 11:51:19 +0000 (13:51 +0200)]
export two additional packages containing JMX *M[X]Bean

required to access some information this exposes via strong
instead "stringly" typing in genius.DatastoreServiceStatusProvider; see

Change-Id: Ie0cb62db5ee2dd98fa1a0e55791c9551089e6aac
Signed-off-by: Michael Vorburger <>
2 years agoBUG-8858: remove sleeps from test driver 18/72718/2
Robert Varga [Tue, 22 Aug 2017 08:51:58 +0000 (10:51 +0200)]
BUG-8858: remove sleeps from test driver

This is a follow-up patch to speed up test driver, properly
chasing leader, without any sleeps incurred.

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

2 years agofix tracing ping-pong DataBroker wiring bug in trace blueprint XML 56/72656/5
Michael Vorburger [Mon, 4 Jun 2018 13:13:48 +0000 (15:13 +0200)]
fix tracing ping-pong DataBroker wiring bug in trace blueprint XML

Change-Id: I4fda43c578ee55218acc40be1fbf4427c81c73c3
Signed-off-by: Michael Vorburger <>
2 years agoBump remaining yangtools 2.0.3 references to 2.0.5 99/72699/1
Tom Pantelis [Tue, 5 Jun 2018 18:22:14 +0000 (14:22 -0400)]
Bump remaining yangtools 2.0.3 references to 2.0.5

Change-Id: I284628f088aa9472eb064984d1b1cb65d96d7566
Signed-off-by: Tom Pantelis <>
2 years agoBump yangtools to 2.0.5 58/72358/7
Robert Varga [Mon, 28 May 2018 10:14:23 +0000 (12:14 +0200)]
Bump yangtools to 2.0.5

This patch bumps the version pulled in to 2.0.5, adopting the fixes
it contains.

Change-Id: I275b26cd9fbb299050cf1bae8bc4db26b7a0b335
Signed-off-by: Robert Varga <>
2 years agoFix shard commit deadlock 50/72650/3
Tom Pantelis [Mon, 4 Jun 2018 12:20:26 +0000 (08:20 -0400)]
Fix shard commit deadlock

When performing coordinated commits we need to ensure transactions
hit all shards in the same order as otherwise we could end up
with an ABBA deadlock -- which gets resolved through commits timing
out, but nevertheless it imposes a dealy of up to 30 seconds.

Make sure we always send entries to shards in the same order and
also synchronize all TransactionProxy instances so that transactions
have a total order.

Change-Id: Ia3076efde1c7cb5f115305593776ffa7422e7a09
Signed-off-by: Tom Pantelis <>
2 years agoremove un-used schemaService reference in trace blueprint XML 52/72652/2
Michael Vorburger [Mon, 4 Jun 2018 12:57:15 +0000 (14:57 +0200)]
remove un-used schemaService reference in trace blueprint XML

Change-Id: I35711f70bb978d76389d1c2d3f19f6b1418f6ffe
Signed-off-by: Michael Vorburger <>
2 years agoFixup Augmentable and Identifiable methods changing 49/71249/12
Robert Varga [Tue, 24 Apr 2018 10:23:17 +0000 (12:23 +0200)]
Fixup Augmentable and Identifiable methods changing

This is a fixup of the change in binding codegen, adjusting:
- getKey() -> key()
- setKey() -> withKey()
- getAugmentation() -> augmentation()

As a drive-by cleanup, some more references to CheckedFuture
are gone.

Change-Id: Ifa573f93d1776ab2db98524df4da63259e811767
Signed-off-by: Robert Varga <>
Signed-off-by: Claudio D. Gasparini <>
2 years agoAdd MDSAL TRACE to Artifacts 49/72649/2
Claudio D. Gasparini [Mon, 4 Jun 2018 11:40:27 +0000 (13:40 +0200)]
Add MDSAL TRACE to Artifacts

Change-Id: I6ddc0557b4a99d7423d175b3397a60f09f73de7c
Signed-off-by: Claudio D. Gasparini <>
2 years agoAbstractMdsalTestBase: remove derivation from AbstractConfigTestBase 31/72631/2
Tom Pantelis [Mon, 4 Jun 2018 00:47:43 +0000 (20:47 -0400)]
AbstractMdsalTestBase: remove derivation from AbstractConfigTestBase

Copied the code in AbstractConfigTestBase to AbstractMdsalTestBase
as AbstractConfigTestBase will be going away.

Change-Id: I904fa3f60f0e0070e30b0663a1a983201a934cf8
Signed-off-by: Tom Pantelis <>
2 years agoConvert mdsal submit() calls to commit() 71/72171/4
Tom Pantelis [Tue, 22 May 2018 16:29:28 +0000 (12:29 -0400)]
Convert mdsal submit() calls to commit()

Change-Id: I097c9604272a5be350ba7949091e5f3f20b56f26
Signed-off-by: Tom Pantelis <>
2 years agoEliminate DatastoreContext CSS dependency 83/72483/3
Tom Pantelis [Wed, 30 May 2018 01:31:48 +0000 (21:31 -0400)]
Eliminate DatastoreContext CSS dependency

The CSS-generated Config/OperatonalProperties classes were
used to obtain the default values from the yang. That is now
done by creating an empty container NormalizedNode and running
it thru BindingNormalizedNodeSerializer#fromNormalizedNode to
fill in the default values which are then injected into the
DatastoreContext builder via reflection.

Change-Id: I0963dfcf7850b705d048030056f4b233cc7e4566
Signed-off-by: Tom Pantelis <>
2 years agoDepend on odl-mdsal-common 47/72547/2
Robert Varga [Fri, 1 Jun 2018 09:17:01 +0000 (11:17 +0200)]
Depend on odl-mdsal-common

sal-common-api is pulling in MDSAL's bundle, make sure we bring
it in via the proper feature.

Change-Id: Icdcd73732d05e46da5fe22bc19cac61e2e9b329e
Signed-off-by: Robert Varga <>
2 years agomake Transaction Trace re-use BindingToNormalizedNodeCodec instead new 30/72530/1
Michael Vorburger [Thu, 31 May 2018 15:51:11 +0000 (17:51 +0200)]
make Transaction Trace re-use BindingToNormalizedNodeCodec instead new

Change-Id: I2b9800c9f6d52aa696904c70d673eba7cc2b085d
Signed-off-by: Michael Vorburger <>
2 years agoRemove DataChangeListener and friends 01/71801/7
Tom Pantelis [Fri, 4 May 2018 04:56:32 +0000 (00:56 -0400)]
Remove DataChangeListener and friends

AsyncDataChangeEvent is being kept for now as ovsdb still
independently uses it internally.


Change-Id: Ia68ac1cdf31dec3645f675442db14b7697d63b64
Signed-off-by: Tom Pantelis <>
2 years agosort by descending number of suspected transaction leaks in trace output 62/72362/2
Michael Vorburger [Mon, 28 May 2018 11:56:34 +0000 (13:56 +0200)]
sort by descending number of suspected transaction leaks in trace output

Change-Id: I7b780c3df72f87f6f1e693e9ec995a8f48da5c3b
Signed-off-by: Michael Vorburger <>
2 years agoFix AbstractMXBean logging 67/72367/1
Stephen Kitt [Mon, 28 May 2018 15:37:30 +0000 (17:37 +0200)]
Fix AbstractMXBean logging

Exceptions shouldn’t have an SLF4J place-holder.

Change-Id: Ied7338e37828903fdde8ec56f43177dfe041be61
Signed-off-by: Stephen Kitt <>
2 years agoConvert DCL tests to use DTCL 00/71800/2
Tom Pantelis [Fri, 4 May 2018 04:55:37 +0000 (00:55 -0400)]
Convert DCL tests to use DTCL

Change-Id: I05bd3a9b42e1ab3d9a1e682aaacb585aee313e7a
Signed-off-by: Tom Pantelis <>
2 years agoAdjust for Binding RPC codegen changes 05/71205/10
Robert Varga [Mon, 23 Apr 2018 09:01:30 +0000 (11:01 +0200)]
Adjust for Binding RPC codegen changes

This adjusts RPC implementations to conform to YANG-compatible
layout with ListenableFuture. It also fixes
BindingToNormalizedNodeCodec to realign it with mdsal version.

Since we are guaranteed to be dealing with ListenableFutures, this
patch also eliminates all references to JdkFutureAdapters.

Change-Id: I068a5821493b36e03d6a34a93bf49509b970507e
Signed-off-by: Robert Varga <>
2 years agoAdd path context to data validation failures 20/72120/2
Tom Pantelis [Mon, 21 May 2018 16:07:51 +0000 (12:07 -0400)]
Add path context to data validation failures


Change-Id: I588303ef2bbe01f8267da32b6b37d327dcbfbeb4
Signed-off-by: Tom Pantelis <>
2 years agoAdd get-top rpc with output to sal-test-model 66/72066/2
Tom Pantelis [Thu, 17 May 2018 12:08:21 +0000 (08:08 -0400)]
Add get-top rpc with output to sal-test-model

Need an rpc with output for a netconf UT.

Change-Id: Ia5f5c3a6a3a1318d8a3cab13c0695f332866e9d4
Signed-off-by: Tom Pantelis <>
2 years agoCDS should use MD-SAL InMemoryDOMDataStoreConfigProperties 92/71592/6
Robert Varga [Mon, 30 Apr 2018 16:24:13 +0000 (18:24 +0200)]
CDS should use MD-SAL InMemoryDOMDataStoreConfigProperties

This moves CDS's use of InMemoryDOMDataStoreConfigProperties from
controller's IMDS to MDSAL's IMDS -- eliminating all dependencies
between the two.

Change-Id: Id68f86ac5f1cccdb29f706b3a0bc63ae5a4987fd
Signed-off-by: Robert Varga <>
2 years agoDefault AsyncWriteTransaction.submit() 47/71547/6
Tom Pantelis [Mon, 30 Apr 2018 01:22:36 +0000 (21:22 -0400)]
Default AsyncWriteTransaction.submit()

Now that all downstream implementations implement commit(), the deprecated
submit() method can be defaulted instead instead of commit().

Change-Id: Idd684bc3fdc7d4f048257154988ef1f7c7811e97
Signed-off-by: Tom Pantelis <>
2 years agoreduce but keep old archetype and make it point users to the new one 43/71043/4
Michael Vorburger [Tue, 17 Apr 2018 14:30:28 +0000 (16:30 +0200)]
reduce but keep old archetype and make it point users to the new one


Change-Id: Ide80da410b60fb621af2a23ef82e7f63319061bb
Signed-off-by: Michael Vorburger <>
2 years agorm README.OPENDAYLIGHT (badly outdated) 54/71854/1
Michael Vorburger [Tue, 8 May 2018 17:07:29 +0000 (19:07 +0200)]
rm README.OPENDAYLIGHT (badly outdated)

Change-Id: If81c1f5f92409dedc8994363bcdfc2508873d544
Signed-off-by: Michael Vorburger <>
2 years agoAsyncWriteTransaction submit() with @CheckReturnValue 60/66360/5
Michael Vorburger [Mon, 11 Dec 2017 22:15:45 +0000 (23:15 +0100)]
AsyncWriteTransaction submit() with @CheckReturnValue

this seems like a good idea because we would subsequently like to reduce
the internal logging from a WARN for TransactionCommitFailedException to

see CONTROLLER-1802 and NETVIRT-916 for the full background story to
where this comes from.

Change-Id: I1d802c8534b7fad1f5557b5aafc400791ef6dd2e
Signed-off-by: Michael Vorburger <>
2 years agoSwitch CDS frontend internals to use MD-SAL APIs 70/71570/4
Robert Varga [Mon, 30 Apr 2018 10:56:16 +0000 (12:56 +0200)]
Switch CDS frontend internals to use MD-SAL APIs

This patch wires frontend to use MD-SAL DOM*Transaction and related
interfaces instead of the controller-provided ones.

Change-Id: I8c9c303ca95a961c8c7f91ba4d438c0739c5cedd
Signed-off-by: Robert Varga <>
2 years agoUse YangInstanceIdentifier.isEmpty() 65/71565/4
Robert Varga [Mon, 30 Apr 2018 09:06:26 +0000 (11:06 +0200)]
Use YangInstanceIdentifier.isEmpty()

This is a faster way of checking if an InstanceIdentifier is empty
than comparison to a constant.

Change-Id: I095576cdf1ac522348f3befaa8b14e84feaddf1c
Signed-off-by: Robert Varga <>
2 years agoAdd sal-dom-compat 12/71512/2
Robert Varga [Fri, 27 Apr 2018 12:29:21 +0000 (14:29 +0200)]
Add sal-dom-compat

This is a compatibility layer, implementing Controller DOM APIs on
top of MDSAL DOM APIs.

Change-Id: I72feb9ea7f55db97ecd4552f08860ce9360dc61a
Signed-off-by: Robert Varga <>
2 years agoSimplify AbstractDOMBroker.isSupported() 64/71564/1
Robert Varga [Mon, 30 Apr 2018 08:18:38 +0000 (10:18 +0200)]
Simplify AbstractDOMBroker.isSupported()

This is simple check if all datastore are instances of the specified
contract -- simplify the expression with Streams.allMatch()
and Class.isInstance().

Change-Id: I260d3b2296f085023a722c3f59e08c4926e91b2d
Signed-off-by: Robert Varga <>
2 years agoAdd AsyncWriteTransaction.commit() 16/71516/5
Tom Pantelis [Fri, 27 Apr 2018 15:23:00 +0000 (11:23 -0400)]
Add AsyncWriteTransaction.commit()

Equivalent to the recent md-sal API addition. The CommitInfo class
is re-used from md-sal. I also modified all implementations in the
controller to implement commit even though it's defaulted. As soon
as implementations in other projects do the same then we can
default submit().

Change-Id: I0801d5aa4c197177af838e7fbb71b7766a90e043
Signed-off-by: Tom Pantelis <>
2 years agoRemove deprecated InMemoryDOMDataStoreFactory methods 38/71438/1
Robert Varga [Thu, 26 Apr 2018 16:55:38 +0000 (18:55 +0200)]
Remove deprecated InMemoryDOMDataStoreFactory methods

These methods are taking the old SchemaService, remove them
in favor of the new methods which use DOMSchemaService.

Change-Id: I8b9f8014cc43eaf60f7ff48b62b2a4831c6dcee3
Signed-off-by: Robert Varga <>
2 years agoRemove ListenerNode/ListenerWalker 37/71437/1
Robert Varga [Thu, 26 Apr 2018 19:06:13 +0000 (21:06 +0200)]
Remove ListenerNode/ListenerWalker

These classes have been deprecated for three years now, remove them.

Change-Id: I3a5af8f0a96b1507b57732f588aa33864ae9c1d5
Signed-off-by: Robert Varga <>
2 years agoRemove message-bus CSS components 05/70805/5
Tom Pantelis [Wed, 11 Apr 2018 20:03:43 +0000 (16:03 -0400)]
Remove message-bus CSS components

Change-Id: Ic873ca1f230ca373b7bcb2fa06568f14e3e5ea1a
Signed-off-by: Tom Pantelis <>
2 years agoRemove deprecated controller EOS APIs and impl 87/70787/5
Tom Pantelis [Wed, 11 Apr 2018 15:22:58 +0000 (11:22 -0400)]
Remove deprecated controller EOS APIs and impl

Change-Id: Idbbc19646790ad9fd6800845a6dd93a210543811
Signed-off-by: Tom Pantelis <>
2 years agoInject MD_SAL services directly in sal-binding-it tests 54/70854/3
Tom Pantelis [Thu, 12 Apr 2018 14:19:54 +0000 (10:19 -0400)]
Inject MD_SAL services directly in sal-binding-it tests

This is in lieu of obtaining them via the BindingAwareBroker
which is obsolete in lieu of blueprint. Also remove the CSS
module checkong in AbstractIT.

Change-Id: I259cec363e31759447392ee1dc940fccee46d27e
Signed-off-by: Tom Pantelis <>
2 years agoRelease permits as transactions are replayed 65/70965/2
Robert Varga [Thu, 12 Apr 2018 11:11:38 +0000 (13:11 +0200)]
Release permits as transactions are replayed

Since we have correct accounting at the cost of needing to finish
the transition to new context in user thread, we need to make sure
we release permits as we push them towards the TransactionContext
if it is not handling it itself -- hence the user threads will not
be charged for operations which have logically been completed.

Change-Id: I4bae984b08b99a042766d0a41475110781ef8377
Signed-off-by: Robert Varga <>
2 years agoRemove jersey-core dependency in CSS 52/71052/2
Tom Pantelis [Tue, 17 Apr 2018 19:06:55 +0000 (15:06 -0400)]
Remove jersey-core dependency in CSS

Change-Id: I34a027075e85c65fca8fe7987c1eb3bf113f2eef
Signed-off-by: Tom Pantelis <>
2 years agoRely on odlparent version of jolokia 59/70859/2
Ryan Goulding [Thu, 12 Apr 2018 15:41:46 +0000 (11:41 -0400)]
Rely on odlparent version of jolokia

Now that the desired jolokia version is present in odlparent,
rely on pulling it from there instead of locally.

Change-Id: Ief20a133a34b13ec487e04ddabe313a71aaba66d
Signed-off-by: Ryan Goulding <>
2 years agoRemove TransactionStatus 28/70428/2
Tom Pantelis [Fri, 6 Apr 2018 13:38:08 +0000 (09:38 -0400)]
Remove TransactionStatus

Forgot to do this when the commit method was removed.

Change-Id: I94e773113e60a94d042261299c9bb5f5da1db878
Signed-off-by: Tom Pantelis <>
2 years agoBump to odlparent 3.1.0 and yangtools 2.0.3 76/69876/11
Stephen Kitt [Thu, 22 Mar 2018 17:24:27 +0000 (18:24 +0100)]
Bump to odlparent 3.1.0 and yangtools 2.0.3

Change-Id: I3b8303b38036318ba9c3bd56d1044873a9b57d78
Signed-off-by: Stephen Kitt <>
Signed-off-by: Ryan Goulding <>
2 years agoOPNFLWPLUG-972 : Move liblldp from controller to openflowplugin 06/67006/11
D Arunprakash [Wed, 10 Jan 2018 08:22:55 +0000 (13:52 +0530)]
OPNFLWPLUG-972 : Move liblldp from controller to openflowplugin

Change-Id: Ibda729f50b51282591d9d06bb3ba1863e62c732a
Signed-off-by: D Arunprakash <>
2 years agoFix TransactionContextWrapper limiter accounting 39/70439/2
Robert Varga [Thu, 5 Apr 2018 14:49:06 +0000 (16:49 +0200)]
Fix TransactionContextWrapper limiter accounting

The fix for CONTROLLER-1814 wrecked the fragile OperationLimiter
accounting between TransactionContextWrapper and
RemoteTransactionContext. The problem is that during initial
connect time TransactionContextWrapper acquires limiter operations
and the state of the OperationLimiter is inherited by
RemoteTransactionContext. This though means that we need to know
which operation actually acquired a permit and which did not.

As it turns out, this needs to make TransactionContext methods take
an additional hint as to whether a limit attempt was made and what
was the result of it.

Furthermore the internal TransactionContextWrapper logic needs to
be changed from 'enqueue and wait' to 'wait and enqueue' strategy,
so when an operation is added to the queue and potentially picked
up by executePriorTransactionOperations() we already know whether
a permit was acquired or not.

Change-Id: I78d43a1abde8c6da6e3da2f56823bba130499133
Signed-off-by: Robert Varga <>
(cherry picked from commit b69500a51978c3d3ef639345a1a97a58cc3f6bb8)
(cherry picked from commit dc295d9be77748d7e695d003a02d299d493abc8d)

2 years agoRemove serialization settings in sal-akka-raft-example 29/70429/1
Tom Pantelis [Fri, 6 Apr 2018 13:45:21 +0000 (09:45 -0400)]
Remove serialization settings in sal-akka-raft-example

Followup to
These are not needed and avoids potential future failures.

Change-Id: I151e3cd91b2c6a249420129ccbf7976d57284059
Signed-off-by: Tom Pantelis <>
2 years agoMigrate ShardTestKit to javadsl.TestKit 25/70425/1
Robert Varga [Fri, 6 Apr 2018 11:49:49 +0000 (13:49 +0200)]
Migrate ShardTestKit to javadsl.TestKit

JavaTestKit is deprecated, use its equivalent from javadsl.

Change-Id: Id32c6e41c80ba05f2076852bf9d3b26c5aca07b5
Signed-off-by: Robert Varga <>
2 years agoMigrate RaftActorTestKit to javadsl.TestKit 24/70424/1
Robert Varga [Fri, 6 Apr 2018 11:46:27 +0000 (13:46 +0200)]
Migrate RaftActorTestKit to javadsl.TestKit

JavaTestKit is deprecated, migrate RaftActorTestKit to the new

Change-Id: Id7f051aaac0154795c4242bb0ffc275dad06aaa4
Signed-off-by: Robert Varga <>
2 years agoMigrate test to use javadsl.TestKit 23/70423/1
Robert Varga [Fri, 6 Apr 2018 11:32:45 +0000 (13:32 +0200)]
Migrate test to use javadsl.TestKit

Forward-porting of this patch missed the need to change to new
TestKit instead of legacy JavaTestKit. Fix that.

Change-Id: Ic7bc6edae198c785ca4473eeff83cdbc516c8d2e
Signed-off-by: Robert Varga <>
2 years agoFinish SimpleReplicatedLogEntry migration 16/70416/1
Stephen Kitt [Fri, 6 Apr 2018 08:55:02 +0000 (10:55 +0200)]
Finish SimpleReplicatedLogEntry migration

sal-akka-raft-example still refers to ReplicatedLogImplEntry, fix

Change-Id: I6574b0acfd0d8c755b5cbc69485fa4d0ea116865
Signed-off-by: Stephen Kitt <>
2 years agoRemove AsyncWriteTransaction#commit 41/70341/3
Tom Pantelis [Wed, 4 Apr 2018 16:28:05 +0000 (12:28 -0400)]
Remove AsyncWriteTransaction#commit

Downstream patches have been merged - safe to remove.

Change-Id: I357aaac04f7569fc42590fbb0ce00459c6c3204a
Signed-off-by: Tom Pantelis <>
2 years agoUpdate IdentityAttributeRefTest 23/70223/1
Robert Varga [Sat, 31 Mar 2018 13:06:35 +0000 (15:06 +0200)]
Update IdentityAttributeRefTest

Identities are mapped to interfaces, so we need to adjust for that.

Change-Id: Ic121793e049f25eb87e5252e07583f33a87d9ac5
Signed-off-by: Robert Varga <>
2 years agoAdjust unit test to YangModuleInfo API change 22/70222/1
Robert Varga [Sat, 31 Mar 2018 13:06:00 +0000 (15:06 +0200)]
Adjust unit test to YangModuleInfo API change

YangModuleInfo has better interface, hence we can take advantage
of it.

Change-Id: I971bd0bd9fe521b63bb0133fdac3a1b1a30504a7
Signed-off-by: Robert Varga <>
2 years agoRemove SingletonHolder 47/70047/2
Tom Pantelis [Sat, 24 Mar 2018 00:33:03 +0000 (20:33 -0400)]
Remove SingletonHolder

It is not used except for the static JAVASSIST field.
This was moved to BindingToNormalizedNodeCodecFactory.

Change-Id: I6e503696f7f625b257b8a377099d113cd6a85fd3
Signed-off-by: Tom Pantelis <>
2 years agoRemove deprecated Rpcs and RpcErrors 25/70025/2
Tom Pantelis [Fri, 23 Mar 2018 14:33:46 +0000 (10:33 -0400)]
Remove deprecated Rpcs and RpcErrors

The only user was in snmp4sdn and a patch has been submitted
for that.

Change-Id: I751a6c1181187e1bd0207f31965f61d6d494434d
Signed-off-by: Tom Pantelis <>
2 years agoDeprecate Broker and related APIs 45/70045/2
Tom Pantelis [Fri, 23 Mar 2018 22:02:03 +0000 (18:02 -0400)]
Deprecate Broker and related APIs

These are remnants of the config system and not needed for
blueprint. If we remove the config system in Flourine, perhaps we
can just remove these classes as well but deprecate for now.

Change-Id: I6c14ab3a86b11137da12a8655848a6810e47a5f6
Signed-off-by: Tom Pantelis <>
2 years agoAdd default implementation for AsyncWriteTransaction#commit 35/69935/2
Tom Pantelis [Fri, 23 Mar 2018 01:13:14 +0000 (21:13 -0400)]
Add default implementation for AsyncWriteTransaction#commit

This method has been deprecated for quite some time and time for
removal. There are still sub-classes in other projects that
override it so first add a default implementation to throw
UnsupportedOperationException. When patches are merged in the
pther projects, we can remkve this method (and TransactionStatus).

Change-Id: I5e3581d50a4f92df3984a663d04ce026a52252b2
Signed-off-by: Tom Pantelis <>
2 years agoRemove AbstractRegistrationTree 12/69812/3
Robert Varga [Thu, 22 Mar 2018 12:34:56 +0000 (13:34 +0100)]
Remove AbstractRegistrationTree

This class has been deprecated in favor of the MDSAL version,
remove it.

Change-Id: I28af7908969d7969f864a4e04d454270f948a807
Signed-off-by: Robert Varga <>
2 years agoRemove DOMDataTreeService and related classes 11/69811/2
Robert Varga [Thu, 22 Mar 2018 12:29:11 +0000 (13:29 +0100)]
Remove DOMDataTreeService and related classes

DOMDataTreeService has been deprecated and it lives in MD-SAL,
remove it from the controller, taking related classes along for
the ride.

Change-Id: I30a4e3ac493e16e37bd812be4ac470691a0b2b5a
Signed-off-by: Robert Varga <>
2 years agoFix odl-config-persister 23/69823/1
Robert Varga [Thu, 22 Mar 2018 15:01:36 +0000 (16:01 +0100)]
Fix odl-config-persister

It should not be pulling in facade-xml bundle, but feature.

Change-Id: I02af053c3d3c1484a527a7a7864ab8562e3b3059
Signed-off-by: Robert Varga <>
2 years agoFix duplicate benchmark packaging 20/69820/2
Robert Varga [Thu, 22 Mar 2018 14:44:37 +0000 (15:44 +0100)]
Fix duplicate benchmark packaging

mvn:org.opendaylight.controller/dsbenchmark and
mvn:org.opendaylight.controller/ntfbenchmark are being repackaged
in odl-mdsal-benchmark. Pull corresponding features instead.

Change-Id: I0a2fdbd8047a00f3953d33d0299acc6f5cea271f
Signed-off-by: Robert Varga <>
2 years agoAdd missing DOMDataTreeService method 09/69809/1
Robert Varga [Thu, 22 Mar 2018 12:17:51 +0000 (13:17 +0100)]
Add missing DOMDataTreeService method

DOMDataTreeService is an extensible service, hence we need to report
our supported (none) extensions.

Change-Id: I209dee750f3bef822c15dd472f1097b64c585e96
Signed-off-by: Robert Varga <>
2 years agoChange transformation from DOMRpcResult to RpcResult 88/69688/2
Peter Nosal [Mon, 19 Mar 2018 07:57:29 +0000 (08:57 +0100)]
Change transformation from DOMRpcResult to RpcResult

When RpcResult was created, it was always as successful RpcResult,
this is changed so in presence of RpcErrors, RcpResult is build as
failed RpcResult with RpcErrors and binding result.

Change-Id: Ibb74e5f5675e33e0103d1a7d4962176bb320fce3
Signed-off-by: Peter Nosal <>
Signed-off-by: Robert Varga <>
(cherry picked from commit fd643adb6b413aac90c4f5a23874beeee486f257)

2 years agoFix compilation after mdsal implementation movement 92/69692/1
Robert Varga [Tue, 20 Mar 2018 16:36:07 +0000 (17:36 +0100)]
Fix compilation after mdsal implementation movement

MDSAL's generator has moved its implementation classes and interfaces,
fix this up.

Change-Id: Ie2607800b67affda966cd0fafb05437263ee9379
Signed-off-by: Robert Varga <>
2 years agoEnable findbugs in md-sal parent pom 29/69329/3
Tom Pantelis [Fri, 9 Mar 2018 19:10:14 +0000 (14:10 -0500)]
Enable findbugs in md-sal parent pom

Change-Id: Icaf43a93ac28bf77fe85a75513d46fb4f0f1778a
Signed-off-by: Tom Pantelis <>
2 years agoFix findbugs violations in md-sal - part 3 28/69328/3
Tom Pantelis [Fri, 9 Mar 2018 02:35:37 +0000 (21:35 -0500)]
Fix findbugs violations in md-sal - part 3

- sal-binding-broker
- sal-connector-api
- sal-dummy-distributed-datastore
- messagebus-impl
- mdsal-trace-dom-impl

- May expose internal representation by returning reference to mutable object
- May expose internal representation by incorporating reference to mutable object
- Private method is never called
- Non-transient non-serializable instance field in serializable class
- Class is Serializable, but doesn't define serialVersionUID
- Parameter must be non-null but is marked as nullable
- Unread field
- Consider returning a zero length array rather than null
- Useless object created
- Method ignores return value
- Incorrect lazy initialization of static field
- Should be a static inner class

Change-Id: Ia8847db80bca98c6f7ff7aae267efc408a5dd8fd
Signed-off-by: Tom Pantelis <>
2 years agoFix findbugs violations in md-sal - part 2 27/69327/3
Tom Pantelis [Thu, 8 Mar 2018 22:41:36 +0000 (17:41 -0500)]
Fix findbugs violations in md-sal - part 2

- sal-broker-impl
- sal-dom-broker-config
- sal-binding-config
- sal-akka-raft-example
- clustering-it-provider


- Method may return null, but is declared @Nonnull
- Method with Optional return type returns explicit null
- Method ignores exceptional return value
- Field not guarded against concurrent access
- Unchecked/unconfirmed cast of return value from method
- Load of known null value
- Parameter must be non-null but is marked as nullable
- Class implements same interface as superclass
- Redundant nullcheck of value known to be non-null
- Unread field
- Reliance on default encoding
- Should be a static inner class
- Questionable cast to concrete collection
- Dead store to local variable
- Dereference of the result of readLine() without nullcheck
- Method ignores return value
- Finalizer does not call superclass finalizer
- An increment to a volatile field isn't atomic
- Dead store to local variable
- Redundant nullcheck of value known to be non-null

Change-Id: Iec7205b49a0cbafff33db97c9c753a5425f929a6
Signed-off-by: Tom Pantelis <>
2 years agoFix findbugs violations in md-sal - part 1 26/69326/3
Tom Pantelis [Thu, 8 Mar 2018 02:54:09 +0000 (21:54 -0500)]
Fix findbugs violations in md-sal - part 1

- sal-common-util
- sal-common-impl
- sal-dom-api
- sal-dom-spi
- sal-binding-api
- sal-inmemory-datastore


- Non-transient non-serializable instance field in serializable class
- Field isn't final but should be
- Unchecked/unconfirmed cast
- Class names shouldn't shadow simple name of implemented interface
- Redundant nullcheck of value known to be non-null
- Field not initialized in constructor but dereferenced without null check
- Equals checks for incompatible operand
- Method ignores return value

Change-Id: I57ceba7dae12114eba962c01aea259004f4a2983
Signed-off-by: Tom Pantelis <>
2 years agoodl-controller-model-topology should not pull in yangtools 31/69431/1
Robert Varga [Tue, 13 Mar 2018 12:59:56 +0000 (13:59 +0100)]
odl-controller-model-topology should not pull in yangtools

This feature's explicit dependency on odl-yangtools-codec is bogus,
remove it.

Change-Id: Idbade3e1a0edb63988c92f62c3b727c6446b094d
Signed-off-by: Robert Varga <>
2 years agoBump yangtools to 2.0.2 71/69271/3
Robert Varga [Tue, 6 Feb 2018 18:25:32 +0000 (19:25 +0100)]
Bump yangtools to 2.0.2

This updates the artifacts to latest release and fixes JMX
generator tests to match whitespace description changes --
see I5796275a80bc1989061fd745270d51a4a37f97bd.

Change-Id: I5796275a80bc1989061fd745270d51a4a37f97bd
Signed-off-by: Robert Varga <>
2 years agoConvert CDS implementation to use msdal APIs 69/50269/13
Tom Pantelis [Tue, 3 Jan 2017 11:09:47 +0000 (06:09 -0500)]
Convert CDS implementation to use msdal APIs

The LegacyDOMDataBrokerAdapter is the proxy for the controller API.

Change-Id: I697e2979bef4dcffe544717af1380aa7d7b89d50
Signed-off-by: Tom Pantelis <>
2 years agoEnable checkstyle in the mdsal-parent pom 42/69242/2
Tom Pantelis [Thu, 8 Mar 2018 01:14:08 +0000 (20:14 -0500)]
Enable checkstyle in the mdsal-parent pom

Change-Id: I0e499c0c8726141d91abb86c70642f6ac4e71834
Signed-off-by: Tom Pantelis <>
2 years agoFix checkstyle violations in messagebus 35/69235/3
Tom Pantelis [Wed, 7 Mar 2018 21:25:57 +0000 (16:25 -0500)]
Fix checkstyle violations in messagebus

Change-Id: I4af49c607bbbd607f8ea4fbcbe43ba4f078329d0
Signed-off-by: Tom Pantelis <>
2 years agoFix checkstyle violations in /sal-connector-api and sal-dummy-distributed-datastore 34/69234/2
Tom Pantelis [Wed, 7 Mar 2018 21:06:58 +0000 (16:06 -0500)]
Fix checkstyle violations in /sal-connector-api and sal-dummy-distributed-datastore

Change-Id: I9ff8db03ca921517595dc133c1b3869c3a29fa34
Signed-off-by: Tom Pantelis <>
2 years agoFix checkstyle violations in clustering-it-provider 33/69233/2
Tom Pantelis [Wed, 7 Mar 2018 20:51:18 +0000 (15:51 -0500)]
Fix checkstyle violations in clustering-it-provider

Change-Id: Ic592165a0e8963001c361195e3ba0b4ca9a68ea4
Signed-off-by: Tom Pantelis <>
2 years agoFix checkstyle violations in sal-akka-raft-example 69/69169/3
Tom Pantelis [Tue, 6 Mar 2018 23:39:59 +0000 (18:39 -0500)]
Fix checkstyle violations in sal-akka-raft-example

Change-Id: Ie9da2e69c47efeb89312eaf3e513e83b7785b422
Signed-off-by: Tom Pantelis <>
2 years agoFix checkstyle violations in sal-dom-broker-config and sal-binding-config 68/69168/3
Tom Pantelis [Tue, 6 Mar 2018 23:23:30 +0000 (18:23 -0500)]
Fix checkstyle violations in sal-dom-broker-config and sal-binding-config

Change-Id: I5cbd04bfb598481fc6b107f426cf01819ab8d4b2
Signed-off-by: Tom Pantelis <>
2 years agoFix checkstyle violations in sal-binding-broker 45/69145/3
Tom Pantelis [Tue, 6 Mar 2018 15:14:07 +0000 (10:14 -0500)]
Fix checkstyle violations in sal-binding-broker

Change-Id: Ia5bcaa7073ff3fb4c004864649e8f5bc2bf23281
Signed-off-by: Tom Pantelis <>
2 years agoFix checkstyle violations in sal-binding-util and sal-schema-service 44/69144/3
Tom Pantelis [Tue, 6 Mar 2018 14:05:40 +0000 (09:05 -0500)]
Fix checkstyle violations in sal-binding-util and sal-schema-service

Change-Id: I96c37055e8f632ab5ea7dd5c6111039a57430887
Signed-off-by: Tom Pantelis <>
2 years agono config-persister-api inline in config-persister-directory-xml-adapter 88/67188/6
Michael Vorburger [Tue, 16 Jan 2018 02:23:33 +0000 (03:23 +0100)]
no config-persister-api inline in config-persister-directory-xml-adapter

and avoid this violation flagged by my ClasspathHellDuplicatesCheckRule:

>> jHades - scanning classpath for overlapping jars:

overlaps with
- total overlapping classes: 5 - same classloader ! This is an ERROR!

Change-Id: If0c442d48c14f69121744dccd5c15fbc3aa13694
Signed-off-by: Michael Vorburger <>
2 years agoFix checkstyle violations in sal-inmemory-datastore 07/69107/3
Tom Pantelis [Tue, 6 Mar 2018 04:23:21 +0000 (23:23 -0500)]
Fix checkstyle violations in sal-inmemory-datastore

Change-Id: I4e8dec800b8e5a2871e51ec4cd150f06c8af1bd1
Signed-off-by: Tom Pantelis <>
2 years agoFix checkstyle violations in sal-binding-api 06/69106/2
Tom Pantelis [Tue, 6 Mar 2018 03:11:05 +0000 (22:11 -0500)]
Fix checkstyle violations in sal-binding-api

Change-Id: Ic39062434dccf9616675b3616e142600f250c814
Signed-off-by: Tom Pantelis <>
2 years agoFix checkstyle violations in sal-dom-spi 04/69104/2
Tom Pantelis [Tue, 6 Mar 2018 02:34:04 +0000 (21:34 -0500)]
Fix checkstyle violations in sal-dom-spi

Change-Id: Ifc0955a9dcd162879681cb30ef925b05f37a1fd6
Signed-off-by: Tom Pantelis <>
2 years agoFix checkstyle violations in sal-dom-api 03/69103/2
Tom Pantelis [Tue, 6 Mar 2018 01:59:41 +0000 (20:59 -0500)]
Fix checkstyle violations in sal-dom-api

Change-Id: I2be21dbde5cca70ca327828fd479779ceb958c3e
Signed-off-by: Tom Pantelis <>
2 years agoFix checkstyle violations in sal-common-impl 99/69099/2
Tom Pantelis [Mon, 5 Mar 2018 23:41:23 +0000 (18:41 -0500)]
Fix checkstyle violations in sal-common-impl

Change-Id: Iff4edfb67a169cc6075be7ae87b9e2fd40e43055
Signed-off-by: Tom Pantelis <>
2 years agoFix checkstyle violations in sal-common-util 98/69098/2
Tom Pantelis [Mon, 5 Mar 2018 23:27:24 +0000 (18:27 -0500)]
Fix checkstyle violations in sal-common-util

Change-Id: I5a552d2bdadda3715b92717a90ed60db39253fd3
Signed-off-by: Tom Pantelis <>
2 years agoFix checkstyle violations in sal-common-api 97/69097/3
Tom Pantelis [Mon, 5 Mar 2018 23:14:18 +0000 (18:14 -0500)]
Fix checkstyle violations in sal-common-api

Change-Id: I66ec5ec7c5066a5a95b7d40ca7e902d9f415f4ed
Signed-off-by: Tom Pantelis <>
2 years agoReinstate the AbstractConfigTestBase.logConfiguration method 84/69184/2
Tom Pantelis [Wed, 7 Mar 2018 04:03:52 +0000 (23:03 -0500)]
Reinstate the AbstractConfigTestBase.logConfiguration method removed this method
but there are downstream users so to avoid API breakage the method
was added back but as deprecated.

Change-Id: I8e8eb452724451792c9ac6a140047d063b5d2441
Signed-off-by: Tom Pantelis <>
2 years agoUpdate integration test base classes to use Log4J2 92/68992/2
Lorand Jakab [Tue, 6 Mar 2018 14:27:36 +0000 (16:27 +0200)]
Update integration test base classes to use Log4J2

The config-it-base and mdsal-it-base components contain abstract classes
to be used for integration tests. This commit migrates those classes to

See also:

Change-Id: Ia19cb2f1d91cc2df7e9fc632a5b82731260652f1
Signed-off-by: Lorand Jakab <>
2 years agoCreate a parent pom for md-sal sub-projects 85/69085/4
Tom Pantelis [Mon, 5 Mar 2018 16:49:03 +0000 (11:49 -0500)]
Create a parent pom for md-sal sub-projects

This will contain common configurations for checkstyle and
findbugs (once all violations are fixed). Also, isolates the
config system dependencies in one place which will make it
easier to remove CSS.

Change-Id: Ifcf4bcd5e1b96483714bad51858264f511c21237
Signed-off-by: Tom Pantelis <>
2 years agoAdd default implementation of registerDataChangeListener 46/69046/2
Tom Pantelis [Sun, 4 Mar 2018 03:19:34 +0000 (22:19 -0500)]
Add default implementation of registerDataChangeListener

registerDataChangeListener is scheduled for removal howver
there are a few DataBroker implementations scattered about
that stub out this method. To facilitate smmooth removal,
add a default implementation in AsyncDataBroker that throws
UnsupportedOperationException - this will allow for the stubbed
implementations to be removed.

Change-Id: I784c5320f6c236cbb736799b9cf93f232d22e289
Signed-off-by: Tom Pantelis <>
2 years agoremove sal-common-testutil with TestEntityOwnershipService 02/69002/1
Michael Vorburger [Fri, 2 Mar 2018 14:09:13 +0000 (15:09 +0100)]
remove sal-common-testutil with TestEntityOwnershipService

because it is no longer used, and the only remaining
dependency from genius to this got removed in

a better alternative is to use the
SimpleDOMEntityOwnershipService (with BindingDOMEntityOwnershipServiceAdapter)

Change-Id: Ibea71db52fd0b014aff8764a77d4689cb2165adf
Signed-off-by: Michael Vorburger <>
2 years agoMove OperationLimiter.acquire() warnings to callers 01/68401/4
Robert Varga [Tue, 23 Jan 2018 16:42:44 +0000 (17:42 +0100)]
Move OperationLimiter.acquire() warnings to callers

We have two distinct call sites from where we are acquiring permits,
where failure to acquire has different root cause:
RemoteTransactionContext's failure to acquire indicates a slow leader,
while TransactionContextWrapper indicates a failure to discover a leader
in time.

Modify acquire() to report success and log failures to acquire from
the two call sites, with different messages so it is immediately clear
what is going on.

Change-Id: Ie828984c6a984690224494af1a9fdd0e4f257fab
Signed-off-by: Robert Varga <>
2 years agoFix RemoteTransactionContext limiter accounting 57/68757/6
Robert Varga [Fri, 9 Feb 2018 15:55:27 +0000 (16:55 +0100)]
Fix RemoteTransactionContext limiter accounting

In case we lose connectivity between the frontend and backend
at the early stages of a big transaction, e.g. after the transaction
is created at the backend and before it is submitted, we can run into
OperationLimiter preventing recovery.

The reason for this is that OperationLimiter itself does not know
how many permits a BatchedModification request contained, hence
on AskTimeoutException it would only decrement permits by one
and the operations would remain throttled. With large transactions
this means the application will suddenly become bogged down
by the OperationLimiter, preventing it from submitting the transaction
or otherwise recovering.

Once any BatchedModifications request fails, the transaction is
doomed anyway, as the message counts on frontend and backend will not
match. Furthermore we must not issue any reads -- the backed does
not have all the modifications, hence it could return an incorrect

Move permit tracking to RemoteTransactionContext, where we can capture
the number of permits in the OnComplete that gets invoked, properly
returning permits which correspond to the BatchedModifications message.
If we have failed to acquire a permit, we also note that and do not
underflow the semaphore.

In case a BatchedModifications message fails, we mark that fact and
turn into a bypass mode: we fail any subsequent reads and do not send
any further BatchedModifications until we see ready being set -- at
which point we coordinate with backend to shoot down the transaction.

An alternative strategy would be to continue transmitting
BatchedModifications, but that would incur an AskTimeout during split,
slowing down the time it takes us to kill flush the doomed transaction
out of the system.

Change-Id: I919bae0e7173910665e8ec2342d076a710c1c7bf
Signed-off-by: Robert Varga <>

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