2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-08-31 05:55:28 +00:00

[#71,!314] Partially documented cb_cmds API.

This commit is contained in:
Marcin Siodelski
2019-05-09 12:02:16 +02:00
parent 817b11351c
commit 5540eb90a1
50 changed files with 3039 additions and 102 deletions

View File

@@ -0,0 +1,25 @@
{
"name": "remote-global-parameter4-del",
"brief": "This command is used to delete a global DHCPv4 parameter from a configuration database. The server will use the value specified in the configuration file or a default value (if the parameter is not specified in the configuration file) after deleting the parameter from the database.",
"description": "See <xref linkend=\"cmd-remote-global-parameter4-del\"/>",
"support": [ "kea-dhcp4" ],
"avail": "1.6.0",
"hook": "cb_cmds",
"cmd-syntax": "{
\"command\": \"remote-global-parameter4-del\",
\"arguments\": {
\"parameters\": [ <parameter name> ],
\"remote\": {
<specification of the database to connect to>
}
}
}",
"cmd-comment": "This command includes a list with exactly one name of the parameter to be deleted. The <command>remote</command> map contains specification of the backend from which the global parameter should be deleted. Typically it contains \"type\": \"mysql\".",
"resp-syntax": "{
\"result\": 0,
\"text\": \"DHCPv4 global parameter successfully deleted.\",
\"arguments\": {
\"count\": 1
}
}"
}

View File

@@ -0,0 +1,39 @@
{
"name": "remote-global-parameter4-get-all",
"brief": "This command is used to fetch all global parameters for the server from the specified database.",
"description": "See <xref linkend=\"cmd-remote-global-parameter4-get-all\"/>",
"support": [ "kea-dhcp4" ],
"avail": "1.6.0",
"hook": "cb_cmds",
"cmd-syntax": "{
\"command\": \"remote-global-parameter4-get-all\"
\"arguments\": {
\"remote\": {
<specification of the database to connect to>
}
}
}",
"cmd-comment": "The <command>remote</command> map contains specification of the backend from which the global parameters should be fetched. Typically it contains \"type\": \"mysql\".",
"resp-syntax": "{
\"result\": 0,
\"text\": \"DHCPv4 global parameters found.\",
\"arguments\": {
\"parameters\": [
{
<first parameter name>: <first parameter value>,
\"metadata\": {
\"server-tag\": <server tag>
}
},
{
<second parameter name>: <second parameter value>,
\"metadata\": {
\"server-tag\": <server tag>
}
}
],
\"count\": 2
}
}",
"resp-comment": "The returned response contains a list of maps. Each map contains a global parameter name/value pair. The value may be a JSON string, integer, real or boolean. The metadata is appended to each parameter and it provides database specific information associated with the returned objects."
}

View File

@@ -0,0 +1,34 @@
{
"name": "remote-global-parameter4-get",
"brief": "This command is used to fetch selected global parameter for the server from the specified database.",
"description": "See <xref linkend=\"cmd-remote-global-parameter4-get\"/>",
"support": [ "kea-dhcp4" ],
"avail": "1.6.0",
"hook": "cb_cmds",
"cmd-syntax": "{
\"command\": \"remote-global-parameter4-get\"
\"arguments\": {
\"parameters\": [ <parameter name> ],
\"remote\": {
<specification of the database to connect to>
}
}
}
",
"cmd-comment": "The <command>remote</command> map contains specification of the backend from which the global parameters should be fetched. Typically it contains \"type\": \"mysql\".",
"resp-syntax": "{
\"result\": 0,
\"text\": \"DHCPv4 global parameter found.\",
\"arguments\": {
\"parameters\": {
<parameter name>: <parameter value>,
\"metadata\": {
\"server-tag\": <server tag>
}
},
\"count\": 1
}
}",
"resp-comment": "The returned response contains a map with a global parameter name/value pair. The value may be a JSON string, integer, real or boolean. The metadata is included and it provides database specific information associated with the returned object."
}

View File

@@ -0,0 +1,25 @@
{
"name": "remote-global-parameter4-set",
"brief": "This command is used to create or update one more global parameters for a server.",
"description": "See <xref linkend=\"cmd-remote-global-parameter4-set\"/>",
"support": [ "kea-dhcp4" ],
"avail": "1.6.0",
"hook": "cb_cmds",
"cmd-syntax": "{
\"command\": \"remote-global-parameter4-set\"
\"arguments\": {
\"parameters\": {
<first parameter name>: <first parameter value>,
<second parameter name>: <second parameter value>
},
\"remote\": {
<specification of the database to connect to>
}
}
}",
"cmd-comment": "The <command>remote</command> map contains specification of the backend where global parameter should be set. Typically it contains \"type\": \"mysql\".",
"resp-syntax": "{
\"result\": 0,
\"text\": \"DHCPv4 global parameter(s) successfully set.\"
}"
}

View File

@@ -0,0 +1,12 @@
{
"name": "remote-global-parameter6-del",
"brief": "a sentence or two explaining what this command does",
"description": "See <xref linkend=\"cmd-\"/>",
"support": [ "undocumented" ],
"avail": "0.0.0",
"hook": "undocumented",
"cmd-syntax": "Syntax of the command",
"cmd-comment": "Possibly some extra comments after the syntax.",
"resp-syntax": "Syntax of the response",
"resp-comment": "Optional extra comments after the resposne syntax."
}

View File

@@ -0,0 +1,12 @@
{
"name": "remote-global-parameter6-get-all",
"brief": "a sentence or two explaining what this command does",
"description": "See <xref linkend=\"cmd-\"/>",
"support": [ "undocumented" ],
"avail": "0.0.0",
"hook": "undocumented",
"cmd-syntax": "Syntax of the command",
"cmd-comment": "Possibly some extra comments after the syntax.",
"resp-syntax": "Syntax of the response",
"resp-comment": "Optional extra comments after the resposne syntax."
}

View File

@@ -0,0 +1,12 @@
{
"name": "remote-global-parameter6-get",
"brief": "a sentence or two explaining what this command does",
"description": "See <xref linkend=\"cmd-\"/>",
"support": [ "undocumented" ],
"avail": "0.0.0",
"hook": "undocumented",
"cmd-syntax": "Syntax of the command",
"cmd-comment": "Possibly some extra comments after the syntax.",
"resp-syntax": "Syntax of the response",
"resp-comment": "Optional extra comments after the resposne syntax."
}

