[opennebula] Added several mocks for fit live testing

This commit is contained in:
Achim Ledermüller 2014-05-14 08:16:00 +02:00
parent 7d27c6ab8b
commit 9cf6870ae6
7 changed files with 68 additions and 35 deletions

View File

@ -19,11 +19,7 @@ module Fog
collection :interfaces
model :group
collection :groups
# model :pool
# collection :pools
# model :node
# collection :nodes
#
request_path 'fog/opennebula/requests/compute'
request :list_vms
request :list_groups
@ -34,30 +30,22 @@ module Fog
request :vm_resume
request :vm_stop
request :template_pool
#request :define_domain
# request :vm_action
# request :list_pools
# request :list_pool_volumes
# request :define_pool
# request :pool_action
# request :list_volumes
# request :volume_action
# request :create_volume
# request :destroy_network
# request :list_interfaces
# request :destroy_interface
# request :get_node_info
# request :update_display
class Mock
include Collections
def initialize(options={})
end
def client
return @client
end
end
class Real
include Collections
def client
return @client if defined?(@client)
return @client
end
def initialize(options={})

View File

@ -41,7 +41,7 @@ module Fog
end
class Mock
def list_networks(filters={ })
def list_networks(filters={})
net1 = mock_network 'net1'
net2 = mock_network 'net2'
[net1, net2]
@ -49,9 +49,12 @@ module Fog
def mock_network name
{
:uuid => 'net.uuid',
:name => name,
:bridge_name => 'net.bridge_name'
:id => "5",
:name => name,
:uid => "5",
:gid => "5",
:description => "netDescription",
:vlan => "5"
}
end
end

View File

@ -52,15 +52,36 @@ module Fog
end
class Mock
def list_vms(filter = { })
dom1 = mock_domain 'fog-dom1'
dom2 = mock_domain 'fog-dom2'
dom3 = mock_domain 'a-fog-dom3'
[dom1, dom2, dom3]
def list_vms(filter = {})
if filter[:id].nil?
vm1 = mock_vm 'fog-vm1'
vm2 = mock_vm 'fog-vm2'
vm3 = mock_vm 'fog-vm3'
return [vm1, vm2, vm3]
elsif filter[:mock_return]
mock_vm 'fog-vm1', filter[:id]
else
[]
end
end
def mock_vm(name, id=4)
data = {}
data["onevm_object"] = ""
data["status"] = "Running"
data["state"] = "3"
data["id"] = id
data["uuid"] = "5"
data["gid"] = "5"
data["name"] = "MockVM-#{name}"
data["user"] = "MockUser"
data["group"] = "MockGroup"
data["cpu"] = "2"
data["memory"] = "1024"
data["mac"] = "00:01:02:03:04:05"
data["ip"] = "1.1.1.1"
data
end
end
end
end
end

View File

@ -70,6 +70,9 @@ module Fog
end #class Real
class Mock
def template_pool(filter = { })
[ {}, {} ]
end
end #class Mock
end #class OpenNebula
end #module Compute

View File

@ -67,6 +67,23 @@ module Fog
end
class Mock
def vm_allocate(attr={ })
data = {}
data["onevm_object"] = ""
data["status"] = "Running"
data["state"] = "3"
data["id"] = 4
data["uuid"] = "5"
data["gid"] = "5"
data["name"] = "MockVM"
data["user"] = "MockUser"
data["group"] = "MockGroup"
data["cpu"] = "2"
data["memory"] = "1024"
data["mac"] = "00:01:02:03:04:05"
data["ip"] = "1.1.1.1"
data
end
end
end
end

View File

@ -2,7 +2,6 @@ module Fog
module Compute
class OpenNebula
class Real
def vm_destroy(id)
vmpool = ::OpenNebula::VirtualMachinePool.new(client)
vmpool.info!(-2,id,id,-1)
@ -12,8 +11,10 @@ module Fog
vm.delete(false)
end
end
class Mock
end
class Mock
def vm_destroy(id)
true
end
end
end

View File

@ -12,7 +12,7 @@ Shindo.tests("Fog::Compute[:opennebula] | vm_create and destroy request", 'openn
end
tests("Destroy VM") do
compute.vm_destroy(response['id'])
vms = compute.list_vms({:id => response['id']})
vms = compute.list_vms({:id => response['id'], :mock_return => false})
test("get vm should be empty") { compute.list_vms({:id => response['id']}).empty?}
end