1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00

[oVirt] added support for update vm on ovirt

This commit is contained in:
Amos Benari 2012-02-20 14:18:54 +02:00
parent 50499d004e
commit 76e3447c61
5 changed files with 45 additions and 3 deletions

View file

@ -54,7 +54,7 @@ Gem::Specification.new do |s|
s.add_development_dependency('rdoc')
s.add_development_dependency('thor')
s.add_development_dependency('rspec', '~>1.3.1')
s.add_development_dependency('rbovirt', '>=0.0.5')
s.add_development_dependency('rbovirt', '>=0.0.7')
s.add_development_dependency('shindo', '~>0.3.4')
s.add_development_dependency('virtualbox', '~>0.9.1')
s.add_development_dependency('fission')

View file

@ -19,6 +19,7 @@ module Fog
request :vm_action
request :destroy_vm
request :create_vm
request :update_vm
request :datacenters
request :storage_domains
request :list_virtual_machines

View file

@ -66,8 +66,11 @@ module Fog
end
def save
raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if identity
self.id = connection.create_vm(attributes).id
if identity
connection.update_vm(attributes)
else
self.id = connection.create_vm(attributes).id
end
reload
end

View file

@ -0,0 +1,20 @@
module Fog
module Compute
class Ovirt
class Real
def update_vm(attrs)
client.update_vm(attrs)
end
end
class Mock
def update_vm(attrs)
xml = read_xml('vm.xml')
OVIRT::VM::new(self, Nokogiri::XML(xml).root)
end
end
end
end
end

View file

@ -0,0 +1,18 @@
Shindo.tests('Fog::Compute[:ovirt] | vm_update request', ['ovirt']) do
compute = Fog::Compute[:ovirt]
if compute.servers.all(:search => 'fog-*').empty?
compute.create_vm(:name => 'fog-'+Time.now.to_i.to_s, :cluster_name => 'Default')
end
vm = compute.servers.all(:search => 'fog-*').last
tests('The response should') do
response = compute.update_vm(:id => vm.id, :name => vm.name + 'updated')
test("be a kind of OVIRT::VM") { response.kind_of? OVIRT::VM}
end
tests('The expected options') do
raises(ArgumentError, 'raises ArgumentError when id option is missing') { compute.update_vm }
end
end