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, 58 insertions(+), 46 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/82/24882/1

diff --git a/packaging/dbscripts/cleandb.sh b/packaging/dbscripts/cleandb.sh
index 9c0ea9a..80c5769 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..5a3362c 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 336b965..e739cd7 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,47 @@
 
 #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}"
+cat "${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..90a11d4 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/24882
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

Reply via email to