ovsdb.git
4 years agoMove ObjectMapper to JsonRpcEndpoint 29/86129/2
Robert Varga [Fri, 29 Nov 2019 09:08:26 +0000 (10:08 +0100)]
Move ObjectMapper to JsonRpcEndpoint

JSON mapping is an implementation detail of JsonRpcEndpoint, hence
move it to that class, allowing us to shed a field and statically
bind to it.

Change-Id: Ie0a314b3aa6c830d9cc5936eb4ec948823ba351c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 6ea8a455e8f3e1a2a099be256f97257a82dde409)

4 years agoImprove schemas population 28/86128/2
Robert Varga [Thu, 28 Nov 2019 20:52:24 +0000 (21:52 +0100)]
Improve schemas population

Fetching the schema is an asynchronous process, which means we could
end up with competing requests overwriting the schema. Make sure to
re-check presence when the resolution process completes.

Change-Id: I0a7076b7a476394d4815f3c8f544be7a9ffaddd8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 0faae677b33efe1dd5bec783f8e57c5c0a10cdc4)

4 years agoRemove use of deprecated Guava methods 38/86138/1
Robert Varga [Mon, 8 Apr 2019 23:16:05 +0000 (01:16 +0200)]
Remove use of deprecated Guava methods

Pass down MoreExecutors.directExecutor() to future-proof the code.

Change-Id: Iaf847f2dbcce63bac685d5a22a35fc9b8085d06d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 2630eeeadf852d4327d9990f59e8c87d13c5e30e)

4 years agoTurn JsonRpcEndpoint into a proper OvsdbRPC implementation 27/86127/1
Robert Varga [Thu, 28 Nov 2019 13:39:59 +0000 (14:39 +0100)]
Turn JsonRpcEndpoint into a proper OvsdbRPC implementation

The Netty wiring and invocation handling is quite arcane here, relying
mostly on reflection to perform dispatch.

There is only a single direct user JsonRpcEndpoint, which expects
a OvsdbRPC to be exposed from it. Furthermore it is obvious that
JsonRpcEndpoint has a 1:1 correspondence with JsonRpcServiceBinderHandler
and that the invocation context used to pass request processing relies
on Netty Channel instance -- to which the JsonRpcEndpoint is already
bound.

This integrates JsonRpcServiceBinderHandler into JsonRpcEndpoint,
thus making the fusion obvious, eliminating the need to pass Object
context between the two.

Furthermore we eliminate JsonRpcEndpoint.getClient() and opt to make
JsonRpcEndpoint implement OvsdbRPC, providing a very clear connection
between the two and completely eliminating use of reflection in the
process.

Change-Id: I1cfcf784330fdf6e30a55fcaff6f5bd716d987e3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit fc3bf4c16d4bd71512ca991fcfc95d804c73c05e)

4 years agoReuse ObjectMapper across all connections 54/86054/1
Robert Varga [Thu, 28 Nov 2019 12:59:02 +0000 (13:59 +0100)]
Reuse ObjectMapper across all connections

ObjectMapper is documented to be safe for sharing, make sure we
reuse a single instance across all connections.

Change-Id: Ia3ebbe1eb4772efaa1f68c0b0d4ee721431325b0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 4d598cffc88333c551be88e45cef27f932b800bf)

4 years agoUse a constant ObjectMapper in UpdateNotificationDeser 53/86053/1
Robert Varga [Thu, 28 Nov 2019 12:57:04 +0000 (13:57 +0100)]
Use a constant ObjectMapper in UpdateNotificationDeser

Rather than instantiating a fresh mapper for each request,
share a single pre-configured instance.

Change-Id: I231165f82dc950ae9e3adbfb816da123139cc878
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 4402e56b96f9d64e23efec322c42e6d2d7d5f3bb)

4 years agoUse proper constant in JsonUtils 52/86052/1
Robert Varga [Thu, 28 Nov 2019 12:49:05 +0000 (13:49 +0100)]
Use proper constant in JsonUtils

We are not using the Mapper here at all, just the writer. Make sure
we retain only the writer and make it a proper constant (to allow
JIT to do constant propagation).

Change-Id: I7df2a6234511c9dbf51509c495a59e642173fffe
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 7b32c396b165fbecd707afb0d8753885816eaeed)

4 years agoDo not reconfigure ObjectMapper in FutureTransformUtils 51/86051/1
Robert Varga [Thu, 28 Nov 2019 12:45:04 +0000 (13:45 +0100)]
Do not reconfigure ObjectMapper in FutureTransformUtils

This is a shared ObjectMapper, which will be reconfigured on first
access -- we can do that upfront and save some cycles from the fast
path.

Change-Id: Ibdf27ff194350b96ee6aadeaa9725d4cfdc6e9db
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit d2410c0a3da59dfa11f03a74bc01f252db4894a5)

4 years agoBump odlparent/yangtools/mdsal to 4.0.14/2.1.14/3.0.13 07/85907/2
Robert Varga [Thu, 21 Nov 2019 03:35:14 +0000 (04:35 +0100)]
Bump odlparent/yangtools/mdsal to 4.0.14/2.1.14/3.0.13

Adopts upstream upgrades and fixes.

Change-Id: I14c1f3f3420f20c5a0dc090fb4941e3435afd812
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoBump to odlparent-4.0.13/yangtools-2.1.13/mdsal-3.0.7 55/85255/3
Robert Varga [Sun, 20 Oct 2019 08:22:27 +0000 (10:22 +0200)]
Bump to odlparent-4.0.13/yangtools-2.1.13/mdsal-3.0.7

This picks up latest upgrades and fixes.

