netconf.git
4 years agoRemove jsr173-ri from dependencies 83/86483/1
Robert Varga [Wed, 18 Dec 2019 14:36:17 +0000 (15:36 +0100)]
Remove jsr173-ri from dependencies

JSR173 is part of JRE, hence there is no point to inherit this
dependency. It also helps to have our releases consumable from
Central (which does not carry the .jar).

Change-Id: Iba78f955c8da0b9f0f49ebfa7893094ce8f6931c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoRemove ARIES-1923 workaround 38/86438/1
Robert Varga [Mon, 16 Dec 2019 21:03:55 +0000 (22:03 +0100)]
Remove ARIES-1923 workaround

We now have proper monkey-patch in place and can therefore remove
this workaround.

Change-Id: Ibdccb625f951c1dcd248fbb86176a8474842fd5e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoBump odlparent/yangtools/mdsal to 6.0.3/4.0.3/5.0.6 68/86368/2
Robert Varga [Thu, 12 Dec 2019 07:01:49 +0000 (08:01 +0100)]
Bump odlparent/yangtools/mdsal to 6.0.3/4.0.3/5.0.6

Pick up the latest upgrades and fixes.

Change-Id: If80c79f631d97b602b908f633f92d8aca4e90cda
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoBump to odlparent-6.0.1/yangtools-4.0.2/mdsal-5.0.4 18/85618/1
Robert Varga [Wed, 6 Nov 2019 14:09:37 +0000 (15:09 +0100)]
Bump to odlparent-6.0.1/yangtools-4.0.2/mdsal-5.0.4

This picks up latest upgrades and fixes.

Change-Id: I8db358b0af81394a561071d98bffea168dda47cc
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoCorrectly close NormalizedNodeStreamWriters 73/85573/1
Robert Varga [Tue, 5 Nov 2019 06:50:48 +0000 (07:50 +0100)]
Correctly close NormalizedNodeStreamWriters

This code ends up not not closing the stream writer correctly,
which means some state may end up being unfinished. Fix that up.

Change-Id: Icad45cd12d30e44dabe4f86e73a6790bd5137154
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoProperly close stream writer 48/85548/1
Robert Varga [Sun, 20 Oct 2019 09:23:48 +0000 (11:23 +0200)]
Properly close stream writer

Failing to close the streamwriter means it will not output its
trailer in all cases. Fix that.

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

4 years agoUpdating Action Rest Endpoints on Swagger UI 01/85501/2
ajay_dp001 [Sat, 2 Nov 2019 02:25:45 +0000 (02:25 +0000)]
Updating Action Rest Endpoints on Swagger UI

NETCONF-647

Signed-off-by: ajay_dp001 <ajay.deep.singh@est.tech>
Change-Id: I790d81a833bdcb611459b3418fbf66be2388e050

4 years agoFix config/oper reconciliation for leaf-lists 14/85114/6
wsx25289 [Tue, 15 Oct 2019 08:01:30 +0000 (04:01 -0400)]
Fix config/oper reconciliation for leaf-lists

When config and operational datastore both have same data, then if
we get data which has a leaf-list node by rests/data, it will fail,
because there is no code to process leaf-list.

Change-Id: I4724447158bf0a1a12e87145dcb361e8196b1170
Signed-off-by: Wsx25289 <10200860@zte.com.cn>
4 years agoDo not use toString() in looging messages 06/85406/1
Robert Varga [Mon, 28 Oct 2019 12:45:05 +0000 (13:45 +0100)]
Do not use toString() in looging messages

This eliminates unnecessary toString() calls, as logging implementation
will call it when necessary.

Change-Id: Ic3b45b9ae34c29951ed6eea94cae39c423b6ec26
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoRemove remaining use of compat DTO methods 96/85396/1
Robert Varga [Fri, 25 Oct 2019 13:25:51 +0000 (15:25 +0200)]
Remove remaining use of compat DTO methods

This fixes up the final three offenders.

Change-Id: I834fe08bae984d0e5798f5b30d68f7ed1d89f0cf
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoMigrate to use java.util.Optional 95/85395/1
Robert Varga [Fri, 25 Oct 2019 13:21:56 +0000 (15:21 +0200)]
Migrate to use java.util.Optional

Modernizer is pointing out this use of Guava, migrate it. Also clean
up builder use in this class.

Change-Id: I2a20e21fa1e767f594d0f20e9eebe6dce4e7996e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoMigrate setters 32/84932/7
Robert Varga [Mon, 7 Oct 2019 05:59:21 +0000 (07:59 +0200)]
Migrate setters

This migrate Binding DTO setter usage to use Uint types, fixing
deprecation warnings.

Change-Id: I6eb6224ccaca1444c686eec52b36afa625939557
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoAdjust for AAA ditching WebClient 90/84790/20
Robert Varga [Fri, 27 Sep 2019 15:15:19 +0000 (17:15 +0200)]
Adjust for AAA ditching WebClient

This adjust for the fact AAA is using Java 11 HttpClient.

Change-Id: Ie0afd4db88828fa76581b830e74819344d19b916
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoRemove superfluous checkstyle/spotbugs configuration 82/85282/1
Robert Varga [Mon, 21 Oct 2019 04:12:43 +0000 (06:12 +0200)]
Remove superfluous checkstyle/spotbugs configuration

odlparent is already configuring these, remove the declarations.

Change-Id: I309cd92b5096f6ec2c2d025f0ba735412dc94720
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoAcquire RFC8528 mount point map 90/85090/1
Robert Varga [Thu, 26 Sep 2019 15:58:35 +0000 (17:58 +0200)]
Acquire RFC8528 mount point map

This adds the logic to create a mountpoint map, without supporting
inline schemas and recursion.

Change-Id: I2a9306fd9e021f1b13b9bbac96cfe83e35c5285f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoBump mdsal to 5.0.3 64/85064/1
Robert Varga [Fri, 11 Oct 2019 14:11:04 +0000 (16:11 +0200)]
Bump mdsal to 5.0.3

This bumps mdsal to 5.0.3 to workaround issues with Blueprint
injection.

Change-Id: I848c9220ce06ec7b4af304ab64948bdc30257dbd
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoBump mdsal to 5.0.2 47/84147/43
Robert Varga [Mon, 2 Sep 2019 17:30:16 +0000 (19:30 +0200)]
Bump mdsal to 5.0.2

This bumps mdsal to 5.0.2 as part of Magnesium MRI.

Change-Id: Id9ab45edf28477dca8acf8f7538cfd26f237f6f4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoBump yangtools to 4.0.1 46/84146/40
Robert Varga [Mon, 2 Sep 2019 17:29:40 +0000 (19:29 +0200)]
Bump yangtools to 4.0.1

This bumps yangtools to 4.0.1 as part of Magnesium MRI.

Change-Id: I6228c73d31721c8427e7f456afd5ab3ff715c88b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoUpdate for sshd-2.3.0 changes 93/84493/14
Robert Varga [Mon, 16 Sep 2019 02:24:45 +0000 (04:24 +0200)]
Update for sshd-2.3.0 changes

sshd-2.3.0 changed APIs slightly, this makes the simple migration
of our code.

Change-Id: Ic525b317356a8d9ee3b0ad0b8a0fa78e10d2b482
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoBump odlparent to 6.0.0 45/84145/32
Robert Varga [Mon, 2 Sep 2019 17:29:11 +0000 (19:29 +0200)]
Bump odlparent to 6.0.0

This bumps odlparent to 6.0.0 as part of Magnesium MRI.

Change-Id: I19505dd80b832cd6ed8b68daf471d9e90d3dfdd2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoMake negotiationFuture final 87/84987/1
Robert Varga [Tue, 8 Oct 2019 10:28:05 +0000 (12:28 +0200)]
Make negotiationFuture final

It is obvious this is field does not change once constructed, make
sure constructors reflect that.

Change-Id: Ib867ba94775c52b241f7044ac6388c4263ad5074
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoApply modernizations 30/84930/2
Robert Varga [Sun, 6 Oct 2019 16:41:47 +0000 (18:41 +0200)]
Apply modernizations

Replace Guava constructs with their Java 8 equivalents.

Change-Id: Idfba9bbba34620fa9d40d611f76632b28dbf55eb
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoUntangle NetconfDevice setup 45/84745/4
Robert Varga [Thu, 26 Sep 2019 12:08:40 +0000 (14:08 +0200)]
Untangle NetconfDevice setup

NetconfDevice sets up the device connection in multiple stages,
which is all done in a messy way. Untangle the setup procedure,
so that we can properly hook up into it.

Change-Id: I612683153c58d0b319793440cbb06bfad7846e52
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoLower visibility to package 63/84863/2
Robert Varga [Tue, 1 Oct 2019 21:13:35 +0000 (23:13 +0200)]
Lower visibility to package

This is a private-class method, it is fair game to declare it as
package-private, as noone can observe it outside of the nest.

Remove the need for shenanigans and lower access to the sole
method.

Change-Id: I5d44202f28e21ce57666f607f5634191ff517f17
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoMigrate YangInstanceIdentifier.EMPTY users 75/84175/19
Robert Varga [Tue, 3 Sep 2019 10:27:41 +0000 (12:27 +0200)]
Migrate YangInstanceIdentifier.EMPTY users

This moves over to use the replacement empty() method.

Change-Id: I133d5025ee176e5487dbcd8f71517c990c299682
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoRemove restconf-artifacts 04/83904/5
Robert Varga [Thu, 22 Aug 2019 13:48:27 +0000 (15:48 +0200)]
Remove restconf-artifacts

As netconf-artifacts holds all that is needed to consume
our project's artifacts, this removes the duplicate
restconf-artifacts after downstreams have been fixed up.

Change-Id: I406ac03a6ab930cd049a2b7c6433e3a03265d7fb
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoBump mdsal to 4.0.6 25/84425/5
Robert Varga [Sat, 14 Sep 2019 02:04:27 +0000 (04:04 +0200)]
Bump mdsal to 4.0.6

This picks up latest fixes.

Change-Id: Iab74ff588673787123469f859125a336da87b209
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoBump yangtools to 3.0.5 24/84424/4
Robert Varga [Sat, 14 Sep 2019 02:04:05 +0000 (04:04 +0200)]
Bump yangtools to 3.0.5

This picks up latest fixes.

