ovsdb.git
2 years agoUse GuicedEE javax.inject 46/96446/1
Robert Varga [Tue, 8 Jun 2021 06:26:40 +0000 (08:26 +0200)]
Use GuicedEE javax.inject

This artifact is a proper jar and a JPMS module, use it instead
of the ancient javax.inject zip.

Change-Id: I8996c1a7c02180786b14e9b0d395e4e104fb98b9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 years agoUse osgi-core R7 44/96444/1
Robert Varga [Tue, 8 Jun 2021 06:24:20 +0000 (08:24 +0200)]
Use osgi-core R7

Release 7 has changed the name of the artifact, update our references
to pick up R7 instead of R6.

Change-Id: I39d93e71e074c01a7d702d08b4d4b4d736dceebd
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoRemove ShardStatusMonitor 86/95786/2
Robert Varga [Wed, 14 Apr 2021 08:06:10 +0000 (10:06 +0200)]
Remove ShardStatusMonitor

This class is not used anywhere. It used to be needed when DataBroker
was injected early, but nowdays it is brought up only after initial
convergence has been achieved.

Change-Id: I65424f782d6cf45afdbdf0ec020399cab648e014
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoBump MRI upstreams 50/95650/2
Robert Varga [Fri, 2 Apr 2021 05:40:31 +0000 (07:40 +0200)]
Bump MRI upstreams

Adopt following versions:
- odlparent-8.1.1
- infrautils-1.9.6
- yangtools-6.0.5
- mdsal-7.0.6
- controller-3.0.7
- aaa-0.13.2
- netconf-1.13.1

Change-Id: I9b80b389033399bc06f2ddc8ff911fcf000629ac
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoBump versions by x.(y+1).z 92/95292/1
jenkins-releng [Mon, 22 Feb 2021 23:02:56 +0000 (23:02 +0000)]
Bump versions by x.(y+1).z

Signed-off-by: jenkins-releng <jenkins-releng@opendaylight.org>
Change-Id: I4f009fb6ad1befdf1e2c18e6cb76bc3c4de668b7

3 years agoBump netconf to 1.13.0 48/95248/2
Robert Varga [Sun, 21 Feb 2021 17:55:35 +0000 (18:55 +0100)]
Bump netconf to 1.13.0

Adjust version for MRI-integrated NETCONF.

Change-Id: Ic1b7f1ffa8589ee1ded02c80482674ab00cdd46a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoAdopt akka-2.6.x 75/94975/3
Oleksii Mozghovyi [Tue, 2 Feb 2021 21:01:27 +0000 (23:01 +0200)]
Adopt akka-2.6.x

Adopt following upstreams to enable akka-2.6.x:
- controller-3.0.6
- aaa-0.13.1

Change-Id: Ib57352cbd28389513ee607382a86a5f84b7e4964
Signed-off-by: Oleksii Mozghovyi <oleksii.mozghovyi@pantheon.tech>
3 years agoUse a version range for aaa/infrautils dependency 41/94941/2
Robert Varga [Mon, 1 Feb 2021 15:11:32 +0000 (16:11 +0100)]
Use a version range for aaa/infrautils dependency

AAA is an MRI project, do not depend on a specific version of its
feature, but rather require a proper range. The same is true for
infrautils, hence fix those as well.

Change-Id: I907e4fde584597d8379a69e532955fb02e1bc43d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoDepend on AAA 0.13.0 release 02/94902/1
Robert Varga [Sat, 30 Jan 2021 19:17:02 +0000 (20:17 +0100)]
Depend on AAA 0.13.0 release

Reflect the fact upstream has a release, dropping the -SNAPSHOT
suffix.

Change-Id: I92382b328cda7dd7fb0cca6e71c15f0242695263
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoBump upstream versions 13/94713/5
Robert Varga [Thu, 21 Jan 2021 17:44:12 +0000 (18:44 +0100)]
Bump upstream versions

Adopt following upstreams:
- odlparent-8.1.0
- infrautils-1.9.5
- yangtools-6.0.4
- mdsal-7.0.5
- controller-3.0.5

Change-Id: I2712230c96d5c6320defddece50625d02505abf1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoReduce powermock use in OvsdbManagersUpdateCommandTest 85/94585/2
Robert Varga [Sun, 10 Jan 2021 11:38:10 +0000 (12:38 +0100)]
Reduce powermock use in OvsdbManagersUpdateCommandTest

Do not overmock unrelated classes and use a @VisibleForTesting
method do ditch some of the powermock use.

Change-Id: I90c47897f9057a2a81d0016ce47d27d1f6ac2181
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoCleanup SouthboundIT 84/94584/1
Robert Varga [Sun, 10 Jan 2021 11:23:30 +0000 (12:23 +0100)]
Cleanup SouthboundIT

Use BindingMap to clean up use of deprecated methods.

Change-Id: Ib257c097a6d0e7e7a2888af4dcf7f14a06aaed1e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoFixup warnings in southbound-utils 73/94573/7
Robert Varga [Sat, 9 Jan 2021 17:01:29 +0000 (18:01 +0100)]
Fixup warnings in southbound-utils

This changes SoutboundUtils.addBridge(), requiring proper maps
to be passed in. Internals are reworked to allow for more efficient
operation when no configs are passed in.

Change-Id: Ib80b682c7c4b5d0fd922376ec6a0989a8b5cff96
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoEncapsulate HwvtepSouthboundUtil's executor 83/94583/1
Robert Varga [Sat, 9 Jan 2021 23:08:17 +0000 (00:08 +0100)]
Encapsulate HwvtepSouthboundUtil's executor

We do not want to leak this executor to prevent shenanigans. We really
just need a schedule() method.

Change-Id: Ida4004c82d1d99f51439ebbdf908f62d36bb6a25
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoDitch blueplrint-maven-plugin from southbound-impl 82/94582/1
Robert Varga [Sat, 9 Jan 2021 22:46:08 +0000 (23:46 +0100)]
Ditch blueplrint-maven-plugin from southbound-impl

The use of this plugin was a mis-step, we really want do deal with
OSGi using Declarative Services. As a first step, freeze all wiring
in the explicit blueprint.xml and put in FIXMES for near future.

Change-Id: Ib2cd99d1b0c4b1057adb6531a7005546be468a5c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoIntegrate CLI on a proper management interface 81/94581/1
Robert Varga [Sat, 9 Jan 2021 21:56:17 +0000 (22:56 +0100)]
Integrate CLI on a proper management interface

We are currently wiring these through blueprint, which allows class
injection -- but this needs to be a proper interface.

Change-Id: I704f329bc6c8b75f01f5d7cd29471648c028f922
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoDo not check DataBroker shards 80/94580/1
Robert Varga [Sat, 9 Jan 2021 21:47:01 +0000 (22:47 +0100)]
Do not check DataBroker shards

Startup checks are not necessary, as DataBroker is only injected
once initial convergence has been reached.

Remove the checks and all their configuration binding, leaving only
manual Karaf commands. These will be refactored at a later point
in time.

