From 1e35578fa45f651416c2e29e15ec3cf73d09f06c Mon Sep 17 00:00:00 2001
From: Dudás Ádám <dudas.adam@cloud.bme.hu>
Date: Mon, 28 Apr 2014 09:51:19 +0200
Subject: [PATCH] dashboard, vm: implement remove_disk on InstanceTemplate and use it instead of dispatching on appliance type

---
 circle/dashboard/views.py    | 5 +----
 circle/vm/models/instance.py | 3 +++
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/circle/dashboard/views.py b/circle/dashboard/views.py
index 5ceb4cb..598cd4c 100644
--- a/circle/dashboard/views.py
+++ b/circle/dashboard/views.py
@@ -2160,10 +2160,7 @@ class DiskRemoveView(DeleteView):
         disk = self.get_object()
         app = disk.get_appliance()
 
-        if isinstance(app, Instance):
-            app.remove_disk(disk=disk, user=request.user)
-        else:  # isinstance(app, InstanceTemplate)
-            app.disks.remove(disk)
+        app.remove_disk(disk=disk, user=request.user)
         disk.destroy()
 
         next_url = request.POST.get("next")
diff --git a/circle/vm/models/instance.py b/circle/vm/models/instance.py
index bf13fc0..4a5968a 100644
--- a/circle/vm/models/instance.py
+++ b/circle/vm/models/instance.py
@@ -165,6 +165,9 @@ class InstanceTemplate(AclBase, VirtualMachineDescModel, TimeStampedModel):
     def get_absolute_url(self):
         return ('dashboard.views.template-detail', None, {'pk': self.pk})
 
+    def remove_disk(self, disk, **kwargs):
+        self.disks.remove(disk)
+
 
 class Instance(AclBase, VirtualMachineDescModel, StatusModel, OperatedMixin,
                TimeStampedModel):
--
libgit2 0.26.0