Alon Bar-Lev has uploaded a new change for review. Change subject: db: rework temp file handling ......................................................................
db: rework temp file handling create a temporary directory within package to enable various functions to put their own temporary files without cleaning these individually. Change-Id: I4e5fdb6b917bbc5ea02a23587d4618b5642aaf0a Signed-off-by: Alon Bar-Lev <[email protected]> --- M packaging/dbscripts/cleandb.sh M packaging/dbscripts/create_schema.sh M packaging/dbscripts/dbfunctions.sh M packaging/dbscripts/upgrade.sh 4 files changed, 57 insertions(+), 46 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/86/24886/1 diff --git a/packaging/dbscripts/cleandb.sh b/packaging/dbscripts/cleandb.sh index 9c0ea9a..3454577 100755 --- a/packaging/dbscripts/cleandb.sh +++ b/packaging/dbscripts/cleandb.sh @@ -9,6 +9,12 @@ . ./dbfunctions.sh . ./dbcustomfunctions.sh +cleanup() { + dbfunc_cleanup +} +trap cleanup 0 +dbfunc_init + #setting defaults set_defaults diff --git a/packaging/dbscripts/create_schema.sh b/packaging/dbscripts/create_schema.sh index 8ca544e..56a634c 100755 --- a/packaging/dbscripts/create_schema.sh +++ b/packaging/dbscripts/create_schema.sh @@ -4,6 +4,12 @@ . ./dbfunctions.sh . ./dbcustomfunctions.sh +cleanup() { + dbfunc_cleanup +} +trap cleanup 0 +dbfunc_init + #setting defaults set_defaults diff --git a/packaging/dbscripts/dbfunctions.sh b/packaging/dbscripts/dbfunctions.sh index 0dae882..218e6dd 100644 --- a/packaging/dbscripts/dbfunctions.sh +++ b/packaging/dbscripts/dbfunctions.sh @@ -1,4 +1,14 @@ +DBFUNC_TMPDIR="" + +dbfunc_init() { + DBFUNC_TMPDIR="$(mktemp -d)" +} + +dbfunc_cleanup() { + [ -n "${DBFUNC_TMPDIR}" ] && rm -fr "${DBFUNC_TMPDIR}" +} + # $1 - the command to execute # $2 - the database to use # $3 - db hostname (default 'localhost' or '') @@ -9,17 +19,11 @@ local dbhost="${3}" local dbport="${4}" - ( - filename="$(mktemp)" - cleanup() { - rm -f "${filename}" - } - trap cleanup 0 + local filename="${DBFUNC_TMPDIR}/execute_command.sql" - echo "${command}" > "${filename}" + echo "${command}" > "${filename}" - execute_file "${filename}" "${dbname}" "${dbhost}" "${dbport}" - ) || exit $? + execute_file "${filename}" "${dbname}" "${dbhost}" "${dbport}" } # $1 - the file to execute @@ -74,57 +78,46 @@ #cleans db by dropping all objects cleandb() { -# common stored procedures are executed first (for new added functions to be valid) - ( - file="$(mktemp)" - cleanup() { - rm -f "${file}" - } - trap cleanup 0 + # common stored procedures are executed first (for new added functions to be valid) + local file="${DBFUNC_TMPDIR}/cleandb.sql" - execute_file "common_sp.sql" "${DATABASE}" "${SERVERNAME}" "${PORT}" > /dev/null - { - CMD="select * from generate_drop_all_seq_syntax();" - execute_command "$CMD" ${DATABASE} ${SERVERNAME} ${PORT} - CMD="select * from generate_drop_all_tables_syntax();" - execute_command "$CMD" ${DATABASE} ${SERVERNAME} ${PORT} - CMD="select * from generate_drop_all_views_syntax();" - execute_command "$CMD" ${DATABASE} ${SERVERNAME} ${PORT} - CMD="select * from generate_drop_all_functions_syntax();" - execute_command "$CMD" ${DATABASE} ${SERVERNAME} ${PORT} - CMD="select * from generate_drop_all_user_types_syntax();" - execute_command "$CMD" ${DATABASE} ${SERVERNAME} ${PORT} - } > "${file}" - execute_file "${file}" "${DATABASE}" "${SERVERNAME}" "${PORT}" > /dev/null - ) || exit $? + execute_file "common_sp.sql" "${DATABASE}" "${SERVERNAME}" "${PORT}" > /dev/null + { + CMD="select * from generate_drop_all_seq_syntax();" + execute_command "$CMD" ${DATABASE} ${SERVERNAME} ${PORT} + CMD="select * from generate_drop_all_tables_syntax();" + execute_command "$CMD" ${DATABASE} ${SERVERNAME} ${PORT} + CMD="select * from generate_drop_all_views_syntax();" + execute_command "$CMD" ${DATABASE} ${SERVERNAME} ${PORT} + CMD="select * from generate_drop_all_functions_syntax();" + execute_command "$CMD" ${DATABASE} ${SERVERNAME} ${PORT} + CMD="select * from generate_drop_all_user_types_syntax();" + execute_command "$CMD" ${DATABASE} ${SERVERNAME} ${PORT} + } > "${file}" + execute_file "${file}" "${DATABASE}" "${SERVERNAME}" "${PORT}" > /dev/null } #drops views before upgrade or refresh operations drop_views() { + local file="${DBFUNC_TMPDIR}/drop_views.sql" + # common stored procedures are executed first (for new added functions to be valid) execute_file "common_sp.sql" "${DATABASE}" "${SERVERNAME}" "${PORT}" > /dev/null local CMD="select * from generate_drop_all_views_syntax();" - execute_command "$CMD" "${DATABASE}" "${SERVERNAME}" "${PORT}" > drop_all_views.sql - execute_file "drop_all_views.sql" "${DATABASE}" "${SERVERNAME}" "${PORT}" > /dev/null - rm -f drop_all_views.sql + execute_command "$CMD" "${DATABASE}" "${SERVERNAME}" "${PORT}" > "${file}" + execute_file "${file}" "${DATABASE}" "${SERVERNAME}" "${PORT}" > /dev/null } #drops sps before upgrade or refresh operations drop_sps() { -# common stored procedures are executed first (for new added functions to be valid) + # common stored procedures are executed first (for new added functions to be valid) + local file="${DBFUNC_TMPDIR}/drop_sps.sql" + execute_file "common_sp.sql" "${DATABASE}" "${SERVERNAME}" "${PORT}" > /dev/null - ( - drop_all_functions="$(mktemp)" - cleanup() { - rm -f "${drop_all_functions}" - } - trap cleanup 0 - - CMD="select * from generate_drop_all_functions_syntax();" - execute_command "$CMD" "${DATABASE}" "${SERVERNAME}" "${PORT}" > "${drop_all_functions}" - execute_file "${drop_all_functions}" ${DATABASE} ${SERVERNAME} ${PORT} > /dev/null - ) || exit $? + CMD="select * from generate_drop_all_functions_syntax();" + execute_command "$CMD" "${DATABASE}" "${SERVERNAME}" "${PORT}" > "${file}" + execute_file "${file}" ${DATABASE} ${SERVERNAME} ${PORT} > /dev/null # recreate generic functions execute_file "create_functions.sql" ${DATABASE} ${SERVERNAME} ${PORT} > /dev/null diff --git a/packaging/dbscripts/upgrade.sh b/packaging/dbscripts/upgrade.sh index e7ae1e5..24e3400 100755 --- a/packaging/dbscripts/upgrade.sh +++ b/packaging/dbscripts/upgrade.sh @@ -35,6 +35,12 @@ . ./dbfunctions.sh . ./dbcustomfunctions.sh +cleanup() { + dbfunc_cleanup +} +trap cleanup 0 +dbfunc_init + #setting defaults set_defaults -- To view, visit http://gerrit.ovirt.org/24886 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I4e5fdb6b917bbc5ea02a23587d4618b5642aaf0a Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Alon Bar-Lev <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