Change-Id: I1ec8fbf47847c024e7a4e2bdceb867e0491f35c2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoCleanup invalid constants 79/94579/1
Robert Varga [Sat, 9 Jan 2021 20:47:33 +0000 (21:47 +0100)]
Cleanup invalid constants

Constants should really be constant, make sure that is the case.

Change-Id: Idbaee1ff9ba0856bfab7a802e044897e57cd9bfc
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoDo not use powermock in hwvtepsouthbound-impl 78/94578/1
Robert Varga [Sat, 9 Jan 2021 20:32:12 +0000 (21:32 +0100)]
Do not use powermock in hwvtepsouthbound-impl

Replace reflection access with package @VisibleForTesting fields.

Change-Id: Ic900de4ae5efa8123e1c2ca377b442d39ab011ea
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoCleanup warnings in hwvtepsouthbound-impl 75/94575/4
Robert Varga [Sat, 9 Jan 2021 17:54:54 +0000 (18:54 +0100)]
Cleanup warnings in hwvtepsouthbound-impl

Use BindingMap to reduce warnings about deprecated use of lists.

Change-Id: Ib47f8b3de614aae8e56af35533eb4934ba047c0b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoFix deprecation warnings is southbound-impl 72/94572/4
Robert Varga [Sat, 9 Jan 2021 16:37:42 +0000 (17:37 +0100)]
Fix deprecation warnings is southbound-impl

Use BindingMap.Builder to replace ArrayList, which maintains
is almost a drop-in replacement. While we are in the area, also
fix duplicate invocations of SouthboundMapper.

Since the interactions take advantage of what builders provide,
also ditch a ton of mocking in favor of using provided builder
implementation.

Change-Id: I4bd4a86039b8ef3159091565be2581b9fe23aefc
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoMigrate bridge constructor users 74/94574/1
Robert Varga [Sat, 9 Jan 2021 17:07:04 +0000 (18:07 +0100)]
Migrate bridge constructor users

Add explicit conversion between XML and builders, so that we do not
get a legacy conversion warning.

Change-Id: I18b62c9af57e8af7680daf36ba16238b7af93400
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoMigrate isFoo() callers 71/94571/2
Robert Varga [Sat, 9 Jan 2021 15:01:07 +0000 (16:01 +0100)]
Migrate isFoo() callers

isFoo() is changing to getFoo(), remove use of deprecated methods.

Change-Id: I8c5f115bf9d01e286dc1a98831f21005870411b9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoFix type safety hazards in TransactUtils 70/94570/1
Robert Varga [Sat, 9 Jan 2021 14:49:40 +0000 (15:49 +0100)]
Fix type safety hazards in TransactUtils

There quite a bit of casting going on here, make sure we express
ourselves more clearly.

Change-Id: I77e136fce7c517b6d7b632067e5e330f54a0b38d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoBump MRI upstreams 41/94541/1
Robert Varga [Sat, 9 Jan 2021 09:24:09 +0000 (10:24 +0100)]
Bump MRI upstreams

Adopt following versions:
- odlparent-8.0.3
- infrautils-1.9.4
- yangtools-6.0.3
- mdsal-7.0.4
- controller-3.0.4

Change-Id: If314c4a19aad8d9d10c0619c8444c2d27d34ac8d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoBump MRI upstreams 52/94152/3
Robert Varga [Thu, 10 Dec 2020 12:43:52 +0000 (13:43 +0100)]
Bump MRI upstreams

Adopt following versions:
- odlparent-8.0.2
- infrautils-1.9.3
- yangtools-6.0.2
- mdsal-7.0.3
- controller-3.0.3

Change-Id: I052a9db42bb16ae96a997a24c47083d9ffcc74aa
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoBump infrautils to 1.9.1 07/93207/1
Robert Varga [Mon, 19 Oct 2020 23:33:00 +0000 (01:33 +0200)]
Bump infrautils to 1.9.1

Pick up mbean fixes from upstream.

Change-Id: Iba5ef562fbc0f8737162a8b04384a573b12a0152
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoBump to mdsal-7.0.1/controller-3.0.1 97/93197/1
Robert Varga [Mon, 19 Oct 2020 19:37:20 +0000 (21:37 +0200)]
Bump to mdsal-7.0.1/controller-3.0.1

Pick up mdsal fixes and improvements.

Change-Id: I8881f00992eb910293c8ee50724b1bbfd9512077
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoMigrate to Objects.requireNonNull() 91/93091/1
Robert Varga [Fri, 16 Oct 2020 09:02:19 +0000 (11:02 +0200)]
Migrate to Objects.requireNonNull()

Fix up final violations reported by modernizer and flip it on. Also
turn a few obvious uses to the proper guards -- i.e. use the return
value of requireNonNull().

Change-Id: I7e3e814219a08357c5f4bc87e7b125173743379a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoFix use of raw Collections.EMPTY_{LIST,SET} 90/93090/1
Robert Varga [Fri, 16 Oct 2020 08:50:29 +0000 (10:50 +0200)]
Fix use of raw Collections.EMPTY_{LIST,SET}

Modernizer is rightly pointing out this use of constant, which also
causes some raw type warnings. Fix that up.

Change-Id: I5749db43f6d3fa21821180409d83109a43ab34a6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoBump upstreams for Silicon 65/92965/4
Robert Varga [Wed, 7 Oct 2020 15:40:34 +0000 (17:40 +0200)]
Bump upstreams for Silicon

Adopt the following upstream versions:
- odlparent-8.0.0
- yangtools-6.0.0
- mdsal-7.0.0
- controller-3.0.0
- infrautils-1.9.0

Change-Id: Ibb020c42971e25aaf651bf00fd970e77b3fea142
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoFix a few raw type warnings 31/92731/1
Robert Varga [Sat, 26 Sep 2020 22:08:13 +0000 (00:08 +0200)]
Fix a few raw type warnings

InstanceIdentifier should not be used raw, this fixes trivial
offenders.

Change-Id: I9eff9e23a2f95e40dde757d5980da26e3dd5bd81
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoUse uint types in SouthboundIT 29/92729/1
Robert Varga [Sat, 26 Sep 2020 21:56:11 +0000 (23:56 +0200)]
Use uint types in SouthboundIT

There are a number of warnings here, use proper uint types, which
cleans up some of the funky dance we have had here.

Change-Id: I3474593e5d75769a9d2f92fa0552d499cf64277a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoMigrate to use Objects.requireNonNull 28/92728/1
Robert Varga [Sat, 26 Sep 2020 21:39:44 +0000 (23:39 +0200)]
Migrate to use Objects.requireNonNull

These users of Preconditions.checkNotNull() are pointer out by
modernizer, migrate them.

Change-Id: I198384e8fc62ed32dc7c2fbba63fb16789bfc993
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoUse uint types in southbound-impl 27/92727/1
Robert Varga [Sat, 26 Sep 2020 21:28:17 +0000 (23:28 +0200)]
Use uint types in southbound-impl

This is a mostly-straightforward migration to use proper unsigned
types. We also fix some use of lists where it is convenient.

