Commit graph

315 commits

Author SHA1 Message Date
Olof hagsand
434f0b930e Made Makefile concurrent so that it can be compiled with -jN 2019-03-21 10:40:00 +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
932ca2e8ce Changed (startup) running mode so that startup_db is not overwritten.
This changes the upgrade semantics for running mode which will have to
be accounted for later.
2019-03-12 09:56:09 +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
efe44d60e8 Added base as CLI default mode and cli 2019-03-05 16:19:20 +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
4d3c61735c Ensure non-modstate enabled backends ignore the modstate 2019-02-28 16:03:23 +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
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
9afdd66f9a Preparing for 3.9.0 2019-02-21 16:12:37 +01: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
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
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
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
286c2ec04f Added valgrind memory leak tests in testmem.sh for cli and netconf 2019-02-18 16:05:51 +01:00
Olof hagsand
055b1df80c Merge branch 'develop' of https://github.com/clicon/clixon into develop 2019-02-18 15:53:41 +01:00
Olof Hagsand
d64d433468 * Changed base OS in clixon-system container to Alpine
* Moved datastore/text/ code to datastore/ since there is only one type of datastore.
* Added "magic script line" to test script for sourced and scriped exits
2019-02-16 17:45:39 +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
973e5d7507 Example makfile honors --without-restconf 2019-02-11 21:13:12 +01:00
Olof Hagsand
663088e393 makefile cleanup for docker and example 2019-02-11 21:05:24 +01:00
Olof Hagsand
9cf4b0139a compile on alpine 2019-02-11 17:44:29 +01:00
Olof hagsand
5b1c3d9a86 * clixon-config YAML file has new revision: 2019-02-06.
* Replaced all calls to (obsolete) `cli_output` with `fprintf`
* Added _experimental_ config option `CLICON_CLI_UTF8` default set to 0.
  * CLIgen UTF8 does not work with scrolling and control editing
2019-02-06 14:33:04 +01:00
Olof hagsand
19343c2b21 * Partially corrected: [yang type range statement does not support multiple values](https://github.com/clicon/clixon/issues/59).
* Should work for netconf and restconf, but not for CLI.
* Fixed again: [Range parsing is not RFC 7950 compliant](https://github.com/clicon/clixon/issues/71)
2019-02-05 14:03:58 +01:00
Olof hagsand
1e4022e73c NACM cleanup, uniform rule function, change of function names, etc. 2019-02-02 11:35:50 +01:00
Olof hagsand
ef86cda2fe NACM Data node WRITE access module support (RFC8341 3.4.5) 2019-01-30 10:02:17 +01:00
Olof hagsand
ffecebf32a * NACM Data node READ access module support (RFC8341 3.4.5)
* Access control points added for `get` and `get-config` in addition to incoming rpc.
   * RFC 8341 Example A.2 implemented, see: [test/test_nacm_module.sh]
* Added `username` argument on `xmldb_put()` datastore function for NACM data-node write checks
* Added `xml_rootchild_node()` lib function as variant of `xml_rootchild()`
2019-01-27 13:26:15 +01:00
Olof hagsand
04bb05c83f Upgrade testcases for nacm 2019-01-22 13:41:03 +01:00
Olof hagsand
0e09996073 verify empty body and/or empty yang input/output 2019-01-21 14:28:44 +01:00
Olof hagsand
34d7f60ca4 JSON updates 2019-01-20 19:13:40 +01:00
Olof hagsand
906b93cae0 Restconf returns error when RPC generates "ok" reply [https://github.com/clicon/clixon/issues/69] 2019-01-18 20:55:30 +01:00
Olof hagsand
0267afcb21 * Added -o "<option>=<value>" command-line option to all programs: backend, cli, netconf, restconf.
* Added -p <dir> command-line option to all programs: backend, cli, netconf, restconf.
* Moved and updated all standard ietf and iana yang files from example and yang/ to `yang/standard`.
* Renamed example yang from example.yang -> clixon-example.yang
2019-01-13 17:34:15 +01:00
Olof hagsand
f48c8f45c6 * Date-and-time type now properly uses ISO 8601 UTC timezone designators.
* Renamed yang file `ietf-netconf-notification@2008-07-01.yang` to `clixon-rfc5277`.
* Cligen uses posix regex while yang uses XSD. It differs in some aspects. A translator function has been added for `\d` -> `[0-9]` translation, there may be more.
* [ietf-netconf-notification@2008-07-01.yang validation problem #62](https://github.com/clicon/clixon/issues/62)
2019-01-11 17:30:08 +01:00
Olof hagsand
207858e20d * Support of yangmodels supported, see test_yangmodels.sh
* Added -o "<option>=<value>" command-line option to all programs: backend, cli, netconf, restconf.
* Ignore CR(\r) in yang files for DOS files
2019-01-10 20:52:19 +01:00
Olof hagsand
c7e847cd24 Keyword "min" (not only "max") can be used in built-in types "range" and "length" statements. 2019-01-06 22:11:59 +01:00
Olof hagsand
0502ca4218 Hand-crafted validation messages removed and replaced with generic validations. 2019-01-05 14:16:56 +01:00
Olof hagsand
5b6af82e29 Validation of mandatory choice and recursive mandatory containers. 2019-01-05 11:08:16 +01:00
Olof hagsand
058a14579f Yang choice functionality improved and stricter validation for CLI generation, mandatory flags, etc. 2019-01-04 11:37:26 +01:00
Olof hagsand
7a8f242a09 Added new clixon-lib yang module for internal netconf protocol. Currently only extends the standard with a debug RPC. 2019-01-02 22:50:03 +01:00
Olof hagsand
11479f7ec3 add yang-spec as arg to decode clicon msg 2019-01-02 20:59:57 +01:00