Change-Id: Ic268f6fa4ccd963af771c39dbcf6a5b455e353b5
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoFix checkstyle 70/85270/2
Robert Varga [Sat, 14 Sep 2019 06:49:02 +0000 (08:49 +0200)]
Fix checkstyle

This fixes up checkstyle violations.

Change-Id: I7ee4391b58eef76954157deb11b611a3837d0960
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 27d66a4602fca44386e6ab733b3d7748f9120b11)

4 years agoDo not use Foo.toString() when logging 01/85401/1
Robert Varga [Mon, 28 Oct 2019 07:25:36 +0000 (08:25 +0100)]
Do not use Foo.toString() when logging

This was spotted in a JFR run, where JsonRpcEndpoint would consume
a lot of CPU formatting a logging object. Eliminate calls to toString()
in logging arguments, as the framework will call these when really
needed.

Change-Id: Id077c285074c1fd8012539ab7c144ddc4b286376
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 10119331189066c009db4f0000a39ae586cc164c)

4 years agoBump versions by x.y.(z+1) 15/84115/1
jenkins-releng [Sat, 31 Aug 2019 12:44:16 +0000 (12:44 +0000)]
Bump versions by x.y.(z+1)

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

4 years agoCleanup OvsdbDataTreeChangeListener 15/81915/2
Robert Varga [Thu, 15 Nov 2018 07:41:42 +0000 (08:41 +0100)]
Cleanup OvsdbDataTreeChangeListener

This patch restructures the logic a bit, so that it does not invoke
getData{After,Before}() multiple times, fixing Eclipse warnings and
improving performance.

Furthermore augmentation handling is refactored so that the two
cases (node/bridge) are handled in an if cascade, preserving type
safety.

Finally updateConnections() is refactored to use a switch statement
instead of multiple if conditions, which shows that delete of the
entire node are not handled -- a FIXME is placed there.

Change-Id: If5663ebd2944d7fe83c4928b96cedc0db0f90e19
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoOVSDB-486 Fix Null Pointer Exception in OVSDB 43/83343/1
Nobin Mathew [Tue, 11 Sep 2018 06:06:10 +0000 (11:36 +0530)]
OVSDB-486 Fix Null Pointer Exception in OVSDB

Fix for Null Pointer Exception

Change-Id: I93227ab66df4529a9b8c127c4b41096335424cc3
Signed-off-by: Nobin Mathew <nobin.mathew@ericsson.com>
(cherry picked from commit cfab9e1aefdd0c7bdb09770309f8ad05c4c2c6ce)

4 years agoBump mdsal to 3.0.10 21/83121/1
Robert Varga [Thu, 18 Jul 2019 13:38:51 +0000 (15:38 +0200)]
Bump mdsal to 3.0.10

This brings in latest fixes/improvements.

Change-Id: Ida49ef543f765fd8f828761d7804e5b51a93b1b3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoBump mdsal to 3.0.9 45/82845/1
Robert Varga [Mon, 1 Jul 2019 07:45:13 +0000 (09:45 +0200)]
Bump mdsal to 3.0.9

This picks up latest fixes and improvements.

Change-Id: Ibb5923791ec576d6cb50bfb3a2a6078a129ff85b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoBump odlparent to 4.0.11 44/82844/1
Robert Varga [Mon, 1 Jul 2019 07:45:01 +0000 (09:45 +0200)]
Bump odlparent to 4.0.11

This adopts latest upgrades.

Change-Id: Ib05b5e506f5c64aadd6bdb90e7cd52922590486d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoUpdate docs/ovsdb-user-guide.rst and README 11/82411/1
Yi Yang [Wed, 5 Jun 2019 03:10:48 +0000 (23:10 -0400)]
Update docs/ovsdb-user-guide.rst and README

odl-ovsdb-openstack has been moved to netvirt and changed as
odl-netvirt-openstack, so update it to reflect current status.

JIRA: OVSDB-480

Change-Id: Ied1268898d0adc63894250b9733a974140bc31c4
Signed-off-by: Yi Yang <yangyi01@inspur.com>
5 years agoBump versions by x.y.(z+1) 63/82063/1
jenkins-releng [Wed, 15 May 2019 00:05:52 +0000 (00:05 +0000)]
Bump versions by x.y.(z+1)

Change-Id: Ide65c36ab0b861c01150d4ed72b779f0e3bfca73
Signed-off-by: jenkins-releng <jenkins-releng@opendaylight.org>
5 years agoBump mdsal to 3.0.8 52/81752/1
Robert Varga [Wed, 24 Apr 2019 13:22:49 +0000 (15:22 +0200)]
Bump mdsal to 3.0.8

This brings in latest fixes and enhancements.

Change-Id: Iad3c8fa712dbc1ba69482772b239d2c109600823
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoBump odlparent to 4.0.10 51/81751/1
Robert Varga [Wed, 24 Apr 2019 13:22:31 +0000 (15:22 +0200)]
Bump odlparent to 4.0.10

This brings in latest updates.

Change-Id: I4948552c56b68eae24d7ac1985a7bc8addb2bd9b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoBump versions by x.y.(z+1) 73/80973/1
jenkins-releng [Mon, 18 Mar 2019 22:21:52 +0000 (22:21 +0000)]
Bump versions by x.y.(z+1)

Change-Id: I107b54a9bde9a10862ee496874b355a6767952d7
Signed-off-by: jenkins-releng <jenkins-releng@opendaylight.org>
5 years agoRemove useless tests 09/80209/1
Robert Varga [Thu, 7 Feb 2019 13:38:48 +0000 (14:38 +0100)]
Remove useless tests

These tests are not asserting anything at all, remove them to reduce
static mocking proliferation for no value whatsoever.

Change-Id: I53b21da97d7b9c7cf6e64543e6fe73f2c08267e9
JIRA: OVSDB-476
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 4a6fd54eedf2f7275d43ac4da351b5c3abf8302d)