Change-Id: I6d4199431ec6ba45a2958573e07e956b4697ad88
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoFix migration warnings 26/92726/1
Robert Varga [Sat, 26 Sep 2020 21:05:24 +0000 (23:05 +0200)]
Fix migration warnings

Remove use of deprecated methods by switch port to Uint16 and using
maps for arguments.

Change-Id: I8545d85b6842837993d357e584f3b95315bfb6a7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoDo not override javax.inject version 25/92725/1
Robert Varga [Sat, 26 Sep 2020 21:04:04 +0000 (23:04 +0200)]
Do not override javax.inject version

The version is managed in parent pom, no need to specify it again.

Change-Id: I699d2fa48c4fd2da607b779de057de05a704a3a4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoMigrate users of addAugmentation() 65/92665/1
Robert Varga [Thu, 24 Sep 2020 11:05:07 +0000 (13:05 +0200)]
Migrate users of addAugmentation()

Builders have a simplified addAugmentation() method, migrate last
two users to it.

Change-Id: I71d3efeb15b8df4a9eb47bf0236447903fb640cd
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoFix warnings in MdsalUtilsAsyncTest 64/92664/1
Robert Varga [Thu, 24 Sep 2020 11:00:19 +0000 (13:00 +0200)]
Fix warnings in MdsalUtilsAsyncTest

We have unused suppressions and unnecessary use of Lists, fix those
up.

Change-Id: I52a1e4d66b4197e9e5efffb4dcf0abc90116fdd4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoMigrate SouthboundUtils to use Uint types 63/92663/2
Robert Varga [Thu, 24 Sep 2020 10:53:37 +0000 (12:53 +0200)]
Migrate SouthboundUtils to use Uint types

This is a leftover migration from Magnesium, propagate the change
into public API.

Change-Id: I22348dabd81e7ac74ca66a71f66349b96fe1713e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoFix a few warnings in SouthboundUtils 62/92662/2
Robert Varga [Thu, 24 Sep 2020 10:50:14 +0000 (12:50 +0200)]
Fix a few warnings in SouthboundUtils

First pass on deprecation warnings, fixing most obvious/limited
cases.

Change-Id: I70a97b3b917a55fb680b44d7bceb93293902443e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoMake methods static 55/92255/6
Robert Varga [Mon, 24 Aug 2020 09:20:28 +0000 (11:20 +0200)]
Make methods static

There is a number of methods which do not touch object state, hence
can be made static. Eliminate eclipse warnings by making them static.

Change-Id: I6a714df82867c2e0bc303affba6be47fa7da999a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoBump MRI projects 98/92598/1
Robert Varga [Tue, 22 Sep 2020 15:46:25 +0000 (17:46 +0200)]
Bump MRI projects

This patch adopts:
- odlparent-7.0.6
- infrautils-1.8.1
- yangtools-5.0.6
- mdsal-6.0.5
- controller-2.0.4

Change-Id: I2ed5d7eb9b4bb4c8d500f7001924c586b1d3fda7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoBump conf.yaml versions to Silicon 66/92066/2
Thanh Ha [Tue, 11 Aug 2020 19:29:09 +0000 (15:29 -0400)]
Bump conf.yaml versions to Silicon

Signed-off-by: Thanh Ha <zxiiro@gmail.com>
Change-Id: Ib0c12fe82d53aa042ea3f3d22e7847e4aa08a3fa

3 years agohwvtep disconnect command support 19/91819/6
Chetan Arakere Gowdru [Mon, 3 Aug 2020 07:14:01 +0000 (12:44 +0530)]
hwvtep disconnect command support

Description:
when the command is fired it flaps the connection to the tor. The usage
is as below ex:

hwvtep:disconnect -nodeid hwvtep://uuid/19277da8-f85c-4ac8-af1b-9cffda7ef73d

Signed-off-by: Chetan Arakere Gowdru <chetan.arakere@altencalsoftlabs.com>
Change-Id: I6e51d4858eb8887ea91659e0171268be50e64f90
Signed-off-by: Chetan Arakere Gowdru <chetan.arakere@altencalsoftlabs.com>
3 years agoFix deprecation warnings around addAugmentation() 54/92254/1
Robert Varga [Mon, 24 Aug 2020 08:39:59 +0000 (10:39 +0200)]
Fix deprecation warnings around addAugmentation()

These are mostly trivial fixes to eliminate warnings reported around
addAugmentation() method.

Change-Id: Ie17450891ed2c75861249a6ccb3f178ca3a8890f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoLocal-ucast-macs not cleared from oper-topo DS. 80/92180/2
Chetan Arakere Gowdru [Tue, 18 Aug 2020 11:53:55 +0000 (17:23 +0530)]
Local-ucast-macs not cleared from oper-topo DS.

Description:
Due to deviceInfo cache not populated during add, during local-ucast-mac
removal, this mac entry is missing causing not to delete from optopo on mac removal
from switch.

The onSuccess() which populate the cache is not called properly during
add resulting in this issue.

Change-Id: I9db66caee024daf254cba5b696ef697e6309f1bb
Signed-off-by: Chetan Arakere Gowdru <chetan.arakere@altencalsoftlabs.com>
3 years agoBump versions by x.(y+1).z for next dev cycle 30/91930/1
Thanh Ha [Wed, 5 Aug 2020 21:02:36 +0000 (17:02 -0400)]
Bump versions by x.(y+1).z for next dev cycle

Signed-off-by: Thanh Ha <zxiiro@gmail.com>
Change-Id: I9c511d75109bdbaac30702fa39d8aae3a3935361

3 years agoUse released version of infrautils 17/91717/1
Robert Varga [Tue, 28 Jul 2020 11:33:28 +0000 (13:33 +0200)]
Use released version of infrautils

infrautils-1.8.0 has been released, use released version instead
of snapshots.

Change-Id: I2cdb4fa9052850621411571695c9f103c76b422a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoBump odlparent/yangtools/mdsal/controller 63/91663/3
Robert Varga [Sun, 26 Jul 2020 23:59:30 +0000 (01:59 +0200)]
Bump odlparent/yangtools/mdsal/controller

Adopt upstream versions:
- odlparent-7.0.5
- yangtools-5.0.5
- mdsal-6.0.4
- controller-2.0.3

Change-Id: I8c8be3249f6170b0c215f4fe06cd22fc327da2d8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoAdd INFO.yaml for ovsdb 59/91259/3
Anil Belur [Sun, 12 Jul 2020 01:36:17 +0000 (11:36 +1000)]
Add INFO.yaml for ovsdb

Signed-off-by: Anil Belur <abelur@linuxfoundation.org>
Change-Id: I89d483ef4c5b9c669fb8a971e438085a79c635d4
Signed-off-by: Chetan Arakere Gowdru <chetan.arakere@altencalsoftlabs.com>
3 years agoChange log level from ERROR to warn. 23/90923/3
Chetan Arakere Gowdru [Mon, 6 Jul 2020 05:13:14 +0000 (10:43 +0530)]
Change log level from ERROR to warn.

