Kea: isc::dhcp::CBControlDHCPv4 Class Reference

| Kea 3.0.3-git

isc::dhcp::CBControlDHCPv4 Class Reference

Implementation of the mechanisms to control the use of the Configuration Backends by the DHCPv4 server. More...

`#include <cb_ctl_dhcp4.h>`

Inheritance diagram for isc::dhcp::CBControlDHCPv4:
[legend]

## Protected Member Functions
virtual void | databaseConfigApply (const db::BackendSelector &backend_selector, const db::ServerSelector &server_selector, const boost::posix_time::ptime &lb_modification_time, const db::AuditEntryCollection &audit_entries)
| DHCPv4 server specific method to fetch and apply back end configuration into the local configuration.
Protected Member Functions inherited from isc::dhcp::CBControlDHCP< ConfigBackendDHCPv4Mgr >
void | translateAndAddGlobalsToConfig (SrvConfigPtr external_cfg, data::StampedValueCollection &cb_globals) const
| It translates the top level map parameters from flat naming format (e.g.
Protected Member Functions inherited from isc::process::CBControlBase< ConfigBackendDHCPv4Mgr >
db::AuditEntryCollection | fetchConfigElement (const db::AuditEntryCollection &audit_entries, const std::string &object_type) const
| Returns audit entries for new or updated configuration elements of specific type to be fetched from the database.
ConfigBackendDHCPv4Mgr & | getMgr () const
| Returns the instance of the Config Backend Manager used by this object.
void | updateLastAuditRevisionTimeId (const db::AuditEntryCollection &audit_entries)
| Updates timestamp of the most recent audit entry fetched from the database.

## Additional Inherited Members
Public Types inherited from isc::process::CBControlBase< ConfigBackendDHCPv4Mgr >
enum | FetchMode
| Fetch mode used in invocations to `databaseConfigFetch`. More...
Public Member Functions inherited from isc::dhcp::CBControlDHCP< ConfigBackendDHCPv4Mgr >
| CBControlDHCP ()
| Constructor.
Public Member Functions inherited from isc::process::CBControlBase< ConfigBackendDHCPv4Mgr >
| CBControlBase ()
| Constructor.
virtual | ~CBControlBase ()
| Virtual destructor.
bool | databaseConfigConnect (const ConfigPtr &srv_cfg)
| (Re)connects to the specified configuration backends.
void | databaseConfigDisconnect ()
| Disconnects from the configuration backends.
virtual void | databaseConfigFetch (const ConfigPtr &srv_cfg, const FetchMode &fetch_mode=FetchMode::FETCH_ALL)
| Fetches the entire or partial configuration from the database.
void | reset ()
| Resets the state of this object.
Static Public Member Functions inherited from isc::dhcp::CBControlDHCP< ConfigBackendDHCPv4Mgr >
static bool | translateName (std::string const &name, std::string &param_name, std::string &sub_param_name)
| It translates the top level map parameters from flat naming format (e.g.
Static Protected Member Functions inherited from isc::process::CBControlBase< ConfigBackendDHCPv4Mgr >
static boost::posix_time::ptime | getInitialAuditRevisionTime ()
| Convenience method returning initial timestamp to set the `last_audit_revision_time_` to.
Protected Attributes inherited from isc::process::CBControlBase< ConfigBackendDHCPv4Mgr >
uint64_t | last_audit_revision_id_
| Stores the most recent audit revision identifier.
boost::posix_time::ptime | last_audit_revision_time_
| Stores the most recent audit revision timestamp.

## Detailed Description

Implementation of the mechanisms to control the use of the Configuration Backends by the DHCPv4 server.

It implements fetching and merging DHCPv4 server configuration from the database into the staging or current configuration.

Template Parameters

  ConfigBackendMgrType | Type of the Config Backend Manager used by the server implementing this class. For example, for the DHCPv4 server it will be `ConfigBackendDHCPv4Mgr`.

Definition at line 26 of file cb_ctl_dhcp4.h.

## Member Function Documentation

## ◆ databaseConfigApply()

void isc::dhcp::CBControlDHCPv4::databaseConfigApply | ( | const db::BackendSelector & | backend_selector,
|  | const db::ServerSelector & | server_selector,
|  | const boost::posix_time::ptime & | lb_modification_time,
|  | const db::AuditEntryCollection & | audit_entries )
| protectedvirtual

DHCPv4 server specific method to fetch and apply back end configuration into the local configuration.

Parameters

  backend_selector | Backend selector.
  server_selector | Server selector.
  lb_modification_time | Lower bound modification time for the configuration elements to be fetched.
  audit_entries | Audit entries fetched from the database since the last configuration update. This collection is empty if there were no updates.

Implements isc::process::CBControlBase< ConfigBackendDHCPv4Mgr >.

Definition at line 47 of file cb_ctl_dhcp4.cc.

References isc::dhcp::CfgGlobals::ALLOCATOR, isc::data::Element::boolean, isc::hooks::HooksManager::callCallouts(), isc::hooks::HooksManager::calloutsPresent(), isc::data::Element::create(), isc::hooks::HooksManager::createCalloutHandle(), isc::dhcp::CfgMgr::createExternalCfg(), isc::dhcp::ClientClassDictionary::createOptions(), isc::db::AuditEntry::DELETE, isc::dhcp::DHCPSRV_CFGMGR_CONFIG4_MERGED, isc::dhcp::DHCPSRV_CFGMGR_IPV4_RESERVATIONS_NON_UNIQUE_IGNORED, isc::dhcp::dhcpsrv_logger, isc::dhcp::ClientClassDictionary::encapsulateOptions(), isc::process::CBControlBase< ConfigBackendDHCPv4Mgr >::fetchConfigElement(), isc::dhcp::CfgMgr::getCurrentCfg(), isc::process::CBControlBase< ConfigBackendDHCPv4Mgr >::getMgr(), isc::dhcp::CfgMgr::getStagingCfg(), isc::dhcp::SimpleParser4::GLOBAL4_DEFAULTS, isc::process::hasObjectId(), isc::dhcp::ClientClassDictionary::initMatchExpr(), isc::dhcp::CfgMgr::instance(), isc::dhcp::HostMgr::instance(), LOG_INFO, LOG_WARN, isc::dhcp::CfgMgr::mergeIntoCurrentCfg(), isc::dhcp::CfgMgr::mergeIntoStagingCfg(), isc::data::Element::string, and isc::dhcp::CBControlDHCP< ConfigBackendDHCPv4Mgr >::translateAndAddGlobalsToConfig().

Here is the call graph for this function:

The documentation for this class was generated from the following files:

- cb_ctl_dhcp4.h
- cb_ctl_dhcp4.cc