-
Notifications
You must be signed in to change notification settings - Fork 73
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fixed: [Clixon handle if-feature incorrectly](#555)
- Loading branch information
1 parent
3108dfc
commit 6a634ef
Showing
3 changed files
with
106 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
#!/usr/bin/env bash | ||
# Combined augment and if-feature | ||
# See https://github.com/clicon/clixon/issues/555 | ||
# | ||
# Magic line must be first in script (see README.md) | ||
s="$_" ; . ./lib.sh || if [ "$s" = $0 ]; then exit 0; else return 0; fi | ||
|
||
APPNAME=example | ||
|
||
cfg=$dir/conf_yang.xml | ||
fyang=$dir/shelf-slot-test.yang | ||
|
||
cat <<EOF > $cfg | ||
<clixon-config xmlns="http://clicon.org/config"> | ||
<CLICON_CONFIGFILE>$cfg</CLICON_CONFIGFILE> | ||
<CLICON_YANG_DIR>$dir</CLICON_YANG_DIR> | ||
<CLICON_YANG_DIR>${YANG_INSTALLDIR}</CLICON_YANG_DIR> | ||
<CLICON_YANG_MAIN_FILE>$fyang</CLICON_YANG_MAIN_FILE> | ||
<CLICON_CLISPEC_DIR>/usr/local/lib/$APPNAME/clispec</CLICON_CLISPEC_DIR> | ||
<CLICON_CLI_DIR>/usr/local/lib/$APPNAME/cli</CLICON_CLI_DIR> | ||
<CLICON_CLI_MODE>$APPNAME</CLICON_CLI_MODE> | ||
<CLICON_SOCK>/usr/local/var/run/$APPNAME.sock</CLICON_SOCK> | ||
<CLICON_BACKEND_PIDFILE>/usr/local/var/run/$APPNAME.pidfile</CLICON_BACKEND_PIDFILE> | ||
<CLICON_XMLDB_DIR>/usr/local/var/$APPNAME</CLICON_XMLDB_DIR> | ||
<CLICON_YANG_LIBRARY>true</CLICON_YANG_LIBRARY> | ||
</clixon-config> | ||
EOF | ||
|
||
cat <<EOF > $fyang | ||
module shelf-slot-test { | ||
namespace "urn:example:shelf-slot-test"; | ||
prefix shelf-slot-test; | ||
revision 2024-09-17 { | ||
description "test"; | ||
} | ||
container config { | ||
} | ||
augment /config { | ||
container system { | ||
} | ||
} | ||
feature enable-shelf { | ||
description "enable shelf"; | ||
} | ||
augment /config/system { | ||
list shelf { | ||
// This breaks clixon! | ||
if-feature shelf-slot-test:enable-shelf; | ||
key location; | ||
description "location of the shelf"; | ||
leaf location { | ||
type string; | ||
} | ||
} | ||
list slot { | ||
key location; | ||
description "location of the slot"; | ||
leaf location { | ||
type string; | ||
} | ||
} | ||
} | ||
augment '/config/system/slot' { | ||
leaf v1 { | ||
type int32; | ||
} | ||
} | ||
} | ||
EOF | ||
|
||
new "test params: -f $cfg" | ||
|
||
if [ $BE -ne 0 ]; then | ||
new "kill old backend" | ||
sudo clixon_backend -zf $cfg | ||
if [ $? -ne 0 ]; then | ||
err | ||
fi | ||
new "start backend -s init -f $cfg" | ||
start_backend -s init -f $cfg | ||
fi | ||
|
||
new "wait backend" | ||
wait_backend | ||
|
||
|
||
if [ $BE -ne 0 ]; then | ||
new "Kill backend" | ||
# Check if premature kill | ||
pid=$(pgrep -u root -f clixon_backend) | ||
if [ -z "$pid" ]; then | ||
err "backend already dead" | ||
fi | ||
# kill backend | ||
stop_backend -f $cfg | ||
fi | ||
|
||
rm -rf $dir | ||
|
||
new "endtest" | ||
endtest |