View File

@@ -0,0 +1,12 @@
{
"name": "remote-global-parameter6-set",
"brief": "a sentence or two explaining what this command does",
"description": "See <xref linkend=\"cmd-\"/>",
"support": [ "undocumented" ],
"avail": "0.0.0",
"hook": "undocumented",
"cmd-syntax": "Syntax of the command",
"cmd-comment": "Possibly some extra comments after the syntax.",
"resp-syntax": "Syntax of the response",
"resp-comment": "Optional extra comments after the resposne syntax."
}

View File

@@ -0,0 +1,28 @@
{
"name": "remote-network4-del",
"brief": "This command is used to delete an IPv4 shared network from the configuration database.",
"description": "See <xref linkend=\"cmd-remote-network4-del\"/>",
"support": [ "kea-dhcp4" ],
"avail": "1.6.0",
"hook": "cb_cmds",
"cmd-syntax": "{
\"command\": \"remote-network4-del\",
\"arguments\": {
\"shared-networks\": [ {
\"name\": <shared network name>
} ],
\"subnets-action\": \"keep\" | \"delete\",
\"remote\": {
<specification of the database to connect to>
}
}
}",
"cmd-comment": "This command includes a list with exactly one name of the shared network to be deleted. The <command>subnets-action</command> denotes whether the subnets in this shared network should be deleted or not. The <command>remote</command> map contains specification of the backend from which the shared network should be deleted. Typically it contains \"type\": \"mysql\".",
"resp-syntax": "{
\"result\": 0,
\"text\": \"1 IPv4 shared network(s) deleted.\",
\"arguments\": {
\"count\": 1
}
}"
}

View File

@@ -0,0 +1,36 @@
{
"name": "remote-network4-get",
"brief": "This command is used to fetch selected IPv4 shared network for the server from the specified database.",
"description": "See <xref linkend=\"cmd-remote-network4-get\"/>",
"support": [ "kea-dhcp4" ],
"avail": "1.6.0",
"hook": "cb_cmds",
"cmd-syntax": "{
\"command\": \"remote-network4-get\"
\"arguments\": {
\"shared-networks\": [ {
\"name\": <shared network name>
} ],
\"subnets-include\": \"full\" | \"no\",
\"remote\": {
<specification of the database to connect to>
}
}
}",
"cmd-comment": "This command includes a list with exactly one name of the shared network to be returned. The <command>subnets-include</command> optional parameter allows for specifying whether subnets belonging to the shared network should also be returned. The <command>remote</command> map contains specification of the backend from which the shared network should be fetched. Typically it contains \"type\": \"mysql\".",
"resp-syntax": "{
\"result\": 0,
\"text\": \"IPv4 shared network 'floor1' found.\",
\"arguments\": {
\"shared-networks\": [ {
\"name\": <shared network name>,
\"metadata\": {
\"server-tag\": <server tag>
},
<the rest of the shared network information, potentially including subnets>
} ],
\"count\": 1
}
}",
"resp-comment": "The metadata is included in the returned shared network definition and it provides database specific information associated with the returned object."
}

View File

@@ -0,0 +1,39 @@
{
"name": "remote-network4-list",
"brief": "This command is used to fetch a list of all subnets for the particular server from the specified database.",
"description": "See <xref linkend=\"cmd-remote-network4-list\"/>",
"support": [ "kea-dhcp4" ],
"avail": "1.6.0",
"hook": "cb_cmds",
"cmd-syntax": "{
\"command\": \"remote-network4-list\"
\"arguments\": {
\"remote\": {
<specification of the database to connect to>
}
}
}",
"cmd-comment": "The <command>remote</command> map contains specification of the backend from which the shared networks should be fetched. Typically it contains \"type\": \"mysql\".",
"resp-syntax": "{
\"result\": 0,
\"text\": \"2 IPv4 shared network(s) found.\",
\"arguments\": {
\"shared-networks\": [
{
\"name\": <first shared network name>,
\"metadata\": {
\"server-tag\": <server tag>
}
},
{
\"name\": <second shared network name>,
\"metadata\": {
\"server-tag\": <server tag>
}
}
],
\"count\": 2
}
}",
"resp-comment": "The returned response contains a list of maps. Each map contains a shared network name and the metadata which provides database specific information associated with the shared networks. The returned list does not contain full definitions of the shared networks. Use <command>remote-network4-get</command> to fetch the full information about the selected shared networks."
}

View File

@@ -0,0 +1,24 @@
{
"name": "remote-network4-set",
"brief": "This command is used to create or update IPv4 shared network for a server in the specified database.",
"description": "See <xref linkend=\"cmd-remote-network4-set\"/>",
"support": [ "kea-dhcp4" ],
"avail": "1.6.0",
"hook": "cb_cmds",
"cmd-syntax": "{
\"command\": \"remote-network4-set\",
\"arguments\": {
\"shared-networks\": [ {
<shared network specification excluding subnets list>
} ],
\"remote\": {
<specification of the database to connect to>
}
}
}",
"cmd-comment": "The provided list must contain exactly one shared network specification. It must not contain subnets (subnet4 parameter). The subnets are added to the shared network using <command>remote-subnet4-set</command> command. The <command>remote</command> map contains specification of the backend where shared network should be set. Typically it contains \"type\": \"mysql\".",
"resp-syntax": "{
\"result\": 0,
\"text\": \"IPv4 shared network successfully set.\"
}"
}

View File

@@ -0,0 +1,12 @@
{
"name": "remote-network6-del",
"brief": "a sentence or two explaining what this command does",
"description": "See <xref linkend=\"cmd-\"/>",
"support": [ "undocumented" ],
"avail": "0.0.0",
"hook": "undocumented",
"cmd-syntax": "Syntax of the command",
"cmd-comment": "Possibly some extra comments after the syntax.",
"resp-syntax": "Syntax of the response",
"resp-comment": "Optional extra comments after the resposne syntax."
}

View File

