2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-08-22 18:08:16 +00:00

[#3586] updated documentation

This commit is contained in:
Razvan Becheriu 2024-10-04 18:13:17 +03:00
parent 17b0dcfadb
commit 264b7100cb
40 changed files with 432 additions and 186 deletions

View File

@ -342,11 +342,11 @@
"parameters": { } "parameters": { }
}, },
{ {
// The MySql host backend hook library required for host storage. // The MySQL host backend hook library required for host storage.
"library": "/opt/lib/kea/hooks/libdhcp_mysql.so" "library": "/opt/lib/kea/hooks/libdhcp_mysql.so"
}, },
{ {
// The PgSql host backend hook library required for host storage. // The PostgreSQL host backend hook library required for host storage.
"library": "/opt/lib/kea/hooks/libdhcp_pgsql.so" "library": "/opt/lib/kea/hooks/libdhcp_pgsql.so"
} }
], ],

View File

@ -436,11 +436,11 @@
"parameters": { } "parameters": { }
}, },
{ {
// The MySql host backend hook library required for host storage. // The MySQL host backend hook library required for host storage.
"library": "/opt/lib/kea/hooks/libdhcp_mysql.so" "library": "/opt/lib/kea/hooks/libdhcp_mysql.so"
}, },
{ {
// The PgSql host backend hook library required for host storage. // The PostgreSQL host backend hook library required for host storage.
"library": "/opt/lib/kea/hooks/libdhcp_pgsql.so" "library": "/opt/lib/kea/hooks/libdhcp_pgsql.so"
} }
], ],

View File

@ -45,6 +45,13 @@
// "retry-on-startup": false, // "retry-on-startup": false,
// "connect-timeout": 3 // "connect-timeout": 3
// }, // },
// Since Kea.2.7.4, the libdhcp_mysql.so hook library must be loaded in order to
// store leases in the MySQL Lease Database Backend.
// Specify the lease backend hook library location.
// {
// // the MySQL lease backend hook library required for lease storage.
// "library": "/opt/lib/kea/hooks/libdhcp_mysql.so"
// },
// 3. PostgreSQL backend. Leases will be stored in PostgreSQL database. Make // 3. PostgreSQL backend. Leases will be stored in PostgreSQL database. Make
// sure it is up, running and properly initialized. See kea-admin documentation // sure it is up, running and properly initialized. See kea-admin documentation
@ -66,6 +73,13 @@
// "retry-on-startup": false, // "retry-on-startup": false,
// "connect-timeout": 3 // "connect-timeout": 3
// }, // },
// Since Kea.2.7.4, the libdhcp_pgsql.so hook library must be loaded in order to
// store leases in the PostgreSQL Lease Database Backend.
// Specify the lease backend hook library location.
// {
// // the PostgreSQL lease backend hook library required for lease storage.
// "library": "/opt/lib/kea/hooks/libdhcp_pgsql.so"
// },
// Addresses will be assigned with a lifetime of 4000 seconds. // Addresses will be assigned with a lifetime of 4000 seconds.
"valid-lifetime": 4000, "valid-lifetime": 4000,

View File

@ -1,6 +1,6 @@
// This is an example configuration file for the DHCPv4 server in Kea. // This is an example configuration file for the DHCPv4 server in Kea.
// It demonstrates how to enable Kea Configuration Backend using MySQL. // It demonstrates how to enable Kea Configuration Backend using MySQL.
// It requires that libdhcp_mysql_cb.so library is available and // It requires that libdhcp_mysql.so library is available and
// optionally libdhcp_cb_cmds.so hook library. // optionally libdhcp_cb_cmds.so hook library.
{ "Dhcp4": { "Dhcp4":
@ -23,8 +23,11 @@
}, },
// This parameter controls how the server accesses the configuration // This parameter controls how the server accesses the configuration
// database. Currently only one database type is available - "mysql". // database. Currently only two database types are available - "mysql" and
// It requires that the libdhcp_mysql_cb.so hook library is loaded. // "postgresql".
// Using "mysql" requires that the libdhcp_mysql.so hook library is loaded.
// If using "postgresql", then loading libdhcp_pgsql.so hook library is
// required.
"config-control": { "config-control": {
// A list of database backends to connect to. Currently, it is limited // A list of database backends to connect to. Currently, it is limited
// to a single backend. // to a single backend.
@ -57,11 +60,16 @@
// Hooks libraries that enable configuration backend are loaded. // Hooks libraries that enable configuration backend are loaded.
"hooks-libraries": [ "hooks-libraries": [
// The libdhcp_mysql_cb.so is required to use MySQL Configuration // The libdhcp_mysql.so is required to use MySQL Configuration
// Backend. // Backend.
{ {
"library": "/usr/local/lib/kea/hooks/libdhcp_mysql_cb.so" "library": "/usr/local/lib/kea/hooks/libdhcp_mysql.so"
} }
// If using PostgreSQL Configuration Backend, the "libdhcp_pgsql.so" is
// required.
// {
// "library": "/usr/local/lib/kea/hooks/libdhcp_pgsql.so"
// }
// The libdhcp_cb_cmds.so is optional. It allows for managing the // The libdhcp_cb_cmds.so is optional. It allows for managing the
// configuration in the database. If this library is not loaded, // configuration in the database. If this library is not loaded,
// the configuration can be managed directly using available // the configuration can be managed directly using available

View File

@ -69,11 +69,12 @@
"key-file": "my-key", "key-file": "my-key",
"cipher-list": "AES" "cipher-list": "AES"
}, },
// Since Kea.2.7.4, the libdhcp_mysql.so hook library must be loaded in order to
// store host reservations in the MySQL Host Database Backend.
// Specify the host backend hook library location. // Specify the host backend hook library location.
"hooks-libraries": [ "hooks-libraries": [
{ {
// the MySql host backend hook library required for host storage. // the MySQL host backend hook library required for host storage.
"library": "/opt/lib/kea/hooks/libdhcp_mysql.so" "library": "/opt/lib/kea/hooks/libdhcp_mysql.so"
} }
], ],

View File

@ -67,11 +67,12 @@
"host": "localhost" "host": "localhost"
} }
], ],
// Since Kea.2.7.4, the libdhcp_pgsql.so hook library must be loaded in order to
// store host reservations in the PostgreSQL Host Database Backend.
// Specify the host backend hook library location. // Specify the host backend hook library location.
"hooks-libraries": [ "hooks-libraries": [
{ {
// the PgSql host backend hook library required for host storage. // the PostgreSQL host backend hook library required for host storage.
"library": "/opt/lib/kea/hooks/libdhcp_pgsql.so" "library": "/opt/lib/kea/hooks/libdhcp_pgsql.so"
} }
], ],

View File

