Kea 2.5.8
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:

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< ConfigBackendMgrType >
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)=0
 Server specific method to fetch and apply back end configuration into the local configuration.
 
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.
 
ConfigBackendMgrType & 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< ConfigBackendMgrType >
enum class  FetchMode { FETCH_ALL , FETCH_UPDATE }
 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< ConfigBackendMgrType >
 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< ConfigBackendMgrType >
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< ConfigBackendMgrType >
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
ConfigBackendMgrTypeType 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_selectorBackend selector.
server_selectorServer selector.
lb_modification_timeLower bound modification time for the configuration elements to be fetched.
audit_entriesAudit entries fetched from the database since the last configuration update. This collection is empty if there were no updates.

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

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::dhcp::DHCPSRV_CFGMGR_CONFIG4_MERGED, isc::dhcp::DHCPSRV_CFGMGR_IPV4_RESERVATIONS_NON_UNIQUE_IGNORED, isc::dhcp::dhcpsrv_logger, isc::process::CBControlBase< ConfigBackendMgrType >::fetchConfigElement(), isc::dhcp::CfgMgr::getCurrentCfg(), isc::process::CBControlBase< ConfigBackendMgrType >::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: