2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-08-29 13:07:50 +00:00

123 Commits

Author SHA1 Message Date
mayya
3606c3ba9c fixed minor issues 2018-07-23 13:39:16 +02:00
mayya
2090af48c1 [lib] Extend host structure to support auth keys for reconfiguration.
See issue #83
2018-07-23 13:31:03 +02:00
Marcin Siodelski
ed42dddca9 [5651] Removed unused SQL/CQL queries. 2018-06-28 16:50:07 +02:00
Marcin Siodelski
1911064d76 [5651] Removed lease queries by ranges and total lease count. 2018-06-28 14:02:32 +02:00
Marcin Siodelski
25595be427 [5651] Implemented fetching IPv6 leases by address ranges.
Except Cassandra.
2018-06-26 13:53:01 +02:00
Marcin Siodelski
99da64ffd5 [5651] Implemented fetching IPv6 leases with paging. 2018-06-26 10:27:07 +02:00
Marcin Siodelski
122bb75a7a [5651] Implemented LeaseMgr methods retrieving ranges/pages of IPv4 leases. 2018-06-25 21:47:20 +02:00
Thomas Markwalder
28e33a3c2d [5629] PostgreSQL Lease back end now properly validates schema version
src/lib/dhcpsrv/pgsql_lease_mgr.cc
    PgSqlLeaseMgr::PgSqlLeaseMgr() - now validates schema version before
    preparing SQL statements

    PgSqlLeaseMgr::getVersion() - no longers uses pre-prepared statement
    or formal statement execution error checking
2018-05-31 10:36:26 -04:00
Thomas Markwalder
7614eb8d2b [5629] MySQL Lease back end now validates schema after connecting
src/lib/dhcpsrv/mysql_lease_mgr.*
    MySqlLeaseMgr::MySqlLeaseMgr() - now validates schema
    after connecting

    MySqlLeaseMgr::getVersion()  - no longer relies on
    pre-prepared statement or formal statement execution
    error handling

src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.cc
    LeaseMgrDbLostCallbackTest::testDbLostCallback() - replaced
    use of getVersion() with getLease4() for testing DB usability
2018-05-31 09:41:46 -04:00
Thomas Markwalder
a662ab45d9 [5586] MySQL shared leases stats implemented
src/share/database/scripts/mysql/dhcpdb_create.mysql
    src/share/database/scripts/mysql/dhcpdb_drop.mysql
    src/share/database/scripts/mysql/upgrade_5.2_to_6.0.sh.in
        Added MySQL v4/6 stat tables and triggers

    src/lib/dhcpsrv/memfile_lease_mgr.cc
        Suppress output of of rows with count values of 0

    src/lib/dhcpsrv/mysql_lease_mgr.*
        Added v4/v6 lease stat SQL statements

        MySqlLeaseStatsQuery
        - Added ctor variants that accomodate selection criteria
        - Modified start() to handle three variants of selection

        MySqlLeaseMgr
        - Added start***Query4/6 variants

    src/lib/dhcpsrv/tests/mysql_lease_mgr_unittest.cc
        Added tests:
        - TEST_F(MySqlLeaseMgrTest, leaseStatsQuery4)
        - TEST_F(MySqlLeaseMgrTest, leaseStatsQuery6)
