Robert Varga [Thu, 28 Jul 2022 18:24:50 +0000 (20:24 +0200)]
Turn NetconfMessageConstants into a final class
Keeping constants in an interface is an antipattern, correct that.
Change-Id: I71a49126ec05107dc09ff05e47d16ba461d92e9d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
4c49398a85911278e3a5ac5a6ce3d5f3261b65a6)
Robert Varga [Thu, 28 Jul 2022 18:15:30 +0000 (20:15 +0200)]
Use strict String->byte[] conversion
Improve defensiveness around constant encoding: the strings are expected
to be be ASCII-only, so enforce that by using a properly-configured
coder.
Change-Id: I991640d6ad6e4c928b64fdabcbe7f0b60418c7af
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
44926051c90f28ca6d6015ff57f5a4cbf9f716d4)
Robert Varga [Thu, 28 Jul 2022 18:00:15 +0000 (20:00 +0200)]
MessageParts should be a class
Using interface to hold constants is an antipattern, ditch it.
Change-Id: I4b77c5d1ca6021f4381a17245ac3286ea36a08ac
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
9110c5921ba8f05ceafefb784bf95b1b1655d6d2)
Sangwook Ha [Thu, 14 Jul 2022 08:03:54 +0000 (01:03 -0700)]
Filter non-standard nodes from NETCONF monitoring schemas
Some NETCONF servers use augmented netconf-monitoring schema and
controller fails to parse XML with strict parsing requirement.
Add a filtering function based on the namespace of the XML node,
and filter out any node not in the netconf-monitoring namespace to
prevent parsing failure.
JIRA: NETCONF-881
Change-Id: I93b7da0baf00de59613d970fd4ec89e47eb26e58
Signed-off-by: Sangwook Ha <sangwook.ha@verizon.com>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
c3d40c5e4485e95b9307fcdff1833ca1568f9321)
Peter Suna [Mon, 4 Jul 2022 11:29:06 +0000 (13:29 +0200)]
Disable creating reduced netconf-testtol pom
When dependency reduced pom for netconf-testtool is generated, it gets
overridden with scale-util pom.
Fix that by disabling creating reduced dependency pom.
https://maven.apache.org/plugins/maven-shade-plugin/shade-mojo.html#createDependencyReducedPom
JIRA: NETCONF-884
Change-Id: Iea5269782261d2d550cb534fa405ec0fadaced46
Signed-off-by: Peter Suna <peter.suna@pantheon.tech>
(cherry picked from commit
c83d51f95b5de398dda926edc17fcda273588ae2)
Peter Puškár [Mon, 20 Jun 2022 06:53:26 +0000 (08:53 +0200)]
Fix error message typo
The correct string is 'nonconfig', not 'non-config'.
JIRA: NETCONF-886
Signed-off-by: Peter Puškár <ppuskar@frinx.io>
Change-Id: If5b77c64f8f17885977c8700195ba6b910197e26
(cherry picked from commit
7c1d84b96f8bb38a9dad250339a4ffabcdff515f)
Robert Varga [Thu, 9 Jun 2022 18:48:12 +0000 (20:48 +0200)]
Bump versions to 3.0.6-SNAPSHOT
This starts the next development iteration.
Change-Id: I65a127b09c238f80f3496200a38f71fd03edf34a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 9 Jun 2022 15:08:28 +0000 (17:08 +0200)]
Correct root vs. nested writeout
The instance identifier we are getting points to the data node, not to
its parent. Make sure we adjust event streaming accordingly.
JIRA: NETCONF-879
Change-Id: I198ff72674660dd7053a5224030c154a625c44e4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
81fe6df18b2f554be7d9f73d56fdc8a14ec71411)
Robert Varga [Wed, 8 Jun 2022 11:12:13 +0000 (13:12 +0200)]
Cleanup Netconf538Test
Improve NormalizedNode structure allocation and import assertions.
Change-Id: I63156f3efcd63f8cdb56b2bd2fe6bab4e1f4131a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
a689055266c8f6d1cadc4bbe3f3151fb1e95c96a)
Robert Varga [Wed, 8 Jun 2022 12:39:28 +0000 (14:39 +0200)]
Bump versions to 3.0.5-SNAPSHOT
This starts the next development iteration.
Change-Id: I5c5b62ac2449091c7027fadb1517b59055fdb474
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 8 Jun 2022 11:21:03 +0000 (13:21 +0200)]
Fix AbstractGet.transformNormalizedNode()
We should not be adjusting the baseline twice. Make sure we only
pass the data identifier to downstream.
JIRA: NETCONF-879
Change-Id: Iec2cf9bd227b84c8c4651012695f2c296e5c3f25
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
e1060dacd16e7f65f7a5ac67b0440a998ab85807)
Robert Varga [Tue, 31 May 2022 18:54:42 +0000 (20:54 +0200)]
Fix another state-keeping thinko
We need to update pending before we add a listener, as the future
may have already completed and thus we could observe pending being
either null or point to the bad value.
Also update the corresponding checkState() to use identity comparison
and include a proper message.
JIRA: NETCONF-827
Change-Id: If79d7ce71480bab6b35eec6fab63671f949c6cf9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
d1a112edda4fa487522010a6330f67defe6359a4)
Robert Varga [Tue, 31 May 2022 18:37:29 +0000 (20:37 +0200)]
Fix state transition thinko
The future returned from reconnect strategy may have completed before
we add a listener. Make sure we record the future before adding the
listener.
Also change checkState() to a verify() with a proper identity check
to work with nulls and a proper message.
JIRA: NETCONF-827
Change-Id: Ica152cd1445e797c122e542aa1138232f11c6736
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
5e9f3517718f4475c3026acba0a5afb6f19388fa)
Robert Varga [Tue, 31 May 2022 20:27:53 +0000 (22:27 +0200)]
Fix session logging
We are using 'this' for session name -- that refers to the anonymous
class, leading to confusing logs. Fix that by passing the proper
session. This allows us to use a simple lambda instead.
Change-Id: I10080ef1f55d260af3a1ca8b62a58510d0feec87
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
1581d8d1ac5205e45409ab48c1034a23d8b8a7ee)
Robert Varga [Tue, 31 May 2022 18:35:08 +0000 (20:35 +0200)]
Eliminate ReconnectingStrategyListener
Use a private method and a lambda to make the lifecycle cleared.
Change-Id: Ie57025a7fe60830ca2711272748b1ed6ea84dbdf
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
0cca635f76cb935c3a8d8bb62abe3e9383276a0c)
Robert Varga [Tue, 31 May 2022 18:29:24 +0000 (20:29 +0200)]
Eliminate BootstrapConnectListener
Use a simple method and a method handle instead of an explicit
class. This makes things a tad simpler on synchronization side of
things.
Change-Id: Id341b8a3ff124bd95a1e4e14f60721e6b443f72b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
a33c469af7ba77c86a89fb1637c6e65bc9cf234b)
Robert Varga [Tue, 31 May 2022 18:25:03 +0000 (20:25 +0200)]
Reduce ReconnectingStrategyListener nesting
We do not need to nest the two listeners into each other. This is the
first step to eliminating both of them.
Change-Id: I3af5797dcccc3e82e9c28731b082e1f4014aba74
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
3b229907bacd02c1a37174d84945a34c468c1d95)
Robert Varga [Tue, 31 May 2022 18:21:31 +0000 (20:21 +0200)]
Remove superfluous this. qualifier
We have some unnecessary verbosity here, ditch it to simplify access.
Change-Id: Idf94706a60169741e7e5a4deec0f17cf87a313d8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
d31802bfa8ab119aa41c4a859446764480424d9d)
Robert Varga [Sat, 28 May 2022 06:54:41 +0000 (08:54 +0200)]
Bump upstreams
Adopt:
- yangtools-8.0.6
- mdsal-9.0.4
- controller-5.0.5
- aaa-0.15.5
Change-Id: Idad1e66535b85f9e309cca32e0d7294f706170fe
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 17 May 2022 09:53:23 +0000 (11:53 +0200)]
Centralize NetconfNode/InetSocketAddress conversion
The process of creating a RemoteDeviceId and/or the target
InetSocketAddress is duplicated in a number of places, each slightly
different.
Centralize conversion in netconf.topology.spi and use it from there,
which leads us to topology-singleton being able to use non-IP addresses.
JIRA: NETCONF-875
Change-Id: I5c4a610eb4f4b3cd6586198d5e9a4b84b476d351
Signed-off-by: Rohini.Ambika <rohini.ambika@infosys.com>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
90dcdd5d040eb22b74e87baccffd70a30d93bfc0)
Robert Varga [Tue, 17 May 2022 09:35:35 +0000 (11:35 +0200)]
Cleanup ActorProxyNetconfServiceFacade
Use Futures.immediateFuture(), but mark a FIXME, where we should really
be getting a response.
Change-Id: I73e1f1620df83b76d266ed8980d86bb40634a614
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
622b6917095076cbdb8478863cdd5fad2988f65a)
Robert Varga [Tue, 17 May 2022 09:11:48 +0000 (11:11 +0200)]
Prefer java.time.Duration
Use Java 8 Duration instead of Scala's version. Actors then convert
to Scala as needed.
Change-Id: Id1301c9c67a8a301aa20aafafdbd387865c2cf3b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
7d83179b4d81e63eeb5c1c1adf4794c6e74c5709)
Robert Varga [Fri, 13 May 2022 05:56:41 +0000 (07:56 +0200)]
Bump versions to 3.0.4-SNAPSHOT
This starts the next development iteration.
Change-Id: I725e62f32d850cb2c65064740d593ff50b968b0a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Sangwook Ha [Fri, 6 May 2022 17:14:04 +0000 (10:14 -0700)]
Fix PATCH request issue with top-level container as target
PATCH request to the data root with a top-level container as
target does not work because JsonPatchBodyReader and
XmlPatchBodyReader expect a parent statement in the stack.
Address the issue by setting target schema node to the path
schema context when stack is empty and add test cases for
JsonPatchBodyReader and XmlPatchBodyReader.
JIRA: NETCONF-877
Change-Id: Ibb65ccdf3f03d8a9a9023d75bf288e5e4416ca50
Signed-off-by: Sangwook Ha <sangwook.ha@verizon.com>
Robert Varga [Thu, 12 May 2022 20:25:23 +0000 (22:25 +0200)]
Bump json-unit-assertj to 2.35.0
No explicit release notes.
Change-Id: I7f8236f2784984d0913e505fddcb2fbaa65f00d4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 12 May 2022 14:23:19 +0000 (16:23 +0200)]
Bump upstream versions
Adopt:
- odlparent-10.0.2
- infrautils-3.0.1
- yangtools-8.0.5
- mdsal-9.0.3
- controller-5.0.5
- aaa-0.15.4
Change-Id: I9d78b5a9538801854910a0621a9ebab60fac0414
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 12 May 2022 15:31:47 +0000 (17:31 +0200)]
Fix checkstyle
There are a few violations, fix them up.
Change-Id: I2c6b766692725975e216c714f7d46b2e833cf80e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 12 May 2022 15:21:16 +0000 (17:21 +0200)]
Bump argparse4j to 0.9.0
https://github.com/argparse4j/argparse4j/releases/tag/argparse4j-0.9.0
Change-Id: Iba7c6c0612ab39060ec0a7e4672d4b6a1b584477
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 9 May 2022 09:20:42 +0000 (11:20 +0200)]
Do not access model context multiple times
InstanceIdentifierContext has a capture of the model context, use it
from there instead of accessing it multiple times.
Change-Id: Ia29bf5a3e80d164c08ef338649080cb4f48ce4a5
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
365a4ee24f4760a4e09b72d4959f618479dccf2a)
Robert Varga [Sun, 24 Apr 2022 23:43:26 +0000 (01:43 +0200)]
Bump versions to 3.0.3-SNAPSHOT
This starts the next development iteration.
Change-Id: Ic48dc72fe4455a60ac54a901f14966b576e4cd51
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 24 Apr 2022 23:41:56 +0000 (01:41 +0200)]
Bump upstream versions
Adopt:
- controller-5.0.3
- aaa-0.15.3
Change-Id: I3de5aed583bd97806c54a314d91f1efd96ff5f25
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Peter Suna [Wed, 20 Apr 2022 13:10:07 +0000 (15:10 +0200)]
Fix docgen for action types
When we are processing actions we need to adjust the stack to enter
each of them for the duration of traversal. Also add the corresponding
test.
JIRA: NETCONF-872
Change-Id: I5aae78380073c4d5c876b888b22cd41a2657db2d
Signed-off-by: Peter Suna <peter.suna@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
c071cca8814ea78b05ca45defa6d74ed5a2c4029)
Robert Varga [Thu, 14 Apr 2022 13:54:51 +0000 (15:54 +0200)]
Bump versions to 3.0.2-SNAPSHOT
This starts the next development iteration.
Change-Id: If73d3e904751ad95cac65395a3ade3d680c5ea22
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 14 Apr 2022 12:25:13 +0000 (14:25 +0200)]
Bump upstreams
Adopt:
- yangtools-8.0.3
- mdsal-9.0.2
- controller-5.0.2
- aaa-0.15.2
Change-Id: I085f1c8f3e6cc694ae43a3d43dc38c726c8a0f0e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 12 Apr 2022 16:06:10 +0000 (18:06 +0200)]
Do not use RestUtil.resolveBaseTypeFrom()
Derived types have been using their proper type for a long time now
and there is essentially cannot be a semantic difference between a
derived/restricted type which would make any difference during
resolution. Ditch the base type lookup and just use the type at hand.
JIRA: NETCONF-837
Change-Id: I21afc3ac15c954358f62070065531e75ff360924
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 12 Apr 2022 16:04:06 +0000 (18:04 +0200)]
Remove RestCodec
Inline the final simple type handling into prepareValueByType(),
rendering RestCodec superfluous.
JIRA: NETCONF-871
Change-Id: Ie649e28d4333e3c57b49a3593c639474a0c930ad
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 12 Apr 2022 15:56:40 +0000 (17:56 +0200)]
Move StringModuleInstanceIdentifierCodec
Peel the instance-identifier case from RestCodec to prepareValueByType()
and move StringModuleInstanceIdentifierCodec to be co-located with its
sole user.
JIRA: NETCONF-871
Change-Id: If731522204427b5467c3575c91944737fc18e1bc
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 12 Apr 2022 15:47:46 +0000 (17:47 +0200)]
Remove RestCodec's identityref handling
The sole caller is intercepting IdentityrefTypeDefinition before
invoking this method, so this code is dead. Remove it.
JIRA: NETCONF-871
Change-Id: I1f2a9b2f343c7b802e8c61c755a9f2a4c5b56394
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 12 Apr 2022 15:28:28 +0000 (17:28 +0200)]
Remove IdentityrefCodecImpl and rename ObjectCodec
IdentityrefCodecImpl is not referenced anywhere and removing it makes
RestCodec empty. Move ObjectCodec into its place instead and squash it
to a single static method.
JIRA: NETCONF-871
Change-Id: Idbb072c1dcfbeebfd80cdc73751adf81ad9816f5
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 12 Apr 2022 15:25:00 +0000 (17:25 +0200)]
Remove IdentityrefCodecImpl
This class is completely unreferenced, remove it.
JIRA: NETCONF-871
Change-Id: Ifbeedeebe8d3f308a3405ce0eddf7ce5f0a1ce27
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 12 Apr 2022 15:23:36 +0000 (17:23 +0200)]
Remove InstanceIdentifierCodecImpl
This class is completely unused now. Remove it along all utility methods
it is referencing.
JIRA: NETCONF-871
Change-Id: I549293c108a1a2f92dc9204b843bb1e803ce7166
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 12 Apr 2022 15:20:04 +0000 (17:20 +0200)]
Propagate invariants of ObjectCodec callers
The serialize() method is never called, hence we can just remove it.
The deserialize() method always gets a String, hence we can just bypass
the dance with references and whatnot.
JIRA: NETCONF-871
Change-Id: I405306e5e5aacf2f15f9a936f77b3ab841cc98d4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 12 Apr 2022 14:59:03 +0000 (16:59 +0200)]
ObjectCodec does not need a mount point
There is only one caller and that caller is not passing a mount point,
propagate that invariant.
JIRA: NETCONF-871
Change-Id: I4a5a312cce87be3176b9757e5bfdde6538c229d0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 12 Apr 2022 14:54:08 +0000 (16:54 +0200)]
Move ObjectCodec to its own file
This the beef of RestCodec, make sure it is a top-level construct.
JIRA: NETCONF-871
Change-Id: I314cc3f91ca3c5e7e2d4e6d7310507541e1cd843
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 5 Apr 2022 10:47:03 +0000 (12:47 +0200)]
Fix CCE in DefinitionGenerator
decimal64 is mapped to its own type, not BigDecimal. Adjust the cast
and convert to BigDecimal.
JIRA: NETCONF-870
Change-Id: Idce468ed2728f472431ed325ab8dcb2a1e449118
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 4 Apr 2022 19:38:35 +0000 (21:38 +0200)]
Simplify SSE mocking
The springboard through interface default method does not quite work,
rework the mock to not use it.
Change-Id: Iec36b42762c901ae7f0fc83072abbb6c2e12c553
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 4 Apr 2022 14:59:45 +0000 (16:59 +0200)]
Remove unused spying
KeepaliveSalFacadeTest has a bit of useless mocking/spying. This is
failing with JDK17. While we would want to mock the behavior exactly
without delays, use real executor for now.
Change-Id: I462852fb8ed56ed5370d7036bc2c3c862129dce1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 4 Apr 2022 12:48:33 +0000 (14:48 +0200)]
Use SoftSchemaSourceCache
GuavaSchemaSourceCache is deprecated, use SoftSchemaSourceCache instead.
Change-Id: Ie7334e28eafefc60e3e4b7521b8c685df3b25e97
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 4 Apr 2022 08:28:07 +0000 (10:28 +0200)]
Trim NodeIdentifierWithPredicates from post path
The identifier we are getting from DataSchemaContextTree does not have
correct predicates filled it. Make sure to trim it, as we are restoring
it properly after parse.
JIRA: NETCONF-869
Change-Id: Ia5103e25d0c2790c5c31bea356a29b69f43618b6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 30 Mar 2022 14:06:51 +0000 (16:06 +0200)]
Bump versions to 3.0.1-SNAPSHOT
This starts the next development iteration.
Change-Id: Ic2634d0b2f04a17f2b451f7004783475a8ce421b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 27 Mar 2022 14:51:43 +0000 (16:51 +0200)]
Reject consecutive slashes
Tweak are default handling of consecutive slashes to be compliant with
RFC8040.
JIRA: NETCONF-867
Change-Id: Iff654d24d6107bdd9dc1e670e51dca6d042d0574
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 27 Jan 2022 19:17:12 +0000 (20:17 +0100)]
Bump upstreams to SNAPSHOTs
Adopt:
- odlparent-10.0.0
- infrautils-3.0.0
- yangtools-8.0.2
- mdsal-9.0.1
- controller-5.0.1
- aaa-0.15.1
This also ditches last references to SchemaNode.getPath(), replacing
such references with SchemaInferenceStack.Inference and related
operations.
JIRA: NETCONF-818
Change-Id: I99a02e3b4e831d32013fa722d2bda3932c873ffc
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Signed-off-by: Tomas Cere <tomas.cere@pantheon.tech>
Robert Varga [Mon, 28 Mar 2022 22:24:54 +0000 (00:24 +0200)]
Fixup processing reporting
We need to report the events as done even if the downstream writer does
not accept the object model. If we do not, we will get confused about
how the node should be processed.
JIRA: NETCONF-868
Change-Id: I5a76c5a2af79ecaaf4c80f832774b08d60d03379
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Sangwook Ha [Sun, 27 Mar 2022 22:15:29 +0000 (15:15 -0700)]
Support AnydataNode in ParameterAwareNormalizedNodeWriter
AnydataNode is not processed in ParameterAwareNormalizedNodeWriter
throwing IllegalStateException. Add a step to check/process AnydataNode
in wasProcessAsSimpleNode().
JIRA: NETCONF-868
Change-Id: I637890ff6779d0a532ee6d4182e4c36baa4f5231
Signed-off-by: Sangwook Ha <sangwook.ha@verizon.com>
Robert Varga [Fri, 25 Mar 2022 19:12:22 +0000 (20:12 +0100)]
Reconstruct inference stack during normalization
Centralize allocation of Inference, adjusting tests to take advantage of
this facility. This also hides the public InstanceIdentifierContext, so
that we get clarity as to the actual context in which we are executing.
AbstractFieldsTranslatorTest is refactored to remove mocking and
correctly bind to the undelying model.
This temporarily picks up yang-model-util-7.0.15 for
restconf-{common,nb-rfc8040}, so as to gain access to new methods of
DataSchemaContext{Node,Tree}.
JIRA: NETCONF-818
Change-Id: Iaf3362877261f3caaebfb4ec98ef6de792139f12
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 25 Mar 2022 23:44:17 +0000 (00:44 +0100)]
Do not re-acquire global schema context
The context is bound at NormalizedNodeContext creation time, let's
make sure we do not change that.
JIRA: NETCONF-818
Change-Id: I7ec6296c2703b3689aa0c464874ede37695d9065
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 25 Mar 2022 22:28:48 +0000 (23:28 +0100)]
Peel rfc8040 tests from InstanceIdentifierContext constructor
Migrate more callers to replacement methods.
JIRA: NETCONF-818
Change-Id: Iac89d4cfa19d15ff525078776ce73a9ee2bfc7df
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 25 Mar 2022 22:31:16 +0000 (23:31 +0100)]
Do not expose YangInstanceIdentifier on output
Output codecs do not care about this information, do not fill it in.
JIRA: NETCONF-818
Change-Id: I6aeaa68d244958960ac455d34247816852220d5a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 25 Mar 2022 21:55:49 +0000 (22:55 +0100)]
Use Builders.containerBuilder()
Ditch the direct reference to implementation and use Builders
indirection instead.
Change-Id: Ic05d64b63100e9e8b6eb5dacafa787ad2b49e52d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 25 Mar 2022 21:27:24 +0000 (22:27 +0100)]
No not create YangInstanceIdentifier for a response
In the output path nobody cares about the instance identifier, simplify
the code instead.
Change-Id: Ib8ec7d8a27d295724d994f3f855b6e0062188435
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 25 Mar 2022 21:33:40 +0000 (22:33 +0100)]
Finish bierman02 test migration
Eliminate last callers of public InstanceIdentifierContext constructor.
JIRA: NETCONF-818
Change-Id: I175c9d556c1922b0fdfee611517c8a47d52826d7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 25 Mar 2022 19:01:28 +0000 (20:01 +0100)]
Peel another RPC invocation site
Another site with pure RPCs, make sure to peel it off.
JIRA: NETCONF-818
Change-Id: I7d5e3aa473b5641a6efa902394b6d9f39a8e7278
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 25 Mar 2022 18:35:11 +0000 (19:35 +0100)]
Peel of RPC invocation InstanceIdentifierContext
Here is a confusing site, which could ned up holding an
InstanceIdentifier, which is not valid. Peel it off.
JIRA: NETCONF-818
Change-Id: I2184afd2d5e750b60b471f7d5d009e038b4b7017
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 25 Mar 2022 17:44:30 +0000 (18:44 +0100)]
Improve RFC8040 tests
We have a few tests using @Test(expected), improve them by using
assertThrows() and performing some assertions.
Change-Id: I378c1108c43e42f7af2b0dc54bab23263a2acae3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 25 Mar 2022 17:35:13 +0000 (18:35 +0100)]
Add two more InstanceIdentifierContext conversions
We have two more callers which can we easily migrated, do that.
JIRA: NETCONF-818
Change-Id: I8aa8563de7cd82300abb026cfd706257e55a1efb
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 25 Mar 2022 15:40:18 +0000 (16:40 +0100)]
Do not propagate mountpoint in RestconfImpl.getModules()
The mount point reference is ignored, just do not propagate it.
JIRA: NETCONF-818
Change-Id: Ibdd27795725357c41b19cd942a4f701aab3f88ce
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 25 Mar 2022 14:50:57 +0000 (15:50 +0100)]
Peel DataSchemaNode-only users of InstanceIdentifierContext
A number of callers are not providing a YangInstanceIdentifier, peel
them off into a separate instantiation method.
JIRA: NETCONF-818
Change-Id: Ic92cbc469d66e3e8ad957bde73c2f858b0daa8f2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 25 Mar 2022 14:21:39 +0000 (15:21 +0100)]
Peel bierman02 local RPC test invocations
We have a few callers dealing with RPCs. Peel them to a new factory
method. Also fixes and enables a previously-disabled test.
JIRA: NETCONF-818
Change-Id: I888069dee94307003905bfa615b03ecccc202c11
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 25 Mar 2022 14:03:30 +0000 (15:03 +0100)]
Simplify RestconfImplTest mocking
Mocking here is ... interesting. Simplify to base interfaces.
JIRA: NETCONF-818
Change-Id: I6cf6be6f53a7085019798e048dc202adb79bdf7c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 24 Mar 2022 13:31:42 +0000 (14:31 +0100)]
Integrate DataNormalizationOperation with SchemaInferenceStack
This is a backport of changes made for YANGTOOLS-1412, adjusted to the
legacy code in bierman02. These will allow us to use a proper inference.
JIRA: NETCONF-818
Change-Id: Ia3234443e26ff985b823e92d942262dfdeeef29e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Samuel Schneider [Thu, 3 Mar 2022 09:14:22 +0000 (10:14 +0100)]
Fix Stackoverflow in sal-rest-docgen
Add escaping of chars which underlying library
consider as special characters (and we do not).
JIRA: NETCONF-713
Change-Id: Ife63c31cd9c4912a74db10562b9f927623bc4695
Signed-off-by: Samuel Schneider <samuel.schneider@pantheon.tech>
Robert Varga [Thu, 24 Mar 2022 20:36:43 +0000 (21:36 +0100)]
Improve DataNormalizer performance
We are using ImmutableList.Builder and build() at each step to pass
arguments down to checkArgument(). That's wasteful, let's rather pay
the cost of a single ImmutableList.copyOf() -- which breaks even at
three path arguments.
Change-Id: I586761f5e8f8e39f1be3c85bc5e9181c1681e6fd
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 24 Mar 2022 12:40:10 +0000 (13:40 +0100)]
Fix DataNormalizationOperation with nested choices
This is a port of YANGTOOLS-1411 to the legacy codebase.
Change-Id: Iff3ac515f4bd763c1c7b7905508fca3b5dc277c7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 24 Mar 2022 12:30:16 +0000 (13:30 +0100)]
Do not shuffle PathArguments needlessly
There is no point in creating a separate collection if we are not
doing anything with it.
Change-Id: I3199c7232c63464b315eff8f69aac98181946ebd
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Peter Puškár [Mon, 14 Feb 2022 12:44:52 +0000 (13:44 +0100)]
Fix notification serialization with odl-leaf-nodes-only
Rather than attempting to roll a SchemaPath from PathArguments, use the
provided tool to perform that function -- in a centralized manner.
Add tests to cover serialization of augmentation and choice nodes.
JIRA: NETCONF-848
Change-Id: I9f6dffd9532bd3d52021bbac58473c3cf3b58937
Signed-off-by: Peter Puškár <ppuskar@frinx.io>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 23 Mar 2022 08:54:08 +0000 (09:54 +0100)]
Consider RPC/Actions terminal nodes
Our treatment of RPCs and Actions is rather funky, disregarding
namespaces and not stopping intepretation when we bind a request path
step to one of them. Such request URIs are strictly illegal, so reject
them and clean up internal structure to not go off into unexplained
states.
JIRA: NETCONF-866
Change-Id: Iae23db7e48b21309757fbaa1ad0dea627e6ea533
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 22 Mar 2022 11:16:10 +0000 (12:16 +0100)]
Separate out more constructor callers
We have four call sites which create a new InstanceIdentifierContext
with equal state, but with a concatenated YangInstanceIdentifier.
Centralize that concat operation, which will makes things easier down
the line.
JIRA: NETCONF-818
Change-Id: I2d0da91756cd9ebf451343454f20485d0d8b0978
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 22 Mar 2022 09:00:44 +0000 (10:00 +0100)]
Remove use of DOMRpcRouter.create()
We should be using plain constructor, migrate away.
Change-Id: Idef7be1ba633c2d54e5f7f0a62e7e3996edf0813
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 22 Mar 2022 08:57:05 +0000 (09:57 +0100)]
Ditch use of RpcDefintion.getOutput().getPath()
This does not solve much, but reduces clutter a bit.
JIRA: NETCONF-818
Change-Id: I2028703449459f1fac7ee8774dd26125420b7308
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 22 Mar 2022 07:37:29 +0000 (08:37 +0100)]
Revert "Revert "Replace #getPath in processInstanceIdentifierType""
This reverts commit
91ca58fe53758c0909f3e2ebea9c206768348410,
reinstating
445e898b86ffe443776037e0fc769ddce3d19f58.
Change-Id: I656a50b3f1d38511ebb432f294611f0a788820c2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 21 Mar 2022 21:27:15 +0000 (22:27 +0100)]
Deprecate public InstanceIdentifierContext
We need to reign in semantics of what different combinations of callers
we have and what are they trying to achieve. Deprecate the public
constructor and expose static methods to create instances with
appropriate shape.
JIRA: NETCONF-818
Change-Id: I452e92cd5e7f46bccb9b00799894aa7ee375cc48
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 21 Mar 2022 19:27:08 +0000 (20:27 +0100)]
Make InstanceIdentifierContext final
In order to deal with SchemaNode.getPath() going away, we have to keep
a very good handle on InstanceIdentifierContext and what the actual
possibilities are. As a first step, make it final and do not allow it to
be mocked.
JIRA: NETCONF-818
Change-Id: I1666e28c3d1801943f623d80a934079d5ff08b51
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 21 Mar 2022 16:29:03 +0000 (17:29 +0100)]
Build Absolute schema node identifier along with YangInstanceIdentifier
The nested notification transformation algorithm is rather lacking -- it
does not really deal with anything but 'container' and 'list'. This
makes it borderline-trivial to eliminate the use of SchemaNode.getPath()
by keeping a List<QName> which is a companion to
YangInstanceIdentifierBuilder.
JIRA: NETCONF-817
Change-Id: I95290d7399ae1d729bb68e76e3bf902a930add4f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 21 Mar 2022 16:17:42 +0000 (17:17 +0100)]
Move SchemaNodeIdentifier construction
We allocate the Absolute identifier in the context where we should
have equivalent information. Also clean up field names a make proper
assertions on element type.
JIRA: NETCONF-817
Change-Id: I70fe78c079d50eaa73e1038d001c3c6abb8a0ecc
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 21 Mar 2022 16:02:50 +0000 (17:02 +0100)]
Rework NetconfMessageTransformer.toNotification()
The logic here is quite convoluted, separate out the individual
concern, which makes is easy to see we need getPath() only for nested
notifications. For those we are already creating a
YangInstanceIdentifier, hence adding the proper path should be a breeze.
JIRA: NETCONF-817
Change-Id: Iea59a24d485f138064063dc92e2862dbd21a69b1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 21 Mar 2022 15:25:18 +0000 (16:25 +0100)]
Remove a superfluous groupId declaration
We are inheriting groupId from parent, remove the declaration.
Change-Id: I1264e314cb47855331f0add3f2f12b57bc92600d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 21 Mar 2022 14:45:22 +0000 (15:45 +0100)]
AbstractNotificationsData.writeNormalizedNode() should take inference
We have pretty much all the moving bits ready here, require callers to
provide the correct context. Also ditches some amount of SchemePath
wrangling.
Change-Id: I18a8366cffb9c4f45434ee505f767ad38d799f0a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 21 Mar 2022 14:22:06 +0000 (15:22 +0100)]
Remove unneeded warning suppressions
Baselines have lost some generic arguments, leading to cleaner code.
Eclipse is pointing out some superfluous suppressions -- remove them.
Change-Id: Ide247a3f88f0ae866794b22a7ab81fc5e81fe66c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 21 Mar 2022 14:05:48 +0000 (15:05 +0100)]
InstanceIdentifierContext does not take generics
The generic attribute here is completely useless and only has the
function of tying EffectiveModelContext to being a SchemaNode -- nothing
else. Remove the argument and adjust callers.
Change-Id: Ic70482786ad1141bb20123ecca2f25c40e83eaf8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 21 Mar 2022 11:21:58 +0000 (12:21 +0100)]
Do not reference SchemaNode.getPath() for operation results
The request is either an RPC or an action. We have the path for the
latter readily-available and construct it for the former. Update the
dispatch and clean up the source code a bit as well.
JIRA: NETCONF-817
Change-Id: Ie4e273e0eb499498c0d6b833fb11e4ca115ca989
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 21 Mar 2022 10:54:05 +0000 (11:54 +0100)]
Rework action indexing
Rather than relying on SchemaNode.getPath(), maintain a stack of QNames
representing the SchemaNodeIdentifier path.
JIRA: NETCONF-817
Change-Id: I8f224bb2c319a6f47e74b3590205c300e93031a0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 21 Mar 2022 07:52:41 +0000 (08:52 +0100)]
Revert "Remove SchemaNode#getPath usage from RestconfImplTest"
This reverts commit
b962a56278c0d0ad060cfbd02387821a878ee98f. The
proposed transformation is not valid.
Change-Id: I82be944a90cfef738a41efd86dbed0a936c5999e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
da2fd498afd99d94002f76681fe00b09f98f1583)
Robert Varga [Mon, 21 Mar 2022 07:52:37 +0000 (08:52 +0100)]
Revert "Replace #getPath in processInstanceIdentifierType"
This reverts commit
445e898b86ffe443776037e0fc769ddce3d19f58. The
proposed transformation is not valid.
Change-Id: I6479f27151191c2211682bcea8253b0439e9103e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
349b7feaaf62630e9221017d72d65d369072a8d7)
Robert Varga [Mon, 21 Mar 2022 07:52:17 +0000 (08:52 +0100)]
Revert "Remove SchemaNode#getPath usage from JsonNormalizedNodeBodyReader"
This reverts commit
ec6ea24581c692b474fafe17fb27259dbe94026d. The
proposed transformation is not valid.
Change-Id: I291ff37a932cd074fb4a2467fbaa37748bf64fb6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
dc2ca9d4e73d6b110d6cb4a00051e1b03b95fc82)
Robert Varga [Mon, 21 Mar 2022 07:52:14 +0000 (08:52 +0100)]
Revert "Remove SchemaNode#getPath from JSON reader in rfc8040"
This reverts commit
d3403542792afb6f6a6525a088b27163236070f2. The
proposed transformation is not valid.
Change-Id: I73453f4f196fc64919f08b165b382a2df69d3a5e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
5cb901dc8be360d836abee8f8a222a981689e2f2)
Robert Varga [Mon, 21 Mar 2022 07:51:36 +0000 (08:51 +0100)]
Revert "Remove SchemaNode#getPath from XML writer in rfc8040"
This reverts commit
d21d2fe3c6e1784e6ec407b86c6eac75ba3bba66. The
proposed transformation is not valid.
Change-Id: Ib5798243764106e2ce270fa995d1abfc0ef4499b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
9c6d80b35d29969d989b2173120bde2daae56568)
Robert Varga [Mon, 21 Mar 2022 07:51:14 +0000 (08:51 +0100)]
Revert "Remove SchemaNode#getPath from XML writer test in rfc8040"
This reverts commit
ed024cc0db69c3f026f5e109af680e162a484572. The
proposed transformation is not valid.
Change-Id: Ia56b7cd18d940d418b2f52f280b4545811dde8cc
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
3d20b6b9e8a69584859acae0c6ef92e888596e99)
Robert Varga [Mon, 21 Mar 2022 09:20:37 +0000 (10:20 +0100)]
Revert "Remove SchemaNode#getPath usage from JsonPatchBodyReader"
This reverts commit
ca56779056f1e1c4edb89e689b07a88105421cae. The
assumptsions being made are just not correct.
Change-Id: I720bffc847713198d3016be4f17d896fb9ba815b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 21 Mar 2022 09:20:23 +0000 (10:20 +0100)]
Revert "Remove SchemaNode#getPath usage from ListenerAdapter"
This reverts commit
98ff16cef35edce6fe6f53fe4023a2d24edbee1b. The
assumptsions being made are just not correct.
Change-Id: Ia7d4f7b9ce1340025820de8023b53b350f9a6c79
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 21 Mar 2022 09:20:12 +0000 (10:20 +0100)]
Revert "Remove SchemaNode#getPath from JSON writer in rfc8040"
This reverts commit
5534751c2768eb8c866f1278e5647639ae5bff81. The
assumptsions being made are just not correct.
Change-Id: I2dcbda5e7e1b03a6c1cc24b6117a4a138e39c20e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>