7 months agoRefactor TransactionContext.executeModification() 02/90702/7
Robert Varga [Thu, 25 Jun 2020 19:21:07 +0000 (21:21 +0200)]
Refactor TransactionContext.executeModification()

Shift allocation of modification objects to RemoteTransactionContext,
so that local and noop cases do not end up allocating remoting objects.

Change-Id: Iedddb54aa9e55ca0e4352ecb176077a25ef643f3
Signed-off-by: Robert Varga <>
7 months agoSplit TransactionChainProxy.combineWithPriorReadOnlyTxFutures() 10/90710/2
Robert Varga [Thu, 25 Jun 2020 21:35:55 +0000 (23:35 +0200)]
Split TransactionChainProxy.combineWithPriorReadOnlyTxFutures()

There is a common and uncommon path here, where we expect majority
of high-performance uses to short-circuit to no combining at all.

Split that simple case out, so that we aid JIT inlining and also
know in profiling runs which branches are usually taken.

Change-Id: I18aaa12837c472308b46b770551e606096f7c983
Signed-off-by: Robert Varga <>
7 months agoMove checking/logging out of executeModification() 97/90697/1
Robert Varga [Thu, 25 Jun 2020 13:58:43 +0000 (15:58 +0200)]
Move checking/logging out of executeModification()

We will need specialized methods to deal with modifications,
similar to what we are doing for read(). As a first step, split
out common bits. This inlining has the added benefit of not touching
class reflection data.

Change-Id: I88030331ad8fe9299e8e824e18571047c87c90c6
Signed-off-by: Robert Varga <>
7 months agoClean up TransactionProxy a bit 96/90696/1
Robert Varga [Thu, 25 Jun 2020 13:53:30 +0000 (15:53 +0200)]
Clean up TransactionProxy a bit

An extra space and a superfluous else block.

Change-Id: I780f099c26ec60340f71054ab6cb31aca05ed441
Signed-off-by: Robert Varga <>
7 months agoAdd an option to trigger snapshot creation on root overwrites 43/87943/17
Tibor Král [Fri, 21 Feb 2020 13:57:41 +0000 (14:57 +0100)]
Add an option to trigger snapshot creation on root overwrites

In some cases (such as DAEXIM import), it does not necessarily
make sense to retain previous data in the journal, as all of it
has been superseded.

Change-Id: I5d634faac06e6764a417c23e88c728373b900924
Signed-off-by: Tibor Král <>
Signed-off-by: Tomas Cere <>
7 months agoFix MD-SAL feature references 85/90585/1
Robert Varga [Mon, 22 Jun 2020 20:22:20 +0000 (22:22 +0200)]
Fix MD-SAL feature references

References should be using ranges to allow seamless version bumps,
make sure that happens.

Change-Id: I02fca32b29f25e6b59efdc3874c6315b94119dbf
Signed-off-by: Robert Varga <>
7 months agoAdd option to disable default ActorSystemQuarantinedEvent handling 52/90552/2
Tibor Král [Thu, 11 Jun 2020 08:28:55 +0000 (10:28 +0200)]
Add option to disable default ActorSystemQuarantinedEvent handling

The default reaction to ThisActorSystemQuarantinedEvent is to
restart the entire Karaf container. However some users may want
to process the event differently.

Change-Id: Id65d31749dd97cb067611f7cfe4df76a6fe12204
Signed-off-by: Tibor Král <>
Signed-off-by: Robert Varga <>
7 months agoApply a workaround for the isolation of quarantined node 79/90279/8
Tejas Nevrekar [Thu, 4 Jun 2020 12:44:23 +0000 (18:14 +0530)]
Apply a workaround for the isolation of quarantined node

Listen to the AssociationErrorEvent in addition to
the ThisActorSystemQuarantinedEvent so that in cases
like isolate followed by unisolate, the quarantine
restart is triggered.

Change-Id: I937a9411c90fbbbaad73769efbc4e996369448a8
Signed-off-by: Tejas Nevrekar <>
7 months agoAdd UnsignedLongRangeSet.toString() 47/90447/1
Robert Varga [Mon, 15 Jun 2020 09:17:31 +0000 (11:17 +0200)]
Add UnsignedLongRangeSet.toString()

This makes the rangeset a wee bit more useful for debugging purposes.

Change-Id: Ie7a38fa980463be5255201996cd7b06ab50bde2f
Signed-off-by: Robert Varga <>
7 months agoAllow incremental recovery 77/87077/13
Tibor Král [Wed, 22 Jan 2020 11:53:41 +0000 (12:53 +0100)]
Allow incremental recovery

Expose configuration knob in DatastoreContext to specify the
amount of recovered journal entries after which a Snapshot should
be taken and the journal purged.

Change-Id: I4b20a0abe0329965ca5ac1ab5df7d9ca8480cfb2
Signed-off-by: Tibor Král <>
7 months agoBump versions to 2.0.3-SNAPSHOT 02/90402/1
Robert Varga [Thu, 11 Jun 2020 17:13:41 +0000 (19:13 +0200)]
Bump versions to 2.0.3-SNAPSHOT

This starts the next development iteration.

Change-Id: Iafc37f7955df2e965fc6cc436f521416f7c9c4a3
Signed-off-by: Robert Varga <>
7 months agoRegister global PurchaseCarProvider 01/90401/1
Robert Varga [Thu, 11 Jun 2020 16:17:07 +0000 (18:17 +0200)]
Register global PurchaseCarProvider

routed-rpc used to create a global registration, which we lost
during migration. Fix that.

Change-Id: Ifa3a13d8bb2a6caab9d58dd97903186c7c27dfed
Signed-off-by: Robert Varga <>
7 months agoBump MRI versions 88/90388/1
Robert Varga [Wed, 10 Jun 2020 20:23:05 +0000 (22:23 +0200)]
Bump MRI versions

