Kea  2.3.5-git
cfg_consistency.h
Go to the documentation of this file.
1 // Copyright (C) 2018-2022 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  EXTENDED_INFO_CHECK_NONE, // Skip sanity checks.
38  EXTENDED_INFO_CHECK_FIX, // Fix extended info common inconsistencies.
39  EXTENDED_INFO_CHECK_STRICT, // Fix extended info inconsistencies which
40  // have an impact for Bulk Lease Query.
41  EXTENDED_INFO_CHECK_PEDANTIC // Fix all extended info inconsistencies.
42  };
43 
46  : lease_sanity_check_(LEASE_CHECK_NONE),
47  extended_info_sanity_check_(EXTENDED_INFO_CHECK_FIX) {
48  }
49 
53  virtual isc::data::ElementPtr toElement() const;
54 
59  lease_sanity_check_ = l;
60  }
61 
66  return (lease_sanity_check_);
67  }
68 
72  static std::string sanityCheckToText(LeaseSanity check_type);
73 
78  extended_info_sanity_check_ = l;
79  }
80 
85  return (extended_info_sanity_check_);
86  }
87 
91  static std::string sanityCheckToText(ExtendedInfoSanity check_type);
92 
93  private:
94 
96  LeaseSanity lease_sanity_check_;
97 
99  ExtendedInfoSanity extended_info_sanity_check_;
100 };
101 
103 typedef boost::shared_ptr<CfgConsistency> CfgConsistencyPtr;
104 
106 typedef boost::shared_ptr<const CfgConsistency> ConstCfgConsistencyPtr;
107 
108 } // namespace isc::dhcp
109 } // namespace isc
110 
111 #endif /* CFG_CONSISTENCY_H */
ExtendedInfoSanity getExtendedInfoSanityCheck() const
Returns specific sanity checks mode for extended info.
Base class for user context.
Definition: user_context.h:22
boost::shared_ptr< Element > ElementPtr
Definition: data.h:24
boost::shared_ptr< CfgConsistency > CfgConsistencyPtr
Type used to for pointing to CfgConsistency structure.
void setLeaseSanityCheck(LeaseSanity l)
Sets specific sanity checks mode for leases.
LeaseSanity
Values for subnet-id sanity checks done for leases.
Parameters for various consistency checks.
virtual isc::data::ElementPtr toElement() const
Returns JSON representation.
Abstract class for configuration Cfg_* classes.
LeaseSanity getLeaseSanityCheck() const
Returns specific sanity checks mode for leases.
Defines the logger used by the top-level component of kea-lfc.
ExtendedInfoSanity
Values for extended info sanity checks done for leases.
static std::string sanityCheckToText(LeaseSanity check_type)
Converts lease sanity check value to printable text.
void setExtendedInfoSanityCheck(ExtendedInfoSanity l)
Sets specific sanity checks mode for extended info.
CfgConsistency()
Constructor.
boost::shared_ptr< const CfgConsistency > ConstCfgConsistencyPtr
Type used to for pointing to const CfgConsistency structure.