# 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
from mediagoblin import mg_globals
+
def delete_media_files(media):
"""
Delete all files associated with a MediaEntry
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))