[Ovirt-devel] Re: [PATCH] added ability to reprovision vm via edit vm form

Scott Seago sseago at redhat.com
Mon Sep 15 14:58:45 UTC 2008


Mohammed Morsi wrote:
> ---
>  wui/src/app/controllers/vm_controller.rb |   73 +++++++++++++++++++++++++-----
>  wui/src/app/views/vm/_form.rhtml         |    6 ++-
>  2 files changed, 65 insertions(+), 14 deletions(-)
>
> diff --git a/wui/src/app/controllers/vm_controller.rb b/wui/src/app/controllers/vm_controller.rb
> index e55ec28..82d8952 100644
> --- a/wui/src/app/controllers/vm_controller.rb
> +++ b/wui/src/app/controllers/vm_controller.rb
> @@ -193,6 +215,43 @@ class VmController < ApplicationController
>    end
>  
>    protected
> +  def _setup_provisioning_options
> +    @provisioning_options = [[Vm::PXE_OPTION_LABEL, Vm::PXE_OPTION_VALUE],
> +                             [Vm::HD_OPTION_LABEL, Vm::HD_OPTION_VALUE]]
> +    # FIXME add cobbler images too
> +    begin
> +      @provisioning_options += Cobbler::Profile.find.collect do |profile|
> +        [profile.name + Vm::COBBLER_PROFILE_SUFFIX, profile.name]
> +
> +    end
> +    rescue
> +      #if cobbler doesn't respond/is misconfigured/etc just don't add profiles
> +    end
> +  end
> +
> +  def _setup_vm_provision(params)
>   
This is fine for now -- but we eventually need to move this into an 
edit_vm task -- so go ahead and include a FIXME comment to mention this 
for now.

> +    # spaces are invalid in the cobbler name
> +    name = params[:vm][:description].gsub(" ", "-")
> +    provision = params[:vm][:provisioning_and_boot_settings]
> +    unless provision == Vm::PXE_OPTION_VALUE or
> +           provision == Vm::HD_OPTION_VALUE
> +      found = false
> +      Cobbler::System.find.each{ |system|
> +        if system.name == name
> +          system.profile = provision
> +          system.save
> +          found = true
> +        end
> +      }
> +      unless found
> +        system = Cobbler::System.create("name" => name,
> +                                        "profile" => provision)
> +        # do we need to set any of the other system attributes?
> +        system.save
> +      end
> +    end
> +  end
> +
>    def pre_new
>      # if no vm_resource_pool is passed in, find (or auto-create) it based on hardware_pool_id
>      unless params[:vm_resource_pool_id]
>   
ACK, once the FIXME comment is added.

Scott




More information about the ovirt-devel mailing list