Olof hagsand
7fd1751302
Merge branch 'datastore-repair' into release-4.3
2020-02-15 14:31:38 +01:00
Olof hagsand
5dd3243f66
Known Issues:
...
* If you retrieve state _and_ config data using RESTCONF or NETCONF `get`, a severe performance penalty occurs if you have large lists (eg ACLs). Workaround: disable `VALIDATE_STATE_XML` in `include/clixon_custom.h`.
2020-02-14 15:16:17 +01:00
Olof hagsand
b6812793f9
General-purpose upgrade
2020-02-12 16:40:52 +01:00
Olof hagsand
3748eefb8e
datastore repair test branch
2020-02-11 20:17:15 +01:00
Olof hagsand
76a4d31c4b
Fixed: Enabling modstate (CLICON_XMLDB_MODSTATE), changing a revision on a yang, and restarting made the backend daemon exit at start (thanks Matt).
...
* Also: ensure to load `ietf-yang-library.yang ` if CLICON_XMLDB_MODSTATE is set
2020-02-10 20:23:48 +01:00
Olof hagsand
3d5c2cc678
* Session-id CLI functionality delayed: "lazy evaluation"
...
* From a cli perspective this is a revert to 4.1 behaviour, where the cli does not immediately exit on start if the backend is not running, but with the new session-id function
2020-02-05 16:09:26 +01:00
Olof hagsand
a58f1872ad
Restructure of get state/config code to enable all combinations of filtering config/state for both <get> and <get-config>
2020-02-01 20:16:11 +01:00
Olof hagsand
b7f1d72c28
read whole running config when reading state data
2020-01-31 16:13:50 +01:00
Olof hagsand
20d28b4796
Compile option VALIDATE_STATE_XML introduced in include/custom.h to control whether code for state data validation is compiled or not.
2020-01-29 21:56:50 +01:00
Olof hagsand
f5209b1fab
* Fixed: Validation of user state data led to wrong validation, if state relied on config data, eg leafref/must/when etc.
...
* Fixed: No revision in yang module led to errors in validation of state data
2020-01-27 22:11:35 +01:00
Olof Hagsand
a87e9cb246
clang warnings
2019-12-23 14:03:42 +00:00
Olof hagsand
7fb452f96e
nacm external mem leak
2019-12-22 18:00:46 +01:00
Olof hagsand
b78054e7cf
State callback error message changed to include namespace and use proper <bad-element>
2019-12-21 20:50:55 +01:00
Olof hagsand
7ad16bd84b
* C-API: Added xpath_first_localonly() as an xpath function that skips prefix and namespace checks.
...
* Added experimental code for optizing XPath search using binary search.
* Enable with XPATH_LIST_OPTIMIZE
* Changed `clicon_rpc_generate_error(msg, xerr)` to `clicon_rpc_generate_error(xerr, msg, arg)`
2019-12-20 18:21:46 +01:00
Olof hagsand
d68a829862
* Added namespace-context parameter nsc to xpath_first and xpath_vec, (xpath_vec_nsc and xpath_first_nsc` are removed).
2019-12-07 20:46:13 +01:00
Olof hagsand
46552066d1
Added nsc parameter to xmldb_get()
2019-12-02 20:55:28 +01:00
Olof hagsand
08b128f4d7
moved config yang spec from main functions to options_main function
2019-12-01 17:42:34 +01:00
Olof hagsand
c4954f5c43
memerror in uid-get. reinsert save config yang spec (removed for wrong reasons previously causing memleaks)
2019-12-01 16:48:45 +01:00
Olof hagsand
0d22a8b6d0
Yang files reorganized into three classes: clixon, mandatory, optional
2019-11-26 21:51:28 +01:00
Olof hagsand
d0e97ee338
Removed obsolete config yang handler
...
Added base netconf as default namespace in canonical nsctx
2019-11-16 16:49:40 +01:00
Olof hagsand
52629d7b35
Added "canonical" global namespace context: nsctx_global
2019-11-15 17:04:13 +01:00
Olof hagsand
43eb9fe9d2
state callback xml error
2019-11-14 22:16:45 +01:00
Olof hagsand
6b9a9d46f9
changed netconf_err2cb
2019-11-12 20:47:09 +01:00
Olof hagsand
835f9030d2
* State callbacks provided by user are validated. If they are invalid an internal error is returned.
...
* Fixed multi-namespace for augmented state which was not covered in 4.2.0.
* The multi-namespace augment state may rearrange the XML namespace attributes.
* Mandatory variables can no longer be deleted.
2019-11-11 21:03:11 +01:00
Olof hagsand
728fe9c6ac
* Bumped version to 4.3.0.PRE
...
* Added wildcard `*` as a mode to `CLICON_MODE` in clispec files
* [Add missing includes](https://github.com/clicon/clixon/pulls )
2019-11-03 13:05:50 +01:00
Olof hagsand
84c94b2c0e
recover user as config option instead of constant
2019-10-24 20:43:03 +02:00
Olof hagsand
44138c0071
internal netconf hello mechanism to obtain session-id
2019-10-24 11:46:06 +02:00
Olof Hagsand
9a6478e267
Merge branch 'master' of https://github.com/clicon/clixon
2019-10-19 20:58:07 +00:00
Olof Hagsand
28a62ecb11
memleak
2019-10-19 20:58:03 +00:00
Olof hagsand
1fa45067a7
typo
2019-10-19 22:56:25 +02:00
Olof hagsand
b624e911b8
* Internal backend socket protocol changed: uint32_t session-id added, see clixon_proto.h
...
* * Changed session-id handing. Instead of using pid of peer process, a proper session id generated by the server is used, following RFC6241.
2019-10-19 19:52:09 +02:00
Olof hagsand
279614d64f
* The backend socket has now support of credentials of peer clients
...
* Added: CLICON_NACM_CREDENTIALS and CLICON_NACM_RECOVERY_USER
2019-10-18 19:33:23 +02:00
Olof Hagsand
77b491c568
Demon->Daemon, FreeBSD grep changes
2019-10-14 07:47:08 -10:00
Olof hagsand
03acf8e19c
* XPATH canonical form implemented for NETCONF get and get-config.
2019-10-09 22:13:04 +02:00
Olof hagsand
d9136c8972
* Stricter handling of multi-namespace handling
...
* This occurs in cases where there are more than one XML namespaces in a config tree, such as `augment`:ed trees.
* Affects all parts of the system, including datastore, backend, restconf and cli.
* Invalid api-path syntax (eg non-matching yang) error changed from 412 operation-failed to 400 Bad request invalid-value, or unknown-element.
2019-09-29 14:45:08 +02:00
Olof hagsand
27fd99e7cd
* Implemented backend daemon drop privileges after initialization to
...
run as non-privileged user
2019-09-14 18:34:32 +02:00
Olof hagsand
3d5abb77f9
* Backend daemon drops privileges after initialization (to not run as root)
...
* New config option `CLICON_USER` with default value `clicon`
* Can also be set with `-U <user>` clixon_backend command-line option
2019-09-11 21:24:14 +02:00
Olof hagsand
ee329ee382
* RESTCONF "depth" query parameter supported
...
* C API change: Added `depth` parameter to function `clicon_xml2cbuf`, default is -1.
2019-08-17 10:54:13 +02:00
Olof hagsand
10a2dbe8ec
* Added experimental binary search API function: xml_binsearch
...
* Added content parameter to `clicon_rpc_get` (-1 or CONTENT_ALL is default)
* Reverted change in clixon-lib.yang
2019-08-14 11:13:24 +02:00
Olof hagsand
8b7b7b0f60
* RESTCONF "content" query parameter supported
...
* New clixon-lib@2019-08-13.yang revision
* Bugfix: If `ietf-netconf.yang` was imported from any yang module, client/backend communication stops working.
2019-08-13 13:21:11 +02:00
Olof hagsand
c97346921b
Netconf operation attribute namespace check is enforced
2019-07-31 16:45:48 +02:00
Olof hagsand
e7b60619da
* Pushed tag to 4.0.1.PRE
...
* Restconf RFC 8040 increased feature compliance
* Cache-Control: no-cache added in HTTP responses (RFC Section 5.5)
* Restconf monitoring capabilities (RFC Section 9.1)
* Added support for Yang extensions
* New plugin callback: ca_extension
* Main backend example includes example code on how to implement a Yang extension in a plugin.
* JSON changes
* Non-pretty-print output removed all extra spaces.
* Example: `{"nacm-example:x": 42}` --> {"nacm-example:x":42}`
* Empty JSON container changed from `null` to `{}`.
* Empty list and leafs remain as `null`
* Removed unnecessary configure dependencies
* libnsl, libcrypt, libm, if_vlan,...
* pseudo-plugin added, to enable callbacks also for main programs. Useful for extensions
* Yang Unique statements with multiple schema identifiers did not work on some platforms due to memory error.
2019-07-23 22:11:14 +02:00
Olof Hagsand
2a766c5adf
zerocopy memleak
2019-07-13 13:40:14 +00:00
Olof hagsand
40d5b99d3b
Reverted some of the nsc xpath API changes. In the revert, xpath_first() and xpath_vec() retain their old syntax with nsc==NULL.
...
The reason is to be conservative with the API. However, less used functions, such as xpath_vec_bool(), xpath_vec_ctx() and xpath_vec_flag() are changed with a new `nsc`parameter, which should be set to NULL in most cases.
2019-07-09 12:19:03 +02:00
Olof hagsand
1f8c759f3d
Merge branch 'master' of https://github.com/clicon/clixon .
...
Added new API function `xpath_parse()` to split parsing and xml evaluation.
2019-07-08 14:47:18 +02:00
Olof hagsand
67b8685bab
The Clixon API has been extended with namespaces, or namespace contexts in the following cases:
...
* CLIspec functions have added namespace parameter:
* `cli_show_config <db> <format> <xpath>` --> `cli_show_config <db> <format> <xpath> <namespace>`
* `cli_copy_config <db> <xpath> ...` --> `cli_copy_config <db> <xpath> <namespace> ...`
* Xpath API
* `xpath_first(x, format, ...)` --> `xpath_first(x, nsc, format, ...)`
* `xpath_vec(x, format, vec, veclen, ...)` --> `xpath_vec(x, nsc, format, vec, veclen, ...)`
* `xpath_vec_flag(x, format, flags, vec, veclen, ...)` --> `xpath_vec_flag(x, format, flags, vec, veclen, ...)`
* `xpath_vec_bool(x, format, ...)` --> `xpath_vec_bool(x, nsc, format, ...)`
* `xpath_vec_ctx(x, xpath, xp)` --> `xpath_vec_ctx(x, nsc, xpath, xp)`
* xmldb_get0 has an added `nsc` parameter:
* `xmldb_get0(h, db, xpath, copy, xret, msd)` --> `xmldb_get0(h, db, nsc, xpath, copy, xret, msd)`
* The plugin statedata callback (ca_statedata) has been extended with an nsc parameter:
* `int example_statedata(clicon_handle h, cvec *nsc, char *xpath, cxobj *xstate);`
* rpc get and get-config api function has an added namespace argument:
* `clicon_rpc_get_config(clicon_handle h, char *db, char *xpath, char *namespace, cxobj **xt);`
* `int clicon_rpc_get(clicon_handle h, char *xpath, char *namespace, cxobj **xt);`
2019-07-08 10:36:37 +02:00
Olof hagsand
c3245f0600
On validation callbacks, XML_FLAG_ADD is added to all nodes at startup validation, not just the top-level. This is the same behaviour as for steady-state validation.
2019-06-19 21:54:59 +02:00
Olof hagsand
3bad8bc874
* startup_extraxml triggers unnecessary validation
...
* Renamed startup_db_reset -> xmldb_db_reset (its a general function)
* In startup_extraxml(), check if reset callbacks or extraxml file actually makes and changes to the tmp db.
2019-06-14 22:01:30 +02:00
Olof hagsand
fc78824110
Many validation functions have changed error parameter from cbuf to xml tree.
2019-06-10 12:49:40 +02:00
Olof hagsand
3dba0b5370
Restore xmldb_get() to original (but removed one parameter
...
Moved all zero-copy xmldb_get functions to xmldb_get0.
Clarified CHANGELOG for xmldb_get changes
2019-06-04 11:14:03 +02:00