Description:
When a connection is termination by Peer, following log is logged at
error level causing to get captured in teardown making TC as failure.

Exception occurred while processing connection pipeline
io.netty.channel.unix.Errors$NativeIoException: readAddress(..) failed: Connection reset by peer

Change the log level from ERROR to warn as this exception is expected
during connection teardown and not making TC to mark as fail for this.

JIRA : OVSDB-496

Signed-off-by: Chetan Arakere Gowdru <chetan.arakere@altencalsoftlabs.com>
Change-Id: I82a585d4478f07e29f8b04600b7df95bb98c6d08
Signed-off-by: Chetan Arakere Gowdru <chetan.arakere@altencalsoftlabs.com>
3 years agoUsing MD-SAL .exists() API 61/89661/9
Chetan Arakere Gowdru [Mon, 11 May 2020 10:05:22 +0000 (15:35 +0530)]
Using MD-SAL .exists() API

Description:
Whenever we are performing read operations just to
check it's presence in DS, instead of doing such read,
we can make use of MD-SAL exist() API which provides better performance.

Enhanced INFO level Logging statements.

Signed-off-by: Chetan Arakere Gowdru <chetan.arakere@altencalsoftlabs.com>
Change-Id: Ie81f1be19e60af5081780bf0d43419ab433b9d4e
Signed-off-by: Chetan Arakere Gowdru <chetan.arakere@altencalsoftlabs.com>
3 years agoEliminate Duplicate Controller MD-SAL code 77/89577/7
Chetan Arakere Gowdru [Mon, 4 May 2020 07:27:33 +0000 (12:57 +0530)]
Eliminate Duplicate Controller MD-SAL code

With the MD-SAL migration done, there are now two almost identical
classes. Remove duplicate classes.

JIRA: OVSDB-495

Signed-off-by: Chetan Arakere Gowdru <chetan.arakere@altencalsoftlabs.com>
Change-Id: Idc6dd7198fb99d5f97f056c84f20659734dd8094
Signed-off-by: Chetan Arakere Gowdru <chetan.arakere@altencalsoftlabs.com>
3 years agoClean up MRI feature references 95/90595/1
Robert Varga [Tue, 23 Jun 2020 06:57:18 +0000 (08:57 +0200)]
Clean up MRI feature references

We should be referring to MRI features through ranges, fix that up.

Change-Id: Idede2bd4ebfa6bc8cb06e966adb68d662d2033d4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoFix NPE in disconnect path 60/90460/3
Robert Varga [Tue, 16 Jun 2020 16:23:04 +0000 (18:23 +0200)]
Fix NPE in disconnect path

We should not be touching instance identifier if the node does
not exist in connection manager. Fixes the following splat:

java.lang.NullPointerException: null
at org.opendaylight.ovsdb.southbound.OvsdbDataTreeChangeListener.disconnect(OvsdbDataTreeChangeListener.java:151) ~[bundleFile:?]
at org.opendaylight.ovsdb.southbound.OvsdbDataTreeChangeListener.onDataTreeChanged(OvsdbDataTreeChangeListener.java:103) ~[bundleFile:?]
at org.opendaylight.mdsal.binding.dom.adapter.BindingDOMDataTreeChangeListenerAdapter.onDataTreeChanged(BindingDOMDataTreeChangeListenerAdapter.java:37) ~[bundleFile:?]
at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.dataTreeChanged(DataTreeChangeListenerActor.java:83) [bundleFile:?]
at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.handleReceive(DataTreeChangeListenerActor.java:44) [bundleFile:?]

Change-Id: Ibabc7f5324742fce04bc6f02b54a1ead945b15cb
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoAvoid excessive ovsdb log statements 70/87370/2
Chetan Arakere Gowdru [Mon, 3 Feb 2020 08:31:11 +0000 (14:01 +0530)]
Avoid excessive ovsdb log statements

Signed-off-by: Chetan Arakere Gowdru <chetan.arakere@altencalsoftlabs.com>
Change-Id: Ifd12522cc4891fb01cde5cb2de5b5333e690f841

3 years agoIntegrate controller-2.0.2 09/90409/1
Robert Varga [Thu, 11 Jun 2020 21:45:28 +0000 (23:45 +0200)]
Integrate controller-2.0.2

This bumps versions to the following:
- odlparent-7.0.3
- yangtools-5.0.3
- mdsal-6.0.2
- controller-2.0.2

Change-Id: Ic9021658c58aaa3d0d40a858a6272f5e5b1fcbe1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoIntegrate controller-2.0.1 59/90159/1
Robert Varga [Sun, 31 May 2020 09:29:07 +0000 (11:29 +0200)]
Integrate controller-2.0.1

This bumps versions to the following:
- odlparent-7.0.2
- yangtools-5.0.2
- mdsal-6.0.1
- controller-2.0.1

Change-Id: I60bd9f78cde3f35e3b3c1d8a399e73c847b82f14
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoSet version to Aluminium 35/88735/2
Thanh Ha [Thu, 26 Mar 2020 19:54:56 +0000 (15:54 -0400)]
Set version to Aluminium

Signed-off-by: Thanh Ha <zxiiro@gmail.com>
Change-Id: Iab07ad88b9a8bb114d50d28f263d71749be06e17

4 years agoUpdate MRI projects for Aluminium 41/89541/2
Robert Varga [Fri, 1 May 2020 07:37:10 +0000 (09:37 +0200)]
Update MRI projects for Aluminium

This bumps versions to the following:
- odlparent-7.0.1
- yangtools-5.0.1
- mdsal-6.0.0
- controller-2.0.0

These updates imply that an unkeyed list cannot be deleted by
setting it to empty its parent node and issuing a merge() of that
parent node. This is used only in two places -- hence we update
them.

We also get access to proper Map view of keyed lists, which makes
a number of operations faster, as we can just defer to a lookup
instead of iterating of the entire list.

Finally features and build system is updated to not leak
javax.annotation and upstream bundles into runtime.

Change-Id: I78207959d9f62d79af83f57c859f5fbd393077aa
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoMD-SAL API integration 02/87802/21
xcheara [Fri, 14 Feb 2020 13:07:01 +0000 (18:37 +0530)]
MD-SAL API integration

Migrate all code to use MD-SAL APIs from the mdsal project, not controller.
Also remove dependencies on org.opendaylight.controller where not appropriate.

JIRA: OVSDB-487

Change-Id: I5ed9e800420887bc6b453f23eb77bcd54d9c27a9
Signed-off-by: Chetan Arakere Gowdru <chetan.arakere@altencalsoftlabs.com>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Signed-off-by: Chetan Arakere Gowdru <chetan.arakere@altencalsoftlabs.com>
4 years agoEnhance the McastMacsRemoteUpdateCommand to get the uuid from the device if not prese... 42/89042/5
Chandra Shekar S [Mon, 13 Apr 2020 10:57:47 +0000 (16:27 +0530)]
Enhance the McastMacsRemoteUpdateCommand to get the uuid from the device if not present in cache

