...
 
Commits (18)
1639. [func] fdupont
Updated YANG models with the latest changes in kea-dhcp4 and
kea-dhcp6.
(Gitlab #433,!473, git c46e8da1561e7d0c6c6f481d2e32cc9ae398324c)
1638. [bug] franek, razvan
Kea statistics improvements: Correct statistic-get{all} commands.
(Gitlab #756,!470, git 59fb24794af8a9ca8ee3621bc01dfd507350b2c1)
......
......@@ -859,6 +859,9 @@ AC_ARG_WITH([sysrepo],
[sysrepo_config="$withval"])
if test "${sysrepo_config}" = "yes" ; then
if test "$PKG_CONFIG" = ""; then
AC_MSG_ERROR([--with-sysrepo specified without any parameter and pkg-config was not found. Either use --with-sysrepo=path or install pkg-config])
fi
SYSREPO_CONFIG="$PKG_CONFIG"
DISTCHECK_SYSREPO_CONFIGURE_FLAG="-with-sysrepo=${sysrepo_config}"
elif test "${sysrepo_config}" != "no" ; then
......
......@@ -262,6 +262,69 @@
// User name to be used to access the database.
"user": "kea"
},
{
// Name of the database to connect to.
"name": "kea",
// Host on which the database resides.
"host": "localhost",
// Database password.
"password": "kea",
// Port on which the database is available.
"port": 5432,
// Type of the database, e.g. "mysql", "postgresql", "cql".
"type": "postgresql",
// User name to be used to access the database.
"user": "kea"
},
{
// Name of the database to connect to.
"keyspace": "kea",
// Host on which the database resides.
"contact-points": "127.0.0.1",
// Database password.
"password": "kea",
// Port on which the database is available.
"port": 9042,
// Type of the database, e.g. "mysql", "postgresql", "cql".
"type": "cql",
// User name to be used to access the database.
"user": "kea",
// Consistency level for all queries.
// Supported values: any, one, two, three, quorum, all,
// local-quorum, each-quorum, serial, local-serial, local-one.
"consistency": "quorum",
// Serial consistency level for all queries.
// Supported values: any, one, two, three, quorum, all,
// local-quorum, each-quorum, serial, local-serial, local-one.
"serial-consistency": "serial",
// Connection reconnect wait time.
"reconnect-wait-time": 100,
// Connection connect timeout.
"connect-timeout": 100,
// Connection request timeout.
"request-timeout": 100,
// Connection tcp keepalive.
"tcp-keepalive": 100,
// Connection tcp nodelay.
"tcp-nodelay": true
}
],
......@@ -485,6 +548,15 @@
// Shared network level renew timer.
"renew-timer": 31,
// Shared network level compute T1 and T2 timers.
"calculate-tee-times": true,
// T1 = valid lifetime * .5.
"t1-percent": .5,
// T2 = valid lifetime * .75.
"t2-percent": .75,
// Enumeration specifying server's mode of operation when it
// fetches host reservations.
"reservation-mode": "all",
......@@ -611,6 +683,15 @@
// fetches host reservations.
"reservation-mode": "all",
// Subnet-level compute T1 and T2 timers.
"calculate-tee-times": true,
// T1 = valid lifetime * .5.
"t1-percent": .5,
// T2 = valid lifetime * .75.
"t2-percent": .75,
// List of static IPv4 reservations assigned to the clients belonging
// to this subnet. For detailed example see reservations.json.
"reservations": [
......@@ -645,13 +726,25 @@
// Subnet prefix.
"subnet": "192.0.0.0/8",
// Subnet level valid lifetime.
"valid-lifetime": 6000
// Subnet level (default) valid lifetime.
"valid-lifetime": 6000,
// Subnet level min valid lifetime.
"min-valid-lifetime": 4000,
// Subnet level max valid lifetime.
"max-valid-lifetime": 8000
}
],
// Shared network level valid lifetime.
"valid-lifetime": 6001
// Shared network level (default) valid lifetime.
"valid-lifetime": 6001,
// Subnet level min valid lifetime.
"min-valid-lifetime": 4001,
// Subnet level max valid lifetime.
"max-valid-lifetime": 8001
}
],
......@@ -661,9 +754,18 @@
// List of IPv4 subnets which don't belong to any shared network.
"subnet4": [],
// Global valid lifetime value.
// Global valid (default) lifetime value.
"valid-lifetime": 6000,
// Global min valid lifetime value.
"min-valid-lifetime": 4000,
// Global max valid lifetime value.
"max-valid-lifetime": 8000,
// Reservations (examples are in other files).
"reservations": [],
// Configuration control (currently not used, i.e. this syntax
// is already defined but corresponding feature is not implemented).
"config-control":
......@@ -677,7 +779,10 @@
// Type of the database, e.g. "mysql", "postgresql", "cql".
"type": "mysql"
}
]
],
// Intervals between attempts to fetch configuration updates
// via the configuration backends used.
"config-fetch-wait-time": 30
},
// Server tag.
......@@ -692,7 +797,28 @@
// Queue type was mandatory.
"queue-type": "kea-ring4"
},
// Missing: calculate-tee-times, t1-percent, t2-percent
// Fetches host reservations.
"reservation-mode": "all",
// Global compute T1 and T2 timers.
"calculate-tee-times": true,
// T1 = valid lifetime * .5.
"t1-percent": .5,
// T2 = valid lifetime * .75.
"t2-percent": .75,
// String of zero or more characters with which to replace each
// invalid character in the hostname or Client FQDN. The default
// value is an empty string which will cause invalid characters
// to be omitted rather than replaced.
"hostname-char-replacement": "x",
// Regular expression describing the invalid character set in
// the hostname or Client FQDN.
"hostname-char-set": "[^A-Za-z0-9.-]",
// List of loggers used by the servers using this configuration file.
"loggers": [
......
......@@ -46,7 +46,7 @@
// This parameter enables/disables Nagle's algorithm on connections.
// The default is true.
"tcp-nodelay": true /*,
"tcp-nodelay": true,
// This parameter configures consistency level. The default is "quorum".
// Supported values:
......@@ -79,7 +79,7 @@
// - local-serial
// - local-one
// See https://docs.datastax.com/en/cassandra/3.0/cassandra/dml/dmlConfigSerialConsistency.html for more details.
"serial-consistency": "serial" */
"serial-consistency": "serial"
},
// Addresses will be assigned with a lifetime of 4000 seconds.
......
This diff is collapsed.
......@@ -45,7 +45,7 @@
// This parameter enables/disables Nagle's algorithm on connections.
// The default is true.
"tcp-nodelay": true /*,
"tcp-nodelay": true,
// This parameter configures consistency level. The default is "quorum".
// Supported values:
......@@ -78,7 +78,7 @@
// - local-serial
// - local-one
// See https://docs.datastax.com/en/cassandra/3.0/cassandra/dml/dmlConfigSerialConsistency.html for more details.
"serial-consistency": "serial" */
"serial-consistency": "serial"
},
// Addresses will be assigned with preferred and valid lifetimes
......
......@@ -48,13 +48,11 @@
"pools": [ { "pool": "2001:db8:3::/80" } ],
"t1-percent": .45,
"t2-percent": .7
}]
},
}],
// The following configures logging. It assumes that messages with at
// least informational level (info, warn, error and fatal) should be
// logged to stdout.
"Logging": {
"loggers": [
{
"name": "kea-dhcp6",
......
......@@ -73,164 +73,16 @@ man8s=$(foreach rst,$(rst_man_sources), $(sphinxbuilddir)/$(basename $(rst)))
EXTRA_DIST += $(main_sources) $(man_sources) mes2doc.py api2doc.py
# list of messages files that are used to generate kea-messages.rst and then kea-messages.pdf
mes_files=
mes_files+=$(top_srcdir)/src/hooks/dhcp/mysql_cb/mysql_cb_messages.mes
mes_files+=$(top_srcdir)/src/hooks/dhcp/lease_cmds/lease_cmds_messages.mes
mes_files+=$(top_srcdir)/src/hooks/dhcp/high_availability/ha_messages.mes
mes_files+=$(top_srcdir)/src/hooks/dhcp/stat_cmds/stat_cmds_messages.mes
mes_files+=$(top_srcdir)/src/hooks/dhcp/user_chk/user_chk_messages.mes
mes_files+=$(top_srcdir)/src/lib/config/config_messages.mes
mes_files+=$(top_srcdir)/src/lib/hooks/hooks_messages.mes
mes_files+=$(top_srcdir)/src/lib/dhcpsrv/dhcpsrv_messages.mes
mes_files+=$(top_srcdir)/src/lib/dhcpsrv/alloc_engine_messages.mes
mes_files+=$(top_srcdir)/src/lib/dhcpsrv/hosts_messages.mes
mes_files+=$(top_srcdir)/src/lib/http/http_messages.mes
mes_files+=$(top_srcdir)/src/lib/dhcp_ddns/dhcp_ddns_messages.mes
mes_files+=$(top_srcdir)/src/lib/database/db_messages.mes
mes_files+=$(top_srcdir)/src/lib/log/log_messages.mes
mes_files+=$(top_srcdir)/src/lib/log/logimpl_messages.mes
mes_files+=$(top_srcdir)/src/lib/log/tests/log_test_messages.mes
mes_files+=$(top_srcdir)/src/lib/process/process_messages.mes
mes_files+=$(top_srcdir)/src/lib/asiodns/asiodns_messages.mes
mes_files+=$(top_srcdir)/src/lib/eval/eval_messages.mes
mes_files+=$(top_srcdir)/src/bin/dhcp4/dhcp4_messages.mes
mes_files+=$(top_srcdir)/src/bin/agent/ca_messages.mes
mes_files+=$(top_srcdir)/src/bin/d2/d2_messages.mes
mes_files+=$(top_srcdir)/src/bin/dhcp6/dhcp6_messages.mes
mes_files+=$(top_srcdir)/src/bin/lfc/lfc_messages.mes
mes_files+=$(top_srcdir)/src/bin/netconf/netconf_messages.mes
mes_files1=$(shell cat mes-files.txt)
mes_files=$(foreach mf,$(mes_files1), $(top_srcdir)/$(mf))
# this env variable is used in sphinx's conf.py where mes2doc.py is invoked
export KEA_MES_FILES=$(mes_files)
# list of api files that are used to generate api.rst
api_files=
api_files+=$(srcdir)/api/build-report.json
api_files+=$(srcdir)/api/cache-clear.json
api_files+=$(srcdir)/api/cache-get.json
api_files+=$(srcdir)/api/cache-get-by-id.json
api_files+=$(srcdir)/api/cache-insert.json
api_files+=$(srcdir)/api/cache-load.json
api_files+=$(srcdir)/api/cache-remove.json
api_files+=$(srcdir)/api/cache-size.json
api_files+=$(srcdir)/api/cache-write.json
api_files+=$(srcdir)/api/class-add.json
api_files+=$(srcdir)/api/class-del.json
api_files+=$(srcdir)/api/class-get.json
api_files+=$(srcdir)/api/class-list.json
api_files+=$(srcdir)/api/class-update.json
api_files+=$(srcdir)/api/config-get.json
api_files+=$(srcdir)/api/config-reload.json
api_files+=$(srcdir)/api/config-set.json
api_files+=$(srcdir)/api/config-test.json
api_files+=$(srcdir)/api/config-write.json
api_files+=$(srcdir)/api/dhcp-disable.json
api_files+=$(srcdir)/api/dhcp-enable.json
api_files+=$(srcdir)/api/ha-continue.json
api_files+=$(srcdir)/api/ha-heartbeat.json
api_files+=$(srcdir)/api/ha-scopes.json
api_files+=$(srcdir)/api/ha-sync.json
api_files+=$(srcdir)/api/lease4-add.json
api_files+=$(srcdir)/api/lease4-del.json
api_files+=$(srcdir)/api/lease4-get-all.json
api_files+=$(srcdir)/api/lease4-get.json
api_files+=$(srcdir)/api/lease4-update.json
api_files+=$(srcdir)/api/lease4-wipe.json
api_files+=$(srcdir)/api/lease6-add.json
api_files+=$(srcdir)/api/lease6-bulk-apply.json
api_files+=$(srcdir)/api/lease6-del.json
api_files+=$(srcdir)/api/lease6-get-all.json
api_files+=$(srcdir)/api/lease6-get.json
api_files+=$(srcdir)/api/lease6-update.json
api_files+=$(srcdir)/api/lease6-wipe.json
api_files+=$(srcdir)/api/leases-reclaim.json
api_files+=$(srcdir)/api/libreload.json
api_files+=$(srcdir)/api/list-commands.json
api_files+=$(srcdir)/api/network4-add.json
api_files+=$(srcdir)/api/network4-del.json
api_files+=$(srcdir)/api/network4-get.json
api_files+=$(srcdir)/api/network4-list.json
api_files+=$(srcdir)/api/network4-subnet-add.json
api_files+=$(srcdir)/api/network4-subnet-del.json
api_files+=$(srcdir)/api/network6-add.json
api_files+=$(srcdir)/api/network6-del.json
api_files+=$(srcdir)/api/network6-get.json
api_files+=$(srcdir)/api/network6-list.json
api_files+=$(srcdir)/api/network6-subnet-add.json
api_files+=$(srcdir)/api/network6-subnet-del.json
api_files+=$(srcdir)/api/remote-global-parameter4-del.json
api_files+=$(srcdir)/api/remote-global-parameter4-get-all.json
api_files+=$(srcdir)/api/remote-global-parameter4-get.json
api_files+=$(srcdir)/api/remote-global-parameter4-set.json
api_files+=$(srcdir)/api/remote-global-parameter6-del.json
api_files+=$(srcdir)/api/remote-global-parameter6-get-all.json
api_files+=$(srcdir)/api/remote-global-parameter6-get.json
api_files+=$(srcdir)/api/remote-global-parameter6-set.json
api_files+=$(srcdir)/api/remote-network4-del.json
api_files+=$(srcdir)/api/remote-network4-get.json
api_files+=$(srcdir)/api/remote-network4-list.json
api_files+=$(srcdir)/api/remote-network4-set.json
api_files+=$(srcdir)/api/remote-network6-del.json
api_files+=$(srcdir)/api/remote-network6-get.json
api_files+=$(srcdir)/api/remote-network6-list.json
api_files+=$(srcdir)/api/remote-network6-set.json
api_files+=$(srcdir)/api/remote-option-def4-del.json
api_files+=$(srcdir)/api/remote-option-def4-get-all.json
api_files+=$(srcdir)/api/remote-option-def4-get.json
api_files+=$(srcdir)/api/remote-option-def4-set.json
api_files+=$(srcdir)/api/remote-option-def6-del.json
api_files+=$(srcdir)/api/remote-option-def6-get-all.json
api_files+=$(srcdir)/api/remote-option-def6-get.json
api_files+=$(srcdir)/api/remote-option-def6-set.json
api_files+=$(srcdir)/api/remote-option4-global-del.json
api_files+=$(srcdir)/api/remote-option4-global-get-all.json
api_files+=$(srcdir)/api/remote-option4-global-get.json
api_files+=$(srcdir)/api/remote-option4-global-set.json
api_files+=$(srcdir)/api/remote-option6-global-del.json
api_files+=$(srcdir)/api/remote-option6-global-get-all.json
api_files+=$(srcdir)/api/remote-option6-global-get.json
api_files+=$(srcdir)/api/remote-option6-global-set.json
api_files+=$(srcdir)/api/remote-subnet4-del-by-id.json
api_files+=$(srcdir)/api/remote-subnet4-del-by-prefix.json
api_files+=$(srcdir)/api/remote-subnet4-get-by-id.json
api_files+=$(srcdir)/api/remote-subnet4-get-by-prefix.json
api_files+=$(srcdir)/api/remote-subnet4-list.json
api_files+=$(srcdir)/api/remote-subnet4-set.json
api_files+=$(srcdir)/api/remote-subnet6-del-by-id.json
api_files+=$(srcdir)/api/remote-subnet6-del-by-prefix.json
api_files+=$(srcdir)/api/remote-subnet6-get-by-id.json
api_files+=$(srcdir)/api/remote-subnet6-get-by-prefix.json
api_files+=$(srcdir)/api/remote-subnet6-list.json
api_files+=$(srcdir)/api/remote-subnet6-set.json
api_files+=$(srcdir)/api/reservation-add.json
api_files+=$(srcdir)/api/reservation-del.json
api_files+=$(srcdir)/api/reservation-get.json
api_files+=$(srcdir)/api/reservation-get-all.json
api_files+=$(srcdir)/api/reservation-get-page.json
api_files+=$(srcdir)/api/shutdown.json
api_files+=$(srcdir)/api/statistic-get-all.json
api_files+=$(srcdir)/api/statistic-get.json
api_files+=$(srcdir)/api/statistic-remove-all.json
api_files+=$(srcdir)/api/statistic-remove.json
api_files+=$(srcdir)/api/statistic-reset-all.json
api_files+=$(srcdir)/api/statistic-reset.json
api_files+=$(srcdir)/api/stat-lease4-get.json
api_files+=$(srcdir)/api/stat-lease6-get.json
api_files+=$(srcdir)/api/subnet4-add.json
api_files+=$(srcdir)/api/subnet4-del.json
api_files+=$(srcdir)/api/subnet4-get.json
api_files+=$(srcdir)/api/subnet4-list.json
api_files+=$(srcdir)/api/subnet4-update.json
api_files+=$(srcdir)/api/subnet6-add.json
api_files+=$(srcdir)/api/subnet6-del.json
api_files+=$(srcdir)/api/subnet6-get.json
api_files+=$(srcdir)/api/subnet6-list.json
api_files+=$(srcdir)/api/subnet6-update.json
api_files+=$(srcdir)/api/version-get.json
# this env variable is used in sphinx's conf.py where api2doc.py is invoked
export KEA_API_FILES=$(api_files)
api_files1=$(shell cat api-files.txt)
api_files=$(foreach af,$(api_files1), $(srcdir)/$(af))
EXTRA_DIST += mes-files.txt
EXTRA_DIST += api-files.txt
EXTRA_DIST += $(api_files)
if HAVE_PDFLATEX
......
api/build-report.json
api/cache-clear.json
api/cache-get.json
api/cache-get-by-id.json
api/cache-insert.json
api/cache-load.json
api/cache-remove.json
api/cache-size.json
api/cache-write.json
api/class-add.json
api/class-del.json
api/class-get.json
api/class-list.json
api/class-update.json
api/config-get.json
api/config-reload.json
api/config-set.json
api/config-test.json
api/config-write.json
api/dhcp-disable.json
api/dhcp-enable.json
api/ha-continue.json
api/ha-heartbeat.json
api/ha-scopes.json
api/ha-sync.json
api/lease4-add.json
api/lease4-del.json
api/lease4-get-all.json
api/lease4-get.json
api/lease4-update.json
api/lease4-wipe.json
api/lease6-add.json
api/lease6-bulk-apply.json
api/lease6-del.json
api/lease6-get-all.json
api/lease6-get.json
api/lease6-update.json
api/lease6-wipe.json
api/leases-reclaim.json
api/libreload.json
api/list-commands.json
api/network4-add.json
api/network4-del.json
api/network4-get.json
api/network4-list.json
api/network4-subnet-add.json
api/network4-subnet-del.json
api/network6-add.json
api/network6-del.json
api/network6-get.json
api/network6-list.json
api/network6-subnet-add.json
api/network6-subnet-del.json
api/remote-global-parameter4-del.json
api/remote-global-parameter4-get-all.json
api/remote-global-parameter4-get.json
api/remote-global-parameter4-set.json
api/remote-global-parameter6-del.json
api/remote-global-parameter6-get-all.json
api/remote-global-parameter6-get.json
api/remote-global-parameter6-set.json
api/remote-network4-del.json
api/remote-network4-get.json
api/remote-network4-list.json
api/remote-network4-set.json
api/remote-network6-del.json
api/remote-network6-get.json
api/remote-network6-list.json
api/remote-network6-set.json
api/remote-option-def4-del.json
api/remote-option-def4-get-all.json
api/remote-option-def4-get.json
api/remote-option-def4-set.json
api/remote-option-def6-del.json
api/remote-option-def6-get-all.json
api/remote-option-def6-get.json
api/remote-option-def6-set.json
api/remote-option4-global-del.json
api/remote-option4-global-get-all.json
api/remote-option4-global-get.json
api/remote-option4-global-set.json
api/remote-option6-global-del.json
api/remote-option6-global-get-all.json
api/remote-option6-global-get.json
api/remote-option6-global-set.json
api/remote-option4-network-del.json
api/remote-option4-network-set.json
api/remote-option4-pool-del.json
api/remote-option4-pool-set.json
api/remote-option4-subnet-del.json
api/remote-option4-subnet-set.json
api/remote-option6-network-del.json
api/remote-option6-network-set.json
api/remote-option6-pd-pool-del.json
api/remote-option6-pd-pool-set.json
api/remote-option6-pool-del.json
api/remote-option6-pool-set.json
api/remote-option6-subnet-del.json
api/remote-option6-subnet-set.json
api/remote-subnet4-del-by-id.json
api/remote-subnet4-del-by-prefix.json
api/remote-subnet4-get-by-id.json
api/remote-subnet4-get-by-prefix.json
api/remote-subnet4-list.json
api/remote-subnet4-set.json
api/remote-subnet6-del-by-id.json
api/remote-subnet6-del-by-prefix.json
api/remote-subnet6-get-by-id.json
api/remote-subnet6-get-by-prefix.json
api/remote-subnet6-list.json
api/remote-subnet6-set.json
api/reservation-add.json
api/reservation-del.json
api/reservation-get.json
api/reservation-get-all.json
api/reservation-get-page.json
api/shutdown.json
api/statistic-get-all.json
api/statistic-get.json
api/statistic-remove-all.json
api/statistic-remove.json
api/statistic-reset-all.json
api/statistic-reset.json
api/stat-lease4-get.json
api/stat-lease6-get.json
api/subnet4-add.json
api/subnet4-del.json
api/subnet4-get.json
api/subnet4-list.json
api/subnet4-update.json
api/subnet6-add.json
api/subnet6-del.json
api/subnet6-get.json
api/subnet6-list.json
api/subnet6-update.json
api/version-get.json
......@@ -83,6 +83,20 @@ remote-option6-global-del
remote-option6-global-get
remote-option6-global-get-all
remote-option6-global-set
remote-option4-network-del
remote-option4-network-set
remote-option4-pool-del
remote-option4-pool-set
remote-option4-subnet-del
remote-option4-subnet-set
remote-option6-network-del
remote-option6-network-set
remote-option6-pd-pool-del
remote-option6-pd-pool-set
remote-option6-pool-del
remote-option6-pool-set
remote-option6-subnet-del
remote-option6-subnet-set
remote-server4-del
remote-server4-get
remote-server4-get-all
......
{
"avail": "1.6.0",
"brief": [
"This command deletes a DHCPv4 shared network option from the configuration database."
],
"cmd-comment": [
"This command includes two lists with exactly one name of the shared network and exactly one option specification, comprising an option name and code. Specifying an empty list, a value of ``null``, or a server tag will result in an error."
],
"cmd-syntax": [
"{",
" \"command\": \"remote-option4-network-del\",",
" \"arguments\": {",
" \"shared-networks\": [",
" {",
" \"name\": <shared network name>",
" }",
" ],",
" \"options\": [",
" {",
" \"code\": <option code>,",
" \"space\": <option space>",
" }",
" ],",
" \"remote\": {",
" <specification of the database to connect to>",
" }",
" }",
"}"
],
"hook": "cb_cmds",
"name": "remote-option4-network-del",
"resp-syntax": [
"{",
" \"result\": 0,",
" \"text\": \"1 DHCPv4 option(s) deleted.\",",
" \"arguments\": {",
" \"count\": 1",
" }",
"}"
],
"support": [
"kea-dhcp4"
]
}
{
"avail": "1.6.0",
"brief": [
"This command creates or replaces a DHCPv4 shared network option in the configuration database."
],
"cmd-comment": [
"The provided lists must contain exactly one name of the shared network and one option specification. Specifying an empty list, a value of ``null``, or a server tag will result in an error."
],
"cmd-syntax": [
"{",
" \"command\": \"remote-option4-network-set\",",
" \"arguments\": {",
" \"shared-networks\": [",
" {",
" \"name\": <shared network name>",
" }",
" ],",
" \"options\": [",
" {",
" <shared network option specification>",
" }",
" ],",
" \"remote\": {",
" <specification of the database to connect to>",
" }",
" }",
"}"
],
"hook": "cb_cmds",
"name": "remote-option4-network-set",
"resp-syntax": [
"{",
" \"result\": 0,",
" \"text\": \"DHCPv4 option successfully set.\",",
" \"arguments\": {",
" \"options\": [",
" {",
" \"code\": <option code>,",
" \"space\": <option space>",
" }",
" ]",
" }",
"}"
],
"support": [
"kea-dhcp4"
]
}
{
"avail": "1.6.0",
"brief": [
"This command deletes a DHCPv4 address pool option from the configuration database."
],
"cmd-comment": [
"This command includes two lists with exactly one address pool specification and exactly one option specification comprising an option space name and code. Specifying an empty list, a value of ``null``, or a server tag will result in an error."
],
"cmd-syntax": [
"{",
" \"command\": \"remote-option4-pool-del\",",
" \"arguments\": {",
" \"pools\": [",
" {",
" \"pool\": <pool range or prefix>",
" }",
" ],",
" \"options\": [",
" {",
" \"code\": <option code>,",
" \"space\": <option space>",
" }",
" ],",
" \"remote\": {",
" <specification of the database to connect to>",
" }",
" }",
"}"
],
"hook": "cb_cmds",
"name": "remote-option4-pool-del",
"resp-syntax": [
"{",
" \"result\": 0,",
" \"text\": \"1 DHCPv4 option(s) deleted.\",",
" \"arguments\": {",
" \"count\": 1",
" }",
"}"
],
"support": [
"kea-dhcp4"
]
}
{
"avail": "1.6.0",
"brief": [
"This command creates or replaces a DHCPv4 address pool option in the configuration database."
],
"cmd-comment": [
"This command includes two lists with exactly address pool specification and exactly one option specification. Specifying an empty list, a value of ``null``, or a server tag will result in an error."
],
"cmd-syntax": [
"{",
" \"command\": \"remote-option4-pool-set\",",
" \"arguments\": {",
" \"pools\": [",
" {",
" \"pool\": <pool range or prefix>",
" }",
" ],",
" \"options\": [",
" {",
" <address pool option specification>",
" }",
" ],",
" \"remote\": {",
" <specification of the database to connect to>",
" }",
" }",
"}"
],
"hook": "cb_cmds",
"name": "remote-option4-pool-set",
"resp-syntax": [
"{",
" \"result\": 0,",
" \"text\": \"DHCPv4 option successfully set.\",",
" \"arguments\": {",
" \"options\": [",
" {",
" \"code\": <option code>,",
" \"space\": <option space>",
" }",
" ]",
" }",
"}"
],
"support": [
"kea-dhcp4"
]
}
{
"avail": "1.6.0",
"brief": [
"This command deletes a DHCPv4 subnet option from the configuration database."
],
"cmd-comment": [
"This command includes two lists with exactly one ID of the subnet and exactly one option specification, comprising an option name and code. Specifying an empty list, a value of ``null``, or a server tag will result in an error."
],
"cmd-syntax": [
"{",
" \"command\": \"remote-option4-subnet-del\",",
" \"arguments\": {",
" \"subnets\": [",
" {",
" \"id\": <subnet identifier>",
" }",
" ],",
" \"options\": [",
" {",
" \"code\": <option code>,",
" \"space\": <option space>",
" }",
" ],",
" \"remote\": {",
" <specification of the database to connect to>",
" }",
" }",
"}"
],
"hook": "cb_cmds",
"name": "remote-option4-subnet-del",
"resp-syntax": [
"{",
" \"result\": 0,",
" \"text\": \"1 DHCPv4 option(s) deleted.\",",
" \"arguments\": {",
" \"count\": 1",
" }",
"}"
],
"support": [
"kea-dhcp4"
]
}
{
"avail": "1.6.0",
"brief": [
"This command creates or replaces a DHCPv4 subnet option in the configuration database."
],
"cmd-comment": [
"The provided lists must contain exactly one ID of the subnet and one option specification. Specifying an empty list, a value of ``null``, or a server tag will result in an error."
],
"cmd-syntax": [
"{",
" \"command\": \"remote-option4-subnet-set\",",
" \"arguments\": {",
" \"subnets\": [",
" {",
" \"id\": <subnet identifier>",
" }",
" ],",
" \"options\": [",
" {",
" <subnet option specification>",
" }",
" ],",
" \"remote\": {",
" <specification of the database to connect to>",
" }",
" }",
"}"
],
"hook": "cb_cmds",
"name": "remote-option4-subnet-set",
"resp-syntax": [
"{",
" \"result\": 0,",
" \"text\": \"DHCPv4 option successfully set.\",",
" \"arguments\": {",
" \"options\": [",
" {",
" \"code\": <option code>,",
" \"space\": <option space>",
" }",
" ]",
" }",
"}"
],
"support": [
"kea-dhcp4"
]
}
{
"avail": "1.6.0",
"brief": [
"This command deletes a DHCPv6 shared network option from the configuration database."
],
"cmd-comment": [
"This command includes two lists with exactly one name of the shared network and exactly one option specification, comprising an option name and code. Specifying an empty list, a value of ``null``, or a server tag will result in an error."
],
"cmd-syntax": [
"{",
" \"command\": \"remote-option6-network-del\",",
" \"arguments\": {",
" \"shared-networks\": [",
" {",
" \"name\": <shared network name>",
" }",
" ],",
" \"options\": [",
" {",
" \"code\": <option code>,",
" \"space\": <option space>",
" }",
" ],",
" \"remote\": {",
" <specification of the database to connect to>",
" }",
" }",
"}"
],
"hook": "cb_cmds",
"name": "remote-option6-network-del",
"resp-syntax": [
"{",
" \"result\": 0,",
" \"text\": \"1 DHCPv6 option(s) deleted.\",",
" \"arguments\": {",
" \"count\": 1",
" }",
"}"
],
"support": [
"kea-dhcp6"
]
}
{
"avail": "1.6.0",
"brief": [
"This command creates or replaces a DHCPv6 shared network option in the configuration database."
],
"cmd-comment": [
"The provided lists must contain exactly one name of the shared network and one option specification. Specifying an empty list, a value of ``null``, or a server tag will result in an error."
],
"cmd-syntax": [
"{",
" \"command\": \"remote-option6-network-set\",",
" \"arguments\": {",
" \"shared-networks\": [",
" {",
" \"name\": <shared network name>",
" }",
" ],",
" \"options\": [",
" {",
" <shared network option specification>",
" }",
" ],",
" \"remote\": {",
" <specification of the database to connect to>",
" }",
" }",
"}"
],
"hook": "cb_cmds",
"name": "remote-option6-network-set",
"resp-syntax": [
"{",
" \"result\": 0,",
" \"text\": \"DHCPv6 option successfully set.\",",
" \"arguments\": {",
" \"options\": [",
" {",
" \"code\": <option code>,",
" \"space\": <option space>",
" }",
" ]",
" }",
"}"
],
"support": [
"kea-dhcp6"
]
}
{
"avail": "1.6.0",
"brief": [
"This command deletes a DHCPv6 prefix delegation pool option from the configuration database."
],
"cmd-comment": [
"This command includes two lists with exactly one prefix delegation pool specification and exactly one option specification, comprising an option name and code. Specifying an empty list, a value of ``null``, or a server tag will result in an error."
],
"cmd-syntax": [
"{",
" \"command\": \"remote-option6-pd-pool-del\",",
" \"arguments\": {",
" \"pd-pools\": [",
" {",
" \"prefix\": <pool prefix (address part)>",
" \"prefix-len\": <pool prefix (length part)>",
" }",
" ],",
" \"options\": [",
" {",
" \"code\": <option code>,",
" \"space\": <option space>",
" }",
" ],",
" \"remote\": {",
" <specification of the database to connect to>",
" }",
" }",
"}"
],
"hook": "cb_cmds",
"name": "remote-option6-pd-pool-del",
"resp-syntax": [
"{",
" \"result\": 0,",
" \"text\": \"1 DHCPv6 option(s) deleted.\",",
" \"arguments\": {",
" \"count\": 1",
" }",
"}"
],
"support": [
"kea-dhcp6"
]
}
{
"avail": "1.6.0",
"brief": [
"This command creates or replaces a DHCPv6 prefix delegation pool option in the configuration database."
],
"cmd-comment": [
"This command includes two lists with exactly one prefix delegation pool specification and exactly one option specification. Specifying an empty list, a value of ``null``, or a server tag will result in an error."
],
"cmd-syntax": [
"{",
" \"command\": \"remote-option6-pd-pool-set\",",
" \"arguments\": {",
" \"pd-pools\": [",
" {",
" \"prefix\": <pool prefix (address part)>",
" \"prefix-len\": <pool prefix (length part)>",
" }",
" ],",
" \"options\": [",
" {",
" <prefix delegation pool option specification>",
" }",
" ],",
" \"remote\": {",
" <specification of the database to connect to>",
" }",
" }",
"}"
],
"hook": "cb_cmds",
"name": "remote-option6-pd-pool-set",
"resp-syntax": [
"{",
" \"result\": 0,",
" \"text\": \"DHCPv6 option successfully set.\",",
" \"arguments\": {",
" \"options\": [",
" {",
" \"code\": <option code>,",
" \"space\": <option space>",
" }",
" ]",
" }",
"}"
],
"support": [
"kea-dhcp6"
]
}
{
"avail": "1.6.0",
"brief": [
"This command deletes a DHCPv6 address pool option from the configuration database."
],
"cmd-comment": [
"This command includes two lists with exactly one address pool specification and exactly one option specification, comprising an option name and code. Specifying an empty list, a value of ``null``, or a server tag will result in an error."
],
"cmd-syntax": [
"{",
" \"command\": \"remote-option6-pool-del\",",
" \"arguments\": {",
" \"pools\": [",
" {",
" \"pool\": <pool range or prefix>",
" }",
" ],",
" \"options\": [",
" {",
" \"code\": <option code>,",
" \"space\": <option space>",
" }",
" ],",
" \"remote\": {",
" <specification of the database to connect to>",
" }",
" }",
"}"
],
"hook": "cb_cmds",
"name": "remote-option6-pool-del",
"resp-syntax": [
"{",
" \"result\": 0,",
" \"text\": \"1 DHCPv6 option(s) deleted.\",",
" \"arguments\": {",
" \"count\": 1",
" }",
"}"
],
"support": [
"kea-dhcp6"
]
}
{
"avail": "1.6.0",
"brief": [
"This command creates or replaces a DHCPv6 address pool option in the configuration database."
],
"cmd-comment": [
"This command includes two lists with exactly address pool specification and exactly one option specification. Specifying an empty list, a value of ``null``, or a server tag will result in an error."
],
"cmd-syntax": [
"{",
" \"command\": \"remote-option6-pool-set\",",
" \"arguments\": {",
" \"pools\": [",
" {",
" \"pool\": <pool range or prefix>",
" }",
" ],",
" \"options\": [",
" {",
" <address pool option specification>",
" }",
" ],",
" \"remote\": {",
" <specification of the database to connect to>",
" }",
" }",
"}"
],
"hook": "cb_cmds",
"name": "remote-option6-pool-set",
"resp-syntax": [
"{",
" \"result\": 0,",
" \"text\": \"DHCPv6 option successfully set.\",",
" \"arguments\": {",
" \"options\": [",
" {",
" \"code\": <option code>,",
" \"space\": <option space>",
" }",
" ]",
" }",
"}"
],
"support": [
"kea-dhcp6"
]
}
{
"avail": "1.6.0",
"brief": [
"This command deletes a DHCPv6 subnet option from the configuration database."
],
"cmd-comment": [
"This command includes two lists with exactly one ID of the subnet and exactly one option specification, comprising an option name and code. Specifying an empty list, a value of ``null``, or a server tag will result in an error."
],
"cmd-syntax": [
"{",
" \"command\": \"remote-option6-subnet-del\",",
" \"arguments\": {",
" \"subnets\": [",
" {",
" \"id\": <subnet identifier>",
" }",
" ],",
" \"options\": [",
" {",
" \"code\": <option code>,",
" \"space\": <option space>",
" }",
" ],",
" \"remote\": {",
" <specification of the database to connect to>",
" }",
" }",
"}"
],
"hook": "cb_cmds",
"name": "remote-option6-subnet-del",
"resp-syntax": [
"{",
" \"result\": 0,",
" \"text\": \"1 DHCPv6 option(s) deleted.\",",
" \"arguments\": {",
" \"count\": 1",
" }",
"}"
],
"support": [
"kea-dhcp6"
]
}
{
"avail": "1.6.0",
"brief": [
"This command creates or replaces a DHCPv6 subnet option in the configuration database."
],
"cmd-comment": [
"The provided lists must contain exactly one ID of the subnet and one option specification. Specifying an empty list, a value of ``null``, or a server tag will result in an error."
],
"cmd-syntax": [
"{",
" \"command\": \"remote-option6-subnet-set\",",
" \"arguments\": {",
" \"subnets\": [",
" {",
" \"id\": <subnet identifier>",
" }",
" ],",
" \"options\": [",
" {",
" <subnet option specification>",
" }",
" ],",
" \"remote\": {",
" <specification of the database to connect to>",
" }",
" }",
"}"
],
"hook": "cb_cmds",
"name": "remote-option6-subnet-set",
"resp-syntax": [
"{",
" \"result\": 0,",
" \"text\": \"DHCPv6 option successfully set.\",",
" \"arguments\": {",
" \"options\": [",
" {",
" \"code\": <option code>,",
" \"space\": <option space>",
" }",
" ]",
" }",
"}"
],
"support": [
"kea-dhcp6"
]
}
This diff is collapsed.
......@@ -12,7 +12,7 @@
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
# import os
import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))
......@@ -151,9 +151,11 @@ latex_elements = {
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(master_doc, 'kea-arm.tex', 'Kea Administrator Reference Manual Documentation', author, 'manual'),
(messages_doc, 'kea-messages.tex', 'Kea Messages Manual', author, 'manual'),
]
if os.getenv("READTHEDOCS", "False") == "False":
latex_documents.append((messages_doc, 'kea-messages.tex', 'Kea Messages Manual', author, 'manual'))
# -- Options for manual page output ------------------------------------------
......@@ -193,10 +195,16 @@ def run_generate_docs(_):
sys.path.append(src_dir)
import api2doc
api2doc.generate(os.getenv('KEA_API_FILES').split(), os.path.join(src_dir, 'api.rst'))
with open(os.path.join(src_dir, 'api-files.txt')) as af:
api_files = af.read().split()
api_files = [os.path.abspath(os.path.join(src_dir, af)) for af in api_files]
api2doc.generate(api_files, os.path.join(src_dir, 'api.rst'))
import mes2doc
mes2doc.generate(os.getenv('KEA_MES_FILES').split(), os.path.join(src_dir, 'kea-messages.rst'))
with open(os.path.join(src_dir, 'mes-files.txt')) as mf:
mes_files = mf.read().split()
mes_files = [os.path.abspath(os.path.join(src_dir, '../..', mf)) for mf in mes_files]
mes2doc.generate(mes_files, os.path.join(src_dir, 'kea-messages.rst'))
# custom setup hook
......
src/hooks/dhcp/mysql_cb/mysql_cb_messages.mes
src/hooks/dhcp/lease_cmds/lease_cmds_messages.mes
src/hooks/dhcp/high_availability/ha_messages.mes
src/hooks/dhcp/stat_cmds/stat_cmds_messages.mes
src/hooks/dhcp/user_chk/user_chk_messages.mes
src/lib/config/config_messages.mes
src/lib/hooks/hooks_messages.mes
src/lib/dhcpsrv/dhcpsrv_messages.mes
src/lib/dhcpsrv/alloc_engine_messages.mes
src/lib/dhcpsrv/hosts_messages.mes
src/lib/http/http_messages.mes
src/lib/dhcp_ddns/dhcp_ddns_messages.mes
src/lib/database/db_messages.mes
src/lib/log/log_messages.mes
src/lib/log/logimpl_messages.mes
src/lib/log/tests/log_test_messages.mes
src/lib/process/process_messages.mes
src/lib/asiodns/asiodns_messages.mes
src/lib/eval/eval_messages.mes
src/bin/dhcp4/dhcp4_messages.mes
src/bin/agent/ca_messages.mes
src/bin/d2/d2_messages.mes
src/bin/dhcp6/dhcp6_messages.mes
src/bin/lfc/lfc_messages.mes
src/bin/netconf/netconf_messages.mes
......@@ -162,7 +162,7 @@ def get_system_revision():
"""Return tuple containing system name and its revision."""
system = platform.system()
if system == 'Linux':
system, revision, _ = platform.dist() # pylit: disable=deprecated-method
system, revision, _ = platform.dist() # pylint: disable=deprecated-method
if system == 'debian':
revision = revision.split('.')[0]
elif system == 'redhat':
......
......@@ -978,7 +978,7 @@ IntElement::equals(const Element& other) const {
bool
DoubleElement::equals(const Element& other) const {
return (other.getType() == Element::real) &&
(d == other.doubleValue());
(fabs(d - other.doubleValue()) < 1e-14);
}
bool
......
......@@ -79,6 +79,7 @@ int main() {
conn.reset(new Connection("sysrepo setup check"));
} catch (const sysrepo_exception& ex) {
cerr << "ERROR: Can't connect to sysrepo: " << ex.what() << endl;
cerr << "ERROR: Make sure the sysrepod daemon is running." << endl;
exit(-1);
}
......
......@@ -68,9 +68,12 @@ TEST_F(AdaptorConfigTest, loadExamples4) {
"classify.json",
"classify2.json",
"comments.json",
"config-backend.json",
"dhcpv4-over-dhcpv6.json",
"global-reservations.json",
"ha-load-balancing-primary.json",
"hooks.json",
"hooks-radius.json",
"leases-expiration.json",
"multiple-options.json",
"mysql-reservations.json",
......@@ -98,9 +101,11 @@ TEST_F(AdaptorConfigTest, loadExamples6) {
"classify.json",
"classify2.json",
"comments.json",
"config-backend.json",
"dhcpv4-over-dhcpv6.json",
"duid.json",
"global-reservations.json",
"ha-hot-standby.json",
"hooks.json",
"iPXE.json",
"leases-expiration.json",
......@@ -113,6 +118,7 @@ TEST_F(AdaptorConfigTest, loadExamples6) {
"simple.json",
"softwire46.json",
"stateless.json",
"tee-times.json",
"with-ddns.json" };
ElementPtr x;
......
......@@ -318,6 +318,12 @@ TEST_F(ConfigTest, validateIetf6) {
ASSERT_NO_THROW(load(validTreeIetf6));
EXPECT_TRUE(verify(validTreeIetf6));
// If this validation fails, make sure you have the model *and its
// dependencies* are installed. Note when you install ietf-dhcpv6-server
// module, its dependencies are semi-installed, which is not sufficient.
// This can be detected in output of sysrepoctl -l.
// Note the ietf-interfaces module. The conformance status must be
// "installed". "implemented" (installed as dependency) is not enough.
EXPECT_TRUE(validate());
}
......@@ -334,9 +340,12 @@ TEST_F(ConfigTest, examples4) {
"classify.json",
"classify2.json",
"comments.json",
"config-backend.json",
"dhcpv4-over-dhcpv6.json",
"global-reservations.json",
"ha-load-balancing-primary.json",
"hooks.json",
"hooks-radius.json",
"leases-expiration.json",
"multiple-options.json",
"mysql-reservations.json",
......@@ -372,9 +381,11 @@ TEST_F(ConfigTest, examples6) {
"classify.json",
"classify2.json",
"comments.json",
"config-backend.json",
"dhcpv4-over-dhcpv6.json",
"duid.json",
"global-reservations.json",
"ha-hot-standby.json",
"hooks.json",
"iPXE.json",
"leases-expiration.json",
......@@ -387,6 +398,7 @@ TEST_F(ConfigTest, examples6) {
"simple.json",