Robert Varga [Thu, 8 Jul 2021 12:36:52 +0000 (14:36 +0200)]
Fix field count check
This is a simple copy&paste error which slipped past review, fix it up.
Change-Id: Ia381754abc7ec9d3adf53066ab2f8910e5554123
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 8 Jul 2021 12:31:27 +0000 (14:31 +0200)]
Speed up checkParametersTypes()
Our checking logic here is rather sub-optimal, performing multiple
operations. Improve situation by using a fixed Set along with its
containsAll() method. The actual delta is computed only if we determine
there is something amiss.
Change-Id: If85e1049a34804444db6ad9849147b51b333b76f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 8 Jul 2021 11:58:12 +0000 (13:58 +0200)]
Speed up parseUriParameters()
Pre-construct our default values and access query parameters only once.
Change-Id: Ice551e9c441e86711d7705bf40fe0f2670c0440a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 4 Jul 2021 08:28:37 +0000 (10:28 +0200)]
Bump versions to 2.0.1-SNAPSHOT
This starts the next development iteration.
Change-Id: I4783ed8f10b04820f00857379dd316d030802cec
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 2 Jul 2021 21:56:08 +0000 (23:56 +0200)]
Add a logging event when schema is loaded
This is a useful indication as to when we are laying claim on the
directory.
Change-Id: I8a9057fa0b0ea84b54b1ec16c01979286a195277
JIRA: NETCONF-605
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 2 Jul 2021 20:44:28 +0000 (22:44 +0200)]
Use released aaa 0.14.0
Fix version to released artifacts.
Change-Id: I1a62c6475d9e7c0fc27426ba6b42c066bf676a0e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 2 Jul 2021 20:22:28 +0000 (22:22 +0200)]
Remove OSGiSchemaResourceManager
We have OSGi R7, hence we have use constructor injection and express our
dependency on SCR.
Change-Id: I77f92de079aa2d51c444451ffd0db4bf2168695f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 2 Jul 2021 16:12:23 +0000 (18:12 +0200)]
Update sal-rest-docgen dependencies
We do not need parser here, we are getting all we need from
yang-test-util.
Change-Id: I3450b7ad3b0422b01cf3d43e8e2ed1f67c04d756
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 2 Jul 2021 15:05:28 +0000 (17:05 +0200)]
Use controller-4.0.0
Do not use snapshots for controller artifacts.
Change-Id: I86a46dbc466d0c4dde611f364e57808fc23b8e33
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 25 Jun 2021 21:26:01 +0000 (23:26 +0200)]
Update RESTCONF error mapping
yang.common.YangError is an attachment used to propagate RFC6020-defined
failure modes enforced by YANG Tools as exceptions. One such example is
YangInvalidValueException, which is reporting YANG constraint
violations.
Recognize these when mapping to RestconfDocumentedException, so that
their error-app-tag and error-message are properly propagated.
JIRA: NETCONF-786
Change-Id: Id6ea1877e03f42fc193942a4e2b83ecb6daeb631
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 25 Jun 2021 15:00:49 +0000 (17:00 +0200)]
Fixup MD-SAL breakages
There are a few last-minute breaking changes coming from MD-SAL, make
sure we adapt to them. Also use released artifacts, so we should be fine
until we use snapshots again.
Change-Id: I12a44b2041fc47a824c039dddfdb21e3ebc8be17
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 24 Jun 2021 08:09:56 +0000 (10:09 +0200)]
Cleanup yanglib dependencies
We do not need yang-model-{api,util} here, remove the declarations.
Change-Id: I63ebd0b2fba3be82009b7a3e1e916526d2f0d36a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 24 Jun 2021 08:01:50 +0000 (10:01 +0200)]
Update json-unit-assertj to 2.27.0
There have been a few releases over the past year, catch up with them.
Change-Id: Ia3f24f73ecb386a9d3d6850159cd2ae8167c9049
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 24 Jun 2021 07:59:58 +0000 (09:59 +0200)]
Cleanup restconf-nb-rfc8040 dependencies
We have a few unnecessary dependencies here, readjust them to minimize
footprint.
Change-Id: Iacf49cce058aedc37e3d63067391026f65d0c235
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 24 Jun 2021 07:57:22 +0000 (09:57 +0200)]
Cleanup restconf-nb-bierman02 dependencies
We have a ton of dependencies which are not used, or used only for
testing. Clean them up.
Change-Id: I8e86de3279b8f82b66b53879583cb2ec9b19c90d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 24 Jun 2021 07:52:24 +0000 (09:52 +0200)]
Cleanup restconf-common dependencies
We do not need parser-impl nor model-util, just model-ir.
Change-Id: Id37cd1fd37697b27f4f67ec40b652bb93403e571
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 24 Jun 2021 07:49:49 +0000 (09:49 +0200)]
Cleanup netconf-topology-singleton dependencies
We are not using codec-xml here, remove it.
Change-Id: I1c0f8e264d9465c45daba805f744df5f48b482e6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 24 Jun 2021 07:47:02 +0000 (09:47 +0200)]
Clean up mdsal-netconf-connector dependencies
We have a few superfluous dependencies here, remove them.
Change-Id: I3a47677de71d134437b6ff321009386bd7fea435
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 24 Jun 2021 07:44:57 +0000 (09:44 +0200)]
Drop an unneeded dependency from mdsal-netconf-monitoring
We do not use ietf-inet-types here, remove it.
Change-Id: I359aa26a6cc9463e9f706070debb5f707501465c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 23 Jun 2021 13:44:30 +0000 (15:44 +0200)]
Remove sal-rest-docgen-maven
Static generator for swagger documentation is not used anywhere and it
is an utter mess. Remove it.
JIRA: MDSAL-232
Change-Id: I8a131f22f7f5d01aa0d66116413ded822fda1341
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 23 Jun 2021 11:49:44 +0000 (13:49 +0200)]
Add restconf-wadl-generator
WADL generator is a tiny bit coming from MD-SAL's
maven-sal-api-gen-plugin, but dependent on RESTCONF semantics.
This patch imports its state as of commit
123a8fe79fa859b5e64e3efbd004d0730e25164d, taking ownership of it.
JIRA: MDSAL-232
Change-Id: I81cc5cb6e2ef3496605e3532087688eb4ab172e2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Ivan Hrasko [Wed, 16 Jun 2021 09:52:31 +0000 (11:52 +0200)]
Refactor Swagger unit tests
Get rid of incorrect equals call on module revision by
using SchemaContext#findModule methods to find
module according to namespace (and revision).
Because of incorrect equals call the tests
were just passing without any assertions and
were not maintained for long time, some of the
assertions needed to be adapted.
Remove unnecessary code to load EffectiveModelContext
from DocGenTestHelper and instead use YangParserTestUtils
methods directly in tests.
Refactor DocGenTestHelper to be utility class.
Refactor tests code, make tests logic more simple.
Also, introduce tests for ApiDocGeneratorRFC8040.
JIRA: NETCONF-785
Change-Id: I195acbca354cdfe80241430255254436d0dac23f
Signed-off-by: Ivan Hrasko <ivan.hrasko@pantheon.tech>
Ivan Hrasko [Tue, 15 Jun 2021 07:46:05 +0000 (09:46 +0200)]
Fix multiple keys path in RFC8040 swagger
ListPathBuilder for RFC8040 needs to change its state
when processing multiple keys (= to ,) thus we have
to create it before the iteration over all list keys.
JIRA: NETCONF-708
Change-Id: If617ff1508e63b1001ab7857e3b3fdebff287f74
Signed-off-by: Ivan Hrasko <ivan.hrasko@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 9 Jun 2021 16:00:39 +0000 (18:00 +0200)]
Mark netconf node with ext:mount
Add an explicit marker for netconf topology nodes.
JIRA: NETCONF-783
Change-Id: Ie037ea099ed2ebb426242922cf3f7b791e5f7dc4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 9 May 2021 20:18:07 +0000 (22:18 +0200)]
Bump MRI upstreams
Adopt latest versions, namely;
- odlparent-9.0.2
- yangtools-7.0.2-SNAPSHOT
- infrautils-2.0.2
- mdsal-8.0.0-SNAPSHOT
- controller-4.0.0-SNAPSHOT
- aaa-0.14.0-SNAPSHOT
Change-Id: Ic4cbc01d88134df26416cd2d6f3e7ac64a03dc1a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 4 Jun 2021 13:01:57 +0000 (15:01 +0200)]
Use InstanceIdentifier.empty()
We do not need a builder here, just use the empty identifier.
Change-Id: I65d6cd0d27e71316b5a8eed330157b583e406474
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Tomas Cere [Tue, 1 Jun 2021 08:41:51 +0000 (10:41 +0200)]
Handle NetconfDocumentedExceptions correctly
These need to be wrapped in TransactionCommitFailedException
so they are handled correctly, so restconf can map these and
return correct status code on failure.
JIRA: NETCONF-777
Change-Id: Id4833bfe46da6f97a216163452dd2a44af599063
Signed-off-by: Tomas Cere <tomas.cere@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 31 May 2021 12:25:40 +0000 (14:25 +0200)]
Correct stream instance identifier
Constructed path has a mismatch in both depth and map identifier QName,
fix that up.
JIRA: NETCONF-773
Change-Id: Ib0ce3c3727f5cf340d8d1d6ea8e449bf3f83f2f3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Oleksii Mozghovyi [Mon, 25 Jan 2021 12:21:20 +0000 (14:21 +0200)]
Add sample how to use karaf static distribution for NETCONF and RESTCONF
This shows how the combination of NETCONF connector and RESTCONF can be
packaged inside the static karaf distribution.
JIRA: INTDIST-116
Change-Id: I4b21b0cde3ae3ca3276133355b166e662d3212e7
Signed-off-by: Oleksii Mozghovyi <oleksii.mozghovyi@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 27 May 2021 22:48:41 +0000 (00:48 +0200)]
Fix augment argument
As per RFC6020 section 7.15, augment statement used under a module
(or submodule} statement MUST use absolute form must be used.
Fix our test model.
Change-Id: I0b6a566f448464643c0796714de268464412bff6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 25 May 2021 09:11:02 +0000 (11:11 +0200)]
Fixup netconf-parent path
netconf-parent's directory is just 'parent', fix that up.
Change-Id: I863f07415ec49cb8ecda0c60de316ce048c27d9b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 24 May 2021 12:03:22 +0000 (14:03 +0200)]
Cleanup FilterContentValidator
Make sure we do not mutate our argument and do not access children
until necessary.
Change-Id: Ic2a1a7561fc321b75f2e63a6968eb20507cdda43
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 24 May 2021 11:06:29 +0000 (13:06 +0200)]
Initialize FilterTree.children
This is a simple move of initializer, so that it is obvious what
is going on.
Change-Id: I002cc767bd0d98855c31a172d45ccdc39389a5b5
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 23 May 2021 18:06:45 +0000 (20:06 +0200)]
Modernize netconf-util tests
Use assertThrows() and fixup imports a bit.
Change-Id: I2816141af08815afb0dc926e78ace962ba561ded
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 23 May 2021 17:57:41 +0000 (19:57 +0200)]
Cleanup netconf-impl tests
Use static imports for assert methods, and use assertThrows() instead
of try/catch blocks.
Change-Id: I0054becc441cbe33c6aedf156b267429eb53e224
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 21 May 2021 13:05:37 +0000 (15:05 +0200)]
Cleanup NetconfMDSalMappingTest
Use assertThrows() and remove unused code.
Change-Id: Ia0c1ab438ad93026fff28c476254e409bd2cc4ae
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 21 May 2021 12:50:14 +0000 (14:50 +0200)]
Update RuntimeRpc a bit
Move Element cast to the method which is producing it, saving one
import.
Change-Id: Ie00e716681666ae64f2774cf068a202e54fbeb81
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 21 May 2021 12:14:38 +0000 (14:14 +0200)]
Remove restconf-parent
This pom is a useless wrapper around netconf-parent. Eliminate it and
migrate its users.
Change-Id: Id3c0cc6458855a7c4bd9eeb6a2e8e3d47d57b9da
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 21 May 2021 12:12:04 +0000 (14:12 +0200)]
Remove superfluous version/groupId declarations
We can inherit these declarations from our parent structure, making
poms a tad leaner.
Change-Id: Ia56733a45566af971d8963b1465341925de4ce7f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 17 May 2021 15:10:45 +0000 (17:10 +0200)]
Enable TCP_NODELAY for SSH client/server
Both NETCONF northbound (SshProxyServer) and southbound
(AsyncSshHandler) plugins exhibit latencies caused by Nagle's algorithm.
These are superfluous, as we typically work in request-response manner,
with reasonable level of buffering going on in the intermediate layers.
Set TCP_NODELAY flag to get rid of these artifacts.
JIRA: NETCONF-776
Change-Id: I68a87cc2bef4f0032e104833b8d241f5b1f7566b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 19 May 2021 21:40:48 +0000 (23:40 +0200)]
Cleanup RFC8040 media type handling
Promote Rfc8040.MediaTypes to a top-level types, adding documentation
and proper constants mimicking the layout of javax.ws.rs.core.MediaType.
As part of this exercise, also correct the media types produced by our
JAX-RS services so they accurately comply with RFC8040, RFC8072 and
RFC6415.
JIRA: NETCONF-779
JIRA: NETCONF-780
Change-Id: Iaaf192e9d30858f5ce6f8e3484ea232fbf69e92f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 17 May 2021 14:00:42 +0000 (16:00 +0200)]
Switch to using SseEventSink
JAX-RS 2.1 has a standard way of working with SSE, do not use
Jersey-specific APIs (except in test).
JIRA: NETCONF-775
Change-Id: I46c2b80be52d2313ab9193361da788f41923c175
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 17 May 2021 12:47:31 +0000 (14:47 +0200)]
Use MediaType.SERVER_SENT_EVENTS
We are using JAX-RS 2.1, hence we have SSE support built-in. Reduce
dependency surface by using MediaType constant instead of Jersey's
Feature.
JIRA: NETCONF-775
Change-Id: I27338775dd3cd92681a4c1f953f71145100f24ef
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 17 May 2021 14:03:41 +0000 (16:03 +0200)]
Improve event fragmentation
Rather than instantiating String objects, use StrinBuilder's ability to
append CharSequence parts.
Change-Id: I1283791c50a9e41fd1703786cbf2aefe71e75484
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 19 May 2021 19:10:44 +0000 (21:10 +0200)]
Use a simple isEmpty() check
Rather than checking size() == 0, use isEmpty(), which is clearer
and potentially fasterUse a simple isEmpty() check
Rather than checking size() == 0, use isEmpty(), which is clearer
and potentially faster.
Change-Id: I0aadff4a55258f2fbb0bd60c26993b08b3b8e7b0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 19 May 2021 14:21:01 +0000 (16:21 +0200)]
Refactor ietf-restconf constants
We have a number of constants which overlap with definitions generated
for the ietf-restconf module. Use QNames from generated code and rehost
all constants to their users.
JIRA: NETCONF-773
Change-Id: Ic6fe0a8fedf4029fabc5cdf3ea634975b5949515
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 19 May 2021 13:49:35 +0000 (15:49 +0200)]
Use ImmutableNodes.leafNode()
Do not use schema-aware builder, use a straight-up shortcut to a
LeafNode.
JIRA: NETCONF-773
Change-Id: I306dde8b7f8857945d1036945545c65fc98c4c3b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 19 May 2021 13:30:48 +0000 (15:30 +0200)]
Refactor constants relating to restconf-monitoring
We have a number of constants scattered around, some of which can
have better names and placement, or are duplicates of constants
generated for the ietf-restconf binding.
Reuse generated constants and construct native YangInstanceIdentifiers,
so we minimize duplication.
JIRA: NETCONF-773
Change-Id: I5a17cbdd863fcdbaf75db56d4a8b0daddfe5e7a9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 19 May 2021 10:24:55 +0000 (12:24 +0200)]
Cleanup Rfc8040 constants
A number of constants here are unused, remove them.
JIRA: NETCONF-773
Change-Id: If75073a19eff52da4cf68c9601c1b775258a42d4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 17 May 2021 11:36:13 +0000 (13:36 +0200)]
Rename SessionHandlerInterface
The 'Interface' part is obvious, but it is not immediately obvious
what sort of 'session' and 'handler' we are talking about. Rename
it to StreamSessionHandler.
Change-Id: I76fe4f0a7fc87134ce15dece17bb5bdd2075b779
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 17 May 2021 10:32:39 +0000 (12:32 +0200)]
Remove SSEInitializer
SSEInitializer is a simple indirection between RestconfDataStreamServiceImpl
and streams.Configuration. Eliminate the indirection.
JIRA: NETCONF-773
Change-Id: I88429d8a58720589fd73f1c6da7cb3d2176bf88f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 17 May 2021 09:41:47 +0000 (11:41 +0200)]
Unmask NotificationListenerAdapter
Use .orElseThrow() to acquire a nice instance, without needing to issue
multiple .get()s.
JIRA: NETCONF-773
Change-Id: If67fb5391642e437ce27c2d9f21688c875de4561
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 17 May 2021 08:41:26 +0000 (10:41 +0200)]
Remove the ability to inject differing DOMDataBroker
We only have one implementation of DOMDataBroker therefore tuning
the injection via Config Admin is useless -- remove it.
JIRA: NETCONF-774
Change-Id: I024866c51b2c825032169fbff768833ac03c7195
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 16 May 2021 21:13:06 +0000 (23:13 +0200)]
Remove Service(Notif)Wrapper
The wrappers are a remnant of the Config Subsystem wiring, and are not
really useful. Remove them, along with Rfc8040RestConfWiring, which is
no longer needed.
JIRA: NETCONF-773
Change-Id: I2534a6418dc0ca1f1d6aad3d41f874781ea1930d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sat, 15 May 2021 13:16:45 +0000 (15:16 +0200)]
Unmask NotificationListenerAdapter
Use .orElseThrow() to acquire a nice instance, without needing to issue
multiple .get()s.
JIRA: NETCONF-773
Change-Id: Ic499f6eee7f19cba1796e62cad47892b64a28b4c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sat, 15 May 2021 08:24:44 +0000 (10:24 +0200)]
Cleanup WebInitializer
Use a simple List.of() and clean up code formatting to make it clearer
what we are trying to do.
Change-Id: I1bb44e4c75fb7f3c86e580255df9a3119044be7f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sat, 15 May 2021 08:10:02 +0000 (10:10 +0200)]
Remove {Base,Transaction}ServicesWrapper
These interfaces are just simple combination of JAX-RS services, remove
them to make inheritance a bit clearer.
JIRA: NETCONF-773
Change-Id: I47c4cc866f64143d8042a729bfe56d4a9860cec1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sat, 15 May 2021 08:05:57 +0000 (10:05 +0200)]
Move services API
We seem to have two packages for JAX-RS services, without any
explanation of the split. Arbitrarily pick rests.services as the
target package, mostly vacating services.simple.
JIRA: NETCONF-773
Change-Id: I9642309916d0503081211f15394fd94762382eb4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sat, 15 May 2021 07:38:58 +0000 (09:38 +0200)]
Reuse local RestconfStrategy
RestconfStrategy is now completely stateless, hence we can reuse the
same object, reducing GC pressure a bit.
JIRA: NETCONF-773
Change-Id: Ic6c7968f1279bd0aa7c5f58452af499d16079464
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 14 May 2021 18:05:04 +0000 (20:05 +0200)]
Clean up Root Resource Discovery implementation
Move the implementation to other service implementations and make sure
it has configurable root -- which should be coming from WebInitializer.
JIRA: NETCONF-773
Change-Id: I1fd8936d622c0ee51bd151a0ebd34b05dd76d2b0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 14 May 2021 08:05:04 +0000 (10:05 +0200)]
Reduce preliferation of TransactionChainHandler
RestconfStrategy does not need to work on transaction chains -- we are
really dealing with standalone transactions every step of the way. This
ends up simplifying the flow quite a bit.
JIRA: NETCONF-773
Change-Id: I70c49e7c2f9da250c53ebfc32ddb99456f9b2c46
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 13 May 2021 15:44:06 +0000 (17:44 +0200)]
Remove DOMMountPointServiceHandler
This is a useless indirection over DOMMountPointService, just remove it,
making lifecycle a bit more clearer.
JIRA: NETCONF-773
Change-Id: I0cf083b11e98c10b5af28784e20fc7e8fda25110
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 13 May 2021 15:18:28 +0000 (17:18 +0200)]
Remove DOMDataBrokerHandler
This is a useless indirection over DOMDataBroker, just remove it, making
lifecycle a bit more clearer.
JIRA: NETCONF-773
Change-Id: I349baf5e184c7f18092e41149cf93efc13e72ac1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 13 May 2021 15:09:47 +0000 (17:09 +0200)]
Remove NotificationServiceHandler
This is a useless indirection over DOMNotificationService, remove it,
making interactions tad easier to follow.
JIRA: NETCONF-773
Change-Id: I91f4da713f3ff66d0efa7cd3feeda6fc01a83fad
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 13 May 2021 14:29:40 +0000 (16:29 +0200)]
Remove RpcServiceHandler
This is a useless indirection class, just remove it and deal with
DOMRpcService instead.
JIRA: NETCONF-773
Change-Id: I3808997bc1226d384d012a5153701cbd95fb6028
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 13 May 2021 13:10:45 +0000 (15:10 +0200)]
Remove ActionServiceHandler
This is a useless indirection class, just remove it and deal with
DOMActionService instead.
JIRA: NETCONF-773
Change-Id: I4e9fc4aec72427f9d39852cf1518666dd18ab0c4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 13 May 2021 13:03:27 +0000 (15:03 +0200)]
Remove Handler interface
This interface is utterly useless now, remove it and mark its
implementations for further evolution -- which really means eliminating
them.
JIRA: NETCONF-773
Change-Id: If6dadcaa47aa3eb77ac5b394b40e6946f09975b7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 13 May 2021 12:21:47 +0000 (14:21 +0200)]
Remove UpdateHandlers
This interface is not used anywwhere and it throws a wrench in what
otherwise would be a simple dependency graph.
JIRA: NETCONF-773
Change-Id: If8b916813bcf5fcc9b2a81813ecb3d71383693ad
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 13 May 2021 11:08:03 +0000 (13:08 +0200)]
Remove JSONRestconfService
This service is not used in ODL proper and it is blocking a number of
refactors due to how it interacts with other services. Remove it now.
JIRA: NETCONF-773
Change-Id: I58112507807fce8fa58625119a8613f13e05a344
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 13 May 2021 11:56:41 +0000 (13:56 +0200)]
Reduce project.version proliferation
Rely on netconf-artifacts to propagate versions around the build
reactor, so that we are always self-consistent.
Change-Id: I1e680c649b97dad16a90d57d83b89502eadb4b6e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 26 Apr 2021 11:07:39 +0000 (13:07 +0200)]
Remove odl-messagebus feature and messagebus-netconf
Controller is removing the PoC infrastructure we were relying on,
let's just remove the component as well.
JIRA: NETCONF-768
Change-Id: Idaa58b1c8ad06c3cb7bf90c0b654c967bc07eb49
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 13 May 2021 10:54:22 +0000 (12:54 +0200)]
Bump versions to 2.0.0-SNAPSHOT
This starts the next major development iteration.
Change-Id: Ic0b6b16f27880c1b38ffd1e6dc7423f717e77d12
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 13 May 2021 05:22:36 +0000 (07:22 +0200)]
Do not use schema-aware builders in RestconfMappingNodeUtil
These builders are going away as they bring little to the table for the
cost they force upon us.
Change-Id: I2359ab28dd6c3632cd0a4f6eeaadf62af517d72d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 13 May 2021 08:26:21 +0000 (10:26 +0200)]
Update RestconfDataServiceImpl stream lifecycle
This is a follow-up patch to cleanup more checkExist() invocations,
which are no longer needed, as the datastore handles container/list
lifecycle.
Change-Id: I8c9ad9b0718a3854af553ea1a20eea1812a8c9f6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
330737a5a8b048bf8306035e25a108065403bea1)
Robert Varga [Wed, 12 May 2021 22:36:45 +0000 (00:36 +0200)]
Minimize another set of dependencies
MWe are not exposing the repo as part of running contrary to upstream.
Each to their own.
Change-Id: I301ff878ea7f4a1d01ecefbaf3a39804fee3cf13
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 12 May 2021 22:48:21 +0000 (00:48 +0200)]
Bump versions to 1.13.3-SNAPSHOT
This starts the next development iteration.
Change-Id: Iad0085c6bf0eed251ead9622c4aee4e56ad926db
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Jaroslav Tóth [Tue, 16 Jul 2019 11:14:31 +0000 (13:14 +0200)]
Added full YIID to ietf-restconf-monitoring DS
- Currently local-name of the QName is used as key to the list
of created streams - that is a bug because local-name doesn't
have to be unique in scope of one module or whole schema context.
- This fix puts the whole serialized YIID to DS as stream name.
JIRA: NETCONF-726
Change-Id: I28012a478b958b933af993c2ede5f91c2eb8e211
Signed-off-by: Jaroslav Tóth <jtoth@frinx.io>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 12 May 2021 20:01:05 +0000 (22:01 +0200)]
Cleanup datastore interactions
Datastore handles lifecycle of non-semantic portions, hence we do not
need utterly ugly special-cases dealing with container/list
initialization. This removes a chunk of crud, makes things more
type-safe and more straightforward.
Change-Id: I7fe72a0c37cd0a1ef94f2921fb3c66800eccfa26
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 12 May 2021 21:32:14 +0000 (23:32 +0200)]
Further dependency cleanups
We have two other unused dependencies, remove them as well.
Change-Id: I2870ffd2450ce7783609bf58b1b26209adbde0fb
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 12 May 2021 21:14:18 +0000 (23:14 +0200)]
Cleanup dependencies a bit
There are a number of unnecessary dependencies we are using, which are
getting flagged by odlparent-9. Clean the most obvious ones, reducing
our footprint.
Change-Id: I0881d82f4928505998254088c4c729057c86bb7d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 12 May 2021 20:16:28 +0000 (22:16 +0200)]
Fix infrautils version
We have a misaligned version here, make sure it is 1.9.8, as it should
be.
Change-Id: I677f9f0ad89e61e6664bb239e09a844f970e2c8a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 14 Oct 2020 10:47:41 +0000 (12:47 +0200)]
Upgrade restconf-nb-rfc8040 to use RFC8525
Ditch the old yang library and just use the new one instead.
JIRA: NETCONF-725
Change-Id: I99c9678146ef58d525dda626087a5e74b0e270e4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 12 May 2021 18:36:09 +0000 (20:36 +0200)]
Use schemaless builders in RestconfMappingNodeUtil
The code here is extremely flaky, relying very much on declared layout
of ietf-yang-library -- which is utterly wrong, as we should be using
effective model.
Schema-aware builders are going away anyway, so just use normal
builders, forgoing all the unneeded complexity.
JIRA: NETCONF-725
Change-Id: I2454a7872341fb2a977463513a5a1a6a3937c8d1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Jaroslav Tóth [Wed, 7 Apr 2021 06:53:43 +0000 (08:53 +0200)]
Added doc for fields filtering
- User guide - using fields query parameter to leverage NETCONF
subtree filtering with selected multiple subtrees.
- Developer guide - tutorial for using:
a. NetconfDOMDataBrokerFieldsExtension
b. NetconfDataTreeService with added methods
JIRA: NETCONF-735
Change-Id: I8fed93dc45b626ddc99447f0656e671890ad8f17
Signed-off-by: Jaroslav Tóth <jtoth@frinx.io>
mhurban [Wed, 25 Nov 2020 19:02:01 +0000 (20:02 +0100)]
Integration of RESTCONF fields to NETCONF filters
Added:
- NETCONF subtree filtering aware parser (ParserFieldsParameter)
- check if get request is for mountpoint data (ReadDataTransactionUtil)
- new mountpoint fields parameter (WriterParameters)
JIRA: NETCONF-735
Change-Id: I293993958893df866908fa5f16992bf38bd6b085
Signed-off-by: mhurban <mar.hurban@gmail.com>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Signed-off-by: Jaroslav Tóth <jtoth@frinx.io>
Robert Varga [Wed, 12 May 2021 10:40:38 +0000 (12:40 +0200)]
Rework mdsal-netconf-yang-library
The primary intent here is elimination of blueprint, but while we
are at it, we also remove duplicated code and unify the two exporters
into a single class.
JIRA: NETCONF-770
Change-Id: I70bba28b1776001d6c71e367b10d87d59399c13a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 12 May 2021 09:00:14 +0000 (11:00 +0200)]
Merge OSGiCredentialServiceAuthProvider
We now have OSGi R7, hence we can safely use constructor injection,
eliminating the need for an extra class.
Change-Id: I41a1bc06d6aec1be89979327e9b530952cd673ce
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Illia [Mon, 15 Feb 2021 21:19:41 +0000 (23:19 +0200)]
Update testtool arguments
1. Remove edit-content argument. Instead of using node config template
in form of file node config will be created, modified by corresponding
Java models and than converted to request body string with GSON.
2. Split auth argument to controller-auth-username,
controller-auth-password. Add default value(admin) for them.
3. Split controller-destination argument to controller-ip,
controller-port.
JIRA: NETCONF-758
Change-Id: Iccf19c9482727b88d3f21a85008d13f554a8da08
Signed-off-by: Illia <illia.ihushev@pantheon.tech>
Illia [Mon, 15 Feb 2021 18:03:51 +0000 (20:03 +0200)]
Add GSON models for device registration
Intention is to use the PATCH method for node registration(no matter if
that's a single node registration or multiple nodes).
JIRA: NETCONF-758
Change-Id: Ia624cfe2f953f6f5dc7a4ebd0d7cfbb0c0185f1a
Signed-off-by: Illia <illia.ihushev@pantheon.tech>
Iaroslav [Wed, 10 Feb 2021 10:31:08 +0000 (12:31 +0200)]
EndToEnd test tool
Added EndToEnd test tool for adding routes to test device using REST.
Part of feature: features-netconf-testing.
Test tool implements endpoint from ncmount.yang, finds device from
provided payload, transforms and sent routes from payload to target device.
Write route processing provides by REST endpoint:
/rests/operations/ncmount:write-routes
with a payload which contains the device name and route.
JIRA: NETCONF-759
Change-Id: Iba141c91a315b3d13d1890b8315dd17bb899cda9
Signed-off-by: Iaroslav <iaroslav.kholiavko@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Jaroslav Tóth [Mon, 22 Feb 2021 08:04:13 +0000 (09:04 +0100)]
Use Optional.isEmpty()
Java 11 introduced Optional.isEmpty(), which allows us to convert
!Optional.isPresent() callsites. Perform this conversion across the
entire repostitory.
Change-Id: I515a550bb6aa56b6d89cea020f5399ca27884833
Signed-off-by: Jaroslav Tóth <jtoth@frinx.io>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 11 May 2021 11:35:20 +0000 (13:35 +0200)]
Use ReadOperations.exists() to check existence
There is no point transferring all the data, just invoke the exists()
operation instead.
Change-Id: I54db6026ee641703196b6a8120245c4e60a60aa2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 9 May 2021 20:25:49 +0000 (22:25 +0200)]
Migrate javax.inject artifact references
We are using GuicedEE instead of the ancient (and broken) javax.inject
jar. Migrate references.
Change-Id: I262c155b97aefced7a834de3db0efd839cf45fbf
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 9 May 2021 20:24:19 +0000 (22:24 +0200)]
Migrate osgi.core references
OSGi R7's core artifact has been renamed, use that as the dependency.
Change-Id: Idbf50537a9e2f9ea9a486d2bb76f37752caa496e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 9 May 2021 08:08:40 +0000 (10:08 +0200)]
Deprecate JSONRestconfService
This service is type-unsafe and does not have users in OpenDaylight
proper. The contract is actively hurtful as it seeks to steer users
towards opaque blobs, not expressing their service and data
dependencies. Furthermore the implementation structure forces an ugly
interface on the actual RESTCONF services, preventing reasonable
refactors.
Deprecate the service for removal, so that we can get rid of this burden
in the next major release.
Change-Id: I96d3fd86ba773fa8986454d1ac4825723b15152d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 9 May 2021 05:47:39 +0000 (07:47 +0200)]
Bump MRI upstreams
Adopt following versions:
- odlparent-8.1.2
- infrautils-1.9.8
- yangtools-6.0.6
- mdsal-7.0.7
- controller-3.0.8
- aaa-0.13.3
Change-Id: Ib48792875c6c54a1f328e466a5de47d7d2af8850
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 26 Apr 2021 11:05:43 +0000 (13:05 +0200)]
Use project.version for all artifact declarations
We have a coordinated version for all artifacts, hence we can use a
simple project.version -- making things a tad more consistent.
Change-Id: I16f07a512bcf2facd33a2272f8397539a9480407
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Iaroslav [Tue, 29 Sep 2020 09:05:03 +0000 (12:05 +0300)]
Binary data shall be emitted in the form of hexa numbers.
Added converter character->to HEX in AsyncSshHandlerWriter class logging.
JIRA: NETCONF-135
Change-Id: I462baf94eecbc67221ca349f2b900eedf80ea483
Signed-off-by: Iaroslav <iaroslav.kholiavko@pantheon.tech>
Iaroslav [Tue, 29 Sep 2020 09:43:41 +0000 (12:43 +0300)]
Stream name should be used instead of BASE_STREAM_NAME
Refactored onNotification method to use stream parameter instead of "BASE_STREAM_NAME".
Fix ConcurrentModificationException while closing listeners/publishers.
JIRA: NETCONF-306
Change-Id: I3f08a294adf53e34c31dd23ca8d9627a46fb585c
Signed-off-by: Iaroslav <iaroslav.kholiavko@pantheon.tech>
Signed-off-by: Vladyslav Marchenko <vladyslav.marchenko@pantheon.tech>
Iaroslav [Mon, 1 Mar 2021 11:06:02 +0000 (13:06 +0200)]
Reduce memory usage of perf-client
Moved payload creation from test tool start to message send. It will
prevent store huge amount of the objects and reduce memory usage.
JIRA: NETCONF-762
Change-Id: I4932f259391af5770edf8d941f9dc27f022f2277
Signed-off-by: Iaroslav <iaroslav.kholiavko@pantheon.tech>