Kea  2.3.5-git
isc::ha::CommandCreator Class Reference

Holds a collection of functions which generate commands used for High Availability. More...

#include <command_creator.h>

Static Public Member Functions

static data::ConstElementPtr createDHCPDisable (const unsigned int max_period, const HAServerType &server_type)
 Creates dhcp-disable command for DHCP server. More...
 
static data::ConstElementPtr createDHCPEnable (const HAServerType &server_type)
 Creates dhcp-enable command for DHCP server. More...
 
static data::ConstElementPtr createHAReset (const HAServerType &server_type)
 Creates ha-reset command. More...
 
static data::ConstElementPtr createHeartbeat (const HAServerType &server_type)
 Creates ha-heartbeat command for DHCP server. More...
 
static data::ConstElementPtr createLease4Delete (const dhcp::Lease4 &lease4)
 Creates lease4-del command. More...
 
static data::ConstElementPtr createLease4GetAll ()
 Creates lease4-get-all command. More...
 
static data::ConstElementPtr createLease4GetPage (const dhcp::Lease4Ptr &lease4, const uint32_t limit)
 Creates lease4-get-page command. More...
 
static data::ConstElementPtr createLease4Update (const dhcp::Lease4 &lease4)
 Creates lease4-update command. More...
 
static data::ConstElementPtr createLease6BulkApply (const dhcp::Lease6CollectionPtr &leases, const dhcp::Lease6CollectionPtr &deleted_leases)
 Creates lease6-bulk-apply command. More...
 
static data::ConstElementPtr createLease6BulkApply (LeaseUpdateBacklog &leases)
 Creates lease6-bulk-apply command. More...
 
static data::ConstElementPtr createLease6Delete (const dhcp::Lease6 &lease6)
 Creates lease6-del command. More...
 
static data::ConstElementPtr createLease6GetAll ()
 Creates lease6-get-all command. More...
 
static data::ConstElementPtr createLease6GetPage (const dhcp::Lease6Ptr &lease6, const uint32_t limit)
 Creates lease6-get-page command. More...
 
static data::ConstElementPtr createLease6Update (const dhcp::Lease6 &lease6)
 Creates lease6-update command. More...
 
static data::ConstElementPtr createMaintenanceNotify (const bool cancel, const HAServerType &server_type)
 Creates ha-maintenance-notify command. More...
 
static data::ConstElementPtr createSyncCompleteNotify (const HAServerType &server_type)
 Creates ha-sync-complete-notify command. More...
 

Static Public Attributes

static std::unordered_set< std::string > ha_commands4_
 List of commands used by the High Availability in v4. More...
 
static std::unordered_set< std::string > ha_commands6_
 List of commands used by the High Availability in v6. More...
 

Detailed Description

Holds a collection of functions which generate commands used for High Availability.

Definition at line 22 of file command_creator.h.

Member Function Documentation

◆ createDHCPDisable()

ConstElementPtr isc::ha::CommandCreator::createDHCPDisable ( const unsigned int  max_period,
const HAServerType server_type 
)
static

Creates dhcp-disable command for DHCP server.

Parameters
max_periodThe max-period time the service can stay disabled before automatically transitioning to enabled state.
server_typetype of the DHCP server, i.e. v4 or v6.
Returns
Pointer to the JSON representation of the command.

Definition at line 41 of file command_creator.cc.

References isc::data::Element::create(), isc::config::createCommand(), and isc::data::Element::createMap().

Referenced by isc::ha::HAService::asyncDisableDHCPService().

+ Here is the call graph for this function:

◆ createDHCPEnable()

ConstElementPtr isc::ha::CommandCreator::createDHCPEnable ( const HAServerType server_type)
static

Creates dhcp-enable command for DHCP server.

Parameters
server_typetype of the DHCP server, i.e. v4 or v6.
Returns
Pointer to the JSON representation of the command.

Definition at line 56 of file command_creator.cc.

References isc::data::Element::create(), isc::config::createCommand(), and isc::data::Element::createMap().

Referenced by isc::ha::HAService::asyncEnableDHCPService().

+ Here is the call graph for this function:

◆ createHAReset()

ConstElementPtr isc::ha::CommandCreator::createHAReset ( const HAServerType server_type)
static

Creates ha-reset command.

Parameters
server_typetype of the DHCP server, i.e. v4 or v6.
Returns
Pointer to the JSON representation of the command.

Definition at line 66 of file command_creator.cc.

References isc::config::createCommand().

Referenced by isc::ha::HAService::asyncSendHAReset().

+ Here is the call graph for this function:

◆ createHeartbeat()

