Kea  1.5.0
cfg_consistency.h
Go to the documentation of this file.
1 // Copyright (C) 2018 Internet Systems Consortium, Inc. ("ISC")
2 //
3 // This Source Code Form is subject to the terms of the Mozilla Public
4 // License, v. 2.0. If a copy of the MPL was not distributed with this
5 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
6 
7 #ifndef CFG_CONSISTENCY_H
8 #define CFG_CONSISTENCY_H
9 
10 #include <cc/cfg_to_element.h>
11 #include <cc/user_context.h>
12 
13 namespace isc {
14 namespace dhcp {
15 
16 
20 
21  public:
22 
24  enum LeaseSanity {
25  LEASE_CHECK_NONE, // Skip sanity checks
26  LEASE_CHECK_WARN, // Print a warning if subnet-id is incorrect.
27  LEASE_CHECK_FIX, // If subnet-id is incorrect, try to fix it (try to pick
28  // appropriate subnet, but if it fails, keep the lease,
29  // despite its broken subnet-id.
30  LEASE_CHECK_FIX_DEL, // If subnet-id is incorrect, try to fix it (try to pick
31  // appropriate subnet. If it fails, delete broken lease.
32  LEASE_CHECK_DEL // Delete leases with invalid subnet-id.
33  };
34 
37  : lease_sanity_check_(LEASE_CHECK_WARN) {
38 
39  }
40 
44  virtual isc::data::ElementPtr toElement() const;
45 
50  lease_sanity_check_ = l;
51  }
52 
57  return (lease_sanity_check_);
58  }
59 
63  static std::string sanityCheckToText(LeaseSanity check_type);
64 
65  private:
66 
68  LeaseSanity lease_sanity_check_;
69 };
70 
72 typedef boost::shared_ptr<CfgConsistency> CfgConsistencyPtr;
73 
74 }; // namespace isc::dhcp
75 }; // namespace isc
76 
77 #endif /* CFG_CONSISTENCY_H */
isc::dhcp::CfgConsistency::LEASE_CHECK_NONE
@ LEASE_CHECK_NONE
Definition: cfg_consistency.h:25
isc::dhcp::CfgConsistency::LeaseSanity
LeaseSanity
Values for subnet-id sanity checks done for leases.
Definition: cfg_consistency.h:24
isc::dhcp::CfgConsistency::toElement
virtual isc::data::ElementPtr toElement() const
Returns JSON representation.
Definition: cfg_consistency.cc:15
user_context.h
isc::dhcp::CfgConsistency::getLeaseSanityCheck
LeaseSanity getLeaseSanityCheck() const
Returns specific sanity checks mode for leases.
Definition: cfg_consistency.h:56
isc::dhcp::CfgConsistency::LEASE_CHECK_FIX_DEL
@ LEASE_CHECK_FIX_DEL
Definition: cfg_consistency.h:30
isc::data::CfgToElement
Abstract class for configuration Cfg_* classes.
Definition: cfg_to_element.h:29
isc::data::UserContext
Base class for user context.
Definition: user_context.h:22
isc::dhcp::CfgConsistency::setLeaseSanityCheck
void setLeaseSanityCheck(LeaseSanity l)
Sets specific sanity checks mode for leases.
Definition: cfg_consistency.h:49
isc
Defines the logger used by the top-level component of kea-dhcp-ddns.
Definition: agent_parser.cc:144
isc::dhcp::CfgConsistency::sanityCheckToText
static std::string sanityCheckToText(LeaseSanity check_type)
Converts sanity check value to printable text.
Definition: cfg_consistency.cc:23
isc::dhcp::CfgConsistency::CfgConsistency
CfgConsistency()
Constructor.
Definition: cfg_consistency.h:36
isc::dhcp::CfgConsistency::LEASE_CHECK_DEL
@ LEASE_CHECK_DEL
Definition: cfg_consistency.h:32
isc::dhcp::CfgConsistency
Parameters for various consistency checks.
Definition: cfg_consistency.h:19
isc::dhcp::CfgConsistency::LEASE_CHECK_FIX
@ LEASE_CHECK_FIX
Definition: cfg_consistency.h:27
isc::dhcp::CfgConsistencyPtr
boost::shared_ptr< CfgConsistency > CfgConsistencyPtr
Type used to for pointing to CfgConsistency structure.
Definition: cfg_consistency.h:72
cfg_to_element.h
isc::data::ElementPtr
boost::shared_ptr< Element > ElementPtr
Definition: data.h:20
isc::dhcp::CfgConsistency::LEASE_CHECK_WARN
@ LEASE_CHECK_WARN
Definition: cfg_consistency.h:26