This review is to :
1. Enhance the McastMacsRemoteUpdateCommand to get the uuid from the device if not present in cache
2. Minor refactors on the MacsCommands

Signed-off-by: Chandra Shekar S <chandra.shekar.s@ericsson.com>
Change-Id: I73f6114cacfd86c59301f098f4338125c32dc65d

4 years agomake sure ovsdb connected node appears in operds 58/88958/4
Chetan Arakere Gowdru [Wed, 8 Apr 2020 05:37:56 +0000 (11:07 +0530)]
make sure ovsdb connected node appears in operds

if the conected node does not appear in oper ds
disconnect the node, upon reconnection it may succeed in getting into
operds.

Signed-off-by: Chetan Arakere Gowdru <chetan.arakere@altencalsoftlabs.com>
Change-Id: I1091e0a1a644141467e6d4bda5a058af60110a62
Signed-off-by: Chetan Arakere Gowdru <chetan.arakere@altencalsoftlabs.com>
4 years agoFix delete of Logical_Switch for the "referential integrity violation" failure. 68/88968/4
Chandra Shekar S [Wed, 8 Apr 2020 08:50:31 +0000 (14:20 +0530)]
Fix delete of Logical_Switch for the "referential integrity violation" failure.

Currently the Logical_Switch delete is failing with "referential integrity violation" error as listed below
2020-04-13T05:27:36,854 | ERROR | hwvtep-waiting-job-0 | TransactInvokerImpl              | 403 - org.opendaylight.ovsdb.hwvtepsouthbound-impl - 1.11.0.SNAPSHOT | HWVTEP transaction operation failed referential integrity violation cannot delete Logical_Switch row 7392ce5a-1bf6-4951-a22e-740ac78aaa60 because of 9 remaining reference(s)
2020-04-13T05:27:36,855 | ERROR | hwvtep-waiting-job-0 | TransactInvokerImpl              | 403 - org.opendaylight.ovsdb.hwvtepsouthbound-impl - 1.11.0.SNAPSHOT | Failed transaction delete from Logical_Switchdelete from Ucast_Macs_Remotedelete from Ucast_Macs_Localdelete from Mcast_Macs_Remotedelete from Mcast_Macs_Local
2020-04-13T05:27:36,856 | ERROR | hwvtep-waiting-job-0 | TransactInvokerImpl              | 403 - org.opendaylight.ovsdb.hwvtepsouthbound-impl - 1.11.0.SNAPSHOT | Failed on second attempt too aborting the transaction org.opendaylight.ovsdb.hwvtepsouthbound.transact.LogicalSwitchRemoveCommand$1@575aaf7c
2020-04-13T05:27:36,857 | ERROR | hwvtep-waiting-job-0 | TransactInvokerImpl              | 403 - org.opendaylight.ovsdb.hwvtepsouthbound-impl - 1.11.0.SNAPSHOT | HWVTEP transaction operation failed referential integrity violation cannot delete Logical_Switch row 064cc69b-cce8-4f08-9478-9b82c6059cac because of 9 remaining reference(s)
2020-04-13T05:27:36,858 | ERROR | hwvtep-waiting-job-0 | TransactInvokerImpl              | 403 - org.opendaylight.ovsdb.hwvtepsouthbound-impl - 1.11.0.SNAPSHOT | Failed transaction delete from Logical_Switchdelete from Ucast_Macs_Remotedelete from Ucast_Macs_Localdelete from Mcast_Macs_Remotedelete from Mcast_Macs_Local
2020-04-13T05:27:36,858 | ERROR | hwvtep-waiting-job-0 | TransactInvokerImpl              | 403 - org.opendaylight.ovsdb.hwvtepsouthbound-impl - 1.11.0.SNAPSHOT | Failed on second attempt too aborting the transaction org.opendaylight.ovsdb.hwvtepsouthbound.transact.LogicalSwitchRemoveCommand$1@569e133b

The Logical_Switch reference will be present in other tables like Ucast_Macs_Remote, Pysical_Port and Ucast_Macs_Remote etc.
These should be deleted first when the Logical_Switch is going to be deleted.

Signed-off-by: Chandra Shekar S <chandra.shekar.s@ericsson.com>
Change-Id: Ic2b101368bd50f6494e357fa49ccf53e641a09a3

4 years agoNPE Exception while processing Interfaces 49/88449/8
Chetan Arakere Gowdru [Tue, 17 Mar 2020 02:38:50 +0000 (08:08 +0530)]
NPE Exception while processing Interfaces

Description: Its been observed that if the port is created first
followed by setting the external-ids, the termination points are
not updated properly with is external-ids.

Changes are done to cache the bridge Identifier and refer this cache
during interface-update is obtained for the port.

Signed-off-by: Chetan Arakere Gowdru <chetan.arakere@altencalsoftlabs.com>
Change-Id: I8e55733bccfa8dae013dda985678514e1ceb98d5
Signed-off-by: Chetan Arakere Gowdru <chetan.arakere@altencalsoftlabs.com>
4 years agoEnhance the use of cache in HwvtepDeviceInfo 27/88927/3
Chandra Shekar S [Tue, 7 Apr 2020 07:44:40 +0000 (13:14 +0530)]
Enhance the use of cache in HwvtepDeviceInfo

This review is to enhace the HwvtepDeviceInfo to use the Cache.
It has the following changes.
1. Enhanced to include the incoming update objects in the cache.
2. Check in the cache before deleting.
3. Update the cache when the updates are successfully submitted to db.

Signed-off-by: Chandra Shekar S <chandra.shekar.s@ericsson.com>
Change-Id: I70a923f2b58077e780b53c457b05bb2545a87d4f

4 years agoHwvtep minor refactor to getPhysicalLocator 01/88801/2
Chandra Shekar S [Mon, 30 Mar 2020 08:50:32 +0000 (14:20 +0530)]
Hwvtep minor refactor to getPhysicalLocator

Signed-off-by: Chandra Shekar S <chandra.shekar.s@ericsson.com>
Change-Id: I41147c1e6549c430572390cf0eee5d2a975de63c

4 years agoRetry mechanism for Hwvtep failed Transaction commands 41/88741/2
Chandra Shekar S [Fri, 27 Mar 2020 04:43:49 +0000 (10:13 +0530)]
Retry mechanism for Hwvtep failed Transaction commands

Signed-off-by: Chandra Shekar S <chandra.shekar.s@ericsson.com>
Change-Id: Ic15829836a316e1f21a0481089ae119cb38e60d1

4 years agoAvoid push the stale vlan to tor. 67/88767/3
Chandra Shekar S [Sun, 29 Mar 2020 07:31:16 +0000 (13:01 +0530)]
Avoid push the stale vlan to tor.

If the ls is not present on the tor, don't push the vlan for that ls

Signed-off-by: Chandra Shekar S <chandra.shekar.s@ericsson.com>
Change-Id: I2362f33eacac3a8cf39fe8d9f1668ce7477f31ad

4 years agoUse Magnesium controller 79/88679/4
Robert Varga [Wed, 25 Mar 2020 21:48:04 +0000 (22:48 +0100)]
Use Magnesium controller