2018-05-02 13:36:02 -04:00
Francis Dupont
a0bb7188df [master] Finishing merge of trac5469 (lease6-get-all) 2018-03-31 16:49:15 +02:00
Francis Dupont
d6a49e1f2f Checkpoint: addressed final comment but not yet tested 2018-03-16 14:42:24 +01:00
Razvan Becheriu
e9e8389d45 enabled more tests, implemented hwaddr, hwtype and hwaddr_source in pgsql 2018-02-19 16:14:38 +02:00
Razvan Becheriu
e409c164a6 added missing tables, columns and values in cql schema, ordered declarations and definitions in lease and host managers 2018-02-13 18:28:40 +02:00
Francis Dupont
e0abc5ac7c [5469] Moved to composite index in C++ code too 2018-01-17 19:28:57 +01:00
Francis Dupont
cfe529dff1 [5469] checkpoint (copied with 4 -> 6) 2018-01-13 00:24:41 +01:00
Marcin Siodelski
2732257202 [5468] Implemented getting leases by subnet id and all leases.
This change affects Memfile, MySQL and Postgres backend. These functions
aren't implemented for CQL at this time.
2018-01-09 14:49:14 +01:00
Tomek Mrugalski
574356fa9e [5280] leaseWipe4,6 implemented in lease managers (base and memfile) 2017-08-07 18:25:27 +02:00
Wlodek Wencel
9e3ca83d07 [v_1_2_0] copy right dates updated 2017-04-12 15:47:26 +02:00
Andrei Pavel
9082500187 Corrected typos 2016-12-14 16:57:44 +02:00
Wlodek Wencel
099dbc0931 [v1_1_0] Copyright dates update 2016-08-28 22:38:24 +02:00
Thomas Markwalder
0833798a33 [4294] Refactored MySql stats classes
src/lib/dhcpsrv/mysql_lease_mgr.h
src/lib/dhcpsrv/mysql_lease_mgr.cc
    Replaced this class heirarchy:
        AddressStatsQuery4 <-- MySqlAddressStatsQuery4
        AddressStatsQuery6 <-- MySqlAddressStatsQuery6

    With this one:
        LeaseStatsQuery <-- MySqlLeaseStatsQuery
2016-08-24 08:50:47 -04:00
Thomas Markwalder
6f56be5aa2 [4294] Unit tests and MySql now support IPv6 lease stat recounting
src/lib/dhcpsrv/cfg_subnets6.cc
    - CfgSubnets6::removeStatistics() - added removal of declined stats
    - CfgSubnets6::updateStatistics() - added call to recountAddressStats6()

src/lib/dhcpsrv/mysql_lease_mgr.h
src/lib/dhcpsrv/mysql_lease_mgr.cc
    - Added TaggedStatement RECOUNT_LEASE6_STATS
    - MySqlAddressStatsQuery6 - new MySql derivation of AddressStatsQuery6
    - MySqlLeaseMgr::startAddressStatsQuery6() - new virtual method which
    creates and starts a MySqlAddressStatsQuery6

src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.h
src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.cc
    - GenericLeaseMgrTest::checkAddressStats4 renamed to checkAddressStats as
    it applies to either v4 or v6
    - GenericLeaseMgrTest::makeLease6() - new method which creates a minimal
    IPv6 lease and adds it to lease storage
    - GenericLeaseMgrTest::testRecountAddressStats6() - new method which
    checks IPv6 lease stats recounting

src/lib/dhcpsrv/tests/mysql_lease_mgr_unittest.cc
    - TEST_F(MySqlLeaseMgrTest, recountAddressStats6) - new test
2016-08-16 11:13:17 -04:00
Thomas Markwalder
a8f85f2508 [4294] Memfile and MySql now support recalulating IPv4 lease statistics
src/lib/dhcpsrv/cfg_subnets4.cc
    CfgSubnets4::removeStatistics()
    - added removal of all lease statistics per subnet, and global declined address
    stats

    CfgSubnets4::updateStatistics()
    - added call to LeaseMgr::recountAddressStats4

src/lib/dhcpsrv/lease.cc
src/lib/dhcpsrv/lease.h
    Replaces lease state constants with LeaseState enumeration.

src/lib/dhcpsrv/lease_mgr.cc
src/lib/dhcpsrv/lease_mgr.h
    struct AddressStatsRow4 - contains the content of one row of the IPv4
    lease statistical data result set

    class AddressStatsQuery4 - base class for constructing the IPv4
    lease statistical data result set for an IPv4 lease storage

    LeaseMgr::recountAddressStats4() -  new method which recalculates
    per-subnet and global stats for IPv4 leases

    LeaseMgr::startAddressStatsQuery4() - new virtual method that fetches
    the IPv4 lease statistical data result set

src/lib/dhcpsrv/lease_mgr_factory.h
src/lib/dhcpsrv/lease_mgr_factory.cc
    LeaseMgrFactory::haveInstance() - new static method which indicates
    whether or not the lease manager singleton exists

