2 years agoMove FollowerInfo 07/93307/4
Robert Varga [Fri, 23 Oct 2020 16:07:01 +0000 (18:07 +0200)]
Move FollowerInfo

DataTreeListenerInfo is strictly JMX-related, hence it should not
be lurking among our messages. Move it to cluster.mgmt.api package.

Strictly speaking this is not API-compatible, but previous location
was in implementation-specific place, so that should be fine.

Change-Id: I901887ee7f1827ba25076252bf5ffb32cf6faf45
Signed-off-by: Robert Varga <>
2 years agoMove DataTreeListenerInfo 06/93306/3
Robert Varga [Fri, 23 Oct 2020 15:37:31 +0000 (17:37 +0200)]
Move DataTreeListenerInfo

DataTreeListenerInfo is strictly JMX-related, hence it should not
be lurking among our messages. Move it to newly-established
cluster.mgmt.api package.

Strictly speaking this is not API-compatible, but previous location
was in implementation-specific place, so that should be fine.

Change-Id: Idd6771a93dffd62d43beea5a57985e372d9098a8
Signed-off-by: Robert Varga <>
2 years agoMove MXBean definitions to cds-mgmt-api 05/93305/3
Robert Varga [Fri, 23 Oct 2020 15:16:50 +0000 (17:16 +0200)]
Move MXBean definitions to cds-mgmt-api

Downstreams are very interested in the details of CDS operation
and end up going through all kinds of hoops to get at the information
exposed in our MXBeans. They mostly do that without touching the
definition itself, so let's make it easier and publish the definitions
in an API artifact.

We also end up evacuating implementations to the packages that expose
them, hiding them from plain sight. Since we want them to really be
final, also adjust tests which are mocking them for no good reason.

Change-Id: I9bb1eb792c7ce4b7197b4da715c2c5223b41ff73
Signed-off-by: Robert Varga <>
2 years agoMove jolokia to top-level directory 04/93304/2
Robert Varga [Fri, 23 Oct 2020 15:01:13 +0000 (17:01 +0200)]
Move jolokia to top-level directory

There is no point in keeping opendaylight/commons indirection,
move this artifact to the top-level directory.

Change-Id: Ic55ceeeb103b4a8f6f3ed44de4c703bd2349ee47
Signed-off-by: Robert Varga <>
2 years agoMove models to top-level directory 03/93303/2
Robert Varga [Fri, 23 Oct 2020 14:57:35 +0000 (16:57 +0200)]
Move models to top-level directory

Having the 'opendaylight' indirection is useless, move the models
first as we expect few changes to them. Also cleanup module order
in top-level aggragator.

Change-Id: Ibbdcc6c68f643f13e58741ab5e59b4724693806c
Signed-off-by: Robert Varga <>
2 years agoExpose AskTimeoutException counter from DatastoreInfoMXBean 83/93283/1
Robert Varga [Thu, 22 Oct 2020 21:38:04 +0000 (23:38 +0200)]
Expose AskTimeoutException counter from DatastoreInfoMXBean

This is a natural place to keep track of all exceptions which
happen in datastore context. Hook an onComplete() to each future
which goes by and update the counter.

Change-Id: Ib208b377e1ab533993597660228b5fc87919e75b
Signed-off-by: Robert Varga <>
2 years agoRemove DatastoreConfigurationMXBean IMDS properties 82/93282/1
Robert Varga [Thu, 22 Oct 2020 21:08:38 +0000 (23:08 +0200)]
Remove DatastoreConfigurationMXBean IMDS properties

These properties are unused and have been returning 0 for quite
some time. Remove them.

Change-Id: I1c532d83dbd3d8648cfee816f35dc2357394b26d
Signed-off-by: Robert Varga <>
2 years agoAdd multi journal configuration for segmented journal 86/90186/9
Tomas Cere [Fri, 29 May 2020 14:07:32 +0000 (16:07 +0200)]
Add multi journal configuration for segmented journal

We dont need to have large segments for operational shards.
Add in multi journal configuration that gets used when shard has
persistence turned off.