5 years agoUpdate .gitreview to stable/neon 15/80115/1
jenkins-releng [Fri, 1 Feb 2019 22:43:45 +0000 (22:43 +0000)]
Update .gitreview to stable/neon

Change-Id: I3380ecb1b1aeea57ed7e76afb66159a57a8cf235
Signed-off-by: jenkins-releng <jenkins-releng@opendaylight.org>
5 years agoRemove duplicate artifact declarations 35/80035/3
Robert Varga [Wed, 30 Jan 2019 16:19:53 +0000 (17:19 +0100)]
Remove duplicate artifact declarations

This fixes a few maven warnings about artifacts being declared
multiple times.

Change-Id: Ib6a7a31931883009868f6e4150a8cb0ed5718fd6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoutils: migrate to the mdsal DataBroker 93/79993/2
Stephen Kitt [Tue, 29 Jan 2019 14:56:45 +0000 (15:56 +0100)]
utils: migrate to the mdsal DataBroker

This duplicates controller-based classes temporarily, so that we can
migrate hwvtepsouthbound and southbound separately.

Change-Id: I1ed7c137423deb149320df86f0abc090e1182df5
Signed-off-by: Stephen Kitt <skitt@redhat.com>
5 years agolibrary: migrate to the mdsal DataBroker 88/79988/2
Stephen Kitt [Tue, 29 Jan 2019 10:02:25 +0000 (11:02 +0100)]
library: migrate to the mdsal DataBroker

Change-Id: I0540965fe40521dd2d18e2206fb2bb874e2f1e72
Signed-off-by: Stephen Kitt <skitt@redhat.com>
5 years agoAdd missing annotation dependencies for Java 11 98/79998/1
Stephen Kitt [Tue, 29 Jan 2019 17:34:23 +0000 (18:34 +0100)]
Add missing annotation dependencies for Java 11

Change-Id: I552dc74b2bb6832cc5419f309470a43430294443
Signed-off-by: Stephen Kitt <skitt@redhat.com>
5 years agouse annotations instead of XML for Blueprint 82/79782/6
Harshini [Mon, 21 Jan 2019 08:40:49 +0000 (14:10 +0530)]
use annotations instead of XML for Blueprint

JIRA: OVSDB-474
Change-Id: Ie40dacf4b4a745d77d83bdc7e1b95fecad4fd276
Signed-off-by: Harshini <hm@luminanetworks.com>
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
5 years agoBump to mdsal 3.0.6 07/79807/1
Stephen Kitt [Tue, 22 Jan 2019 08:50:39 +0000 (09:50 +0100)]
Bump to mdsal 3.0.6

Change-Id: Id4a938a3e8d8669b972df17ddf1d76f91ca686d0
Signed-off-by: Stephen Kitt <skitt@redhat.com>
5 years agoBump mdsal to 3.0.5 87/79787/1
Robert Varga [Mon, 21 Jan 2019 09:25:09 +0000 (10:25 +0100)]
Bump mdsal to 3.0.5

This aligns with odlparent-4.0.9 and yangtools-2.1.8.

Change-Id: I1800398e0f1cfbfc263164ea6eff878423d31b98
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoBump to odlparent 4.0.9 75/79675/1
Stephen Kitt [Fri, 18 Jan 2019 15:33:50 +0000 (16:33 +0100)]
Bump to odlparent 4.0.9

Change-Id: Iabeeaae5001bb0fba3c84d22cedd82444b60f7b8
Signed-off-by: Stephen Kitt <skitt@redhat.com>
5 years agoBump mdsal to 3.0.4 37/79437/1
Robert Varga [Thu, 10 Jan 2019 15:53:07 +0000 (16:53 +0100)]
Bump mdsal to 3.0.4

This realigns odlparent/yangtools/mdsal and brings in the latest
improvements.

Change-Id: I6db0663fcf132b9e01839c2cc14dc611ea75aa60
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoBump odlparent to 4.0.8 22/79122/3
Stephen Kitt [Wed, 2 Jan 2019 10:24:57 +0000 (11:24 +0100)]
Bump odlparent to 4.0.8

Change-Id: Ieee47dc9a810d99311bb1bfdeedc71655a612cab
Signed-off-by: Stephen Kitt <skitt@redhat.com>
5 years agoFix controller for ptcp manager 29/79229/1
Vishal Thapar [Fri, 4 Jan 2019 12:51:53 +0000 (18:21 +0530)]
Fix controller for ptcp manager

If a ptcp manager is set on OVS, we configure
controller through conneciton info. There are two
issues with this code today:

1. Doesn't work well for IPv6.
2. Doesn't check if connection is to same port
   as configured in ptcp manager.

So we end up with an improper controller configured
basde on ptcp even if we already configured correct
ones from manager entries.

JIRA: OVSDB-475

Change-Id: Ic69be0a9a6f2fd96085b60cdc3ccb9f1022b54a8
Signed-off-by: Vishal Thapar <vthapar@redhat.com>
5 years agoMigrate NumberUtils.isNumber() 79/79179/1
Robert Varga [Thu, 3 Jan 2019 14:14:08 +0000 (15:14 +0100)]
Migrate NumberUtils.isNumber()

This method is deprecated, use its replacement, isCreatable().

Change-Id: I47a6dc48e5da306f8a1c2fa2e0a19ca034756c28
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoRemove use StringUtils 75/79175/1
Robert Varga [Thu, 3 Jan 2019 13:20:24 +0000 (14:20 +0100)]
Remove use StringUtils

Guava provides equivalent functionality, use that instead of
commons-lang3.