@ -284,11 +284,11 @@
"parameters": { } "parameters": { }
}, },
{ {
// The MySql host backend hook library required for host storage. // The MySQL host backend hook library required for host storage.
"library": "/opt/lib/kea/hooks/libdhcp_mysql.so" "library": "/opt/lib/kea/hooks/libdhcp_mysql.so"
}, },
{ {
// The PgSql host backend hook library required for host storage. // The PostgreSQL host backend hook library required for host storage.
"library": "/opt/lib/kea/hooks/libdhcp_pgsql.so" "library": "/opt/lib/kea/hooks/libdhcp_pgsql.so"
} }
], ],

View File

@ -378,11 +378,11 @@
"parameters": { } "parameters": { }
}, },
{ {
// The MySql host backend hook library required for host storage. // The MySQL host backend hook library required for host storage.
"library": "/opt/lib/kea/hooks/libdhcp_mysql.so" "library": "/opt/lib/kea/hooks/libdhcp_mysql.so"
}, },
{ {
// The PgSql host backend hook library required for host storage. // The PostgreSQL host backend hook library required for host storage.
"library": "/opt/lib/kea/hooks/libdhcp_pgsql.so" "library": "/opt/lib/kea/hooks/libdhcp_pgsql.so"
} }
], ],
@ -1161,7 +1161,7 @@
"prefixes": [ "2001:db8:2:abcd::/64" ], "prefixes": [ "2001:db8:2:abcd::/64" ],
// List of excluded IPv6 prefixes. // List of excluded IPv6 prefixes.
"excluded-prefixes": [ "2001:db8:2:abcd:1::/80" ], "excluded-prefixes": [ "2001:db8:2:abcd:1::/80" ],
// Reserved hostname. // Reserved hostname.
"hostname": "foo.example.com", "hostname": "foo.example.com",

View File

@ -45,6 +45,13 @@
// "retry-on-startup": false, // "retry-on-startup": false,
// "connect-timeout": 3 // "connect-timeout": 3
// }, // },
// Since Kea.2.7.4, the libdhcp_mysql.so hook library must be loaded in order to
// store leases in the MySQL Lease Database Backend.
// Specify the lease backend hook library location.
// {
// // the MySQL lease backend hook library required for lease storage.
// "library": "/opt/lib/kea/hooks/libdhcp_mysql.so"
// },
// 3. PostgreSQL backend. Leases will be stored in PostgreSQL database. Make // 3. PostgreSQL backend. Leases will be stored in PostgreSQL database. Make
// sure it is up, running and properly initialized. See kea-admin documentation // sure it is up, running and properly initialized. See kea-admin documentation
@ -66,6 +73,13 @@
// "retry-on-startup": false, // "retry-on-startup": false,
// "connect-timeout": 3 // "connect-timeout": 3
// }, // },
// Since Kea.2.7.4, the libdhcp_pgsql.so hook library must be loaded in order to
// store leases in the PostgreSQL Lease Database Backend.
// Specify the lease backend hook library location.
// {
// // the PostgreSQL lease backend hook library required for lease storage.
// "library": "/opt/lib/kea/hooks/libdhcp_pgsql.so"
// },
// Addresses will be assigned with preferred and valid lifetimes // Addresses will be assigned with preferred and valid lifetimes
// being 3000 and 4000, respectively. Client is told to start // being 3000 and 4000, respectively. Client is told to start

View File

@ -1,6 +1,6 @@
// This is an example configuration file for the DHCPv4 server in Kea. // This is an example configuration file for the DHCPv4 server in Kea.
// It demonstrates how to enable Kea Configuration Backend using MySQL. // It demonstrates how to enable Kea Configuration Backend using MySQL.
// It requires that libdhcp_mysql_cb.so library is available and // It requires that libdhcp_mysql.so library is available and
// optionally libdhcp_cb_cmds.so hook library. // optionally libdhcp_cb_cmds.so hook library.
{ "Dhcp6": { "Dhcp6":
@ -23,8 +23,11 @@
}, },
// This parameter controls how the server accesses the configuration // This parameter controls how the server accesses the configuration
// database. Currently only one database type is available - "mysql". // database. Currently only two database types are available - "mysql" and
// It requires that libdhcp_mysql_cb.so hook library is loaded. // "postgresql".
// Using "mysql" requires that the libdhcp_mysql.so hook library is loaded.
// If using "postgresql", then loading libdhcp_pgsql.so hook library is
// required.
"config-control": { "config-control": {
// A list of database backends to connect to. Currently, it is limited // A list of database backends to connect to. Currently, it is limited
// to a single backend. // to a single backend.
@ -57,11 +60,16 @@
// Hooks libraries that enable configuration backend are loaded. // Hooks libraries that enable configuration backend are loaded.
"hooks-libraries": [ "hooks-libraries": [
// The libdhcp_mysql_cb.so is required to use MySQL Configuration // The libdhcp_mysql.so is required to use MySQL Configuration
// Backend. // Backend.
{ {
"library": "/usr/local/lib/kea/hooks/libdhcp_mysql_cb.so" "library": "/usr/local/lib/kea/hooks/libdhcp_mysql.so"
} }
// If using PostgreSQL Configuration Backend, the "libdhcp_pgsql.so" is
// required.
// {
// "library": "/usr/local/lib/kea/hooks/libdhcp_pgsql.so"
// }
// The libdhcp_cb_cmds.so is optional. It allows for managing the // The libdhcp_cb_cmds.so is optional. It allows for managing the
// configuration in the database. If this library is not loaded, // configuration in the database. If this library is not loaded,
// the configuration can be managed directly using available // the configuration can be managed directly using available

View File

@ -57,11 +57,12 @@
"key-file": "my-key", "key-file": "my-key",
"cipher-list": "AES" "cipher-list": "AES"
}, },
// Since Kea.2.7.4, the libdhcp_mysql.so hook library must be loaded in order to
// store host reservations in the MySQL Host Database Backend.
// Specify the host backend hook library location. // Specify the host backend hook library location.
"hooks-libraries": [ "hooks-libraries": [
{ {
// the MySql host backend hook library required for host storage. // the MySQL host backend hook library required for host storage.
"library": "/opt/lib/kea/hooks/libdhcp_mysql.so" "library": "/opt/lib/kea/hooks/libdhcp_mysql.so"
} }
], ],

View File

@ -54,11 +54,12 @@
"host": "localhost" "host": "localhost"
} }
], ],
// Since Kea.2.7.4, the libdhcp_pgsql.so hook library must be loaded in order to
// store host reservations in the PostgreSQL Host Database Backend.
// Specify the host backend hook library location. // Specify the host backend hook library location.
"hooks-libraries": [ "hooks-libraries": [
{ {
// the PgSql host backend hook library required for host storage. // the PostgreSQL host backend hook library required for host storage.
"library": "/opt/lib/kea/hooks/libdhcp_pgsql.so" "library": "/opt/lib/kea/hooks/libdhcp_pgsql.so"
} }
], ],