ConstElementPtr isc::ha::CommandCreator::createHeartbeat ( const HAServerType server_type)
static

Creates ha-heartbeat command for DHCP server.

Returns
Pointer to the JSON representation of the command.

Definition at line 73 of file command_creator.cc.

References isc::config::createCommand().

Referenced by isc::ha::HAService::asyncSendHeartbeat().

+ Here is the call graph for this function:

◆ createLease4Delete()

ConstElementPtr isc::ha::CommandCreator::createLease4Delete ( const dhcp::Lease4 lease4)
static

Creates lease4-del command.

Parameters
lease4Reference to a lease for which the command should be created.
Returns
Pointer to the JSON representation of the command.

Definition at line 90 of file command_creator.cc.

References isc::config::createCommand(), isc::util::DHCPv4, and isc::dhcp::Lease4::toElement().

Referenced by isc::ha::HAService::asyncSendLeaseUpdates(), and isc::ha::HAService::asyncSendLeaseUpdatesFromBacklog().

+ Here is the call graph for this function:

◆ createLease4GetAll()

ConstElementPtr isc::ha::CommandCreator::createLease4GetAll ( )
static

Creates lease4-get-all command.

Returns
Pointer to the JSON representation of the command.

Definition at line 99 of file command_creator.cc.

References isc::config::createCommand(), and isc::util::DHCPv4.

+ Here is the call graph for this function:

◆ createLease4GetPage()

ConstElementPtr isc::ha::CommandCreator::createLease4GetPage ( const dhcp::Lease4Ptr lease4,
const uint32_t  limit 
)
static

Creates lease4-get-page command.

Parameters
lease4Pointer to the last lease returned on the previous page of leases. This lease is used to set the value of the "from" parameter in the lease4-get-page command. If this command is sent to fetch the first page, the lease4 parameter should be set to null.
limitLimit of leases on the page.
Returns
Pointer to the JSON representation of the command.

Definition at line 106 of file command_creator.cc.

References isc::data::Element::create(), isc::config::createCommand(), isc::data::Element::createMap(), isc::util::DHCPv4, and isc_throw.

Referenced by isc::ha::HAService::asyncSyncLeasesInternal().

+ Here is the call graph for this function:

◆ createLease4Update()

ConstElementPtr isc::ha::CommandCreator::createLease4Update ( const dhcp::Lease4 lease4)
static

Creates lease4-update command.

It adds "force-create" parameter to the lease information to force the remote server to create the lease if it doesn't exist in its lease database.

Parameters
lease4Reference to a lease for which the command should be created.
Returns
Pointer to the JSON representation of the command.

Definition at line 80 of file command_creator.cc.

References isc::data::Element::create(), isc::config::createCommand(), isc::util::DHCPv4, and isc::dhcp::Lease4::toElement().

Referenced by isc::ha::HAService::asyncSendLeaseUpdates(), and isc::ha::HAService::asyncSendLeaseUpdatesFromBacklog().

+ Here is the call graph for this function:

◆ createLease6BulkApply() [1/2]

ConstElementPtr isc::ha::CommandCreator::createLease6BulkApply ( const dhcp::Lease6CollectionPtr leases,
const dhcp::Lease6CollectionPtr deleted_leases 
)
static

Creates lease6-bulk-apply command.

Parameters
leasesPointer to the collection of leases to be created or/and updated.
deleted_leasesPointer to the collection of leases to be deleted.
Returns
Pointer to the JSON representation of the command.

Definition at line 131 of file command_creator.cc.

References isc::config::createCommand(), isc::data::Element::createList(), isc::data::Element::createMap(), and isc::util::DHCPv6.

Referenced by isc::ha::HAService::asyncSendLeaseUpdates(), and isc::ha::HAService::asyncSendLeaseUpdatesFromBacklog().

+ Here is the call graph for this function:

◆ createLease6BulkApply() [2/2]

ConstElementPtr isc::ha::CommandCreator::createLease6BulkApply ( LeaseUpdateBacklog leases)
static

Creates lease6-bulk-apply command.

This command pops the leases from the backlog. As a result, the backlog is empty after calling this function.

Parameters
leasesReference to the collection of DHCPv6 leases backlog.
Returns
Pointer to the JSON representation of the command.

Definition at line 159 of file command_creator.cc.

References isc::config::createCommand(), isc::data::Element::createList(), isc::data::Element::createMap(), isc::util::DHCPv6, and isc::ha::LeaseUpdateBacklog::pop().

+ Here is the call graph for this function:

◆ createLease6Delete()

ConstElementPtr isc::ha::CommandCreator::createLease6Delete ( const dhcp::Lease6 lease6)
static

Creates lease6-del command.