Change-Id: Id49b5713aa8feeed31aa690ad7011b0ce35a80ea
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoBump odlparent to 5.0.2 44/84144/18
Robert Varga [Mon, 2 Sep 2019 17:27:15 +0000 (19:27 +0200)]
Bump odlparent to 5.0.2

This bumps odlparent to pick up latest references.

Change-Id: Ica16c98bd6eeeb2530bdc9cee4bb7f198e4a6ab0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoReorganize transactionChainHandler usage. 79/84279/8
PeterSuna [Mon, 9 Sep 2019 11:45:43 +0000 (13:45 +0200)]
Reorganize transactionChainHandler usage.

Update transactionChainHandler to conform dependecny injection pattern.
Update DOMtransactionChain to be used multiple time.

JIRA: NETCONF-352
Change-Id: I26da73992ed2772f4f84e2a09788600b808283b3
Signed-off-by: PeterSuna <peter.suna@pantheon.tech>
4 years agoAdd pagination for mounted resources of apidocs 95/83895/7
Jie Han [Thu, 22 Aug 2019 12:06:24 +0000 (20:06 +0800)]
Add pagination for mounted resources of apidocs

Only show 20 yang resource for one page when there're
large amount yang resoures from a mount point such that
the explorer would not clash.

Change-Id: I7f7180ae7464407933cee49bd4fe8d24db216f77
Signed-off-by: Jie Han <han.jie@zte.com.cn>
4 years agoTeach RFC8040 restconf about actions 92/82992/18
ajay.dp001 [Wed, 10 Jul 2019 11:23:05 +0000 (12:23 +0100)]
Teach RFC8040 restconf about actions

This adds the handlers to route action requests through
DOMActionService and return results.

JIRA: NETCONF-618
Change-Id: I9d72fa5939b73beefbbb2e8030b1fa0a1f4ff935
Signed-off-by: ajay.dp001 <ajay.deep.singh@ericsson.com>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoConvert to using requireNonNull() 88/84188/5
Robert Varga [Wed, 4 Sep 2019 06:30:56 +0000 (08:30 +0200)]
Convert to using requireNonNull()

This is a second pass to migrate further Preconditions users
to java.util.Objects.requireNonNull().

Change-Id: Idb32790ae96957961628eae384c801931a203c08
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoUse java.util.Optional 61/84161/11
Robert Varga [Tue, 3 Sep 2019 07:22:51 +0000 (09:22 +0200)]
Use java.util.Optional

Modernizer is point out use of Guava's Optional, migrate to Java
equivalents.

Change-Id: I732ea429505c730ef7ab38d45849662265267e0b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoUpdate user-guide.rst 63/83663/5
Mario Abraham [Wed, 14 Aug 2019 10:18:22 +0000 (12:18 +0200)]
Update user-guide.rst

- added info about 2 different endpoints
related to RESTCONF

Issue-ID: NETCONF-500
Signed-off-by: Mario Abraham <mario.abraham@pantheon.tech>
Change-Id: If961757301dffc61dc55f9fc2f580c3632aaeaaa

4 years agoFix checkstyle 87/84187/1
Robert Varga [Wed, 4 Sep 2019 06:59:26 +0000 (08:59 +0200)]
Fix checkstyle

This updates more checkstyle issues identified.

Change-Id: I0560418e647b4305f8bbd362254983456c2f2222
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoRemove use of NodeIdentifierWithPredicates constructors 86/84186/1
Robert Varga [Wed, 4 Sep 2019 06:24:33 +0000 (08:24 +0200)]
Remove use of NodeIdentifierWithPredicates constructors

NodeIdentifierWithPredicates is becoming an abstract class, remove
references to its constructors.

Change-Id: I92f558978945867322d0e78229329e2fc7b0ca18
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoRemove use Files.toByteArray() 63/84163/5
Robert Varga [Tue, 3 Sep 2019 08:20:08 +0000 (10:20 +0200)]
Remove use Files.toByteArray()

We have Files.readAllBytes() as a replacement, use that.

Change-Id: Ie55e6ac3bc9be08713abcf985416a4682dbe9d6f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoUse Object.requireNonNull 60/84160/6
Robert Varga [Tue, 3 Sep 2019 07:21:19 +0000 (09:21 +0200)]
Use Object.requireNonNull

modernizer is pointing out these users, fix them up.

Change-Id: I67dba53d79ef24d464bb5e54685152d182fbbdb3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoFix checkstyle 59/84159/3
Robert Varga [Tue, 3 Sep 2019 07:20:52 +0000 (09:20 +0200)]
Fix checkstyle

Updated checkstyle is finding some issues, fix them up.

Change-Id: Id17bc94b4fdd2b8883dedc5e8736f9e1971aa900
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoRemove use NodeIdentifierWithPredices.getKeyValues() 58/84158/2
Robert Varga [Tue, 3 Sep 2019 07:39:54 +0000 (09:39 +0200)]
Remove use NodeIdentifierWithPredices.getKeyValues()

This method has been superseded by plain access, update accordingly.

Change-Id: I60c1c7ba6c61f3073bb7dc4ea85fa83c6e0933f2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoMove old ietf-restconf into odl-restconf-nb-bierman02 87/84087/2
Robert Varga [Fri, 30 Aug 2019 08:16:18 +0000 (10:16 +0200)]
Move old ietf-restconf into odl-restconf-nb-bierman02