View File

@ -14,10 +14,10 @@ this documentation, the term "Configuration Backend" may also refer to
the particular Kea module providing support to manage and fetch the the particular Kea module providing support to manage and fetch the
configuration information from the particular database type. For configuration information from the particular database type. For
example, the MySQL Configuration Backend is the logic implemented within example, the MySQL Configuration Backend is the logic implemented within
:ischooklib:`libdhcp_mysql_cb.so`, which provides a complete set of functions to :ischooklib:`libdhcp_mysql.so`, which provides a complete set of functions to
manage and fetch the configuration information from the MySQL database. manage and fetch the configuration information from the MySQL database.
The PostgreSQL Configuration Backend is the logic implemented within The PostgreSQL Configuration Backend is the logic implemented within
:ischooklib:`libdhcp_pgsql_cb.so`, which provides a complete set of functions to :ischooklib:`libdhcp_pgsql.so`, which provides a complete set of functions to
manage and fetch the configuration information from the PostgreSQL database. manage and fetch the configuration information from the PostgreSQL database.
From here on, the term "database" is used to refer to either a MySQL or From here on, the term "database" is used to refer to either a MySQL or
PostgreSQL database. PostgreSQL database.
@ -163,15 +163,17 @@ in two independent configuration sources.
CB Components CB Components
------------- -------------
To use a MySQL configuration backend, :ischooklib:`libdhcp_mysql_cb.so` To use a MySQL configuration backend, :ischooklib:`libdhcp_mysql.so` must
must be compiled and the DHCP servers must be configured to load it. be compiled and the DHCP servers must be configured to load it. It is compiled
It is compiled when the ``--with-mysql`` configuration switch is used during the Kea build. when the ``--with-mysql`` configuration switch is used during the Kea build.
The MySQL C client libraries must be installed, as explained in :ref:`dhcp-install-configure`. The MySQL C client libraries must be installed, as explained in
:ref:`dhcp-install-configure`.
To use a PostgreSQL configuration backend, :ischooklib:`libdhcp_pgsql_cb.so` must To use a PostgreSQL configuration backend, :ischooklib:`libdhcp_pgsql.so` must
be compiled and the DHCP servers must be configured to load it. It is compiled when be compiled and the DHCP servers must be configured to load it. It is compiled
the ``--with-pgsql`` configuration switch is used during the Kea build. The PostgreSQL when the ``--with-pgsql`` configuration switch is used during the Kea build.
C client libraries must be installed, as explained in :ref:`dhcp-install-configure`. The PostgreSQL C client libraries must be installed, as explained in
:ref:`dhcp-install-configure`.
.. note:: .. note::

View File

@ -660,6 +660,30 @@ error.
``host`` parameter is ``localhost``, but establishes a TCP connection ``host`` parameter is ``localhost``, but establishes a TCP connection
for ``127.0.0.1``. for ``127.0.0.1``.
Since Kea.2.7.4, the libdhcp_mysql.so hook library must be loaded in order to
store leases in the MySQL Lease Database Backend.
Specify the lease backend hook library location:
::
"Dhcp4": { "hooks-libraries": [
{
// the MySQL lease backend hook library required for lease storage.
"library": "/opt/lib/kea/hooks/libdhcp_mysql.so"
}, ... ], ... }
Since Kea.2.7.4, the libdhcp_pgsql.so hook library must be loaded in order to
store leases in the PostgreSQL Lease Database Backend.
Specify the lease backend hook library location.
::
"Dhcp4": { "hooks-libraries": [
{
// the PostgreSQL lease backend hook library required for lease storage.
"library": "/opt/lib/kea/hooks/libdhcp_pgsql.so"
}, ... ], ... }
.. _hosts4-storage: .. _hosts4-storage:
@ -893,6 +917,30 @@ the parameter is not specified.
The ``readonly`` parameter is only supported for MySQL and The ``readonly`` parameter is only supported for MySQL and
PostgreSQL databases. PostgreSQL databases.
Since Kea.2.7.4, the libdhcp_mysql.so hook library must be loaded in order to
store host reservations in the MySQL Host Database Backend.
Specify the lease backend hook library location:
::
"Dhcp4": { "hooks-libraries": [
{
// the MySQL host backend hook library required for host storage.
"library": "/opt/lib/kea/hooks/libdhcp_mysql.so"
}, ... ], ... }
Since Kea.2.7.4, the libdhcp_pgsql.so hook library must be loaded in order to
store host reservations in the PostgreSQL Host Database Backend.
Specify the lease backend hook library location.
::
"Dhcp4": { "hooks-libraries": [
{
// the PostgreSQL host backend hook library required for host storage.
"library": "/opt/lib/kea/hooks/libdhcp_pgsql.so"
}, ... ], ... }
Tuning Database Timeouts for Hosts Storage Tuning Database Timeouts for Hosts Storage
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@ -8272,29 +8320,61 @@ database:
.. code-block:: json .. code-block:: json
{ {
"Dhcp4": { "Dhcp4": {
"server-tag": "my DHCPv4 server", "server-tag": "my DHCPv4 server",
"config-control": { "config-control": {
"config-databases": [ "config-databases": [
{ {
"type": "mysql", "type": "mysql",
"name": "kea", "name": "kea",
"user": "kea", "user": "kea",
"password": "kea", "password": "kea",
"host": "192.0.2.1", "host": "192.0.2.1",
"port": 3302 "port": 3302
} }
], ],
"config-fetch-wait-time": 20 "config-fetch-wait-time": 20
}, },
"hooks-libraries": [ "hooks-libraries": [
{ {
"library": "/usr/local/lib/kea/hooks/libdhcp_mysql_cb.so" "library": "/usr/local/lib/kea/hooks/libdhcp_mysql.so"
}, { },
"library": "/usr/local/lib/kea/hooks/libdhcp_cb_cmds.so" {
"library": "/usr/local/lib/kea/hooks/libdhcp_cb_cmds.so"
}
]
}
}
The following snippet illustrates the use of a PostgreSQL database:
.. code-block:: json
{
"Dhcp4": {
"server-tag": "my DHCPv4 server",
"config-control": {
"config-databases": [
{
"type": "postgresql",
"name": "kea",
"user": "kea",
"password": "kea",
"host": "192.0.2.1",
"port": 3302
}
],
"config-fetch-wait-time": 20
},
"hooks-libraries": [
{
"library": "/usr/local/lib/kea/hooks/libdhcp_pgsql.so"
},
{
"library": "/usr/local/lib/kea/hooks/libdhcp_cb_cmds.so"
}
]
} }
]
}
} }
The ``config-control`` map contains two parameters. ``config-databases`` The ``config-control`` map contains two parameters. ``config-databases``
@ -8308,36 +8388,6 @@ during startup or reconfiguration, and fetches the configuration
available for this server from the database. This configuration is available for this server from the database. This configuration is
merged into the configuration read from the configuration file. merged into the configuration read from the configuration file.
The following snippet illustrates the use of a PostgreSQL database:
.. code-block:: json
{
"Dhcp4": {
"server-tag": "my DHCPv4 server",
"config-control": {
"config-databases": [
{
"type": "postgresql",
"name": "kea",
"user": "kea",
"password": "kea",
"host": "192.0.2.1",
"port": 5432
}
],
"config-fetch-wait-time": 20
},
"hooks-libraries": [
{
"library": "/usr/local/lib/kea/hooks/libdhcp_pgsql_cb.so"
}, {
"library": "/usr/local/lib/kea/hooks/libdhcp_cb_cmds.so"
}
]
}
}
.. note:: .. note::
Whenever there is a conflict between the parameters specified in the Whenever there is a conflict between the parameters specified in the
@ -8376,11 +8426,11 @@ waiting for the next fetch cycle.
In the configuration examples above, two hook libraries are loaded. The first In the configuration examples above, two hook libraries are loaded. The first
is a library which implements the configuration backend for a specific database is a library which implements the configuration backend for a specific database
type: :ischooklib:`libdhcp_mysql_cb.so` provides support for MySQL and :ischooklib:`libdhcp_pgsql_cb.so` type: :ischooklib:`libdhcp_mysql.so` provides support for MySQL and
provides support for PostgreSQL. The library loaded must match the database :ischooklib:`libdhcp_pgsql.so` provides support for PostgreSQL. The library
``type`` specified within the ``config-control`` parameter; otherwise an error loaded must match the database ``type`` specified within the ``config-control``
is logged when the server attempts to load its configuration, and the load parameter; otherwise an error is logged when the server attempts to load its
fails. configuration, and the load fails.
The second hook library, :ischooklib:`libdhcp_cb_cmds.so`, is optional. It should The second hook library, :ischooklib:`libdhcp_cb_cmds.so`, is optional. It should
be loaded when the Kea server instance is to be used to manage the be loaded when the Kea server instance is to be used to manage the