@@ -0,0 +1,12 @@
{
"name": "remote-network6-get",
"brief": "a sentence or two explaining what this command does",
"description": "See <xref linkend=\"cmd-\"/>",
"support": [ "undocumented" ],
"avail": "0.0.0",
"hook": "undocumented",
"cmd-syntax": "Syntax of the command",
"cmd-comment": "Possibly some extra comments after the syntax.",
"resp-syntax": "Syntax of the response",
"resp-comment": "Optional extra comments after the resposne syntax."
}

View File

@@ -0,0 +1,12 @@
{
"name": "remote-network6-list",
"brief": "a sentence or two explaining what this command does",
"description": "See <xref linkend=\"cmd-\"/>",
"support": [ "undocumented" ],
"avail": "0.0.0",
"hook": "undocumented",
"cmd-syntax": "Syntax of the command",
"cmd-comment": "Possibly some extra comments after the syntax.",
"resp-syntax": "Syntax of the response",
"resp-comment": "Optional extra comments after the resposne syntax."
}

View File

@@ -0,0 +1,12 @@
{
"name": "remote-network6-set",
"brief": "a sentence or two explaining what this command does",
"description": "See <xref linkend=\"cmd-\"/>",
"support": [ "undocumented" ],
"avail": "0.0.0",
"hook": "undocumented",
"cmd-syntax": "Syntax of the command",
"cmd-comment": "Possibly some extra comments after the syntax.",
"resp-syntax": "Syntax of the response",
"resp-comment": "Optional extra comments after the resposne syntax."
}

View File

@@ -0,0 +1,28 @@
{
"name": "remote-option-def4-del",
"brief": "This command is used to delete a DHCPv4 option definition from the configuration database.",
"description": "See <xref linkend=\"cmd-remote-option-def4-del\"/>",
"support": [ "kea-dhcp4" ],
"avail": "1.6.0",
"hook": "cb_cmds",
"cmd-syntax": "{
\"command\": \"remote-option-def4-del\",
\"arguments\": {
\"option-defs\": [ {
\"code\": <option code>,
\"space\": <option space
} ],
\"remote\": {
<specification of the database to connect to>
}
}
}",
"cmd-comment": "This command includes a list with exactly one option definition specification comprising an option name and code. The <command>remote</command> map contains specification of the backend from which the shared network should be deleted. Typically it contains \"type\": \"mysql\".",
"resp-syntax": "{
\"result\": 0,
\"text\": \"1 DHCPv4 option definition(s) deleted.\",
\"arguments\": {
\"count\": 1
}
}"
}

View File

@@ -0,0 +1,39 @@
{
"name": "remote-option-def4-get-all",
"brief": "This command is used to fetch all option definitions for the server from the specified database.",
"description": "See <xref linkend=\"cmd-remote-option-def4-get-all\"/>",
"support": [ "kea-dhcp4" ],
"avail": "1.6.0",
"hook": "cb_cmds",
"cmd-syntax": "{
\"command\": \"remote-option-def4-get-all\"
\"arguments\": {
\"remote\": {
<specification of the database to connect to>
}
}
}",
"cmd-comment": "The <command>remote</command> map contains specification of the backend from which the global parameters should be fetched. Typically it contains \"type\": \"mysql\".",
"resp-syntax": "{
\"result\": 0,
\"text\": \"2 DHCPv4 option definition(s) found.\",
\"arguments\": {
\"option-defs\": [
{
<first option definition>,
\"metadata\": {
\"server-tag\": <server tag>
}
},
{
<second option definition>,
\"metadata\": {
\"server-tag\": <server tag>
}
}
],
\"count\": <count of the objects returned>
}
}",
"resp-comment": "The returned response contains a list of maps. Each map contains an option definition specification and the metadata including database specific information associated with the returned objects."
}

View File

@@ -0,0 +1,36 @@
{
"name": "remote-option-def4-get",
"brief": "This command is used to fetch DHCPv4 option definition for the server from the specified database.",
"description": "See <xref linkend=\"cmd-remote-option-def4-get\"/>",
"support": [ "kea-dhcp4" ],
"avail": "1.6.0",
"hook": "cb_cmds",
"cmd-syntax": "{
\"command\": \"remote-option-def4-get\"
\"service\": [ \"dhcp4\" ],
\"arguments\": {
\"option-defs\": [ {
\"code\": <option code>,
\"space\": <option space>
} ],
\"remote\": {
<specification of the database to connect to>
}
}
}",
"cmd-comment": "The desired option definition is identified by the pair of option code/space values. The <command>remote</command> map contains specification of the backend from which the global parameters should be fetched. Typically it contains \"type\": \"mysql\".",
"resp-syntax": "{
\"result\": 0,
\"text\": \"DHCPv4 option definition 222 in 'dhcp4' found.\",
\"arguments\": {
\"option-defs\": [ {
<option definition>,
\"metadata\": {
\"server-tag\": <server tag>
}
} ],
\"count\": 1
}
}",
"resp-comment": "The metadata is included and it provides database specific information associated with the returned object."
}

View File

@@ -0,0 +1,25 @@
{
"name": "remote-option-def4-set",
"brief": "This command is used to create or update DHCPv4 option definition for the server in the specified database.",
"description": "See <xref linkend=\"cmd-remote-option-def4-set\"/>",
"support": [ "kea-dhcp4" ],
"avail": "1.6.0",
"hook": "cb_cmds",
"cmd-syntax": "{
\"command\": \"remote-option-def4-set\",
\"service\": [ \"dhcp4\" ],
\"arguments\": {
\"option-defs\": [ {
<option definition specification>
} ],
\"remote\": {
<specification of the database to connect to>
}
}
}",
"cmd-comment": "The provided list must contain exactly one option definition specification. The <command>remote</command> map contains specification of the backend where shared network should be set. Typically it contains \"type\": \"mysql\".",
"resp-syntax": "{
\"result\": 0,
\"text\": \"DHCPv4 option definition set.\"
}"
}

View File

@@ -0,0 +1,12 @@
{
"name": "remote-option-def6-del",
"brief": "a sentence or two explaining what this command does",
"description": "See <xref linkend=\"cmd-\"/>",
"support": [ "undocumented" ],
"avail": "0.0.0",
"hook": "undocumented",
"cmd-syntax": "Syntax of the command",
"cmd-comment": "Possibly some extra comments after the syntax.",
"resp-syntax": "Syntax of the response",
"resp-comment": "Optional extra comments after the resposne syntax."
}