This model is only used by this single artifact, and hence it
needs to be co-located there.

Change-Id: I0c1c86e68a90e75bff2ffeba7b69035a9f04dc5b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoTie SchemaContext.NAME and NetconfUtil.NETCONF_DATA_QNAME 17/83817/9
Robert Varga [Tue, 20 Aug 2019 14:58:17 +0000 (16:58 +0200)]
Tie SchemaContext.NAME and NetconfUtil.NETCONF_DATA_QNAME

These are referencing the same entity, except one with revision. Tie
them together so we can document what exactly is mean by these constants.

Change-Id: Ic6e64e1231506ec3a77123165aaf9454aa836c4f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoSeparate out DeviceSources(Resolver) 91/83991/8
Robert Varga [Mon, 26 Aug 2019 13:38:45 +0000 (15:38 +0200)]
Separate out DeviceSources(Resolver)

NetconfDevice is quite overloaded, making it unclear what methods
participate on each stage of context assebly. This separates out
DeviceSourcesResolver, so that the logic inside it is well contained
outside of NetconfDevice.

Change-Id: I3f05a73470f0c3b15fc6a111202bd5e0dacb92d3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoFix choice action request test 37/84037/1
Anna Bencurova [Wed, 28 Aug 2019 13:30:49 +0000 (15:30 +0200)]
Fix choice action request test

JIRA: NETCONF-639

Change-Id: Ic1d3a5b18ff64708fe9b55c3aa243b6a2db5c803
Signed-off-by: Anna Bencurova <Anna.Bencurova@pantheon.tech>
4 years agoSimplify base schema lookups 90/83990/7
Robert Varga [Mon, 26 Aug 2019 13:20:06 +0000 (15:20 +0200)]
Simplify base schema lookups

We are checking for notification support multiple times, this
refactors the code to that only once.

Change-Id: Iaf453fc1de7f22e8a38e296f442c560daf66bf93
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoPropagate MountPointContext to NetconfMessageTransformer 84/83984/11
Robert Varga [Mon, 26 Aug 2019 10:58:10 +0000 (12:58 +0200)]
Propagate MountPointContext to NetconfMessageTransformer

In order to deal with NETCONF mount points, the transformer needs
to understand the execution context here. This patch updates the APIs
to pass the context down and implementations to use an empty mount
point context.

Change-Id: I4b8e825b96e1063efaa8bbdc750d9c0d35d23d8d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoUpdate NodeIdentifierWithPredicates construction 35/84035/1
Robert Varga [Wed, 28 Aug 2019 12:10:30 +0000 (14:10 +0200)]
Update NodeIdentifierWithPredicates construction

Direct constructors are going away, use factory methods instead.

Change-Id: I14092a254320f12269c72304e70dcf7ee5f86e97
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoFix action lookups 46/83946/10
Robert Varga [Fri, 23 Aug 2019 16:05:42 +0000 (18:05 +0200)]
Fix action lookups

Actions, unlike RPCs, are not uniquely identified by their last
component, simply because they can be defined at any nest level --
and while their names can be equal, they can be completely different
things.

JIRA: NETCONF-639
Change-Id: Ic9f1df106240a26dd14a5f34de34a198945355c3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoTeach NETCONF about YANG 1.1 actions in cluster topology 93/83693/11
ajay.dp001 [Fri, 16 Aug 2019 11:38:39 +0000 (12:38 +0100)]
Teach NETCONF about YANG 1.1 actions in cluster topology

NETCONF allows invocation of actions but only in Non-cluster
topology which works absolutly fine but when invoked in cluster
topology it failed, usecase was not supported.

This patch provides support for Yang 1.1 action in cluster topology
NETCONF code base is updated to support action, can be invoked in
cluster topology.

JIRA: NETCONF-635
Change-Id: Ic7345f02224b098eafb0bd7c42f1d619309fe12d
Signed-off-by: ajay.dp001 <ajay.deep.singh@ericsson.com>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoTeach AbstractGet how to transform MapNodes 68/83868/5
Mario Abraham [Wed, 21 Aug 2019 13:23:52 +0000 (15:23 +0200)]
Teach AbstractGet how to transform MapNodes

Added case for MapNode interface in transformNormalizedNode() method

Issue-ID: NETCONF-538
Signed-off-by: Mario Abraham <mario.abraham@pantheon.tech>
Change-Id: I9fa1d7f364d3d68d715aab73473096795da4ed6b

4 years agoTeach BaseSchema about schema mounts 83/83983/5
Robert Varga [Mon, 26 Aug 2019 11:04:46 +0000 (13:04 +0200)]
Teach BaseSchema about schema mounts

We are moving towards the ability to interpret mount points, make
sure base schema interprets them as empty.

Change-Id: Ifa51bac1f51e5b8311e976d0344c0d91b312571c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoMake notification filter a simple lambda 89/83989/3
Robert Varga [Mon, 26 Aug 2019 12:57:31 +0000 (14:57 +0200)]
Make notification filter a simple lambda

There is no real value in having a variable for this piece of code,
make it a simple lambda.

Change-Id: I7ad83eb43dc3c1d0887bd249ec2ef9a1aaa95c58
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoMore SchemaContext reuse 79/83979/2
Robert Varga [Mon, 26 Aug 2019 10:41:47 +0000 (12:41 +0200)]
More SchemaContext reuse

