2 years agoConvert sal-distributed-datastore to OSGi DS 70/91770/4
Robert Varga [Thu, 30 Jul 2020 11:28:18 +0000 (13:28 +0200)]
Convert sal-distributed-datastore to OSGi DS

This is a follow-up patch, converting more of blueprint wiring to
OSGi Declarative Services.

Change-Id: Ibb0a9f57c470e5572b64e85fdf87a093594d0367
Signed-off-by: Robert Varga <>
2 years agoConvert FileModuleShardConfigProvider to OSGi DS 56/91756/3
Robert Varga [Wed, 29 Jul 2020 10:09:34 +0000 (12:09 +0200)]
Convert FileModuleShardConfigProvider to OSGi DS

This is a simple injected holder, convert it to a full-blown

Change-Id: I6676055801c178c4ffb4137ec6721128014dedde
Signed-off-by: Robert Varga <>
2 years agoConvert DatastoreSnapshotRestore to OSGi DS 23/91723/6
Robert Varga [Tue, 28 Jul 2020 12:39:25 +0000 (14:39 +0200)]
Convert DatastoreSnapshotRestore to OSGi DS

This is a simple holder used extract restoration code, split it out
of manual blueprint.

Change-Id: Ic7f97fa1a2b0302c7f1ccc14a9a79fe7fce57412
Signed-off-by: Robert Varga <>
2 years agoMigrate DatastoreContextIntrospectorFactory to OSGi DS 97/91397/3
Robert Varga [Fri, 17 Jul 2020 17:21:41 +0000 (19:21 +0200)]
Migrate DatastoreContextIntrospectorFactory to OSGi DS

We are slowly converting hand-written blueprint config to OSGi DS,
so that we can end up ditching blueprint completely. This is the
next small step towards that goal.

Change-Id: I398d71344bccfef752128c561d6d2ff851edc5c2
Signed-off-by: Robert Varga <>
2 years agoBump versions to 2.0.4-SNAPSHOT 58/91658/1
Robert Varga [Sun, 26 Jul 2020 17:16:20 +0000 (19:16 +0200)]
Bump versions to 2.0.4-SNAPSHOT

This starts the next development iteration.

Change-Id: Ie6bdb44e3c37ad598206520556a2380708d44430
Signed-off-by: Robert Varga <>
2 years agoAdd optional lz4 compression for snapshots 92/90092/27
tadei.bilan [Thu, 25 Jun 2020 12:42:47 +0000 (15:42 +0300)]
Add optional lz4 compression for snapshots

Added ability to use lz4 compression both for snapshots sent to
followers and snapshots in storage.

Change-Id: I073120efddde869b10999450057b91e75f0ffe07
Signed-off-by: tadei.bilan <>
Signed-off-by: Robert Varga <>
2 years agoAdd optional timeout parameter for backup rpc 05/89905/8
Tomas Cere [Fri, 29 Mar 2019 11:38:10 +0000 (12:38 +0100)]
Add optional timeout parameter for backup rpc

Once the snapshot size grows large the backup rpc can take more
time than the default timeout value causing it to fail.
Add the option to override the timeout in the backup rpc.

Change-Id: I878066668f45abcfe758a7b90d34576bff1b7db0
Signed-off-by: Tomas Cere <>
Signed-off-by: Robert Varga <>
2 years agoBump odlparent/yangtools/mdsal to 7.0.5/5.0.5/6.0.4 01/91601/1
Robert Varga [Thu, 23 Jul 2020 21:05:37 +0000 (23:05 +0200)]
Bump odlparent/yangtools/mdsal to 7.0.5/5.0.5/6.0.4

Pick up latest upstream fixes.

Change-Id: Ia8b756565d22c5b6f39c77b1cc9b8ce3dc0b2aa0
Signed-off-by: Robert Varga <>
2 years agoDo not fail on warnings for docs-linkcheck 92/91192/2
Thanh Ha [Fri, 10 Jul 2020 14:57:46 +0000 (10:57 -0400)]
Do not fail on warnings for docs-linkcheck

This is a workaround due to sphinx-tabs being incompatible with the
Sphinx linkchecker which throws a warning. We mainly use linkchecker
to catch broken links so we don't really need to fail on warnings as
the main "docs" builder will still fail for warning level issues so
this is a reasonable workaround.

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

2 years agoSpeed up DatastoreContextIntrospector a bit 96/91396/2
Robert Varga [Fri, 17 Jul 2020 16:52:12 +0000 (18:52 +0200)]
Speed up DatastoreContextIntrospector a bit

We can rely on static QNames and pre-computed YangInstanceIdentifier
to reduce the amount of transcoding we do.

Change-Id: Ibae5a6938703e12dc7584de002fb7cd0538d8289
Signed-off-by: Robert Varga <>
2 years agoBump odlparent/yangtools/mdsal to 7.0.4/5.0.4/6.0.3 77/91277/8
Robert Varga [Sat, 11 Jul 2020 18:58:08 +0000 (20:58 +0200)]
Bump odlparent/yangtools/mdsal to 7.0.4/5.0.4/6.0.3