View File

@@ -0,0 +1,12 @@
{
"name": "remote-option-def6-get-all",
"brief": "a sentence or two explaining what this command does",
"description": "See <xref linkend=\"cmd-\"/>",
"support": [ "undocumented" ],
"avail": "0.0.0",
"hook": "undocumented",
"cmd-syntax": "Syntax of the command",
"cmd-comment": "Possibly some extra comments after the syntax.",
"resp-syntax": "Syntax of the response",
"resp-comment": "Optional extra comments after the resposne syntax."
}

View File

@@ -0,0 +1,12 @@
{
"name": "remote-option-def6-get",
"brief": "a sentence or two explaining what this command does",
"description": "See <xref linkend=\"cmd-\"/>",
"support": [ "undocumented" ],
"avail": "0.0.0",
"hook": "undocumented",
"cmd-syntax": "Syntax of the command",
"cmd-comment": "Possibly some extra comments after the syntax.",
"resp-syntax": "Syntax of the response",
"resp-comment": "Optional extra comments after the resposne syntax."
}

View File

@@ -0,0 +1,12 @@
{
"name": "remote-option-def6-set",
"brief": "a sentence or two explaining what this command does",
"description": "See <xref linkend=\"cmd-\"/>",
"support": [ "undocumented" ],
"avail": "0.0.0",
"hook": "undocumented",
"cmd-syntax": "Syntax of the command",
"cmd-comment": "Possibly some extra comments after the syntax.",
"resp-syntax": "Syntax of the response",
"resp-comment": "Optional extra comments after the resposne syntax."
}

View File

@@ -0,0 +1,27 @@
{
"name": "remote-option4-global-del",
"brief": "This command is used to delete a DHCPv4 global option from the configuration database.",
"description": "See <xref linkend=\"cmd-remote-option4-global-del\"/>",
"support": [ "kea-dhcp4" ],
"avail": "1.6.0",
"hook": "cb_cmds",
"cmd-syntax": "{
\"command\": \"remote-option4-global-del\",
\"arguments\": {
\"options\": [ {
\"code\": <option code>
\"space\": <option space>
} ],
\"remote\": {
<specification of the database to connect to>
}
}
}",
"cmd-comment": "This command includes a list with exactly one option specification comprising an option name and code. The <command>remote</command> map contains specification of the backend from which the shared network should be deleted. Typically it contains \"type\": \"mysql\".",
"resp-syntax": "
\"result\": 0,
\"text\": \"1 DHCPv4 option(s) deleted.\",
\"arguments\": {
\"count\": 1
}"
}

View File

@@ -0,0 +1,39 @@
{
"name": "remote-option4-global-get-all",
"brief": "This command is used to fetch all DHCPv4 global options for the server from the specified database.",
"description": "See <xref linkend=\"cmd-remote-option4-global-get-all\"/>",
"support": [ "kea-dhcp4" ],
"avail": "1.6.0",
"hook": "cb_cmds",
"cmd-syntax": "{
\"command\": \"remote-option4-global-get-all\"
\"arguments\": {
\"remote\": {
<specification of the database to connect to>
}
}
}",
"cmd-comment": "The <command>remote</command> map contains specification of the backend from which the global parameters should be fetched. Typically it contains \"type\": \"mysql\".",
"resp-syntax": "{
\"result\": 0,
\"text\": \"2 DHCPv4 option(s) found.\",
\"arguments\": {
\"options\": [
{
<first option specification>,
\"metadata\": {
\"server-tag\": <server tag>
}
},
{
<second option specification>,
\"metadata\": {
\"server-tag\": <server tag>
}
}
],
\"count\": <count of the objects returned>
}
}",
"resp-comment": "The returned response contains a list of maps. Each map contains a global option specification and the metadata including database specific information associated with the returned object."
}

View File

@@ -0,0 +1,12 @@
{
"name": "remote-option4-global-get",
"brief": "a sentence or two explaining what this command does",
"description": "See <xref linkend=\"cmd-\"/>",
"support": [ "undocumented" ],
"avail": "0.0.0",
"hook": "undocumented",
"cmd-syntax": "Syntax of the command",
"cmd-comment": "Possibly some extra comments after the syntax.",
"resp-syntax": "Syntax of the response",
"resp-comment": "Optional extra comments after the resposne syntax."
}

View File

@@ -0,0 +1,25 @@
{
"name": "remote-option4-global-set",
"brief": "This command is used to create or update DHCPv4 global option for the server in the specified database.",
"description": "See <xref linkend=\"cmd-remote-option4-global-set\"/>",
"support": [ "kea-dhcp4" ],
"avail": "1.6.0",
"hook": "cb_cmds",
"cmd-syntax": "{
\"command\": \"remote-option4-global-set\",
\"service\": [ \"dhcp4\" ],
\"arguments\": {
\"options\": [ {
<global option specification>
} ],
\"remote\": {
<specification of the database to connect to>
}
}
}",
"cmd-comment": "The provided list must cotain exactly one option specification. The <command>remote</command> map contains specification of the backend where shared network should be set. Typically it contains \"type\": \"mysql\".",
"resp-syntax": "{
\"result\": 0,
\"text\": \"DHCPv4 option set.\"
}"
}

View File

@@ -0,0 +1,12 @@
{
"name": "remote-option6-global-del",
"brief": "a sentence or two explaining what this command does",
"description": "See <xref linkend=\"cmd-\"/>",
"support": [ "undocumented" ],
"avail": "0.0.0",
"hook": "undocumented",
"cmd-syntax": "Syntax of the command",
"cmd-comment": "Possibly some extra comments after the syntax.",
"resp-syntax": "Syntax of the response",
"resp-comment": "Optional extra comments after the resposne syntax."
}

View File

@@ -0,0 +1,12 @@
{
"name": "remote-option6-global-get-all",
"brief": "a sentence or two explaining what this command does",
"description": "See <xref linkend=\"cmd-\"/>",
"support": [ "undocumented" ],
"avail": "0.0.0",
"hook": "undocumented",
"cmd-syntax": "Syntax of the command",
"cmd-comment": "Possibly some extra comments after the syntax.",
"resp-syntax": "Syntax of the response",
"resp-comment": "Optional extra comments after the resposne syntax."
}

View File

