Methods
public class
public instance
Constants
VM_METHODS | = | { :info => "vm.info", :allocate => "vm.allocate", :action => "vm.action", :migrate => "vm.migrate", :deploy => "vm.deploy" } | Constants and Class Methods | |
VM_STATE | = | %w{INIT PENDING HOLD ACTIVE STOPPED SUSPENDED DONE FAILED} | ||
LCM_STATE | = | %w{LCM_INIT PROLOG BOOT RUNNING MIGRATE SAVE_STOP SAVE_SUSPEND SAVE_MIGRATE PROLOG_MIGRATE PROLOG_RESUME EPILOG_STOP EPILOG SHUTDOWN CANCEL FAILURE DELETE UNKNOWN} | ||
SHORT_VM_STATES | = | { "INIT" => "init", "PENDING" => "pend", "HOLD" => "hold", "ACTIVE" => "actv", "STOPPED" => "stop", "SUSPENDED" => "susp", "DONE" => "done", "FAILED" => "fail" } | ||
SHORT_LCM_STATES | = | { "PROLOG" => "prol", "BOOT" => "boot", "RUNNING" => "runn", "MIGRATE" => "migr", "SAVE_STOP" => "save", "SAVE_SUSPEND" => "save", "SAVE_MIGRATE" => "save", "PROLOG_MIGRATE"=> "migr", "PROLOG_RESUME" => "prol", "EPILOG_STOP" => "epil", "EPILOG" => "epil", "SHUTDOWN" => "shut", "CANCEL" => "shut", "FAILURE" => "fail", "DELETE" => "dele", "UNKNOWN" => "unkn" } | ||
MIGRATE_REASON | = | %w{NONE ERROR STOP_RESUME USER CANCEL} | ||
SHORT_MIGRATE_REASON | = | { "NONE" => "none", "ERROR" => "erro", "STOP_RESUME" => "stop", "USER" => "user", "CANCEL" => "canc" } |
Public class methods
Creates a VirtualMachine description with just its identifier this method should be used to create plain VirtualMachine objects. id the id of the vm
Example:
vnet = VirtualMachine.new(VirtualMachine.build_xml(3),rpc_client)
# File OpenNebula/VirtualMachine.rb, line 69 def VirtualMachine.build_xml(pe_id=nil) if pe_id vm_xml = "<VM><ID>#{pe_id}</ID></VM>" else vm_xml = "<VM></VM>" end XMLUtilsElement.initialize_xml(vm_xml, 'VM') end
# File OpenNebula/VirtualMachine.rb, line 79 def VirtualMachine.get_reason(reason) reason=MIGRATE_REASON[reason.to_i] reason_str=SHORT_MIGRATE_REASON[reason] reason_str end
Class constructor
# File OpenNebula/VirtualMachine.rb, line 89 def initialize(xml, client) super(xml,client) @element_name = "VM" @client = client end
Public instance methods
# File OpenNebula/VirtualMachine.rb, line 104 def allocate(description) super(VM_METHODS[:allocate],description) end
# File OpenNebula/VirtualMachine.rb, line 121 def cancel action('cancel') end
# File OpenNebula/VirtualMachine.rb, line 108 def deploy(host_id) return Error.new('ID not defined') if !@pe_id rc = @client.call(VM_METHODS[:deploy], @pe_id, host_id.to_i) rc = nil if !OpenNebula.is_error?(rc) return rc end
# File OpenNebula/VirtualMachine.rb, line 145 def finalize action('finalize') end
XML-RPC Methods for the Virtual Machine Object
# File OpenNebula/VirtualMachine.rb, line 100 def info() super(VM_METHODS[:info], 'VM') end
Returns the LCM state of the VirtualMachine (numeric value)
# File OpenNebula/VirtualMachine.rb, line 186 def lcm_state self['LCM_STATE'].to_i end
Returns the LCM state of the VirtualMachine (string value)
# File OpenNebula/VirtualMachine.rb, line 191 def lcm_state_str LCM_STATE[lcm_state] end
# File OpenNebula/VirtualMachine.rb, line 162 def live_migrate(host_id) return Error.new('ID not defined') if !@pe_id rc = @client.call(VM_METHODS[:migrate], @pe_id, host_id.to_i, true) rc = nil if !OpenNebula.is_error?(rc) return rc end
# File OpenNebula/VirtualMachine.rb, line 153 def migrate(host_id) return Error.new('ID not defined') if !@pe_id rc = @client.call(VM_METHODS[:migrate], @pe_id, host_id.to_i, false) rc = nil if !OpenNebula.is_error?(rc) return rc end
# File OpenNebula/VirtualMachine.rb, line 129 def release action('release') end
# File OpenNebula/VirtualMachine.rb, line 149 def restart action('restart') end
# File OpenNebula/VirtualMachine.rb, line 141 def resume action('resume') end
# File OpenNebula/VirtualMachine.rb, line 117 def shutdown action('shutdown') end
Returns the VM state of the VirtualMachine (numeric value)
# File OpenNebula/VirtualMachine.rb, line 176 def state self['STATE'].to_i end
Returns the VM state of the VirtualMachine (string value)
# File OpenNebula/VirtualMachine.rb, line 181 def state_str VM_STATE[state] end
Returns the short status string for the VirtualMachine
# File OpenNebula/VirtualMachine.rb, line 196 def status short_state_str=SHORT_VM_STATES[state_str] if short_state_str=="actv" short_state_str=SHORT_LCM_STATES[lcm_state_str] end short_state_str end
# File OpenNebula/VirtualMachine.rb, line 137 def suspend action('suspend') end