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>
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>
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>
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>
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>
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>
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>
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
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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
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>
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
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>
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>
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>
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>
Robert Varga [Wed, 31 Jul 2019 00:00:55 +0000 (02:00 +0200)]
Move validArg()
This method has a single caller, which just passes it the state --
which really makes the method an instance method.
Change-Id: I8346e53e7b4f47e6da458fdef936812f914d2ef2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 18 Jul 2019 10:35:23 +0000 (12:35 +0200)]
Bump mdsal to 4.0.3
This bumps mdsal to 4.0.3, bringing in latest fixes and improvements.
Change-Id: Ie8e03aab1f31edf80bc9f1d7896c334c9d83be8d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 18 Jul 2019 10:35:09 +0000 (12:35 +0200)]
Bump yangtools to 3.0.4
This picks up latest fixes and improvements.
Change-Id: I03201927d23762acf641c1ab0ff3419ba8b94969
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 18 Jul 2019 10:34:53 +0000 (12:34 +0200)]
Bump odlparent to 5.0.1
This picks up the latest upgrades.
Change-Id: If6006a94197839a9718cd5eae16b0a025913af93
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 30 Jul 2019 23:57:55 +0000 (01:57 +0200)]
Migrate nextIdentifierFromNextSequence()
This method is very simple and operates on state. Move it into
the state object, allowing us to eliminate some amount of verbosity.
Change-Id: I07dbb5a612a63d6dd7a1f428138a6750c91c1e3e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 30 Jul 2019 23:48:23 +0000 (01:48 +0200)]
Migrate skipCurrentChar() and checkValid()
These two methods always operate on the same instance of data,
hence making the method an instance method saves quite a bit of
verbosity.
Change-Id: I27d621c0f4b28e15fbe6126119f7cfc45475d0b4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 30 Jul 2019 23:38:39 +0000 (01:38 +0200)]
Move currentChar()
All users are acquiring state from the same instance, hence making
the method an instance method ditches quite a bit of verbosity.
Change-Id: Ib3a26055a0ee1cb6562adf30997e311e8f013aaa
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 30 Jul 2019 23:32:26 +0000 (01:32 +0200)]
Move allCharsConsumed()
All users are doing the same thing, this method is better served
as an instance method.
Change-Id: I7e0d76dd0909bd6eee6be2ff10ab6fb9ba51dc10
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 30 Jul 2019 23:18:47 +0000 (01:18 +0200)]
Simplify ParserIdentifier
There is no point to allocate the context while finding the schema
node. Refactor the code a bit, reducing the need to pass (and ignore)
mount point.
Change-Id: Ic8832c81c4fcc34445d4ed47df5a45e6a9ba430f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 30 Jul 2019 22:31:39 +0000 (00:31 +0200)]
Fixup URL path resolution process
RESTCONF parsing currently entails masking its own path domain
(which is InstanceIdentifier + optional operation) as a
YangInstanceIdentifier.
This patch reworks the interpretation of this encapsulation into
the corresponding SchemaContext searches.
JIRA: NETCONF-619
Change-Id: I6a722760ba3955e9a105ab1c1029e23f12fa0596
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
ajay.dp001 [Mon, 1 Jul 2019 11:40:03 +0000 (12:40 +0100)]
Teach RFC8040 URL parser about actions
RFC8040 allows invocation of actions, but unfortunately our
parser is not equipped to deal with them.
This updates the utilities to try to locate actions when the
data is not found.
JIRA: NETCONF-619
Change-Id: I93d69ea76fd928f963cb7a8c703c97c125820818
Signed-off-by: ajay.dp001 <ajay.deep.singh@ericsson.com>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 18 Jul 2019 12:15:41 +0000 (14:15 +0200)]
Fix odlparent reference
We should not be referncing odlparent-4.0.2, but rather 5.0.0.
Change-Id: Ia238cf79c1324b3764ede4e920d8bd8caac2ca97
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Jakub Toth [Mon, 24 Jun 2019 09:17:16 +0000 (05:17 -0400)]
Attempt netconf remount regardless of error-type
Even if there's a 'no more sources' for schema context, go through
normal remount cycle. It's added a new optional boolean to the netconf
mount fields specifically for this, default to false/ current behavior.
JIRA: NETCONF-611
Change-Id: If983ef0dded606fb75b5e41236c9d0f8328ab7c6
Signed-off-by: Jakub Toth <jtoth@luminanetworks.com>
Jakub Toth [Fri, 14 Jun 2019 15:32:00 +0000 (11:32 -0400)]
Netconf stack by default locks the data store before issuing
edit-config, and then unlocks it.
This poses some scalabilty issues when multiple requests for
the same device arrives. Also some devices automatically
queues the requests at the device itself.
The patch provides an option to allow lock/unlock operations
for edit-config. Default value is true which defaults to today's
behavior.
JIRA: NETCONF-629
Change-Id: I0531b27c0807dfb586f9e80c9b9fc9b189e3cadf
Signed-off-by: Jakub Toth <jtoth@luminanetworks.com>
esobmar [Thu, 11 Jul 2019 12:43:47 +0000 (13:43 +0100)]
Update netconf user guide with the information
on how to use custom RPC with test-tool.
Change-Id: Ie5c9c91ed19f7c25880a4b8590a28bd07d1be98e
JIRA: NETCONF-633
Signed-off-by: Mariusz Sobucki <mariusz.sobucki@est.tech>
Eliezio Oliveira [Mon, 1 Jul 2019 16:53:52 +0000 (17:53 +0100)]
Fix testtool GetSchema broken since v1.6.0
Offending commit:
af7babe
Change-Id: Ia43cdcf10b54d9528921675fed321665771bd667
JIRA: NETCONF-624
Signed-off-by: Eliezio Oliveira <eliezio.oliveira@est.tech>
Eliezio Oliveira [Fri, 28 Jun 2019 08:41:49 +0000 (09:41 +0100)]
Add E2E testing for testtool
Change-Id: I87d7de23c210f5b4b0480a8737323d3f8ac78eb9
JIRA: NETCONF-630
Signed-off-by: Eliezio Oliveira <eliezio.oliveira@est.tech>
Jakub Toth [Sun, 12 May 2019 20:15:34 +0000 (13:15 -0700)]
Convert anyxml nodes lazily
The problem is talking about the direct creating of ContainerNode
from the Anyxml in the NetconfMessageTransformer. Later, while
the YT is parsing data, it expects the anyxml on that place
according to the schema context. In this way, we need to use
the AnyXml builder while the NetconfMessage is processing.
Transformation to a container-based layout is performed afterwards
as needed.
JIRA: NETCONF-616
Change-Id: I8ca6d93e42a845de67721209e5e6362c47703db9
Signed-off-by: Jakub Toth <jtoth@luminanetworks.com>
Robert Varga [Mon, 1 Jul 2019 09:10:00 +0000 (11:10 +0200)]
Remove aaa-encrypt-service version
This version is propagated out of aaa-artifacts, remove it.
Change-Id: Ia4cf3ab202f96027a97a1e5568f9a87607db5eea
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
9612e983a55540fdd30631db943bb303520f890c)
Jaroslav Tóth [Sun, 14 Apr 2019 17:40:12 +0000 (19:40 +0200)]
JETTY web-sockets client tool
- Testing tool is place in new module "tools" under "restconf"
root module and the name of the testtool executable file with
all dependencies is named ${project.artifactId}
-${project.version}-executable.
- See ApplicationSettings class for possible input parameters
of the application as well as the usage. Mandatory parameter is
stream/s name/s using which the web-socket sessions are
established. Other parameters can be categorized into two groups:
1) setup of ping messages (enabled, interval, message)
2) TLS configuration for WSS streams - keystore, trustore,
passwords, cipher suites, protocols, ...
JIRA: NETCONF-623
Change-Id: Ifaf340ee1e0ba26c203bb1c663588cc94fb5496d
Signed-off-by: Jaroslav Tóth <jtoth@frinx.io>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Jaroslav Tóth [Sun, 7 Apr 2019 18:23:42 +0000 (20:23 +0200)]
Porting of WebSockets to Jetty in RFC-8040 RESTCONF
- Reimplementation of the web-socket servlet using JETTY library:
1) added configuration holder with persistent-id="websockets"
- configurable maximum web-socket frame length, session idle
timeout, and ping control frames interval.
2) implemented web-socket initilizer that represents servlet -
configuration of web-socket factory
3) imlemented web-socket factory that creates new web-socket
session based on input URI from which the stream-name can be
extracted
4) implemented session handler that just reflects netty's session
hadler with these differences:
- configurable heartbeat interval (PING intialized at server)
- configurable max. frame length that breaks longer messages
to smaller fragments (in old config. long notifications
caused issues)
- PONG frames are sent implicitly (respondation using PING)
- TCP list. port is not specified, because we want to reuse
web server's port (it is possible to share WS/WSS with
HTTP/HTTPS)
- Integration of web-socket servlet in WebInitialzer; we had to
modify stream paths, so they contain also "rests" prefix before
stream name - it is not possible to register more context path
roots... and the upgrade reqests go to common web session.
- Removal of old web-socket server implementation with netty's
dependencies and replacing of Channel references with
WebSocketSessionHandler that is now responsible for communication
with remote endpoint.
JIRA: NETCONF-623
Change-Id: I568aa6375ea3c6a5db3183a54324ef02aa0bd74a
Signed-off-by: Jaroslav Tóth <jtoth@frinx.io>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 21 Jun 2019 05:32:36 +0000 (07:32 +0200)]
Remove use of StringBuffer
StringBuilder is a faster replacement for StringBuffer, use that.
Also cleans up append() usage, so we do not do superfluous string
concatenations.
Change-Id: I2dd973dab6199290e2cbdd840f36b754b14827ad
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 20 Jun 2019 09:16:33 +0000 (11:16 +0200)]
Remove use of Objects.isNull/nonNull
These methods obscure null checks from static analysis tools,
and are explicitly documented to be intended for method references
only -- remove them in favor of proper null checks.
Change-Id: Ibe0a20015eb55d92f19b0ac487a8e48a186216a3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Anna Bencurova [Wed, 19 Jun 2019 19:50:53 +0000 (21:50 +0200)]
Return new generatedKeyPair in loadKeys of testtool
This can be done to avoid sendKexInit() no resolved signatures available
error while first login.
JIRA: NETCONF-612
Change-Id: I32f5b8ea5f3c9a9c613e000932ca0fe205451c74
Signed-off-by: Anna Bencurova <Anna.Bencurova@pantheon.tech>
Jaroslav Tóth [Mon, 17 Jun 2019 14:54:10 +0000 (16:54 +0200)]
Fix building of wrong YANG notify stream
- Identification of stream should start with "notification-stream"
and not "create-notification-stream".
- Added missing '/' before JSON suffix.
JIRA: NETCONF-623
Change-Id: Ia3b78ba8af1b0f53f60dd88b39dff8b92b881ffd
Signed-off-by: Jaroslav Tóth <jtoth@frinx.io>
Jaroslav Tóth [Mon, 17 Jun 2019 13:41:29 +0000 (15:41 +0200)]
Remove deadlock scenario in ListenersBroker
- After call to removeAndCloseDataChangeListener(..),
the dataChangeListenersLock is allocated but inside this method
removeAndCloseDataChangeListenerTemplate(..) is called too which
tries to allocate the same lock again.
JIRA: NETCONF-623
Change-Id: Iaa56ce8936bb2f659b8b42357d19df999621eff1
Signed-off-by: Jaroslav Tóth <jtoth@frinx.io>
Tibor Král [Tue, 11 Jun 2019 09:02:34 +0000 (11:02 +0200)]
Fix for deviation list mapping in Restconf
RESTCONF NBP initialization fails with
RestconfDocumentedException when global schema context
contains yang models using deviations.
JIRA: TRNSPRTPCE-126
Change-Id: I480ac6641006e3e82ffd6ac3aa4cf169fe8b665d
Signed-off-by: Tibor Král <tibor.kral@pantheon.tech>