src/lib/dhcpsrv/memfile_lease_mgr.h
src/lib/dhcpsrv/memfile_lease_mgr.cc
    MemfileAddressStatsQuery4 - Derivation of AddressStatsQuery4, it constructs
    the IPv4 lease statistical data by iterating over IPv4 lease storage

    Memfile_LeaseMgr::startAddressStatsQuery4() - new virtual method which
    creates, starts, and returns a MemfileAddressStatsQuery4

src/lib/dhcpsrv/memfile_lease_storage.h
    Added an a per subnet_ID index to IPv4 storage

src/lib/dhcpsrv/mysql_lease_mgr.h
src/lib/dhcpsrv/mysql_lease_mgr.cc
    - Added RECOUNT_LEASE4_STATS query

    MySqlAddressStatsQuery4 Derivation of AddressStatsQuery4, it constructs
    the IPv4 lease statistical data by executing RECOUNT_LEASE4_STATS

    MySqlLeaseMgr::startAddressStatsQuery4() - new virtual method which
    creates, starts, and returns a MySqlAddressStatsQuery4

src/lib/dhcpsrv/tests/alloc_engine_utils.cc
    AllocEngine6Test::AllocEngine6Test()
    AllocEngine4Test::AllocEngine4Test()
    - moved lease mgr create up above configuration commit

src/lib/dhcpsrv/tests/cfg_db_access_unittest.cc
     ~CfgMySQLDbAccessTest() - added destruction of lease manager singleton,
    otherwise subsequent tests can fail

src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.h
src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.cc
    GenericLeaseMgrTest::checkStat() - new method for comparing a stat
    GenericLeaseMgrTest::checkAddressStats4() - new method for comparing a list
    of stats
    GenericLeaseMgrTest::makeLease4() - new method for making a minimal lease
    GenericLeaseMgrTest::testRecountAddressStats4() - new method which tests
    a lease manager's ability to recalculate the IPv4 lease statistics

src/lib/dhcpsrv/tests/memfile_lease_mgr_unittest.cc
    TEST_F(MemfileLeaseMgrTest, recountAddressStats4) - new test which tests
    Memfile_LeaseMgr's ability to recalculate IPv4 lease statistics

src/lib/dhcpsrv/tests/mysql_lease_mgr_unittest.cc
    TEST_F(MySqlLeaseMgrTest, recountAddressStats4) - new test which tests
    MySqlLeaseMgr's ability to recalculate IPv4 lease statistics
2016-08-12 14:02:35 -04:00
Francis Dupont
75a8350485 [master] Fixed rights of non-executable regular files 2016-07-08 20:38:15 +02:00
Tomek Mrugalski
a47f78f491 renamed classes and files, fixed issues, added comments
# Conflicts:
#	ChangeLog
#	src/lib/dhcpsrv/cfg_hosts.cc
2016-06-23 14:27:04 +02:00
Marcin Siodelski
61ca023498 [4281] Addressed further review comments.
- Always invoke mysql_insert_id to retrieve host_id value
- exit if connection with  MySql database is lost
2016-05-30 11:30:26 +02:00
Marcin Siodelski
fe9dd86d20 [4236] Replaced license text in all files containing it. 2015-12-16 13:37:29 +01:00
Marcin Siodelski
00186aa513 [master] Include <mysql.h> rather than <mysql/mysql.h>
This prevents compilation failure on OS-X. Reviewed and approved
on jabber.
2015-12-01 09:50:22 +01:00
Tomek Mrugalski
65efc0da7f [3682_rebase] Merge branch 'trac3682' into trac3682_rebase
# Conflicts:
#	src/lib/dhcpsrv/mysql_lease_mgr.cc
#	src/lib/dhcpsrv/mysql_lease_mgr.h
2015-11-30 21:26:25 +01:00
Thomas Markwalder
be964a2b42 [3780] MySQL and Postgres lease managers now exit on fatal error detection
src/lib/dhcpsrv/dhcpsrv_messages.mes
    added messages DHCPSRV_MYSQL_FATAL_ERROR, DHCPSRV_PGSQL_FATAL_ERROR

src/lib/dhcpsrv/mysql_lease_mgr.cc
    added MySQL client error code include

    MySqlLeaseMgr::checkError() - method is no longer inlined in
    the header.  Expanded to detect unrecoverable errors, log
    them and call exit().