@@ -0,0 +1,12 @@
{
"name": "remote-option6-global-get",
"brief": "a sentence or two explaining what this command does",
"description": "See <xref linkend=\"cmd-\"/>",
"support": [ "undocumented" ],
"avail": "0.0.0",
"hook": "undocumented",
"cmd-syntax": "Syntax of the command",
"cmd-comment": "Possibly some extra comments after the syntax.",
"resp-syntax": "Syntax of the response",
"resp-comment": "Optional extra comments after the resposne syntax."
}

View File

@@ -0,0 +1,12 @@
{
"name": "remote-option6-global-set",
"brief": "a sentence or two explaining what this command does",
"description": "See <xref linkend=\"cmd-\"/>",
"support": [ "undocumented" ],
"avail": "0.0.0",
"hook": "undocumented",
"cmd-syntax": "Syntax of the command",
"cmd-comment": "Possibly some extra comments after the syntax.",
"resp-syntax": "Syntax of the response",
"resp-comment": "Optional extra comments after the resposne syntax."
}

View File

@@ -0,0 +1,28 @@
{
"name": "remote-subnet4-del-by-id",
"brief": "This command is used to delete an IPv4 subnet by ID from the configuration database.",
"description": "See <xref linkend=\"cmd-remote-subnet4-del-by-id\"/>",
"support": [ "kea-dhcp4" ],
"avail": "1.6.0",
"hook": "cb_cmds",
"cmd-syntax": "{
\"command\": \"remote-subnet4-del-by-id\",
\"service\": [ \"dhcp4\" ],
\"arguments\": {
\"subnets\": [ {
\"id\": <subnet identifier>
} ],
\"remote\": {
<specification of the database to connect to>
}
}
}",
"cmd-comment": "This command includes a list with exactly one id of the subnet to be deleted. The <command>remote</command> map contains specification of the backend from which the subnet should be deleted. Typically it contains \"type\": \"mysql\".",
"resp-syntax": "{
\"result\": 0,
\"text\": \"1 IPv4 subnet(s) deleted.\",
\"arguments\": {
\"count\": 1
}
}"
}

View File

@@ -0,0 +1,28 @@
{
"name": "remote-subnet4-del-by-prefix",
"brief": "This command is used to delete an IPv4 subnet by prefix from the configuration database.",
"description": "See <xref linkend=\"cmd-remote-subnet4-del-by-id\"/>",
"support": [ "kea-dhcp4" ],
"avail": "1.6.0",
"hook": "cb_cmds",
"cmd-syntax": "{
\"command\": \"remote-subnet4-del-by-prefix\",
\"service\": [ \"dhcp4\" ],
\"arguments\": {
\"subnets\": [ {
\"subnet\": <subnet prefix>
} ],
\"remote\": {
<specification of the database to connect to>
}
}
}",
"cmd-comment": "This command includes a list with exactly one prefix of the subnet to be deleted. The <command>remote</command> map contains specification of the backend from which the subnet should be deleted. Typically it contains \"type\": \"mysql\".",
"resp-syntax": "{
\"result\": 0,
\"text\": \"1 IPv4 subnet(s) deleted.\",
\"arguments\": {
\"count\": 1
}
}"
}

View File

@@ -0,0 +1,37 @@
{
"name": "remote-subnet4-get-by-id",
"brief": "This command is used to fetch selected IPv4 subnet by ID for the server from the specified database.",
"description": "See <xref linkend=\"cmd-remote-subnet4-get-by-id\"/>",
"support": [ "kea-dhcp4" ],
"avail": "1.6.0",
"hook": "cb_cmds",
"cmd-syntax": "{
\"command\": \"remote-subnet4-get-by-id\"
\"arguments\": {
\"subnets\": [ {
\"id\": <subnet identifier>
} ],
\"remote\": {
<specification of the database to connect to>
}
}
}",
"cmd-comment": "This command includes a list with exactly one id of the subnet to be returned. The <command>remote</command> map contains specification of the backend from which the subnet should be fetched. Typically it contains \"type\": \"mysql\".",
"resp-syntax": "{
\"result\": 0,
\"text\": \"IPv4 subnet 123 found.\",
\"arguments\": {
\"subnets\": [ {
\"id\": <subnet identifier>
\"subnet\": <subnet prefix>,
\"shared-network-name\": <shared network name> | null,
\"metadata\": {
\"server-tag\": <server tag>
},
<the rest of the subnet specification here>
} ],
\"count\": 1
}
}",
"resp-comment": "The metadata is included in the returned subnet definition and it provides database specific information associated with the returned object."
}

View File

@@ -0,0 +1,37 @@
{
"name": "remote-subnet4-get-by-prefix",
"brief": "This command is used to fetch selected IPv4 subnet by prefix for the server from the specified database.",
"description": "See <xref linkend=\"cmd-remote-subnet4-get-by-prefix\"/>",
"support": [ "kea-dhcp4" ],
"avail": "1.6.0",
"hook": "cb_cmds",
"cmd-syntax": "{
\"command\": \"remote-subnet4-get-by-prefix\"
\"arguments\": {
\"subnets\": [ {
\"subnet\": <subnet prefix>
} ],
\"remote\": {
<specification of the database to connect to>
}
}
}",
"cmd-comment": "This command includes a list with exactly one prefix of the subnet to be returned. The <command>remote</command> map contains specification of the backend from which the subnet should be fetched. Typically it contains \"type\": \"mysql\".",
"resp-syntax": "{
\"result\": 0,
\"text\": \"IPv4 subnet 123 found.\",
\"arguments\": {
\"subnets\": [ {
\"id\": <subnet identifier>
\"subnet\": <subnet prefix>,
\"shared-network-name\": <shared network name> | null,
\"metadata\": {
\"server-tag\": <server tag>
},
<the rest of the subnet specification here>
} ],
\"count\": 1
}
}",
"resp-comment": "The metadata is included in the returned subnet definition and it provides database specific information associated with the returned object."
}

View File