Change-Id: I39349503079ef03177c8b9b52909078c5f35d6ba
Signed-off-by: Tomas Cere <>
Signed-off-by: Robert Varga <>
2 years agoUse assertTrue/assertFalse in SnapshotManagerTest 66/93266/1
Robert Varga [Thu, 22 Oct 2020 18:57:19 +0000 (20:57 +0200)]
Use assertTrue/assertFalse in SnapshotManagerTest

This prevents boxing while retaining intent.

Change-Id: I6818c3197ae3a1800768d0d43fc669bee8232adb
Signed-off-by: Robert Varga <>
2 years agoMigrate SnapshotManagerTest 65/93265/1
Robert Varga [Thu, 22 Oct 2020 18:51:32 +0000 (20:51 +0200)]
Migrate SnapshotManagerTest

Use MockitoJUnitRunner to initialize mocks, which shows we have
unneeded stubbings and that we are lacking two stubs.

Change-Id: I5a4ebde09a72bb4d2c2ba9affa524731413bd02c
Signed-off-by: Robert Varga <>
2 years agoMigrate ReplicatedLogImplTest 64/93264/1
Robert Varga [Thu, 22 Oct 2020 18:47:33 +0000 (20:47 +0200)]
Migrate ReplicatedLogImplTest

Use MockitoJUnitRunner to initialize mocks, which shows we have
unneeded stubbings.

Change-Id: Ib907fa4b027d063d3a0c3d7b9c0e94115ab39495
Signed-off-by: Robert Varga <>
2 years agoDo not reset datasize after a fake snapshot 79/91679/11
tadei.bilan [Mon, 27 Jul 2020 10:18:29 +0000 (13:18 +0300)]
Do not reset datasize after a fake snapshot

If we reset dataSize from SnapshotManager's fake snapshot, we would
not have correctly accounted for on-disk size.

Fix this by exposing a simple knob, which allows suppressing dataSize
update during snapshotCommit().

Change-Id: I553ddb523ac8504892cc5353bfe4b002c25436ce
Signed-off-by: tadei.bilan <>
Signed-off-by: Robert Varga <>
2 years agoLog replicated log dataSize changes 63/93263/2
Robert Varga [Thu, 22 Oct 2020 18:10:01 +0000 (20:10 +0200)]
Log replicated log dataSize changes

This is a bit of critical state, make sure we recalculate it atomically
and log its changes.

Change-Id: I09532384ce5bbaf7218c0ffdb64799541037fafc
Signed-off-by: Robert Varga <>
2 years agoReformat AbstractReplicatedLogImpl 62/93262/2
Robert Varga [Thu, 22 Oct 2020 17:57:54 +0000 (19:57 +0200)]
Reformat AbstractReplicatedLogImpl

'final' on arguments, remove unnecessary type for empty list, add
a @NonNull return annotation.

Change-Id: I697c6fdd33e373478a645f3bbef987a054d8ed70
Signed-off-by: Robert Varga <>
2 years agoClean up AbstractReplicatedLogImplTest 61/93261/2
Robert Varga [Thu, 22 Oct 2020 17:54:11 +0000 (19:54 +0200)]
Clean up AbstractReplicatedLogImplTest

Use static imports for Assert methods, add final qualifiers.

Change-Id: I35f589b14e1188fa1fb94524065b562023687f27
Signed-off-by: Robert Varga <>
2 years agoBump versions to 3.0.2-SNAPSHOT 83/93183/2
Robert Varga [Mon, 19 Oct 2020 14:50:42 +0000 (16:50 +0200)]
Bump versions to 3.0.2-SNAPSHOT

This starts the next development iteration.

Change-Id: Icf9580fcd1bb7cec7de3169f058e3ec5bbcdfb28
Signed-off-by: Robert Varga <>
2 years agoBump mdsal to 7.0.1 76/93176/1
Robert Varga [Mon, 19 Oct 2020 11:47:18 +0000 (13:47 +0200)]
Bump mdsal to 7.0.1

