preparations for 3.5.0

This commit is contained in:
Olof hagsand 2018-02-11 16:46:10 +07:00
parent 55010e7541
commit 6b0e0a9d18
10 changed files with 32 additions and 54 deletions

View file

@ -3,32 +3,35 @@
## 3.5.0 (Upcoming) ## 3.5.0 (Upcoming)
### Major changes: ### Major changes:
* Added a "user" parameter to plugin_credentials() restconf callback. To enable authentication and in preparation for access control a la RFC 6536.
* Major Restconf feature update to compy to RFC 8040. Thanks Stephen Jones for getting right. * Major Restconf feature update to compy to RFC 8040. Thanks Stephen Jones for getting right.
* GET well-known, top-level resource, yang library version, * GET: Always return object referenced (and nothing else). ie, GET /restconf/data/X returns X.
* PUT whole datastore, check for different keys in put lists. * GET Added support for the following resources: Well-known, top-level resource, and yang library version,
* GET Single element JSON lists use {list:[element]}, not {list:element}. * GET Single element JSON lists use {list:[element]}, not {list:element}.
* PUT Whole datastore
### Minor changes: ### Minor changes:
* Changed signature of plugin_credentials() restconf callback. Added a "user" parameter. To enable authentication and in preparation for access control a la RFC 6536.
* Added RFC 6536 ietf-netconf-acm@2012-02-22.yang access control (but not implemented). * Added RFC 6536 ietf-netconf-acm@2012-02-22.yang access control (but not implemented).
* The following backward compatible options to configure have been obsoleted. If you havent already migrated this code you must do this now. * The following backward compatible options to configure have been _obsoleted_. If you havent already migrated this code you must do this now.
* Backend startup modes prior to 3.3.3. As enabled with `configure --with-startup-compat`. Configure option CLICON_USE_STARTUP_CONFIG is also obsoleted. * `configure --with-startup-compat`. Configure option CLICON_USE_STARTUP_CONFIG is also obsoleted.
* Configuration files (non-XML) prior to 3.3.3. As enabled with `configure --with-config-compat`. The template clicon.conf.cpp files are also removed. * `configure --with-config-compat`. The template clicon.conf.cpp files are also removed.
* Clixon XML C-lib prior to 3.4.0. As enabled with `configure --with-xml-compat` * `configure --with-xml-compat`
* New configuration option: CLICON_RESTCONF_PRETTY * New configuration option: CLICON_RESTCONF_PRETTY. Default true. Set to false to get more compact Restconf output.
* Changed restconf GET to return object referenced. ie, GET /restconf/data/X returns X. Thanks Stephen Jones for getting this right.
* Default configure file added by Matt Smith. Config file is selected in the following priority order:
* Provide -f option when starting a program. * Default configure file handling generalized by Renato Botelho/Matt Smith. Config file FILE is selected in the following priority order:
* Provide -f FILE option when starting a program (eg clixon_backend -F FILE)
* Provide --with-configfile=FILE when configuring * Provide --with-configfile=FILE when configuring
* /etc/clixon.xml * Provide --with-sysconfig=<dir> when configuring, then FILE is <dir>/clixon.xml
* Provide --sysconfig=<dir> when configuring then FILE is <dir>/etc/clixon.xml
* FILE is /usr/local/etc/clixon.xml
### Corrected Bugs ### Corrected Bugs
* yang string length "max" keyword set to MAXPATHLEN * yang max keyword was not supported for string type. Corrected by setting "max" to MAXPATHLEN
* Corrected "No yang spec" printed on tty on leafref CLI usage * Corrected "No yang spec" printed on tty when using leafref in CLI.
* xml2cvec: range error (eg 1000 for int8) is not treated as error, just log and skip. * Fixed error in xml2cvec. If a (for example) int8 value has range error (eg 1000), it was treated as an error and the program terminated. Now this is just logged and skipped. Reported by Fredrik Pettai.
### Known issues ### Known issues

View file

@ -5,6 +5,18 @@
testnr=0 testnr=0
testname= testname=
# For memcheck
#clixon_cli="valgrind --leak-check=full --show-leak-kinds=all clixon_cli"
clixon_cli=clixon_cli
# For memcheck / performance
#clixon_netconf="valgrind --leak-check=full --show-leak-kinds=all clixon_netconf"
# clixon_netconf="valgrind --tool=callgrind clixon_netconf
clixon_netconf=clixon_netconf
#clixon_backend="valgrind --leak-check=full --show-leak-kinds=all clixon_backend"
clixon_backend=clixon_backend
dir=/var/tmp/$0 dir=/var/tmp/$0
if [ ! -d $dir ]; then if [ ! -d $dir ]; then
mkdir $dir mkdir $dir