As part of controller transition to being MRI, downgrade the version
used to Magnesium release. This will be bumped to Aluminium proper
during the MRI window.

Change-Id: I592a291a25924621e85a83c66b168ec9dfbdd307
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoProcessing Hwvtep/Ovsdb client only once 86/88586/3
Chandra Shekar S [Mon, 23 Mar 2020 10:11:17 +0000 (15:41 +0530)]
Processing Hwvtep/Ovsdb client only once

There are chances of same client is getting processed multiple times
and resulting in stale eos entry in one controller.

Due to this stale eos entry in controller1 if the device is getting
connected to controller2 it could not be processed as controller1 still
remains as eos leader for this device.

Ideally controller1 should have released its ownership when the device is
disconnected.

Signed-off-by: Chandra Shekar S <chandra.shekar.s@ericsson.com>
Change-Id: I3b8705d7c18358a1f5be78e5ec3b50055464c23f

4 years agoFix serviceutils dependency 46/88746/3
Robert Varga [Fri, 27 Mar 2020 08:47:45 +0000 (09:47 +0100)]
Fix serviceutils dependency

Use serviceutils-artifacts to get the right set of artifacts,
and bump it to 0.6.0-SNAPSHOT, as that is what Aluminium is using.

While we are at it, also centralize infrautils definitions.

Change-Id: I38c1ad81bffc23b521c2c07f36e0d76f0f6665a0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoUpgrade support for hwvtep reconciliation 33/88533/2
Chandra Shekar S [Wed, 18 Mar 2020 10:00:54 +0000 (15:30 +0530)]
Upgrade support for hwvtep reconciliation

Signed-off-by: Chandra Shekar S <chandra.shekar.s@ericsson.com>
Change-Id: I5ed959004ced1c4a4b22aea67ab11d3aab291daf

4 years agoHandle EOS Timeout for the Hwvtep Node addition. 54/88454/3
Chandra Shekar S [Tue, 17 Mar 2020 09:40:18 +0000 (15:10 +0530)]
Handle EOS Timeout for the Hwvtep Node addition.

If the Hwvtep Node is not added after the connection because of any error/exceptions ( ex: EOS) ,
add a job to disconnect hwvtep to the schedular so that the next iteration it could successed.

Signed-off-by: Chandra Shekar S <chandra.shekar.s@ericsson.com>
Change-Id: Ib805f1689f5f696c0df876f833a855da1e537e45

4 years agoBump versions by x.y.(z+1) 97/87997/1
jenkins-releng [Sat, 22 Feb 2020 04:30:16 +0000 (04:30 +0000)]
Bump versions by x.y.(z+1)

Signed-off-by: jenkins-releng <jenkins-releng@opendaylight.org>
Change-Id: I0ea20651c89d6db173f1e0872d4219e9e2895b6c

4 years agoSynchronize the HwvtepNode Delete and Add for connection flaps 55/86955/8
Chandra Shekar S [Thu, 16 Jan 2020 09:21:53 +0000 (14:51 +0530)]
Synchronize the HwvtepNode Delete and Add for connection flaps

Signed-off-by: Chandra Shekar S <chandra.shekar.s@ericsson.com>
Change-Id: I55cbd9324995d61cf9f8f83445f294bbe6f34b0b

4 years agoBump to odlparent-6.0.4/yangtools-4.0.6/mdsal-5.0.9 00/87000/2
Robert Varga [Thu, 16 Jan 2020 21:11:53 +0000 (22:11 +0100)]
Bump to odlparent-6.0.4/yangtools-4.0.6/mdsal-5.0.9

Pick up latest fixes and upgrades.

Change-Id: I30f1f4495e91a0b9c0f8a40ca107f48b154ceba1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoFix Hwvtep Port reconciliation to handle Physical_Port Delete and Add from switch 59/86859/2
Chandra Shekar S [Mon, 13 Jan 2020 07:19:43 +0000 (12:49 +0530)]
Fix Hwvtep Port reconciliation to handle Physical_Port Delete and Add from switch

JIRA: OVSDB-494

If the Hwvtep Physical_Port is deleted and added back, vlan bindings are not getting
pushed the switch in this case.
When the Hwvtep Physical_Port is deleted and added back, the uuid of the Port
will get changed, ODL is not handling this case properly as a result of it
vlan bindings are pushed to the switch.
This review is to fix this functionality and get the terminationpoint from the
cache instead of from db, in the reconcilePort.

Signed-off-by: Chandra Shekar S <chandra.shekar.s@ericsson.com>
Change-Id: I8a35c88a0945c320c1f89307223873067d0a6ff2

4 years agoEnhance Hwvtep Device TransactionHistory. 35/86835/2
Chandra Shekar S [Fri, 10 Jan 2020 05:28:27 +0000 (10:58 +0530)]
Enhance Hwvtep Device TransactionHistory.

JIRA: OVSDB-482

Currently the Hwvtep TransactionHistory is not collected for some of the important
hwvtep tables/objects like Global,PhysicalSwitch, Manager etc.
Collecting these information in the TransactionHistory will help in analyzing/debugging
the issue by looking at the karaf cli command instead of logging and looking at the switch.

Sample output
opendaylight-user@root>hwvtep:txlog -nodeid hwvtep://uuid/f800aea8-f7c7-4f61-ae71-fe8b5813bd25
Printing for Node :  hwvtep://uuid/f800aea8-f7c7-4f61-ae71-fe8b5813bd25
Fri Jan 10 06:12:08 UTC 2020 DEVICE ADD ClientConnected [port=58030]
Fri Jan 10 06:12:08 UTC 2020 DEVICE ADD Global : Row [columns={other_config=[other_config={}], switches=[switches=[ca786e4b-3355-423d-8bd2-c7645193e8d7]], _uuid=[_uuid=f800aea8-f7c7-4f61-ae71-fe8b5813bd25], managers=[managers=[7f75566c-6181-4059-b33f-dfd326bf3499]]}]
Fri Jan 10 06:12:08 UTC 2020 DEVICE ADD Physical_Switch : Row [columns={tunnels=[tunnels=[]], tunnel_ips=[tunnel_ips=[172.18.0.7]], other_config=[other_config={}], management_ips=[management_ips=[]], name=[name=s3], description=[description=OVS VTEP Emulator], _uuid=[_uuid=ca786e4b-3355-423d-8bd2-c7645193e8d7], ports=[ports=[d6b07d34-c924-430c-aaa2-c3679287adebe600b737-22ea-489a-9232-0d64ee787b43d724ca83-c192-46fa-8d71-fbcfbfffd5791d3a727f-4d37-466f-9e2c-06ffa006636c2ce0fec1-9231-4b31-ba6c-bec80ab8ca8f0939560b-02f1-4ce0-9ef5-db1cd8de4c9009a9235b-021f-4988-8c94-5173de4e56d7f8625113-f3ab-40fe-99eb-83709456e80d083feeec-a272-4d7f-a55d-04b126d9de43]], switch_fault_status=[switch_fault_status=[]]}]
Fri Jan 10 06:12:08 UTC 2020 DEVICE ADD Manager : Row [columns={is_connected=[is_connected=false], other_config=[other_config={ha_id=s3, ha_enabled=true}], max_backoff=[max_backoff=[]], _uuid=[_uuid=7f75566c-6181-4059-b33f-dfd326bf3499], inactivity_probe=[inactivity_probe=[]], target=[target=tcp:172.18.0.3:6640]}]

