Ofer Schreiber has posted comments on this change.

Change subject: packaging: Add backup and restore utility
......................................................................


Patch Set 9: (15 inline comments)

....................................................
File packaging/bin/engine-backup.sh
Line 39: engine-backup: backup and restore ovirt-engine
Line 40: USAGE:
Line 41:        engine-backup [--mode=<backup|restore>] [--scope=<all|dbonly>] 
[--file=/path/to/bacup/or/restore/FILE]
Line 42: Where:
Line 43:        --mode=          the required mode (backup or restore)
Done
Line 44:        --scope=         the elements to backup
Line 45:        --file=          the backup FILE to restore
Line 46: 
Line 47: __EOF__


Line 86:        done
Line 87: }
Line 88: 
Line 89: verifyArgs() {
Line 90:        # Verify backup OR restore specified
Done
Line 91:        [ -n "${MODE}" ] || die "--mode=<backup|restore> is missing"
Line 92:        [ -n "${FILE}" ] || die "--file is missing"
Line 93: 
Line 94:        # TODO: Verify scope


Line 88: 
Line 89: verifyArgs() {
Line 90:        # Verify backup OR restore specified
Line 91:        [ -n "${MODE}" ] || die "--mode=<backup|restore> is missing"
Line 92:        [ -n "${FILE}" ] || die "--file is missing"
Done
Line 93: 
Line 94:        # TODO: Verify scope
Line 95: }
Line 96: 


Line 90:        # Verify backup OR restore specified
Line 91:        [ -n "${MODE}" ] || die "--mode=<backup|restore> is missing"
Line 92:        [ -n "${FILE}" ] || die "--file is missing"
Line 93: 
Line 94:        # TODO: Verify scope
it's a TODO....
Line 95: }
Line 96: 
Line 97: dobackup() {
Line 98:        # Create temporart folder


Line 98:        # Create temporart folder
Line 99:        local tardir="${TEMP_FOLDER}/tar"
Line 100:       mkdir "${tardir}" || die "Cannot create '${tardir}'"
Line 101:       mkdir "${tardir}/files" || die "Cannot create '${tardir}/files'"
Line 102:       mkdir "${tardir}/db" || die "Cannot create '${tardir}/db'"
Done
Line 103: 
Line 104:       backupFiles "${BACKUP_FOLDERS}" "${tardir}/files"
Line 105:       backupDB "${tardir}/db/${DB_BACKUP_FILE_NAME}"
Line 106:       cp -a "${VERSION_FILE}" "${tardir}"


Line 102:       mkdir "${tardir}/db" || die "Cannot create '${tardir}/db'"
Line 103: 
Line 104:       backupFiles "${BACKUP_FOLDERS}" "${tardir}/files"
Line 105:       backupDB "${tardir}/db/${DB_BACKUP_FILE_NAME}"
Line 106:       cp -a "${VERSION_FILE}" "${tardir}"
sounds like another patch to me....
Line 107:       tar -C "${tardir}" -cjf "${FILE}" . || die "Cannot create 
'${FILE}'"
Line 108: }
Line 109: 
Line 110: backupFiles() {


Line 111:       local folders="$1"
Line 112:       local target="$2"
Line 113:       echo "${folders}" | while read folder; do
Line 114:               local dirname="$(dirname ${folder})"
Line 115:               mkdir -p "${tardir}/files/${dirname}"
Done
Line 116:               cp -a "${folder}" "${target}/${dirname}"
Line 117:       done
Line 118: }
Line 119: 


Line 112:       local target="$2"
Line 113:       echo "${folders}" | while read folder; do
Line 114:               local dirname="$(dirname ${folder})"
Line 115:               mkdir -p "${tardir}/files/${dirname}"
Line 116:               cp -a "${folder}" "${target}/${dirname}"
Done
Line 117:       done
Line 118: }
Line 119: 
Line 120: backupDB() {


Line 113:       echo "${folders}" | while read folder; do
Line 114:               local dirname="$(dirname ${folder})"
Line 115:               mkdir -p "${tardir}/files/${dirname}"
Line 116:               cp -a "${folder}" "${target}/${dirname}"
Line 117:       done
Done
Line 118: }
Line 119: 
Line 120: backupDB() {
Line 121:       local file="$1"


Line 142: 
Line 143: verifyVersion() {
Line 144:       local installed_version="$(cat ${VERSION_FILE})"
Line 145:       local backup_version="$(cat ${TEMP_FOLDER}/version)"
Line 146:       [ "${installed_version}" == "${backup_version}" ] \
Lets save that "feature" for later...
Line 147:               || die "Backup version '${backup_version}' doesn't 
match installed version"
Line 148: }
Line 149: 
Line 150: restoreDB() {


Line 148: }
Line 149: 
Line 150: restoreDB() {
Line 151:       # TODO: Find a way to supress psql output
Line 152:       # TODO: Verify and drop exiting db before restore?
I still need to think about it
Line 153:       local backupfile="$1"
Line 154:       PGPASSFILE="${MYPGPASS}" psql \
Line 155:               -w \
Line 156:               -q \


Line 156:               -q \
Line 157:               -U "${ENGINE_DB_USER}" \
Line 158:               -h "${ENGINE_DB_HOST}" \
Line 159:               -p "${ENGINE_DB_PORT}" \
Line 160:               -f "${backupfile}" \
Done
Line 161:               -d "${ENGINE_DB_DATABASE}" \
Line 162:               || die "Database restore failed"
Line 163: }
Line 164: 


Line 163: }
Line 164: 
Line 165: restoreFiles() {
Line 166:       local source="$1"
Line 167:       ls "${source}" | while read folder; do
Done
Line 168:               cp -a "${source}/${folder}" "/"
Line 169:       done
Line 170: 
Line 171: }


Line 164: 
Line 165: restoreFiles() {
Line 166:       local source="$1"
Line 167:       ls "${source}" | while read folder; do
Line 168:               cp -a "${source}/${folder}" "/"
Done
Line 169:       done
Line 170: 
Line 171: }
Line 172: 


Line 165: restoreFiles() {
Line 166:       local source="$1"
Line 167:       ls "${source}" | while read folder; do
Line 168:               cp -a "${source}/${folder}" "/"
Line 169:       done
Done
Line 170: 
Line 171: }
Line 172: 
Line 173: generatePgPass() {


-- 
To view, visit http://gerrit.ovirt.org/15276
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I7f6c386a0f48ccd520978193639120999e00cf2a
Gerrit-PatchSet: 9
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Ofer Schreiber <[email protected]>
Gerrit-Reviewer: Alon Bar-Lev <[email protected]>
Gerrit-Reviewer: Eli Mesika <[email protected]>
Gerrit-Reviewer: Kiril Nesenko <[email protected]>
Gerrit-Reviewer: Moran Goldboim <[email protected]>
Gerrit-Reviewer: Ofer Schreiber <[email protected]>
Gerrit-Reviewer: Ohad Basan <[email protected]>
Gerrit-Reviewer: Sandro Bonazzola <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to