* For backward compatibility, load of startup and running set CLICON_XML_NS_STRICT to false temporarily. * Added three-valued return values for several validate functions where -1 is fatal error, 0 is validation failed and 1 is validation OK. * This includes: `xmldb_put`, `xml_yang_validate_all`, `xml_yang_validate_add`, `xml_yang_validate_rpc`, `api_path2xml`, `api_path2xpath` * Added new xml functions for specific types: `xml_child_nr_notype`, `xml_child_nr_notype`, `xml_child_i_type`, `xml_find_type`.
70 lines
No EOL
3.7 KiB
Text
70 lines
No EOL
3.7 KiB
Text
# Common CLI syntax for both server and PMNode operatio mode
|
|
CLICON_MODE="example";
|
|
CLICON_PROMPT="%U@%H> ";
|
|
CLICON_PLUGIN="example_cli";
|
|
|
|
# Translate variable "value" by incrementing its characters
|
|
translate value (<value:string translate:incstr()>),cli_set("/translate/value");
|
|
|
|
# Note, when switching to PT, change datamodel to only @datamodel
|
|
set @datamodel, cli_set();
|
|
merge @datamodel, cli_merge();
|
|
create @datamodel, cli_create();
|
|
delete("Delete a configuration item") @datamodel, cli_del();
|
|
|
|
validate("Validate changes"), cli_validate();
|
|
commit("Commit the changes"), cli_commit();
|
|
quit("Quit"), cli_quit();
|
|
delete("Delete a configuration item") all("Delete whole candidate configuration"), delete_all("candidate");
|
|
|
|
startup("Store running as startup config"), db_copy("running", "startup");
|
|
no("Negate or remove") debug("Debugging parts of the system"), cli_debug_cli((int32)0);
|
|
debug("Debugging parts of the system"), cli_debug_cli((int32)1);{
|
|
level("Set debug level: 1..n") <level:int32>("Set debug level (0..n)"), cli_debug_backend();
|
|
}
|
|
copy("Copy and create a new object") {
|
|
interface("Copy interface"){
|
|
<name:string expand_dbvar("candidate","/ietf-interfaces:interfaces/interface=%s/name")>("name of interface to copy from") to("Copy to interface") <toname:string>("Name of interface to copy to"), cli_copy_config("candidate","//interface[%s='%s']","name","name","toname");
|
|
}
|
|
}
|
|
discard("Discard edits (rollback 0)"), discard_changes();
|
|
compare("Compare running and candidate"), compare_dbs((int32)1);
|
|
compare("Compare running and candidate"), compare_dbs((int32)1);
|
|
|
|
show("Show a particular state of the system"){
|
|
xpath("Show configuration") <xpath:string>("XPATH expression"), show_conf_xpath("candidate");
|
|
version("Show version"), cli_show_version("candidate", "text", "/");
|
|
compare("Compare candidate and running databases"), compare_dbs((int32)0);{
|
|
xml("Show comparison in xml"), compare_dbs((int32)0);
|
|
text("Show comparison in text"), compare_dbs((int32)1);
|
|
}
|
|
configuration("Show configuration"), cli_show_config("candidate", "text", "/");{
|
|
xml("Show configuration as XML"), cli_show_config("candidate", "xml", "/");{
|
|
@datamodel, cli_show_auto("candidate", "text");
|
|
}
|
|
cli("Show configuration as CLI commands"), cli_show_config("candidate", "cli", "/");{
|
|
@datamodel, cli_show_auto("candidate", "cli");
|
|
}
|
|
netconf("Show configuration as netconf edit-config operation"), cli_show_config("candidate", "netconf", "/");{
|
|
@datamodel, cli_show_auto("candidate", "netconf");
|
|
}
|
|
text("Show configuration as text"), cli_show_config("candidate","text","/");{
|
|
@datamodel, cli_show_auto("candidate", "text");
|
|
}
|
|
json("Show configuration as JSON"), cli_show_config("candidate", "json", "/");{
|
|
@datamodel, cli_show_auto("candidate", "json");
|
|
}
|
|
}
|
|
}
|
|
|
|
save("Save candidate configuration to XML file") <filename:string>("Filename (local filename)"), save_config_file("candidate","filename");
|
|
load("Load configuration from XML file") <filename:string>("Filename (local filename)"),load_config_file("filename", "replace");{
|
|
replace("Replace candidate with file contents"), load_config_file("filename", "replace");
|
|
merge("Merge file with existent candidate"), load_config_file("filename", "merge");
|
|
}
|
|
example("This is a comment") <var:int32>("Just a random number"), mycallback("myarg");
|
|
rpc("ex:fib-route rpc") <instance:string>("routing instance"), fib_route_rpc("myarg");
|
|
notify("Get notifications from backend"), cli_notify("EXAMPLE", "1", "text");
|
|
no("Negate") notify("Get notifications from backend"), cli_notify("EXAMPLE", "0", "xml");
|
|
lock,cli_lock("candidate");
|
|
unlock,cli_unlock("candidate"); |