Fixed errors in previous restconf commit
This commit is contained in:
parent
a7cc1c6362
commit
9086264b89
5 changed files with 80 additions and 40 deletions
|
|
@ -681,15 +681,12 @@ restconf_clixon_backend(clixon_handle h,
|
||||||
* But not if one does uses clixon-restdonf in which case the namespace is
|
* But not if one does uses clixon-restdonf in which case the namespace is
|
||||||
* the local (top-level).
|
* the local (top-level).
|
||||||
*/
|
*/
|
||||||
if ((nsc = xml_nsctx_init(NULL,
|
if ((nsc = xml_nsctx_init(NULL, CLIXON_RESTCONF_NS)) == NULL)
|
||||||
CLIXON_RESTCONF_NS
|
|
||||||
)) == NULL)
|
|
||||||
goto done;
|
goto done;
|
||||||
if ((pw = getpwuid(getuid())) == NULL){
|
if ((pw = getpwuid(getuid())) == NULL){
|
||||||
clixon_err(OE_UNIX, errno, "getpwuid");
|
clixon_err(OE_UNIX, errno, "getpwuid");
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
/* XXX xconfig leaked */
|
|
||||||
if (clicon_rpc_get_config(h, pw->pw_name, "running", "/restconf", nsc, NULL, &xconfig) < 0)
|
if (clicon_rpc_get_config(h, pw->pw_name, "running", "/restconf", nsc, NULL, &xconfig) < 0)
|
||||||
goto done;
|
goto done;
|
||||||
if ((xerr = xpath_first(xconfig, NULL, "/rpc-error")) != NULL){
|
if ((xerr = xpath_first(xconfig, NULL, "/rpc-error")) != NULL){
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,7 @@ DATASTORE_TOP="config"
|
||||||
CLIXON_AUTOCLI_REV="2024-08-01"
|
CLIXON_AUTOCLI_REV="2024-08-01"
|
||||||
CLIXON_LIB_REV="2024-11-01"
|
CLIXON_LIB_REV="2024-11-01"
|
||||||
CLIXON_CONFIG_REV="2024-11-01"
|
CLIXON_CONFIG_REV="2024-11-01"
|
||||||
CLIXON_RESTCONF_REV="2022-08-01"
|
CLIXON_RESTCONF_REV="2025-02-01"
|
||||||
CLIXON_EXAMPLE_REV="2022-11-01"
|
CLIXON_EXAMPLE_REV="2022-11-01"
|
||||||
|
|
||||||
CLIXON_VERSION="@CLIXON_VERSION@"
|
CLIXON_VERSION="@CLIXON_VERSION@"
|
||||||
|
|
|
||||||
|
|
@ -367,7 +367,7 @@ if [ $pid1 -eq 0 ]; then err "Pid" 0; fi
|
||||||
sleep $DEMSLEEP
|
sleep $DEMSLEEP
|
||||||
|
|
||||||
new "Get restconf config 1"
|
new "Get restconf config 1"
|
||||||
expectpart "$(curl $CURLOPTS -X GET -H 'Accept: application/yang-data+xml' $RCPROTO://localhost/restconf/data/clixon-restconf:restconf?with-defaults=report-all)" 0 "HTTP/$HVER 200" "<restconf xmlns=\"http://clicon.org/restconf\"><enable>true</enable><auth-type>none</auth-type><debug>$RESTCONFDBG</debug><log-destination>$LOGDST</log-destination><enable-core-dump>false</enable-core-dump><pretty>false</pretty><socket><namespace>default</namespace><address>0.0.0.0</address><port>80</port><ssl>false</ssl></socket></restconf>"
|
expectpart "$(curl $CURLOPTS -X GET -H 'Accept: application/yang-data+xml' $RCPROTO://localhost/restconf/data/clixon-restconf:restconf?with-defaults=report-all)" 0 "HTTP/$HVER 200" "<restconf xmlns=\"http://clicon.org/restconf\"><enable>true</enable><auth-type>none</auth-type><debug>$RESTCONFDBG</debug><log-destination>$LOGDST</log-destination><enable-core-dump>false</enable-core-dump><pretty>false</pretty><timeout>0</timeout><socket><namespace>default</namespace><address>0.0.0.0</address><port>80</port><ssl>false</ssl></socket></restconf>"
|
||||||
|
|
||||||
# remove it
|
# remove it
|
||||||
new "Delete server"
|
new "Delete server"
|
||||||
|
|
@ -464,7 +464,7 @@ if [ $pid1 -eq 0 ]; then err "Pid" 0; fi
|
||||||
sleep $DEMSLEEP
|
sleep $DEMSLEEP
|
||||||
|
|
||||||
new "Get restconf config"
|
new "Get restconf config"
|
||||||
expectpart "$(curl $CURLOPTS -X GET -H 'Accept: application/yang-data+xml' $RCPROTO://localhost/restconf/data/clixon-restconf:restconf?with-defaults=report-all)" 0 "HTTP/$HVER 200" "<restconf xmlns=\"http://clicon.org/restconf\"><enable>true</enable><auth-type>none</auth-type><debug>$RESTCONFDBG</debug><log-destination>$LOGDST</log-destination><enable-core-dump>false</enable-core-dump><pretty>false</pretty><socket><namespace>default</namespace><address>0.0.0.0</address><port>80</port><ssl>false</ssl></socket><socket><namespace>default</namespace><address>$INVALIDADDR</address><port>8080</port><ssl>false</ssl></socket></restconf>"
|
expectpart "$(curl $CURLOPTS -X GET -H 'Accept: application/yang-data+xml' $RCPROTO://localhost/restconf/data/clixon-restconf:restconf?with-defaults=report-all)" 0 "HTTP/$HVER 200" "<restconf xmlns=\"http://clicon.org/restconf\"><enable>true</enable><auth-type>none</auth-type><debug>$RESTCONFDBG</debug><log-destination>$LOGDST</log-destination><enable-core-dump>false</enable-core-dump><pretty>false</pretty><timeout>0</timeout><socket><namespace>default</namespace><address>0.0.0.0</address><port>80</port><ssl>false</ssl></socket><socket><namespace>default</namespace><address>$INVALIDADDR</address><port>8080</port><ssl>false</ssl></socket></restconf>"
|
||||||
|
|
||||||
if [ $BE -ne 0 ]; then
|
if [ $BE -ne 0 ]; then
|
||||||
new "Kill backend"
|
new "Kill backend"
|
||||||
|
|
|
||||||
|
|
@ -232,9 +232,6 @@ module clixon-restconf {
|
||||||
On platforms where namespaces are not suppported, 'default'
|
On platforms where namespaces are not suppported, 'default'
|
||||||
Default value can be changed by RESTCONF_NETNS_DEFAULT";
|
Default value can be changed by RESTCONF_NETNS_DEFAULT";
|
||||||
}
|
}
|
||||||
leaf description{
|
|
||||||
type string;
|
|
||||||
}
|
|
||||||
leaf address {
|
leaf address {
|
||||||
type inet:ip-address;
|
type inet:ip-address;
|
||||||
description "IP address to bind to";
|
description "IP address to bind to";
|
||||||
|
|
@ -243,6 +240,9 @@ module clixon-restconf {
|
||||||
type inet:port-number;
|
type inet:port-number;
|
||||||
description "TCP port to bind to";
|
description "TCP port to bind to";
|
||||||
}
|
}
|
||||||
|
leaf description{
|
||||||
|
type string;
|
||||||
|
}
|
||||||
leaf ssl {
|
leaf ssl {
|
||||||
type boolean;
|
type boolean;
|
||||||
default true;
|
default true;
|
||||||
|
|
|
||||||
|
|
@ -25,39 +25,18 @@ module clixon-restconf {
|
||||||
3. Related to (2), options that should not be settable in a datastore should be
|
3. Related to (2), options that should not be settable in a datastore should be
|
||||||
in clixon-config
|
in clixon-config
|
||||||
|
|
||||||
***** BEGIN LICENSE BLOCK *****
|
Some of this spec if in-lined from ietf-restconf-server@2022-05-24.yang
|
||||||
Copyright (C) 2020-2022 Olof Hagsand and Rubicon Communications, LLC(Netgate)
|
";
|
||||||
|
|
||||||
This file is part of CLIXON
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the \"License\");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an \"AS IS\" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
Alternatively, the contents of this file may be used under the terms of
|
|
||||||
the GNU General Public License Version 3 or later (the \"GPL\"),
|
|
||||||
in which case the provisions of the GPL are applicable instead
|
|
||||||
of those above. If you wish to allow use of your version of this file only
|
|
||||||
under the terms of the GPL, and not to allow others to
|
|
||||||
use your version of this file under the terms of Apache License version 2,
|
|
||||||
indicate your decision by deleting the provisions above and replace them with
|
|
||||||
the notice and other provisions required by the GPL. If you do not delete
|
|
||||||
the provisions above, a recipient may use your version of this file under
|
|
||||||
the terms of any one of the Apache License version 2 or the GPL.
|
|
||||||
|
|
||||||
***** END LICENSE BLOCK *****";
|
|
||||||
|
|
||||||
revision 2025-02-01 {
|
revision 2025-02-01 {
|
||||||
description
|
description
|
||||||
"Added timeout parameter
|
"Added timeout parameter
|
||||||
Released in Clixon 7.4";
|
Released in Clixon 7.4";
|
||||||
}
|
}
|
||||||
|
revision 2022-08-01 {
|
||||||
|
description
|
||||||
|
"Added socket/call-home container
|
||||||
|
Released in Clixon 5.9";
|
||||||
|
}
|
||||||
revision 2022-03-21 {
|
revision 2022-03-21 {
|
||||||
description
|
description
|
||||||
"Added feature:
|
"Added feature:
|
||||||
|
|
@ -85,7 +64,6 @@ module clixon-restconf {
|
||||||
description
|
description
|
||||||
"Initial release";
|
"Initial release";
|
||||||
}
|
}
|
||||||
|
|
||||||
feature fcgi {
|
feature fcgi {
|
||||||
description
|
description
|
||||||
"This feature indicates that the restconf server supports the fast-cgi reverse
|
"This feature indicates that the restconf server supports the fast-cgi reverse
|
||||||
|
|
@ -113,7 +91,6 @@ module clixon-restconf {
|
||||||
6. Authentication as restconf
|
6. Authentication as restconf
|
||||||
7. HTTP/1+2, TLS as restconf";
|
7. HTTP/1+2, TLS as restconf";
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef http-auth-type {
|
typedef http-auth-type {
|
||||||
type enumeration {
|
type enumeration {
|
||||||
enum none {
|
enum none {
|
||||||
|
|
@ -277,11 +254,77 @@ module clixon-restconf {
|
||||||
type inet:port-number;
|
type inet:port-number;
|
||||||
description "TCP port to bind to";
|
description "TCP port to bind to";
|
||||||
}
|
}
|
||||||
|
leaf description{
|
||||||
|
type string;
|
||||||
|
}
|
||||||
leaf ssl {
|
leaf ssl {
|
||||||
type boolean;
|
type boolean;
|
||||||
default true;
|
default true;
|
||||||
description "Enable for HTTPS otherwise HTTP protocol";
|
description "Enable for HTTPS otherwise HTTP protocol";
|
||||||
}
|
}
|
||||||
|
/* Some of this in-lined from ietf-restconf-server@2022-05-24.yang */
|
||||||
|
container call-home {
|
||||||
|
presence
|
||||||
|
"Identifies that the server has been configured to initiate
|
||||||
|
call home connections.
|
||||||
|
If set, address/port refers to destination.";
|
||||||
|
description
|
||||||
|
"See RFC 8071 NETCONF Call Home and RESTCONF Call Home";
|
||||||
|
container connection-type {
|
||||||
|
description
|
||||||
|
"Indicates the RESTCONF server's preference for how the
|
||||||
|
RESTCONF connection is maintained.";
|
||||||
|
choice connection-type {
|
||||||
|
mandatory true;
|
||||||
|
description
|
||||||
|
"Selects between available connection types.";
|
||||||
|
case persistent-connection {
|
||||||
|
container persistent {
|
||||||
|
presence
|
||||||
|
"Indicates that a persistent connection is to be
|
||||||
|
maintained.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case periodic-connection {
|
||||||
|
container periodic {
|
||||||
|
presence
|
||||||
|
"Indicates periodic connects";
|
||||||
|
leaf period {
|
||||||
|
type uint32; /* XXX: note uit16 in std */
|
||||||
|
units "seconds"; /* XXX: note minutes in draft */
|
||||||
|
default "3600"; /* XXX: same: 60min in draft */
|
||||||
|
description
|
||||||
|
"Duration of time between periodic connections.";
|
||||||
|
}
|
||||||
|
leaf idle-timeout {
|
||||||
|
type uint16;
|
||||||
|
units "seconds";
|
||||||
|
default "120"; // two minutes
|
||||||
|
description
|
||||||
|
"Specifies the maximum number of seconds that
|
||||||
|
the underlying TCP session may remain idle.
|
||||||
|
A TCP session will be dropped if it is idle
|
||||||
|
for an interval longer than this number of
|
||||||
|
seconds. If set to zero, then the server
|
||||||
|
will never drop a session because it is idle.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
container reconnect-strategy {
|
||||||
|
leaf max-attempts {
|
||||||
|
type uint8 {
|
||||||
|
range "1..max";
|
||||||
|
}
|
||||||
|
default "3";
|
||||||
|
description
|
||||||
|
"Specifies the number times the RESTCONF server tries
|
||||||
|
to connect to a specific endpoint before moving on to
|
||||||
|
the next endpoint in the list (round robin).";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
container restconf {
|
container restconf {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue