class Fog::Compute::OpenNebula::Mock
Attributes
client[R]
Public Class Methods
data()
click to toggle source
# File lib/fog/opennebula/compute.rb, line 39 def self.data @data ||= Hash.new do |hash, key| hash[key] = { 'vms' => [ { 'onevm_object' => '', 'status' => 'RUNNING', 'state' => '3', 'id' => 4, 'uuid' => '5', 'gid' => '5', 'name' => 'MockVM', 'user' => 'MockUser', 'group' => 'MockGroup', 'cpu' => '2', 'memory' => '1024', 'mac' => '00:01:02:03:04:05', 'ip' => '1.1.1.1' } ], 'image_pool' => [ {} ], 'template_pool' => [ { 'content' => %( NAME = mock-vm MEMORY = 512 VCPU = 1 CPU = 1 ), 'id' => 1, 'name' => 'mock', 'cpu' => 1, 'vcpu' => 1, 'memory' => 512, 'sched_requirements' => 'CPUSPEED > 1000', 'sched_rank' => 'FREECPU', 'sched_ds_requirements' => 'NAME=mock', 'sched_ds_rank' => 'FREE_MB', 'disk' => {}, 'nic' => {}, 'os' => { 'ARCH' => 'x86_64' }, 'graphics' => {}, 'raw' => %(["DATA"=>"<cpu match='exact'><model fallback='allow'>core2duo</model></cpu>", "TYPE"=>"kvm"]), 'context' => {}, 'user_variables' => {} } ] } end end
new(options = {})
click to toggle source
# File lib/fog/opennebula/compute.rb, line 99 def initialize(options = {}) @opennebula_endpoint = options[:opennebula_endpoint] @opennebula_username = options[:opennebula_username] @opennebula_password = options[:opennebula_password] require 'opennebula' end
reset()
click to toggle source
# File lib/fog/opennebula/compute.rb, line 94 def self.reset @data = nil end
Public Instance Methods
data()
click to toggle source
# File lib/fog/opennebula/compute.rb, line 108 def data self.class.data[@opennebula_endpoint] end
get_vnc_console(_server_id, _console_type)
click to toggle source
Get a vnc console for an instance.
Parameters¶ ↑
-
server_id <~String> - The ID of the server.
-
console_type <~String> - Type of vnc console to get ('novnc' or 'xvpvnc').
Returns¶ ↑
-
response <~Excon::Response>:
-
body <~Hash>:
-
url <~String>
-
type <~String>
-
-
# File lib/fog/opennebula/requests/compute/get_vnc_console.rb, line 20 def get_vnc_console(_server_id, _console_type) body = { :type => 'novnc', :proxy_port => '29876', :password => 'null', :token => '3n32dtwpsdj5jkug3b4w', :proxy_host => 'example.com' } end
list_groups(filter = {})
click to toggle source
# File lib/fog/opennebula/requests/compute/list_groups.rb, line 47 def list_groups(filter = {}) groups = [] net1 = mock_group '1', 'net1' net2 = mock_group '2', 'fogtest' grouppool = [net1, net2] grouppool.each do |group| filter_missmatch = false unless filter.empty? filter.each do |k, v| if group[k.to_s.upcase.to_s] && group[k.to_s.upcase.to_s] != v.to_s filter_missmatch = true break end end next if filter_missmatch end groups << { :id => group['ID'], :name => group['NAME'] } end groups end
list_networks(_filters = {})
click to toggle source
# File lib/fog/opennebula/requests/compute/list_networks.rb, line 55 def list_networks(_filters = {}) net1 = mock_network 'fogtest' net2 = mock_network 'net2' [net1, net2] end
list_vms(filter = {})
click to toggle source
# File lib/fog/opennebula/requests/compute/list_vms.rb, line 61 def list_vms(filter = {}) vms = [] data['vms'].each do |vm| if filter[:id].nil? vms << vm elsif filter[:id] == vm['id'] vms << vm end end vms end
mock_group(id, name)
click to toggle source
# File lib/fog/opennebula/requests/compute/list_groups.rb, line 70 def mock_group(id, name) { 'ID' => id, 'NAME' => name, 'UID' => '5', 'GID' => '5', 'DESCRIPTION' => 'netDescription', 'VLAN' => '5' } end
mock_network(name)
click to toggle source
# File lib/fog/opennebula/requests/compute/list_networks.rb, line 61 def mock_network(name) { :id => '5', :name => name, :uid => '5', :uname => 'mock', :gid => '5', :description => 'netDescription', :vlan => '5' } end
reset_data()
click to toggle source
# File lib/fog/opennebula/compute.rb, line 112 def reset_data self.class.data.delete(@opennebula_endpoint) end
template_pool(_filter = {})
click to toggle source
# File lib/fog/opennebula/requests/compute/template_pool.rb, line 85 def template_pool(_filter = {}) nic1 = Mock_nic.new nic1.vnet = networks.first data['template_pool'] data['template_pool'].each do |tmpl| tmpl['nic'][0] = nic1 end data['template_pool'] end
vm_allocate(attr = {})
click to toggle source
# File lib/fog/opennebula/requests/compute/vm_allocate.rb, line 66 def vm_allocate(attr = {}) response = Excon::Response.new response.status = 200 id = rand(1000) ids = [] data['vms'].each do |vm| ids << vm['id'] next unless vm['id'] == id id = rand(1000) while ids.include?(id) break end data = {} data['id'] = id data['flavor'] = attr[:flavor] data['name'] = attr[:name] data['state'] = 'RUNNING' data['status'] = 3 self.data['vms'] << data data end
vm_destroy(id)
click to toggle source
# File lib/fog/opennebula/requests/compute/vm_destroy.rb, line 23 def vm_destroy(id) response = Excon::Response.new response.status = 200 data['vms'].each do |vm| data['vms'].delete(vm) if vm['id'] == id end true end
vm_disk_snapshot(id, disk_id, image_name)
click to toggle source
# File lib/fog/opennebula/requests/compute/vm_disk_snapshot.rb, line 25 def vm_disk_snapshot(id, disk_id, image_name); end
vm_resume(id)
click to toggle source
# File lib/fog/opennebula/requests/compute/vm_resume.rb, line 20 def vm_resume(id) data['vms'].each do |vm| if id == vm['id'] vm['state'] = 'RUNNING' vm['status'] = 3 end end end
vm_suspend(id)
click to toggle source
# File lib/fog/opennebula/requests/compute/vm_suspend.rb, line 20 def vm_suspend(id) response = Excon::Response.new response.status = 200 data['vms'].each do |vm| if id == vm['id'] vm['state'] = 'LCM_INIT' vm['status'] = 5 end end end