Change-Id: Ide5fb6606ea51d6a65518e5e57422b11c259d86a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoBump mdsal to 3.0.3 28/79028/2
Robert Varga [Mon, 24 Dec 2018 17:50:29 +0000 (18:50 +0100)]
Bump mdsal to 3.0.3

This brings in latest fixes and alignes with odlparent-4.0.5.

Change-Id: I4626267cb5d322378e87b82045dd4f080a747e35
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoBump to odlparent 4.0.5 20/78920/2
Stephen Kitt [Fri, 21 Dec 2018 09:11:21 +0000 (10:11 +0100)]
Bump to odlparent 4.0.5

Change-Id: Ib2f5fd0e462e8a1efdefc2e4e94acc109c688c19
Signed-off-by: Stephen Kitt <skitt@redhat.com>
5 years agoUse targeted node type for bridge name search 21/77721/2
Stephen Kitt [Tue, 13 Nov 2018 13:31:20 +0000 (14:31 +0100)]
Use targeted node type for bridge name search

The IdentifiableItem we're looking for when checking for a bridge name
is Node; this changes isBridgeOnOvsdbNode() to look for that
directly. If also changes toString() to a match-specific method to
avoid the temptation to use it for other purposes.

Change-Id: Ib20e2c909098af9e0643f12805d98c5f2a66b651
JIRA: OVSDB-470
Signed-off-by: Stephen Kitt <skitt@redhat.com>
5 years agoreduce object allocation in SouthboundUtils.isBridgeOnOvsdbNode() 19/77719/2
Michael Vorburger [Tue, 13 Nov 2018 11:08:33 +0000 (12:08 +0100)]
reduce object allocation in SouthboundUtils.isBridgeOnOvsdbNode()

By avoiding any unnecessary toString() usage, but unfortunately not
being able to complete avoid it, without further/bigger/riskier changes.

This should help to reduce GC churn.

JIRA: OVSDB-470
Change-Id: I86cdba3c138a79b428acf960a2ddb035f2878ca9
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
5 years agoBump to mdsal-3.0.2 51/78151/3
Robert Varga [Mon, 26 Nov 2018 09:29:09 +0000 (10:29 +0100)]
Bump to mdsal-3.0.2

This bumps the dependency to 3.0.2.

Change-Id: I4ab38f4dce8983e310430328c4367c732a5af3ae
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoFixes overwrite when adding termination point 21/78221/3
Tim Rozet [Tue, 27 Nov 2018 16:44:53 +0000 (11:44 -0500)]
Fixes overwrite when adding termination point

A race condition was observed where OVSDB had already added the VTEP TP
to br-int, and following this Netvirt ELAN Manager added the patch port
(br-ex-patch) to br-int. Upon ELAN manager adding this using
SouthboundUtils addTerminationPoint, the previous VTEP was deleted. This
change modifies the addTerminationPoint to use a merge in MDSAL rather
than a put.

JIRA: OVSDB-472

Change-Id: I2afa7dc33ef915856774f431dd4c3d9bcd029155
Signed-off-by: Tim Rozet <trozet@redhat.com>
5 years agoLog the address and port on bind errors 51/78251/1
Stephen Kitt [Wed, 28 Nov 2018 10:01:47 +0000 (11:01 +0100)]
Log the address and port on bind errors

This ensures the address and port are available in the logs when we
fail to bind.

Change-Id: Iae6a6fd4d6f516d5dbd562a335d081181cff3b17
JIRA: OVSDB-473
Signed-off-by: Stephen Kitt <skitt@redhat.com>
5 years agoFix ovsdb compilation 78/77578/1
Robert Varga [Wed, 7 Nov 2018 11:51:03 +0000 (12:51 +0100)]
Fix ovsdb compilation

southbound-impl relied on getting its dependencies transitively:
- sal-binding-api via aaa
- mdsal-dom-api via sal-core-api

Fix this up by specifying correct dependencies.

Change-Id: Iba60e8978c29a82f77c42d7ce1ee6052613fdcea
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoInject the certificate manager in the constructor 47/76947/3
Stephen Kitt [Fri, 12 Oct 2018 10:06:53 +0000 (12:06 +0200)]
Inject the certificate manager in the constructor

This simplifies wiring in other contexts (e.g. with Blueprint
annotations or Guice).

Change-Id: If76dae1ec26d3ef3e3488788b6a5b77d99bb70a1
Signed-off-by: Stephen Kitt <skitt@redhat.com>
5 years agoUpgrade to Neon base platform 89/76389/17
Vishal Thapar [Thu, 20 Sep 2018 15:08:36 +0000 (20:38 +0530)]
Upgrade to Neon base platform

This reverts the PowerMock and Mockito upgrades for the time being.

Change-Id: I46d935fed3ef44dede188ffd25295586010cc8a2
Signed-off-by: Vishal Thapar <vthapar@redhat.com>
Signed-off-by: Stephen Kitt <skitt@redhat.com>
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoUpdate docs header to Neon on master 88/76888/2
Daniel Farrell [Thu, 11 Oct 2018 15:40:32 +0000 (15:40 +0000)]
Update docs header to Neon on master

This version name gets rendered into the main header of OVSDB's docs.

Now that these docs have moved from the docs repo to project-owned
repos, projects need to update this version themselves.

Should be Neon on master and Fluorine on stable/fluorine.

Change-Id: I82a4bffc06a894bbc643c496c0471f3fe413a280
Jira: DOCS-112
Signed-off-by: Daniel Farrell <dfarrell@redhat.com>
5 years agoClose old OVSDB connection when ping fails 30/75430/4
Victor Pickard [Thu, 23 Aug 2018 17:09:13 +0000 (13:09 -0400)]
Close old OVSDB connection when ping fails

When rebooting a compute node, the ovsdb hostconfig is missing
from oper d/s.

