# File lib/ovirt/vm.rb, line 11 def initialize(client, xml) super(client, xml[:id], xml[:href], (xml/'name').first.text) parse_xml_attributes!(xml) end
# File lib/ovirt/vm.rb, line 42 def self.ticket options={} builder = Nokogiri::XML::Builder.new do action_{ ticket_{ expiry_(options[:expiry] || 120) } } end Nokogiri::XML(builder.to_xml).root.to_s end
# File lib/ovirt/vm.rb, line 49 def self.to_xml(opts={}) builder = Nokogiri::XML::Builder.new do vm{ name_ opts[:name] || "i-#{Time.now.to_i}" if opts[:template] && !opts[:template].empty? template_ :id => (opts[:template]) elsif opts[:template_name] && !opts[:template_name].empty? template_{ name_(opts[:template_name])} else template_{name_('Blank')} end if opts[:quota] quota_( :id => opts[:quota]) end if opts[:cluster] cluster_( :id => opts[:cluster]) elsif opts[:cluster_name] cluster_{ name_(opts[:cluster_name])} end type_ opts[:hwp_id] || 'Server' if opts[:memory] memory opts[:memory] end if opts[:cores] cpu { topology( :cores => (opts[:cores] || '1'), :sockets => '1' ) } end # os element must not be sent when template is present (RHBZ 1104235) if opts[:template].nil? || opts[:template].empty? os({:type => opts[:os_type] || 'unassigned' }){ if(opts[:first_boot_dev] && opts[:first_boot_dev] == 'network') boot(:dev=> opts[:boot_dev1] || 'network') boot(:dev=> opts[:boot_dev2] || 'hd') else boot(:dev=> opts[:boot_dev2] || 'hd') boot(:dev=> opts[:boot_dev1] || 'network') end kernel (opts[:os_kernel]) initrd (opts[:os_initrd]) cmdline (opts[:os_cmdline]) } end display_{ type_(opts[:display][:type]) } if opts[:display] custom_properties { custom_property({ :name => "floppyinject", :value => "#{opts[:fileinject_path] || OVIRT::FILEINJECT_PATH}:#{opts[:user_data]}", :regexp => "^([^:]+):(.*)$"}) } if(opts[:user_data_method] && opts[:user_data_method] == :custom_property) payloads { payload(:type => 'floppy') { file(:name => "#{opts[:fileinject_path] || OVIRT::FILEINJECT_PATH}") { content(Base64::decode64(opts[:user_data])) } } } if(opts[:user_data_method] && opts[:user_data_method] == :payload) } end Nokogiri::XML(builder.to_xml).root.to_s end
In oVirt 3.1 a vm can be marked down and not locked while its volumes are locked. This method indicates if it is safe to launch the vm.
# File lib/ovirt/vm.rb, line 22 def ready? return false unless @status =~ /down/ volumes.each do |volume| return false if volume.status =~ /locked/ end true end
Generated with the Darkfish Rdoc Generator 2.