This commit is contained in:
Olof hagsand 2017-05-01 16:50:22 +02:00
parent a285b14222
commit a2c2375b38
6 changed files with 77 additions and 31 deletions

View file

@ -29,6 +29,8 @@
# #
# ***** END LICENSE BLOCK ***** # ***** END LICENSE BLOCK *****
- Datastore text module is now the default.
- Refined netconf "none" semantics in tests and text datastore - Refined netconf "none" semantics in tests and text datastore
- Moved apps/dbctrl to datastore/ - Moved apps/dbctrl to datastore/

View file

@ -1,15 +1,10 @@
# CLIXON # Clixon
CLIXON is an automatic configuration manager where you from a YANG Clixon is an automatic configuration manager where you from a YANG
specification generate interactive CLI, NETCONF, RESTCONF and embedded specification generate interactive CLI, NETCONF, RESTCONF and embedded
databases with transaction support. databases with transaction support.
CLIXON is a fork of CLICON where legacy key specification has been Presentations and tutorial is found on the [CLICON project page](http://www.clicon.org)
replaced completely by YANG. This means that legacy CLICON
applications such as CLICON/ROST does not run on CLIXON.
Presentations and tutorial is found on the [CLICON project
page](http://www.clicon.org)
## Installation ## Installation
@ -20,8 +15,13 @@ A typical installation is as follows:
> sudo make install # Install libs, binaries, and config-files > sudo make install # Install libs, binaries, and config-files
> sudo make install-include # Install include files (for compiling) > sudo make install-include # Install include files (for compiling)
One example applications is provided, the IETF IP YANG datamodel with generated CLI and configuration interface. It all origins from work at One example applications is provided, a IETF IP YANG datamodel with generated CLI and configuration interface.
[KTH](http://www.csc.kth.se/~olofh/10G_OSR)
## More info
- [Datastore](datastore).
- [Restconf](apps/restconf).
- [Netconf](apps/netconf).
## Dependencies ## Dependencies
@ -38,12 +38,13 @@ General Public License Version 2. You choose.
See LICENSE.md for license, CHANGELOG for recent changes. See LICENSE.md for license, CHANGELOG for recent changes.
## Client code ## Related
[CLI](apps/restconf). CLIXON is a fork of CLICON where legacy key specification has been
[Restconf](apps/restconf). replaced completely by YANG. This means that legacy CLICON
[Netconf](apps/netconf). applications such as CLICON/ROST does not run on CLIXON.
[Netconf](apps/netconf).
Clixon origins from work at [KTH](http://www.csc.kth.se/~olofh/10G_OSR)

17
apps/netconf/README.md Normal file
View file

@ -0,0 +1,17 @@
# Clixon Netconf
Clixon netconf implements the following standards:
- RFC 4741 (NETCONF Configuration Protocol),
- RFC 4742 (Using the NETCONF Configuration Protocol over Secure SHell (SSH)) and
- RFC 5277 (NETCONF Event Notifications).
It needs to be updated to RFC6241 and RFC 6242. It also does not implement the following features:
- :url capability
- copy-config source config
- edit-config testopts
- edit-config erropts
- edit-config config-text

View file

@ -1,13 +1,12 @@
Clixon Restconf # Clixon Restconf
===============
Contents: Contents:
1. Features 1. Features
2. Installation using NGINX 2. Installation using NGINX
3. Debugging 3. Debugging
1. FEATURES ## 1. FEATURES
+++++++++++
Clixon restconf is a daemon based on FASTCGI. Instructions are available to Clixon restconf is a daemon based on FASTCGI. Instructions are available to
run with NGINX. run with NGINX.
The implementatation supports plain OPTIONS, HEAD, GET, POST, PUT, PATCH, DELETE. The implementatation supports plain OPTIONS, HEAD, GET, POST, PUT, PATCH, DELETE.
@ -18,10 +17,10 @@ including:
- notifications (sec 6) - notifications (sec 6)
- only rudimentary error reporting exists (sec 7) - only rudimentary error reporting exists (sec 7)
2. INSTALLATION using NGINX ## 2. INSTALLATION using NGINX
+++++++++++++++++++++++++++
# Define nginx config file/etc/nginx/sites-available/default Define nginx config file/etc/nginx/sites-available/default
```
server { server {
... ...
location /restconf { location /restconf {
@ -30,13 +29,19 @@ server {
include fastcgi_params; include fastcgi_params;
} }
} }
# Start nginx daemon ```
Start nginx daemon
```
sudo /etc/init.d nginx start sudo /etc/init.d nginx start
```
# Start clixon restconf daemon Start clixon restconf daemon
```
olof@vandal> sudo su -c "/www-data/clixon_restconf -f /usr/local/etc/routing.conf " -s /bin/sh www-data olof@vandal> sudo su -c "/www-data/clixon_restconf -f /usr/local/etc/routing.conf " -s /bin/sh www-data
```
# Make restconf calls with curl Make restconf calls with curl
```
olof@vandal> curl -G http://127.0.0.1/restconf/data/interfaces olof@vandal> curl -G http://127.0.0.1/restconf/data/interfaces
[ [
{ {
@ -62,16 +67,21 @@ olof@vandal> curl -G http://127.0.0.1/restconf/data/interfaces/interface/name=et
] ]
curl -sX POST -d '{"clicon":{"interfaces":{"interface":{"name":"eth1","type":"eth","enabled":"true"}}}}' http://localhost/restconf/data curl -sX POST -d '{"clicon":{"interfaces":{"interface":{"name":"eth1","type":"eth","enabled":"true"}}}}' http://localhost/restconf/data
```
## DEBUGGING
3. DEBUGGING
++++++++++++
Start the restconf fastcgi program with debug flag: Start the restconf fastcgi program with debug flag:
sudo su -c "/www-data/clixon_restconf -Df /usr/local/etc/routing.conf" -s /bin/sh www-data ```
sudo su -c "/www-data/clixon_restconf -Df /usr/local/etc/routing.conf" -s /bin/sh www-
data
```
Look at syslog: Look at syslog:
```
tail -f /var/log/syslog | grep clixon_restconf tail -f /var/log/syslog | grep clixon_restconf
```
Send command: Send command:
```
curl -G http://127.0.0.1/restconf/data/* curl -G http://127.0.0.1/restconf/data/*
```

View file

@ -118,7 +118,7 @@ CLICON_BACKEND_PIDFILE localstatedir/APPNAME/APPNAME.pidfile
CLICON_XMLDB_DIR localstatedir/APPNAME CLICON_XMLDB_DIR localstatedir/APPNAME
# XMLDB datastore plugin filename (see datastore/ and clixon_xml_db.[ch]) # XMLDB datastore plugin filename (see datastore/ and clixon_xml_db.[ch])
CLICON_XMLDB_PLUGIN libdir/xmldb/keyvalue.so CLICON_XMLDB_PLUGIN libdir/xmldb/text.so
# Dont include keys in cvec in cli vars callbacks, ie a & k in 'a <b> k <c>' ignored # Dont include keys in cvec in cli vars callbacks, ie a & k in 'a <b> k <c>' ignored
# CLICON_CLI_VARONLY 1 # CLICON_CLI_VARONLY 1

16
datastore/README.md Normal file
View file

@ -0,0 +1,16 @@
# Clixon datastore
The Clixon datastore is a stand-alone XML based datastore used by
Clixon. The idea is to be able to use different datastores. There is
currently a Key-value plugin based on qdbm and a plain text-file
datastore.
The datastore is primarily designed to be used by Clixon but can be used
separately. See datastore_client.c for an example of how to use a
datastore plugin for other applications
Can we equate a file that does not exist with an empty file?
Or is empty file same as <config/>?
Three states:
NULL <---> "" <---> "<config/>"
which are valid?