The change resolves the issue, by closing the connection if
the ping/echo fails. The ping/echo is triggered when a new
connection comes in.

What was happening before this change, is that the new
connection from the rebooted compute node would be rejected
and closed, because the code saw an existing connection, and
had not yet "closed" the old connection, which would fail later,
about 3 seconds later.

Tested this with queens/oxygen by manually rebooting compute node
(sudo shutdown -r now) a number of times.

Many more details in the JIRA.

JIRA: OVSDB-444

Change-Id: I0c7e53b032fd53d0287bc28ae86f7ebda06cfabe
Signed-off-by: Victor Pickard <vpickard@redhat.com>
5 years agofix broken build 28/76828/1
Michael Vorburger [Wed, 10 Oct 2018 16:56:13 +0000 (18:56 +0200)]
fix broken build

due to today's I4f16674ba65f499944e4582fb900d90e873d14e2 (INFRAUTILS-51)

by using the new TestSystemReadyMonitor from infrautils ready
introduced in I545195b1b976f5951d2dc8e9599e7ab33bc407e9

Change-Id: I42cd734fa8df276b52112139b244b5846b6d7ba9
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
5 years agoavoid any extra memory allocation in Version.fromString() 90/76290/2
Michael Vorburger [Thu, 20 Sep 2018 03:34:38 +0000 (05:34 +0200)]
avoid any extra memory allocation in Version.fromString()

as this is called a lot, it's (apparently, Java Mission Control on a
scale lab test shows) worth it to avoid the RegExp Matcher and x3
intermediate String object allocations, which we can safe here by
implementing this a little smarter (lower level; feels like 6502!).

JIRA: OVSDB-469
Change-Id: I642e0bfd698e594d3c263f0a335b92f80fbde8c4
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
5 years agoIncorrect IPv6 address for controller 57/75157/6
Vishal Thapar [Mon, 13 Aug 2018 07:31:57 +0000 (13:01 +0530)]
Incorrect IPv6 address for controller

getControllersFromOvsdbNode() method to uses ':' as
delimiter for protocol, IP and Port, which is broken
by IPv6 addresses which use : as delimiters for address
octets.

Fix is to handle IPv6 addresses differently.

JIRA: OVSDB-466
Change-Id: Ifc7070d0d3ba5e60a124dc612cdfc66cafa1527b
Signed-off-by: Vishal Thapar <vthapar@redhat.com>
5 years agofix broken build by adding new SystemReadyMonitor getFailureCause() impl 88/75488/1
Michael Vorburger [Mon, 27 Aug 2018 08:19:11 +0000 (10:19 +0200)]
fix broken build by adding new SystemReadyMonitor getFailureCause() impl

impact of I2420c5440366daee626da9b0ea62bbe322bc1cde

JIRA: INFRAUTILS-48
Change-Id: Ifa7255497361a17ab52784616b908efdde6f2dcd
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
5 years agoRemove references to mdsal-model-artifacts 26/75126/1
Robert Varga [Sat, 11 Aug 2018 07:51:29 +0000 (09:51 +0200)]
Remove references to mdsal-model-artifacts

This artifact is going away, migrate to mdsal-artifacts.

Change-Id: Iad90d1107f4b407dfd947761d96e97311496b759
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoBump versions by x.(y+1).z for next dev cycle 99/74999/1
Anil Belur [Thu, 9 Aug 2018 12:40:15 +0000 (18:10 +0530)]
Bump versions by x.(y+1).z for next dev cycle

Change-Id: Id12d87739bba0216b9d0650b5bfce6a1eac91dbf
Signed-off-by: Anil Belur <abelur@linuxfoundation.org>
5 years agoCleanup API assumptions 08/74608/5
Robert Varga [Sat, 28 Jul 2018 10:24:06 +0000 (12:24 +0200)]
Cleanup API assumptions

Migrate Identifier.Item use and allow DataObjectModification
to return a collection of implementations.

JIRA: MDSAL-342
Change-Id: I65e398ca6d6c1aabbd5a12eb75601cafb551d22e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoBump to odlparent 3.1.3 04/74204/2
Stephen Kitt [Wed, 18 Jul 2018 16:06:42 +0000 (18:06 +0200)]
Bump to odlparent 3.1.3

Change-Id: If4a96d68f7e1bd195adb05149641538420c8afe6
Signed-off-by: Stephen Kitt <skitt@redhat.com>
5 years agoMove OVSDB documentation from docs 42/74342/1
Vishal Thapar [Mon, 23 Jul 2018 15:01:04 +0000 (20:31 +0530)]
Move OVSDB documentation from docs

Move OVSDB docs hosted in docs project
to OVSDB/docs.

Change-Id: Iac705f47a8b8a68662bd880b101bca32d4d719b1
Signed-off-by: Vishal Thapar <vthapar@redhat.com>
5 years agoUse union's stringValue() method 61/74061/25
Robert Varga [Mon, 16 Jul 2018 09:34:08 +0000 (11:34 +0200)]
Use union's stringValue() method

getValue() clashes which user-derived names, migrate to stringValue(),
which also has a better type.

Change-Id: I66ca094de9fa378f576e75f1dbb057e7daee70f8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoDo not mock IpAddress 74/74174/10
Robert Varga [Wed, 18 Jul 2018 02:54:02 +0000 (04:54 +0200)]
Do not mock IpAddress

There really is no need, we can use the generated implementation.

Change-Id: Ibe2514588385f54e1cca2fe4f1631f3f87b63389
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoDo not mock Ipv4Address 73/74173/9
Robert Varga [Wed, 18 Jul 2018 02:51:22 +0000 (04:51 +0200)]
Do not mock Ipv4Address

