]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#92,!13] Moved PgSqlConnection and PgSqlExchange to libkea-pgsql.
authorMarcin Siodelski <marcin@isc.org>
Wed, 29 Aug 2018 17:55:09 +0000 (19:55 +0200)
committerMarcin Siodelski <marcin@isc.org>
Mon, 3 Sep 2018 07:31:34 +0000 (03:31 -0400)
27 files changed:
configure.ac
src/bin/d2/Makefile.am
src/bin/d2/tests/Makefile.am
src/bin/dhcp4/Makefile.am
src/bin/dhcp4/tests/Makefile.am
src/bin/dhcp6/Makefile.am
src/bin/dhcp6/tests/Makefile.am
src/bin/lfc/Makefile.am
src/bin/lfc/tests/Makefile.am
src/lib/Makefile.am
src/lib/dhcpsrv/Makefile.am
src/lib/dhcpsrv/pgsql_host_data_source.h
src/lib/dhcpsrv/pgsql_lease_mgr.h
src/lib/dhcpsrv/tests/Makefile.am
src/lib/dhcpsrv/tests/pgsql_host_data_source_unittest.cc
src/lib/dhcpsrv/tests/pgsql_lease_mgr_unittest.cc
src/lib/dhcpsrv/testutils/Makefile.am
src/lib/pgsql/Makefile.am [new file with mode: 0644]
src/lib/pgsql/pgsql_connection.cc [moved from src/lib/dhcpsrv/pgsql_connection.cc with 99% similarity]
src/lib/pgsql/pgsql_connection.h [moved from src/lib/dhcpsrv/pgsql_connection.h with 99% similarity]
src/lib/pgsql/pgsql_exchange.cc [moved from src/lib/dhcpsrv/pgsql_exchange.cc with 98% similarity]
src/lib/pgsql/pgsql_exchange.h [moved from src/lib/dhcpsrv/pgsql_exchange.h with 99% similarity]
src/lib/pgsql/tests/.gitignore [new file with mode: 0644]
src/lib/pgsql/tests/Makefile.am [new file with mode: 0644]
src/lib/pgsql/tests/pgsql_exchange_unittest.cc [moved from src/lib/dhcpsrv/tests/pgsql_exchange_unittest.cc with 99% similarity]
src/lib/pgsql/tests/run_unittests.cc [new file with mode: 0644]
src/lib/process/Makefile.am

