class Archipel::Api::HypervisorApi
Public Class Methods
new(login: nil, password: nil, server: nil, hypervisor: nil)
click to toggle source
Calls superclass method
Archipel::Api::Internal::Api::new
# File lib/archipel/api/hypervisor_api.rb, line 5 def initialize login: nil, password: nil, server: nil, hypervisor: nil @api = Archipel::Api::Internal::HypervisorXmlMessages.new super({login: login, password: password, server: server, hypervisor: hypervisor}) end
Public Instance Methods
create_vm(name, user_jid)
click to toggle source
# File lib/archipel/api/hypervisor_api.rb, line 13 def create_vm name, user_jid resp = method_missing :create_vm, name, user_jid vm_jid = resp['query'][0]['virtualmachine'][0]['jid'] hypervisor_name = resp['from'].split('@')[0] vm_jid + '/' + hypervisor_name end
delete_vm(jid_or_name)
click to toggle source
# File lib/archipel/api/hypervisor_api.rb, line 20 def delete_vm jid_or_name if jid_or_name.include? '@' jid = jid_or_name else name = jid_or_name jid = get_vm_jid_by_name name end method_missing :delete_vm, jid end
get_vm_jid_by_name(name)
click to toggle source
# File lib/archipel/api/hypervisor_api.rb, line 40 def get_vm_jid_by_name name jid = list_vm[name] raise "VM #{name} not found" if jid.nil? jid end
list_users(human_only = true)
click to toggle source
# File lib/archipel/api/hypervisor_api.rb, line 46 def list_users human_only = true all_users = [] page = 0 loop do resp = method_missing :list_users, page, human_only users = resp['query'][0]['user'] break if users.blank? all_users += users page += 1 end all_users.map { |e| e['jid'].downcase } end
list_vm()
click to toggle source
# File lib/archipel/api/hypervisor_api.rb, line 30 def list_vm resp = method_missing :list_vm vms_resp = resp['query'][0]['item'] vms = {} vms_resp.each do |vm| vms[vm['name']] = vm['content'] end vms end
method_missing(symbol, *args)
click to toggle source
# File lib/archipel/api/hypervisor_api.rb, line 65 def method_missing symbol, *args xml = @api.send symbol, *args call xml end
user_exist?(jid)
click to toggle source
# File lib/archipel/api/hypervisor_api.rb, line 61 def user_exist? jid list_users.include? jid.downcase end