@@ -0,0 +1,43 @@
{
"name": "remote-subnet4-list",
"brief": "This command is used to fetch a list of all IPv4 shared networks for the particular server from the specified database.",
"description": "See <xref linkend=\"cmd-remote-subnet4-list\"/>",
"support": [ "kea-dhcp4" ],
"avail": "1.6.0",
"hook": "cb_cmds",
"cmd-syntax": "{
\"command\": \"remote-subnet4-list\"
\"arguments\": {
\"remote\": {
<specification of the database to connect to>
}
}
}",
"cmd-comment": "The <command>remote</command> map contains specification of the backend from which the subnets should be fetched. Typically it contains \"type\": \"mysql\".",
"resp-syntax": "{
\"result\": 0,
\"text\": \"2 IPv4 subnets found.\",
\"arguments\": {
\"subnets\": [
{
\"id\": <first subnet identifier>,
\"subnet\": <first subnet prefix>,
\"shared-network-name\": <shared network name> | null,
\"metadata\": {
\"server-tag\": <server tag>
}
},
{
\"id\": <second subnet identifier>,
\"subnet\": <second subnet prefix>,
\"shared-network-name\": <shared network name> | null,
\"metadata\": {
\"server-tag\": <server tag>
}
}
],
\"count\": 2
}
}",
"resp-comment": "The returned response contains a list of maps. Each map contains a subnet identifier, prefix and shared network name to which the subnet belongs. If the subnet does not belong to a shared netork the name is null. The metadata includes database specific information associated with the subnets. The returned list does not contain full subnet definitions. Use <command>remote-subnet4-get</command> to fetch the full information about the selected subnets."
}

View File

@@ -0,0 +1,27 @@
{
"name": "remote-subnet4-set",
"brief": "This command is used to create or update IPv4 subnet for a server in the specified database.",
"description": "See <xref linkend=\"cmd-remote-subnet4-set\"/>",
"support": [ "kea-dhcp4" ],
"avail": "1.6.0",
"hook": "cb_cmds",
"cmd-syntax": "{
\"command\": \"remote-subnet4-set\",
\"arguments\": {
\"subnets\": [ {
\"id\": <subnet identifier>,
\"subnet\": <subnet prefix>,
\"shared-network-name\": <shared network name>
<the rest of the subnet specification here>
} ],
\"remote\": {
<specification of the database to connect to>
}
}
}",
"cmd-comment": "The provided list must contain exactly one subnet specification. The <command>remote</command> map contains specification of the backend where shared network should be set. Typically it contains \"type\": \"mysql\".",
"resp-syntax": "{
\"result\": 0,
\"text\": \"IPv4 subnet successfully set.\",
}"
}

View File

@@ -0,0 +1,12 @@
{
"name": "remote-subnet6-del-by-id",
"brief": "a sentence or two explaining what this command does",
"description": "See <xref linkend=\"cmd-\"/>",
"support": [ "undocumented" ],
"avail": "0.0.0",
"hook": "undocumented",
"cmd-syntax": "Syntax of the command",
"cmd-comment": "Possibly some extra comments after the syntax.",
"resp-syntax": "Syntax of the response",
"resp-comment": "Optional extra comments after the resposne syntax."
}

View File

@@ -0,0 +1,12 @@
{
"name": "remote-subnet6-del-by-prefix",
"brief": "a sentence or two explaining what this command does",
"description": "See <xref linkend=\"cmd-\"/>",
"support": [ "undocumented" ],
"avail": "0.0.0",
"hook": "undocumented",
"cmd-syntax": "Syntax of the command",
"cmd-comment": "Possibly some extra comments after the syntax.",
"resp-syntax": "Syntax of the response",
"resp-comment": "Optional extra comments after the resposne syntax."
}

View File

@@ -0,0 +1,12 @@
{
"name": "remote-subnet6-get-by-id",
"brief": "a sentence or two explaining what this command does",
"description": "See <xref linkend=\"cmd-\"/>",
"support": [ "undocumented" ],
"avail": "0.0.0",
"hook": "undocumented",
"cmd-syntax": "Syntax of the command",
"cmd-comment": "Possibly some extra comments after the syntax.",
"resp-syntax": "Syntax of the response",
"resp-comment": "Optional extra comments after the resposne syntax."
}

View File

@@ -0,0 +1,12 @@
{
"name": "remote-subnet6-get-by-prefix",
"brief": "a sentence or two explaining what this command does",
"description": "See <xref linkend=\"cmd-\"/>",
"support": [ "undocumented" ],
"avail": "0.0.0",
"hook": "undocumented",
"cmd-syntax": "Syntax of the command",
"cmd-comment": "Possibly some extra comments after the syntax.",
"resp-syntax": "Syntax of the response",
"resp-comment": "Optional extra comments after the resposne syntax."
}

View File

@@ -0,0 +1,12 @@
{
"name": "remote-subnet6-list",
"brief": "a sentence or two explaining what this command does",
"description": "See <xref linkend=\"cmd-\"/>",
"support": [ "undocumented" ],
"avail": "0.0.0",
"hook": "undocumented",
"cmd-syntax": "Syntax of the command",
"cmd-comment": "Possibly some extra comments after the syntax.",
"resp-syntax": "Syntax of the response",
"resp-comment": "Optional extra comments after the resposne syntax."
}

View File

@@ -0,0 +1,12 @@
{
"name": "remote-subnet6-set",
"brief": "a sentence or two explaining what this command does",
"description": "See <xref linkend=\"cmd-\"/>",
"support": [ "undocumented" ],
"avail": "0.0.0",
"hook": "undocumented",
"cmd-syntax": "Syntax of the command",
"cmd-comment": "Possibly some extra comments after the syntax.",
"resp-syntax": "Syntax of the response",
"resp-comment": "Optional extra comments after the resposne syntax."
}

View File

@@ -50,6 +50,50 @@ network6-get
network6-list
network6-subnet-add
network6-subnet-del
remote-global-parameter4-del
remote-global-parameter4-get
remote-global-parameter4-get-all
remote-global-parameter4-set
remote-global-parameter6-del
remote-global-parameter6-get
remote-global-parameter6-get-all
remote-global-parameter6-set
remote-network4-del
remote-network4-get
remote-network4-list
remote-network4-set
remote-network6-del
remote-network6-get
remote-network6-list
remote-network6-set
remote-option-def4-del
remote-option-def4-get
remote-option-def4-get-all
remote-option-def4-set
remote-option-def6-del
remote-option-def6-get
remote-option-def6-get-all
remote-option-def6-set
remote-option4-global-del
remote-option4-global-get
remote-option4-global-get-all
remote-option4-global-set
remote-option6-global-del
remote-option6-global-get
remote-option6-global-get-all
remote-option6-global-set
remote-subnet4-del-by-id
remote-subnet4-del-by-prefix
remote-subnet4-get-by-id
remote-subnet4-get-by-prefix
remote-subnet4-list
remote-subnet4-set
remote-subnet6-del-by-id
remote-subnet6-del-by-prefix
remote-subnet6-get-by-id
remote-subnet6-get-by-prefix
remote-subnet6-list
remote-subnet6-set
reservation-add
reservation-del
reservation-get

