diff --git a/doc/devel/unit-tests.dox b/doc/devel/unit-tests.dox index ecaa04ffb4..c91d2849e7 100644 --- a/doc/devel/unit-tests.dox +++ b/doc/devel/unit-tests.dox @@ -263,7 +263,24 @@ local all postgres trust @subsection cqlUnitTestsPrerequisites Cassandra database - @todo: Describe steps necessary to set up Cassandra database suitable for running - unittests. + @todo: Describe steps necessary to set up Cassandra database suitable + for running unittests. + It seems this was enough: + + -# Launch cassandra if not running (-f for foreground) + @verbatim + % cassandra -f + @endverbatim + + The tool is cqlsh: + + -# Run the tool + @verbatim + % cqlsh + Connected to Test Cluster at 127.0.0.1:9042. + [cqlsh 5.0.1 | Cassandra 3.11.1 | CQL spec 3.4.4 | Native protocol v4] + Use HELP for help. + cqlsh> @endverbatim\n + */ diff --git a/doc/guide/install.xml b/doc/guide/install.xml index a3f8c33e97..a520486a4e 100644 --- a/doc/guide/install.xml +++ b/doc/guide/install.xml @@ -439,22 +439,22 @@ Debian and Ubuntu: The install step may require superuser privileges. - If required, run ldconfig as root with - /usr/local/lib (or with prefix/lib if - configured with --prefix) in - /etc/ld.so.conf (or the relevant linker - cache configuration file for your OS): - $ ldconfig + If required, run ldconfig as root with + /usr/local/lib (or with prefix/lib if + configured with --prefix) in + /etc/ld.so.conf (or the relevant linker + cache configuration file for your OS): + $ ldconfig - If you do not run ldconfig where it is - required, you may see errors like the following: + If you do not run ldconfig where it is + required, you may see errors like the following: - program: error while loading shared libraries: libkea-something.so.1: - cannot open shared object file: No such file or directory - - + program: error while loading shared libraries: libkea-something.so.1: + cannot open shared object file: No such file or directory + + @@ -474,10 +474,10 @@ Debian and Ubuntu: JSON - JSON is the default configuration backend - that allows Kea to read JSON configuration files from - disk. It does not require any framework and thus is - considered more lightweight. It allows dynamic on-line + JSON is the default configuration backend + that allows Kea to read JSON configuration files from + disk. It does not require any framework and thus is + considered more lightweight. It allows dynamic on-line reconfiguration using Kea API. @@ -521,7 +521,7 @@ Debian and Ubuntu: "configure" step (see ), the --with-dhcp-mysql switch should be specified: ./configure [other-options] --with-dhcp-mysql - If MySQL was not installed in the default location, the location of the MySQL + If MySQL was not installed in the default location, the location of the MySQL configuration program "mysql_config" should be included with the switch, i.e. ./configure [other-options] --with-dhcp-mysql=path-to-mysql_config @@ -543,7 +543,7 @@ Debian and Ubuntu: "configure" step (see ), the --with-dhcp-pgsql switch should be specified: ./configure [other-options] --with-dhcp-pgsql - If PostgreSQL was not installed in the default location, the location of the PostgreSQL + If PostgreSQL was not installed in the default location, the location of the PostgreSQL configuration program "pg_config" should be included with the switch, i.e. ./configure [other-options] --with-dhcp-pgsql=path-to-pg_config @@ -569,6 +569,7 @@ Debian and Ubuntu: $ git clone https://github.com/datastax/cpp-driver $ cd cpp-driver $ mkdir build +$ cd build $ cmake .. $ make diff --git a/src/bin/admin/admin-utils.sh b/src/bin/admin/admin-utils.sh index 80f5410306..464cc22ab7 100755 --- a/src/bin/admin/admin-utils.sh +++ b/src/bin/admin/admin-utils.sh @@ -128,7 +128,7 @@ cql_execute_script() { cql_version() { version=$(cql_execute "SELECT version, minor FROM schema_version" "$@") error=$? - version=$(echo "$version" | grep -A 1 "+" | grep -v "+" | tr -d ' ' | cut -d "|" -f 1-2 --output-delimiter=".") + version=$(echo "$version" | grep -A 1 "+" | grep -v "+" | tr -d ' ' | cut -d "|" -f 1-2 | tr "|" ".") echo "$version" return $error } diff --git a/src/bin/admin/kea-admin.in b/src/bin/admin/kea-admin.in index 7613dfafa6..4be383ddb4 100644 --- a/src/bin/admin/kea-admin.in +++ b/src/bin/admin/kea-admin.in @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2014-2017 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2014-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 @@ -448,7 +448,7 @@ mysql_dump() { ### Functions used for dump pgsql_dump() { # Check the lease type was given - if [ $dump_type -eq o ]; then + if [ $dump_type -eq 0 ]; then log_error "lease-dump: lease type ( -4 or -6 ) needs to be specified" usage exit 1 @@ -518,11 +518,11 @@ cql_dump() { fi # Parse and display header. - echo "$result" | head -n 2 | tail -n 1 | sed -e 's/\s*//g' | sed -e 's/|/,/g' > $dump_file + echo "$result" | head -n 2 | tail -n 1 | sed -e 's/[[:space:]]*//g' | sed -e 's/|/,/g' > $dump_file # Parse and display contents - done separately from header to allow sorting - # by address. - echo "$result" | tail -n +4 | head -n -2 | sed -e 's/\s*//g' | sed -e 's/|/,/g' | sort -r >> $dump_file + # by address. awk script replaces head -n -2 which is not portable. + echo "$result" | tail -n +4 | awk 'n>=2 { print a[n%2] } { a[n%2]=$0; n=n+1 }' | sed -e 's/[[:space:]]*//g' | sed -e 's/|/,/g' | sort -r >> $dump_file echo lease$dump_type successfully dumped to $dump_file exit 0 diff --git a/src/lib/dhcpsrv/cql_lease_mgr.h b/src/lib/dhcpsrv/cql_lease_mgr.h index f8ffd82d68..5be75b6666 100644 --- a/src/lib/dhcpsrv/cql_lease_mgr.h +++ b/src/lib/dhcpsrv/cql_lease_mgr.h @@ -330,7 +330,7 @@ public: /// /// @throw isc::dhcp::DbOperationError An operation on the open database has /// failed. - virtual bool deleteLease(const isc::asiolink::IOAddress& addr); + virtual bool deleteLease(const isc::asiolink::IOAddress& addr) override; /// @brief Deletes all expired and reclaimed DHCPv4 leases. /// @@ -361,7 +361,7 @@ public: /// /// @param subnet_id identifier of the subnet /// @return number of leases removed. - virtual size_t wipeLeases4(const SubnetID& subnet_id); + virtual size_t wipeLeases4(const SubnetID& subnet_id) override; /// @brief Removed specified IPv6 leases. /// @@ -372,7 +372,7 @@ public: /// /// @param subnet_id identifier of the subnet /// @return number of leases removed. - virtual size_t wipeLeases6(const SubnetID& subnet_id); + virtual size_t wipeLeases6(const SubnetID& subnet_id) override; /// @brief Return backend type /// diff --git a/src/share/database/scripts/cql/dhcpdb_drop.cql b/src/share/database/scripts/cql/dhcpdb_drop.cql index c2833ac922..1b80d3e63c 100644 --- a/src/share/database/scripts/cql/dhcpdb_drop.cql +++ b/src/share/database/scripts/cql/dhcpdb_drop.cql @@ -21,6 +21,8 @@ DROP TABLE IF EXISTS lease_hwaddr_source; DROP TABLE IF EXISTS lease_state; DROP TABLE IF EXISTS schema_version; DROP TABLE IF EXISTS host_reservations; +DROP TABLE IF EXISTS dhcp4_options; +DROP TABLE IF EXISTS dhcp6_options; DROP INDEX IF EXISTS lease4index1; DROP INDEX IF EXISTS lease4index2; diff --git a/tools/Makefile.am b/tools/Makefile.am index 4be133f4a1..b18bd4facd 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -20,6 +20,6 @@ EXTRA_DIST = system_messages # Scripts for Cassandra support. Ultimately those scripts will have to be # incorporated in DataStax cpp-driver source tree, but until that happens, # let's keep them in Kea rpo -EXTRA_DIST += cql_config cql_config_defines.sh +EXTRA_DIST += cql_config cql_config_defines.sh.sample endif diff --git a/tools/cql_config b/tools/cql_config index 19a426a46e..fba61640aa 100755 --- a/tools/cql_config +++ b/tools/cql_config @@ -1,8 +1,14 @@ #!/bin/bash -DIR=$(readlink -f $0 | xargs dirname) + +if test `uname -s` = "Darwin"; then + DIR=$(stat -f %N $0 | xargs dirname) +else + DIR=$(readlink -f $0 | xargs dirname) +fi + if ! [ -f ${DIR}/cql_config_defines.sh ] || ! [ -x ${DIR}/cql_config_defines.sh ] then - echo "missing path configuration file for DataStax Cassandra (cql_config_defines.h)" + echo "missing path configuration file for DataStax Cassandra (cql_config_defines.sh)" exit 0 fi source ${DIR}/cql_config_defines.sh diff --git a/tools/cql_config_defines.sh b/tools/cql_config_defines.sh.sample similarity index 100% rename from tools/cql_config_defines.sh rename to tools/cql_config_defines.sh.sample