[Ovirt-devel] [PATCH 1/3] Adding the VM Pool migration for vms

Simon COURTOIS scourtois at linagora.com
Wed Sep 1 12:57:24 UTC 2010


Signed-off-by: Simon COURTOIS <scourtois at linagora.com>
---
 src/app/controllers/vm_controller.rb   |   16 ++++++++++++++
 src/app/views/vm/edit_vmpool.rhtml     |   36 ++++++++++++++++++++++++++++++++
 src/app/views/vm/show.rhtml            |    3 ++
 src/public/images/icon_vmpool_11px.png |  Bin 0 -> 542 bytes
 4 files changed, 55 insertions(+), 0 deletions(-)
 create mode 100644 src/app/views/vm/edit_vmpool.rhtml
 create mode 100644 src/public/images/icon_vmpool_11px.png

diff --git a/src/app/controllers/vm_controller.rb b/src/app/controllers/vm_controller.rb
index 9860843..f4a90b9 100644
--- a/src/app/controllers/vm_controller.rb
+++ b/src/app/controllers/vm_controller.rb
@@ -146,6 +146,22 @@ class VmController < ApplicationController
     render :layout => false
   end
 
+  def edit_vmpool
+    svc_modify(params[:id])
+    @vm = Vm.find(params[:id])
+    @vm_pools = VmResourcePool.find_all_by_parent_id(@vm.vm_resource_pool.parent.id)
+    render :layout => 'popup'
+  end
+
+  def update_vmpool
+    svc_modify(params[:id])
+    @vm = Vm.find(params[:id])
+    @vm_pool = VmResourcePool.find(params[:vm][:vm_resource_pool_id])
+    @vm.update_attribute(:vm_resource_pool, @vm_pool)
+    render :json => { :object => "vm", :success => true,
+                      :alert => "VM Pool changed for this Virtual Machine" }
+  end
+
   protected
   def _setup_provisioning_options
     @provisioning_options = [[Vm::PXE_OPTION_LABEL, Vm::PXE_OPTION_VALUE],
diff --git a/src/app/views/vm/edit_vmpool.rhtml b/src/app/views/vm/edit_vmpool.rhtml
new file mode 100644
index 0000000..cfa29a7
--- /dev/null
+++ b/src/app/views/vm/edit_vmpool.rhtml
@@ -0,0 +1,36 @@
+<%- content_for :title do -%>
+  Change VM Pool
+<%- end -%>
+<%- content_for :description do -%>
+  Please choose pool destination.
+<%- end -%>
+
+<form method="POST" id="change_vmpool_form" action="<%= url_for :action => 'update_vmpool' %>">
+  <div class="dialog_form">
+    <%= error_messages_for 'change_vmpool' %>
+
+    <% form_tag do %>
+      <!--[form:change_vmpool]-->
+      <%= hidden_field_tag 'id', @vm.id, :id => 'vm_id' %>
+      <%= label "vm", "vm_resource_pool_id", "Select the pool to migrate to" %>
+      <%= select "vm", "vm_resource_pool_id", @vm_pools.map { |pool| [pool.name, pool.id] } %>
+    <% end %>
+
+  </div>
+  <%= popup_footer("$('#change_vmpool_form').submit()", "Change VM Pool") %>
+</form>
+<script type="text/javascript">
+  $(function() {
+
+    $('#change_vmpool_form').ajaxForm({
+      dataType: 'json',
+      success: function(data, status) {
+        afterVm(data, status);
+        if (data.alert) {
+          $.jGrowl(data.alert);
+        }
+      }
+    });
+
+  });
+</script>
diff --git a/src/app/views/vm/show.rhtml b/src/app/views/vm/show.rhtml
index e7207aa..3413095 100644
--- a/src/app/views/vm/show.rhtml
+++ b/src/app/views/vm/show.rhtml
@@ -33,6 +33,9 @@
         </a>
       <% end -%>
     <% end %>
+    <%= link_to image_tag("icon_vmpool_11px.png") + " Change VM Pool",
+                          {:controller => 'vm', :action => 'edit_vmpool', :id => @vm},
+			  :rel=>"facebox[.bolder]", :class=>"selection_facebox" %>
     <a href="#confirm_cancel"  rel="facebox[.bolder]">
       <%= image_tag "icon_cancel_11px.png" %> Cancel queued tasks
     </a> 
diff --git a/src/public/images/icon_vmpool_11px.png b/src/public/images/icon_vmpool_11px.png
new file mode 100644
index 0000000000000000000000000000000000000000..86e5970fcb706e5bd82882baafc4e03d7f648ee9
GIT binary patch
literal 542
zcmV+(0^$9MP)<h;3K|Lk000e1NJLTq000aC000XJ1^@s6OK at yo00001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igb{
z4g?!fhG5<R00Ev!L_t(2&vlVKYZO5MK;P`nWsjVKaD|8%Q=K3Pb`e7aqn>C)0%|M-
z3qOj0MgD<kmC8cz4~S7Bf{jHAAr=uyA%fUQL<vE;gUg-S&F#$W?(B?Rs`J(FRS$-+
z_;`W;As)=%nwY)PT(4C3Vbm^5FJDi;SYG)sOn&wJ3DTAB`nk(z at oLM9s3DGw9bLV5
z|1Ls^JuwVJI-T~~wVU&2q}G`QOX<7_vt4YljdKdYUf}VFour%^KR!7sbL+usT%IDM
zfZpH`f8qoo1lE>}j8p_bbLJ9Xzim8}Md82~xUv8jpta`Xr_Y=`ag2-8lPtY?$Is2*
z6h($H#s#U$As^tf7 at x%?NkX^(m$mgTjE@~go1E`IHpxte(F&=w1v{Y3Vw?yuW<MLh
zwy2F(nVPxHPLksB#BoAa<Vcg3Auc6wiogf-`i}R at PYI=@BBgg8QQ91(GgepLO3}P<
zezvo%t_GpB&cVTYMWm at tqbNF6tJNj|y4~)xs2UyU_4<#*ut7KG=1w;njXU*vy--St
gPP=Vdt=0m-KfYwn??4I``~Uy|07*qoM6N<$f<@--od5s;

literal 0
HcmV?d00001

-- 
1.7.2.1




More information about the ovirt-devel mailing list