Pick up latest upstream fixes.

Change-Id: Ic661675cfc75311d2dace18997f4626033a2cdd6
Signed-off-by: Robert Varga <>
2 years agoFix controller-docs 80/91280/2
Robert Varga [Sun, 12 Jul 2020 11:20:14 +0000 (13:20 +0200)]
Fix controller-docs

We are referencing a few provided annotations, make sure docs
are seeing them as well.

Change-Id: Iffd0d7e9441441f44cb0c2126812d872e707755e
Signed-off-by: Robert Varga <>
2 years agoConvert sal-remoterpc-provided to OSGi DS 78/91278/5
Robert Varga [Sun, 12 Jul 2020 10:22:35 +0000 (12:22 +0200)]
Convert sal-remoterpc-provided to OSGi DS

Declarative Services offer better integration with OSGi lifecycle,
use them instead of blueprint.

Change-Id: I49b41fa0fba4714f54e097820b85aefe7da67364
Signed-off-by: Robert Varga <>
2 years agoFactor out ActorSystemProvider from blueprint 76/91276/6
Robert Varga [Sun, 12 Jul 2020 08:23:57 +0000 (10:23 +0200)]
Factor out ActorSystemProvider from blueprint

ActorSystemProvider is quite simple, make it completely independent
of blueprint.

Change-Id: I45233cad19ec8580d45d387efe627ab0935ce2eb
Signed-off-by: Robert Varga <>
2 years agoTurn FileAkkaConfigurationReader into a component 75/91275/5
Robert Varga [Sun, 12 Jul 2020 07:55:19 +0000 (09:55 +0200)]
Turn FileAkkaConfigurationReader into a component

This is a clearly standalone implementation of a common service,
turn it into a properly-injected component.

Change-Id: I521c3433093ab3aa911aa870c10b3d4e2bff8418
Signed-off-by: Robert Varga <>
2 years agoAdd INFO.yaml for controller 23/91223/1
Anil Belur [Sat, 11 Jul 2020 04:00:35 +0000 (14:00 +1000)]
Add INFO.yaml for controller

Signed-off-by: Anil Belur <>
Change-Id: I6ea7fa47868c9cbfb5f8ff803a5ade7c38474aa8

2 years agoFix intermittent IT hangs 79/91079/1
Robert Varga [Fri, 10 Jul 2020 06:38:22 +0000 (08:38 +0200)]
Fix intermittent IT hangs

Integration tests may hang due to pax-exam/surefire interaction.
Switch to TCP communication channel to fix these.

Change-Id: Ic4713ff63b073fdf03b8ee072d5a4ccaa20bf48e
Signed-off-by: Robert Varga <>
2 years agoEnable overwrite test suite 01/90701/11
Robert Varga [Thu, 25 Jun 2020 16:57:34 +0000 (18:57 +0200)]
Enable overwrite test suite

With data being split up correctly between shards, we can re-enable
the test suite for snapshot triggers.

Change-Id: Ibda02648682aee03cf4c5a0275f705d79dbe6b1c
Signed-off-by: Robert Varga <>
2 years agoSplit modifications on datastore root 99/90699/10
Robert Varga [Thu, 25 Jun 2020 14:31:24 +0000 (16:31 +0200)]
Split modifications on datastore root

When we are dealing with modifications, we must not assume they are
not spanning shards. Specifically, we need to make sure we split
data when the user is targeting datastore root, as for those cases
we need to split top-level containers to their appropriate shards,
not the default shard.

Change-Id: Ie8ad233fed993fddd54a1e4865884fd4474fc81f
Signed-off-by: Robert Varga <>
2 years agoAdd a missing space 25/90725/2
Robert Varga [Fri, 26 Jun 2020 10:43:50 +0000 (12:43 +0200)]
Add a missing space

Logging message was missing a space here, fix that up.

Change-Id: I6523e43601c447f5fccb40d1bc901da45060fd81
Signed-off-by: Robert Varga <>
2 years agoFix NoSuchElementException in toString() 24/90724/2
Robert Varga [Fri, 26 Jun 2020 10:33:43 +0000 (12:33 +0200)]
Fix NoSuchElementException in toString()

Original patch missed the fact that an empty set will throw, fix
that up.

Change-Id: I2d0588ec0499475935d285b3be6db299a9d4d525
Signed-off-by: Robert Varga <>
2 years agoSimplify LocalTransactionContext 22/90722/1
Stephen Kitt [Fri, 26 Jun 2020 09:31:19 +0000 (11:31 +0200)]
Simplify LocalTransactionContext

... by reverting to a variant of the previous executeModification()

Change-Id: I9a0480868bce2682e4ecc0e635a4db9f897d8511
Signed-off-by: Stephen Kitt <>
2 years 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 <>
2 years 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 <>
2 years 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 <>
2 years 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 <>
2 years 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 <>
2 years 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 <>
2 years 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 <>
2 years 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 <>
2 years 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 <>
2 years 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 <>
2 years 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 <>
2 years 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 <>
2 years 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 <>
2 years 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

3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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

3 years 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

3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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

3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>
3 years 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 <>