View File

@@ -7,10 +7,10 @@ dist_html_DATA = $(HTMLDOCS) kea-guide.css kea-logo-100x70.png
DOCBOOK = kea-guide.xml intro.xml quickstart.xml install.xml admin.xml config.xml
DOCBOOK += config-backend.xml keactrl.xml dhcp4-srv.xml dhcp6-srv.xml lease-expiration.xml
DOCBOOK += logging.xml ddns.xml hooks.xml hooks-class-cmds.xml hooks-ha.xml
DOCBOOK += hooks-host-cache.xml hooks-lease-cmds.xml hooks-radius.xml hooks-stat-cmds.xml
DOCBOOK += lfc.xml stats.xml ctrl-channel.xml classify.xml shell.xml agent.xml
DOCBOOK += netconf.xml api.xml congestion-handling.xml hammer.xml
DOCBOOK += logging.xml ddns.xml hooks.xml hooks-class-cmds.xml hooks-cb-cmds.xml
DOCBOOK += hooks-ha.xml hooks-host-cache.xml hooks-lease-cmds.xml hooks-radius.xml
DOCBOOK += hooks-stat-cmds.xml lfc.xml stats.xml ctrl-channel.xml classify.xml shell.xml
DOCBOOK += agent.xml netconf.xml api.xml congestion-handling.xml hammer.xml
EXTRA_DIST = $(DOCBOOK)

File diff suppressed because it is too large Load Diff

View File

@@ -145,6 +145,12 @@
such as MySQL Workbench or command line MySQL client by directly working
with the database.
</para>
<para>
Refer to the <xref linkend="cb-cmds-library"/> for the details regarding
the <command>cb_cmds</command> hooks library.
</para>
</section>
</chapter>

382
doc/guide/hooks-cb-cmds.xml Normal file
View File