View File

@ -616,6 +616,30 @@ error.
``host`` parameter is ``localhost``, but establishes a TCP connection ``host`` parameter is ``localhost``, but establishes a TCP connection
for ``127.0.0.1``. for ``127.0.0.1``.
Since Kea.2.7.4, the libdhcp_mysql.so hook library must be loaded in order to
store leases in the MySQL Lease Database Backend.
Specify the lease backend hook library location:
::
"Dhcp6": { "hooks-libraries": [
{
// the MySQL lease backend hook library required for lease storage.
"library": "/opt/lib/kea/hooks/libdhcp_mysql.so"
}, ... ], ... }
Since Kea.2.7.4, the libdhcp_pgsql.so hook library must be loaded in order to
store leases in the PostgreSQL Lease Database Backend.
Specify the lease backend hook library location.
::
"Dhcp6": { "hooks-libraries": [
{
// the PostgreSQL lease backend hook library required for lease storage.
"library": "/opt/lib/kea/hooks/libdhcp_pgsql.so"
}, ... ], ... }
.. _hosts6-storage: .. _hosts6-storage:
@ -849,6 +873,30 @@ the parameter is not specified.
The ``readonly`` parameter is only supported for MySQL and The ``readonly`` parameter is only supported for MySQL and
PostgreSQL databases. PostgreSQL databases.
Since Kea.2.7.4, the libdhcp_mysql.so hook library must be loaded in order to
store host reservations in the MySQL Host Database Backend.
Specify the lease backend hook library location:
::
"Dhcp6": { "hooks-libraries": [
{
// the MySQL host backend hook library required for host storage.
"library": "/opt/lib/kea/hooks/libdhcp_mysql.so"
}, ... ], ... }
Since Kea.2.7.4, the libdhcp_pgsql.so hook library must be loaded in order to
store host reservations in the PostgreSQL Host Database Backend.
Specify the lease backend hook library location.
::
"Dhcp6": { "hooks-libraries": [
{
// the PostgreSQL host backend hook library required for host storage.
"library": "/opt/lib/kea/hooks/libdhcp_pgsql.so"
}, ... ], ... }
Tuning Database Timeouts for Hosts Storage Tuning Database Timeouts for Hosts Storage
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@ -8085,7 +8133,7 @@ database:
{ {
"Dhcp6": { "Dhcp6": {
"server-tag": "my DHCPv6 server", "server-tag": "my DHCPv6 server",
"config-control": { "config-control": {
"config-databases": [ "config-databases": [
{ {
@ -8101,7 +8149,38 @@ database:
}, },
"hooks-libraries": [ "hooks-libraries": [
{ {
"library": "/usr/local/lib/kea/hooks/libdhcp_mysql_cb.so" "library": "/usr/local/lib/kea/hooks/libdhcp_mysql.so"
},
{
"library": "/usr/local/lib/kea/hooks/libdhcp_cb_cmds.so"
}
]
}
}
The following snippet illustrates the use of a PostgreSQL database:
.. code-block:: json
{
"Dhcp6": {
"server-tag": "my DHCPv6 server",
"config-control": {
"config-databases": [
{
"type": "postgresql",
"name": "kea",
"user": "kea",
"password": "kea",
"host": "2001:db8:1::1",
"port": 3302
}
],
"config-fetch-wait-time": 20
},
"hooks-libraries": [
{
"library": "/usr/local/lib/kea/hooks/libdhcp_pgsql.so"
}, },
{ {
"library": "/usr/local/lib/kea/hooks/libdhcp_cb_cmds.so" "library": "/usr/local/lib/kea/hooks/libdhcp_cb_cmds.so"

View File

@ -4,19 +4,18 @@
``libdhcp_cb_cmds.so``: Configuration Backend Commands ``libdhcp_cb_cmds.so``: Configuration Backend Commands
====================================================== ======================================================
This hook library is used to manage Kea This hook library is used to manage Kea servers' configurations in a
servers' configurations in a configuration backend database. This library must configuration backend database. This library must be used in conjunction with
be used in conjunction with the available CB hook libraries implementing the available CB hook libraries implementing the common APIs to create, read,
the common APIs to create, read, update, and delete (CRUD) the update, and delete (CRUD) the configuration information in the respective
configuration information in the respective databases. For example: databases. For example: :ischooklib:`libdhcp_mysql.so` implements this API for
:ischooklib:`libdhcp_mysql_cb.so` implements this API for MySQL while MySQL while :ischooklib:`libdhcp_pgsql.so` implements this API for PostgreSQL.
:ischooklib:`libdhcp_pgsql_cb.so` implements this API for PostgreSQL.
To manage the configuration information in a MySQL database, both To manage the configuration information in a MySQL database, both
:ischooklib:`libdhcp_mysql_cb.so` and :ischooklib:`libdhcp_cb_cmds.so` :ischooklib:`libdhcp_mysql.so` and :ischooklib:`libdhcp_cb_cmds.so` must be
must be loaded by the server used for configuration management. loaded by the server used for configuration management.
To manage the configuration information in a PostgreSQL database, both To manage the configuration information in a PostgreSQL database, both
:ischooklib:`libdhcp_pgsql_cb.so` and :ischooklib:`libdhcp_cb_cmds.so` :ischooklib:`libdhcp_pgsql.so` and :ischooklib:`libdhcp_cb_cmds.so` must be
must be loaded by the server used for configuration management. loaded by the server used for configuration management.
More information on how to configure the Configuration Backend hook library for More information on how to configure the Configuration Backend hook library for
use with a MySQL or PostgreSQL database can be found in the :ref:`dhcp4-cb` use with a MySQL or PostgreSQL database can be found in the :ref:`dhcp4-cb`

View File

@ -1,19 +0,0 @@
.. ischooklib:: libdhcp_mysql_cb.so
.. _hooks-cb-mysql:
``libdhcp_mysql_cb.so``: Configuration Backend for MySQL
========================================================
This hook library works in conjunction with :ischooklib:`libdhcp_cb_cmds.so` to
implement the API to create, read, update, and delete (CRUD) the
configuration in a MySQL database. Please see :ref:`hooks-cb-cmds`
for more details.
.. note::
:ischooklib:`libdhcp_mysql_cb.so` is part of the open source code and is
available to every Kea user. However, this hook library only works
with :ischooklib:`libdhcp_cb_cmds.so`, which allows easy configuration
management with the use of API commands. :ischooklib:`libdhcp_cb_cmds.so`
is available only to ISC customers with a paid support contract; for more information
on subscription options, please complete the form at https://www.isc.org/contact.

View File

@ -1,19 +0,0 @@
.. ischooklib:: libdhcp_pgsql_cb.so
.. _hooks-cb-pgsql:
``libdhcp_pgsql_cb.so``: Configuration Backend for PostgreSQL
=============================================================
This hook library works in conjunction with :ischooklib:`libdhcp_cb_cmds.so` to
implement the API to create, read, update, and delete (CRUD) the
configuration in a PostgreSQL database. Please see :ref:`hooks-cb-cmds`
for more details.
.. note::
:ischooklib:`libdhcp_pgsql_cb.so` is part of the open source code and is
available to every Kea user. However, this hook library only works
with :ischooklib:`libdhcp_cb_cmds.so`, which allows easy configuration
management with the use of API commands. :ischooklib:`libdhcp_cb_cmds.so`
is available only to ISC customers with a paid support contract; for more information
on subscription options, please complete the form at https://www.isc.org/contact.

View File

@ -0,0 +1,24 @@
.. ischooklib:: libdhcp_mysql.so
.. _hooks-mysql:
``libdhcp_mysql.so``: Database Backend for MySQL
================================================
This hook library implements MySQL database storage for:
- Lease Backend
- Host Backend
- Configuration Backend
This hook library works in conjunction with :ischooklib:`libdhcp_cb_cmds.so` to
implement the API to create, read, update, and delete (CRUD) the configuration
in a MySQL database. Please see :ref:`hooks-cb-cmds` for more details.
.. note::
:ischooklib:`libdhcp_mysql.so` is part of the open source code and is
available to every Kea user. However, this hook library only works with
:ischooklib:`libdhcp_cb_cmds.so`, which allows easy configuration
management with the use of API commands. :ischooklib:`libdhcp_cb_cmds.so`
is available only to ISC customers with a paid support contract; for more
information on subscription options, please complete the form at
https://www.isc.org/contact.

View File

@ -0,0 +1,24 @@
.. ischooklib:: libdhcp_pgsql.so
.. _hooks-pgsql:
``libdhcp_pgsql.so``: Database Backend for PostgreSQL
=====================================================
This hook library implements PostgreSQL database storage for:
- Lease Backend
- Host Backend
- Configuration Backend
This hook library works in conjunction with :ischooklib:`libdhcp_cb_cmds.so` to
implement the API to create, read, update, and delete (CRUD) the configuration
in a PostgreSQL database. Please see :ref:`hooks-cb-cmds` for more details.
.. note::
:ischooklib:`libdhcp_pgsql.so` is part of the open source code and is
available to every Kea user. However, this hook library only works with
:ischooklib:`libdhcp_cb_cmds.so`, which allows easy configuration
management with the use of API commands. :ischooklib:`libdhcp_cb_cmds.so`
is available only to ISC customers with a paid support contract; for more
information on subscription options, please complete the form at
https://www.isc.org/contact.

View File

@ -593,10 +593,12 @@ loaded by the correct process per the table below.
| | | which packets receive a response. The limit can be applied | | | | which packets receive a response. The limit can be applied |
| | | per-client class or per-subnet. | | | | per-client class or per-subnet. |
+-----------------------------------------------------------+--------------+--------------------------------------------------------------+ +-----------------------------------------------------------+--------------+--------------------------------------------------------------+
| :ref:`MySQL Configuration Backend <hooks-cb-mysql>` | Kea open | This hook library is an implementation of the Kea | | :ref:`MySQL Configuration Backend <hooks-mysql>` | Kea open | This hook library is an implementation of the Kea Lease, |
| | source | Configuration Backend for MySQL. It uses a MySQL database as | | | source | Host and Configuration Backend for MySQL. It uses a |
| | | a repository for the Kea configuration information. Kea | | | | MySQL database as a repository for the Kea leases, host |
| | | servers use this library to fetch their configurations. | | | | reservations and configuration information. Kea servers use |
| | | this library to fetch their configurations if Configuration |
| | | Backend is used. |
+-----------------------------------------------------------+--------------+--------------------------------------------------------------+ +-----------------------------------------------------------+--------------+--------------------------------------------------------------+
| :ref:`PerfMon <hooks-perfmon>` | Kea open | With this hook library, :iscman:`kea-dhcp4` and | | :ref:`PerfMon <hooks-perfmon>` | Kea open | With this hook library, :iscman:`kea-dhcp4` and |
| CURRENTLY EXPERIMENTAL | source | :iscman:`kea-dhcp6` servers can track and report performance | | CURRENTLY EXPERIMENTAL | source | :iscman:`kea-dhcp6` servers can track and report performance |
@ -606,11 +608,12 @@ loaded by the correct process per the table below.
| | source | perform ping checks of candidate lease addresses before | | | source | perform ping checks of candidate lease addresses before |
| | customers | offering them to clients. | | | customers | offering them to clients. |
+-----------------------------------------------------------+--------------+--------------------------------------------------------------+ +-----------------------------------------------------------+--------------+--------------------------------------------------------------+
| :ref:`PostgreSQL Configuration Backend <hooks-cb-pgsql>` | Kea open | This hook library is an implementation of the Kea | | :ref:`PostgreSQL Database Backend <hooks-pgsql>` | Kea open | This hook library is an implementation of the Kea Lease, |
| | source | Configuration Backend for PostgreSQL. It uses a PostgreSQL | | | source | Host and Configuration Backend for PostgreSQL. It uses a |
| | | database as a repository for the Kea configuration | | | | PostgreSQL database as a repository for the Kea leases, host |
| | | information. Kea servers use this library to fetch their | | | | reservations and configuration information. Kea servers use |
| | | configurations. | | | | this library to fetch their configurations if Configuration |
| | | Backend is used. |
+-----------------------------------------------------------+--------------+--------------------------------------------------------------+ +-----------------------------------------------------------+--------------+--------------------------------------------------------------+
| :ref:`RADIUS <hooks-radius>` | ISC support | The RADIUS hook library allows Kea to interact with | | :ref:`RADIUS <hooks-radius>` | ISC support | The RADIUS hook library allows Kea to interact with |
| | customers | RADIUS servers using access and accounting mechanisms. The | | | customers | RADIUS servers using access and accounting mechanisms. The |
@ -685,10 +688,10 @@ sections.
.. include:: hooks-lease-query.rst .. include:: hooks-lease-query.rst
.. include:: hooks-legal-log.rst .. include:: hooks-legal-log.rst
.. include:: hooks-limits.rst .. include:: hooks-limits.rst
.. include:: hooks-cb-mysql.rst .. include:: hooks-mysql.rst
.. include:: hooks-perfmon.rst .. include:: hooks-perfmon.rst
.. include:: hooks-ping-check.rst .. include:: hooks-ping-check.rst
.. include:: hooks-cb-pgsql.rst .. include:: hooks-pgsql.rst
.. include:: hooks-radius.rst .. include:: hooks-radius.rst
.. include:: hooks-rbac.rst .. include:: hooks-rbac.rst
.. include:: hooks-run-script.rst .. include:: hooks-run-script.rst

View File

@ -374,7 +374,7 @@ libraries), or hook libraries (open source or premium).
| | | Forensic Logging | | | | Forensic Logging |
| | | hook library. | | | | hook library. |
+----------------------------------+---------------------------------------+--------------------------------+ +----------------------------------+---------------------------------------+--------------------------------+
| ``kea-dhcp4.mysql-cb-hooks``, | :ischooklib:`libdhcp_mysql_cb.so` | Used | | ``kea-dhcp4.mysql-cb-hooks``, | :ischooklib:`libdhcp_mysql.so` | Used |
| ``kea-dhcp6.mysql-cb-hooks`` | open-source hook library | to log messages | | ``kea-dhcp6.mysql-cb-hooks`` | open-source hook library | to log messages |
| | | related to the | | | | related to the |
| | | operation of the | | | | operation of the |
@ -382,6 +382,22 @@ libraries), or hook libraries (open source or premium).
| | | Backend hook | | | | Backend hook |
| | | library. | | | | library. |
+----------------------------------+---------------------------------------+--------------------------------+ +----------------------------------+---------------------------------------+--------------------------------+
| ``kea-dhcp4.mysql-hb-hooks``, | :ischooklib:`libdhcp_mysql.so` | Used |
| ``kea-dhcp6.mysql-hb-hooks`` | open-source hook library | to log messages |
| | | related to the |
| | | operation of the |
| | | MySQL Host |
| | | Backend hook |
| | | library. |
+----------------------------------+---------------------------------------+--------------------------------+
| ``kea-dhcp4.mysql-lb-hooks``, | :ischooklib:`libdhcp_mysql.so` | Used |
| ``kea-dhcp6.mysql-lb-hooks`` | open-source hook library | to log messages |
| | | related to the |
| | | operation of the |
| | | MySQL Lease |
| | | Backend hook |
| | | library. |
+----------------------------------+---------------------------------------+--------------------------------+
| ``kea-dhcp4.options``, | core | Used by the DHCP | | ``kea-dhcp4.options``, | core | Used by the DHCP |
| ``kea-dhcp6.options`` | | server to log | | ``kea-dhcp6.options`` | | server to log |
| | | messages related to | | | | messages related to |
@ -437,7 +453,7 @@ libraries), or hook libraries (open source or premium).
| | | the operation of the Ping | | | | the operation of the Ping |
| | | Check hook library. | | | | Check hook library. |
+----------------------------------+---------------------------------------+--------------------------------+ +----------------------------------+---------------------------------------+--------------------------------+
| ``kea-dhcp4.pgsql-cb-hooks``, | :ischooklib:`libdhcp_pgsql_cb.so` | Used | | ``kea-dhcp4.pgsql-cb-hooks``, | :ischooklib:`libdhcp_pgsql.so` | Used |
| ``kea-dhcp6.pgsql-cb-hooks`` | open-source hook library | to log messages | | ``kea-dhcp6.pgsql-cb-hooks`` | open-source hook library | to log messages |
| | | related to the | | | | related to the |
| | | operation of the | | | | operation of the |
@ -445,6 +461,22 @@ libraries), or hook libraries (open source or premium).
| | | Backend hook | | | | Backend hook |
| | | library. | | | | library. |
+----------------------------------+---------------------------------------+--------------------------------+ +----------------------------------+---------------------------------------+--------------------------------+
| ``kea-dhcp4.pgsql-hb-hooks``, | :ischooklib:`libdhcp_pgsql.so` | Used |
| ``kea-dhcp6.pgsql-hb-hooks`` | open-source hook library | to log messages |
| | | related to the |
| | | operation of the |
| | | PostgreSQL Host |
| | | Backend hook |
| | | library. |
+----------------------------------+---------------------------------------+--------------------------------+
| ``kea-dhcp4.pgsql-lb-hooks``, | :ischooklib:`libdhcp_pgsql.so` | Used |
| ``kea-dhcp6.pgsql-lb-hooks`` | open-source hook library | to log messages |
| | | related to the |
| | | operation of the |
| | | PostgreSQL Lease |
| | | Backend hook |
| | | library. |
+----------------------------------+---------------------------------------+--------------------------------+
| ``kea-dhcp4.run-script-hooks``, | :ischooklib:`libdhcp_run_script.so` | Used to log messages related | | ``kea-dhcp4.run-script-hooks``, | :ischooklib:`libdhcp_run_script.so` | Used to log messages related |
| ``kea-dhcp6.run-script-hooks`` | open-source hook library | to the operation of the | | ``kea-dhcp6.run-script-hooks`` | open-source hook library | to the operation of the |
| | | Run Script hook library. | | | | Run Script hook library. |

View File

@ -28,8 +28,8 @@ rst_arm_sources += arm/hooks-host-cmds.rst
rst_arm_sources += arm/hooks-lease-cmds.rst rst_arm_sources += arm/hooks-lease-cmds.rst
rst_arm_sources += arm/hooks-lease-query.rst rst_arm_sources += arm/hooks-lease-query.rst
rst_arm_sources += arm/hooks-limits.rst rst_arm_sources += arm/hooks-limits.rst
rst_arm_sources += arm/hooks-cb-mysql.rst rst_arm_sources += arm/hooks-mysql.rst
rst_arm_sources += arm/hooks-cb-pgsql.rst rst_arm_sources += arm/hooks-pgsql.rst
rst_arm_sources += arm/hooks-legal-log.rst rst_arm_sources += arm/hooks-legal-log.rst
rst_arm_sources += arm/hooks-perfmon.rst rst_arm_sources += arm/hooks-perfmon.rst
rst_arm_sources += arm/hooks-ping-check.rst rst_arm_sources += arm/hooks-ping-check.rst

View File

@ -124,8 +124,8 @@ exclude_patterns = [
'arm/hooks-legal-log.rst', 'arm/hooks-legal-log.rst',
'arm/hooks-gss-tsig.rst', 'arm/hooks-gss-tsig.rst',
'arm/hooks-host-cmds.rst', 'arm/hooks-host-cmds.rst',
'arm/hooks-cb-mysql.rst', 'arm/hooks-mysql.rst',
'arm/hooks-cb-pgsql.rst', 'arm/hooks-pgsql.rst',
'arm/hooks-limits.rst', 'arm/hooks-limits.rst',
'arm/hooks-rbac.rst', 'arm/hooks-rbac.rst',
'arm/hooks-run-script.rst', 'arm/hooks-run-script.rst',

View File

@ -7378,8 +7378,9 @@ TEST_F(Dhcp4ParserTest, configControlInfoNoFactory) {
// Should fail because "type=mysql" has no factories. // Should fail because "type=mysql" has no factories.
configure(config, CONTROL_RESULT_ERROR, configure(config, CONTROL_RESULT_ERROR,
"during update from config backend database: " "during update from config backend database: "
"The type of the configuration backend: " "The Kea server has not been compiled with support for database "
"'mysql' is not supported"); "type: mysql. Did you forget to use --with-mysql during "
"compilation or to load libdhcp_mysql hook library?");
} }
// This test verifies that configuration control info gets populated. // This test verifies that configuration control info gets populated.

View File

@ -8219,8 +8219,9 @@ TEST_F(Dhcp6ParserTest, configControlInfoNoFactory) {
// Should fail because "type=mysql" has no factories. // Should fail because "type=mysql" has no factories.
configure(config, CONTROL_RESULT_ERROR, configure(config, CONTROL_RESULT_ERROR,
"during update from config backend database: " "during update from config backend database: "
"The type of the configuration backend: " "The Kea server has not been compiled with support for database "
"'mysql' is not supported"); "type: mysql. Did you forget to use --with-mysql during "
"compilation or to load libdhcp_mysql hook library?");
} }
// This test verifies that configuration control info gets populated. // This test verifies that configuration control info gets populated.

View File

@ -276,6 +276,10 @@
// "parameters": { // "parameters": {
// "identifier-expression": "relay4[2].hex" // "identifier-expression": "relay4[2].hex"
// } // }
// },
// {
// // the MySQL host backend hook library required for host storage.
// "library": "@libdir@/kea/hooks/libdhcp_mysql.so"
// } // }
// ], // ],

View File

@ -222,6 +222,10 @@
// "parameters": { // "parameters": {
// "identifier-expression": "relay6[0].option[37].hex" // "identifier-expression": "relay6[0].option[37].hex"
// } // }
// },
// {
// // the MySQL host backend hook library required for host storage.
// "library": "@libdir@/kea/hooks/libdhcp_mysql.so"
// } // }
// ], // ],

View File

@ -19,7 +19,7 @@ namespace dhcp {
class MySqlConfigBackendDHCPv4Impl; class MySqlConfigBackendDHCPv4Impl;
/// @brief Implementation of the MySql Configuration Backend for /// @brief Implementation of the MySQL Configuration Backend for
/// Kea DHCPv4 server. /// Kea DHCPv4 server.
/// ///
/// All POSIX times specified in the methods belonging to this /// All POSIX times specified in the methods belonging to this

View File

@ -19,7 +19,7 @@ namespace dhcp {
class MySqlConfigBackendDHCPv6Impl; class MySqlConfigBackendDHCPv6Impl;
/// @brief Implementation of the MySql Configuration Backend for /// @brief Implementation of the MySQL Configuration Backend for
/// Kea DHCPv6 server. /// Kea DHCPv6 server.
/// ///
/// All POSIX times specified in the methods belonging to this /// All POSIX times specified in the methods belonging to this

View File

@ -1823,7 +1823,7 @@ private:
my_bool user_context_null_; ///< Used when user context is null my_bool user_context_null_; ///< Used when user context is null
}; };
/// @brief MySql derivation of the statistical lease data query /// @brief MySQL derivation of the statistical lease data query
/// ///
/// This class is used to recalculate lease statistics for MySQL /// This class is used to recalculate lease statistics for MySQL
/// lease storage. It does so by executing a query which returns a result /// lease storage. It does so by executing a query which returns a result

View File

@ -19,7 +19,7 @@ namespace dhcp {
class PgSqlConfigBackendDHCPv4Impl; class PgSqlConfigBackendDHCPv4Impl;
/// @brief Implementation of the PgSql Configuration Backend for /// @brief Implementation of the PostgreSQL Configuration Backend for
/// Kea DHCPv4 server. /// Kea DHCPv4 server.
/// ///
/// All POSIX times specified in the methods belonging to this /// All POSIX times specified in the methods belonging to this

View File

@ -19,7 +19,7 @@ namespace dhcp {
class PgSqlConfigBackendDHCPv6Impl; class PgSqlConfigBackendDHCPv6Impl;
/// @brief Implementation of the PgSql Configuration Backend for /// @brief Implementation of the PostgreSQL Configuration Backend for
/// Kea DHCPv6 server. /// Kea DHCPv6 server.
/// ///
/// All POSIX times specified in the methods belonging to this /// All POSIX times specified in the methods belonging to this

View File

@ -1335,7 +1335,7 @@ private:
//@} //@}
}; };
/// @brief Base PgSql derivation of the statistical lease data query /// @brief Base PostgreSQL derivation of the statistical lease data query
/// ///
/// This class provides the functionality such as results storage and row /// This class provides the functionality such as results storage and row
/// fetching common to fulfilling the statistical lease data query. /// fetching common to fulfilling the statistical lease data query.

View File

@ -162,6 +162,14 @@ public:
// No match? // No match?
if (index == factories_.end()) { if (index == factories_.end()) {
if ((db_type == "mysql") || (db_type == "postgresql")) {
std::string with = (db_type == "postgresql" ? "pgsql" : db_type);
isc_throw(db::InvalidType, "The Kea server has not been compiled with "
"support for configuration database type: " << db_type
<< ". Did you forget to use --with-"
<< with << " during compilation or to load libdhcp_"
<< with << " hook library?");
}
isc_throw(db::InvalidType, "The type of the configuration backend: '" << isc_throw(db::InvalidType, "The type of the configuration backend: '" <<
db_type << "' is not supported"); db_type << "' is not supported");
} }

View File

@ -23,13 +23,17 @@
- The MySQL lease manager uses the freely available MySQL as its backend - The MySQL lease manager uses the freely available MySQL as its backend
database. This is not included in Kea DHCP by default: database. This is not included in Kea DHCP by default:
the \--with-mysql switch must be supplied to "configure" for support the \--with-mysql switch must be supplied to "configure" for support to be
to be compiled into the software. compiled into the software. This will also compile the "libdhcp_mysql.so" hook
library which must be loaded by adding it to the "hooks-libraries"
configuration parameter.
- The PostgreSQL lease manager uses the freely available PostgreSQL as its - The PostgreSQL lease manager uses the freely available PostgreSQL as its
backend database. This is not included in Kea DHCP by default: backend database. This is not included in Kea DHCP by default:
the \--with-pgsql switch must be supplied to "configure" for the \--with-pgsql switch must be supplied to "configure" for support to be
support to be compiled into the software. compiled into the software. This will also compile the "libdhcp_pgsql.so" hook
library which must be loaded by adding it to the "hooks-libraries"
configuration parameter.
@section dhcpdb-instantiation Instantiation of Lease Managers @section dhcpdb-instantiation Instantiation of Lease Managers

View File

@ -49,10 +49,11 @@ HostDataSourceFactory::add(HostDataSourceList& sources,
if (index == map_.end()) { if (index == map_.end()) {
if ((db_type == "mysql") || (db_type == "postgresql")) { if ((db_type == "mysql") || (db_type == "postgresql")) {
string with = (db_type == "postgresql" ? "pgsql" : db_type); string with = (db_type == "postgresql" ? "pgsql" : db_type);
isc_throw(InvalidType, "The type of host backend: '" << db_type isc_throw(InvalidType, "The Kea server has not been compiled with "
<< "' is not compiled in. Did you forget to use --with-" "support for host database type: " << db_type
<< ". Did you forget to use --with-"
<< with << " during compilation or to load libdhcp_" << with << " during compilation or to load libdhcp_"
<< with << "_hb hook library?"); << with << " hook library?");
} }
isc_throw(InvalidType, "The type of host backend: '" << isc_throw(InvalidType, "The type of host backend: '" <<
db_type << "' is not supported"); db_type << "' is not supported");

View File

@ -64,10 +64,10 @@ LeaseMgrFactory::create(const std::string& dbaccess) {
LOG_ERROR(dhcpsrv_logger, DHCPSRV_UNKNOWN_DB).arg(db_type); LOG_ERROR(dhcpsrv_logger, DHCPSRV_UNKNOWN_DB).arg(db_type);
string with = (db_type == "postgresql" ? "pgsql" : db_type); string with = (db_type == "postgresql" ? "pgsql" : db_type);
isc_throw(InvalidType, "The Kea server has not been compiled with " isc_throw(InvalidType, "The Kea server has not been compiled with "
"support for database type: " << db_type "support for lease database type: " << db_type
<< ". Did you forget to use --with-" << ". Did you forget to use --with-"
<< with << " during compilation or to load libdhcp_" << with << " during compilation or to load libdhcp_"
<< with << "_lb hook library?"); << with << " hook library?");
} }
// Get here on no match // Get here on no match
LOG_ERROR(dhcpsrv_logger, DHCPSRV_UNKNOWN_DB).arg(parameters[type]); LOG_ERROR(dhcpsrv_logger, DHCPSRV_UNKNOWN_DB).arg(parameters[type]);

View File

@ -151,7 +151,7 @@ documentation.
@subsection postgreSQLHostMgr PostgreSQL Host Reservation Management @subsection postgreSQLHostMgr PostgreSQL Host Reservation Management
Storing and retrieving host reservations within a PostgreSQL schema is Storing and retrieving host reservations within a PostgreSQL schema is
provided by the class, \ref isc::dhcp::PgSqlHostDataSource, a derivation of provided by the class, isc::dhcp::PgSqlHostDataSource, a derivation of
\ref isc::dhcp::BaseHostDataSource and is depicted in the following \ref isc::dhcp::BaseHostDataSource and is depicted in the following
class diagram: class diagram:

View File

@ -25,7 +25,7 @@
" \"disabled-by-remote-command\": [],", " \"disabled-by-remote-command\": [],",
" \"disabled-by-user\": false,", " \"disabled-by-user\": false,",
" \"globally-disabled\": false", " \"globally-disabled\": false",
" }", " },",
" \"extended-info-tables\": <whether relay information is held in lease tables>,", " \"extended-info-tables\": <whether relay information is held in lease tables>,",
" \"high-availability\": [", " \"high-availability\": [",
" {", " {",
@ -47,7 +47,7 @@
" \"in-touch\": <indicates if this server communicated with partner>,", " \"in-touch\": <indicates if this server communicated with partner>,",
" \"last-scopes\": <list of scopes served by partner>,", " \"last-scopes\": <list of scopes served by partner>,",
" \"last-state\": <HA state name of the partner>,", " \"last-state\": <HA state name of the partner>,",
" \"role\": <partner role>", " \"role\": <partner role>,",
" \"server-name\": <name of the partner server>,", " \"server-name\": <name of the partner server>,",
" \"system-time\": <system time in format '%Y-%m-%d %H:%M:%S' on UTC timezone>,", " \"system-time\": <system time in format '%Y-%m-%d %H:%M:%S' on UTC timezone>,",
" \"unacked-clients\": <number of unacked clients>,", " \"unacked-clients\": <number of unacked clients>,",
@ -64,9 +64,9 @@
" \"sockets\": {", " \"sockets\": {",
" \"errors\": <list of errors received during the last attempt to open all sockets; only appears when status is failed or retrying>,", " \"errors\": <list of errors received during the last attempt to open all sockets; only appears when status is failed or retrying>,",
" \"status\": <ready, retrying, or failed>", " \"status\": <ready, retrying, or failed>",
" }", " },",
" \"thread-pool-size\": 4,", " \"thread-pool-size\": 4,",
" \"uptime\": <uptime in seconds>,", " \"uptime\": <uptime in seconds>",
" }", " }",
"}" "}"
], ],