src/lib/dhcpsrv/mysql_lease_mgr.h
    Removed inline implemenation of MySqlLeaseMgr::checkError(),
    and expanded commentary

src/lib/dhcpsrv/pgsql_lease_mgr.cc
    PgSqlLeaseMgr::addLeaseCommon() - now uses checkStatementError()

    PgSqlLeaseMgr::checkStatementError() - Expanded to detect
    unrecoverable errors, log them and call exit().

src/lib/dhcpsrv/pgsql_lease_mgr.h
    Expanded commentary for PgSqlLeaseMgr::checkStatementError()
2015-10-23 16:41:27 -04:00
Tomek Mrugalski
884d8bb4a5 [master] Merge branch 'trac3681_rebase' (Common MySQL Connection class)
Conflicts:
	src/lib/dhcpsrv/lease_mgr.h
	src/lib/dhcpsrv/memfile_lease_mgr.cc
	src/lib/dhcpsrv/mysql_lease_mgr.cc
	src/lib/dhcpsrv/tests/memfile_lease_mgr_unittest.cc
	src/lib/dhcpsrv/tests/schema_mysql_copy.h
2015-10-09 23:28:19 +02:00
Marcin Siodelski
f127bed4fb [3966] Implemented deletion of the reclaimed leases in MySQL. 2015-09-07 13:58:22 +02:00
Marcin Siodelski
54a90126ec [3966] Implemented methods to retrieve expired leases in MySQL. 2015-09-07 13:29:17 +02:00
Marcin Siodelski
31c483f123 [3965] deleteExpiredReclaimed returns number of deleted leases. 2015-09-03 11:35:25 +02:00
Tomek Mrugalski
278a4e3117 [3681_rebase] Changes after review
- Indent fixed
 - Missing parameter descriptions added
2015-08-24 15:18:49 +02:00
Tomek Mrugalski
e626cf0d38 [3681_rebase] MySQLLeaseMgr uses, but does not derive from MySqlConnection. 2015-08-21 18:27:41 +02:00
Marcin Siodelski
984712536c [3965] Added stub methods for getting and removing expired leases. 2015-08-20 19:25:38 +02:00
Tomek Mrugalski
373aa0a40e [3681] DataSource class added.
- code refactoring after last commit, clean-up, compilation fixes
 - Makefile updates
 - Added new unit-tests for DataSource (mostly moved from LeaseMgr
   unit-tests)
2015-06-25 20:55:12 +02:00
Tomek Mrugalski
2a3ac3ef7d [3681] MySQLConnection class implemented
- patch as sent by Adam Kalmus
2015-06-25 20:55:12 +02:00
Francis Dupont
52fe5e23eb [3882a] Added new getDBVersion() class method 2015-06-19 14:30:51 +02:00
Shawn Routhier
4ba876edc5 [3673] Fix typo 2015-03-10 21:23:46 -07:00
Marcin Siodelski
ccf7e110c2 [3673] The time conversion method in PgSQL calculates expiry time itself.
This is to prevent the negative overflows when valid_lft is substracted
from the time_t value. It is also consistent with the MySQL implementation.
2015-03-04 16:19:36 +01:00
Marcin Siodelski
c96df51663 [3556] Updated copyright headers. 2014-12-04 14:47:21 +01:00
Tomek Mrugalski
ab0365c68d [3556] HWAddr support in MySQL implemented. 2014-11-06 19:36:46 +01:00
Marcin Siodelski
672d49074e [2940] Moved the Memfile backend tests to a generic class. 2013-11-15 12:03:21 +01:00
Tomek Mrugalski
a26a75c948 [3149] Lease6::LeaseType and Pool::PoolType unified. 2013-09-18 15:44:48 +02:00
Tomek Mrugalski
0b0bb4a278 [3146] getLease6() renamed to getLeases6() 2013-09-06 19:30:35 +02:00
Tomek Mrugalski
681def2806 [3146] getLease6 renamed to getLeases6(), single lease getLease6() added 2013-09-06 18:16:50 +02:00
Tomek Mrugalski
95729b096e [3146] getLease6() methods now have extra param: LeaseType 2013-09-06 14:51:59 +02:00