expand_json utility... yet another convenience function :)
[mediagoblin.git] / mediagoblin / tools / files.py
index 10f1d994a3b9d9e0c141d0b40b00284f1b345796..848c86f24fd467c3eb7789755c5edb26df56749c 100644 (file)
@@ -1,5 +1,5 @@
 # GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 MediaGoblin contributors.  See AUTHORS.
+# Copyright (C) 2011, 2012 MediaGoblin contributors.  See AUTHORS.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU Affero General Public License as published by
@@ -16,6 +16,7 @@
 
 from mediagoblin import mg_globals
 
+
 def delete_media_files(media):
     """
     Delete all files associated with a MediaEntry
@@ -23,10 +24,20 @@ def delete_media_files(media):
     Arguments:
      - media: A MediaEntry document
     """
+    no_such_files = []
     for listpath in media.media_files.itervalues():
-        mg_globals.public_store.delete_file(
-            listpath)
+        try:
+            mg_globals.public_store.delete_file(
+                listpath)
+        except OSError:
+            no_such_files.append("/".join(listpath))
+
+    for attachment in media.attachment_files:
+        try:
+            mg_globals.public_store.delete_file(
+                attachment['filepath'])
+        except OSError:
+            no_such_files.append("/".join(attachment['filepath']))
 
-    for attachment in media['attachment_files']:
-        mg_globals.public_store.delete_file(
-            attachment['filepath'])
+    if no_such_files:
+        raise OSError(", ".join(no_such_files))