class Fog::Ovirt::Compute::Server
Public Instance Methods
add_interface(attrs)
click to toggle source
# File lib/fog/ovirt/models/compute/server.rb, line 66 def add_interface(attrs) wait_for { stopped? } if attrs[:blocking] service.add_interface(id, attrs) end
add_to_affinity_group(attrs)
click to toggle source
# File lib/fog/ovirt/models/compute/server.rb, line 117 def add_to_affinity_group(attrs) wait_for { stopped? } if attrs[:blocking] service.add_to_affinity_group(id, attrs) end
add_volume(attrs)
click to toggle source
# File lib/fog/ovirt/models/compute/server.rb, line 92 def add_volume(attrs) wait_for { stopped? } if attrs[:blocking] service.add_volume(id, attrs) end
attach_volume(attrs)
click to toggle source
# File lib/fog/ovirt/models/compute/server.rb, line 107 def attach_volume(attrs) wait_for { stopped? } if attrs[:blocking] service.attach_volume(id, attrs) end
destroy(_options = {})
click to toggle source
# File lib/fog/ovirt/models/compute/server.rb, line 166 def destroy(_options = {}) begin (stop unless stopped?) rescue StandardError nil end wait_for { stopped? } service.destroy_vm(:id => id) end
destroy_interface(attrs)
click to toggle source
# File lib/fog/ovirt/models/compute/server.rb, line 76 def destroy_interface(attrs) wait_for { stopped? } if attrs[:blocking] service.destroy_interface(id, attrs) end
destroy_volume(attrs)
click to toggle source
# File lib/fog/ovirt/models/compute/server.rb, line 97 def destroy_volume(attrs) wait_for { stopped? } if attrs[:blocking] service.destroy_volume(id, attrs) end
detach_volume(attrs)
click to toggle source
# File lib/fog/ovirt/models/compute/server.rb, line 112 def detach_volume(attrs) wait_for { stopped? } if attrs[:blocking] service.detach_volume(id, attrs) end
interfaces()
click to toggle source
# File lib/fog/ovirt/models/compute/server.rb, line 55 def interfaces @interfaces ||= if id.nil? [] else Fog::Ovirt::Compute::Interfaces.new( :service => service, :vm => self ) end end
locked?()
click to toggle source
# File lib/fog/ovirt/models/compute/server.rb, line 42 def locked? @volumes = nil # force reload volumes !!(status =~ /locked/i) || (attributes[:volumes] = nil) || volumes.any? { |v| !!(v.status =~ /locked/i) } end
mac()
click to toggle source
# File lib/fog/ovirt/models/compute/server.rb, line 51 def mac interfaces.first.mac unless interfaces.empty? end
ready?()
click to toggle source
# File lib/fog/ovirt/models/compute/server.rb, line 38 def ready? status !~ /down/i end
reboot(options = {})
click to toggle source
# File lib/fog/ovirt/models/compute/server.rb, line 148 def reboot(options = {}) unless stopped? stop wait_for { stopped? } end start options.merge(:blocking => true) end
remove_from_affinity_group(attrs)
click to toggle source
# File lib/fog/ovirt/models/compute/server.rb, line 122 def remove_from_affinity_group(attrs) wait_for { stopped? } if attrs[:blocking] service.remove_from_affinity_group(id, attrs) end
save()
click to toggle source
# File lib/fog/ovirt/models/compute/server.rb, line 181 def save if persisted? service.update_vm(attributes) else self.id = service.create_vm(attributes).id end reload end
start(options = {})
click to toggle source
# File lib/fog/ovirt/models/compute/server.rb, line 127 def start(options = {}) wait_for { !locked? } if options[:blocking] vm_power_action(:start) end
start_with_cloudinit(options = {})
click to toggle source
# File lib/fog/ovirt/models/compute/server.rb, line 132 def start_with_cloudinit(options = {}) wait_for { !locked? } if options[:blocking] user_data = if options[:use_custom_script] { :custom_script => options[:user_data] } else YAML.safe_load(options[:user_data]).to_h { |a| [a.first.to_sym, a.last] } end action_status = service.vm_start_with_cloudinit(:id => id, :user_data => user_data) reload action_status end
stop(_options = {})
click to toggle source
# File lib/fog/ovirt/models/compute/server.rb, line 144 def stop(_options = {}) vm_power_action(:stop) end
stopped?()
click to toggle source
# File lib/fog/ovirt/models/compute/server.rb, line 47 def stopped? status.casecmp("down").zero? end
suspend(_options = {})
click to toggle source
# File lib/fog/ovirt/models/compute/server.rb, line 156 def suspend(_options = {}) vm_power_action(:suspend) end
ticket(options = {})
click to toggle source
# File lib/fog/ovirt/models/compute/server.rb, line 176 def ticket(options = {}) raise ::Fog::Ovirt::Errors::OvirtError, "Can not set console ticket, Server is not ready. Server status: #{status}" unless ready? service.vm_ticket(id, options) end
to_s()
click to toggle source
# File lib/fog/ovirt/models/compute/server.rb, line 190 def to_s name end
update_interface(attrs)
click to toggle source
# File lib/fog/ovirt/models/compute/server.rb, line 71 def update_interface(attrs) wait_for { stopped? } if attrs[:blocking] service.update_interface(id, attrs) end
update_volume(attrs)
click to toggle source
# File lib/fog/ovirt/models/compute/server.rb, line 102 def update_volume(attrs) wait_for { stopped? } if attrs[:blocking] service.update_volume(id, attrs) end
vm_power_action(action)
click to toggle source
# File lib/fog/ovirt/models/compute/server.rb, line 160 def vm_power_action(action) action_status = service.vm_action(:id => id, :action => action) reload action_status end
volumes()
click to toggle source
# File lib/fog/ovirt/models/compute/server.rb, line 81 def volumes @volumes ||= if id.nil? [] else Fog::Ovirt::Compute::Volumes.new( :service => service, :vm => self ) end end