Robert Varga [Wed, 8 Jul 2020 12:53:33 +0000 (14:53 +0200)]
Move SubscribeToStreamUtil to rests.services.impl
Overall structure of RestconfDataServiceImpl relying on a random
mix if 'util' classes is quite wrong, as demonstrated by
ReadDataTransactionUtil.readData(), which actually is very much
stream-specific and ends up *writing* data.
Start with SubscribeToStreamUtil, which pulls a chunk of utility
methods into rests/services/impl. This cleans up other utilities
and makes the package dependency graph a bit simpler.
Change-Id: Ia327182edde23364570f6f5d46044d3efe319fe2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 8 Jul 2020 12:34:56 +0000 (14:34 +0200)]
Remove RestconfMapping{Node,Stream}Constants
These two classes are completely unreferenced, remove them.
Change-Id: I9d9fc3a94cadb245adc6a6bae3c39230bfc1898a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 8 Jul 2020 11:58:01 +0000 (13:58 +0200)]
Cleanup ParserFieldsParameter
Parsing here is quite contrived, with character checks muddled by
constants, leading to multiply-checked conditions. Clean the code
up.
Change-Id: I89214596da5a714ea798eda9f8860c9d57656d83
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 8 Jul 2020 11:34:06 +0000 (13:34 +0200)]
Remove org.opendaylight.restconf.nb.rfc8040.utils.parser.builder
This package holds only a few constants, which are better
redistributed and kept where they are actually used.
Change-Id: I0fc614072e17df463615b1ea3544a3fae0fd659d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 8 Jul 2020 13:06:05 +0000 (15:06 +0200)]
Migrate stream-related RestconfStreamsConstants
These protocol constants are referenced from a single implementation
place, make sure to move them there.
Change-Id: I273ceb9f4cfed698bd856deb49edd5bef8264310
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 8 Jul 2020 13:39:12 +0000 (15:39 +0200)]
JSONRestconfServiceRfc8040Impl is not AutoCloseable
This service has no cleanup, remove useless @PreDestroy method.
Change-Id: I113e0a08e301b9d4eae6b6706d3ce45bb8086002
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 8 Jul 2020 08:40:41 +0000 (10:40 +0200)]
Fix illegalCatch suppressions
We are catching multiple checked exceptions here, but really we are
being lazy. Enumerate caught exceptions and remove suppression.
Change-Id: Ia2d57baf109e19459c662d9e1e3ccd9373b7c08d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 8 Jul 2020 08:57:12 +0000 (10:57 +0200)]
Remove bogus suppression
checkstyle:MissingSwitchDefault is no longer relevant here, remove
the suppression.
Change-Id: I7eea2b4b303a14160d461df52efd0f47afa26b5f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 8 Jul 2020 08:44:44 +0000 (10:44 +0200)]
Package test-jar sources
Navigating sources tests in downstreams without sources is not
particularly nice. Add tests-sources.jar to all artifacts which
are producting test-jar.
Change-Id: I4b77ca4f9e45638271eec68370db1658f4c20779
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 7 Jul 2020 17:58:34 +0000 (19:58 +0200)]
Use YangConstants.RFC6020_YANG_MEDIA_TYPE
application/yang media type is an RFC6020 definition, and hence its
common definition lives in YangConstants. Use it from there instead
of brewing our own.
Change-Id: I75d2c2849e8d4e98760445148f1afc9b1f0acb6d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 7 Jul 2020 15:48:27 +0000 (17:48 +0200)]
Fix rawtypes/hiddenField suppressions
This is a case of laziness, just specify a wildcard and remove
suppression. While we are in the area, also remove a bogus
hiddenField suppression.
Change-Id: I06d81fc4b03a4d593face187fd92893bab7400f1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 7 Jul 2020 15:40:42 +0000 (17:40 +0200)]
Remove bogus illegalThrows suppressions
This code should never have passed review, fix it up. While we are
at it, fixup throws declarations.
Change-Id: I2ecc832260b711571fea2d4cdbe7d04b075bb293
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 7 Jul 2020 15:32:48 +0000 (17:32 +0200)]
Remove unused SuppressWarnings
checkstyle:illegalCatch is no longer applicable in a number of
places, remove suppressions.
Change-Id: I7fcd339ea8aafaef7ba4db1eaa6f3c6b8960582c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 7 Jul 2020 15:31:03 +0000 (17:31 +0200)]
Remove unused SuppressWarnings
checkstyle:finalClass is no longer applicable here, remove it.
Change-Id: I49f7311d87a668de215a7a884195deedfc8f3aee
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 7 Jul 2020 15:27:32 +0000 (17:27 +0200)]
Fix raw type warnings in rfc8040 northbound
There are quite a few warnings around use of raw types, fix them up.
Change-Id: I3a5cffd8148086470f9a1dfbdf837228d56d6e7f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 7 Jul 2020 13:39:52 +0000 (15:39 +0200)]
Remove SchemaContextRef
Carrying a soft reference is completely superfluous -- it does not
guarantee availability and realistically this is just a brain-dead
wrapper for a local reference. Remove the class along with all
references to it.
Change-Id: I2e6fc3f9720f200e12443e07c490f8d79d04351b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 7 Jul 2020 13:10:30 +0000 (15:10 +0200)]
Remove useless SchemaContextRef wrappers
For whatever legacy reasons we are wrapping references to
EffectiveModelContext into soft reference holder, only to unwrap
them in the same method. Remove this clutter.
Change-Id: I2211639c2663bfc4f2f4f9e5898be304c6acad17
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 7 Jul 2020 12:54:16 +0000 (14:54 +0200)]
Cleanup RestconfValidationTest
The tests here could use proper asserts, clean them up.
Change-Id: I75aceba1942a857fe95c9604db4f8e485158adf4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 7 Jul 2020 12:43:05 +0000 (14:43 +0200)]
Eliminate org.opendaylight.restconf.nb.rfc8040.utils.validations
This package is self-serving detail of identifiers parsing. Fold
it into ParserIdentifier, which is its only production user.
Change-Id: Ie07f7097e30374882f694f1d88cb49e15b0199ad
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 17 Jan 2019 12:05:32 +0000 (13:05 +0100)]
Bind operation prefix to correct namespace
During NetconfUtil.writeNormalizedNode() we failed
to set a prefix for the netconf operation leading to a warning.
Make sure we set the correct NamespaceContext and fallback
to setPrefix() in case the underlying DOM writer does not
support setNamespaceContext().
JIRA: NETCONF-603
Change-Id: Icff5e045c4e901bb53990177d448a1ea43952c62
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Signed-off-by: Tomas Cere <tomas.cere@pantheon.tech>
JakubToth [Wed, 1 Jul 2020 22:32:27 +0000 (22:32 +0000)]
Revert "Added Validation for invalid file in schemas-directory."
This reverts commit
4c21689aba5d009c36765dd614643a6c8f89915c.
Reason for revert: readLine() is not returning null for example for binary files etc
Change-Id: I9b3e70b8e95a04dc7ae95b9ff60be2a664b636c8
Signed-off-by: JakubToth <jakubt4@gmail.com>
Robert Varga [Tue, 7 Jul 2020 08:35:18 +0000 (10:35 +0200)]
Revert "Fix nested YANG 1.1 Action invocation"
This reverts commit
8b9206c7b36b7f7ebfadf23e1be00d43a0bd9573, as
it breaks CSIT.
JIRA: NETCONF-702
Change-Id: I6f65c587f5e9d04e67dcdcaeda12688d206524b5
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Nikhil Soni [Wed, 1 Jul 2020 05:39:45 +0000 (11:09 +0530)]
Added Validation for invalid file in schemas-directory.
If any invalid (not readable as text) file is present in Schemas-directory then those files should be validated in existing validate method.
JIRA: NETCONF-707
Signed-off-by: Nikhil Soni <nsoni@luminanetworks.com>
Change-Id: I41191748569fcbfd87141c4a4cfe2e8328137911
Oleksii Mozghovyi [Sun, 21 Jun 2020 02:39:13 +0000 (05:39 +0300)]
Add method to build SSL Handler for selected keys only
JIRA: NETCONF-5
Signed-off-by: Oleksii Mozghovyi <oleksii.mozghovyi@pantheon.tech>
Change-Id: I780949db6c425ac0fd682838e87f3893065434e6
Oleksii Mozghovyi [Sun, 21 Jun 2020 01:27:10 +0000 (04:27 +0300)]
Minor refactor in Call-Home
JIRA: NETCONF-5
Signed-off-by: Oleksii Mozghovyi <oleksii.mozghovyi@pantheon.tech>
Change-Id: I6d79e7cdfe864f416aeb3466047e7d0f6be23f7e
Ilya Igushev [Thu, 25 Jun 2020 06:46:02 +0000 (06:46 +0000)]
Fix processing of hexadecimal, octal values
JSON doesn't support hexadecimal, octal numbers, unlike YANG.
Therefore when YANG type definition has hexadecimal,or octal
default value of YANG leaf used string JSON format.
Change-Id: I95b1756c0092991a591164b3432f7d93214dfe1d
JIRA: NETCONF-703
Signed-off-by: illia.ihushev <illia.ihushev@pantheon.tech>
Robert Varga [Tue, 23 Jun 2020 06:28:16 +0000 (08:28 +0200)]
Fix up feature packaging
We have a number of bundles packaged multiple times, fix that up
by providing proper references.
Change-Id: I0488fefbeaab3760eca7daf93ddd9d335713f285
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 22 Jun 2020 19:24:33 +0000 (21:24 +0200)]
Use range when importing MRI features
Not using ranges for features locks us down unfortunately, make
sure to use them for MRI projects.
Change-Id: Ia31779d7fbe28334ed7f1856f183a5d381ce5f33
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Jamo Luhrsen [Thu, 4 Jun 2020 00:17:26 +0000 (17:17 -0700)]
Catch exception when transformer fails to parse
There is a deadlock if a transformer fails to parse a reply
and uses that to invoke the rpc. The future gets stuck and
never completes. This catches the case of a bad toRpcResult
from the transformer and marks the future with a
DefaultDOMRpcException
JIRA: NETCONF-695
Signed-off-by: Jamo Luhrsen <jluhrsen@gmail.com>
Change-Id: Ied3e0ac4b08e128c41f54e01df91543e4d3fc3a4
Robert Varga [Thu, 11 Jun 2020 21:43:52 +0000 (23:43 +0200)]
Integrate controller-2.0.2
This bumps versions to the following:
- odlparent-7.0.3
- yangtools-5.0.3
- mdsal-6.0.2
- controller-2.0.2
Change-Id: I7255d610b092259c64fe9dfe24244a68a7195e14
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
ajay_dp001 [Wed, 3 Jun 2020 04:27:28 +0000 (09:57 +0530)]
Fix nested YANG 1.1 Action invocation
Invocation of action fails if the action is defined as an augmentation.
As it turns out the logic can be very much simplified by just cutting
the last item from YangInstanceIdentifier, as that points to the parent
(and hence context) of the action.
JIRA: NETCONF-696
Change-Id: I7b03b2b1ebdd7bffbfab5291552c430700ff2850
Signed-off-by: ajay_dp001 <ajay.deep.singh@est.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Lukas Baca [Tue, 12 May 2020 14:43:31 +0000 (16:43 +0200)]
RESTCONF RFC8040 Notifications support for application/yang-data+xml
In "https://tools.ietf.org/html/rfc8040" have GET,PUT,POST,PATCH
possibility to use Accept: application/yang-data+xml
JIRA: NETCONF-684
Change-Id: I25c165b7c2672f7ad7bacbd95c4c5a9634b69122
Signed-off-by: Lukas Baca <lbaca@luminanetworks.com>
Richard Kosegi [Wed, 27 May 2020 03:53:21 +0000 (05:53 +0200)]
Correctly extract mountpoint name from URI
Last path component of mountpoint's YII is not necessarily
always "node". Split URI on '=' instead.
JIRA: NETCONF-693
Change-Id: Ib4a2e9bd71abaee327b4a971cc22698027a73ce7
Signed-off-by: Richard Kosegi <richard.kosegi@gmail.com>
Jamo Luhrsen [Thu, 14 May 2020 21:12:58 +0000 (14:12 -0700)]
Handle multiple rpc-error in the same rpc-reply
When multiple rpc-error is seen in a reply it was not being
caught as an error and eventually falling through the cracks
to show up as an IllegalArgumentException.
This also adds a hack/workaround for passing back all the
error messages found from each of the multiple rpc-error(s)
Also, instead of this case not being recognized as an
rpc-error, it was causing the request to wait until
the device request timeout to expire at which point it's
noted as a full RPC failure and the device is disconnected
and reconnected. Now it is recognized as an error and the
response is handled as soon as it's received and there is
no connection flap.
JIRA: NETCONF-666
Signed-off-by: Jamo Luhrsen <jluhrsen@gmail.com>
Change-Id: I71829e04d7642cfd4d1c54596f1fc7670db0d292
Robert Varga [Wed, 3 Jun 2020 13:05:55 +0000 (15:05 +0200)]
Ensure RPC input in invocation is not null
DOMRpcService contract has changed to require input to be non-null,
hence we need to build an empty container when user does not supply
one.
JIRA: NETCONF-697
Change-Id: I5355a1e7b4c958d9beefc6dc41de83a1c9dc9763
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 31 May 2020 09:11:41 +0000 (11:11 +0200)]
Trim awaitility specification
org.awaitility is declared with scope=test, there's no need to
repeat it.
Change-Id: Ic65b06e725f333dec5f89d0c1c1a49bde377898c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 31 May 2020 08:09:07 +0000 (10:09 +0200)]
Integrate controller-2.0.1
This bumps versions to the following:
- odlparent-7.0.2
- yangtools-5.0.2
- mdsal-6.0.1
- controller-2.0.1
Change-Id: Id0fae35520d7b9562882223fb2fce38f0eba5372
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 27 May 2020 11:36:27 +0000 (13:36 +0200)]
Cleanup a few uses of getDataChildByName()
This method has been deprecated for quite some time and our use of
it leads nulls floating in places where they should not. Fix a few
of the use sites.
Change-Id: Idcc73caf374e54d9f39d7429acd6f18b15fc4ed0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Jamo Luhrsen [Wed, 27 May 2020 17:21:22 +0000 (10:21 -0700)]
Clean up some log messages and descriptions
Just some minor changes for readability when digging through
log files. yang desrciption was changed to match log message
as they were duplicates of each other.
Signed-off-by: Jamo Luhrsen <jluhrsen@gmail.com>
Change-Id: I51a6deee824ef95b3c7721c2e555f247d95de781
Venkatrangan Govindarajan [Wed, 27 May 2020 20:57:58 +0000 (02:27 +0530)]
Use censor attribute for CLI commands
This patch will help avoid usernames/passwords for device
access to be saved in karafhistory
JIRA: NETCONF-694
Change-Id: If2ac255b0ec9bbc32e3aec7d0247497cc927a3e1
Signed-off-by: Venkatrangan Govindarajan <vgovindarajan@luminanetworks.com>
Vladyslav Marchenko [Tue, 5 May 2020 07:25:22 +0000 (10:25 +0300)]
Use RFC7895/RFC8525 for schema monitoring
Added support of RFC7895 that obsoletes RFC7895 (new "yang-library" container). Added a "yang-library-update" notification as a replacement for the deprecated "yang-library-change" notification.
JIRA: NETCONF-656
Signed-off-by: Vladyslav Marchenko <vladyslav.marchenko@pantheon.tech>
Change-Id: Iad13c504c621d245943ade20bd5581efc5292db6
Robert Varga [Wed, 27 May 2020 08:26:30 +0000 (10:26 +0200)]
Cleanup use of deprecated constructs
Continue cleaning up of deprecated warnings, so that we get a stable
baseline before embarking on major work items in Aluminium.
Change-Id: Ib7d0e7a072054b04c21217ad9ce9106bedb6ae70
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 26 May 2020 10:53:31 +0000 (12:53 +0200)]
Cleanup use of deprecated constructs
A number of tests are reporting use of deprecated methods, this patch
cleans some of them up.
Change-Id: Ibbaa87be60a2b9261e473df040c3738cae8181d9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 26 May 2020 10:23:18 +0000 (12:23 +0200)]
Clean up SchemalessRpcStructureTransformerTest
Do not use ExpectedException, pinpointing exact failure mode.
Change-Id: I2bc6c1c1557925c248c93ff317c2a1a45ae6af4f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 26 May 2020 10:16:35 +0000 (12:16 +0200)]
Clean up NetconfNodeActorTest
Do not use ExpectedException and clean up checkstyle suppressions.
Change-Id: If91b404f900edbc2035831c04cadb70841f7a60f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 26 May 2020 09:01:16 +0000 (11:01 +0200)]
Cleanup RFC8040 tests
Do not use ExpectedException or try/catch blocks, as we have
assertThrows() readily available. Also make sure we reuse
EffectiveModelContext.
Change-Id: I6c43b23ef90f914218c707c59c0a434945a0e4a1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
wsx25289 [Sun, 26 Apr 2020 07:17:28 +0000 (03:17 -0400)]
Correct POST Location with lists
When a document is POSTed to a map, we end up returning the wrong
location. Update location with the first entry in the map to produce
the correct result.
JIRA: NETCONF-676
Change-Id: I0a8ab5a8147b98847a1fbb1b66cc7bb7b7722872
Signed-off-by: Wsx25289 <10200860@zte.com.cn>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
d2e6a73b08ae4a3d6a7975895404ca3de07d2ee2)
Robert Varga [Fri, 22 May 2020 09:23:28 +0000 (11:23 +0200)]
Clean up PostDataTransactionUtil
These methods are horrible in their if/else use. Clean them up a bit
so as to make clearer what is going on.
Change-Id: I8b6a619c3c9af548af42985a79fdf7d9c99a9fa0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Tibor Král [Wed, 20 May 2020 13:16:40 +0000 (15:16 +0200)]
Allow SshClient to be customized via NetconfClientConfiguration
There are a number of options we want to have configurable on
a per-client (rather than per-dispatcher) basis. These options
are related to how SSH operates and hence we do not want to
duplicate them but rather allow an explicit pre-built client
instance to be passed down.
JIRA: NETCONF-641
Change-Id: I4c39a8ec909edae0ca15e5af4efd7ca690d64fbf
Signed-off-by: Tibor Král <tibor.kral@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
wsx25289 [Fri, 3 Apr 2020 09:14:58 +0000 (05:14 -0400)]
Get notification streams error.
Get streams should have correct response.
JIRA: NETCONF-663
Change-Id: I5cd5342653795b5531ca66cf6d839f9568c59474
Signed-off-by: Wsx25289 <10200860@zte.com.cn>
vladyslav.marchenko [Mon, 23 Mar 2020 15:05:23 +0000 (17:05 +0200)]
NETCONF southbound requires notifications.yang model to be present on the device
There is no standardized YANG model for NETCONF notifications simply because RFC5277 predates YANG and has not been updated. The presence of the notification capability is enough for notifications to work – the SchemaContext assembly code supplies the model internally based on the capability.
JIRA: NETCONF-338
Signed-off-by: vladyslav.marchenko <Vladyslav.Marchenko@pantheon.tech>
Change-Id: Iaec5eab02f8d43f752d90a3fd0ecbc0a57e9e75f
illia.ihushev [Wed, 1 Apr 2020 14:57:37 +0000 (17:57 +0300)]
Update swagger generator to OpenAPI 3.0
This commit update both generation of the API documentation JSON, along
with UI based on the JSON.
Issues:
- the request bodies generated with all the choice case nodes present
- invalid request bodies for the POST requests on list/container, when
Content-Type is application/xml
JIRA: NETCONF-687
Signed-off-by: illia.ihushev <illia.ihushev@pantheon.tech>
Change-Id: I58002878d5d5a46507be021c4c1783004ea0409a
Robert Varga [Thu, 14 May 2020 21:09:03 +0000 (23:09 +0200)]
Adjust window on read
As a side-effect of us bypassing the read function, we no longer
update the window occupancy, which leads to the other side stopping
sending data. Make sure we adjust the window after passing the data
down the pipeline.
JIRA: NETCONF-686
Change-Id: I66c4873d901f7b88aabd97a1c599be64397b16c7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 11 May 2020 11:32:07 +0000 (13:32 +0200)]
Further rework of base schemas
As it turns out we cannot really instantiate base schemas without
a proper parser, as would be required in static contexts. Let us
turn them into a proper component, so that it can be injected at
runtime.
JIRA: NETCONF-683
Change-Id: I65b90f3042d9354443dfa4052413d531626f4376
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 12 May 2020 12:36:25 +0000 (14:36 +0200)]
Use ranges for controller features
We really want to allow smooth upgrades wherever possible, hence
we should specify ranges for controller's features.
Change-Id: Ia2f9b8b4d1716abe402e230bc44bdbbf511eea6f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Lukas Baca [Mon, 4 May 2020 09:47:23 +0000 (11:47 +0200)]
Report HTTP status 409 on DATA_MISSING error
Change the HTTP status reported on DATA_MISSING conditions to 409,
to match RESTCONF specification. Previous behavior of using 404
can be selected globally via a system property.
JIRA: NETCONF-682
Change-Id: Ibb10b7f9b8d49cd85edaf4fee8986a14cc9f3506
Signed-off-by: Lukas Baca <lbaca@luminanetworks.com>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 26 Apr 2020 01:52:08 +0000 (03:52 +0200)]
Bind to PasswordCredentialAuth
Rather than using a non-safe wild generic, bind to the specialization
for passwords, addressing a long-standing FIXME.
Change-Id: I0b14c92c2801dfdc833a925c8b907e4802e0506e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 27 Sep 2019 11:19:22 +0000 (13:19 +0200)]
Re-integrate ssh client
This re-wraps SshClient in a different way, allowing us to shuffle
information directly into netty.
JIRA: NETCONF-674
Change-Id: Iba0abf81fda90b45403b507c7a00ec9fad48c5a1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Signed-off-by: Tibor Král <tibor.kral@pantheon.tech>
Signed-off-by: Vladyslav Marchenko <vladyslav.marchenko@pantheon.tech>
Robert Varga [Tue, 5 May 2020 09:59:36 +0000 (11:59 +0200)]
Annotate CredentialServiceAuthProvider for injection
This is a component which should be a singleton and should receive
a CredentialAuth service injected. Annotate it as such.
Change-Id: I2060728e2d364ba2b46960b62b37d3762cefa9cd
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 27 Apr 2020 18:45:25 +0000 (20:45 +0200)]
Upgrade mina-sshd to 2.4.0
https://github.com/apache/mina-sshd/blob/master/docs/changes/2.4.0.md
Change-Id: I26a5cdc8eb699c16c86352156b55ffa331762c5e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 27 Apr 2020 12:25:30 +0000 (14:25 +0200)]
Shade mina-sshd
Karaf is using a down-reved version of sshd, which unfortunately
has interplay with us providing a newer version. Shade apache-sshd
so that we can ship whatever version we want without worries about
overlap.
JIRA: NETCONF-677
Change-Id: I0b509b6482f2af207bc07328a9cdb720ebbf506f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 6 Apr 2020 09:46:58 +0000 (11:46 +0200)]
Update MRI projects for Aluminium
This bumps versions to the following:
- odlparent-7.0.1
- yangtools-5.0.1
- mdsal-6.0.0
- controller-2.0.0
Change-Id: Ie2c08ff858d66a57e79d118d8b7e571209a89c5a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 30 Apr 2020 11:11:31 +0000 (13:11 +0200)]
Fix factored out operatations context
SimpleSchemaContext is cross-referencing module, which means we need
to hide any transitive dependencies, i.e. pretend the modules originating
modules are empty.
Change-Id: I9792acf81588f5ea33952dad470484b9cf7d0e8b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 29 Apr 2020 17:54:00 +0000 (19:54 +0200)]
Eliminate CallHomeSessionContext.nettyChannel
Holding a temporary field only for it to be picked up by a callback
does not make sense. Eliminate it and allocate it much later in the
game.
Change-Id: I34b7dbc7244ef1627797c19d5b0d1c046ea46be3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 29 Apr 2020 12:14:18 +0000 (14:14 +0200)]
Do not require NetconfSessionImpl
Drop the instanceOf checks down to simple null checks, so that
we are not tied to a particular implementation.
JIRA: NETCONF-674
Change-Id: I3b9d123d6034a96e6b2d09d68d3cf5bae117cc78
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 26 Apr 2020 11:47:02 +0000 (13:47 +0200)]
Factor out common operations schema/data construction
These bits of code are just copy&pasted between the two
implementations, move them to common code and refactor them to
make them simpler.
Change-Id: Ica72ee1623c6dc2734d2fd9456be96e8a514fccf
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sat, 25 Apr 2020 09:46:44 +0000 (11:46 +0200)]
Factor out SchemaResourceManager
Management of schema cache on the filesystem is copy&pasted in two
places, which creates a compatibility problem. Furthermore current
code relies on static wiring, which is going to be non-workable
very soon.
Refactor AbstractTopology to split out schema management into a
separate component within sal-netconf-connector, which is injected
into both AbstractTopology subclasses and clustered topology.
JIRA: NETCONF-672
Change-Id: If1284a08f9525a3396f2d39e2a4399366edee7ae
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sat, 25 Apr 2020 13:37:29 +0000 (15:37 +0200)]
Separate out single-node netconf-topology
netconf-topology-config is rather misnamed, with the actual
implementation being present in netconf-topology itself.
In order separate out schema management in a modular fashion
we need to split move out the classes.
JIRA: NETCONF-672
Change-Id: I7bdcf685267711bcb7540acdc5a98aa715e8b0c4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 27 Apr 2020 13:34:55 +0000 (15:34 +0200)]
Add sources to shaded-exificient
Our shaded-exificient does not contain a source attachment, fix
that.
Change-Id: I5743c31266817dbaa71e46af30e5ab24c11b232d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 27 Apr 2020 13:30:12 +0000 (15:30 +0200)]
Exclude xmlpull's MANIFEST.MF
We do not need this manifest, just ditch it to suppress a warning.
Change-Id: I6837ca40e91db65b22b2b6358d8bb86022b4d2fb
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 27 Apr 2020 13:39:39 +0000 (15:39 +0200)]
Remove unneeded sshd dependency
odl-netconf-util does not need sshd, move it to netconf-netty-util,
where it really belongs.
Change-Id: I254daf9608820af5965724a2eb1873343303b54c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Vladyslav Marchenko [Thu, 23 Apr 2020 09:39:03 +0000 (12:39 +0300)]
NETCONF-656 Use RFC7895/RFC8525 for schema monitoring
Signed-off-by: Vladyslav Marchenko <vladyslav.marchenko@pantheon.tech>
Change-Id: I4f5f856206bb684a3b346bff2cb8939b91b85cad
Robert Varga [Sun, 26 Apr 2020 14:51:36 +0000 (16:51 +0200)]
Add eddsa dependency to netconf-testtool
This enables it to process
ed25519 keys, which is useful.
Also remove superfluous xmlunit version specification.
Change-Id: Ib8803c2684e14840269fbec9f71b89b0d4b460a8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sat, 25 Apr 2020 14:03:33 +0000 (16:03 +0200)]
Eliminate useless allocation
For some reason we are going through an indirection instead of
getting the modules directly. Fix that.
Change-Id: Id49d5db3501dae6cb5368599f4f8c7855115a962
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sat, 25 Apr 2020 19:11:17 +0000 (21:11 +0200)]
Remove unneeded blueprint-core dependency
Not sure why this was ever needed, remote it.
Change-Id: Ife5c4ccd5e1bb64a3717e7aa838a83a9d3395c0f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sat, 25 Apr 2020 19:02:07 +0000 (21:02 +0200)]
Move eddsa dependency
We actually do not need to have it in netconf-netty-util, it
is enough to have it as a test dependency near SSHTest.
Change-Id: Id4b56883ff155c102874e751a8cefb9b5c72325f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 24 Apr 2020 07:24:30 +0000 (09:24 +0200)]
Create netconf.topology.spi
Move netconf.topology.AbstractNetconfTopology to .spi, along
with the renamed SchemaRepositoryProviderImpl. This allows us
to eliminate the duplicate SchemaRepositoryProviderImpl.
JIRA: NETCONF-671
Change-Id: I2746aa7738f6aacd99bb4a1da7b5e09e95a366b8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Fri, 24 Apr 2020 06:52:05 +0000 (08:52 +0200)]
Eliminate TopologyUtil
This class has a single user, which will benefit from inlining.
JIRA: NETCONF-671
Change-Id: I1fc00f2c373b630760089e67aadee02a5af59569
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 22 Apr 2020 23:15:03 +0000 (01:15 +0200)]
Pull eddsa into netconf-netty-util
Pulling in this dependency allows SSHTest to pass with
ed25519
keys being configured.
Change-Id: I1084e207503ab5e6f4ed50405fecabb96a018841
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 22 Apr 2020 16:20:45 +0000 (18:20 +0200)]
Minimize DataNormalizer footprint
Our import from the controller has some things which we do not
need. Clean them out, significantly reducing complexity.
Change-Id: Idb33749fa877c6575bae8fcf01ccbc702582ccb4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 6 Apr 2020 12:23:06 +0000 (14:23 +0200)]
Migrate away from sal-common-impl
DataNormalizer and related classes are deprecated for removal,
and are used only by are deprecated RESTCONF implementation.
Rehost the three required classes as a private detail.
Change-Id: Id5539948881d503fbe5e223c41cfa7a9a2284109
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 21 Apr 2020 08:46:50 +0000 (10:46 +0200)]
Reuse SchemaContext.NAME for base NETCONF data qname
This QName is a well-known constant available from SchemaContext,
do not use scattered definition.
Change-Id: I68b88d216e35b2583828a73a5d4a2ebe2f092893
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Allan Clarke [Mon, 2 Mar 2020 20:29:11 +0000 (14:29 -0600)]
Add plain PATCH capability to RFC8040 server
Rename constant PATCH to YANG_PATCH - there are now two patch types
Add unit tests for PlainPatchDataTransactionUtil
Update unit tests for RestconfDataService
JIRA: NETCONF-657
Change-Id: I0356e7d4947f89ed603d71e722d845e709ea4e03
Signed-off-by: Allan Clarke <aclarke@pobox.com>
Signed-off-by: Jamo Luhrsen <jluhrsen@gmail.com>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 19 Apr 2020 11:18:47 +0000 (13:18 +0200)]
Add a dedicated AuthenticationFailedException
When we have a failure to authenticate, we want the client to be
able to discern this state.
Add a dedicated exception and report it instead of straight
exception from SSH (which may be anything) or a generic ISE.
JIRA: NETCONF-665
Change-Id: I1f113d5aaff6bf4482d9725adaa06b5d2479304c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
wsx25289 [Thu, 9 Apr 2020 07:29:44 +0000 (03:29 -0400)]
Fix defensive subscriber removal
Attempting to modify the collection while iterating over it
results in ConcurrentModificationException. Use an explicit
iterator and Iterator.remove() to prevent it.
JIRA: NETCONF-664
Change-Id: I6206dfdd896307f83420cfb3201d1125adbf9a07
Signed-off-by: Wsx25289 <10200860@zte.com.cn>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 19 Apr 2020 13:32:33 +0000 (15:32 +0200)]
Files should not be executable
We do not want these to be executable, drop those permissions.
Change-Id: I1ba2d56cc195dce85809ea48a5d231ddcd3b351a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
wsx25289 [Mon, 3 Feb 2020 10:57:49 +0000 (05:57 -0500)]
Do not consider query depth in initial namespace
Initial namespace is independent of the maximum depth requested
by the user. This is a mixup with path depth introduced in the
previous fix for NETCONF-497.
Change-Id: I90fdcc60b2be0891082333490d77d681ecc4fc4a
Signed-off-by: Wsx25289 <10200860@zte.com.cn>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Magic_J [Mon, 9 Apr 2018 06:17:44 +0000 (14:17 +0800)]
Fix default value check
TypeDefinition.getDefaultValue() is returning an optional, which
results in it always being non-null. Fix the check for nullness
and make sure we use the correct value.
Change-Id: Id5aba6cd215d4e19f8b583a81e5599daa9bbe12d
Signed-off-by: Magic_J <panda.magic.j@gmail.com>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 6 Apr 2020 11:25:15 +0000 (13:25 +0200)]
Remove references to sal-common-impl
We do not need anything from sal-common-impl, remove references
to it.
Change-Id: If99a707c8d3be10d3a491aff1d1564f14727926a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 6 Apr 2020 10:29:30 +0000 (12:29 +0200)]
Migrate Compendium reference
We are using OSGi R6, migrate the artifact reference.
Change-Id: I1b669bdc5eaa2c235945acf29db2b27e2ed1d62b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 25 Mar 2020 21:44:55 +0000 (22:44 +0100)]
Use Magnesium controller
As part of controller transition to being MRI, downgrade the version
used to Magnesium release. This will be bumped to Aluminium proper
during the MRI window.
Change-Id: Ib7d7d33fabb7731795de9ba8b59fab4064ce085e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Jamo Luhrsen [Sat, 28 Mar 2020 00:54:33 +0000 (17:54 -0700)]
Update coretutorials links
Signed-off-by: Jamo Luhrsen <jluhrsen@gmail.com>
Change-Id: I473a0a72f027a7d3265faefb83091aec6beaf989
Thanh Ha [Thu, 26 Mar 2020 18:45:03 +0000 (14:45 -0400)]
Master branch is now Aluminium
Signed-off-by: Thanh Ha <zxiiro@gmail.com>
Change-Id: I709dba98975ad76a1bd83e923fc08d32027c0aa8
Jamo Luhrsen [Fri, 20 Mar 2020 23:17:17 +0000 (16:17 -0700)]
Fix broken link to coretutorials:ncmount
Signed-off-by: Jamo Luhrsen <jluhrsen@gmail.com>
Change-Id: I80378fede387084e0b31c2b31928313e6f971f02
Sarguna Dharani [Mon, 10 Feb 2020 11:55:44 +0000 (17:25 +0530)]
NETCONF-125 connection timeout and between timeout are fixed
Signed-off-by: Sarguna Dharani <sarguna.dharani@verizon.com>
Change-Id: I56275dfa10dcfd4ed1a30fbb6c34169e301269db
Manoj Chokka [Mon, 10 Feb 2020 18:15:34 +0000 (23:45 +0530)]
Reject multiple sessions with the same host key
SSH host key is supposed to be unique among devices. If there is an
attempt to establish a session with the same key, terminate the new
session.
Since that rules out the possibility of multiple remotes for a key,
refactor the code to use a ConcurrentMap instead of a Multimap --
removing the need for any locking.
As we really want to use CallHomeProtocolSessionContext in logging,
make it implement a toString() method and clean it up a bit.
JIRA: NETCONF-653
Change-Id: I2d78b9aa34ee4b16d0c6d2ed2ac172942c575851
Signed-off-by: Manoj Chokka <manoj.chokka@verizon.com>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Jamo Luhrsen [Thu, 27 Feb 2020 01:55:28 +0000 (17:55 -0800)]
Add a few restconf additions
- pointing out differences in URL between bierman02 and rfc8040
- added a section about using yang-patch
Signed-off-by: Jamo Luhrsen <jluhrsen@gmail.com>
Change-Id: Icd0f39034cbdd898dcd8e31ec70b04fc094362e6
Sanjana B [Mon, 10 Feb 2020 11:26:59 +0000 (16:56 +0530)]
Do not attempt to parse empty RPC/action reply
An RPC or action can legally result in an empty reply,
even if it has some optional content in its schema.
Detect </ok> reply and do not attempt to parse it as
YANG data.
JIRA: NETCONF-568
JIRA: NETCONF-644
Change-Id: I1f0b5c349f418824b9b0b3e1f01f16824b1b8df4
Signed-off-by: Anna Bencurova <Anna.Bencurova@pantheon.tech>
Signed-off-by: Sanjana B <sanjana.b@verizon.com>
Signed-off-by: Tibor Král <tibor.kral@pantheon.tech>
Tibor Král [Mon, 24 Feb 2020 15:28:11 +0000 (16:28 +0100)]
Add option to provide custom SshClient for netconf-client
When creating netconf-client the DEFAULT SshClient is
used on the background by the AsyncSshHandler. This adds
the option to provide custom SshClient to be used instead.
JIRA: NETCONF-641
Change-Id: I99b1c2e882353732a2e55d0523ee6adbd1ca8cc0
Signed-off-by: Tibor Král <tibor.kral@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Jamo Luhrsen [Wed, 26 Feb 2020 00:52:08 +0000 (16:52 -0800)]
Bring doc building up to python3
looks like readthedocs builds have been failing for a while
because python2 can't find some version of sphinx that is
now required by lfdocs-conf. Maybe an older version of
sphinx would still work, but it's time to catch up to
python3 anyway.
integration/test just added this same .readthedocs.yml
file which finally got it's rtd build to work after
having unknowingly been failing for a month:
https://git.opendaylight.org/gerrit/c/integration/test/+/88064
https://readthedocs.org/projects/odl-integrationtest/builds/?page=1
and netconf has been in the same boat:
https://readthedocs.org/projects/odl-netconf/builds/?page=1
Signed-off-by: Jamo Luhrsen <jluhrsen@gmail.com>
Change-Id: I63c01d8d9805ee492ebeb4d1b65723ab8a2d59b9