12 #include <boost/pointer_cast.hpp>
21 CommandCreator::createDHCPDisable(
const unsigned int max_period,
27 args->set(
"max-period",
Element::create(
static_cast<long int>(max_period)));
30 insertService(command, server_type);
35 CommandCreator::createDHCPEnable(
const HAServerType& server_type) {
37 insertService(command, server_type);
44 insertService(command, server_type);
49 CommandCreator::createLease4Update(
const Lease4& lease4) {
51 insertLeaseExpireTime(lease_as_json);
54 insertService(command, HAServerType::DHCPv4);
59 CommandCreator::createLease4Delete(
const Lease4& lease4) {
61 insertLeaseExpireTime(lease_as_json);
63 insertService(command, HAServerType::DHCPv4);
68 CommandCreator::createLease4GetAll() {
70 insertService(command, HAServerType::DHCPv4);
75 CommandCreator::createLease4GetPage(
const Lease4Ptr& last_lease4,
76 const uint32_t limit) {
90 args->set(
"from", from_element);
91 args->set(
"limit", limit_element);
95 insertService(command, HAServerType::DHCPv4);
100 CommandCreator::createLease6Update(
const Lease6& lease6) {
102 insertLeaseExpireTime(lease_as_json);
105 insertService(command, HAServerType::DHCPv6);
110 CommandCreator::createLease6Delete(
const Lease6& lease6) {
112 insertLeaseExpireTime(lease_as_json);
114 insertService(command, HAServerType::DHCPv6);
119 CommandCreator::createLease6GetAll() {
121 insertService(command, HAServerType::DHCPv6);
126 CommandCreator::createLease6GetPage(
const Lease6Ptr& last_lease6,
127 const uint32_t limit) {
141 args->set(
"from", from_element);
142 args->set(
"limit", limit_element);
146 insertService(command, HAServerType::DHCPv6);
151 CommandCreator::insertLeaseExpireTime(
ElementPtr& lease) {
153 (!lease->contains(
"cltt") || (lease->get(
"cltt")->getType() !=
Element::integer) ||
154 (!lease->contains(
"valid-lft") ||
159 int64_t cltt = lease->get(
"cltt")->intValue();
160 int64_t valid_lifetime = lease->get(
"valid-lft")->intValue();
161 int64_t expire = cltt + valid_lifetime;
163 lease->remove(
"cltt");
170 const std::string service_name = (server_type == HAServerType::DHCPv4 ?
"dhcp4" :
"dhcp6");
178 (boost::const_pointer_cast<Element>(command))->set(
"service", service);