There really is no need, we can use the generated implementation.

Change-Id: I11f5b6b6c026ae211f6ca365aea19a6e17601731
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoDo not mock enumeration 72/74172/8
Robert Varga [Wed, 18 Jul 2018 02:49:34 +0000 (04:49 +0200)]
Do not mock enumeration

This reworks mocking to eliminate open-mocked implementation, but
rather use a Guava implementation.

Change-Id: Ie4d557ca09a06d206c11160219687c006b8d2d07
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoPull in minimal set of models 26/74126/3
Robert Varga [Tue, 17 Jul 2018 14:53:14 +0000 (16:53 +0200)]
Pull in minimal set of models

Rather than pulling in all mdsal models, require on the models
we specifically need.

JIRA: MDSAL-363
Change-Id: I63e2f4a01a82e361dd2847fed6796461692ba903
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoDo not mock InetAddress 70/74170/4
Robert Varga [Wed, 18 Jul 2018 02:32:39 +0000 (04:32 +0200)]
Do not mock InetAddress

Rather than mocking it, create a known-good constant and rely on it.

Change-Id: I10fc205c122a77f94a7851a6fe38e9252bac73af
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoRemove an unneded explicit cast 61/74161/4
Robert Varga [Tue, 17 Jul 2018 22:18:14 +0000 (00:18 +0200)]
Remove an unneded explicit cast

Implicit cast does better here, as inference works out nullness
mapping.

Change-Id: If1b7ecd8179290fae5b81151e0634b4b9a48d01f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoMove unchecked warnings 60/74160/5
Robert Varga [Tue, 17 Jul 2018 22:16:44 +0000 (00:16 +0200)]
Move unchecked warnings

Tagging specific statements is better here, as there are only two. It makes
the method better protected and the code is more readable
('here I need to do a cast, which is deemed unsafe').

Change-Id: I7cb8fcfbe1080e6e869fff1de4ba227f84a78eeb
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoExpose methods for testing 62/74162/2
Robert Varga [Tue, 17 Jul 2018 22:47:58 +0000 (00:47 +0200)]
Expose methods for testing

Using @VisibleForTesting to expose a method from private to package-private,
hence we do not need to use WhiteBox reflection and can do direct calls.

Change-Id: Ic6101b560595a74faaf7889dc496025f7eaf4a7f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoDo not squash PortNumber instances in test 19/74119/1
Robert Varga [Tue, 17 Jul 2018 13:01:09 +0000 (15:01 +0200)]
Do not squash PortNumber instances in test

There is no need to squash all PortNumbers to one instance, hence
reduce the use of mockito.

Change-Id: I403f6a12f1ccc6227830f40e6ee81476ae4b1488
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoEliminate unneeded mocking of static methods 16/74116/2
Robert Varga [Tue, 17 Jul 2018 12:03:14 +0000 (14:03 +0200)]
Eliminate unneeded mocking of static methods

We really do not need to override behavior of contructors and
static methods, do not do that.

Change-Id: I6f2b3c31b9a3a17b42d106d97498176a0e955fbf
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoDo not mock generated classes 15/74115/1
Robert Varga [Tue, 17 Jul 2018 11:47:55 +0000 (13:47 +0200)]
Do not mock generated classes

These is no point in mocking classes which deliver well-defined
functionality. Just use them without mocking their contents.

Change-Id: I2dc91f2a1f383a163ebaed07f040ab416db5f17f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoFix some eclipse warnings 13/74113/1
Robert Varga [Tue, 17 Jul 2018 11:36:43 +0000 (13:36 +0200)]
Fix some eclipse warnings

Deprecation and unneeded raw types, this patch fixes them.

Change-Id: I5d05c3d32efeedaa30cd78563db76af1c04ec06f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoRemove powermock from library/impl 11/74111/1
Robert Varga [Tue, 17 Jul 2018 11:30:41 +0000 (13:30 +0200)]
Remove powermock from library/impl

There is no need for powermock features in these tests, remove
the dependency.

Change-Id: Ic744f2d6e1fcda182e14c4c742b1042da97b1d2f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoAdd missing southbound.cfg to etc 96/73896/2
Sam Hague [Tue, 10 Jul 2018 19:58:24 +0000 (15:58 -0400)]
Add missing southbound.cfg to etc

Change-Id: I369096cbf8a9f31d3d6ec6629af694ef135f4fba
Signed-off-by: Sam Hague <shague@redhat.com>
5 years agoOVSDB-439 Stale connection check 03/71303/12
K.V Suneelu Verma [Wed, 25 Apr 2018 10:07:39 +0000 (15:37 +0530)]
OVSDB-439 Stale connection check

if old client echo succeeds
   do not notify new client as it has to wait
else
   if all old clients got disconnected notify the new client

if new client gets disconnected remove it from pending clients

JIRA: OVSDB-439
JIRA: OVSDB-462
Change-Id: Id3cd37559825d7f0ef58331bfbd4757eae41d253
Signed-off-by: K.V Suneelu Verma <k.v.suneelu.verma@ericsson.com>
5 years agoOVSDB-462 Bridge randomly missing in operds 48/73348/4
K.V Suneelu Verma [Fri, 22 Jun 2018 11:43:02 +0000 (17:13 +0530)]
OVSDB-462 Bridge randomly missing in operds

After registering for eos check if eos state is set
if eos state is set go ahead and register for callbacks which evenutually
puts the bridge in operational datastore.

Added error log statement for transaction chain failures

Addressed connection flap race conditions.
If the bridge disconnects from one odl and connects to other odl.
Before disowning ownership, delete the bridge from oper store.
The second odl after getting the ownership will put it back in oper store.

Change-Id: I0fafa1c1d3a73523bc102e2d720fdcf65dba1e3f
Signed-off-by: K.V Suneelu Verma <k.v.suneelu.verma@ericsson.com>
5 years agoUpdate odl-jackson-2.8 version 74/73574/2
Robert Varga [Thu, 28 Jun 2018 17:36:18 +0000 (19:36 +0200)]
Update odl-jackson-2.8 version

This version should reference odlparent version, which unfortunately
is not properly exposed. Fix the declaration here while odlparent
fixes its artifacts.pom.

Change-Id: I871311a05a8c887e19ae9798df4998da00d21eab
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 years agoBump odlparent to 3.1.2 93/72493/2
Stephen Kitt [Wed, 30 May 2018 13:45:35 +0000 (15:45 +0200)]
Bump odlparent to 3.1.2

Change-Id: I07dce263fb4b0dfcb998878d612c1955fa03da17
Signed-off-by: Stephen Kitt <skitt@redhat.com>
5 years agoNETVIRT-1241 : Preprovisioning of l2gw conf. fails 35/72035/6
eaksahu [Wed, 16 May 2018 13:17:54 +0000 (18:47 +0530)]
NETVIRT-1241 : Preprovisioning of l2gw conf. fails

Removing use of ThreadLocals to avoid Np in this usecase when switch
gets connected after provisioning l2gw and l2gwconnection.

Change-Id: I78c826a80bf5ef484002d6cb052fc0e03458cfdb
Signed-off-by: eaksahu <a.k.sahu@ericsson.com>
5 years agoMake UpdateNotification context a String 74/70074/4
Stephen Kitt [Mon, 26 Mar 2018 00:14:20 +0000 (17:14 -0700)]
Make UpdateNotification context a String

UpdateNotification contexts are always strings, use the appropriate
type.

Change-Id: I59cba1fbef199861c3792a65ad3fe07bf894c9c4
Signed-off-by: Stephen Kitt <skitt@redhat.com>
5 years agoDon't use hostIP for controller-ip 60/72860/3
Vishal Thapar [Tue, 12 Jun 2018 06:08:44 +0000 (11:38 +0530)]
Don't use hostIP for controller-ip

If unable to get controller IP from manager entries of
OvsdbNode, don't assume hostIp to be controller IP.

JIRA: OVSDB-463
Change-Id: Ibfb34eb9d8b95fd676d9a5c6be458da02d5485d8
Signed-off-by: Vishal Thapar <vthapar@redhat.com>
5 years agoUse odl-jackson-2.8 25/70125/4
Stephen Kitt [Tue, 27 Mar 2018 00:17:06 +0000 (17:17 -0700)]
Use odl-jackson-2.8

We should use the odl-jackson-2.8 feature to fulfill our dependencies
on Jackson.

Change-Id: I18b1e52909a5d1386579230bee658592ce093a8e
Signed-off-by: Stephen Kitt <skitt@redhat.com>
5 years agodefer OVSDB port 6640 opening until system is ready 67/72767/3
Michael Vorburger [Thu, 7 Jun 2018 16:13:01 +0000 (18:13 +0200)]
defer OVSDB port 6640 opening until system is ready

JIRA: OVSDB-458
Change-Id: Ic51e0bf3144489b0dc0297191d01c16bdc0e26a5
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
5 years agoOVSDB-458 DiagStatus support for OVSDB 77/72777/3
Vishal Thapar [Fri, 8 Jun 2018 04:00:23 +0000 (09:30 +0530)]
OVSDB-458 DiagStatus support for OVSDB

Change-Id: I5a3d46d612d478746d25f1e7c0ef4095f995c839
Signed-off-by: Vishal Thapar <vthapar@redhat.com>
5 years agoMake OvsdbConnectionService instance-only 75/72875/3
Stephen Kitt [Tue, 12 Jun 2018 09:01:58 +0000 (11:01 +0200)]
Make OvsdbConnectionService instance-only

This patch ensures that the volatile data managed by
OvsdbConnectionService is stored per instance, and it removes the
static initialiser and all non-BluePrint instantiations. Other library
users can still create their own instances if necessary, but the
library code will no longer create multiple instances by default,
ensuring that BluePrint-mediated configuration changes are applied.

Change-Id: I41ca0c679d68e7dfeba3b5fd503194180358a9a2
JIRA: OVSDB-465
Signed-off-by: Stephen Kitt <skitt@redhat.com>
5 years agoAdd org.osgi.core dependency to hwvtepsouthbound-impl 42/73042/1
Tom Pantelis [Fri, 15 Jun 2018 16:44:42 +0000 (12:44 -0400)]
Add org.osgi.core dependency to hwvtepsouthbound-impl

This was picked up transitively from config-api but that
is going away.

Change-Id: I4490abcb0acaa326204015cd4d82f1396685e63d
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
5 years agoMake OVSDB Listener IP configurable 64/72864/1
Vishal Thapar [Tue, 12 Jun 2018 06:31:38 +0000 (12:01 +0530)]
Make OVSDB Listener IP configurable

JIRA: OVSDB-464
Change-Id: I11a852f497eab655e17d4a2c230f319282424283
Signed-off-by: Vishal Thapar <vthapar@redhat.com>
5 years agoAdd specs folder and design spec template 78/72778/3
Nobin Mathew [Fri, 8 Jun 2018 05:40:37 +0000 (11:10 +0530)]
Add specs folder and design spec template

JIRA: OVSDB-461
Change-Id: I0b6e34ea32c9e5c41df889ed66d680b0df1039f7
Signed-off-by: Nobin Mathew <nobin.mathew@ericsson.com>
5 years agoRemove unused references to BindingAwareBroker 08/72808/1
Tom Pantelis [Fri, 8 Jun 2018 18:41:33 +0000 (14:41 -0400)]
Remove unused references to BindingAwareBroker