Signed-off-by: Chandra Shekar S <chandra.shekar.s@ericsson.com>
Change-Id: Ifeaa84087cb625004d6c27daeec8b04b04eb9ed0

4 years agoFix NPE in SouthboundUtils 23/86823/2
Chandra Shekar S [Thu, 9 Jan 2020 10:30:23 +0000 (16:00 +0530)]
Fix NPE in SouthboundUtils

JIRA: OVSDB-492

Add the null check to avoid the SouthboundUtils.compareDbVersionToMinVersion()
throwing the NPE.
By any chance if the method is getting triggered with one of the parameter as null,
throws the NPE.

Signed-off-by: Chandra Shekar S <chandra.shekar.s@ericsson.com>
Change-Id: Ibd29fe283fec7376baec56c0fbbb35529e157dbb

4 years agoOptimize the OvsdbPortUpdateCommand during the ODL reboot/Ovsdb connection 19/86819/3
Chandra Shekar S [Thu, 9 Jan 2020 06:41:18 +0000 (12:11 +0530)]
Optimize the OvsdbPortUpdateCommand during the ODL reboot/Ovsdb connection

JIRA: OVSDB-491

When the Compute is connected or flapped, ODL will retrieve all the Ovsdb
configuration from the Compute with MonitorCallBack and process the these configurations
and updates them into the topology operational datastore.
Currently OvsdbPortUpdateCommand will extract the port information that retrieved from
compute and update the same to topology operational datastore. Each port update is resulting in
one database operations.
In scale setup the number ports will be in big number and will result in huge number of
database operations to update these port informations.
It will give us the perfomance improvement if the number of database operations for the
port updates is done per bridge instead of per port, during Ovsdb connection.
This will reduce the number of db operations to number bridges instead of number of port

This review is collect all the Port create commands and update the datastore with
single merge on bridge node.

Signed-off-by: Chandra Shekar S <chandra.shekar.s@ericsson.com>
Change-Id: Ie3ab258fb665d40e92177b4435b1bd72c07fdb81

4 years agoUse seperate txn when quering multiple shards 20/86820/5
Chetan Arakere Gowdru [Thu, 9 Jan 2020 09:05:20 +0000 (14:35 +0530)]
Use seperate txn when quering multiple shards

Description:
The txn which been used for updating oper topo been also used to query
config topo. Changes done to use a new transaction while querying
different shards.

Signed-off-by: Chetan Arakere Gowdru <chetan.arakere@altencalsoftlabs.com>
Change-Id: I90befb242c47df2bcbdcb09b92708c20a97e78c0
Signed-off-by: Chetan Arakere Gowdru <chetan.arakere@altencalsoftlabs.com>
Signed-off-by: xcheara <chetan.arakere@altencalsoftlabs.com>
4 years agoAvoid unnecessary bridge Oper DS read 18/86818/5
Chetan Arakere Gowdru [Thu, 9 Jan 2020 07:03:00 +0000 (12:33 +0530)]
Avoid unnecessary bridge Oper DS read

Description:
Avoid uncessary bridge Oper DS read just to get the bridge-name during
termination-point create and delete. The bridge name is already
available in the termination point parent node-id(/bridge/br-int) from
which bridge name can get fetched out.

Ex: "node-id": "ovsdb://uuid/d6f5d855-cdae-4275-bf4f-a71ee6e24ca3/bridge/br-int"

Signed-off-by: Chetan Arakere Gowdru <chetan.arakere@altencalsoftlabs.com>
Change-Id: I420face0c628f118b14c5c213756075a199ea6fa
Signed-off-by: Chetan Arakere Gowdru <chetan.arakere@altencalsoftlabs.com>
Signed-off-by: xcheara <chetan.arakere@altencalsoftlabs.com>
4 years agoCheck for the SHARD Status before opening the OVSDB port/HwvtepSouthboundProvider... 29/83229/5
Chandra Shekar S [Wed, 24 Jul 2019 09:49:01 +0000 (15:19 +0530)]
Check for the SHARD Status before opening the OVSDB port/HwvtepSouthboundProvider intialization.

JIRA: OVSDB-484

Currently the HwvtepSouthboundProvider is intialized and the Ovsdb port is opened.
As soon as the Ovsdb port is opened the tors will connected to the HwvtepSouthboundPlugin.
The HwvtepSouthboundPlugin will process the connected tors and tries to build the topology operational
and further the topology config and tries to update these datastores.
If the topology SHARDs are not up or the SHARD leaders are not elected by this time, it ends up in the
exceptions while updating the datastores and the operational and config datastores will not be populated
with the expected data.

The fix is check for the topology config and operational SHARDs status up and Leaders for these are
elected and then initialize HwvtepSouthboundProvider and start Ovsdb port when they are up.

Signed-off-by: Chandra Shekar S <chandra.shekar.s@ericsson.com>
Change-Id: Ia8599b9ed9cc3d5afbdb29a951cebee01c15ddbe

4 years agoLookup up bridge in old bridges when the port is removed 88/86188/9
Robert Varga [Wed, 4 Dec 2019 14:50:14 +0000 (15:50 +0100)]
Lookup up bridge in old bridges when the port is removed

Updated bridges may be empty, in which case we do want to fall
back to the old bridge data to pick up the old bridge data --
otherwise we would end up looking up the wrong thing.

JIRA: OVSDB-413
Change-Id: I289314481595a38911f06c0ba1fe659896cb53e8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoOptimization to read the OvsdbNode from the cache. 77/85177/7
Chandra Shekar S [Wed, 16 Oct 2019 13:55:32 +0000 (19:25 +0530)]
Optimization to read the OvsdbNode from the cache.

JIRA: OVSDB-488

Currently in the OvsdbSouthboudn plugin reads the OvsdbNode from the datastore.
Reading the OvsdbNode from the datastore ineffecient.

This review is avoid the OvsdbNode reads from the datastore and get it from the cache.
If the node is not present in the cache, then read from datastore.

Signed-off-by: Chandra Shekar S <chandra.shekar.s@ericsson.com>
Change-Id: I1e26fa83d0edea45b39c44267488335eea75eb37

4 years agoConstrain TypedDatabaseSchema proxy argument 99/86199/19
Robert Varga [Wed, 4 Dec 2019 20:36:58 +0000 (21:36 +0100)]
Constrain TypedDatabaseSchema proxy argument

We do not operate on any old interface, arguments need to extend
TypedBaseType -- capture that in the API contract.

Change-Id: I978332ef5e0485763b8e04461aaaf12a00891466
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoMake sure TransactionInvokerImpl chain is properly protected 80/86280/15
Robert Varga [Fri, 6 Dec 2019 21:08:28 +0000 (22:08 +0100)]
Make sure TransactionInvokerImpl chain is properly protected