Bump to:
- odlparent-7.0.3
- yangtools-5.0.3
- mdsal-6.0.2

Change-Id: Ifbbdcc6d5e1691a9c59cc9b26b7fcd1ec09288cc
Signed-off-by: Robert Varga <>
7 months agoAdd sender actor to the ForwardingDataTreeChangeListener 59/90259/1
Tibor Král [Thu, 4 Jun 2020 16:50:51 +0000 (18:50 +0200)]
Add sender actor to the ForwardingDataTreeChangeListener

The ForwardingDataTreeChangeListener is created when a shard
registers new listener. It then sends dataTreeChanges to said listener
but doesn't specify the sender. The RootListenerActor however needs
to know which shard produced the DataTreeChanged message.

Signed-off-by: Tibor Král <>
Change-Id: I4971cfaefa10c3136e0ddcc350ec7e00e68e6b42

7 months agoFix OpsManager registry instantiation 33/90233/3
Robert Varga [Wed, 3 Jun 2020 13:51:54 +0000 (15:51 +0200)]
Fix OpsManager registry instantiation

We have a day-zero bug with actions, as OpsManager ends up
instantiating the wrong actor -- hence we have two RpcRegistry
instances and no ActionRegistry instances.

Change-Id: I3b374454af3225cf13d5e23e4fb6744bf3f9ed99
Signed-off-by: Robert Varga <>
7 months agoFix PeopleProvider activation 31/90231/2
Robert Varga [Wed, 3 Jun 2020 12:35:18 +0000 (14:35 +0200)]
Fix PeopleProvider activation

Detected by CSIT, this was broken during MD-SAL API removal. Rework
instantiation to use constructor injection and proper shutdown.
Fixes the following splat:

java.lang.NullPointerException: null
at$1.onSuccess( ~[bundleFile:?]
at$1.onSuccess( ~[bundleFile:?]
at$ ~[bundleFile:?]
at ~[bundleFile:?]
at [bundleFile:?]
at [bundleFile:?]
at [bundleFile:?]
at$TransformFuture.setResult( [bundleFile:?]
at [bundleFile:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker( [?:?]
at java.util.concurrent.ThreadPoolExecutor$ [?:?]
at [?:?]

Change-Id: I08273c8112ec4d3592440975b77e4ce3467d78a2
Signed-off-by: Robert Varga <>
7 months agoDrop scope=runtime from features declaration 89/90189/1
Robert Varga [Mon, 1 Jun 2020 13:02:33 +0000 (15:02 +0200)]
Drop scope=runtime from features declaration

features-controller* should have normal scope so they end up being
indexed in int/dist.

Change-Id: Id868c7dfbf894a23933698e4e4b868570c9b1059
Signed-off-by: Robert Varga <>
7 months agoBump versions to 2.0.2-SNAPSHOT 56/90156/1
Robert Varga [Sun, 31 May 2020 09:16:40 +0000 (11:16 +0200)]
Bump versions to 2.0.2-SNAPSHOT

This starts the next development iteration.

Change-Id: Ife4b9975651ca572624bf2ef7525a33d45f90620
Signed-off-by: Robert Varga <>
7 months agoBump odlparent/yangtools/mdsal 03/90103/7
Robert Varga [Fri, 29 May 2020 17:32:34 +0000 (19:32 +0200)]
Bump odlparent/yangtools/mdsal

Adopt updates from odlparent-7.0.2, yangtools-5.0.2, mdsal-6.0.1. This
improves dependency layout, leading to leaner features.

Also adjust for internals of IMDS being promoted to SPI -- disconnecting
CDS from IMDS.

Change-Id: Ia6c47206771f2f513d71f0b435512f638c597282
Signed-off-by: Robert Varga <>
7 months agoAdd odlparent docs reference 34/90134/2
Robert Varga [Sat, 30 May 2020 11:12:41 +0000 (13:12 +0200)]
Add odlparent docs reference

In cas ewe end up cross-referencing into odlparent infra, make sure
we have accurate links.

Change-Id: Ia9ae4f31c6e94f90aa504bf970e933914b367d18
Signed-off-by: Robert Varga <>
7 months agoRemove use of InMemoryDOMDataStoreConfigProperties 13/90113/2
Robert Varga [Fri, 29 May 2020 19:40:09 +0000 (21:40 +0200)]
Remove use of InMemoryDOMDataStoreConfigProperties

CDS does not use original IMDS tuning, as we have not used a captive
IMDS instance for almost five years now.

Remove references InMemoryDOMDataStoreConfigProperties and turn the
knobs to no-ops.

Change-Id: I527b8ba407f7de4ecadb82f7c24d6a782722f683
Signed-off-by: Robert Varga <>
7 months agoClean up odl-mdsal-distributed-datastore dependency 04/90104/1
Robert Varga [Fri, 29 May 2020 17:41:39 +0000 (19:41 +0200)]
Clean up odl-mdsal-distributed-datastore dependency

We should not be packaging sal-common-util twice, make sure we have
the proper dependency.

Change-Id: Iff9f526ff3c7fa776328c5027da8812d2d11a634
Signed-off-by: Robert Varga <>
8 months agoRemove use of getDataChildByName() 21/90021/1
Robert Varga [Thu, 28 May 2020 05:52:46 +0000 (07:52 +0200)]
Remove use of getDataChildByName()

findDataChildByName() provides a proper Optional-based interface,
use that instead of the deprecated method.

Change-Id: I7813e308f1fac5a07cfa9eba2f96e5df981378cf
Signed-off-by: Robert Varga <>
8 months agoRemove FinalizableScheduledExecutorService 20/90020/1
Robert Varga [Thu, 28 May 2020 05:16:01 +0000 (07:16 +0200)]
Remove FinalizableScheduledExecutorService

Use proper executor service shutdown after the handler has run
its course instead of relying on garbage collection.

Change-Id: I896ae5d28836f9dea48448c7c54a044279047a5c
Signed-off-by: Robert Varga <>
8 months agoRemove use of SchemaContext.getQName() 19/90019/1
Robert Varga [Thu, 28 May 2020 04:12:51 +0000 (06:12 +0200)]
Remove use of SchemaContext.getQName()

The idea that SchemaContext has a QName is deprecated, and the methods
using it are themselves unused. Just remove the callers.

Change-Id: I507a96e7b0f2ecfd725e6b86623c80788f25b580
Signed-off-by: Robert Varga <>
8 months agoConvert to use EffectiveModelContext 04/90004/2
Robert Varga [Wed, 27 May 2020 12:51:37 +0000 (14:51 +0200)]
Convert to use EffectiveModelContext

These are mostly internal changes to eliminate warnings around
passing down SchemaContext instead of EffectiveModelContext.

Change-Id: I6ef307479abff013b0286e45cf4f822bff6fd6a6
Signed-off-by: Robert Varga <>
8 months agoRemove use of ExpectedException 05/90005/1
Robert Varga [Wed, 27 May 2020 14:28:55 +0000 (16:28 +0200)]
Remove use of ExpectedException

We have Assert.assertThrows(), hence we can simplify these two tests.

Change-Id: I7a30634c4ae8cd89fb317230bd94f12bac6d8953
Signed-off-by: Robert Varga <>
8 months agoGenerate version from pom.xml 19/88719/3
Thanh Ha [Thu, 26 Mar 2020 18:48:08 +0000 (14:48 -0400)]
Generate version from pom.xml

With controller becoming MRI generate docs version from pom.xml
as ODL version codenames are no longer relevant for MRI projects.

This reuses the code put into mdsal.

Signed-off-by: Thanh Ha <>
Change-Id: I584d2e2c59ce0055699c804bffcd91bdf44aab94

8 months agoAdd missing images from the docs project 32/89932/1
Thanh Ha [Mon, 25 May 2020 23:09:09 +0000 (19:09 -0400)]
Add missing images from the docs project

Looks like we forgot to migrate these images when we moved the
controller docs over.

Signed-off-by: Thanh Ha <>
Change-Id: Id322b36488ed1b6ddcad2a666ebe5e2148627479

8 months agoAdd documentation about per-shard settings 31/89931/2
Robert Varga [Mon, 25 May 2020 17:44:44 +0000 (19:44 +0200)]
Add documentation about per-shard settings

Previous implementation of per-shard datastore properties did not
document this ability. Make sure we document it and properly test it.

Change-Id: I5be13c73e76e612a93620710e6a00b78d9dee216
Signed-off-by: Robert Varga <>
8 months agoAdd tests for new RootDataTreeChangeListenerProxy and Actor 07/89907/4
Tibor Král [Thu, 21 May 2020 16:27:08 +0000 (18:27 +0200)]
Add tests for new RootDataTreeChangeListenerProxy and Actor

Listening on root with multiple shards is not tested anywhere,
add some test coverage.

Change-Id: Ie0d94f2d9b90869a140b73d85f1696df712fad25
Signed-off-by: Tibor Král <>
Signed-off-by: Robert Varga <>
8 months agoDo not bump follower term while it is isolated 63/89863/3
Tomas Cere [Fri, 22 May 2020 11:11:04 +0000 (13:11 +0200)]
Do not bump follower term while it is isolated

When a follower gets into a state that its isolated(ie cannot reach either peer)
it starts bumping its term every election timeout. Once the cluster heals it
would then disrupt the cluster because it has a higher term then the healthy part.
We can avoid this by not triggering new elections on followers that cannot
reach other peers while they are unreachable.

Change-Id: I8ee9f333740637ba5569287d405540f374bbc4bc
Signed-off-by: Tomas Cere <>
8 months agoAdd support for root DTCL listening on all shards in DS 04/88804/15
Robert Varga [Tue, 19 May 2020 14:37:47 +0000 (16:37 +0200)]
Add support for root DTCL listening on all shards in DS

Devide DTCLProxy into DTCLSingleShardProxy, DTCLMultiShardProxy and
DTCLPrefixShardProxy to address the different registration mechanisms
used in all three cases.

Change-Id: I48732577f26fa5844b69a2feaddb02fe53909da7
Signed-off-by: Tibor Král <>
Signed-off-by: Robert Varga <>
8 months agoClean up legacy API bridging 65/89865/1
Robert Varga [Tue, 19 May 2020 14:55:11 +0000 (16:55 +0200)]
Clean up legacy API bridging

Since we have removed controller APIs, there is no longer a need
to proxy interfaces and we can completely reference MD-SAL concepts.

Change-Id: I34d277bc86ab07c70d74bb23b381faf226f4f2e3
Signed-off-by: Robert Varga <>
8 months agoFix DeleteEntries persisting with wrong index 03/89703/5
tadei.bilan [Tue, 12 May 2020 14:03:37 +0000 (17:03 +0300)]
Fix DeleteEntries persisting with wrong index

During persisting we delete entries, so in case of persisting DeleteEntries with adjusted index,
 index is being adjusted twice, that results in additional entries being deleted during recovery.


Signed-off-by: tadei.bilan <>
Change-Id: Ib326f02630281ed52982dab2f48c01503b791ef7

8 months agoAttach test-jar sources 02/89702/1
Robert Varga [Tue, 12 May 2020 12:57:47 +0000 (14:57 +0200)]
Attach test-jar sources

We are distributing test infrastructure within test-jars, but do not
create -sources for those artifacts. Make sure we do, making it easier
on IDE users.

Change-Id: Icb1c1863ec98fc4f3fadb2c4d7e2b86df323ab7c
Signed-off-by: Robert Varga <>
8 months agoFix a feature typo 63/89663/1
Robert Varga [Mon, 11 May 2020 14:09:12 +0000 (16:09 +0200)]
Fix a feature typo

We have 'odl' prefix added twice, fix that.

Change-Id: If71674c4373040936eaacf0850712d387c295e54
Signed-off-by: Robert Varga <>
9 months agoBump version to 2.0.1-SNAPSHOT 74/89474/5
Robert Varga [Mon, 27 Apr 2020 22:58:31 +0000 (00:58 +0200)]
Bump version to 2.0.1-SNAPSHOT

This starts the next development iteration.

Change-Id: I2f401017e49f34077ffa71fbda5648e282868c04
Signed-off-by: Robert Varga <>
9 months agoChange distribution name to controller-test-karaf 86/89486/2
Robert Varga [Tue, 28 Apr 2020 09:59:14 +0000 (11:59 +0200)]
Change distribution name to controller-test-karaf

Shorted the name of the distribution and use a directory which
is a wee bit more friendly. Also do not package mdsal's feature
repository, only features from controller.

Change-Id: I90d413ce20e6de25138a6096d0951eafa26d0b6f
Signed-off-by: Robert Varga <>
9 months agoRemove NormalizedNodePruner 85/89485/2
Robert Varga [Tue, 28 Apr 2020 09:19:05 +0000 (11:19 +0200)]
Remove NormalizedNodePruner

This one-shot class has been deprecated, remove it now.

Change-Id: I4a94e7ef191febcb76aa014b0175529ceee47e96
Signed-off-by: Robert Varga <>
9 months agoRemove superfluous groupId declarations 83/89483/2
Robert Varga [Tue, 28 Apr 2020 07:20:20 +0000 (09:20 +0200)]
Remove superfluous groupId declarations

When we are inherinting from a controller parent, there is no point
in specifying the groupId again, remove such declarations.

Change-Id: I95acd155bf8c63cb29f727b8e0af8d77ad2efca6
Signed-off-by: Robert Varga <>
9 months agoRemove use of deprecated addAugmentation() 81/89481/2
Robert Varga [Tue, 28 Apr 2020 07:09:28 +0000 (09:09 +0200)]
Remove use of deprecated addAugmentation()

The two-argument variant has been removed, do not use it.

Change-Id: Iae92f7215994dd46f237284acd295eb37c5f2950
Signed-off-by: Robert Varga <>
9 months agoCleanup versions across modules 72/89472/2
Robert Varga [Mon, 27 Apr 2020 20:31:34 +0000 (22:31 +0200)]
Cleanup versions across modules

This finishes up the audit of pom.xml files to eliminate
superfluous version declarations.

Change-Id: Id7c671ad1c16ffb7db15709709fec9d933c65170
Signed-off-by: Robert Varga <>
9 months agoMove odl-toaster to experimental features 71/89471/2
Robert Varga [Mon, 27 Apr 2020 20:19:09 +0000 (22:19 +0200)]
Move odl-toaster to experimental features

odl-toaster is not a production feature, move it to experimental

Change-Id: I040af8543921cb861f2ccfca48d4154c1d5c6b17
Signed-off-by: Robert Varga <>
9 months agoRemove unused declaration 73/89473/2
Robert Varga [Mon, 27 Apr 2020 20:40:25 +0000 (22:40 +0200)]
Remove unused declaration

We do not need this declaration, remove it.

Change-Id: I499b7525229cffb59b2526fdb6e9629cabcf5cdd
Signed-off-by: Robert Varga <>
9 months agoUpdate feature version declarations 70/89470/1
Robert Varga [Mon, 27 Apr 2020 20:17:38 +0000 (22:17 +0200)]
Update feature version declarations

We do not need to override parent's version, as it matches our
version. Also trim down use of project.version where the artifact
is already declared in artifacts.

Change-Id: I3692983e6853eb3f90e843a082d4ea19a8d7b279
Signed-off-by: Robert Varga <>
9 months agoCleanup docs use of versions 69/89469/1
Robert Varga [Mon, 27 Apr 2020 20:17:10 +0000 (22:17 +0200)]
Cleanup docs use of versions

We can use project.version here, let's do that to keep explicit
versions down.

Change-Id: Ia652946ac279efb7c6568a78d53756c92934eec4
Signed-off-by: Robert Varga <>
9 months agoUpdate benchmark integration 68/89468/1
Robert Varga [Mon, 27 Apr 2020 20:06:35 +0000 (22:06 +0200)]
Update benchmark integration

Reuse mdsal-parent to get both the project version and dependency
declarations, eliminating some amount of duplication.

Change-Id: I08bbae324edc340daef748803284853ddbba5b2d
Signed-off-by: Robert Varga <>
9 months agoUpdate 1.15.0-SNAPSHOT to 2.0.0-SNAPSHOT 67/89467/1
Robert Varga [Mon, 27 Apr 2020 19:58:51 +0000 (21:58 +0200)]
Update 1.15.0-SNAPSHOT to 2.0.0-SNAPSHOT

This performs the final part of version alignment. All artifacts
except config remnants are bumped to 2.0.0-SNAPSHOT, achieving
a consistent version across all non-deprecated functionality.

Change-Id: I8378059b05b32a2abf37ffe5356bb6f3a43628f6
Signed-off-by: Robert Varga <>
9 months agoEliminate odl-jolokia-osgi.version 66/89466/1
Robert Varga [Mon, 27 Apr 2020 19:56:24 +0000 (21:56 +0200)]
Eliminate odl-jolokia-osgi.version

This version is aligned with project.version, hence we can
drop the custom property.

Change-Id: Iaa046cfff77b1be8ebcaee1e8e8561c1fa14adc7
Signed-off-by: Robert Varga <>
9 months agoEliminate blueprint.version 65/89465/1
Robert Varga [Mon, 27 Apr 2020 19:53:10 +0000 (21:53 +0200)]
Eliminate blueprint.version

We have achieved alignment of blueprint.version with project.version,
which means we can ditch the specialized property.

Change-Id: Iabd86c00b4a5134f528a844f061586b9dc7b8188
Signed-off-by: Robert Varga <>
9 months agoMass-update 1.12.0-SNAPSHOT to 2.0.0-SNAPSHOT 64/89464/1
Robert Varga [Mon, 27 Apr 2020 19:50:47 +0000 (21:50 +0200)]
Mass-update 1.12.0-SNAPSHOT to 2.0.0-SNAPSHOT

Update the primary version to 2.0.0-SNAPSHOT, reflecting the major
shakeup we have done in this release cycle.

Change-Id: I597dfa652ed636b0523853bdea97e1caa825d1f5
Signed-off-by: Robert Varga <>
9 months agoUpdate CDS versions to 1.12.0-SNAPSHOT 63/89463/1
Robert Varga [Mon, 27 Apr 2020 19:48:16 +0000 (21:48 +0200)]
Update CDS versions to 1.12.0-SNAPSHOT

These versions are four versions behind artifacts, bump them to

Change-Id: I85ad5cade48048ba6edb0c575f142de01e6576cf
Signed-off-by: Robert Varga <>
9 months agoAlign benchmark versions to 1.12.0-SNAPSHOT 62/89462/1
Robert Varga [Mon, 27 Apr 2020 19:45:10 +0000 (21:45 +0200)]
Align benchmark versions to 1.12.0-SNAPSHOT

These versions are trailing by two release, make sure they are

Change-Id: I7e92f3bd701e6ab87d57a8508e0030e912589276
Signed-off-by: Robert Varga <>
9 months agoBump root and docs to 1.12.0-SNAPSHOT 61/89461/1
Robert Varga [Mon, 27 Apr 2020 19:40:59 +0000 (21:40 +0200)]
Bump root and docs to 1.12.0-SNAPSHOT

This is the version advertized by artifacts, let's just align
on that for now.

Change-Id: I5ee4835b72ba35eb0cf75fc90c1636bb068f6860
Signed-off-by: Robert Varga <>
9 months agoAlign odl-jolokia-osgi version with project 60/89460/1
Robert Varga [Mon, 27 Apr 2020 19:39:24 +0000 (21:39 +0200)]
Align odl-jolokia-osgi version with project

Our project version (as defined by artifacts) is 1.12.0-SNAPSHOT,
make sure jolokia is using the same version.

Change-Id: I0ebeb8fa17f8ded15fe8a02b8310825bb2847996
Signed-off-by: Robert Varga <>
9 months agoAlign odl-controller-exp-netty-config version 59/89459/1
Robert Varga [Mon, 27 Apr 2020 19:36:18 +0000 (21:36 +0200)]
Align odl-controller-exp-netty-config version

We want to have feature versions aligned with the overall project
version -- do that for odl-controller-exp-netty-config.

Change-Id: I445f5d94d7ad9412c1ec0eb9eb89e7af303ebaef
Signed-off-by: Robert Varga <>
9 months agoPromote blueprint version to 2.0.0 58/89458/1
Robert Varga [Mon, 27 Apr 2020 19:33:55 +0000 (21:33 +0200)]
Promote blueprint version to 2.0.0

We want to coordinate all versions, and given the mix of versions
we are currently defining, 2.0.0 is the best candidate.

Change-Id: Ic6c0fb894816a65cd138ae36b96cb0c82cbb35e8
Signed-off-by: Robert Varga <>
9 months agoRemove benchmark-data-store 39/89439/3
Robert Varga [Mon, 27 Apr 2020 11:22:03 +0000 (13:22 +0200)]
Remove benchmark-data-store

This code has been migrated to mdsal component, remove it.

Change-Id: I238f7e09a3907ce07cc4fc857a6fea72d69204cf
Signed-off-by: Robert Varga <>
9 months agoFix datastore benchmark 38/89438/3
Robert Varga [Mon, 27 Apr 2020 10:10:25 +0000 (12:10 +0200)]
Fix datastore benchmark

The benchmark slid into disrepair, fix it up again and shorten
its run length.

Change-Id: I874c0979615f289ee726e4b6926b6d9d8aba5184
Signed-off-by: Robert Varga <>
9 months agoCleanup aggregator poms 37/89437/3
Robert Varga [Mon, 27 Apr 2020 09:34:31 +0000 (11:34 +0200)]
Cleanup aggregator poms

We do not want expose our repository layout to outside world, hence
cleanup aggregators so they are just that and are not installed.

Change-Id: Ib9ec89e46ed4a966a0750778f6067096ebbb8a14
Signed-off-by: Robert Varga <>
9 months agoCreate features-controller 35/89435/5
Robert Varga [Mon, 27 Apr 2020 08:41:26 +0000 (10:41 +0200)]
Create features-controller

Squash features-mdsal and features-extras into a single production
features repository.

Change-Id: I76f3f8e575d9faa3979aeefa62d466d3c889dff3
Signed-off-by: Robert Varga <>
9 months agoRemove archetypes 34/89434/4
Robert Varga [Mon, 27 Apr 2020 08:31:53 +0000 (10:31 +0200)]
Remove archetypes

Archetypes has been split into a separate project. remove its

Change-Id: I586fef9a04c71a82ce56be519760cbc1e97eda40
Signed-off-by: Robert Varga <>
9 months agoClean up odl-message-bus-collector 33/89433/4
Robert Varga [Mon, 27 Apr 2020 07:46:09 +0000 (09:46 +0200)]
Clean up odl-message-bus-collector

This is not an end-user feature and it is quite experimental, with
only provider being NETCONF, and that at beta quality. Move it out
to expertimental features, with adjusted name.

Change-Id: Ib16a322d81c6ac5aa7c8f7b059a949f0473fb2f8
Signed-off-by: Robert Varga <>
9 months agoClean up features-mdsal-benchmark 06/89406/4
Robert Varga [Sun, 26 Apr 2020 20:24:18 +0000 (22:24 +0200)]
Clean up features-mdsal-benchmark

The benchmark features are not really used anywhere. Repurpose them
as features-controller-testing, so that our testing code has an
isolated feature repository.

Change-Id: I18502d99ef133694ee8bb33685af82209b3f57ad
Signed-off-by: Robert Varga <>
9 months agoClean up features-config-netty 05/89405/1
Robert Varga [Sun, 26 Apr 2020 19:37:09 +0000 (21:37 +0200)]
Clean up features-config-netty

This feature repository contains a single feature, odl-config-netty,
which really is a remnant of config subsystem.

It further attempts to unify configuration of various southbound
modules' use of Netty, which unfortunately does not work because
downstreams need have better control over verious aspects of Netty

Furthermore not everyone is using this infrastructure, and even
then it is a bad idea, as it lowers the amount of isolation plugins

Repurpose this feature repository as features-controller-experimental,
holding a single odl-controller-exp-netty-config feature. This
clearly indicates the amount of stability that can be expected
and the plan is to move downstreams away from this feature.

Change-Id: I2edb9da48795cf1ff7de68c943c1bf895f584577
Signed-off-by: Robert Varga <>
9 months agoAdd controller's single-feature-parent 04/89404/2
Robert Varga [Sun, 26 Apr 2020 18:00:18 +0000 (20:00 +0200)]
Add controller's single-feature-parent

Sharing common knobs cuts down on duplication and allows us to
keep consistency.

Change-Id: I796218c981d3278f0fbe2b62e4a51a97577caad0
Signed-off-by: Robert Varga <>
9 months agoBump mdsal to 6.0.0 03/89403/1
Robert Varga [Sun, 26 Apr 2020 17:27:49 +0000 (19:27 +0200)]
Bump mdsal to 6.0.0

MD-SAL has been released, make sure we stabilize our reference to

Change-Id: I77578b64916e02a6ed1a27aae859d50458865547
Signed-off-by: Robert Varga <>
9 months agoMove features 02/89402/1
Robert Varga [Sun, 26 Apr 2020 16:36:11 +0000 (18:36 +0200)]
Move features

We want to flatten our structure, make sure we concentrate features
in the main directory.

Also eliminate odl-extras-all, as that is just an an aggregator for

Change-Id: I6b7d5a0a8c12e574500c410f6fd3829275f7034b
Signed-off-by: Robert Varga <>
9 months agoRename controller-features 01/89401/1
Robert Varga [Sun, 26 Apr 2020 16:33:38 +0000 (18:33 +0200)]
Rename controller-features

This is an aggregator, which should not be installed. Fix its name
and stop publishing it.

Change-Id: I8444d8e5a5637e29843630328f9419fc00613dad
Signed-off-by: Robert Varga <>
9 months agoBump yangtools to 5.0.1 35/89335/1
Robert Varga [Fri, 24 Apr 2020 10:06:18 +0000 (12:06 +0200)]
Bump yangtools to 5.0.1

We need a few more changes from yangtools to get across the finish
line, pick them up.

Change-Id: Id026c2fdf1b69158f5d7fad19518fc7e00247023
Signed-off-by: Robert Varga <>
9 months agoPropagate EffectiveModelContext in blueprint 21/89321/2
Robert Varga [Thu, 23 Apr 2020 15:56:51 +0000 (17:56 +0200)]
Propagate EffectiveModelContext in blueprint

We are moving away from SchemaContext, start using its replacement.

Change-Id: If222b7ac2fa2004d1af72504d63b139cb42bd4ac
Signed-off-by: Robert Varga <>
9 months agoPartially revert "Adjust for RPCService methods changing" 20/89320/2
Robert Varga [Thu, 23 Apr 2020 18:53:28 +0000 (20:53 +0200)]
Partially revert "Adjust for RPCService methods changing"

This reverts commit ba6824307ad4b3c272abefe9682d623adc3b42d2,
as it was overzealous with regards to ContainerNode conversion.
This reverts parts of it, so that we arrive at something sane.

Change-Id: I9bd61b6dd1c88b53c39ac1b8791edaf38cad7885
Signed-off-by: Robert Varga <>
9 months agoAdjust to CodeHelpers having been updated 19/89319/2
Robert Varga [Thu, 23 Apr 2020 15:32:19 +0000 (17:32 +0200)]
Adjust to CodeHelpers having been updated

MD-SAL has provided more useful methods to use this, fix compilation

Change-Id: I354e4e4e224a0b53d59283a7af8196a5cb56778b
Signed-off-by: Robert Varga <>
9 months agoAdjust for RPCService methods changing 05/89305/1
Robert Varga [Wed, 22 Apr 2020 23:29:18 +0000 (01:29 +0200)]
Adjust for RPCService methods changing

ListenableFuture return from the API contract has changed slightly,
adjust for that. Also make sure we do not pass nulls to RPC

Change-Id: I62e6adc5d7226267c4c3c125ebb2fd43b3af1a5b
Signed-off-by: Robert Varga <>
9 months agoRemove executable bit from RaftActor 33/89133/2
Robert Varga [Sun, 19 Apr 2020 13:34:00 +0000 (15:34 +0200)]
Remove executable bit from RaftActor

This should never have been here, remove it.

Change-Id: Ib4dab9fe680aa1a21067168a2dd9715dc719bd80
Signed-off-by: Robert Varga <>
9 months agoRemove netty-config-api 29/89129/1
Robert Varga [Sun, 19 Apr 2020 08:44:34 +0000 (10:44 +0200)]
Remove netty-config-api

This artifact does not contain anything, serving only to pull in
netty-transport. Remove it and adjust its users to pul in what they
need, which ends up lowering dependencies in some cases.

Change-Id: I8d5bcb6cf5284d0780c9b41b5f7fa9008d7db14f
Signed-off-by: Robert Varga <>
9 months agoCentralize artifacts 27/89127/1
Robert Varga [Sat, 18 Apr 2020 20:47:32 +0000 (22:47 +0200)]
Centralize artifacts

Rather than having three different sets of artifacts:
- mdsal-artifacts
- config-artifacts
- benchmark-artifacts

Create a project-wide controller-artifacts, just as the guidelines
tell us to. This has the benefit for downstreams, as they do not
need to track multiple versions. It also benefits us, as we have
a single place for tracking what we produce.

Change-Id: I73cc02c6f1df6c4d705ef83dfc57e6aad17c6287
Signed-off-by: Robert Varga <>
9 months agoBump to yangtools-5.0.0 26/89126/1
Robert Varga [Sat, 18 Apr 2020 14:12:26 +0000 (16:12 +0200)]
Bump to yangtools-5.0.0

We have things integrated and have an upstream release, use that
instead of snapshots.

Change-Id: I5f8318c71e15903031b55ac7dc96bbd4acbc0352
Signed-off-by: Robert Varga <>
9 months agoRealign upstream javadoc links 25/89125/1
Robert Varga [Sat, 18 Apr 2020 14:10:48 +0000 (16:10 +0200)]
Realign upstream javadoc links

Our links were desynchronized, fix that.

Change-Id: I6ae58edd6e4048fe43f8ce4f226a0a4aa47220e8
Signed-off-by: Robert Varga <>
9 months agoBump odlparent/yangtools/mdsal 49/88849/25
Robert Varga [Thu, 2 Apr 2020 12:15:52 +0000 (14:15 +0200)]
Bump odlparent/yangtools/mdsal

Update upstream references to:
- odlparent-7.0.1
- yangtools-5.0.0-SNAPSHOT
- mdsal-6.0.0-SNAPSHOT

Also adjust the codebase to match changes in yangtools/mdsal
and scala-2.13.

Change-Id: Ib082e955b5106fa002522dfe3d7a21fe990006d8
Signed-off-by: Robert Varga <>
9 months agoRemove remnants of leveldb configuration 96/88996/1
Robert Varga [Thu, 9 Apr 2020 15:24:22 +0000 (17:24 +0200)]
Remove remnants of leveldb configuration

We do not have leveldb available in Aluminium, remove remaining
configuration directives which would reference it.

Change-Id: I586b96b16adda975c2df405cb8154bc568f06d81
Signed-off-by: Robert Varga <>
9 months agoSwitch default persistence to segmented-journal 95/88995/1
Robert Varga [Tue, 11 Feb 2020 17:26:32 +0000 (18:26 +0100)]
Switch default persistence to segmented-journal

We want to migrate away fro leveldb persistence, this switches
the default persistence being used for new deployments to our own
segmented-journal plugin.

Change-Id: I9db4e8115ac8f31c5c331c194de1ff08a674af97
Signed-off-by: Robert Varga <>
9 months agoMigrate Assert.assertThat() 78/88878/4
Robert Varga [Fri, 3 Apr 2020 15:42:46 +0000 (17:42 +0200)]
Migrate Assert.assertThat()

This method has been migrated, make sure we use its new place.

Change-Id: Ib17471706233150f26a452b8bca36914a95fc8db
Signed-off-by: Robert Varga <>
9 months agoAdd automatic module names for CDS API compoments 58/88858/2
Robert Varga [Thu, 2 Apr 2020 16:49:34 +0000 (18:49 +0200)]
Add automatic module names for CDS API compoments

Add basic JPMS integration by fixing the module name through which
this compatibility is available.

Change-Id: I4636b121b179fcf04b58c095dbcc16a795091ad5
Signed-off-by: Robert Varga <>
9 months agoSimplify DistributedShardFrontendTest assertions 77/88877/2
Robert Varga [Fri, 3 Apr 2020 14:05:20 +0000 (16:05 +0200)]
Simplify DistributedShardFrontendTest assertions

Rather than matching entries in their order, realize that an
entry is need not retain its argument values, and hence can be
expected to apply children in different order.

Change-Id: I8ab97750e593a2f2d548f97075b1ee36c04179c3
Signed-off-by: Robert Varga <>
9 months agoRemove deprecated MD-SAL APIs 36/87936/15
Robert Varga [Fri, 21 Feb 2020 05:41:50 +0000 (06:41 +0100)]
Remove deprecated MD-SAL APIs

The APIs in controller have been deprecated for removal and cannot
sustain an upgrade to Guava-28+. Remove them along with all supporting

Change-Id: I213797b7045cfd7bef744e249614e2b1f6169c1c
Signed-off-by: Robert Varga <>
9 months agoMigrate OSGI compendium reference 48/88848/2
Robert Varga [Thu, 2 Apr 2020 12:24:03 +0000 (14:24 +0200)]
Migrate OSGI compendium reference

OSGi R6 has moved the artifact declaration, make sure we do not use
the R5 one.

Change-Id: If1fcfbdc97fbba1d6ee962a77046a13bdf6da7e2
Signed-off-by: Robert Varga <>
9 months agoFix checkstyle 53/88853/2
Robert Varga [Thu, 2 Apr 2020 12:26:12 +0000 (14:26 +0200)]
Fix checkstyle

Upgraded checkstyle is finding some violations, fix them up.

Change-Id: I7d29834cb38eda40f90fdf04935bef137da843f0
Signed-off-by: Robert Varga <>
10 months agoFixup "Leader should always apply modifications as local" regression 16/87616/4
Tomas Cere [Wed, 12 Feb 2020 12:23:22 +0000 (13:23 +0100)]
Fixup "Leader should always apply modifications as local" regression

This reintroduces the original commit:
and fixes up the two bugs it introduced.

First one didn't account for the fact that the new leader might have not
tracked forwarded transactions from the previous leader which would
be ignored. Previously not tracked transactions are now applied
normally on the new leader.

Second issue was that we started keeping around deserialized
candidates in memory in each CommitTransactionPayload even after they
were applied and no longer needed.During the final use of the
candidate in ShardDataTree the candidate is now clearedduring
CommitTransactionPayload.acquireCandidate() which allows the
deserialized candidate to be cleared by GC.

Change-Id: I47876d4d29a8e9b6b9283d70e47108f3dc2ed3ee
Signed-off-by: Tomas Cere <>
10 months agoDo not use passive connections 37/88437/1
Robert Varga [Mon, 16 Mar 2020 11:45:48 +0000 (12:45 +0100)]
Do not use passive connections

We are seeing issues with passive connections, pointing towards
switching them off (or migrate to Artery TCP, which is one-way).

As Artery TCP has memory leaks before 2.5.29, opt to disable passive

Change-Id: Ia9779ad6a7d9d2bc73306d0968e5d22553450fac
Signed-off-by: Robert Varga <>
11 months agoRemove NormalizedNodeInputOutput and related classes 35/87935/3
Robert Varga [Fri, 21 Feb 2020 05:33:21 +0000 (06:33 +0100)]
Remove NormalizedNodeInputOutput and related classes

This functionality is available from yangtools, remove compatibility
wrappers as they have been deprecated.

Change-Id: I40be1adb795a6663d647191eeab2f52afb6cbbb1
Signed-off-by: Robert Varga <>
11 months agoExpose more fine-grained shutdown methods 34/87934/2
Robert Varga [Fri, 21 Feb 2020 05:28:55 +0000 (06:28 +0100)]
Expose more fine-grained shutdown methods

We want to the user to be in control of timing of shutdown, expose
appropriate methods to do that.

Change-Id: Id0a787a1b707a3eb6c2909c52023cc5eac3c1402
Signed-off-by: Robert Varga <>
11 months agoBump versions by x.y.(z+1) 86/87986/1
jenkins-releng [Sat, 22 Feb 2020 04:30:15 +0000 (04:30 +0000)]
Bump versions by x.y.(z+1)

Signed-off-by: jenkins-releng <>
Change-Id: I4cbd97f4e31c98c1456142f8bbee0bf0c3be1377

11 months agoPropagate TimeoutException when ActorSystem fails to terminate 82/87482/2
Tibor Král [Thu, 6 Feb 2020 11:19:42 +0000 (12:19 +0100)]
Propagate TimeoutException when ActorSystem fails to terminate

ActorSystemProviderImpl waits 10s for the ActorSystem to terminate.
If this timeout is reached propagate the resulting TimeoutException
so the caller knows something went wrong.

Change-Id: I6518600e2930e3a0a955215b24a9b3074730ff64
Signed-off-by: Tibor Král <>
11 months agoRevert "Leader should always apply modifications as local" 52/87452/1
Robert Varga [Wed, 5 Feb 2020 14:13:46 +0000 (15:13 +0100)]
Revert "Leader should always apply modifications as local"

This reverts commit 9b319f491af1c65705b69e8a182aab5006a2f959, which
broke both upgrade-recovery and pre-leader entry application. We
will re-visit the patch and try again.

Change-Id: I23e4264cf6a20e9d2369d44005c31db1ef7635c9
Signed-off-by: Robert Varga <>
12 months agoCache full datastore context 71/87071/2
Robert Varga [Tue, 21 Jan 2020 22:31:31 +0000 (23:31 +0100)]
Cache full datastore context

While the context is small, it is also invariant across a number of
test cases, each of which is instantiating it. Just share one
instance across all tests to speed them up.

While we are at it, we switch to using EffectiveModelContext to
ease our future migration.

Change-Id: I29a89e93903e7582bde4984828405aa2a8e45c27
Signed-off-by: Robert Varga <>
12 months agoForce pruning during data migration 67/87067/2
Robert Varga [Tue, 21 Jan 2020 13:31:48 +0000 (14:31 +0100)]
Force pruning during data migration

Our current PruningDataTreeModification performs pruning only in
two cases:
1) the root is being written (i.e. Snapshot recovery)
2) DataTree reports a validation issue

This is not sufficient for uint-type migration, as we have to
subject all writes and merges to pruning/translation irrespective
of where they occur.

Split up PruningDataTreeModification into two implementations,
Proactive and Reactive and use them as appropriate based on migration

Change-Id: I4184c56380b7f52a8d7af6f17346f9c5edd31b28
Signed-off-by: Robert Varga <>
12 months agoCleanup PruningDataTreeModification 66/87066/1
Robert Varga [Tue, 21 Jan 2020 13:22:21 +0000 (14:22 +0100)]
Cleanup PruningDataTreeModification

Rename arguments to match API contract, simplify empty
YangInstanceIdentifier checks and do not attempt pruning multiple

Change-Id: I4c5c8af89116b9c6f7c9dd30f63e32eca94de941
Signed-off-by: Robert Varga <>
12 months agoTranslate uint values for old streams 42/87042/10
Robert Varga [Sun, 19 Jan 2020 12:11:28 +0000 (13:11 +0100)]
Translate uint values for old streams

When we encounter a commit that was produced before Mg, we know
uints are upcasted and hence want to convert values. Same goes
for recovery snapshots.

Change-Id: Id22830abaf5adc2d9ca7f5d0233409a971cf0c01
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.