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

Arthur Clément aclement at linagora.com
Wed Sep 8 12:57:26 UTC 2010


ack  & pushed

On mercredi 01 septembre 2010 14:57:24 Simon COURTOIS wrote:
> 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..86e5970fcb706e5bd82882baafc4e03d
> 7f648ee9 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
-- 
Arthur CLEMENT
Linagora Paris




More information about the ovirt-devel mailing list