TransactionChains require single-threaded access, most notably
their close() contract requires that there be no outstanding
transactions.

There is a slight possibility of us violating this contract by
invoking close() while there is some command processing going
on.

Make sure we are properly synchronized when invoking the close()
call.

Change-Id: Idacc7096af448dc3a935ca3aa7ea2452bbd0135e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoIsolate TransactionInvokerImpl.executeCommand() 79/86279/14
Robert Varga [Fri, 6 Dec 2019 20:35:31 +0000 (21:35 +0100)]
Isolate TransactionInvokerImpl.executeCommand()

This is a chunk of logic which is independent of its surroundings,
but requires proper locking.

JIRA: OVSDB-428
Change-Id: I7db00574a50955e3bf3531cea23ba85b80e11bdb
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoEliminate TransactionInvokerImpl.transactionToCommand 78/86278/11
Robert Varga [Fri, 6 Dec 2019 20:58:39 +0000 (21:58 +0100)]
Eliminate TransactionInvokerImpl.transactionToCommand

This map holds Transaction->Command mapping, but it is always
accessed from a context which directly operates on
pendingTransactions queue.

Eliminate the need for lookups (and general HashMap overhead)
by making pendingTransactions hold a pair of transaction/command.

JIRA: OVSDB-428
Change-Id: Ic3040f770a2b3391e188b3ffa7a693776d0058b7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoUse ArrayDeque for TransactionInvokerImpl.pendingTransactions 45/86245/26
Robert Varga [Thu, 5 Dec 2019 21:41:22 +0000 (22:41 +0100)]
Use ArrayDeque for TransactionInvokerImpl.pendingTransactions

Rework the copy logic to operate on pure Iterator, disconnecting us
from the List API. This makes the choice of interface/implementation
a much broader one -- and pick Queue/ArrayDeque. It is a much better
structure for the job at hand.

JIRA: OVSDB-428
Change-Id: I22a4da6f4194d10e0932470bf2054441a9c1d3c1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoFix transaction replay logic 69/86269/15
Robert Varga [Fri, 6 Dec 2019 13:53:44 +0000 (14:53 +0100)]
Fix transaction replay logic

After adding disambiguation (previous patch), it clear there is
a day-0 Obi-Wan bug in the code, which would cause the last
command to not be replayed.

Looking at the pending queue, if the transaction failing is second,
the second and third transactions should be replayed, not just
the second.

JIRA: OVSDB-428
Change-Id: Ifbdf5ba8bad5be6103e4666d95afd615ae7d1ab9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoDisambiguate TransactionInvokerImplTest assertion 77/86277/8
Robert Varga [Fri, 6 Dec 2019 19:56:47 +0000 (20:56 +0100)]
Disambiguate TransactionInvokerImplTest assertion

Do not reuse mock objects for transactions, as that means we are
asserting that one them is replayed, except that we want to be
asserting that the last transaction was replayed.

JIRA: OVSDB-428
Change-Id: If7bf37edb46cd2ce155325e257cf1a891f8b2bf5
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoCleanup TransactionInvokerImplTest 68/86268/10
Robert Varga [Fri, 6 Dec 2019 13:28:14 +0000 (14:28 +0100)]
Cleanup TransactionInvokerImplTest

This unit test is overly whiteboxish, to the point it mocks internal
TransactionInvokerImpl structures. Refactor the test, exposing proper
@VisibleForTesting methods so that we do not end up modifying/mocking
structure access, but rather observe state transitions.

JIRA: OVSDB-428
Change-Id: I26b5c258b385ff1cfad34ff7d19a9589979ec4d7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoEliminate TransactionInvokerImpl.successfulTransactionQueue 44/86244/16
Robert Varga [Thu, 5 Dec 2019 21:12:31 +0000 (22:12 +0100)]
Eliminate TransactionInvokerImpl.successfulTransactionQueue

This queue is actually just a hand-off between the datastore callback
thread and the central thread. There is no need for such a queue, as
we can just properly synchronize access to the critical structures.

JIRA: OVSDB-428
Change-Id: Idba05aebfa7fd35dbdb706b8bfef03e3e03d7772
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoUse properties to control install/deploy plugins 39/86739/1
Robert Varga [Mon, 6 Jan 2020 11:55:09 +0000 (12:55 +0100)]
Use properties to control install/deploy plugins

Rather than using full plugin configuration, just drop in properties
to control them.

Change-Id: If17d7d419e0f69d770e1cb8b39ca34ea09e036ea
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoUpgrade support of ovsdb reconciliation 72/82772/7
Chetan Arakere Gowdru [Fri, 28 Jun 2019 11:08:08 +0000 (16:38 +0530)]
Upgrade support of ovsdb reconciliation

Description:
When Upgrade in process, the config DS may not be fully populated when
reconciliaiton is triggered. This will result in uncessaary deletion on tunnels
(as config and oper DS are compared and delta changes will be pushed to switch).
Changes are done to postpone the reconcilaiton task until upgrade flag is set to false.

Testing Steps.

1) Karaf up and running and tunnels created.
2) Set upgade flag to true.
PUT http://localhost:8181/restconf/config/odl-serviceutils-upgrade:upgrade-config
{
  "upgrade-config": {
    "upgradeInProgress": true
  }
}
3) Close karaf terminal(kill karaf process)
4) Don’t clear data/instance/journal/snapshots
5) del-manager on switches and delete tunnels manually on switches.
6) Start karaf and wait DPN connects.
7) Check the tunnel are not recreated by reconciliation process.
8) Set upgradeInProgress=false and check the tunnels re-created back

Change-Id: Id6cc8e1a3aa5e139597fa3071d536e1f5ac0802f
Signed-off-by: Chetan Arakere Gowdru <chetan.arakere@altencalsoftlabs.com>
Signed-off-by: xcheara <chetan.arakere@altencalsoftlabs.com>
4 years agoNaming Anonymous Threads in OVSDB 52/85752/6
xcheara [Fri, 1 Nov 2019 23:14:55 +0000 (04:44 +0530)]
Naming Anonymous Threads in OVSDB

JIRA : OVSDB-454

Description:
There are few Anonymous Threads created in OVSDB. It will be difficult to
identify which component created these threads based on the logs
available.

Changes done to provide proper Name to these Threads when created which
helps to easily identify the component owner of such threads.

Signed-off-by: xcheara <chetan.arakere@altencalsoftlabs.com>
Change-Id: I061abd449f81c7cc2c7c847cb1a0f82d62d7e654
Signed-off-by: xcheara <chetan.arakere@altencalsoftlabs.com>
4 years agoRemove powermock overrides 46/86446/1
Robert Varga [Mon, 16 Dec 2019 23:43:52 +0000 (00:43 +0100)]
Remove powermock overrides

powermock should now be working out of the box, allowing us to
minimize dependencies.

Change-Id: I1d9d7541f46b68cfd026a768feedfdf2f0865c9d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>