Pick up critical bug fixes from upstream.

Change-Id: Ibfc9f9c19cd08e399532f59cdb84c2a3558191af
Signed-off-by: Robert Varga <>
2 years agoRehost Chunked{ByteArray,InputStream,OutputStream} 99/93099/5
Robert Varga [Fri, 16 Oct 2020 15:35:39 +0000 (17:35 +0200)]
Rehost Chunked{ByteArray,InputStream,OutputStream}

These utility classes are immensely useful for any fragmentation
workload. Rehost them so we can reuse them. This means we will end
up with non-constant maximum chunk size, but that's fine.

Change-Id: I046ddb16d1e5c7210a781d63f302c3ee3e75742d
Signed-off-by: Robert Varga <>
2 years agoUpdate DataJournal interface 97/93097/4
Robert Varga [Fri, 16 Oct 2020 13:17:50 +0000 (15:17 +0200)]
Update DataJournal interface

The interface is not documented and we need to differentiate between
indices as viewed from segmented journal and the persistence journal

Change-Id: Ibbc384b88f8d5567e9af18d83b9a84f7c9b9634c
Signed-off-by: Robert Varga <>
2 years agoOdl-jolokia package superfluous artifacts 32/93032/1
Vladyslav Marchenko [Tue, 13 Oct 2020 06:38:19 +0000 (09:38 +0300)]
Odl-jolokia package superfluous artifacts

From /odl-jolokia/target/feature/feature.xml:
wrap:mvn: jar content is already in present in jolokia-osgi

Change-Id: I3d689cdedb002f9d97937671ebfe38127e1095e0
Signed-off-by: Vladyslav Marchenko <>
2 years agoCorrect javadoc reference 27/93027/1
Robert Varga [Mon, 12 Oct 2020 13:23:55 +0000 (15:23 +0200)]
Correct javadoc reference

We should not be referencing UntypedActor, but rather AbstractActor.

Change-Id: I6f17d818e2c03c9c4a9e0df26317212f28425734
Signed-off-by: Robert Varga <>
2 years agoBump versions 3.0.1-SNAPSHOT 18/93018/2
Robert Varga [Mon, 12 Oct 2020 09:06:28 +0000 (11:06 +0200)]
Bump versions 3.0.1-SNAPSHOT

This starts the next development iteration.

Change-Id: I226c02f355c120fdf23d519aa91342b91e9d2c00
Signed-off-by: Robert Varga <>
2 years agoBump mdsal-7 to released version 08/93008/1
Robert Varga [Fri, 9 Oct 2020 16:16:23 +0000 (18:16 +0200)]
Bump mdsal-7 to released version

Remove the use of snapshots and return to being release-integrated.

Change-Id: Ib4fa9662fe26bc968b6f9a433408d648d35c55bd
Signed-off-by: Robert Varga <>
2 years agoBump yangtools to 6.0.0 99/92999/1
Robert Varga [Thu, 8 Oct 2020 15:20:51 +0000 (17:20 +0200)]
Bump yangtools to 6.0.0

Switch from integrating on snapshots to taking released artifacts.

Change-Id: Id46bafcbda66a28a9d9f165e470b9cc94b482dba
Signed-off-by: Robert Varga <>
2 years agoBump upstreams for Silicon 78/92878/17
Robert Varga [Fri, 2 Oct 2020 16:16:24 +0000 (18:16 +0200)]
Bump upstreams for Silicon

Adopt the following upstream versions:
- odlparent-8.0.0
- yangtools-6.0.0-SNAPSHOT
- mdsal-7.0.0-SNAPSHOT

Also add bundle-parent to host the scala/akka definitions we need.

Change-Id: I98452920bf7cebf176d3b20723be40929a9a7268
Signed-off-by: Robert Varga <>
2 years agoAdd Akka packaging 80/92880/9
Robert Varga [Fri, 2 Oct 2020 17:15:26 +0000 (19:15 +0200)]
Add Akka packaging

This adds an independent packaging of akka as a single uber-bundle,
so that split packages and missing OSGi headers are not a concern.

