Commit 53c1c6aa authored by Razvan Becheriu's avatar Razvan Becheriu Committed by Tomek Mrugalski

added support for datastax cassandra

parent f15c1a11
......@@ -995,6 +995,58 @@ fi
# ... and at the shell level, so Makefile.am can take action depending on this.
AM_CONDITIONAL(HAVE_PGSQL, test "$PG_CONFIG" != "")
dsc_config="no"
AC_ARG_WITH([dhcp-dscsql],
AC_HELP_STRING([--with-dhcp-dscsql=PATH],
[path to the DataStaxCassandraSQL 'dsc_config' script]),
[dsc_config="$withval"])
if test "${dsc_config}" = "yes" ; then
DSC_CONFIG="/usr/bin/dsc_config"
elif test "${dsc_config}" != "no" ; then
DSC_CONFIG="${withval}"
fi
if test "$DSC_CONFIG" != "" ; then
if test -d "$DSC_CONFIG" -o ! -x "$DSC_CONFIG" ; then
AC_MSG_ERROR([--with-dhcp-dscsql should point to a dsc_config program])
fi
DSCSQL_CPPFLAGS=`$DSC_CONFIG --cppflags`
DSCSQL_INCLUDEDIR=`$DSC_CONFIG --includedir`
DSCSQL_CPPFLAGS="$DSCSQL_CPPFLAGS -I$DSCSQL_INCLUDEDIR"
DSCSQL_LIBS=`$DSC_CONFIG --libdir`
DSCSQL_LIBS="-L$DSCSQL_LIBS -lcassandra_static -luv"
DSCSQL_VERSION=`$DSC_CONFIG --version`
AC_SUBST(DSCSQL_CPPFLAGS)
AC_SUBST(DSCSQL_LIBS)
# Check that a simple program using DSCSQL functions can compile and link.
CPPFLAGS_SAVED="$CPPFLAGS"
LIBS_SAVED="$LIBS"
CPPFLAGS="$DSCSQL_CPPFLAGS $CPPFLAGS"
LIBS="$DSCSQL_LIBS $LIBS"
AC_LINK_IFELSE(
[AC_LANG_PROGRAM([#include <cassandra.h>],
[CassCluster* cluster = cass_cluster_new();
cass_cluster_free(cluster);])],
[AC_MSG_RESULT([checking for DataStax Cassandra SQL headers and library... yes])],
[AC_MSG_RESULT([checking for DataStax Cassandra SQL headers and library... no])
AC_MSG_ERROR([Needs DataStax Cassandra SQL library])]
)
CPPFLAGS=$CPPFLAGS_SAVED
LIBS=$LIBS_SAVED
# Note that DSCSQL is present in the config.h file
AC_DEFINE([HAVE_DSCSQL], [1], [DSCSQL is present])
fi
# ... and at the shell level, so Makefile.am can take action depending on this.
AM_CONDITIONAL(HAVE_DSCSQL, test "$DSC_CONFIG" != "")
# Check for log4cplus
log4cplus_path="yes"
AC_ARG_WITH([log4cplus],
......@@ -1409,6 +1461,7 @@ AC_CONFIG_FILES([compatcheck/Makefile
src/bin/admin/tests/memfile_tests.sh
src/bin/admin/tests/mysql_tests.sh
src/bin/admin/tests/pgsql_tests.sh
src/bin/admin/tests/dscsql_tests.sh
src/hooks/Makefile
src/hooks/dhcp/Makefile
src/hooks/dhcp/user_chk/Makefile
......@@ -1486,6 +1539,7 @@ AC_CONFIG_FILES([compatcheck/Makefile
src/share/database/scripts/pgsql/Makefile
src/share/database/scripts/pgsql/upgrade_1.0_to_2.0.sh
src/share/database/scripts/pgsql/upgrade_2.0_to_3.0.sh
src/share/database/scripts/dscsql/Makefile
tools/Makefile
tools/path_replacer.sh
])
......@@ -1619,6 +1673,22 @@ PostgreSQL:
END
fi
if test "$DSCSQL_CPPFLAGS" != "" ; then
cat >> config.report << END
DataStax Cassandra SQL:
DSCSQL_VERSION: ${DSCSQL_VERSION}
DSCSQL_CPPFLAGS: ${DSCSQL_CPPFLAGS}
DSCSQL_LIBS: ${DSCSQL_LIBS}
END
else
cat >> config.report << END
DataStax Cassandra SQL:
no
END
fi
if test "$enable_gtest" != "no"; then
cat >> config.report << END
......
......@@ -86,3 +86,24 @@ pgsql_version() {
pgsql_execute "SELECT version || '.' || minor FROM schema_version" "$@"
return $?
}
dscsql_execute() {
QUERY=$1
shift
if [ $# -gt 1 ]; then
cqlsh $* -e "${QUERY}"
retcode=$?
else
cqlsh -u $db_user -p $db_password -e "${QUERY}" -k $db_name
retcode="$?"
fi
return $retcode
}
dscsql_version() {
version=`dscsql_execute "SELECT version, minor FROM schema_version" "$@"`
version=`echo "$version" | grep -A 1 "+" | grep -v "+" | tr -d ' ' | cut -d "|" -f 1-2 --output-delimiter="."`
echo $version
return $?
}
......@@ -55,7 +55,7 @@ usage() {
printf " - lease-upgrade: Upgrades your lease database scheme\n"
printf " - lease-dump: Dump current leases to a CSV file\n"
printf "\n"
printf "BACKEND - one of the supported backends: memfile|mysql|pgsql\n"
printf "BACKEND - one of the supported backends: memfile|mysql|pgsql|dscsql\n"
printf "\n"
printf "PARAMETERS: Parameters are optional in general, but may be required\n"
printf " for specific operation.\n"
......@@ -148,7 +148,7 @@ mysql_init() {
if [ $COUNT -gt 0 ]; then
# Let't start with a new line. mysql could have printed something out.
printf "\n"
log_error "Expected empty database $db_name, but there are $COUNT tables: \n$_RESULT. Aborting."
log_error "Expected empty database $db_name, but there are $COUNT tables: \n$RESULT. Aborting."
exit 1
fi
......@@ -200,6 +200,47 @@ pgsql_init() {
exit 0
}
dscsql_init() {
printf "Checking if there is a database initialized already. Please ignore errors.\n"
# Let's try to count the number of tables. Anything above 0 means that there
# is some database in place. If there is anything, we abort. Note that
# dsc sql may spit out connection or access errors to stderr, we ignore those.
# We should not hide them as they may give hints to user what is wrong with
# his setup.
#
RESULT=`echo "DESCRIBE keyspaces;" | cqlsh`
ERRCODE=$?
if [ $ERRCODE -ne 0 ]
then
log_error "dscsql_init table query failed, cqlsh status = $ERRCODE"
exit 1
fi
COUNT=`echo $RESULT | grep $db_name | wc -w`
if [ $COUNT -gt 0 ]; then
# Let't start with a new line. cqlsh could have printed something out.
printf "\n"
log_error "Expected empty database $db_name, but there are $COUNT tables: \n$RESULT. Aborting."
exit 1
fi
printf "Initializing database using script %s\n" $scripts_dir/dscsql/dhcpdb_create.cql
cqlsh -u $db_user -p $db_password -e "CREATE KEYSPACE $db_name WITH replication = {'class' : 'SimpleStrategy','replication_factor' : 1};"
cqlsh -u $db_user -p $db_password -k $db_name -f $scripts_dir/dscsql/dhcpdb_create.cql
ERRCODE=$?
printf "cqlsh returned status code $ERRCODE\n"
if [ "$ERRCODE" -eq 0 ]; then
printf "Lease DB version reported after initialization: "
dscsql_version
printf "\n"
fi
exit $ERRCODE
}
### Functions that implement database version checking commands
memfile_version() {
# @todo Implement this as part of #3601
......@@ -282,6 +323,34 @@ pgsql_upgrade() {
exit 0
}
dscsql_upgrade() {
version=`dscsql_version`
printf "Lease DB version reported before upgrade: $version\n"
# Check if the scripts directory exists at all.
if [ ! -d ${scripts_dir}/dscsql ]; then
log_error "Invalid scripts directory: ${scripts_dir}/dscsql"
exit 1
fi
# Check if there are any files in it
num_files=$(find ${scripts_dir}/dscsql/upgrade*.sh -type f | wc -l)
if [ $num_files -eq 0 ]; then
log_error "No scripts in ${scripts_dir}/dscsql or the directory is not readable or does not have any upgrade* scripts."
exit 1
fi
for script in ${scripts_dir}/dscsql/upgrade*.sh
do
echo "Processing $script file..."
sh ${script} -u ${db_user} -p ${db_password} -k ${db_name}
done
version=`dscsql_version`
printf "Lease DB version reported after upgrade: $version\n"
exit 0
}
# Utility function which tests if the given file exists and
# if so notifies the user and provides them the opportunity
# to abort the current command.
......@@ -315,6 +384,9 @@ get_dump_query() {
pgsql)
invoke="select * from"
;;
dscsql)
invoke="select * from"
;;
*)
log_error "unsupported backend ${backend}"
usage
......@@ -419,6 +491,61 @@ pgsql_dump() {
exit 0
}
dscsql_dump() {
# get the correct dump query
version=`dscsql_version`
retcode=$?
if [ $retcode -ne 0 ]
then
log_error "lease-dump: dscsql_version failed, exit code $retcode"
exit 1;
fi
# Fetch the correct SQL text. Note this function will exit
# if it fails.
get_dump_query $version
# Make sure they specified a file
if [ "$dump_file" = "" ]; then
log_error "you must specify an output file for lease-dump"
usage
exit 1
fi
# If output file exists, notify user, allow them a chance to bail
check_file_overwrite $dump_file
# Check the temp file too
tmp_file="$dump_file.tmp"
check_file_overwrite $tmp_file
# Run the sql to output tab-delimited lease data to a temp file.
# By using a temp file we can check for MySQL errors before using
# 'tr' to translate tabs to commas. We do not use MySQL's output
# to file as that requires linux superuser privileges to execute
# the select.
dscsql_execute "${dump_qry}" > $tmp_file
retcode=$?
if [ $retcode -ne 0 ]; then
log_error "lease-dump: dscsql_execute failed, exit code $retcode";
exit 1
fi
# Now translate tabs to commas.
cat $tmp_file | tr '\t' ',' >$dump_file
if [ $? -ne 0 ]; then
log_error "lease-dump: reformatting failed";
exit 1
fi
# delete the tmp file on success
rm $tmp_file
echo lease$dump_type successfully dumped to $dump_file
exit 0
}
### Script starts here ###
# First, find what the command is
......@@ -442,7 +569,7 @@ if [ -z ${backend} ]; then
usage
exit 1
fi
is_in_list "${backend}" "memfile mysql pgsql"
is_in_list "${backend}" "memfile mysql pgsql dscsql"
if [ ${_inlist} -eq 0 ]; then
log_error "invalid backend: ${backend}"
exit 1
......@@ -542,6 +669,9 @@ case ${command} in
pgsql)
pgsql_init
;;
dscsql)
dscsql_init
;;
esac
;;
lease-version)
......@@ -556,6 +686,9 @@ case ${command} in
pgsql)
pgsql_version
;;
dscsql)
dscsql_version
;;
esac
;;
lease-upgrade)
......@@ -569,6 +702,9 @@ case ${command} in
pgsql)
pgsql_upgrade
;;
dscsql)
dscsql_upgrade
;;
esac
;;
lease-dump)
......@@ -582,6 +718,9 @@ case ${command} in
pgsql)
pgsql_dump
;;
dscsql)
dscsql_dump
;;
esac
;;
esac
......
......@@ -10,13 +10,17 @@ if HAVE_PGSQL
SHTESTS += pgsql_tests.sh
endif
if HAVE_DSCSQL
SHTESTS += dscsql_tests.sh
endif
noinst_SCRIPTS = $(SHTESTS)
EXTRA_DIST = dhcpdb_create_1.0.mysql
EXTRA_DIST += dhcpdb_create_1.0.pgsql
EXTRA_DIST += dhcpdb_create_1.0.cql
CLEANFILES = *.log
DISTCLEANFILES = memfile_tests.sh mysql_tests.sh pgsql_tests.sh
DISTCLEANFILES = memfile_tests.sh mysql_tests.sh pgsql_tests.sh dscsql_tests.sh
# Execute all test scripts.
check-local:
......
EXTRA_DIST = mysql.lease4_dump_test.reference.csv \
mysql.lease6_dump_test.reference.csv \
pgsql.lease4_dump_test.reference.csv \
pgsql.lease6_dump_test.reference.csv
pgsql.lease6_dump_test.reference.csv \
dscsql.lease4_dump_test.reference.csv \
dscsql.lease6_dump_test.reference.csv
......@@ -9,6 +9,9 @@ endif
if HAVE_PGSQL
AM_CPPFLAGS += $(PGSQL_CPPFLAGS)
endif
if HAVE_DSCSQL
AM_CPPFLAGS += $(DSCSQL_CPPFLAGS)
endif
AM_CXXFLAGS = $(KEA_CXXFLAGS)
if USE_CLANGPP
......@@ -119,6 +122,9 @@ endif
if HAVE_PGSQL
kea_dhcp_ddns_LDFLAGS += $(PGSQL_LIBS)
endif
if HAVE_DSCSQL
kea_dhcp_ddns_LDFLAGS += $(DSCSQL_LIBS)
endif
kea_dhcp_ddnsdir = $(pkgdatadir)
kea_dhcp_ddns_DATA = dhcp-ddns.spec
......@@ -21,6 +21,9 @@
#ifdef HAVE_PGSQL
#include <dhcpsrv/pgsql_lease_mgr.h>
#endif
#ifdef HAVE_DSCSQL
#include <dhcpsrv/dscsql_lease_mgr.h>
#endif
#include <dhcpsrv/memfile_lease_mgr.h>
#include <sstream>
......@@ -484,6 +487,9 @@ DControllerBase::getVersion(bool extended) {
#endif
#ifdef HAVE_PGSQL
tmp << isc::dhcp::PgSqlLeaseMgr::getDBVersion() << std::endl;
#endif
#ifdef HAVE_DSCSQL
tmp << isc::dhcp::DSCSqlLeaseMgr::getDBVersion() << std::endl;
#endif
tmp << isc::dhcp::Memfile_LeaseMgr::getDBVersion();
......
......@@ -75,6 +75,9 @@ endif
if HAVE_PGSQL
d2_unittests_LDFLAGS += $(PGSQL_LIBS)
endif
if HAVE_DSCSQL
d2_unittests_LDFLAGS += $(DSCSQL_LIBS)
endif
d2_unittests_LDFLAGS += $(GTEST_LDFLAGS)
d2_unittests_LDADD = $(top_builddir)/src/bin/d2/libd2.la
......
......@@ -10,6 +10,9 @@ endif
if HAVE_PGSQL
AM_CPPFLAGS += $(PGSQL_CPPFLAGS)
endif
if HAVE_DSCSQL
AM_CPPFLAGS += $(DSCSQL_CPPFLAGS)
endif
AM_CXXFLAGS = $(KEA_CXXFLAGS)
if USE_CLANGPP
......@@ -99,6 +102,9 @@ endif
if HAVE_PGSQL
kea_dhcp4_LDFLAGS += $(PGSQL_LIBS)
endif
if HAVE_DSCSQL
kea_dhcp4_LDFLAGS += $(DSCSQL_LIBS)
endif
kea_dhcp4dir = $(pkgdatadir)
kea_dhcp4_DATA = dhcp4.spec
......@@ -49,6 +49,9 @@
#ifdef HAVE_PGSQL
#include <dhcpsrv/pgsql_lease_mgr.h>
#endif
#ifdef HAVE_DSCSQL
#include <dhcpsrv/dscsql_lease_mgr.h>
#endif
#include <dhcpsrv/memfile_lease_mgr.h>
#include <boost/bind.hpp>
......@@ -2534,6 +2537,9 @@ Dhcpv4Srv::getVersion(bool extended) {
#endif
#ifdef HAVE_PGSQL
tmp << PgSqlLeaseMgr::getDBVersion() << endl;
#endif
#ifdef HAVE_DSCSQL
tmp << DSCSqlLeaseMgr::getDBVersion() << endl;
#endif
tmp << Memfile_LeaseMgr::getDBVersion();
......
......@@ -106,6 +106,9 @@ endif
if HAVE_PGSQL
dhcp4_unittests_LDFLAGS += $(PGSQL_LIBS)
endif
if HAVE_DSCSQL
dhcp4_unittests_LDFLAGS += $(DSCSQL_LIBS)
endif
dhcp4_unittests_LDFLAGS += $(GTEST_LDFLAGS)
dhcp4_unittests_LDADD = $(top_builddir)/src/bin/dhcp4/libdhcp4.la
......
......@@ -10,6 +10,9 @@ endif
if HAVE_PGSQL
AM_CPPFLAGS += $(PGSQL_CPPFLAGS)
endif
if HAVE_DSCSQL
AM_CPPFLAGS += $(DSCSQL_CPPFLAGS)
endif
AM_CXXFLAGS = $(KEA_CXXFLAGS)
if USE_CLANGPP
......@@ -100,6 +103,9 @@ endif
if HAVE_PGSQL
kea_dhcp6_LDFLAGS += $(PGSQL_LIBS)
endif
if HAVE_DSCSQL
kea_dhcp6_LDFLAGS += $(DSCSQL_LIBS)
endif
kea_dhcp6dir = $(pkgdatadir)
kea_dhcp6_DATA = dhcp6.spec
......@@ -58,6 +58,9 @@
#ifdef HAVE_PGSQL
#include <dhcpsrv/pgsql_lease_mgr.h>
#endif
#ifdef HAVE_DSCSQL
#include <dhcpsrv/dscsql_lease_mgr.h>
#endif
#include <dhcpsrv/memfile_lease_mgr.h>
#include <boost/bind.hpp>
......@@ -2982,6 +2985,9 @@ Dhcpv6Srv::getVersion(bool extended) {
#endif
#ifdef HAVE_PGSQL
tmp << PgSqlLeaseMgr::getDBVersion() << endl;
#endif
#ifdef HAVE_DSCSQL
tmp << DSCSqlLeaseMgr::getDBVersion() << endl;
#endif
tmp << Memfile_LeaseMgr::getDBVersion();
......
......@@ -107,6 +107,9 @@ endif
if HAVE_PGSQL
dhcp6_unittests_LDFLAGS += $(PGSQL_LIBS)
endif
if HAVE_DSCSQL
dhcp6_unittests_LDFLAGS += $(DSCSQL_LIBS)
endif
dhcp6_unittests_LDFLAGS += $(GTEST_LDFLAGS)
dhcp6_unittests_LDADD = $(top_builddir)/src/bin/dhcp6/libdhcp6.la
......
......@@ -83,5 +83,8 @@ endif
if HAVE_PGSQL
kea_lfc_LDFLAGS += $(PGSQL_LIBS)
endif
if HAVE_DSCSQL
kea_lfc_LDFLAGS += $(DSCSQL_LIBS)
endif
kea_lfcdir = $(pkgdatadir)
......@@ -52,6 +52,9 @@ endif
if HAVE_PGSQL
lfc_unittests_LDFLAGS += $(PGSQL_LIBS)
endif
if HAVE_DSCSQL
lfc_unittests_LDFLAGS += $(DSCSQL_LIBS)
endif
lfc_unittests_LDFLAGS += $(GTEST_LDFLAGS)
lfc_unittests_LDADD = $(top_builddir)/src/bin/lfc/liblfc.la
......
......@@ -16,6 +16,9 @@ endif
if HAVE_PGSQL
AM_CPPFLAGS += $(PGSQL_CPPFLAGS)
endif
if HAVE_DSCSQL
AM_CPPFLAGS += $(DSCSQL_CPPFLAGS)
endif
AM_CXXFLAGS = $(KEA_CXXFLAGS)
......@@ -138,6 +141,10 @@ 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_lease_mgr.cc pgsql_lease_mgr.h
endif
if HAVE_DSCSQL
libkea_dhcpsrv_la_SOURCES += dscsql_lease_mgr.cc dscsql_lease_mgr.h
libkea_dhcpsrv_la_SOURCES += dscsql_connection.cc dscsql_connection.h
endif
libkea_dhcpsrv_la_SOURCES += pool.cc pool.h
libkea_dhcpsrv_la_SOURCES += srv_config.cc srv_config.h
libkea_dhcpsrv_la_SOURCES += subnet.cc subnet.h
......@@ -197,6 +204,9 @@ endif
if HAVE_PGSQL
libkea_dhcpsrv_la_LDFLAGS += $(PGSQL_LIBS)
endif
if HAVE_DSCSQL
libkea_dhcpsrv_la_LDFLAGS += $(DSCSQL_LIBS)
endif
if USE_CLANGPP
# Disable unused parameter warning caused by some of the
......
......@@ -808,3 +808,106 @@ indicate an error in the source code, please submit a bug report.
% DHCPSRV_UNKNOWN_DB unknown database type: %1
The database access string specified a database type (given in the
message) that is unknown to the software. This is a configuration error.
% DHCPSRV_DSCSQL_ADD_ADDR4 adding IPv4 lease with address %1
A debug message issued when the server is about to add an IPv4 lease
with the specified address to the DataStax Cassandra backend database.
% DHCPSRV_DSCSQL_ADD_ADDR6 adding IPv6 lease with address %1
A debug message issued when the server is about to add an IPv6 lease
with the specified address to the DataStax Cassandra backend database.
% DHCPSRV_DSCSQL_COMMIT committing to DataStax Cassandra database
The code has issued a commit call.
% DHCPSRV_DSCSQL_DB opening DataStax Cassandra lease database: %1
This informational message is logged when a DHCP server (either V4 or
V6) is about to open a DataStax Cassandra lease database. The parameters of
the connection including database name and username needed to access it
(but not the password if any) are logged.
% DHCPSRV_DSCSQL_DELETE_ADDR deleting lease for address %1
A debug message issued when the server is attempting to delete a lease
for the specified address from the DataStax Cassandra database for the specified
address.
% DHCPSRV_DSCSQL_DELETE_EXPIRED_RECLAIMED4 deleting reclaimed IPv4 leases that expired more than %1 seconds ago
A debug message issued when the server is removing reclaimed DHCPv4
leases which have expired longer than a specified period of time.
The argument is the amount of time Kea waits after a reclaimed
lease expires before considering its removal.
% DHCPSRV_DSCSQL_DELETE_EXPIRED_RECLAIMED6 deleting reclaimed IPv6 leases that expired more than %1 seconds ago
A debug message issued when the server is removing reclaimed DHCPv6
leases which have expired longer than a specified period of time.
The argument is the amount of time Kea waits after a reclaimed
lease expires before considering its removal.
% DHCPSRV_DSCSQL_GET_ADDR4 obtaining IPv4 lease for address %1
A debug message issued when the server is attempting to obtain an IPv4
lease from the DataStax Cassandra database for the specified address.
% DHCPSRV_DSCSQL_GET_ADDR6 obtaining IPv6 lease for address %1 and lease type %2
A debug message issued when the server is attempting to obtain an IPv6
lease from the DataStax Cassandra database for the specified address.
% DHCPSRV_DSCSQL_GET_CLIENTID obtaining IPv4 leases for client ID %1
A debug message issued when the server is attempting to obtain a set of
IPv4 leases from the DataStax Cassandra database for a client with the specified
client identification.
% DHCPSRV_DSCSQL_GET_CLIENTID_HWADDR_SUBID obtaining IPv4 lease for client ID %1, hardware address %2 and subnet ID %3
A debug message issued when the server is attempting to obtain an IPv4
lease from the DataStax Cassandra database for a client with the specified
client ID, hardware address and subnet ID.
% DHCPSRV_DSCSQL_GET_EXPIRED4 obtaining maximum %1 of expired IPv4 leases
A debug message issued when the server is attempting to obtain expired
IPv4 leases to reclaim them. The maximum number of leases to be retrieved
is logged in the message.
% DHCPSRV_DSCSQL_GET_EXPIRED6 obtaining maximum %1 of expired IPv6 leases
A debug message issued when the server is attempting to obtain expired
IPv6 leases to reclaim them. The maximum number of leases to be retrieved
is logged in the message.
% DHCPSRV_DSCSQL_GET_HWADDR obtaining IPv4 leases for hardware address %1
A debug message issued when the server is attempting to obtain a set of
IPv4 leases from the DataStax Cassandra database for a client with the specified
hardware address.
% DHCPSRV_DSCSQL_GET_IAID_DUID obtaining IPv6 leases for IAID %1 and DUID %2 and lease type %3
A debug message issued when the server is attempting to obtain a set of
IPv6 lease from the DataStax Cassandra database for a client with the specified
IAID (Identity Association ID) and DUID (DHCP Unique Identifier).
% DHCPSRV_DSCSQL_GET_IAID_SUBID_DUID obtaining IPv6 leases for IAID %1, Subnet ID %2, DUID %3 and lease type %4
A debug message issued when the server is attempting to obtain an IPv6
lease from the DataStax Cassandra database for a client with the specified IAID
(Identity Association ID), Subnet ID and DUID (DHCP Unique Identifier).
% DHCPSRV_DSCSQL_GET_SUBID_CLIENTID obtaining IPv4 lease for subnet ID %1 and client ID %2
A debug message issued when the server is attempting to obtain an IPv4
lease from the DataStax Cassandra database for a client with the specified
subnet ID and client ID.
% DHCPSRV_DSCSQL_GET_SUBID_HWADDR obtaining IPv4 lease for subnet ID %1 and hardware address %2
A debug message issued when the server is attempting to obtain an IPv4
lease from the DataStax Cassandra database for a client with the specified
subnet ID and hardware address.
% DHCPSRV_DSCSQL_GET_VERSION obtaining schema version information
A debug message issued when the server is about to obtain schema version
information from the DataStax Cassandra database.
% DHCPSRV_DSCSQL_ROLLBACK rolling back DataStax Cassandra database