This reuses SchemaContext across test invocations, speeding up
testing a bit.

Change-Id: I036fa6ce065b6a895b5926e10123af038ae5593e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoReuse schemacontext in ListenerAdapterTest 78/83978/2
Robert Varga [Mon, 26 Aug 2019 10:35:10 +0000 (12:35 +0200)]
Reuse schemacontext in ListenerAdapterTest

SchemaContext is an invariant here, make sure we reuse it across
tests.

Change-Id: Ieed76b452cfaf5bd6a6174badc4eace29650a230
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoReuse SchemaContext in RuntimeRpcTest 77/83977/2
Robert Varga [Mon, 26 Aug 2019 10:31:14 +0000 (12:31 +0200)]
Reuse SchemaContext in RuntimeRpcTest

This reuses SchemaContext across multiple invocations, saving some
time.

Change-Id: Ia8e35236b5415a2b8259f416f2e76776d2dcbe7d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoReuse schemaContext in mdsal-netconf-connector tests 76/83976/2
Robert Varga [Mon, 26 Aug 2019 10:26:28 +0000 (12:26 +0200)]
Reuse schemaContext in mdsal-netconf-connector tests

SchemaContext is well-known invariant, make sure we reuse it.

Change-Id: Id26988be0bd36a21bc4b0f227f5199d217a06300
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoReuse SchemaContext in NetconfCommandsImplTest 75/83975/2
Robert Varga [Mon, 26 Aug 2019 10:21:58 +0000 (12:21 +0200)]
Reuse SchemaContext in NetconfCommandsImplTest

SchemaContext is an invariant here, make sure we reuse it across
tests.

Change-Id: I41696a3fd60ab306888afeb3ccfc0a989bdf8fe0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoReuse SchemaContext in NetconfDeviceTopologyAdapterTest 74/83974/2
Robert Varga [Mon, 26 Aug 2019 10:21:33 +0000 (12:21 +0200)]
Reuse SchemaContext in NetconfDeviceTopologyAdapterTest

The SchemaContext is an invariant, make sure we reuse it across
tests.

Change-Id: Ib31ec637c15d50d9f7c105128e0ff5c31b9861bb
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoShare test model SchemaContext 73/83973/2
Robert Varga [Mon, 26 Aug 2019 10:14:28 +0000 (12:14 +0200)]
Share test model SchemaContext

There is no point really to construct this context multiple times,
as it is an invariant. This shaves off some time from test execution.

Change-Id: I4335181bb6992ce5fe1820a452b7a90e0ea14f3a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoFix schema source registrations not being cleared 88/83988/2
Robert Varga [Mon, 26 Aug 2019 12:48:01 +0000 (14:48 +0200)]
Fix schema source registrations not being cleared

When a device goes down, we need to clear the registration list, so
we do not touch them multiple times.

Change-Id: Ic2e67cd21d05a413882f1d3d37b33c5dfabe2261
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoIntroduce CREATE_SUBSCRIPTION_RPC_PATH 87/83987/2
Robert Varga [Mon, 26 Aug 2019 12:49:34 +0000 (14:49 +0200)]
Introduce CREATE_SUBSCRIPTION_RPC_PATH

This path is used multiple times, it does not really make sense
to create it each and every time.

Change-Id: Iabca29c2745cd046fc54c0b768fd675a25f6b493
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoImprove action lookup 45/83945/2
Robert Varga [Fri, 23 Aug 2019 15:55:06 +0000 (17:55 +0200)]
Improve action lookup

The code here is extremely twisty, but at the end of the day it
ends up creating the path to an action's input -- which we can
readily get from schema. Simplify the logic, speeding it up
significantly.

Change-Id: Ic29689bd03b99b5a2095efa4e3fb3866afc08526
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoMake NetconfMessageTransformer.getActions() static 42/83942/2
Robert Varga [Fri, 23 Aug 2019 15:34:09 +0000 (17:34 +0200)]
Make NetconfMessageTransformer.getActions() static

This method only requires a SchemaContext, hence we can easily
make it static.

Change-Id: Ic144c217b6eb5cd1b51532de3c585829189ebdb2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoReuse schema in NetconfMessageTransformerTest 41/83941/2
Robert Varga [Fri, 23 Aug 2019 15:31:12 +0000 (17:31 +0200)]
Reuse schema in NetconfMessageTransformerTest

SchemaContext is an invariant, and hence it does not make sense
to re-create it for each test case. Use @{before,after}Class to
initialize it exactly once -- saving about a second from execution
time.

Change-Id: Ib691dbab9893e02f50d79d9d87e4cfe7892db62d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoCleanup karaf distro 22/83822/8
Robert Varga [Tue, 20 Aug 2019 17:24:23 +0000 (19:24 +0200)]
Cleanup karaf distro

Simplify declaration that we do not want to install/deploy
the karaf distribution. Since we are not publishing the
artifact, there is no point to carry an <scm/> section.

Change-Id: I503495eefb0ee3dd02dcb618275346071a685009
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoMove netconf-parent 21/83821/10
Robert Varga [Tue, 20 Aug 2019 17:04:21 +0000 (19:04 +0200)]
Move netconf-parent