This duplicates odlparent packaging to an extent, but does not

Change-Id: I48f33b348b63ca0ac48f21573e55e06719900eb0
Signed-off-by: Robert Varga <>
2 years agoAdd Scala packaging 79/92879/2
Robert Varga [Fri, 2 Oct 2020 16:57:24 +0000 (18:57 +0200)]
Add Scala packaging

This is a straight transplant of odl-scala-2.13 feature from

Change-Id: I7302b769961df092eaa7dbfbaaa90e723e70e263
Signed-off-by: Robert Varga <>
2 years agoBump versions to 3.0.0-SNAPSHOT 77/92877/1
Robert Varga [Fri, 2 Oct 2020 16:15:08 +0000 (18:15 +0200)]
Bump versions to 3.0.0-SNAPSHOT

This starts the next major version development iteration.

Change-Id: I06cf3e57ee1aee9d906dccd165c371f7e6bc2da6
Signed-off-by: Robert Varga <>
2 years agoAdd a segmented DataJournal abstraction 15/92615/7
Robert Varga [Wed, 23 Sep 2020 10:24:52 +0000 (12:24 +0200)]
Add a segmented DataJournal abstraction

We are going to change the way we organize journal entries within
a segmented file. Add DataJournal abstraction which exposes
a unified interface towards the SegmentedJournalActor.

Current implementation is split out from SegmentedJournalActor
as DataJournalV0.

Change-Id: I0d1de42b22e75610d0434548483091e3359123e4
Signed-off-by: Robert Varga <>
2 years agoCorrect mdsal-it-base dependencies 52/92852/1
Robert Varga [Fri, 2 Oct 2020 10:56:50 +0000 (12:56 +0200)]
Correct mdsal-it-base dependencies

This is a weird dance of dependencies, for which we need to match
the content of pax-exam-features.

Change-Id: Ia011022174f8d633f3ec3ac17cd2f8d7d33a7ee0
Signed-off-by: Robert Varga <>
3 years agoBump versions to 2.0.5-SNAPSHOT 94/92594/1
Robert Varga [Tue, 22 Sep 2020 15:37:36 +0000 (17:37 +0200)]
Bump versions to 2.0.5-SNAPSHOT

This starts the next development iteration.

Change-Id: I41c77600cfde36c0e74087472272a4890dd13122
Signed-off-by: Robert Varga <>
3 years agoBump mdsal to 6.0.5 81/92581/1
Robert Varga [Tue, 22 Sep 2020 08:25:19 +0000 (10:25 +0200)]
Bump mdsal to 6.0.5

Pick up the released version.

Change-Id: I785e24cdccb12a2f3da3ac03abe008a7c521681b
Signed-off-by: Robert Varga <>
3 years agoConvert messagebus-impl to OSGi DS 74/91774/14
Robert Varga [Thu, 30 Jul 2020 15:28:37 +0000 (17:28 +0200)]
Convert messagebus-impl to OSGi DS

messagebus-impl is an extremely simple component, convert it to
Declarative Services.

Change-Id: I5131530f3ba907525a7a29775136cd5123f56f18
Signed-off-by: Robert Varga <>
3 years agoConvert cluster-admin to OSGi DS 73/91773/14
Robert Varga [Thu, 30 Jul 2020 15:17:26 +0000 (17:17 +0200)]
Convert cluster-admin to OSGi DS

This is a very simple component, convert it to declarative services.

Change-Id: I664db0ef3cbf6b5cf900d969fa56bc04440c2604
Signed-off-by: Robert Varga <>
3 years agoBump odlparent/yangtools/mdsal to 7.0.6/5.0.6/6.0.5-SNAPSHOT 04/91804/6
Robert Varga [Fri, 31 Jul 2020 15:03:04 +0000 (17:03 +0200)]
Bump odlparent/yangtools/mdsal to 7.0.6/5.0.6/6.0.5-SNAPSHOT

Since CONTROLLER-1882 needs a few changes from upstream, bump to
released odlparent/yangtools and snapshot mdsal.