View file

@ -28,10 +28,6 @@ cat <<EOF > $cfg
</config> </config>
EOF EOF
# For memcheck
#clixon_cli="valgrind --leak-check=full --show-leak-kinds=all clixon_cli"
clixon_cli=clixon_cli
# kill old backend (if any) # kill old backend (if any)
new "kill old backend" new "kill old backend"
sudo clixon_backend -z -f $cfg sudo clixon_backend -z -f $cfg
@ -39,7 +35,7 @@ if [ $? -ne 0 ]; then
err err
fi fi
new "start backend -s init -f $cfg" new "start backend -s init -f $cfg"
sudo clixon_backend -s init -f $cfg sudo $clixon_backend -s init -f $cfg
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
err err
fi fi

View file

@ -22,11 +22,6 @@ cat <<EOF > $cfg
</config> </config>
EOF EOF
# For memcheck
# clixon_netconf="valgrind --leak-check=full --show-leak-kinds=all clixon_netconf"
clixon_netconf=clixon_netconf
clixon_cli=clixon_cli
cat <<EOF > $fyang cat <<EOF > $fyang
module example{ module example{
import ietf-ip { import ietf-ip {

View file

@ -25,11 +25,6 @@ cat <<EOF > $cfg
</config> </config>
EOF EOF
# For memcheck
#clixon_netconf="valgrind --leak-check=full --show-leak-kinds=all clixon_netconf"
clixon_netconf=clixon_netconf
echo "clixon_backend -zf $cfg" echo "clixon_backend -zf $cfg"
# kill old backend (if any) # kill old backend (if any)
new "kill old backend" new "kill old backend"

View file

@ -13,8 +13,7 @@ fyang=$dir/order.yang
# For memcheck # For memcheck
# clixon_netconf="valgrind --leak-check=full --show-leak-kinds=all clixon_netconf" # clixon_netconf="valgrind --leak-check=full --show-leak-kinds=all clixon_netconf"
clixon_netconf=clixon_netconf
clixon_cli=clixon_cli
dbdir=$dir/order dbdir=$dir/order
new "Set up $dbdir" new "Set up $dbdir"

View file

@ -22,12 +22,6 @@ cfg=$dir/scaling-conf.xml
fyang=$dir/scaling.yang fyang=$dir/scaling.yang
fconfig=$dir/config fconfig=$dir/config
# For memcheck
# clixon_netconf="valgrind --leak-check=full --show-leak-kinds=all clixon_netconf"
# clixon_netconf="valgrind --tool=callgrind clixon_netconf
clixon_netconf=clixon_netconf
cat <<EOF > $fyang cat <<EOF > $fyang
module ietf-ip{ module ietf-ip{
container x { container x {

View file

@ -10,11 +10,6 @@
. ./lib.sh . ./lib.sh
cfg=$dir/conf_startup.xml cfg=$dir/conf_startup.xml
# For memcheck
# clixon_netconf="valgrind --leak-check=full --show-leak-kinds=all clixon_netconf"
clixon_netconf=clixon_netconf
clixon_cli=clixon_cli
cat <<EOF > $cfg cat <<EOF > $cfg
<config> <config>
<CLICON_CONFIGFILE>$cfg</CLICON_CONFIGFILE> <CLICON_CONFIGFILE>$cfg</CLICON_CONFIGFILE>

View file

@ -23,12 +23,6 @@ cat <<EOF > $cfg
</config> </config>
EOF EOF
# For memcheck
#clixon_cli="valgrind --leak-check=full --show-leak-kinds=all clixon_cli"
clixon_cli=clixon_cli
clixon_netconf=clixon_netconf
cat <<EOF > $fyang cat <<EOF > $fyang
module example{ module example{
typedef ab { typedef ab {

View file

@ -7,11 +7,6 @@
cfg=$dir/conf_yang.xml cfg=$dir/conf_yang.xml
fyang=$dir/test.yang fyang=$dir/test.yang
# For memcheck
# clixon_netconf="valgrind --leak-check=full --show-leak-kinds=all clixon_netconf"
clixon_netconf=clixon_netconf
clixon_cli=clixon_cli
cat <<EOF > $cfg cat <<EOF > $cfg
<config> <config>
<CLICON_CONFIGFILE>$cfg</CLICON_CONFIGFILE> <CLICON_CONFIGFILE>$cfg</CLICON_CONFIGFILE>