scripts_dir="${SCRIPTS_DIR_DEFAULT}"
VERSION="@PACKAGE_VERSION@"
+assume_yes=0
+
# lease dump parameters
dhcp_version=0
dump_file=""
-d or --directory - path to upgrade scripts (default: %s)
-v or --version - print kea-admin version and quit.
-x or --extra - specifies extra argument(s) to pass to the database command
+ -y or --yes - assume yes on overwriting temporary files
Parameters specific to lease-dump, lease-upload:
-4 to dump IPv4 leases to file
exit 0
}
+# Remove a file if it exists
+remove_file () {
+ local file="${1}"
+ if [ ! -z "${file}" ] && [ -e "${file}" ]
+ then
+ echo "Removing file ${file}"
+ rm -f "${file}"
+ else
+ echo "File ${file} does not exist, no need to remove it."
+ fi
+}
+
# 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.
check_file_overwrite () {
local file="${1}"
- if [ -e "${file}" ]
+ if [ $assume_yes -eq 1 ]
+ then
+ remove_file "${file}"
+ elif [ -e "${file}" ]
then
echo "Output file, $file, exists and will be overwritten."
echo "Do you wish to continue? (y/N)"
# Ask for an answer only on an interactive shell to prevent blocking in
# automated or non-interactive scenarios where the answer defaults to no.
- if test -t 0; then
+ if [[ $- == *i* ]]; then
read -r ans
else
log_warning 'Non-interactive tty detected. Assuming no.'
cleaned_up_csv="/tmp/$(basename "${input_file}").tmp"
check_file_overwrite "${cleaned_up_csv}"
cp "${input_file}" "${cleaned_up_csv}"
- echo "${kea_lfc}" "-${dhcp_version}" -x "${cleaned_up_csv}" \
- -i "${cleaned_up_csv}.1" -o "${cleaned_up_csv}.output" \
- -f "${cleaned_up_csv}.completed" -p "${cleaned_up_csv}.pid" \
- -cignored-path >> /opt/a.txt
"${kea_lfc}" "-${dhcp_version}" -x "${cleaned_up_csv}" \
-i "${cleaned_up_csv}.1" -o "${cleaned_up_csv}.output" \
-f "${cleaned_up_csv}.completed" -p "${cleaned_up_csv}.pid" \
extra_arguments="${extra_arguments} ${1}"
fi
;;
+ -y|--yes)
+ assume_yes=1
+ ;;
*)
log_error "invalid option: ${option}"
usage
test_start 'kea_admin_error_reporting_test.db_init.mysql.i'
run_command \
- "${kea_admin}" lease-dump mysql -i
+ "${kea_admin}" lease-dump mysql -y -i
assert_eq 1 "${EXIT_CODE}"
assert_str_eq 'ERROR/kea-admin: -i or --input requires a parameter' "$(printf '%s\n' "${OUTPUT}" | head -n 1)"
test_finish ${?}
test_start 'kea_admin_error_reporting_test.db_init.mysql.input'
run_command \
- "${kea_admin}" lease-dump mysql --input
+ "${kea_admin}" lease-dump mysql -y --input
assert_eq 1 "${EXIT_CODE}"
assert_str_eq 'ERROR/kea-admin: -i or --input requires a parameter' "$(printf '%s\n' "${OUTPUT}" | head -n 1)"
test_finish ${?}
test_start 'kea_admin_error_reporting_test.db_init.mysql.o'
run_command \
- "${kea_admin}" lease-dump mysql -o
+ "${kea_admin}" lease-dump mysql -y -o
assert_eq 1 "${EXIT_CODE}"
assert_str_eq 'ERROR/kea-admin: -o or --output requires a parameter' "$(printf '%s\n' "${OUTPUT}" | head -n 1)"
test_finish ${?}
test_start 'kea_admin_error_reporting_test.db_init.mysql.output'
run_command \
- "${kea_admin}" lease-dump mysql --output
+ "${kea_admin}" lease-dump mysql -y --output
assert_eq 1 "${EXIT_CODE}"
assert_str_eq 'ERROR/kea-admin: -o or --output requires a parameter' "$(printf '%s\n' "${OUTPUT}" | head -n 1)"
test_finish ${?}
# Dump lease4 to output_file
run_command \
- "${kea_admin}" lease-dump mysql -4 -u "${db_user}" -p "${db_password}" -n "${db_name}" -d "${db_scripts_dir}" -o $output_file
+ "${kea_admin}" lease-dump mysql -y -4 -u "${db_user}" -p "${db_password}" -n "${db_name}" -d "${db_scripts_dir}" -o $output_file
assert_eq 0 "${EXIT_CODE}" "kea-admin lease-dump -4 failed, expected exit code %d, actual %d"
# Compare the dump output to reference file, they should be identical
# Dump lease4 to output_file
run_command \
- "${kea_admin}" lease-dump mysql -6 -u "${db_user}" -p "${db_password}" -n "${db_name}" -d "${db_scripts_dir}" -o $output_file
+ "${kea_admin}" lease-dump mysql -y -6 -u "${db_user}" -p "${db_password}" -n "${db_name}" -d "${db_scripts_dir}" -o $output_file
assert_eq 0 "${EXIT_CODE}" "kea-admin lease-dump -6 failed, expected exit code %d, actual %d"
# Compare the dump output to reference file, they should be identical
# Upload leases.
run_command \
- "${kea_admin}" lease-upload mysql -4 -u "${db_user}" \
+ "${kea_admin}" lease-upload mysql -y -4 -u "${db_user}" \
-p "${db_password}" -n "${db_name}" -d "${db_scripts_dir}" \
-i "${input_file}"
assert_eq 0 "${EXIT_CODE}" "kea-admin lease-upload -4 failed, expected exit code %d, actual %d"
# Dump leases.
run_command \
- "${kea_admin}" lease-dump mysql -4 -u "${db_user}" \
+ "${kea_admin}" lease-dump mysql -y -4 -u "${db_user}" \
-p "${db_password}" -n "${db_name}" -d "${db_scripts_dir}" \
-o "${output_file}"
assert_eq 0 "${EXIT_CODE}" "kea-admin lease-dump -4 failed, expected exit code %d, actual %d"
# Upload leases.
run_command \
- "${kea_admin}" lease-upload mysql -6 -u "${db_user}" \
+ "${kea_admin}" lease-upload mysql -y -6 -u "${db_user}" \
-p "${db_password}" -n "${db_name}" -d "${db_scripts_dir}" \
-i "${input_file}"
assert_eq 0 "${EXIT_CODE}" "kea-admin lease-upload -6 failed, expected exit code %d, actual %d"
# Dump leases.
run_command \
- "${kea_admin}" lease-dump mysql -6 -u "${db_user}" \
+ "${kea_admin}" lease-dump mysql -y -6 -u "${db_user}" \
-p "${db_password}" -n "${db_name}" -d "${db_scripts_dir}" \
-o "${output_file}"
assert_eq 0 "${EXIT_CODE}" "kea-admin lease-dump -6 failed, expected exit code %d, actual %d"
# Dump lease4 to output_file
run_command \
- "${kea_admin}" lease-dump pgsql -4 -u "${db_user}" -p "${db_password}" -n "${db_name}" -d "${db_scripts_dir}" -o $output_file
+ "${kea_admin}" lease-dump pgsql -y -4 -u "${db_user}" -p "${db_password}" -n "${db_name}" -d "${db_scripts_dir}" -o $output_file
assert_eq 0 "${EXIT_CODE}" "kea-admin lease-dump -4 failed, expected exit code %d, actual %d"
# Compare the dump output to reference file, they should be identical
# Dump lease6 to output_file
run_command \
- "${kea_admin}" lease-dump pgsql -6 -u "${db_user}" -p "${db_password}" -n "${db_name}" -d "${db_scripts_dir}" -o $output_file
+ "${kea_admin}" lease-dump pgsql -y -6 -u "${db_user}" -p "${db_password}" -n "${db_name}" -d "${db_scripts_dir}" -o $output_file
assert_eq 0 "${EXIT_CODE}" "kea-admin lease-dump -6 failed, expected exit code %d, actual %d"
# Compare the dump output to reference file, they should be identical
# Upload leases.
run_command \
- "${kea_admin}" lease-upload pgsql -4 -u "${db_user}" \
+ "${kea_admin}" lease-upload pgsql -y -4 -u "${db_user}" \
-p "${db_password}" -n "${db_name}" -d "${db_scripts_dir}" \
-i "${input_file}"
assert_eq 0 "${EXIT_CODE}" "kea-admin lease-upload -4 failed, expected exit code %d, actual %d"
# Dump leases.
run_command \
- "${kea_admin}" lease-dump pgsql -4 -u "${db_user}" \
+ "${kea_admin}" lease-dump pgsql -y -4 -u "${db_user}" \
-p "${db_password}" -n "${db_name}" -d "${db_scripts_dir}" \
-o "${output_file}"
assert_eq 0 "${EXIT_CODE}" "kea-admin lease-dump -4 failed, expected exit code %d, actual %d"
# Upload leases.
run_command \
- "${kea_admin}" lease-upload pgsql -6 -u "${db_user}" \
+ "${kea_admin}" lease-upload pgsql -y -6 -u "${db_user}" \
-p "${db_password}" -n "${db_name}" -d "${db_scripts_dir}" \
-i "${input_file}"
assert_eq 0 "${EXIT_CODE}" "kea-admin lease-upload -6 failed, expected exit code %d, actual %d"
# Dump leases.
run_command \
- "${kea_admin}" lease-dump pgsql -6 -u "${db_user}" \
+ "${kea_admin}" lease-dump pgsql -y -6 -u "${db_user}" \
-p "${db_password}" -n "${db_name}" -d "${db_scripts_dir}" \
-o "${output_file}"
assert_eq 0 "${EXIT_CODE}" "kea-admin lease-dump -6 failed, expected exit code %d, actual %d"