Parameters
lease6Reference to a lease for which the command should be created.
Returns
Pointer to the JSON representation of the command.

Definition at line 195 of file command_creator.cc.

References isc::config::createCommand(), isc::util::DHCPv6, and isc::dhcp::Lease6::toElement().

+ Here is the call graph for this function:

◆ createLease6GetAll()

ConstElementPtr isc::ha::CommandCreator::createLease6GetAll ( )
static

Creates lease6-get-all command.

Returns
Pointer to the JSON representation of the command.

Definition at line 204 of file command_creator.cc.

References isc::config::createCommand(), and isc::util::DHCPv6.

+ Here is the call graph for this function:

◆ createLease6GetPage()

ConstElementPtr isc::ha::CommandCreator::createLease6GetPage ( const dhcp::Lease6Ptr lease6,
const uint32_t  limit 
)
static

Creates lease6-get-page command.

Parameters
lease6Pointer to the last lease returned on the previous page of leases. This lease is used to set the value of the "from" parameter in the lease6-get-page command. If this command is sent to fetch the first page, the lease6 parameter should be set to null.
limitLimit of leases on the page.
Returns
Pointer to the JSON representation of the command.

Definition at line 211 of file command_creator.cc.

References isc::data::Element::create(), isc::config::createCommand(), isc::data::Element::createMap(), isc::util::DHCPv6, and isc_throw.

Referenced by isc::ha::HAService::asyncSyncLeasesInternal().

+ Here is the call graph for this function:

◆ createLease6Update()

ConstElementPtr isc::ha::CommandCreator::createLease6Update ( const dhcp::Lease6 lease6)
static

Creates lease6-update command.

It adds "force-create" parameter to the lease information to force the remote server to create the lease if it doesn't exist in its lease database.

Parameters
lease6Reference to a lease for which the command should be created.
Returns
Pointer to the JSON representation of the command.

Definition at line 185 of file command_creator.cc.

References isc::data::Element::create(), isc::config::createCommand(), isc::util::DHCPv6, and isc::dhcp::Lease6::toElement().

+ Here is the call graph for this function:

◆ createMaintenanceNotify()

ConstElementPtr isc::ha::CommandCreator::createMaintenanceNotify ( const bool  cancel,
const HAServerType server_type 
)
static

Creates ha-maintenance-notify command.

Parameters
cancelboolean value indicating if the maintenance is being cancelled (true) or requested (false).
server_typetype of the DHCP server, i.e. v4 or v6.
Returns
Pointer to the JSON representation of the command.

Definition at line 236 of file command_creator.cc.

References isc::data::Element::create(), isc::config::createCommand(), and isc::data::Element::createMap().

Referenced by isc::ha::HAService::processMaintenanceCancel(), and isc::ha::HAService::processMaintenanceStart().

+ Here is the call graph for this function:

◆ createSyncCompleteNotify()

ConstElementPtr isc::ha::CommandCreator::createSyncCompleteNotify ( const HAServerType server_type)
static

Creates ha-sync-complete-notify command.

Parameters
server_typetype of the DHCP server, i.e. v4 or v6.
Returns
Pointer to the JSON representation of the command.

Definition at line 245 of file command_creator.cc.

References isc::data::Element::create(), isc::config::createCommand(), isc::data::Element::createList(), isc::util::DHCPv4, isc::data::Element::integer, isc_throw, and isc::data::Element::map.

Referenced by isc::ha::HAService::asyncSyncCompleteNotify().

+ Here is the call graph for this function:

Member Data Documentation

◆ ha_commands4_

unordered_set< string > isc::ha::CommandCreator::ha_commands4_
static
Initial value:
= {
"list-commands", "status-get",
"dhcp-disable", "dhcp-enable",
"ha-reset", "ha-heartbeat",
"lease4-update", "lease4-del",
"lease4-get-all", "lease4-get-page",
"ha-maintenance-notify", "ha-sync-complete-notify"
}

List of commands used by the High Availability in v4.

Definition at line 177 of file command_creator.h.

Referenced by isc::ha::HAService::HAService().

◆ ha_commands6_

unordered_set< string > isc::ha::CommandCreator::ha_commands6_
static
Initial value:
= {
"list-commands", "status-get",
"dhcp-disable", "dhcp-enable",
"ha-reset", "ha-heartbeat",
"lease6-bulk-apply",
"lease6-update", "lease6-del",
"lease6-get-all", "lease6-get-page",
"ha-maintenance-notify", "ha-sync-complete-notify"
}

List of commands used by the High Availability in v6.

Definition at line 180 of file command_creator.h.

Referenced by isc::ha::HAService::HAService().


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