From f8eb994cc214b85c537c742987efad9a61153083 Mon Sep 17 00:00:00 2001
From: Guba Sándor <guba.sandor@cloud.bme.hu>
Date: Wed, 30 Jul 2014 16:07:01 +0200
Subject: [PATCH] save is_ready on template saving

---
 circle/storage/models.py | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/circle/storage/models.py b/circle/storage/models.py
index 7f4248a..e9a5cbd 100644
--- a/circle/storage/models.py
+++ b/circle/storage/models.py
@@ -342,6 +342,8 @@ class Disk(TimeStampedModel):
 
         if self.is_ready:
             return True
+        if self.base and not self.base.is_ready:
+            raise self.DiskIsNotReady(self, base=self.base)
         queue_name = self.get_remote_queue_name('storage', priority="fast")
         disk_desc = self.get_disk_desc()
         if self.base is not None:
@@ -462,7 +464,7 @@ class Disk(TimeStampedModel):
         disk = Disk.create(datastore=self.datastore,
                            base=new_base,
                            name=self.name, size=self.size,
-                           type=new_type)
+                           type=new_type, dev_num=self.dev_num)
 
         queue_name = self.get_remote_queue_name("storage", priority="slow")
         remote = storage_tasks.merge.apply_async(kwargs={
@@ -479,4 +481,6 @@ class Disk(TimeStampedModel):
                     AbortableAsyncResult(remote.id).abort()
                     disk.destroy()
                     raise Exception("Save as aborted by use.")
+        disk.is_ready = True
+        disk.save()
         return disk
--
libgit2 0.26.0