|
@@ -28,7 +28,7 @@ else
|
|
|
fi
|
|
|
|
|
|
db_user="keatest"
|
|
|
-db_pass="keatest"
|
|
|
+db_password="keatest"
|
|
|
db_name="keatest"
|
|
|
|
|
|
# Set location of the kea-admin.
|
|
@@ -37,7 +37,7 @@ keaadmin=@abs_top_builddir@/src/bin/admin/kea-admin
|
|
|
# Wipe all tables from the DB:
|
|
|
mysql_wipe() {
|
|
|
printf "Wiping whole database %s\n" $db_name
|
|
|
- mysql -u$db_user -p$db_pass $db_name >/dev/null 2>&1 <<EOF
|
|
|
+ mysql -u$db_user -p$db_password $db_name >/dev/null 2>&1 <<EOF
|
|
|
SET @tables = NULL;
|
|
|
SELECT GROUP_CONCAT(table_schema, '.', table_name) INTO @tables
|
|
|
FROM information_schema.tables
|
|
@@ -57,42 +57,42 @@ mysql_lease_init_test() {
|
|
|
mysql_wipe
|
|
|
|
|
|
# Ok, now let's initalize the database
|
|
|
- ${keaadmin} lease-init mysql -u $db_user -p $db_pass -n $db_name -d @abs_top_srcdir@/src/bin/admin/scripts
|
|
|
+ ${keaadmin} lease-init mysql -u $db_user -p $db_password -n $db_name -d @abs_top_srcdir@/src/bin/admin/scripts
|
|
|
ERRCODE=$?
|
|
|
|
|
|
assert_eq 0 $ERRCODE "kea-admin lease-init mysql returned non-zero status code %d, expected %d"
|
|
|
|
|
|
# Ok, now let's check if the tables are indeed there.
|
|
|
# First table: schema_version. Should have 2 columns: version and minor.
|
|
|
- mysql -u$db_user -p$db_pass $db_name >/dev/null 2>&1 <<EOF
|
|
|
+ mysql -u$db_user -p$db_password $db_name >/dev/null 2>&1 <<EOF
|
|
|
SELECT version, minor FROM schema_version;
|
|
|
EOF
|
|
|
ERRCODE=$?
|
|
|
assert_eq 0 $ERRCODE "schema_version table is missing or broken. (returned status code %d, expected %d)"
|
|
|
|
|
|
# Second table: lease4
|
|
|
- mysql -u$db_user -p$db_pass $db_name >/dev/null 2>&1 <<EOF
|
|
|
+ mysql -u$db_user -p$db_password $db_name >/dev/null 2>&1 <<EOF
|
|
|
SELECT address, hwaddr, client_id, valid_lifetime, expire, subnet_id, fqdn_fwd, fqdn_rev, hostname FROM lease4;
|
|
|
EOF
|
|
|
ERRCODE=$?
|
|
|
assert_eq 0 $ERRCODE "lease4 table is missing or broken. (returned status code %d, expected %d)"
|
|
|
|
|
|
# Third table: lease6
|
|
|
- mysql -u$db_user -p$db_pass $db_name >/dev/null 2>&1 <<EOF
|
|
|
+ mysql -u$db_user -p$db_password $db_name >/dev/null 2>&1 <<EOF
|
|
|
SELECT address, duid, valid_lifetime, expire, subnet_id, pref_lifetime, lease_type, iaid, prefix_len, fqdn_fwd, fqdn_rev, hostname, hwaddr, hwtype, hwaddr_source FROM lease6;
|
|
|
EOF
|
|
|
ERRCODE=$?
|
|
|
assert_eq 0 $ERRCODE "lease6 table is missing or broken. (returned status code %d, expected %d)"
|
|
|
|
|
|
# Fourth table: lease6_types
|
|
|
- mysql -u$db_user -p$db_pass $db_name >/dev/null 2>&1 <<EOF
|
|
|
+ mysql -u$db_user -p$db_password $db_name >/dev/null 2>&1 <<EOF
|
|
|
SELECT lease_type, name FROM lease6_types;
|
|
|
EOF
|
|
|
ERRCODE=$?
|
|
|
assert_eq 0 $ERRCODE "lease6_types table is missing or broken. (returned status code %d, expected %d)"
|
|
|
|
|
|
# Fifth table: lease_hwaddr_source
|
|
|
- mysql -u$db_user -p$db_pass $db_name >/dev/null 2>&1 <<EOF
|
|
|
+ mysql -u$db_user -p$db_password $db_name >/dev/null 2>&1 <<EOF
|
|
|
SELECT hwaddr_source, name FROM lease_hwaddr_source;
|
|
|
EOF
|
|
|
ERRCODE=$?
|
|
@@ -111,7 +111,7 @@ mysql_lease_version_test() {
|
|
|
mysql_wipe
|
|
|
|
|
|
# Ok, now let's create a version 1.7
|
|
|
- mysql -u$db_user -p$db_pass $db_name >/dev/null 2>&1 <<EOF
|
|
|
+ mysql -u$db_user -p$db_password $db_name >/dev/null 2>&1 <<EOF
|
|
|
CREATE TABLE schema_version (
|
|
|
version INT PRIMARY KEY NOT NULL,
|
|
|
minor INT
|
|
@@ -119,7 +119,7 @@ CREATE TABLE schema_version (
|
|
|
INSERT INTO schema_version VALUES (1, 7);
|
|
|
EOF
|
|
|
|
|
|
- version=$(${keaadmin} lease-version mysql -u $db_user -p $db_pass -n $db_name)
|
|
|
+ version=$(${keaadmin} lease-version mysql -u $db_user -p $db_password -n $db_name)
|
|
|
|
|
|
assert_str_eq "1.7" ${version} "Expected kea-admin to return %s, returned value was %s"
|
|
|
|
|
@@ -139,15 +139,15 @@ mysql_lease_upgrade_test() {
|
|
|
mysql_wipe
|
|
|
|
|
|
# Initialize database to scheme 1.0.
|
|
|
- mysql -u$db_user -p$db_pass $db_name < @abs_top_srcdir@/src/bin/admin/tests/dhcpdb_create_1.0.mysql
|
|
|
+ mysql -u$db_user -p$db_password $db_name < @abs_top_srcdir@/src/bin/admin/tests/dhcpdb_create_1.0.mysql
|
|
|
|
|
|
# Sanity check - verify that it reports version 1.0.
|
|
|
- version=$(${keaadmin} lease-version mysql -u $db_user -p $db_pass -n $db_name -d @abs_top_srcdir@/src/bin/admin/scripts)
|
|
|
+ version=$(${keaadmin} lease-version mysql -u $db_user -p $db_password -n $db_name -d @abs_top_srcdir@/src/bin/admin/scripts)
|
|
|
|
|
|
assert_str_eq "1.0" ${version} "Expected kea-admin to return %s, returned value was %s"
|
|
|
|
|
|
# Ok, we have a 1.0 database. Let's upgrade it to 2.0
|
|
|
- ${keaadmin} lease-upgrade mysql -u $db_user -p $db_pass -n $db_name -d @abs_top_srcdir@/src/bin/admin/scripts
|
|
|
+ ${keaadmin} lease-upgrade mysql -u $db_user -p $db_password -n $db_name -d @abs_top_srcdir@/src/bin/admin/scripts
|
|
|
ERRCODE=$?
|
|
|
|
|
|
assert_eq 0 $ERRCODE "kea-admin lease-upgrade mysql returned non-zero status code %d, expected %d"
|
|
@@ -155,21 +155,21 @@ mysql_lease_upgrade_test() {
|
|
|
# Let's check that the new tables are indeed there.
|
|
|
|
|
|
# Third table: lease6
|
|
|
- mysql -u$db_user -p$db_pass $db_name >/dev/null 2>&1 <<EOF
|
|
|
+ mysql -u$db_user -p$db_password $db_name >/dev/null 2>&1 <<EOF
|
|
|
SELECT hwaddr, hwtype, hwaddr_source FROM lease6;
|
|
|
EOF
|
|
|
ERRCODE=$?
|
|
|
assert_eq 0 $ERRCODE "lease6 table not upgraded to 2.0 (returned status code %d, expected %d)"
|
|
|
|
|
|
# Fifth table: lease_hwaddr_source
|
|
|
- mysql -u$db_user -p$db_pass $db_name >/dev/null 2>&1 <<EOF
|
|
|
+ mysql -u$db_user -p$db_password $db_name >/dev/null 2>&1 <<EOF
|
|
|
SELECT hwaddr_source, name FROM lease_hwaddr_source;
|
|
|
EOF
|
|
|
ERRCODE=$?
|
|
|
assert_eq 0 $ERRCODE "lease_hwaddr_source table is missing or broken. (returned status code %d, expected %d)"
|
|
|
|
|
|
# Verify that it reports version 2.0.
|
|
|
- version=$(${keaadmin} lease-version mysql -u $db_user -p $db_pass -n $db_name)
|
|
|
+ version=$(${keaadmin} lease-version mysql -u $db_user -p $db_password -n $db_name)
|
|
|
|
|
|
assert_str_eq "2.0" ${version} "Expected kea-admin to return %s, returned value was %s"
|
|
|
|
|
@@ -179,6 +179,92 @@ EOF
|
|
|
test_finish 0
|
|
|
}
|
|
|
|
|
|
+mysql_lease4_dump_test() {
|
|
|
+ test_start "mysql.lease4_dump_test"
|
|
|
+
|
|
|
+ test_dir="@abs_top_srcdir@/src/bin/admin/tests"
|
|
|
+ script_dir="@abs_top_srcdir@/src/bin/admin/scripts"
|
|
|
+ output_file="$test_dir/data/lease4_dump_test.output.csv"
|
|
|
+ ref_file="$test_dir/data/mysql.lease4_dump_test.reference.csv"
|
|
|
+
|
|
|
+ # Let's wipe the whole database
|
|
|
+ mysql_wipe
|
|
|
+
|
|
|
+ # Ok, now let's initalize the database
|
|
|
+ ${keaadmin} lease-init mysql -u $db_user -p $db_password -n $db_name -d $script_dir
|
|
|
+ ERRCODE=$?
|
|
|
+ assert_eq 0 $ERRCODE "could not create database, status code %d"
|
|
|
+
|
|
|
+ # Insert the reference record
|
|
|
+ insert_sql="insert into lease4 values(10,20,30,40,0,50,1,1,\"example.com\");"
|
|
|
+ mysql_execute "$insert_sql"
|
|
|
+ ERRCODE=$?
|
|
|
+ assert_eq 0 $ERRCODE "insert into lease4 failed, status code %d"
|
|
|
+
|
|
|
+ # Dump lease4 to output_file
|
|
|
+ ${keaadmin} lease-dump mysql -4 -u $db_user -p $db_password -n $db_name -d $script_dir -o $output_file
|
|
|
+ ERRCODE=$?
|
|
|
+ assert_eq 0 $ERRCODE "kea-admin lease-dump -4 failed, status code %d"
|
|
|
+
|
|
|
+ # Compare the dump output to reference file, they should be identical
|
|
|
+ cmp -s $output_file $ref_file
|
|
|
+ ERRCODE=$?
|
|
|
+ assert_eq 0 $ERRCODE "dump file does not match reference file"
|
|
|
+
|
|
|
+ # remove the output file
|
|
|
+ rm $output_file
|
|
|
+
|
|
|
+ # Let's wipe the whole database
|
|
|
+ mysql_wipe
|
|
|
+
|
|
|
+ test_finish 0
|
|
|
+}
|
|
|
+
|
|
|
+mysql_lease6_dump_test() {
|
|
|
+ test_start "mysql.lease6_dump_test"
|
|
|
+
|
|
|
+ test_dir="@abs_top_srcdir@/src/bin/admin/tests"
|
|
|
+ script_dir="@abs_top_srcdir@/src/bin/admin/scripts"
|
|
|
+ output_file="$test_dir/data/lease6_dump_test.output.csv"
|
|
|
+ ref_file="$test_dir/data/mysql.lease6_dump_test.reference.csv"
|
|
|
+
|
|
|
+ # Let's wipe the whole database
|
|
|
+ mysql_wipe
|
|
|
+
|
|
|
+ # Ok, now let's initalize the database
|
|
|
+ ${keaadmin} lease-init mysql -u $db_user -p $db_password -n $db_name -d $script_dir
|
|
|
+ ERRCODE=$?
|
|
|
+ assert_eq 0 $ERRCODE "could not create database, status code %d"
|
|
|
+
|
|
|
+ # Insert the reference record
|
|
|
+ insert_sql="insert into lease6 values(10,20,30,0,40,50,1,60,70,1,1,\"example.com\",80,90,100);"
|
|
|
+
|
|
|
+ mysql_execute "$insert_sql"
|
|
|
+ ERRCODE=$?
|
|
|
+ assert_eq 0 $ERRCODE "insert into lease6 failed, status code %d"
|
|
|
+
|
|
|
+ # Dump lease4 to output_file
|
|
|
+ ${keaadmin} lease-dump mysql -6 -u $db_user -p $db_password -n $db_name -d $script_dir -o $output_file
|
|
|
+ ERRCODE=$?
|
|
|
+ assert_eq 0 $ERRCODE "kea-admin lease-dump -6 failed, status code %d"
|
|
|
+
|
|
|
+ # Compare the dump output to reference file, they should be identical
|
|
|
+ cmp -s $output_file $ref_file
|
|
|
+ ERRCODE=$?
|
|
|
+ assert_eq 0 $ERRCODE "dump file does not match reference file"
|
|
|
+
|
|
|
+ # remove the output file
|
|
|
+ rm $output_file
|
|
|
+
|
|
|
+ # Let's wipe the whole database
|
|
|
+ mysql_wipe
|
|
|
+
|
|
|
+ test_finish 0
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
mysql_lease_init_test
|
|
|
mysql_lease_version_test
|
|
|
mysql_lease_upgrade_test
|
|
|
+mysql_lease4_dump_test
|
|
|
+mysql_lease6_dump_test
|