Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SOOP_BA remove cleanup tmp dir when error during processing zip #418

Merged
merged 1 commit into from
Apr 18, 2016
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 22 additions & 5 deletions SOOP/SOOP_BA/incoming_handler.sh
Original file line number Diff line number Diff line change
Expand Up @@ -71,14 +71,27 @@ main() {

local tmp_dir=`mktemp -d`
chmod a+rx $tmp_dir
unzip -q -u -o $file -d $tmp_dir || file_error "Error unzipping"
local tmp_zip_manifest=`mktemp`

unzip_file $file $tmp_dir $tmp_zip_manifest
if [ $? -ne 0 ]; then
rm -f $tmp_zip_manifest
rm -rf --preserve-root $tmp_dir
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why not adding a rm $tmp_zip_manifest as well ?

file_error "Error unzipping"
fi

local nc_file
nc_file=`find $tmp_dir -name "*.nc" | head -1` || file_error "Cannot find NetCDF file in zip bundle"
nc_file=`grep ".*.nc" $tmp_zip_manifest | head -1`
if [ $? -ne 0 ]; then
rm -f $tmp_zip_manifest
rm -rf --preserve-root $tmp_dir
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed both

file_error "Cannot find NetCDF file in zip bundle"
fi

local tmp_nc_file=`make_writable_copy $nc_file`
if ! $DATA_SERVICES_DIR/SOOP/SOOP_BA/helper.py addReportingId $tmp_nc_file; then
rm -f $tmp_nc_file
rm -f $tmp_nc_file $tmp_zip_manifest
rm -rf --preserve-root $tmp_dir
file_error "Cannot add reporting_id"
fi
echo "" | notify_by_email $BACKUP_RECIPIENT "Processing new SOOP_BA file '$nc_file'"
Expand All @@ -89,8 +102,12 @@ main() {

log_info "Processing '$tmp_nc_file'"
local path
path=`$DATA_SERVICES_DIR/SOOP/SOOP_BA/helper.py destPath $tmp_nc_file` || \
path=`$DATA_SERVICES_DIR/SOOP/SOOP_BA/helper.py destPath $tmp_nc_file`
if [ $? -ne 0 ]; then
rm -f $tmp_nc_file $tmp_zip_manifest
rm -rf --preserve-root $tmp_dir
file_error "Cannot generate path for NetCDF file"
fi

local -i is_update=0
directory_has_netcdf_files IMOS/$path && is_update=1
Expand All @@ -115,7 +132,7 @@ main() {
done

# Dangerous, but necessary, since there might be a hierarchy in the zip file provided
rm -f $file; rm -rf --preserve-root $tmp_dir
rm -f $file $tmp_zip_manifest; rm -rf --preserve-root $tmp_dir
echo "" | notify_by_email $BACKUP_RECIPIENT "Successfully published SOOP_BA voyage '$path' "
}

Expand Down