index d56a0d07892a53e3be96691842d3a632a6cbd9e4..707c65e249e9cf76be19be79e315d8a10bfbeb7b 100644 (file)
@@ -1573,6 +1573,8 @@ AC_CONFIG_FILES([Makefile
                  src/lib/log/tests/severity_test.sh
                  src/lib/log/tests/tempdir.h
                  src/lib/mysql/Makefile
+                 src/lib/pgsql/Makefile
+                 src/lib/pgsql/tests/Makefile
                  src/lib/process/Makefile
                  src/lib/process/tests/Makefile
                  src/lib/process/testutils/Makefile
index bc0cf7425857bedd86a42e7edc2bdca1a55a0580..f529ae55a8961117d75b3f8a429df7e26518c62c 100644 (file)
@@ -101,6 +101,9 @@ kea_dhcp_ddns_LDADD += $(top_builddir)/src/lib/asiolink/libkea-asiolink.la
 if HAVE_MYSQL
 kea_dhcp_ddns_LDADD += $(top_builddir)/src/lib/mysql/libkea-mysql.la
 endif
+if HAVE_PGSQL
+kea_dhcp_ddns_LDADD += $(top_builddir)/src/lib/pgsql/libkea-pgsql.la
+endif
 
 kea_dhcp_ddns_LDADD += $(top_builddir)/src/lib/database/libkea-database.la
 kea_dhcp_ddns_LDADD += $(top_builddir)/src/lib/cc/libkea-cc.la
index 4a4841b87725d504eaa345c79d489025215dcd37..609ca8ed579189d9273b0bb91101e712272a6630 100644 (file)
@@ -89,6 +89,9 @@ d2_unittests_LDADD += $(top_builddir)/src/lib/asiolink/libkea-asiolink.la
 if HAVE_MYSQL
 d2_unittests_LDADD += $(top_builddir)/src/lib/mysql/libkea-mysql.la
 endif
+if HAVE_PGSQL
+d2_unittests_LDADD += $(top_builddir)/src/lib/pgsql/libkea-pgsql.la
+endif
 
 d2_unittests_LDADD += $(top_builddir)/src/lib/database/libkea-database.la
 d2_unittests_LDADD += $(top_builddir)/src/lib/cc/libkea-cc.la
index 069e9f737cfa0ff8cf6dcc8e765f14789b34a631..b2376041f025dc8d06a0c53731b469ff7ab31727 100644 (file)
@@ -88,6 +88,9 @@ kea_dhcp4_LDADD += $(top_builddir)/src/lib/hooks/libkea-hooks.la
 if HAVE_MYSQL
 kea_dhcp4_LDADD += $(top_builddir)/src/lib/mysql/libkea-mysql.la
 endif
+if HAVE_PGSQL
+kea_dhcp4_LDADD += $(top_builddir)/src/lib/pgsql/libkea-pgsql.la
+endif
 
 kea_dhcp4_LDADD += $(top_builddir)/src/lib/database/libkea-database.la
 kea_dhcp4_LDADD += $(top_builddir)/src/lib/log/libkea-log.la
index e02b18a9c9870b5576f091d84616161e5e7b8d00..f913edf33039ac612e5cc109c39487096058e414 100644 (file)
@@ -131,6 +131,15 @@ dhcp4_unittests_LDADD += $(top_builddir)/src/lib/config/libkea-cfgclient.la
 dhcp4_unittests_LDADD += $(top_builddir)/src/lib/dhcp/libkea-dhcp++.la
 dhcp4_unittests_LDADD += $(top_builddir)/src/lib/dhcp/tests/libdhcptest.la
 dhcp4_unittests_LDADD += $(top_builddir)/src/lib/asiolink/libkea-asiolink.la
+
+if HAVE_MYSQL
+dhcp4_unittests_LDADD += $(top_builddir)/src/lib/mysql/libkea-mysql.la
+endif
+if HAVE_PGSQL
+dhcp4_unittests_LDADD += $(top_builddir)/src/lib/pgsql/libkea-pgsql.la
+endif
+
+dhcp4_unittests_LDADD += $(top_builddir)/src/lib/database/libkea-database.la
 dhcp4_unittests_LDADD += $(top_builddir)/src/lib/cc/libkea-cc.la
 dhcp4_unittests_LDADD += $(top_builddir)/src/lib/dns/libkea-dns++.la
 dhcp4_unittests_LDADD += $(top_builddir)/src/lib/cryptolink/libkea-cryptolink.la
index 0e4654f7acdb4478ab0ad3d40715ca3d5de44a52..a6247078248e8232e4f322a517fddcaecd9582e5 100644 (file)
@@ -88,6 +88,9 @@ kea_dhcp6_LDADD += $(top_builddir)/src/lib/hooks/libkea-hooks.la
 if HAVE_MYSQL
 kea_dhcp6_LDADD += $(top_builddir)/src/lib/mysql/libkea-mysql.la
 endif
+if HAVE_PGSQL
+kea_dhcp6_LDADD += $(top_builddir)/src/lib/pgsql/libkea-pgsql.la
+endif
 
 kea_dhcp6_LDADD += $(top_builddir)/src/lib/database/libkea-database.la
 kea_dhcp6_LDADD += $(top_builddir)/src/lib/log/libkea-log.la
index 8597b9463ad5bffa3f523edf4f4c4d5aa2d55681..119fa169bccbb80445ed52384d0d858993645e71 100644 (file)
@@ -139,6 +139,9 @@ dhcp6_unittests_LDADD += $(top_builddir)/src/lib/hooks/libkea-hooks.la
 if HAVE_MYSQL
 dhcp6_unittests_LDADD += $(top_builddir)/src/lib/mysql/libkea-mysql.la
 endif
+if HAVE_PGSQL
+dhcp6_unittests_LDADD += $(top_builddir)/src/lib/pgsql/libkea-pgsql.la
+endif
 
 dhcp6_unittests_LDADD += $(top_builddir)/src/lib/database/libkea-database.la
 dhcp6_unittests_LDADD += $(top_builddir)/src/lib/log/libkea-log.la
index 7bfeb96df79e136afbd3051fcc6648ae575338fd..33c3db56e4856e4d4bcb84859e22ac458d2bfbdd 100644 (file)
@@ -61,6 +61,15 @@ kea_lfc_LDADD += $(top_builddir)/src/lib/stats/libkea-stats.la
 kea_lfc_LDADD += $(top_builddir)/src/lib/config/libkea-cfgclient.la
 kea_lfc_LDADD += $(top_builddir)/src/lib/dhcp/libkea-dhcp++.la
 kea_lfc_LDADD += $(top_builddir)/src/lib/asiolink/libkea-asiolink.la
+
+if HAVE_MYSQL
+kea_lfc_LDADD += $(top_builddir)/src/lib/mysql/libkea-mysql.la
+endif
+if HAVE_PGSQL
+kea_lfc_LDADD += $(top_builddir)/src/lib/pgsql/libkea-pgsql.la
+endif
+
+kea_lfc_LDADD += $(top_builddir)/src/lib/database/libkea-database.la
 kea_lfc_LDADD += $(top_builddir)/src/lib/cc/libkea-cc.la
 kea_lfc_LDADD += $(top_builddir)/src/lib/dns/libkea-dns++.la
 kea_lfc_LDADD += $(top_builddir)/src/lib/cryptolink/libkea-cryptolink.la
index 900667ae6ae2e52e80735ba099eebb1bc5a3ffc7..6f7a95576403d16c89407a98ed6517e31bc3d5a3 100644 (file)
@@ -61,6 +61,16 @@ lfc_unittests_LDADD += $(top_builddir)/src/lib/stats/libkea-stats.la
 lfc_unittests_LDADD += $(top_builddir)/src/lib/config/libkea-cfgclient.la
 lfc_unittests_LDADD += $(top_builddir)/src/lib/dhcp/libkea-dhcp++.la
 lfc_unittests_LDADD += $(top_builddir)/src/lib/asiolink/libkea-asiolink.la
+
+if HAVE_MYSQL
+lfc_unittests_LDADD += $(top_builddir)/src/lib/mysql/libkea-mysql.la
+endif
+if HAVE_PGSQL
+lfc_unittests_LDADD += $(top_builddir)/src/lib/pgsql/libkea-pgsql.la
+endif
+
+
+lfc_unittests_LDADD += $(top_builddir)/src/lib/database/libkea-database.la
 lfc_unittests_LDADD += $(top_builddir)/src/lib/cc/libkea-cc.la
 lfc_unittests_LDADD += $(top_builddir)/src/lib/dns/libkea-dns++.la
 lfc_unittests_LDADD += $(top_builddir)/src/lib/cryptolink/libkea-cryptolink.la
index 9f6a23755d942393bdbdf9e8ab9ba7f4664b56c1..14ecc0bb928eef90e1959625e82acfe5cbe82939 100644 (file)
@@ -5,6 +5,10 @@ if HAVE_MYSQL
 SUBDIRS += mysql
 endif
 
+if HAVE_PGSQL
+SUBDIRS += pgsql
+endif
+
 SUBDIRS += testutils hooks dhcp config stats asiodns dhcp_ddns eval \
        dhcpsrv cfgrpt \
        process http
index 52346131ddb78172da6577e5227fecea6cac73cc..f6ccf6217474647b625dc68f993e7a8cde931c0a 100644 (file)
@@ -146,8 +146,6 @@ libkea_dhcpsrv_la_SOURCES += network.cc network.h
 libkea_dhcpsrv_la_SOURCES += network_state.cc network_state.h
 
 if HAVE_PGSQL
-libkea_dhcpsrv_la_SOURCES += pgsql_connection.cc pgsql_connection.h
-libkea_dhcpsrv_la_SOURCES += pgsql_exchange.cc pgsql_exchange.h
 libkea_dhcpsrv_la_SOURCES += pgsql_host_data_source.cc pgsql_host_data_source.h
 libkea_dhcpsrv_la_SOURCES += pgsql_lease_mgr.cc pgsql_lease_mgr.h
 endif
@@ -218,6 +216,9 @@ libkea_dhcpsrv_la_LIBADD  += $(top_builddir)/src/lib/hooks/libkea-hooks.la
 if HAVE_MYSQL
 libkea_dhcpsrv_la_LIBADD  += $(top_builddir)/src/lib/mysql/libkea-mysql.la
 endif
+if HAVE_PGSQL
+libkea_dhcpsrv_la_LIBADD  += $(top_builddir)/src/lib/pgsql/libkea-pgsql.la
+endif
 
 libkea_dhcpsrv_la_LIBADD  += $(top_builddir)/src/lib/database/libkea-database.la
 libkea_dhcpsrv_la_LIBADD  += $(top_builddir)/src/lib/log/libkea-log.la
@@ -327,8 +328,6 @@ endif
 
 if HAVE_PGSQL
 libkea_dhcpsrv_include_HEADERS += \
-       pgsql_connection.h \
-       pgsql_exchange.h \
        pgsql_host_data_source.h \
        pgsql_lease_mgr.h
 endif
index 5da08a89e87e888693244f283cfee7faaaa34f45..66b024a5f796c2e5653652bed92d63937ff893a8 100644 (file)
@@ -8,8 +8,8 @@
 #define PGSQL_HOST_DATA_SOURCE_H
 
 #include <dhcpsrv/base_host_data_source.h>
-#include <dhcpsrv/pgsql_connection.h>
-#include <dhcpsrv/pgsql_exchange.h>
+#include <pgsql/pgsql_connection.h>
+#include <pgsql/pgsql_exchange.h>
 
 namespace isc {
 namespace dhcp {
index 053ae78d9fef2c66a7c2fe05f01c303f8be81348..c779fafaa6eb80dd5349efdeca4db75f2e1afce0 100644 (file)
@@ -10,8 +10,8 @@
 #include <dhcp/hwaddr.h>
 #include <dhcpsrv/dhcpsrv_exceptions.h>
 #include <dhcpsrv/lease_mgr.h>
-#include <dhcpsrv/pgsql_connection.h>
-#include <dhcpsrv/pgsql_exchange.h>
+#include <pgsql/pgsql_connection.h>
+#include <pgsql/pgsql_exchange.h>
 
 #include <boost/scoped_ptr.hpp>
 #include <boost/utility.hpp>
@@ -588,7 +588,7 @@ private:
     ///
     /// @throw isc::db::DbOperationError An operation on the open database has
     ///        failed.
-    bool addLeaseCommon(StatementIndex stindex, PsqlBindArray& bind_array);
+    bool addLeaseCommon(StatementIndex stindex, db::PsqlBindArray& bind_array);
 
     /// @brief Get Lease Collection Common Code
     ///
@@ -611,7 +611,7 @@ private:
     /// @throw isc::db::MultipleRecords Multiple records were retrieved
     ///        from the database where only one was expected.
     template <typename Exchange, typename LeaseCollection>
-    void getLeaseCollection(StatementIndex stindex, PsqlBindArray& bind_array,
+    void getLeaseCollection(StatementIndex stindex, db::PsqlBindArray& bind_array,
                             Exchange& exchange, LeaseCollection& result,
                             bool single = false) const;
 
@@ -631,7 +631,7 @@ private:
     ///        failed.
     /// @throw isc::db::MultipleRecords Multiple records were retrieved
     ///        from the database where only one was expected.
-    void getLeaseCollection(StatementIndex stindex, PsqlBindArray& bind_array,
+    void getLeaseCollection(StatementIndex stindex, db::PsqlBindArray& bind_array,
                             Lease4Collection& result) const {
         getLeaseCollection(stindex, bind_array, exchange4_, result);
     }
@@ -651,7 +651,7 @@ private:
     ///        failed.
     /// @throw isc::db::MultipleRecords Multiple records were retrieved
     ///        from the database where only one was expected.
-    void getLeaseCollection(StatementIndex stindex, PsqlBindArray& bind_array,
+    void getLeaseCollection(StatementIndex stindex, db::PsqlBindArray& bind_array,
                             Lease6Collection& result) const {
         getLeaseCollection(stindex, bind_array, exchange6_, result);
     }
@@ -665,7 +665,7 @@ private:
     /// @param stindex Index of statement being executed
     /// @param bind_array array containing input parameters for the query
     /// @param lease Lease4 object returned
-    void getLease(StatementIndex stindex, PsqlBindArray& bind_array,
+    void getLease(StatementIndex stindex, db::PsqlBindArray& bind_array,
                   Lease4Ptr& result) const;
 
     /// @brief Get Lease6 Common Code
@@ -677,7 +677,7 @@ private:
     /// @param stindex Index of statement being executed
     /// @param bind_array array containing input parameters for the query
     /// @param lease Lease6 object returned
-    void getLease(StatementIndex stindex, PsqlBindArray& bind_array,
+    void getLease(StatementIndex stindex, db::PsqlBindArray& bind_array,
                   Lease6Ptr& result) const;
 
     /// @brief Get expired leases common code.
@@ -715,7 +715,7 @@ private:
     /// @throw isc::db::DbOperationError An operation on the open database has
     ///        failed.
     template <typename LeasePtr>
-    void updateLeaseCommon(StatementIndex stindex, PsqlBindArray& bind_array,
+    void updateLeaseCommon(StatementIndex stindex, db::PsqlBindArray& bind_array,
                            const LeasePtr& lease);
 
     /// @brief Delete lease common code
@@ -733,7 +733,7 @@ private:
     /// @throw isc::db::DbOperationError An operation on the open database has
     ///        failed.
     uint64_t deleteLeaseCommon(StatementIndex stindex,
-                               PsqlBindArray& bind_array);
+                               db::PsqlBindArray& bind_array);
 
     /// @brief Delete expired-reclaimed leases.
     ///
@@ -755,7 +755,7 @@ private:
     boost::scoped_ptr<PgSqlLease6Exchange> exchange6_; ///< Exchange object
 
     /// PostgreSQL connection handle
-    PgSqlConnection conn_;
+    db::PgSqlConnection conn_;
 };
 
 }  // namespace dhcp
index 6f4347bada9c075c389e17f3706afcdaf8798369..235e7099631cd34e8515adb97193678e73eecd72 100644 (file)
@@ -110,7 +110,6 @@ libdhcpsrv_unittests_SOURCES += mysql_lease_mgr_unittest.cc
 libdhcpsrv_unittests_SOURCES += mysql_host_data_source_unittest.cc
 endif
 if HAVE_PGSQL
-libdhcpsrv_unittests_SOURCES += pgsql_exchange_unittest.cc
 libdhcpsrv_unittests_SOURCES += pgsql_lease_mgr_unittest.cc
 libdhcpsrv_unittests_SOURCES += pgsql_host_data_source_unittest.cc
 endif
@@ -174,6 +173,9 @@ libdhcpsrv_unittests_LDADD += $(top_builddir)/src/lib/hooks/libkea-hooks.la
 if HAVE_MYSQL
 libdhcpsrv_unittests_LDADD += $(top_builddir)/src/lib/mysql/libkea-mysql.la
 endif
+if HAVE_PGSQL
+libdhcpsrv_unittests_LDADD += $(top_builddir)/src/lib/pgsql/libkea-pgsql.la
+endif
 
 libdhcpsrv_unittests_LDADD += $(top_builddir)/src/lib/database/libkea-database.la
 libdhcpsrv_unittests_LDADD += $(top_builddir)/src/lib/log/libkea-log.la
index f892a58817b76642b54357479bc15b90dec6cbc4..ef43d53e6b640bf49c3563b7b26c93c34e3e74b5 100644 (file)
 #include <dhcpsrv/tests/test_utils.h>
 #include <exceptions/exceptions.h>
 #include <dhcpsrv/host.h>
-#include <dhcpsrv/pgsql_connection.h>
 #include <dhcpsrv/pgsql_host_data_source.h>
 #include <dhcpsrv/testutils/generic_host_data_source_unittest.h>
 #include <dhcpsrv/testutils/pgsql_schema.h>
 #include <dhcpsrv/testutils/host_data_source_utils.h>
 #include <dhcpsrv/host_mgr.h>
 #include <dhcpsrv/host_data_source_factory.h>
+#include <pgsql/pgsql_connection.h>
 
 #include <gtest/gtest.h>
 
index 4a128b40b3861e7910817fd34fcbdb6c26b55984..27ae1e1cbe0c80df4883e6de75e192d84fd0c7f2 100644 (file)
@@ -8,11 +8,11 @@
 
 #include <asiolink/io_address.h>
 #include <dhcpsrv/lease_mgr_factory.h>
-#include <dhcpsrv/pgsql_connection.h>
 #include <dhcpsrv/pgsql_lease_mgr.h>
 #include <dhcpsrv/tests/test_utils.h>
 #include <dhcpsrv/tests/generic_lease_mgr_unittest.h>
 #include <dhcpsrv/testutils/pgsql_schema.h>
+#include <pgsql/pgsql_connection.h>
 #include <exceptions/exceptions.h>
 
 #include <gtest/gtest.h>
index 257a4612e4343e14b4648d423a59bbcfc3bd3f89..8c156a29a8473c2c233625681cbb4372a90a001e 100644 (file)
@@ -33,11 +33,16 @@ endif
 
 libdhcpsrvtest_la_CXXFLAGS = $(AM_CXXFLAGS)
 libdhcpsrvtest_la_CPPFLAGS = $(AM_CPPFLAGS) $(GTEST_INCLUDES)
+
+libdhcpsrvtest_la_LIBADD =
+
 if HAVE_MYSQL
 libdhcpsrvtest_la_CPPFLAGS += $(MYSQL_CPPFLAGS)
+libdhcpsrvtest_la_LIBADD  += $(top_builddir)/src/lib/mysql/libkea-mysql.la
 endif
 if HAVE_PGSQL
 libdhcpsrvtest_la_CPPFLAGS += $(PGSQL_CPPFLAGS)
+libdhcpsrvtest_la_LIBADD  += $(top_builddir)/src/lib/pgsql/libkea-pgsql.la
 endif
 if HAVE_CQL
 libdhcpsrvtest_la_CPPFLAGS += $(CQL_CPPFLAGS)
@@ -54,7 +59,8 @@ if HAVE_CQL
 libdhcpsrvtest_la_LDFLAGS  += $(CQL_LIBS)
 endif
 
-libdhcpsrvtest_la_LIBADD   = $(top_builddir)/src/lib/database/libkea-database.la
+
+libdhcpsrvtest_la_LIBADD  += $(top_builddir)/src/lib/database/libkea-database.la
 libdhcpsrvtest_la_LIBADD  += $(top_builddir)/src/lib/cc/libkea-cc.la
 libdhcpsrvtest_la_LIBADD  += $(top_builddir)/src/lib/log/libkea-log.la
 
diff --git a/src/lib/pgsql/Makefile.am b/src/lib/pgsql/Makefile.am
new file mode 100644 (file)
index 0000000..1a86fac
--- /dev/null
@@ -0,0 +1,31 @@
+SUBDIRS = . tests
+
+AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
+AM_CPPFLAGS += $(BOOST_INCLUDES) $(PGSQL_CPPFLAGS)
+
+AM_CXXFLAGS = $(KEA_CXXFLAGS)
+
+CLEANFILES = *.gcno *.gcda
+
+lib_LTLIBRARIES = libkea-pgsql.la
+libkea_pgsql_la_SOURCES  = pgsql_connection.cc pgsql_connection.h
+libkea_pgsql_la_SOURCES += pgsql_exchange.cc pgsql_exchange.h
+
+
+libkea_pgsql_la_LIBADD  = $(top_builddir)/src/lib/database/libkea-database.la
+libkea_pgsql_la_LIBADD += $(top_builddir)/src/lib/cc/libkea-cc.la
+libkea_pgsql_la_LIBADD += $(top_builddir)/src/lib/asiolink/libkea-asiolink.la
+libkea_pgsql_la_LIBADD += $(top_builddir)/src/lib/log/libkea-log.la
+libkea_pgsql_la_LIBADD += $(top_builddir)/src/lib/util/threads/libkea-threads.la
+libkea_pgsql_la_LIBADD += $(top_builddir)/src/lib/util/libkea-util.la
+libkea_pgsql_la_LIBADD += $(top_builddir)/src/lib/exceptions/libkea-exceptions.la
+libkea_pgsql_la_LIBADD += $(LOG4CPLUS_LIBS) $(BOOST_LIBS)
+
+libkea_pgsql_la_LDFLAGS = -no-undefined -version-info 0:0:0
+
+libkea_pgsql_la_LDFLAGS += $(PGSQL_LIBS)
+
+# Specify the headers for copying into the installation directory tree.
+libkea_pgsql_includedir = $(pkgincludedir)/database
+libkea_pgsql_include_HEADERS = \
+       pgsql_connection.h
similarity index 99%
rename from src/lib/dhcpsrv/pgsql_connection.cc
rename to src/lib/pgsql/pgsql_connection.cc
index 29b1f1dd8ec062ac8f959486fc54bcb870d61ac3..af98f098cb1468af6300cdb1743326d979fd1dc6 100644 (file)
@@ -7,7 +7,7 @@
 #include <config.h>
 
 #include <database/db_log.h>
-#include <dhcpsrv/pgsql_connection.h>
+#include <pgsql/pgsql_connection.h>
 
 // PostgreSQL errors should be tested based on the SQL state code.  Each state
 // code is 5 decimal, ASCII, digits, the first two define the category of
 #define PGSQL_STATECODE_LEN 5
 #include <utils/errcodes.h>
 
-using namespace isc::db;
 using namespace std;
 
 namespace isc {
-namespace dhcp {
+namespace db {
 
 // Default connection timeout
 
@@ -361,5 +360,5 @@ PgSqlConnection::rollback() {
     }
 }
 
-}; // end of isc::dhcp namespace
+}; // end of isc::db namespace
 }; // end of isc namespace
similarity index 99%
rename from src/lib/dhcpsrv/pgsql_connection.h
rename to src/lib/pgsql/pgsql_connection.h
index 20b3f3ffe10b054ad59f25c4b3b5b4f3aca078ec..57e118f2e0c0861e4f0964a2b6da62cc2e23be5c 100644 (file)
@@ -15,7 +15,7 @@
 #include <stdint.h>
 
 namespace isc {
-namespace dhcp {
+namespace db {
 
 /// @brief Define PostgreSQL backend version: 5.0
 const uint32_t PG_SCHEMA_VERSION_MAJOR = 5;
@@ -423,7 +423,7 @@ public:
 
 };
 
-}; // end of isc::dhcp namespace
+}; // end of isc::db namespace
 }; // end of isc namespace
 
 #endif // PGSQL_CONNECTION_H
similarity index 98%
rename from src/lib/dhcpsrv/pgsql_exchange.cc
rename to src/lib/pgsql/pgsql_exchange.cc
index f32d07ca63f6211cb03022d05096993944dc16f7..d65aa6dee67e79119d4cc896b7fea531a96410db 100644 (file)
@@ -6,7 +6,8 @@
 
 #include <config.h>
 
-#include <dhcpsrv/pgsql_exchange.h>
+#include <pgsql/pgsql_exchange.h>
+#include <pgsql/pgsql_connection.h>
 
 #include <boost/lexical_cast.hpp>
 
 #include <sstream>
 #include <vector>
 
-using namespace isc::db;
-
 namespace isc {
-namespace dhcp {
+namespace db {
 
 const int PsqlBindArray::TEXT_FMT = 0;
 const int PsqlBindArray::BINARY_FMT = 1;
@@ -298,5 +297,5 @@ PgSqlExchange::dumpRow(const PgSqlResult& r, int row) {
     return (stream.str());
 }
 
-}; // end of isc::dhcp namespace
+}; // end of isc::db namespace
 }; // end of isc namespace
similarity index 99%
rename from src/lib/dhcpsrv/pgsql_exchange.h
rename to src/lib/pgsql/pgsql_exchange.h
index fd506dd26ccd617fb9dcb838fa2ff4dc1d865d0f..4aa82b22357491dbf0194dc39b5c998b5c45be34 100644 (file)
@@ -8,7 +8,7 @@
 #define PGSQL_EXCHANGE_H
 
 #include <asiolink/io_address.h>
-#include <dhcpsrv/pgsql_connection.h>
+#include <pgsql/pgsql_connection.h>
 
 #include <boost/lexical_cast.hpp>
 #include <boost/noncopyable.hpp>
@@ -19,7 +19,7 @@
 #include <iostream>
 
 namespace isc {
-namespace dhcp {
+namespace db {
 
 /// @brief Structure used to bind C++ input values to dynamic SQL parameters
 /// The structure contains three vectors which store the input values,
@@ -396,7 +396,7 @@ protected:
     std::vector<std::string>columns_;
 };
 
-}; // end of isc::dhcp namespace
+}; // end of isc::db namespace
 }; // end of isc namespace
 
 #endif // PGSQL_EXCHANGE_H
diff --git a/src/lib/pgsql/tests/.gitignore b/src/lib/pgsql/tests/.gitignore
new file mode 100644 (file)
index 0000000..0d7d352
--- /dev/null
@@ -0,0 +1 @@
+/libpgsql_unittests
\ No newline at end of file
diff --git a/src/lib/pgsql/tests/Makefile.am b/src/lib/pgsql/tests/Makefile.am
new file mode 100644 (file)
index 0000000..6dfe25c
--- /dev/null
@@ -0,0 +1,38 @@
+SUBDIRS = .
+
+AM_CPPFLAGS = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
+AM_CPPFLAGS += $(BOOST_INCLUDES)
+
+AM_CXXFLAGS = $(KEA_CXXFLAGS)
+
+if USE_STATIC_LINK
+AM_LDFLAGS = -static
+endif
+
+CLEANFILES = *.gcno *.gcda
+
+TESTS_ENVIRONMENT = \
+       $(LIBTOOL) --mode=execute $(VALGRIND_COMMAND)
+
+TESTS =
+if HAVE_GTEST
+TESTS += libpgsql_unittests
+
+libpgsql_unittests_SOURCES  = pgsql_exchange_unittest.cc
+libpgsql_unittests_SOURCES += run_unittests.cc
+
+libpgsql_unittests_CPPFLAGS = $(AM_CPPFLAGS) $(GTEST_INCLUDES)
+libpgsql_unittests_LDFLAGS = $(AM_LDFLAGS) $(GTEST_LDFLAGS) $(PGSQL_LIBS)
+
+libpgsql_unittests_LDADD  = $(top_builddir)/src/lib/pgsql/libkea-pgsql.la
+libpgsql_unittests_LDADD += $(top_builddir)/src/lib/database/libkea-database.la
+libpgsql_unittests_LDADD += $(top_builddir)/src/lib/asiolink/libkea-asiolink.la
+libpgsql_unittests_LDADD += $(top_builddir)/src/lib/log/libkea-log.la
+libpgsql_unittests_LDADD += $(top_builddir)/src/lib/util/threads/libkea-threads.la
+libpgsql_unittests_LDADD += $(top_builddir)/src/lib/util/libkea-util.la
+libpgsql_unittests_LDADD += $(top_builddir)/src/lib/exceptions/libkea-exceptions.la
+libpgsql_unittests_LDADD += $(LOG4CPLUS_LIBS) $(BOOST_LIBS) $(GTEST_LDADD)
+
+endif
+
+noinst_PROGRAMS = $(TESTS)
similarity index 99%
rename from src/lib/dhcpsrv/tests/pgsql_exchange_unittest.cc
rename to src/lib/pgsql/tests/pgsql_exchange_unittest.cc
index df3339aa6d706ec810e7b066c987f2ca3143e5ba..173665ac94c3e768c4914527b6cb811a8749bef2 100644 (file)
@@ -6,8 +6,8 @@
 
 #include <config.h>
 
-#include <dhcpsrv/pgsql_connection.h>
-#include <dhcpsrv/pgsql_exchange.h>
+#include <pgsql/pgsql_connection.h>
+#include <pgsql/pgsql_exchange.h>
 
 #include <boost/lexical_cast.hpp>
 
@@ -18,7 +18,6 @@
 
 using namespace isc;
 using namespace isc::db;
-using namespace isc::dhcp;
 
 namespace {
 
diff --git a/src/lib/pgsql/tests/run_unittests.cc b/src/lib/pgsql/tests/run_unittests.cc
new file mode 100644 (file)
index 0000000..4e83d4b
--- /dev/null
@@ -0,0 +1,20 @@
+// Copyright (C) 2018 Internet Systems Consortium, Inc. ("ISC")
+//
+// This Source Code Form is subject to the terms of the Mozilla Public
+// License, v. 2.0. If a copy of the MPL was not distributed with this
+// file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#include <config.h>
+
+#include <log/logger_support.h>
+#include <gtest/gtest.h>
+
+int
+main(int argc, char* argv[]) {
+    ::testing::InitGoogleTest(&argc, argv);
+    isc::log::initLogger();
+
+    int result = RUN_ALL_TESTS();
+
+    return (result);
+}
index 0a0efda63206c3b6e08ca5886f8123ae58b5147d..33f9692d7cc07d622306c351c27b268f02010478 100644 (file)
@@ -59,6 +59,9 @@ libkea_process_la_LIBADD += $(top_builddir)/src/lib/asiolink/libkea-asiolink.la
 if HAVE_MYSQL
 libkea_process_la_LIBADD += $(top_builddir)/src/lib/mysql/libkea-mysql.la
 endif
+if HAVE_PGSQL
+libkea_process_la_LIBADD += $(top_builddir)/src/lib/pgsql/libkea-pgsql.la
+endif
 
 libkea_process_la_LIBADD += $(top_builddir)/src/lib/database/libkea-database.la
 libkea_process_la_LIBADD += $(top_builddir)/src/lib/cc/libkea-cc.la