Commit graph

477 commits

Author SHA1 Message Date
Olof hagsand
6ff36a2894 * Added xml_wrap function that adds an XML node above a node as a wrapper
* also renamed `xml_insert` to `xml_wrap_all`.
* Added `clicon_argv_get()` function to get the user command-line options, ie the args in `-- <args>`. This is an alternative to using them passed to `plugin_start()`.
2019-03-27 16:04:14 +01:00
Olof Hagsand
5fd092b785 reverted internal-rpc nacm rule 2019-03-26 16:26:07 +01:00
Olof hagsand
8624be0a67 xml changelog next iteration 2019-03-26 12:04:51 +01:00
Olof Hagsand
1991c3870c uninitialized vars 2019-03-25 22:16:51 +01:00
Olof hagsand
a0abf8436e XML chanelog revision 2019-03-25 10:42:27 +01:00
Olof Hagsand
0c0efd4037 Added synatctic check for yang status: current, deprectated or obsolete 2019-03-23 13:23:50 +01:00
Olof Hagsand
69dcc721a9 * Added CLICON_NACM_MODE "internal-rpc" which is for RPC functionality only 2019-03-22 17:09:05 +01:00
Olof Hagsand
10d45bcee3 Memory leaks and errors 2019-03-21 20:36:47 +01:00
Olof hagsand
3f68cca06c * New yang changelog experimental feature for automatic upgrade
* Added modules-state diff parameter to xmldb_get datastore function for startup scenarios.
* Allowed Yang extended Xpath functions (syntax only):
  * re-match, deref, derived-from, derived-from-or-self, enum-value, bit-is-set
* XSD regular expression handling of dash(`-`)
  *: Translate XDS `[xxx\-yyy]` to POSIX `[xxxyyy-]`.
* YANG Anydata treated same as Anyxml
2019-03-21 18:05:55 +01:00
Olof hagsand
434f0b930e Made Makefile concurrent so that it can be compiled with -jN 2019-03-21 10:40:00 +01:00
Olof hagsand
0bf838eb8c added module-revision Yang 2019-03-19 11:55:44 +01:00
Olof hagsand
7b30b7a9e0 ordering problems 2019-03-18 21:59:41 +01:00
Olof hagsand
789732c613 xml sort adjust to different yang models
global yang ordering for top-level xml symbols
2019-03-18 19:15:21 +01:00
Olof hagsand
606245ef02 * Added flags to example backend to control its behaviour:
* Start with `-- -r` to run the reset plugin
  * Start with `-- -s` to run the state callback
* Rewrote yang dir load algorithm to follow the algorithm in [FAQ](FAQ(doc/FAQ.md#how-are-yang-files-found) with more precise timestamp checks, etc.
2019-03-18 16:31:34 +01:00
Olof hagsand
8f656da15b Bugfix: [Nodes from more than one of the choice's branches exist at the same time](https://github.com/clicon/clixon/issues/81) 2019-03-14 16:33:10 +01:00
Olof hagsand
b1c74b5f1f * Ensured you can add multiple callbacks for any RPC, including basic ones.
* Extra RPC:s will be called _after_ the basic ones.
  * One specific usecase is hook for `copy-config` (see [doc/ROADMAP.md] that can be implemented thus way.
* `rpc_callback_register` added a namespace parameter. Example:
   ```
     rpc_callback_register(h, empty_rpc, NULL, "urn:example:clixon", "empty");
   ```
2019-03-10 17:27:52 +01:00
Olof hagsand
b03f8332e1 * CLI history: [Preserve CLI command history across sessions. The up/down arrows](https://github.com/clicon/clixon/issues/79)
* The design is similar to bash history:
      * The CLI loads/saves its complete history to a file on entry and exit, respectively
      * The size (number of lines) of the file is the same as the history in memory
      * Only the latest session dumping its history will survive (bash merges multiple session history).
      * Tilde-expansion is supported
      * Files not found or without appropriate access will not cause an exit but will be logged at debug level
  * New config options: CLICON_CLI_HIST_FILE with default value `~/.clixon_cli_history`
  * New config options: CLICON_CLI_HIST_SIZE with default value 300.
2019-03-08 11:26:07 +01:00
Olof hagsand
77387e9c65 Merge branch 'master' of https://github.com/dcornejo/clixon into dcornejo-master 2019-03-06 10:03:58 +01:00
Olof hagsand
8cfd72c2c5 Merge branch 'develop' 2019-03-06 09:44:43 +01:00
Olof hagsand
98fb6eceef * Clixon configuration file top-level symbols has changed to clixon-configand namespace check is enforced.
* clixon-config YAML file has new revision: 2019-03-05.
  * New URN and changed top-level symbol to `clixon-config`
* Removed obsolete `_CLICON_XML_NS_STRICT` variable and `CLICON_XML_NS_STRICT` config option.
2019-03-06 09:42:55 +01:00
Olof hagsand
01c8b0b836 * [Identityref inside augment statement](https://github.com/clicon/clixon/issues/77)
* Yang-stmt enhanced with "shortcut" to original module
2019-03-05 22:42:13 +01:00
Dave Cornejo
e2e465eb7b remove redundant typedef that caused problems with some compilers
thanks to report from Piotr Kubaj against FreeBSD port:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236195
2019-03-04 09:24:42 -10:00
Olof hagsand
4b17af0278 * Strict XML Prefixed namespace check
* Yang augment created multiple augmented children (no side-effect)
* XML prefixed attribute names were not copied into the datastore
2019-03-04 19:15:23 +01:00
Olof hagsand
b182e8666f [yang type range statement does not support multiple values](https://github.com/clicon/clixon/issues/59)
[Multiple ranges support](https://github.com/clicon/clixon/issues/78)
Restructured "cb" parameter in cli_generate.c
2019-03-04 14:36:43 +01:00
Olof hagsand
fc93051b87 Fixed numeric ordering of lists (again) [https://github.com/clicon/clixon/issues/64] It was previously just fixed for leaf-lists. 2019-02-28 17:07:24 +01:00
Olof hagsand
31304380cd memleak for unknown in yang parser 2019-02-28 14:39:16 +01:00
Olof Hagsand
3dd67474e0 Merge branch 'master' of https://github.com/clicon/clixon 2019-02-28 13:12:06 +01:00
Olof Hagsand
a529546c88 Merge branch 'master' of https://github.com/clicon/clixon 2019-02-28 13:11:22 +01:00
Olof Hagsand
ff3ff0daa9 * There was a problem with ordered-by-user for XML children that appeared in so\
me circumstances and difficult to trigger. Entries entered by the user did not \
appear in the order they were entered. This should now be fixed by adding an enumeration to xml children for sorting ordered by user properly
2019-02-27 18:20:23 +01:00
Olof Hagsand
ceb5df2050 * New xml_isancestor xml function
* Fixed memleak test for upgrade
2019-02-27 16:33:51 +01:00
Olof Hagsand
f035c3ca23 * Removed all dependency on strverscmp
* Added libgen.h for baseline()
2019-02-27 10:46:05 +01:00
Olof hagsand
2394c6f46e Merge branch 'modules-state' 2019-02-26 16:53:59 +01:00
Olof hagsand
560110b4e8 * New backend startup and upgrade support, see [doc/startup.md] for details
* Datastore files contain RFC7895 module-state information
2019-02-26 15:48:15 +01:00
Dave Cornejo
e282493095 FreeBSD compatibility & pedanticism patches
use ETIMEDOUT rather than ETIME - this seems more the intent of its
usage here and it compiles under FreeBSD & Linux.
in yang_spec_parse_file() the function basename() is not declared,
the declaration is in libgen.h, so include it. also basename() takes
char * for its argument not const char *, yang_spec_parse_file()
has to be changed to char *filename to compile w/o warnings
2019-02-22 19:59:14 -10:00
Olof hagsand
3c332b689f Added cache for modules-state RFC7895 to avoid building new XML every get call 2019-02-21 15:06:20 +01:00
Olof hagsand
a20865846e new try: optimized yang string parsing 2019-02-20 17:36:40 +01:00
Olof hagsand
8279c015d8 Revert "optimized string lex parsing"
This reverts commit 5b6bdbfd3a.
2019-02-20 16:26:01 +01:00
Olof hagsand
83edd29678 Revert "Revert "* Added valgrind memory leak tests in testmem.sh for restconf""
This reverts commit a73d2bd242.
2019-02-20 16:25:42 +01:00
Olof hagsand
a73d2bd242 Revert "* Added valgrind memory leak tests in testmem.sh for restconf"
String error
This reverts commit 6e63f0a77b.
2019-02-20 16:19:07 +01:00
Olof hagsand
5b6bdbfd3a optimized string lex parsing 2019-02-20 15:37:10 +01:00
Olof Hagsand
6e63f0a77b * Added valgrind memory leak tests in testmem.sh for restconf
* Added clicon_socket_set() and clicon_socket_get() functions for cleaning up backend server and restconf FCGI socket on termination.
* Removed obsolete `-x` command-line option to clixon_cli.
2019-02-20 13:06:18 +01:00
Olof hagsand
28bd698968 [Issue with bare axis names](https://github.com/clicon/clixon/issues/54) 2019-02-19 22:56:18 +01:00
Olof hagsand
4c0b412e9f Added valgrind memory leak tests for backend. Fixed some minor leaks and file descriptor closes. 2019-02-19 13:16:59 +01:00
Olof hagsand
057f4835db Did not check for missing list keys in validate. [Key of a list isn't mandatory](https://github.com/clicon/clixon/issues/73) 2019-02-13 18:19:33 +01:00
Olof hagsand
ea8c84a372 Added new log function: clicon_log_xml() for logging XML tree 2019-02-13 11:35:49 +01:00
Olof Hagsand
f02310dcef More on clixon base container on Alpine 2019-02-12 11:11:04 +01:00
Olof Hagsand
9cf4b0139a compile on alpine 2019-02-11 17:44:29 +01:00
Olof Hagsand
024ba3439d travis errors 2019-02-11 17:21:16 +01:00
Olof Hagsand
66d8573c00 Added docker/base as minimal clixon container and docker/system as full clixon system. 2019-02-11 14:17:29 +01:00
Olof Hagsand
2b596591f1 Added Clixon example full system docker container, see [docker/system]. 2019-02-07 22:23:58 +01:00