Change-Id: Ic2a74eb7d989e8da859fec471ba7c442374bef70
Signed-off-by: Robert Varga <>
3 years agoRemove java.desktop dependency 27/92127/7
tadei.bilan [Thu, 13 Aug 2020 07:58:27 +0000 (10:58 +0300)]
Remove java.desktop dependency

Remove java.beans dependency to be able to run without java.desktop module

Change-Id: Ib7cfba1e0ec4694e0f63586837486a00e9863ea3
Signed-off-by: tadei.bilan <>
3 years agoAdd direct in-memory journal threshold 99/91299/10
tadei.bilan [Tue, 21 Jul 2020 09:24:09 +0000 (12:24 +0300)]
Add direct in-memory journal threshold

Some deployments benefit from placing an absolute numeric limit
on the retained memory. Introduce a new tunable, which overrides
the usual percentange limit.

Change-Id: I688e226b173386765bea74931b6aaf617bda30a8
Signed-off-by: tadei.bilan <>
Signed-off-by: Robert Varga <>
3 years agoDoc update for "Extend Websocket streams for data-less notifications" enhancement. 86/91886/1
Nikhil Soni [Wed, 5 Aug 2020 14:31:07 +0000 (20:01 +0530)]
Doc update for "Extend Websocket streams for data-less notifications" enhancement.


Signed-off-by: Nikhil Soni <>
Change-Id: I5e36f30a61fb6313c85f34fbe9721c5a5fbc317d

3 years agoInstantiate distributed datastore asynchronously 95/91795/8
Robert Varga [Fri, 31 Jul 2020 10:44:27 +0000 (12:44 +0200)]
Instantiate distributed datastore asynchronously

With OSGi DS we can have very explicit control over component
activations. Use component factory pattern, which provides async
publish of DOMStore into service registry. This allows us to
make startup asynchronous).

Change-Id: Id09f956ec9088388ec5cbd3162d128310baddf51
Signed-off-by: Robert Varga <>
3 years agoRefactor DataStore readiness tracking 94/91794/2
Robert Varga [Fri, 31 Jul 2020 09:34:22 +0000 (11:34 +0200)]
Refactor DataStore readiness tracking

Using a CountDownLatch is not composable, which leads to current
layout. Switch to using a SettableFuture, which can be accessed
via AbstractDataStore.initialSettleFuture().

This allows us to externalize the settle policy, letting callers
decide what to actually do.

Change-Id: Iaf9a359cfc2507ae35688fca3673c13713c2b427
Signed-off-by: Robert Varga <>
3 years agoConvert netty-timer-config to OSGi DS 78/91778/2
Robert Varga [Thu, 30 Jul 2020 17:07:38 +0000 (19:07 +0200)]
Convert netty-timer-config to OSGi DS

This is an extremely simple forwarder, convert it to OSGi DS.

Change-Id: I8fbb71fba704e273b8e1c8fa79b4e4dd90aeff31
Signed-off-by: Robert Varga <>
3 years agoConvert netty-event-executor-config to OSGi DS 77/91777/2
Robert Varga [Thu, 30 Jul 2020 16:10:41 +0000 (18:10 +0200)]
Convert netty-event-executor-config to OSGi DS

This is an extremely simple forwarder, convert it to OSGi DS.

Change-Id: Iff74bad52a78adcb6398b09300f6bfa7457dea7d
Signed-off-by: Robert Varga <>
3 years agoConvert sal-distributed-eos to OSGi DS 72/91772/2
Robert Varga [Thu, 30 Jul 2020 14:56:40 +0000 (16:56 +0200)]
Convert sal-distributed-eos to OSGi DS

This is a simple component, there is just no need to use blueprint.

Change-Id: If64faff3cab0e66303b5e2d5db4af7f9ea2a2b50
Signed-off-by: Robert Varga <>
3 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 <>
3 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 <>
3 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 <>
3 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 <>
3 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 <>
3 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 <>
3 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 <>
3 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 <>
3 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

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

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