From 619c144c11d3f8e9a97123c5e6e8b6e9c253e5c6 Mon Sep 17 00:00:00 2001 From: zubiar-arbi Date: Mon, 24 Feb 2014 17:06:03 +0500 Subject: [PATCH] Empty course temp folder after exporting course (export_handler) STUD-1294 --- cms/djangoapps/contentstore/views/import_export.py | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/cms/djangoapps/contentstore/views/import_export.py b/cms/djangoapps/contentstore/views/import_export.py index df1586e88c..b450eef1df 100644 --- a/cms/djangoapps/contentstore/views/import_export.py +++ b/cms/djangoapps/contentstore/views/import_export.py @@ -324,6 +324,9 @@ def export_handler(request, tag=None, package_id=None, branch=None, version_guid try: export_to_xml(modulestore('direct'), contentstore(), old_location, root_dir, name, modulestore()) + logging.debug('tar file being generated at {0}'.format(export_file.name)) + with tarfile.open(name=export_file.name, mode='w:gz') as tar_file: + tar_file.add(root_dir / name, arcname=name) except SerializationError, e: logging.exception('There was an error exporting course {0}. {1}'.format(course_module.location, unicode(e))) unit = None @@ -352,7 +355,6 @@ def export_handler(request, tag=None, package_id=None, branch=None, version_guid 'edit_unit_url': unit_locator.url_reverse("unit") if parent else "", 'course_home_url': location.url_reverse("course"), 'export_url': export_url - }) except Exception, e: logging.exception('There was an error exporting course {0}. {1}'.format(course_module.location, unicode(e))) @@ -364,14 +366,8 @@ def export_handler(request, tag=None, package_id=None, branch=None, version_guid 'course_home_url': location.url_reverse("course"), 'export_url': export_url }) - - logging.debug('tar file being generated at {0}'.format(export_file.name)) - tar_file = tarfile.open(name=export_file.name, mode='w:gz') - tar_file.add(root_dir / name, arcname=name) - tar_file.close() - - # remove temp dir - shutil.rmtree(root_dir / name) + finally: + shutil.rmtree(root_dir / name) wrapper = FileWrapper(export_file) response = HttpResponse(wrapper, content_type='application/x-tgz')