Olof hagsand
52744c9301
Revert "List pagination locking for state-data changes"
...
This reverts commit eea6d549f6 .
2021-10-30 15:49:23 +02:00
Olof hagsand
eea6d549f6
List pagination locking for state-data changes
...
Changed semantics of locking: instead of relying of locking running-db,
an automatic lock bound to a session is maintained. When the session closes
the lock is released.
2021-10-28 14:49:33 +02:00
Olof hagsand
448aa4c994
include signal.h
2021-10-21 16:29:43 +02:00
Olof hagsand
c93348d8d5
Hide plugin check handler struct with a handler
2021-10-19 17:36:23 +02:00
Olof hagsand
764e9c628c
Added checks of changed handlers or blocked signal after plugin function calls
2021-10-19 16:42:34 +02:00
Olof hagsand
a242cf47bd
Pagination callback modifications: ensure xml is bound to yang, removed
...
code not used (eg remaining) and avoiding an extra xpath_vec call.
Moved debug prints from plugin-callback-one to plugin-callback-all
Fixed memory error in data-cvec access function
2021-10-14 14:06:01 +02:00
Olof hagsand
a74fbdecdb
Dispatcher fixes: user callback arg, changing handler to NULL
2021-10-12 14:45:10 +02:00
Olof hagsand
8469664075
Updated contribution and statedata callback docs
2021-10-10 18:48:10 +02:00
Olof hagsand
8ede8a87b2
Moved fuzz dir to test/fuzz
...
Extended contributing document to testing and licensing
2021-10-10 18:05:45 +02:00
Olof hagsand
edbbb43e1f
Removed remaining and replaced pagination-mode with locked parameter
...
Dispatcher: Added dispatcher_free(), fixed mem-leaks and malloc return
checks
2021-10-10 11:40:47 +02:00
Olof hagsand
ce06f25be7
Merge branch dispatcher and broke out pagination callbacks to use it
...
* Merge branch 'dcornejo-master'
* Broke out pagination callback API from state data callbacks
* New pagination callback API uses new dispatcher from netgate, thanks @dcornejo
* Register callback with: `clixon_pagination_cb_register()`
* Use accessor functions `pagination_offset()`, `pagination_limit()`, etc
* Reverted state data callback API to pre-5.3 (see C/CLI API changes below)
2021-10-08 15:19:37 +02:00
Olof hagsand
7631c3f0a3
coverage: added tests for all ints
2021-10-06 08:36:34 +02:00
Olof hagsand
d175720b7e
Cleaned up Makefiles, especially LINKAGE=static vs dynamic
...
Added LIBSTATIC_SUFFIX instead of hardcoded .a
Changed building of build.c not to be triggered by install
2021-09-30 21:40:46 +02:00
Olof hagsand
9b6bb3ecbf
- Added transaction_arg_set()
...
- Modifed coverage script
2021-09-27 16:31:21 +02:00
Olof hagsand
5a875e3152
Fix some LINKAGE=static compile issues:
...
- Makefile circularity by fixing .so suffix
- simplify example/main Makefile
2021-09-26 11:22:48 +02:00
Olof hagsand
c00162aec1
- Modified linkage constant in makefile to test for dynamic only
...
- CLIXON_STATIC_PLUGIN to support statically linked plugins
- Added -H option to clixon_netconf: Do not require hello before request
2021-09-25 16:36:37 +02:00
Olof hagsand
b70e22096e
- Pagination: enabled LIST_PAGINATION and remobved constant
...
- Changed logic on how to find clixon_restconf in pseudo plugin
- Removed ==== in constants to avoid conflict with git merge
- Remove assert
- Added fuzzing for netconf
2021-09-23 13:33:26 +02:00
Olof hagsand
a7a699a8b5
New state plugin callback for pagination.
...
* You need to change all statedata plugin callback for the new pagination feature
* If you dont use pagination you can ignore the values of the new parameters
* See [User manual pagination](https://clixon-docs.readthedocs.io/en/latest/misc.html#pagination )
* The updated callback signature is as follows:
```
int statedata(clicon_handle h,
cvec *nsc,
char *xpath,
pagination_mode_t pagmode, // NEW
uint32_t offset, // NEW
uint32_t limit, // NEW
uint32_t *remaining, // NEW
cxobj *xstate)
```
2021-09-21 15:02:46 +02:00
Olof hagsand
384ce70d7c
memory leak and nacm recovery test fix
2021-09-21 13:24:34 +02:00
Olof hagsand
ff3f600920
Renamed paging to pagination
2021-09-21 11:28:29 +02:00
Olof hagsand
60193cca0d
- Add remaining argument to state callback
2021-09-21 11:27:58 +02:00
Olof hagsand
6e316b519b
- Refactoring of get_common/get_list_pagination with two sub-functions
...
- Fixed memory leak
2021-09-21 11:27:58 +02:00
Olof hagsand
caabfd464e
* New state callback signature (ca_statedata2)
...
* The new callback contains parameters for paging
* Goal is to replace ca_statedata callback
* New plugin callback when lock/unlock occurs
* Add `ca_lockdb` tro plugin init to use it.
* Fixed: Typing 'q' in CLI more paging did not properly quit output
* Output continued but was not shown, for a very large file this could cause considerable delay
* Fixed: Lock was broken in first get get access
* if the first netconf operation to a backend was lock;get;unlock, the lock was broken in the first get access.
2021-09-21 11:27:58 +02:00
Olof hagsand
aaf9a89183
- Added an extended state plugin callback: ca_statedata2 with offset and limit parameters
...
- Fixed memory errors
2021-09-21 11:26:28 +02:00
Olof hagsand
28f58fb7d6
- Fixed list pagination for CLI
2021-09-21 11:24:53 +02:00
Olof hagsand
a046306270
- New netconf-specific uint32 parse functions
...
- Added failure handling to xpath traverse_canonical
- Started pagination cli code
2021-09-21 11:24:53 +02:00
Olof hagsand
390b0886ed
- pageing offset working
2021-09-21 11:24:53 +02:00
Olof hagsand
fb0b9409f3
- Moved restrconf code from pageing rpc to get
2021-09-21 11:24:53 +02:00
Olof hagsand
c9843b34a6
- Rewrite of netconf get/get-config code
...
- Unified get and get-config code to single function get_common
- Integrated list-pagination code
- Moved get code to new files backend_get.[ch]
2021-09-21 11:24:53 +02:00
Olof hagsand
b03cf426a4
* Protyped netconf native pagination
2021-09-21 11:24:53 +02:00
Olof hagsand
6bf3112fe7
* JSON encoding of YANG metadata according to RFC 7952
...
* XML -> JSON translation
2021-09-21 11:23:40 +02:00
Olof hagsand
76e59873c2
- Changed media name: yang.collection+xml/yang to application-collection+xml/json
...
- Modified ietf-netconf-list-pagination.yang:
- changed get-pagable -> get-pageable
- renamed count -> limit
- renamed skip -> offset
- added import ietf-yang-metadata
- added md:annotation remaining
2021-09-21 11:22:41 +02:00
Olof hagsand
0c7f2043f3
* Pagination according to new draft
...
* count/skip -> limit/offset
* ietf-yang-metadata RFC 7952 support, placeholder parsing and extension
2021-09-21 11:22:41 +02:00
Olof hagsand
77bacc93bb
- Updated code to clixon 5.2 status
...
- Added LIST_PAGINATION clixon_custom constant
- Fix: leafs added as augments on rpc input/output lacked cv:s
2021-09-21 11:22:40 +02:00
Olof hagsand
2485bec483
fixes for compilation
2021-09-21 11:22:40 +02:00
Olof hagsand
2b5dceb82c
cli pagination
2021-09-21 11:22:40 +02:00
Olof hagsand
8e266dd136
skip+count
2021-09-21 11:22:40 +02:00
Olof hagsand
78f5a6983c
Pagination draft
2021-09-21 11:22:40 +02:00
Olof hagsand
2e857bb417
First working prototype
2021-09-21 11:22:40 +02:00
Olof hagsand
9fce0a1214
- IPC socket: add REUSEADDR when using IP (remove comment)
...
- Test: remove variable to use backend restconf, since that is the only option
- Docs C-style: describe return values better
2021-08-24 13:46:47 +02:00
Olof hagsand
8352e25860
* Restconf internal start: fail early if clixon_restconf binary is not found
...
* If CLICON_BACKEND_RESTCONF_PROCESS is true
2021-08-17 10:08:04 +02:00
Olof hagsand
93a4777f0f
Removed default of CLICON_RESTCONF_INSTALLDIR
...
* The default behaviour is changed to use the config $(sbindir) to locate `clixon_restconf` when starting restconf internally
2021-07-27 10:53:47 +02:00
Olof hagsand
dee081646c
* Fixed: SEGV in clixon_netconf_lib functions from internal errors including validation.
...
* Check xerr argument both before and after call on netconf lib functions
2021-07-27 10:31:16 +02:00
Olof hagsand
85e2945ec9
* Netconf message-id attribute changed from optional to mandatory
...
* Made NETCONF message handling more strict according to RFC 6241
* Set `CLICON_NETCONF_MESSAGE_ID_OPTIONAL` to true to accept omission of message-id attribute
* Fixed: [need make sure message-id exist in rpc validate #240 ](https://github.com/clicon/clixon/issues/240 )
2021-06-30 10:59:10 +02:00
Olof hagsand
ba45d6d2a1
Fixed memory leak in new candidate_validate function
...
Added error returns for clixon-lib process rpc empty returns
2021-06-23 10:50:47 +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
b40dafb691
* Event exit API changed to a single decrementing counter where 1 means exit.
...
* Removed: `clicon_exit_reset()`
* Changed: `clicon_exit_set()` --> `clixon_exit_set(int nr)`
* Changed: `clicon_exit_get()` --> `clixon_exit_get()`
* native restconf special case upgrade handling from http/1 -> http/2 and restconf restart: delay the restart using event exit counter
2021-06-16 11:58:13 +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
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