This parent is a dead ringer for restconf-parent, promote it to
project-wide parent and inherit dependencies from restconf-parent,
hence we lose duplicate definitions of upstream dependencies.

Change-Id: If2e994a6a76f1826e2976855f9e9624597628ca8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoEliminate unneeded version specifications 20/83820/9
Robert Varga [Tue, 20 Aug 2019 16:54:02 +0000 (18:54 +0200)]
Eliminate unneeded version specifications

All ouor published artifacts are declared in our artifacts file,
hence there is no need to specify versions.

Change-Id: I20fa898bbe9bf542cfac2b4d6648f91b58bc29a0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoClose module URL stream as soon as possible 38/83938/1
Robert Varga [Fri, 23 Aug 2019 14:43:58 +0000 (16:43 +0200)]
Close module URL stream as soon as possible

This refactors LibraryModulesSchemas.createFromURLConnection()
to close the stream before doing any further processing. This
lowers resource needs as well as makes for simpler code.

Change-Id: I08f242005185637f6dcbd37fe4ba86051624e56d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoUse constant NodeIdentifiers in LibraryModulesSchemas 37/83937/1
Robert Varga [Fri, 23 Aug 2019 14:31:33 +0000 (16:31 +0200)]
Use constant NodeIdentifiers in LibraryModulesSchemas

There is no point in re-creating these constants each time we need
them -- promote them to proper constants.

Change-Id: If7844b9d0b4b7b075f1f8cfc9bd9821528e3a587
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoReduce code duplication in LibraryModulesSchemas 36/83936/1
Robert Varga [Fri, 23 Aug 2019 14:08:47 +0000 (16:08 +0200)]
Reduce code duplication in LibraryModulesSchemas

The entry derivation code is shared among two cases, merge it
into a utility method.

Also removes a thinko where each entry would actually be created
twice. Furthermore the Optional use for internal utility is removed
in favor of a nullable return.

Change-Id: Ic758eeedf741efb11884eae60ee93d2d510f7360
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoShorten nested class references 35/83935/1
Robert Varga [Fri, 23 Aug 2019 13:47:02 +0000 (15:47 +0200)]
Shorten nested class references

Both Entry and NodeIdentifier are unique in this source, there is no
point wasting terminal space in spelling them out.

Change-Id: I2ca1e3fd56124d9d60cf5045e63534fbe03a64ab
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoSimplify guessJsonFromFileName() 33/83933/1
Robert Varga [Fri, 23 Aug 2019 13:25:21 +0000 (15:25 +0200)]
Simplify guessJsonFromFileName()

46 here means '.', so the logic is:
- if there is no '.', return false
- if there is, return true IFF the string after the last '.' equals
  to ".json" in whatever case combination

Change-Id: Idbd7716a7c37ba8e428a2ecaf60031d32a3adbab
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoLibraryModulesSchemas.availableModels is immutable 32/83932/1
Robert Varga [Fri, 23 Aug 2019 13:15:23 +0000 (15:15 +0200)]
LibraryModulesSchemas.availableModels is immutable

This field holds an ImmutableMap, which is initialized to either
empty or a result of ImmutableMap.Builder. Make this contract
explicit by requiring the field to be ImmutableMap.

Change-Id: I13c5dcbd843b79075b31dfd62369abafa00b9e15
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoCleanup state checking 31/83931/1
Robert Varga [Fri, 23 Aug 2019 13:09:50 +0000 (15:09 +0200)]
Cleanup state checking

This cleans up checks to make it clear we are talking about
the same instance when we look at an Optional. Furthermore migrate
away from checkNotNull().

Change-Id: Ie7aeafee45b3140bd6c1e930d3ddbb6b0999de01
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoRemove unneeded type arguments 30/83930/1
Robert Varga [Fri, 23 Aug 2019 12:28:47 +0000 (14:28 +0200)]
Remove unneeded type arguments

Type inference is able to deduce the arguments here, remove them.

Change-Id: I552ea2bfd668122d49ac5d081fe3aca5ce9463bc
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoCleanup toRpcResult() 29/83929/1
Robert Varga [Fri, 23 Aug 2019 12:32:11 +0000 (14:32 +0200)]
Cleanup toRpcResult()

We have a NETCONF_RPC_REPLY_NODEID readily available, there is no
point in recreating its equivalent. Also use proper nested builder
pattern to get rid of some useless temporary variables.

Change-Id: Iffa0cc8f9e3bb46cbb06b18afec23a60cb9282e1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoCentralize NETCONF_(DATA)_QNAME 28/83928/1
Robert Varga [Fri, 23 Aug 2019 12:04:09 +0000 (14:04 +0200)]
Centralize NETCONF_(DATA)_QNAME

This constant is already defined in netconf-util, it does make
sense to use it from there rather than brewing our own. Also
updates a few users which were ignoring existence of
NETCONF_DATA_NODEID.

Change-Id: Ic7fa531c4f3cb5f0a79ab663e8ce2c767bf3e570
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoMake mappedRpcs an ImmutableMap 27/83927/1
Robert Varga [Fri, 23 Aug 2019 11:50:12 +0000 (13:50 +0200)]
Make mappedRpcs an ImmutableMap

This map is known to be immutable in all cases, make sure we
propagate that knowledge.