@@ -0,0 +1,382 @@
<!--
- Copyright (C) 2019 Internet Systems Consortium, Inc. ("ISC")
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, you can obtain one at http://mozilla.org/MPL/2.0/.
-->
<section xml:id="cb-cmds-library">
<title>cb_cmds: Configuration Backend Commands</title>
<para>
This section describes the <command>cb_cmds</command> hooks library
which is used to manage Kea servers' configurations in the Configuration
Backends. The hooks library uses available CB implementations to
perform CRUD operations on the data held in the respective Configuration
Backends.
</para>
<para>This library is only available to ISC customers with a
support contract.
<note>
<para>This library may only be loaded by the <command>kea-dhcp4</command>
or the <command>kea-dhcp6</command> process.
</para>
</note>
</para>
<section>
<title>Commands Structure</title>
<para>There are 5 types of commands supported by this library:</para>
<itemizedlist>
<listitem><simpara><command>del</command> - delete selected object from the
database,</simpara></listitem>
<listitem><simpara><command>get</command> - fetch selected object from the
database,</simpara></listitem>
<listitem><simpara><command>get-all</command> - fetch all objects of the
particular type from the database,</simpara></listitem>
<listitem><simpara><command>list</command> - list all objects of the particular
type from the database; brief information about the listed objects is
returned, comparing to the output of <command>get-all</command>,</simpara>
</listitem>
<listitem><simpara><command>set</command> - creates or updates an object
of the given type in the database.</simpara></listitem>
</itemizedlist>
<para>All commands accept optional <command>remote</command> map which selects
the database instance to which the command refers. For example:
<screen>
{
"command": "remote-subnet4-list",
"arguments": {
"remote": {
"type": "mysql",
"host": "192.0.2.33",
"port": 3302
}
}
}
</screen>
</para>
<para>
selects the MySQL database running on host 192.0.2.33 and port 3302 to
fetch the list of subnets from. All parameters in the
<command>remote</command> are optional. The <command>port</command>
parameter can be only specified in conjuction with the
<command>host</command>. If no parameters in the <command>remote</command>
parameter are to be specified, the parameter should be omitted. In this
case the server will use the first backend listed in the
<command>config-control</command> map within the configuration of the
server receiving the command.
</para>
<note>
<para>
In Kea 1.6.0 beta release it is possible to configure Kea instance to
use only one configuration backend with the <command>config-control</command>
parameter. Therefore, in this release the <command>remote</command>
parameter is redundant in the commands supported by this library.
</para>
</note>
</section>
<section xml:id="cb-cmds4">
<title>Control Commands for DHCPv4 Servers</title>
<para>The following commands are supported by the <command>cb_cmds</command>
hooks library to manage the configuration information in the configuration
backends.</para>
<section xml:id="command-remote-global-parameter4-del">
<title>remote-global-parameter4-del</title>
<para>This command is used to delete a global DHCPv4 parameter from the
configuration database. When the parameter is deleted from the database
the server will use the value specified in the configuration file or
a default value, if the parameter is not specified in the configuration
file.</para>
<para>The following command attempts to delete the
<command>renew-timer</command> parameter from the database:
<screen>
{
"command": "remote-global-parameter4-del",
"arguments": {
"parameters": [ "renew-timer" ],
"remote": {
"type": "mysql"
}
}
}
</screen>
</para>
</section>
<section xml:id="command-remote-global-parameter4-get">
<title>remote-global-parameter4-get</title>
<para>This command is used to fetch a global DHCPv4 parameter from the
configuration database.</para>
<para>The following commands attempt to fetch the
<command>boot-file-name</command> parameter from the database:
<screen>
{
"command": "remote-global-parameter4-get",
"arguments": {
"parameters": [ "boot-file-name" ],
"remote": {
"type": "mysql"
}
}
}
</screen>
</para>
<para>
The returned value may have one of 4 types: string, integer, real
or boolean. In case of the <command>boot-file-name</command> the
string value is returned, e.g.:
<screen>
{
"result": 0,
"text": "1 DHCPv4 global parameter found.",
"arguments": {
"parameters": {
"boot-file-name": "/dev/null",
"metadata": {
"server-tag": "all"
}
},
"count": 1
}
}
</screen>
</para>
<para>
The example response for an integer value is:
<screen>
{
"result": 0,
"text": "1 DHCPv4 global parameter found.",
"arguments": {
"parameters": {
"renew-timer": 2000,
"metadata": {
"server-tag": "all"
}
},
"count": 1
}
}
</screen>
</para>
<para>
The integer value:
<screen>
{
"result": 0,
"text": "1 DHCPv4 global parameter found.",
"arguments": {
"parameters": {
"t1-percent": 0.85,
"metadata": {
"server-tag": "all"
}
},
"count": 1
}
}
</screen>
</para>
<para>
Finally, the boolean value:
<screen>
{
"result": 0,
"text": "1 DHCPv4 global parameter found.",
"arguments": {
"parameters": {
"match-client-id": true,
"metadata": {
"server-tag": "all"
}
},
"count": 1
}
}
</screen>
</para>
</section>
<section xml:id="command-remote-global-parameter4-get-all">
<title>remote-global-parameter4-get-all</title>
<para>This command is used to fetch all global DHCPv4 parameters from
the database. It includes no arguments besides an optional
<command>remote</command> argument.</para>
</section>
<section xml:id="command-remote-global-parameter4-set">
<title>remote-global-parameter4-set</title>
<para>This command is used to create global DHCPv4 parameters in the database.
If any of the parameters parameter already exists, its value is replaced
as a result of this command. It is possible to set multiple parameters within
a single command, each having one of the 4 types: a string, integer, real
and boolean.
<screen>
{
"command": "remote-global-parameter4-set"
"arguments": {
"parameters": {
"boot-file-name": "/dev/null",
"renew-timer": 2000,
"t1-percent": 0.85,
"match-client-id": true
},
"remote": {
"type": "mysql"
}
}
}
</screen>
</para>
<para>
If any of the parameters is not supported by the DHCPv4 server or its
type doesn't match, an error is returned.
</para>
</section>
<section xml:id="command-remote-network4-del">
<title>remote-network4-del</title>
<para>This command is used to delete IPv4 shared network from the database.
The optional parameter <command>subnets-action</command> specifies whether
the subnets belonging to the deleted shared network should be also deleted
or preserved. The <command>subnets-action</command> defaults to
<command>keep</command>, which preserves the subnets. If this parameter
is set to <command>delete</command>, the subnets are deleted along with
the shared network. For example:
<screen>
{
"command": "remote-network4-del",
"arguments": {
"shared-networks": [ {
"name": "level3"
} ],
"subnets-action": "keep",
"remote": {
"type": "mysql"
}
}
}
</screen>
deletes the "level3" shared network but preserves the subnets, which
are disassociated from the deleted shared network and become global.
</para>
</section>
<section xml:id="command-remote-network4-get">
<title>remote-network4-get</title>
<para>This command is used to retrieve information about the IPv4 shared
network. The optional parameter <command>subnets-include</command> controls
whether the subnets should be returned together with the shared network
information. This parameter defaults to <command>no</command> which
instructs to not return the subnets. If this parameter is set to
<command>full</command>, the subnets are returned together with the
shared network.</para>
<para>
The following command fetches the subnet "level3" and all subnets
belonging to it:
<screen>
{
"command": "remote-network4-get",
"arguments": {
"shared-networks": [ {
"name": "level3"
} ],
"subnets-include": "full",
"remote": {
"type": "mysql"
}
}
}
</screen>
</para>
</section>
<section xml:id="command-remote-network4-list">
<title>remote-network4-list</title>
<para>This command is used to list all IPv4 shared networks in the
particular database. The returned information about each shared network
is brief, i.e. it merely contains shared network name and the metadata
for each shared network. In order to fetch the detailed information
about the selected shared network, use the <command>remote-network4-get</command>.
</para>
<para>
The <command>remote-network4-list</command> takes no argument except
the optional <command>remote</command> map.
</para>
</section>
<section xml:id="command-remote-network4-set">
<title>remote-network4-set</title>
<para>This command creates a new IPv4 shared network or updates an existing
shared network in the database. The structure of the shared network information
is the same as in the Kea configuration file (see <xref linkend="shared-network4"/>),
with the exception that the <command>subnet4</command> parameter is not allowed
in the shared network specification. The reason for this is that the
<command>remote-network4-set</command> is not meant to manage the subnets
within the shared network. It is merely used to manage shared network specific
parameters and DHCP options. In order to associate and disassociate the
subnets with the shared networks the <command>remote-subnet4-set</command>
command is used.
</para>
<para>
The following command adds the shared network "level3" to the database:
<screen>
{
"command": "remote-network4-set",
"arguments": {
"shared-networks": [ {
"name": "level3",
"interface": "eth0",
"option-data": [ {
"name": "log-servers",
"data": "1.2.3.4"
} ],
} ],
"remote": {
"type": "mysql"
}
}
}
</screen>
</para>
<para>
This command includes the <command>interface</command> parameters which sets
the shared network level interface name. Remaining shared network level
parameters, which are not specified with the command, will be marked as
"unspecified" in the database. The DHCP server will use the global values
for those parameters or, if global values are not specified, the default
values will be used.
</para>
<note>
<para>
Same as for other "set" commands, this command replaces the entire
information about the given shared network in the database if this
shared network already exists. Therefore, when sending this command,
make sure to always include all parameters that must be specified for
the updated shared network instance. Any unspecified parameter will
be marked unspecified in the database, even if its value was present
prior to sending this command.
</para>
</note>
</section>
</section>
<section xml:id="cb-cmds6">
<title>Control Commands for DHCPv6 Server</title>
<para>TBD</para>
</section>
</section>

View File

@@ -2880,6 +2880,9 @@ both the command and the response.
<!-- section class-cmds-library -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="hooks-class-cmds.xml"/>
<!-- section cb-cmds-library -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="hooks-cb-cmds.xml"/>
<!-- section high-availability-library -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="hooks-ha.xml"/>