Change-Id: Id1357a1d5f2a4a5c04eb39170bf47198a5468dfd
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
5 years agoAdjust to AbstractMdsalTestBase changes 42/72742/1
Tom Pantelis [Thu, 7 Jun 2018 01:48:53 +0000 (21:48 -0400)]
Adjust to AbstractMdsalTestBase changes

getSession() is being removed so don't use it.

Change-Id: Ia4d97882329fd336bf1f53a60f1922ab01098aa6
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
5 years agoTSC-101: Fixup Augmentable and Identifiable methods change 21/72021/4
Vishal Thapar [Tue, 15 May 2018 17:07:23 +0000 (22:37 +0530)]
TSC-101: Fixup Augmentable and Identifiable methods change

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

Change-Id: I5158dd9f133470150c80bf5cc20766c58fdbbf4b
Signed-off-by: Vishal Thapar <vthapar@redhat.com>
5 years agoAdd Documentation for OVSDB 31/71831/4
Nobin Mathew [Mon, 7 May 2018 11:27:39 +0000 (16:57 +0530)]
Add Documentation for OVSDB

lfdocs-conf is a new project that allows us to centrally manage
project theme configuration without having to duplicate it
everywhere or have the "docs" project become a large submodule
project.

We will push to ReadTheDocs separately and then create a new path
for this doc under docs.opendaylight.org/projects/integration-packaging

For further details refer to:
http://docs.releng.linuxfoundation.org/en/latest/project-documentation.html

JIRA: DOCS-69
Change-Id: Ibd03538877a5078aae5c6b87dce8be5a6c0dae7e
Signed-off-by: Nobin Mathew <nobin.mathew@ericsson.com>
Signed-off-by: Anil Belur <abelur@linuxfoundation.org>
5 years agoDetect stale conns when ping times out 03/71203/5
Josh [Mon, 23 Apr 2018 10:11:54 +0000 (13:11 +0300)]
Detect stale conns when ping times out

When an ovsdb client connects StalePassiveConnectionService
checks to see if there are any previous connections to that
same client. If there are, they are pinged to determine
whether or not they are still actually connected. The
callback that handles the ping results does not fire
properly in the event of a timeout and the onFailure method
does not call
OvsdbConnectionService.notifyListenerForPassiveConnection
for the new connection. This results in the new connection
not being being reported "up the stack."

Note: easiest way to reproduce this is to "unplug" (destroy
in libvirt) a VM running the OVS and then start it.

Issue: NETVIRT-1178
Change-Id: Ie3494c46719954f862d8edb6e8921a752dcd30ea
Signed-off-by: Josh <jhershbe@redhat.com>
6 years agoOVSDB-457 Populate mac_in_use field for bridge ports 25/71025/4
Vishal Thapar [Tue, 17 Apr 2018 10:41:50 +0000 (16:11 +0530)]
OVSDB-457 Populate mac_in_use field for bridge ports

1. Added yang for mac_in_use and mac fields.
2. Added method for updating Port's operational with mac_in_use
   and mac [if present].

Change-Id: Id0624b273a2e81910277f3041b2398e9fe8f0019
Signed-off-by: Vishal Thapar <vthapar@redhat.com>
6 years agoRemove usage of AsyncDataChangeEvent 37/71837/1
Tom Pantelis [Mon, 7 May 2018 12:46:23 +0000 (08:46 -0400)]
Remove usage of AsyncDataChangeEvent

AsynDataChangeEvent is being removed in controller - it's used
internally in southbound-impl so replace the usage with an internal
DataChangeEvent interface.

Change-Id: I5fab5db429bbb43545d9da24e4eccfe6993dbc5d
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoBump to odlparent 3.1.0 and yangtools 2.0.3 75/69875/4
Stephen Kitt [Thu, 22 Mar 2018 17:24:27 +0000 (18:24 +0100)]
Bump to odlparent 3.1.0 and yangtools 2.0.3

Change-Id: I9bf484eac11e52cbad3e825b128bd13a5421f7e7
Signed-off-by: Stephen Kitt <skitt@redhat.com>
6 years agoRevert "Add Karaf build profile" 65/70865/2
Thanh Ha [Thu, 12 Apr 2018 17:08:29 +0000 (17:08 +0000)]
Revert "Add Karaf build profile"

This reverts commit f2d14686bf2ad4d8086974b2709676fde167b634.

Change-Id: Id1bab084e93493bfde7b5ed4060c5e4e2da90a3f
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
6 years agoConvert to mdsal EntityOwnershipService APIs 79/70779/1
Tom Pantelis [Wed, 11 Apr 2018 13:18:55 +0000 (09:18 -0400)]
Convert to mdsal EntityOwnershipService APIs

The controller APIs are deprecated and being removed.

Change-Id: Ibf4c55cff0dc2e84b3a7ff0e85b5f1a505d74b84
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoAdd Karaf build profile 40/70540/1
Thanh Ha [Sat, 7 Apr 2018 01:37:50 +0000 (21:37 -0400)]
Add Karaf build profile

Project local Karaf distros are handy for devs to test their work
however is unneeded by autorelease builds and should not be released
as part of the Simultanious Release. Add a profile that is active by
default so that default behaviour is unchanged however allows the
autorelease project to disable building this module.

Issue: RELENG-86
Change-Id: I1197b8f705c6eb77d21ac358afd53a696391b14f
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
6 years agoRemove obsolete Maven Site configuration 39/70539/1
Thanh Ha [Sat, 7 Apr 2018 01:35:52 +0000 (21:35 -0400)]
Remove obsolete Maven Site configuration

Change-Id: I43efbf728cf8b106b019d1d106739f4d7b982965
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>