fabric connection close
[audio.git] / apps / archive / tasks.py
index e257da0..37169d2 100755 (executable)
@@ -11,6 +11,7 @@ from time import sleep
 #from celery.decorators import task
 from celery.task import Task
 from fabric import api
+from fabric.network import disconnect_all
 from mutagen import File
 from mutagen import id3
 
@@ -47,10 +48,14 @@ class AudioFormatTask(Task):
 
     @classmethod
     def save(cls, audiobook, file_name):
-        getattr(audiobook, "%s_file" % cls.ext).save(
+        field = "%s_file" % cls.ext
+        getattr(audiobook, field).save(
             "%d.%s" % (audiobook.pk, cls.ext),
-            ExistingFile(file_name)
+            ExistingFile(file_name),
+            save=False
             )
+        Audiobook.objects.filter(pk=audiobook.pk).update(
+            **{field: getattr(audiobook, field)})
 
     @classmethod
     def published(cls, audiobook):
@@ -79,6 +84,7 @@ class AudioFormatTask(Task):
             api.sudo(command, user=UPLOAD_SUDO, shell=False)
         else:
             api.run(command)
+        disconnect_all()
 
     def run(self, aid):
         audiobook = Audiobook.objects.get(id=aid)