Commit graph

779 commits

Author SHA1 Message Date
Olof hagsand
a01fe04613 Fixed: [CLI crash if error-info is empty #134](https://github.com/clicon/clixon/issues/134) 2020-09-01 16:19:58 +02:00
Olof hagsand
41ac192362 Fixed: [Cannot create or modify NACM data node access rule with path using JSON encoding #129](https://github.com/clicon/clixon/issues/129). The evaluation of NACM datanode rule path is assumed to be canonical namespace and cannot be overruled with xmlns rules. 2020-08-30 17:03:49 +02:00
Olof hagsand
043acb6a54 Remove default sets in init cache 2020-08-28 09:51:14 +02:00
Olof hagsand
558abb1f9b Corrected error message for list min/max-value to comply to RFC 7950: a proper path is now returned, peviously only the list symbol. it is also exposed in the CLI correctly.
* Example: `<error-path>/c/a1</error-path>`
2020-08-27 15:52:31 +02:00
Olof hagsand
a3e80080e2 added error-app-tag to netconf error textual message 2020-08-27 13:15:16 +02:00
Olof hagsand
96a8192cd2 Fixed: [Yang modules skipped if the name is a proper prefix of other module name](https://github.com/clicon/clixon/issues/130) 2020-08-27 11:55:42 +02:00
Olof hagsand
576533ed82 Changed singnature of ys_real_module and improved error handling 2020-08-27 11:01:09 +02:00
Olof hagsand
3e054fedc3 Fixed an error in global default values. Global default values were not written to datastore after startup, but AFTER an edit/commit. 2020-08-24 22:26:31 +02:00
Olof hagsand
2e23856676 fixed memory leaks in restconf evhtp module 2020-08-22 18:02:08 +02:00
Olof hagsand
6be4b18391 Fixed: [Type / Endianism problem in yang_parse_file #128](https://github.com/clicon/clixon/issues/128) 2020-08-21 13:33:38 +02:00
Olof hagsand
25f67d1eb9 Fixed: [(CLI) the description of a used grouping is shown instead of the encapsulating container #124](https://github.com/clicon/clixon/issues/124) 2020-08-19 15:55:55 +02:00
Olof hagsand
dc1ad560f9 * Bundle internal NETCONF on RESTCONF: A RESTCONF operation could produce several (up to four) internal NETCONF messages between RESTCONF server and backend. These have now been bundled into one.
* NACM recovery user session is now properly enforced. This means that if `CLICON_NACM_CREDENTIALS` is `except` (default), then a specific `CLICON_NACM_RECOVERY_USER` can make any edits and bypass NACM rules.
* If a default value is replaced by an actual value, RESTCONF return values have changed from `204 No Content` to `201 Created`
* clixon-config.yang: Removed default valude of CLICON_NACM_RECOVERY_USER
2020-08-11 14:49:30 +02:00
Olof hagsand
a7737c283c restricted NACM recovery user 2020-08-06 21:43:27 +02:00
Olof hagsand
794d51a365 * Top-level default leafs assigned.
* Enforcing RFC 7950 Sec 7.6.1 means unassigned top-level leafs (or leafs under non-presence containers) are assigned default values.
* NACM default behaviour is read-only (empty configs are dead-lockedd)
  * This applies if NACM is loaded and `CLICON_NACM_MODE` is `internal`
* Fixed: [default values don't show up in datastores #111](https://github.com/clicon/clixon/issues/111)
2020-08-06 15:20:57 +02:00
Olof hagsand
65733ffe69 * Added yang-binding yb parameter to xmldb_get0() and all xmldb get functions. 2020-08-03 13:57:04 +02:00
Olof hagsand
5911d23efc patch quit startup upgrading 2020-08-03 13:08:43 +02:00
Olof hagsand
5b81c43d96 New backend switch: -q : Quit startup directly after upgrading and print result on stdout 2020-08-03 12:49:33 +02:00
Olof hagsand
daeab85446 removed obsolete example yang, mod cli_dbxml to only append leaf in cli_set 2020-07-30 22:52:42 +02:00
Olof hagsand
d2ccee4eab Added nsctx argument to cli_dbxml() and exposed it as a public function
Added function clixon_instance_id_bind()
2020-07-28 16:15:02 +02:00
Olof hagsand
3ecc259ec7 misc documentation 2020-07-28 16:15:02 +02:00
Olof hagsand
23bcee8185 * Netconf lock/unlock behaviour changed to adhere to RFC 6241
* Changed commit lock error tag from "lock denied" to "in-use".
  * Changed unlock error message from "lock is already held" to #lock not active" or "lock held by other session".
  * Fixed [lock candidate succeeded even though it is modified #110](https://github.com/clicon/clixon/issues/110)
2020-07-28 16:13:34 +02:00
Vladimir Ratnikov
f5d57ae50f fix clauses 2020-07-28 06:03:22 -04:00
Vladimir Ratnikov
8b5c77838b Don't call upgrade callbacks for module with no revision defined 2020-07-28 05:52:07 -04:00
Olof hagsand
9d2102cebf Fixed: [Need to add the possibility to use anchors around patterns #51](https://github.com/clicon/cligen/issues/51):
* Dont escape `$` if it is last in a regexp in translation from XML to POSIX.
2020-07-27 20:03:52 +02:00
Olof hagsand
918bf6223b added CR delimiters to if-feature 2020-07-27 13:00:56 +02:00
Olof hagsand
f7b640810b * Enhanced Clixon if-feature handling:
* If-feature now supports and/or lists, such as: `if-feature "a and b"` and `if-feature "a or b or c"`. However, full if-feature-expr including `not` and nested boolean experessions is still not supported.
  * Sanity check: if an `if-feature` statement exists, a corresponding `feature` statement must exists that declares that feature.
2020-07-27 12:06:36 +02:00
Olof hagsand
cb58b2bb12 log warning, error doc 2020-07-26 16:16:32 +02:00
Olof hagsand
864e2d1692 Instance-id yang validation checks corrected 2020-07-26 16:14:39 +02:00
Olof hagsand
ab2f7cbbb4 Merge branch 'master' of https://github.com/clicon/clixon 2020-07-25 16:14:42 +02:00
Olof hagsand
57b104bc25 * Checked yang binding validity which lead to:
* Changed and enhanced several `bad-element` error replies to `unknown-element` with more detailed error-message.
2020-07-25 16:09:24 +02:00
Vladimir Isaev
cc8e727f85 Added error message for each CLICON_YANG_UNKNOWN_ANYDATA occasion 2020-07-24 15:46:38 +03:00
Olof hagsand
83203623cd Optimized get config xpath of large lists, such as a[x=1000] in a list of 100000s a:s. 2020-07-23 20:41:32 +02:00
Olof hagsand
316cad35ff Another CLICON_YANG_UNKNOWN_ANYDATA issue: top-level unknown namespace caused segv in backend 2020-07-17 19:03:40 +02:00
Olof hagsand
490f7d8023 Two CLICON_YANG_UNKNOWN_ANYDATA issues: segv when exiting cli and diff errors on commit 2020-07-17 14:18:09 +02:00
Olof hagsand
62446db752 Fixed CLICON_YANG_UNKNOWN_ANYDATA for config and state data. This feature introduced in 4.5 didnt really work. 2020-07-14 19:56:42 +02:00
Olof hagsand
25245a12d2 code documentation 2020-07-12 10:59:12 +02:00
Olof hagsand
593ed2ef3b Added const char * in multiple places 2020-07-02 19:25:48 +02:00
Olof hagsand
839dc3231d Merge branch 'mycpp/new-test' of https://github.com/shmuelnatan/clixon into shmuelnatan-mycpp/new-test 2020-07-02 17:20:38 +02:00
shmuels
58ea4eba27 Changed code so that it will be compatible with c++.
1. Added #ifdef extern "C" to public header files.
2. Changed variables that are key words in c++, to different names (like ns instead of namespace).
3. Changed char* to const char* for constant strings.
2020-07-02 15:00:53 +03:00
Olof hagsand
99b01040a7 * Fixed: [Double free when using libxml2 as regex engine #117](https://github.com/clicon/clixon/issues/117)
* added libxml2 support in test_pattern.sh when libxml2 is configured
2020-07-02 13:26:15 +02:00
Olof hagsand
9c82e97072 Added http support for evhtp (not only https) 2020-06-29 14:41:08 +02:00
Olof hagsand
c2e459e8bb Three errors in new upgrade code: DEL didnt work, empty config did now work, neither did no yang files in a dir 2020-06-27 13:02:04 +02:00
Olof hagsand
8f1de15ad3 Changed module-specific upgrade API, not backward compatible. The API has been simplified which means more has to be done by the programmer.
* In summary, a user registers an upgrade callback per module. The callback is called at startup if the module is added, has been removed or if the revision on file is different from the one in the system.
  * The register function has removed `from` and `rev` parameters: `upgrade_callback_register(h, cb, namespace, arg)`
  * The callback function has a new `op` parameter with possible values: `XML_FLAG_ADD`, `XML_FLAG_CHANGE` or `XML_FLAG_CHANGE`: `clicon_upgrade_cb(h, xn, ns, op, from, to, arg, cbret)`
2020-06-26 14:39:04 +02:00
Olof hagsand
73bbcded87 Added restconf handle specialization to implement restconf parameters 2020-06-22 12:47:43 +02:00
Olof hagsand
126cc209f4 restconf fcgi refactoring and generalizing restconf tests for evhtp 2020-06-19 15:19:03 +02:00
Olof hagsand
ee29452d24 * New clixon-config@2020-06-17.yang revision
* Added CLICON_CLI_LINES_DEFAULT for setting window row size of raw terminals
  * Added  enum HIDE to CLICON_CLI_GENMODEL for auto-cli
2020-06-18 11:28:47 +02:00
Olof hagsand
fade9dcfd5 Fixed: Reading in a yang-spec file exactly the same size as the buffer (1024/2048/4096/...) could leave the buffer not terminated with a 0 byte 2020-06-18 09:54:51 +02:00
Olof hagsand
0adcd94f3f * Added new cli show functions to work with cligen_output for cligen pageing to work. To acheive this, add a callback function as follows:
* xml2txt(...) --> xml2txt_cb(..., cligen_output)
  * xml2cli(...) --> xml2cli_cb(..., cligen_output)
  * clicon_xml2file(...) --> clicon_xml2file_cb(..., cligen_output)
  * xml2json(...) --> xml2json_cb(..., cligen_output)
  * yang_print(...) --> yang_print_cb(..., cligen_output)
2020-06-17 14:04:19 +02:00
Olof hagsand
5120409a56 Auto-cli updates and sync with clixon-docs 2020-06-15 16:07:04 +02:00
Olof hagsand
e898dda016 * Auto-CLI enhancements
* A generated clispec including state (default @datanodestate) also generated along with the config clispec tree (default @datanode)
  * New mode `GT_HIDE` set by option `CLICON_CLI_GENMODEL_TYPE` to collapse non-presence containers that only contain a single list
  * Added a prfix for cli_show_config/cli_show_auto so that it can produce parseable output
  * Thanks dcornejo@netgate.com for trying it out and suggestions
2020-06-13 12:05:26 +02:00