Commit graph

737 commits

Author SHA1 Message Date
Phil Heller
38f4cd8237 Testing dependency fixes, Netconf XML declaration and filter logic fix
Install libnghttp2-devel in ubuntu and centos per required dependencies
Ignore case when checking XML declaration encoding value per W3C recommendations
Fix filter logic to follow RFC6241 (7.1, 7.7) and default to subtree
2021-07-29 22:48:07 -06:00
Olof hagsand
cb469a2bc7 docker: nginx install changed in alpine 2021-06-20 16:06:24 +02:00
Olof hagsand
9edf380f6a - Link utils statically if LINKAGE=static
- Fix event exit bug (set to new counter, dont increment)
- Changed default CI to be restconf=native instead of fcgi1~
- Tests:
  - Change to same wait backend and restconf commands
  - Change default restconf protocol from http to https
2021-06-18 22:50:30 +02:00
Olof hagsand
dd8883420c * Made backend transaction and commit/validate API available to plugin code.
* This enables that RPOC handles can call commit and validate via lib
  * The commit/validate API is now: `candidate_validate()` and `candidate_commit()`
2021-06-17 19:20:27 +02:00
Olof hagsand
1f7fc3afcb github actions: added sleep for internal restconf 2021-06-16 16:29:03 +02:00
Olof hagsand
6bac41890d github actions: try docker test 2021-06-16 14:44:42 +02:00
Olof hagsand
8bd0aa82d6 github actions: debug wait backend/restconf 2021-06-16 14:39:28 +02:00
Olof hagsand
c814b809bb github actions: test backend run 2021-06-16 14:34:52 +02:00
Olof hagsand
4f513385e9 - Restconf native http/1 to http/2 upgrade (non-tls) 2021-06-13 12:43:19 +02:00
Olof hagsand
a122efceff * Fixed: [restconf patch method adds redundant namespaces #235](https://github.com/clicon/clixon/issues/235) 2021-06-10 13:05:03 +02:00
Olof hagsand
7d59ec1a3a * Fixed: [JSON parsing error for a specific input. #236](https://github.com/clicon/clixon/issues/236)
* JSON empty list parse problems, eg `a:[]`
2021-06-09 11:44:28 +02:00
Olof hagsand
84f5762ab5 * Most tests work with HTTP/2 support using nghttp2
* except non-ssl http/1->/2 upgrade
* Restconf: ensure HEAD method works everywhere GET does.
2021-06-08 20:53:43 +02:00
Olof hagsand
37da0aa45e fuzzing restconf changes, json mem error 2021-06-02 13:39:48 +02:00
Olof hagsand
0ad577fa81 - Started nghttp2 work
-  Added autoconf config options, temporary for nghttp2 development: `--disable-evhtp`and `--enable-nghttp2`.
- Added special case for api-path:s beginning with //
2021-05-31 19:11:19 +02:00
Olof hagsand
c405a08ff8 Restconf https fixes after nmap and fuzz:
- segv in PUT/POST of /
- Dont return bad request on error, just close socket
2021-05-28 16:17:52 +02:00
Olof hagsand
965cce5e5d * Added SM_RUNNING_STARTUP to translation table
* Fixed https://github.com/clicon/clixon/issues/224 yet again by addressing a mixed xml and yang namespace xpath case
2021-05-27 15:05:50 +02:00
Olof hagsand
e0c3f5467c * Added new startup-mode: running-startup: First try running db, if it is empty try startup db.
* See [Can startup mode to be extended to support running-startup mode? #234](https://github.com/clicon/clixon/issues/234)
* Improved error message on failed MUST condition
2021-05-27 13:18:01 +02:00
Olof hagsand
164aa1cb4c * Restconf: added inline configuration using -R <xml> command line as an alternative to making advanced restconf configuration 2021-05-26 11:24:39 +02:00
Olof hagsand
1ef7a280d7 * Fixed: [when condition error under augment in restconf #227](https://github.com/clicon/clixon/issues/227)
* As part of this fix added custom constant XML_PARENT_CANDIDATE
2021-05-25 15:25:26 +02:00
Olof hagsand
5b39418e92 * [Need an option to disable restconf mandatory action of overwriting startup_db #230](https://github.com/clicon/clixon/issues/230)
* Disable RFC 8040 mandatory copy of running to startup after commit
* Rename CLICON_RESTCONF_INSTALL_DIR -> CLICON_RESTCONF_INSTALLDIR
2021-05-25 11:07:41 +02:00
Olof hagsand
551dc707f1 slack invite, travis docker passwords 2021-05-24 13:27:03 +02:00
Olof hagsand
ae02d02d63 Several fixes to restconf internal and vagrants tests 2021-05-24 13:10:21 +02:00
Olof hagsand
603f70e51f Vagrant and test updates for restconf /www-data mods 2021-05-23 19:55:01 +02:00
Olof hagsand
637c68aed6 travis debug restconf internal 2021-05-23 18:22:54 +02:00
Olof hagsand
c20c672d83 * Changed config and install options for Restconf
* clixon_restconf daemon is installed in /usr/local/sbin (as clixon_backend), instead of /www-data
    * `configure --with-wwwdir=<dir>` remains but only applies to fcgi socket and log
    * New option `CLICON_RESTCONF_INSTALL_DIR` is set to where clixon_restconf is installed, with default `/usr/local/sbin/`
  * Restconf drop privileges user is defined by `CLICON_RESTCONF_USER`
    * `configure --with-wwwuser=<user>` is removed
  * clixon_restconf drop of privileges is defined by `CLICON_RESTCONF_PRIVILEGES` option
* New clixon-restconf@2020-05-20.yang revision
  * Added: restconf `log-destination`
2021-05-23 17:14:18 +02:00
Olof hagsand
c3e26b004c * Fixed: [xpath function count did not work properly #224](https://github.com/clicon/clixon/issues/224) 2021-05-20 15:16:29 +02:00
Olof hagsand
37bcceac02 * Fixed: RESTCONF Native: Failed binding of socket in network namespace caused process zombie 2021-05-17 22:50:07 +02:00
Olof hagsand
376f2a8143 * Fixed problems with XPATH composite operations and functions in netconf get/get-config operations.
* See [XPATH issues #219](https://github.com/clicon/clixon/issues/219)
2021-05-17 10:07:09 +02:00
Olof hagsand
5baf8642ea * Fixed union in XPATH [XPATH issues #219](https://github.com/clicon/clixon/issues/219) 2021-05-15 22:28:10 +02:00
Olof hagsand
783b0a4857 * YANG when statement in conjunction with grouping/uses/augment
* Several cases were not implemented fully according to RFC 7950
    * Do not extend default values if when statements evaluate to false
    * Do not allow edit-config of nodes if when statements evaluate to false (Sec 8.3.2)
    * If a key leaf is defined in a grouping that is used in a list, the "uses" statement MUST NOT have a "when" statement. (See 7.21.5)
  * See [yang uses's substatement when has no effect #218](https://github.com/clicon/clixon/issues/2$
2021-05-13 14:26:02 +02:00
Olof hagsand
7023fe589f patch for fixing http2 test 2021-05-09 22:12:33 +02:00
Olof hagsand
6ed2202638 - Added openssl application-layer protocol negotiation
- Added restconf tests for http/1.0 and http/2
2021-05-09 17:55:13 +02:00
Olof hagsand
ad08200931 - Added Restconf-style xml/json message bodies everywhere
- Added api_return_err0() and changed many calls to that instead of api_return_err
- Added netconf_operation_not_supported_xml()
2021-05-08 20:20:01 +02:00
Olof hagsand
c50f9f8056 Added test for restconf tls too weak ca using md5 2021-05-07 14:05:40 +02:00
Olof hagsand
ac51cb0293 * Fix: XPath:s used in netconf (eg get-config) did not correctly access default values 2021-05-07 13:07:34 +02:00
Olof hagsand
0225488c39 - Moved deviation actions to include grouped/uses statements. See https://github.com/clicon/clixon/issues/211 2021-05-06 16:23:50 +02:00
Olof hagsand
1c5c5a71f2 - Fixed deviate keywords as strings: https://github.com/clicon/clixon/issues/211 2021-05-06 14:44:22 +02:00
Olof hagsand
6605ab8ce7 Restconf native: add error bodies on early errors 2021-05-05 20:40:59 +02:00
Olof hagsand
17e7b25537 * RESTCONF in Clixon used empty key as "wildchar". But according to RFC 8040 it should mean the "empty string".
* Example: `GET restconf/data/x:a=`
  * Previous meaning (wrong): Return all `a` elements.
  * New meaning (correct): Return the `a` instance with empty key string: "".
* [RESTCONF GET request of single-key list with empty string returns all elements #213](https://github.com/clicon/clixon/issues/213)
* [RESTCONF GETof lists with empty string keys does not work #214](https://github.com/clicon/clixon/issues/214)
2021-05-05 15:04:22 +02:00
Olof hagsand
af04ec9e9d Completed: Yang deviation [deviation statement not yet support #211](https://github.com/clicon/clixon/issues/211) 2021-05-04 11:38:39 +02:00
Olof hagsand
5a72626aa4 - Yang deviation [deviation statement not yet support #211](https://github.com/clicon/clixon/issues/211)
- Added "depth" parameter to yang_apply
- Added extra API function to yang_cardinality to check individual relation
2021-05-03 14:34:35 +02:00
Olof hagsand
aaaeec92eb Internal RESTCONF changes:
- Kill running process directly, not schedul a kill
- fcgi: when kill, make exit more ordered, ensure fcgi-accept returns properly
2021-04-30 14:49:01 +02:00
Olof hagsand
27af25f57b test: perf restconf rm nginx headers 2021-04-29 14:45:15 +02:00
Olof hagsand
0d7e644335 - Native restconf: use cligen buffers instead of libevent for replies 2021-04-29 14:06:05 +02:00
Olof hagsand
05009aed67 Add restconf get list extra =restval test 2021-04-28 11:31:41 +02:00
Olof hagsand
4c1249fd9b More restconf error tests for coverage 2021-04-25 17:53:32 +02:00
Olof hagsand
448b56ca0c - Removed sha1 code
- ifdef unused SOAP encoding
2021-04-24 22:06:26 +02:00
Olof hagsand
030715df61 Tests:
- Added tests for more coverage, including test_debug.sh
- Added yang deviation test
2021-04-24 17:51:39 +02:00
Olof hagsand
6981daf595 Fixed: [Multiple http requests in native restconf yields same reply #212](https://github.com/clicon/clixon/issues/212) 2021-04-24 17:43:05 +02:00
Olof hagsand
6cb75f5492 Add tab mode in example. Make coverage script sh->bash script 2021-04-22 20:44:37 +02:00