Mohammed Morsi
2009-Aug-05 17:10 UTC
[Ovirt-devel] [PATCH server] fixes to recent vm / nic / pxe validations
From: Mo <mmorsi at dhcp-100-19-208.bos.redhat.com> --- src/app/controllers/vm_controller.rb | 1 + src/app/models/vm.rb | 2 +- src/app/services/vm_service.rb | 15 ++++++++++----- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/app/controllers/vm_controller.rb b/src/app/controllers/vm_controller.rb index eda5798..9860843 100644 --- a/src/app/controllers/vm_controller.rb +++ b/src/app/controllers/vm_controller.rb @@ -207,6 +207,7 @@ class VmController < ApplicationController # to macs[i] and networks.static_networks_subset[j] corresponds # to ip_addresses[j] ip_counter = 0 + params[:vm][:nics] = [] params[:nics] = [] unless params[:networks].nil? diff --git a/src/app/models/vm.rb b/src/app/models/vm.rb index 9d326ac..88e0aef 100644 --- a/src/app/models/vm.rb +++ b/src/app/models/vm.rb @@ -464,7 +464,7 @@ class Vm < ActiveRecord::Base self.storage_volumes=@storage_volumes_pending @storage_volumes_pending = [] end - errors.add("nics", "must specify at least one network if pxe booting off a network") unless boot_device == BOOT_DEV_NETWORK && nics.size > 0 + errors.add("nics", "must specify at least one network if pxe booting off a network") unless boot_device != BOOT_DEV_NETWORK || nics.size > 0 end diff --git a/src/app/services/vm_service.rb b/src/app/services/vm_service.rb index 76e4158..e39dbc4 100644 --- a/src/app/services/vm_service.rb +++ b/src/app/services/vm_service.rb @@ -98,15 +98,16 @@ module VmService vm_hash[:uuid] = Vm::gen_uuid unless vm_hash[:uuid] vm_hash[:state] = Vm::STATE_PENDING @vm = Vm.new(vm_hash) + nics.each{ |nic| + nnic = Nic.new(nic) + nnic.vm = @vm + @vm.nics.push nnic + } authorized!(Privilege::MODIFY, at vm.vm_resource_pool) alert = "VM was successfully created." Vm.transaction do @vm.save! - nics.each{ |nic| - nic[:vm_id] = @vm.id - Nic.create(nic) - } vm_provision @task = VmTask.new({ :user => @user, :task_target => @vm, @@ -158,7 +159,11 @@ module VmService alert = "VM was successfully updated." Vm.transaction do @vm.nics.clear - nics.each{ |nic| @vm.nics.push Nic.new(nic) } + nics.each{ |nic| + nnic = Nic.new(nic) + @vm.nics.push nnic + vm_hash[:nics].push nnic + } @vm.update_attributes!(vm_hash) vm_provision -- 1.6.2.5
Jason Guiditta
2009-Aug-05 19:47 UTC
[Ovirt-devel] Re: [PATCH server] fixes to recent vm / nic / pxe validations
On Wed, 2009-08-05 at 13:10 -0400, Mohammed Morsi wrote:> From: Mo <mmorsi at dhcp-100-19-208.bos.redhat.com> > > --- > src/app/controllers/vm_controller.rb | 1 + > src/app/models/vm.rb | 2 +- > src/app/services/vm_service.rb | 15 ++++++++++----- > 3 files changed, 12 insertions(+), 6 deletions(-)ACK, this seems to fix the described issues w/errors. -j