[Ovirt-devel] [PATCH server] provide default uuid and mac if not provided for create.
Scott Seago
sseago at redhat.com
Mon May 18 18:23:58 UTC 2009
Signed-off-by: Scott Seago <sseago at redhat.com>
---
src/app/services/vm_service.rb | 25 ++++++++++++++++---------
1 files changed, 16 insertions(+), 9 deletions(-)
diff --git a/src/app/services/vm_service.rb b/src/app/services/vm_service.rb
index 4c29bcf..cfb3c5f 100644
--- a/src/app/services/vm_service.rb
+++ b/src/app/services/vm_service.rb
@@ -52,15 +52,9 @@ module VmService
def svc_new(vm_resource_pool_id)
raise ActionError.new("VM Resource Pool is required.") unless vm_resource_pool_id
- # random MAC
- mac = [ 0x00, 0x16, 0x3e, rand(0x7f), rand(0xff), rand(0xff) ]
- # random uuid
- uuid = ["%02x"*4, "%02x"*2, "%02x"*2, "%02x"*2, "%02x"*6].join("-") %
- Array.new(16) {|x| rand(0xff) }
-
- @vm = Vm.new({:vm_resource_pool_id => vm_resource_pool_id,
- :vnic_mac_addr => mac.collect {|x| "%02x" % x}.join(":"),
- :uuid => uuid })
+ new_vm_hash = {:vm_resource_pool_id => vm_resource_pool_id}
+ default_mac_and_uuid(new_vm_hash)
+ @vm = Vm.new(new_vm_hash)
authorized!(Privilege::MODIFY, @vm.vm_resource_pool)
end
@@ -71,6 +65,7 @@ module VmService
# === Required permissions
# [<tt>Privilege::MODIFY</tt>] for the vm's VmResourcePool
def svc_create(vm_hash, start_now)
+ default_mac_and_uuid(vm_hash)
vm_hash[:state] = Vm::STATE_PENDING
@vm = Vm.new(vm_hash)
authorized!(Privilege::MODIFY, at vm.vm_resource_pool)
@@ -250,4 +245,16 @@ module VmService
authorized!(priv, at vm.vm_resource_pool)
end
+ def default_mac_and_uuid(vm_hash)
+ unless vm_hash[:uuid]
+ vm_hash[:uuid] = ["%02x"*4, "%02x"*2, "%02x"*2,
+ "%02x"*2, "%02x"*6].join("-") %
+ Array.new(16) {|x| rand(0xff) }
+ end
+ unless vm_hash[:vnic_mac_addr]
+ vm_hash[:vnic_mac_addr] = [ 0x00, 0x16, 0x3e, rand(0x7f), rand(0xff),
+ rand(0xff) ].collect {|x| "%02x" % x}.join(":")
+ end
+ end
+
end
--
1.6.0.6
More information about the ovirt-devel
mailing list