From 7dbb9c7eecff182aab3034c91f6f6d5b501988be Mon Sep 17 00:00:00 2001
From: Kálmán Viktor <kviktor@cloud.bme.hu>
Date: Wed, 27 Aug 2014 13:35:43 +0200
Subject: [PATCH] dashboard: mass op smart migrate

---
 circle/dashboard/templates/dashboard/_vm-mass-migrate.html | 28 +++++++++++++++++-----------
 circle/dashboard/views.py                                  |  4 +++-
 2 files changed, 20 insertions(+), 12 deletions(-)

diff --git a/circle/dashboard/templates/dashboard/_vm-mass-migrate.html b/circle/dashboard/templates/dashboard/_vm-mass-migrate.html
index 0e0113a..ef2fc2c 100644
--- a/circle/dashboard/templates/dashboard/_vm-mass-migrate.html
+++ b/circle/dashboard/templates/dashboard/_vm-mass-migrate.html
@@ -2,28 +2,34 @@
 {% load i18n %}
 {% load sizefieldtags %}
 
-{% block question %}
-<p>
-{% blocktrans with op=op.name %}
-Choose a compute node to migrate the selected VMs to.
-{% endblocktrans %}
-</p>
-<p class="text-info">{{op.name}}: {{op.description}}</p>
-{% endblock %}
 
 {% block formfields %}
+  <hr />
   <ul id="vm-migrate-node-list" class="list-unstyled">
+    <li class="panel panel-default panel-primary mass-migrate-node">
+      <div class="panel-body">
+        <label for="migrate-to-none">
+          <strong>{% trans "Reschedule" %}</strong>
+        </label>
+        <input id="migrate-to-none" type="radio" name="node" value="" style="float: right;" checked="checked">
+        <span class="vm-migrate-node-property">
+          {% trans "This option will reschedule each virtual machine to the most optimal node." %}
+        </span>
+        <div style="clear: both;"></div>
+      </div>
+    </li>
     {% for n in nodes %}
-      <li class="panel panel-default mass-migrate-node">
+    <li class="panel panel-default mass-migrate-node">
       <div class="panel-body">
         <label for="migrate-to-{{n.pk}}">
           <strong>{{ n }}</strong>
         </label>
-        <input id="migrate-to-{{n.pk}}" type="radio" name="node" value="{{ n.pk }}" style="float: right;" checked="checked">
+        <input id="migrate-to-{{n.pk}}" type="radio" name="node" value="{{ n.pk }}" style="float: right;"/>
         <span class="vm-migrate-node-property">{% trans "CPU load" %}: {{ n.cpu_usage }}</span>
         <span class="vm-migrate-node-property">{% trans "RAM usage" %}: {{ n.byte_ram_usage|filesize }}/{{ n.ram_size|filesize }}</span>
         <div style="clear: both;"></div>
-      </div></li>
+      </div>
+    </li>
     {% endfor %}
   </ul>
   <hr />
diff --git a/circle/dashboard/views.py b/circle/dashboard/views.py
index 61df042..f06bd16 100644
--- a/circle/dashboard/views.py
+++ b/circle/dashboard/views.py
@@ -1124,7 +1124,9 @@ class MassMigrationView(MassOperationView):
         node = self.request.POST.get("node")
         if node:
             node = get_object_or_404(Node, pk=node)
-            extra["to_node"] = node
+        else:
+            node = None
+        extra["to_node"] = node
         return super(MassMigrationView, self).post(request, extra, *args,
                                                    **kwargs)
 
--
libgit2 0.26.0