Change-Id: Iac97ab3227b88ae6fd5e6fadd896f357412947a2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoSimplify GET_SCHEMAS_RPC initialization 26/83926/1
Robert Varga [Fri, 23 Aug 2019 11:49:04 +0000 (13:49 +0200)]
Simplify GET_SCHEMAS_RPC initialization

There is no need for static initializer, as we are using a simple
builder.

Change-Id: I55bbb8e54ee2df436ec242373739ca6aba1dc03d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoAlias restconf-artifacts 19/83819/4
Robert Varga [Tue, 20 Aug 2019 16:47:29 +0000 (18:47 +0200)]
Alias restconf-artifacts

Each project should provide a single artifacts file, this patch
unifies them in 'netconf-artifacts', making restconf-artifacts
only an alias for downstreams.

Change-Id: I3e1a12882a42bcac0a402d49420fdf0360b43ae0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoMove netconf-artifacts 18/83818/2
Robert Varga [Tue, 20 Aug 2019 15:28:14 +0000 (17:28 +0200)]
Move netconf-artifacts

Each project should be exposing only a single set of artifacts, so
that it's "release" version is consistent across all build entrypoints.

Change-Id: Ief9997e39a71fb3addbfe0999368a3e82a6da804
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoChange in the version name 91/83791/1
Robert Varga [Tue, 20 Aug 2019 12:08:57 +0000 (14:08 +0200)]
Change in the version name

This fixes the reference to current release stream.

Change-Id: I7161745536fda8acb47f2ea4c677269c970c8b2e
Signed-off-by: Anushka Bhandari <anushka16134@iiitd.ac.in>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoFixed wrong exception types 81/83581/8
Jaroslav Tóth [Mon, 12 Aug 2019 14:38:38 +0000 (16:38 +0200)]
Fixed wrong exception types

- After implementation of exception mapper we can throw on error
  events RestconfDocumentedException that will be automatically
  mapped to response errors container.
- This patch changes IAE or NPE during serialization/deserialition
  of instance identifier to right RDE types - HTTP method invoked
  on non-existing/malformed IID will lead to returned errors
  container (compliancy against spec.) and not status code 500
  without any description.

Change-Id: I0982e89b90d4a254656b2b9dcdab87fcbb4a8103
Signed-off-by: Jaroslav Tóth <jtoth@frinx.io>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoSimplify RestconfValidationUtils users 56/83756/3
Robert Varga [Mon, 19 Aug 2019 13:26:19 +0000 (15:26 +0200)]
Simplify RestconfValidationUtils users

Rather than having users to immediate formatting of the String
value, introduce a simple alternative to throw exceptions.

Change-Id: Id82506398858667f5bd9214beab34dd5bb6638e6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoAdded ExceptionMapper to RFC-8040 impl 27/83527/12
Jaroslav Tóth [Thu, 8 Aug 2019 15:01:13 +0000 (17:01 +0200)]
Added ExceptionMapper to RFC-8040 impl

It is similar to draft-02 implementation but with several diffs
that had to be made because of compliancy against specification,
different revisions of QNames, and need for refactoring:
- Response must have yang-data+json or yang-data+xml types, the
  parsing of request content type and acceptable media types was
  adjusted accordingly.
- Schema context was used as feed to NormalizedNode builders -
  this approach is useless.
- Anonymous classes used for special serializaton with disabled
  validation of error-info leaf were moved to distinct classes
  (they share some lines of code, so the abstract parent class
  is added).
- Added error-path leaf to serialized JSON/XML data (it was in
  todo tag for unknown reasons).
- Next small fixes and refactoring of code by extraction of
  methods.
- Unit test was written from scratch, because of changes done
  to parsing of status code and media type.

Change-Id: I9c17229e8df1b382a37ca588a506128040c6d42f
Signed-off-by: Jaroslav Tóth <jtoth@frinx.io>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoBump mdsal to 4.0.4 29/83729/2
Robert Varga [Thu, 15 Aug 2019 08:33:07 +0000 (10:33 +0200)]
Bump mdsal to 4.0.4

This brings in latest fixes.

Change-Id: I59f89ef4fe76ef16fcdc9b59f8d9b50aa0849847
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoFixed response errors for HTTP PUT 84/83584/5
Jaroslav Tóth [Mon, 12 Aug 2019 15:10:52 +0000 (17:10 +0200)]
Fixed response errors for HTTP PUT

- Added correct error types and tags that previously weren't
  specified at all so it always returned 500 status code.

Change-Id: Ie77d324ee6b2fc149714e24451f40b01b3e47827
Signed-off-by: Jaroslav Tóth <jtoth@frinx.io>
4 years agoFixed POST data error response 83/83583/4
Jaroslav Tóth [Mon, 12 Aug 2019 14:55:05 +0000 (16:55 +0200)]
Fixed POST data error response

- Added correct error types and tags that previously weren't
  specified at all so it always returned 500 status code.

Change-Id: I911fcd04546d2c2884f52e197c44cde67ed214a8
Signed-off-by: Jaroslav Tóth <jtoth@frinx.io>
4 years agoFix mapping of Revision in Deviations 00/83700/2
Tibor Král [Thu, 15 Aug 2019 15:13:28 +0000 (17:13 +0200)]
Fix mapping of Revision in Deviations

"IllegalArgumentException: Unknown value type Optional" exception
is thrown during initialization of RESTCONF with yang model containing
deviation.

JIRA: NETCONF-637
Change-Id: I8c19eb39d06ff38e691ea9a079507dab40311341
Signed-off-by: Tibor Král <tibor.kral@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoRemoval of dup code in RestconfDataServiceImpl 62/83362/4
Jaroslav Tóth [Thu, 1 Aug 2019 19:52:08 +0000 (21:52 +0200)]
Removal of dup code in RestconfDataServiceImpl

- Deriving of schema context and transaction chain handler
  repeats multiple times in the class.

Change-Id: Ic8b91c99f47dd1ae3d177b8e8070149f46ed288e
Signed-off-by: Jaroslav Tóth <jtoth@frinx.io>
4 years agoFixing of useless message 'Unknown key : content' (read data) 59/83359/5
Jaroslav Tóth [Thu, 1 Aug 2019 15:17:40 +0000 (17:17 +0200)]
Fixing of useless message 'Unknown key : content' (read data)

- After reading of data in RFC-8040 with set content query
  parameter, the INFO log with unknown query parameter was sent
  (but it was recognized correctly in another part of code).
- Refactoring of the readData(..) method, so the parsing of
  withDefaults query parameter is moved to ReadDataTransactionUtil
  that contains other parsing logic.
- Adding of withDefaults query paramameter to WriteParameters
  data class.
- Added unit tests.

Change-Id: I25a01c62a995facce24f29a0dc48048aa1e49f56
Signed-off-by: Jaroslav Tóth <jtoth@frinx.io>
4 years agoFix NPE after invoking of GET on /rests/data 61/83361/4
Jaroslav Tóth [Thu, 1 Aug 2019 18:42:28 +0000 (20:42 +0200)]
Fix NPE after invoking of GET on /rests/data

- NPE was caused by comparing of identifier with various stream
  paths.
- Resolved by adding identifier != null checks.
- Added unit test.

Change-Id: Ieca8adf0f6686b67e3ddfee53b7f3d47cd1d9f3e
Signed-off-by: Jaroslav Tóth <jtoth@frinx.io>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoUpdate user-guide.rst 11/83611/2
Mario Abraham [Wed, 14 Aug 2019 10:18:22 +0000 (12:18 +0200)]
Update user-guide.rst

- added info about 2 different endpoints
related to RESTCONF

Issue-ID: NETCONF-500
Signed-off-by: Mario Abraham <mario.abraham@pantheon.tech>
Change-Id: I3ab9517e6ac2afe3e061eb31dfa8b642e1d34614

4 years agoCustom scheme-cache-directory yang models are not replicated among 22/83522/4
Jakub Toth [Thu, 8 Aug 2019 12:15:17 +0000 (08:15 -0400)]
Custom scheme-cache-directory yang models are not replicated among
cluster members

The problem was talking about the MissingSchemaSources, where in
the master wasn't setup schema repo & schema registry correctly
based on the data from NetconfNode (from NetconfTopologySetup).
Espacially if the node was using the specific schema cache directory.
According to, slaves were trying to ask the master for sources
(YangTextSchemaSource). In this way, master was trying to resolve
sources from the empty schema repo and it was failing there.

JIRA: NETCONF-610
Change-Id: I84290c085b8a54a9758a85b68113c18aee284a1c
Signed-off-by: Jakub Toth <jtoth@luminanetworks.com>
4 years agoBump versions by x.y.(z+1) 50/83550/1
jenkins-releng [Mon, 12 Aug 2019 16:14:12 +0000 (16:14 +0000)]
Bump versions by x.y.(z+1)

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

4 years agoAdd checkValidIdentifierStart() 37/83337/3
Robert Varga [Wed, 31 Jul 2019 09:09:16 +0000 (11:09 +0200)]
Add checkValidIdentifierStart()

We have slight code duplicate, fix this by adding a utility method.

Change-Id: I696fdba4df956066fe0ebb8226d00ea6c1e0a416
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoUse String.indexOf() to check for percent 36/83336/3
Robert Varga [Wed, 31 Jul 2019 09:06:39 +0000 (11:06 +0200)]
Use String.indexOf() to check for percent

Rather than using String-based lookup, use a simple indexOf(),
which is faster.

Change-Id: Ic2ece2e69e4bb00a492ad129e10dc1ca0422fcbb
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoUse static imports for constants 35/83335/3
Robert Varga [Wed, 31 Jul 2019 09:01:40 +0000 (11:01 +0200)]
Use static imports for constants

Current code is needlessly verbose in its references to simple
constants. Fix this by using static imports, reducing clutter.

Change-Id: I4b0e80a518e10de98a1a75ed8f80d3440e6a3f38
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 years agoFold MainVarsWrapper 30/83330/3
Robert Varga [Wed, 31 Jul 2019 00:41:17 +0000 (02:41 +0200)]
Fold MainVarsWrapper

It does not make any sense to keep a separate object to keep
state, while YangInstanceIdentifierDeserializer is pure static.

Eliminate MainVarsWrapper as a separate subclass, encapsulating
it in an YangInstanceIdentifierDeserializer instead. This allows
us manipulate state data freely, without having to go through
accessors, and thus make it much easier to follow as to what is
happening.

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