Coder Social home page Coder Social logo

rbovirt's People

Contributors

aalba6675 avatar abenari avatar abonas avatar bagasse avatar bronhaim avatar dougbishop avatar ehelms avatar epienbroek avatar fryguy avatar gilad-chap avatar gkwmiddelkamp avatar inecas avatar jhernand avatar jmontleon avatar jprovaznik avatar jvlcek avatar karmab avatar lzap avatar masayag avatar mfojtik avatar mmoll avatar number41 avatar ohadlevy avatar oourfali avatar orrabin avatar pdilung avatar pparkkin avatar shiramax avatar unorthodoxgeek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

rbovirt's Issues

Implement alias attribute for Volume class

Implement an alias attribute for OVIRT::Volume class. This feature is present since RHEV 3.1 and onwards. A backward compatibility is achieved by simply not using alias in options when a volume object is created.

Confused about userdata

I'm scratching my head with an issue, perhaps you can save me that headache.

I maintain the vagrant-ovirt3 plugin, and I'm looking to actually utilize userdata. The documentation I took over from the upstream project is lacking.

My vagrantfile contains:

ovirt.user_data =<<-EOF
  runcmd:
    - yum install -y ntpdate samba-winbind krb5-workstation samba-winbind-krb5-locator
EOF

that gets set in lib/vagrant-ovirt3/action/create_vm.rb as:

user_data = config.user_data ?
  Base64::encode64(config.user_data) :
    nil

and evenually

           attr = {
               :name     => name,
               :cores    => cpus,
               :memory   => memory_size*1024,
               :cluster  => cluster.id,
               :template => template.id,
               :display  => {:type => console },
               :user_data => user_data,
           }

           begin
             server = env[:ovirt_compute].servers.create(attr)
...snip...

My locales gets no error message from this, so pulling it out of the begin/rescue i get a pretty ugly stacktrace:

Marc-win8:example_box $ vagrant up --provider=ovirt3
Bringing machine 'default' up with 'ovirt3' provider...
==> default: Creating VM with the following settings...
==> default:  -- Name:          example_box_1430229427.903915
==> default:  -- Cpus:          1
==> default:  -- Memory:        512M
==> default:  -- Template:      vagrant-centos65
==> default:  -- Version:       0
==> default:  -- Datacenter:    local_dc
==> default:  -- Cluster:       local_cluster
==> default:  -- Console:       spice
==> default:  -- User data:
==> default:     runcmd:
==> default:      - yum install -y ntpdate samba-winbind krb5-workstation samba-winbind-krb5-locator
==> default: An error occured. Recovering..
==> default: VM is not created. Please run `vagrant up` first.
C:/Users/myoung/.vagrant.d/gems/gems/rbovirt-0.0.35/lib/rbovirt.rb:197:in `handle_fault': OVIRT::OvirtException
        from C:/Users/myoung/.vagrant.d/gems/gems/rbovirt-0.0.35/lib/rbovirt.rb:124:in `rescue in http_post'
        from C:/Users/myoung/.vagrant.d/gems/gems/rbovirt-0.0.35/lib/rbovirt.rb:119:in `http_post'
        from C:/Users/myoung/.vagrant.d/gems/gems/rbovirt-0.0.35/lib/client/vm_api.rb:34:in `create_vm'
        from C:/Users/myoung/.vagrant.d/gems/gems/fog-1.29.0/lib/fog/ovirt/requests/compute/create_vm.rb:6:in `create_vm'
        from C:/Users/myoung/.vagrant.d/gems/gems/fog-1.29.0/lib/fog/ovirt/models/compute/server.rb:157:in `save'
        from C:/Users/myoung/.vagrant.d/gems/gems/fog-core-1.30.0/lib/fog/core/collection.rb:51:in `create'
        from C:/Users/myoung/.vagrant.d/gems/gems/vagrant-ovirt3-1.4.0/lib/vagrant-ovirt3/action/create_vm.rb:89:in `call'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/warden.rb:34:in `call'
        from C:/Users/myoung/.vagrant.d/gems/gems/vagrant-ovirt3-1.4.0/lib/vagrant-ovirt3/action/set_name_of_domain.rb:24:in `call'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/warden.rb:34:in `call'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/warden.rb:34:in `call'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/warden.rb:34:in `call'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/builder.rb:116:in `call'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/runner.rb:66:in `block in run'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/util/busy.rb:19:in `busy'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/runner.rb:66:in `run'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/builtin/call.rb:53:in `call'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/warden.rb:34:in `call'
        from C:/Users/myoung/.vagrant.d/gems/gems/vagrant-ovirt3-1.4.0/lib/vagrant-ovirt3/action/connect_ovirt.rb:25:in `call'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/warden.rb:34:in `call'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/builtin/config_validate.rb:25:in `call'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/warden.rb:34:in `call'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/builder.rb:116:in `call'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/runner.rb:66:in `block in run'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/util/busy.rb:19:in `busy'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/runner.rb:66:in `run'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/machine.rb:214:in `action_raw'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/machine.rb:191:in `block in action'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/environment.rb:516:in `lock'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/machine.rb:178:in `call'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/machine.rb:178:in `action'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/batch_action.rb:82:in `block (2 levels) in run'

I'm really drawing a blank as to what rbovirt expects for its user_data.
Cloud-init is all YAML, If i use the oVirt UI and paste in the YAML, things are good.
Is my expectation wrong?

V0.0.37 -- How to close connexion opened with OVIRT::Client.new ?

Yes, I know 0.0.37 is very old, but someone else wrote the stuff on which I'm working and I need to stay within that framework for now.

A connexion established with OVIRT::Client.new appears to be persistent -- to the point at which I can't find any way to close it when I'm done. I've gotten a few strange side-effects from this persistence (can't remember any details), so I'd like to just shut it down when I'm done and moving on with the rest of the app's work.

How do I do that?

Thanks!

Missing files in rbovirt 0.0.14?

Some files seems to be missing in released gem:

/usr/share/rubygems/rubygems/custom_require.rb:36:in `require': cannot load such file -- /builddir/build/BUILD/rubygem-rbovirt-0.0.14/usr/share/gems/gems/rbovirt-0.0.14/spec/lib/endpoint (LoadError)
    from /usr/share/rubygems/rubygems/custom_require.rb:36:in `require'
    from /builddir/build/BUILD/rubygem-rbovirt-0.0.14/usr/share/gems/gems/rbovirt-0.0.14/spec/spec_helper.rb:9:in `<top (required)>'
    from /usr/share/rubygems/rubygems/custom_require.rb:36:in `require'
    from /usr/share/rubygems/rubygems/custom_require.rb:36:in `require'
    from /builddir/build/BUILD/rubygem-rbovirt-0.0.14/usr/share/gems/gems/rbovirt-0.0.14/spec/unit/vm_spec.rb:1:in `<top (required)>'
    from /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `load'
    from /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `block in load_spec_files'
    from /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `map'
    from /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `load_spec_files'
    from /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/command_line.rb:22:in `run'
    from /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/runner.rb:69:in `run'
    from /usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/runner.rb:8:in `block in autorun'

Issue with ovirt and direct luns when in Foreman

I discovered that using Foreman-1.5.1 and oVirt-3.4.2 which uses rbovirt-0.0.26 does have a problem when there are direct iscsi luns defined in ovirt. The compute resource doesn't list any VMs when in Foreman. Debugging this leads to volume.rb not having 'rescue nil' statements for several attributes. Adding this leads to a listing of VMs but maybe with unknown side effects to me.

Following is the modified volume.rb from 0.0.26.

module OVIRT

class Volume < BaseObject
attr_reader :size, :disk_type, :bootable, :interface, :format, :sparse, :status, :storage_domain, :vm, :quota

def initialize(client, xml)
  super(client, xml[:id], xml[:href], (xml/'name').first.text)
  parse_xml_attributes!(xml)
  self
end

def self.to_xml(storage_domain_id,opts={})
   builder = Nokogiri::XML::Builder.new do
    disk_{
      storage_domains_{
        storage_domain_(:id => storage_domain_id)
      }
      size_(opts[:size] || 8589934592)
      type_(opts[:type] || 'data')
      bootable_(opts[:bootable] || 'true')
      interface_(opts[:interface] || 'virtio')
      format_(opts[:format] || 'cow')
      sparse_(opts[:sparse] || 'true')
      if opts[:quota]
        quota_( :id => opts[:quota])
      end
    }
  end
  Nokogiri::XML(builder.to_xml).root.to_s
end

def parse_xml_attributes!(xml)
 @storage_domain = (xml/'storage_domains/storage_domain').first[:id] rescue nil
 @size = (xml/'size').first.text
 @disk_type = ((xml/'type').first.text rescue nil)
 @bootable = (xml/'bootable').first.text
 @interface = (xml/'interface').first.text
 @format = (xml/'format').first.text rescue nil
 @sparse = (xml/'sparse').first.text rescue nil
 @status = ((xml/'status').first.text rescue nil)
 @status ||= ((xml/'status/state').first.text rescue nil)
 @vm = Link::new(@client, (xml/'vm').first[:id], (xml/'vm').first[:href]) rescue nil
 @quota = ((xml/'quota').first[:id] rescue nil)
end

end

end

If you need more info or need me to run some tests, just let me know.

Strange Issues with OVIRT::VM.to_xml function

Hi!

I have a Foreman and a RHEV-M 3.5.3. And no idea about ruby. Anyway I hope you can help me.

To kickstart new VMs, I use PXE boot. New Machines in our RHEV Cluster will always have Harddisk, PXE as Boot order. Foreman use the first_boot_dev argument as you can see in https://github.com/theforeman/foreman/blob/94508562b8c10b8b53dcb0badaa8abe31887d059/app/models/compute_resources/foreman/model/ovirt.rb#L140

After some debugging on your lib, I figure out, that the paramter first_boot_dev is passed. (Note: I use File.open and opts.map{|k,v| "#{k}=#{v}"}.join('&') betwin line 49 and 50 here: https://github.com/abenari/rbovirt/blob/master/lib/ovirt/vm.rb#L49; Result: name=test4-fqdn&first_boot_dev=network&quota=&cluster=uuid-cluster-id-here&template=&cores=1&memory=1073741824)

Anyway, on line https://github.com/abenari/rbovirt/blob/master/lib/ovirt/vm.rb#L84, opts[:first_boot_dev] will be empty and the hardcoded order will be used. Also setting boot_dev1 and boot_dev0 on the foreman line has no affect..

Is this a normal behavior?

My System:
rbovirt Version: 0.0.35
Centos: 7.1 lastest
Ruby Version: 1.9.3 (look like..; /opt/rh/ruby193/root/)

Foreman Iusse Ticket reference: http://projects.theforeman.org/issues/6741 (may useless..)

Integration tests are failing with master

Against oVirt 3.6:

 1) Admin API VM Life cycle admin basic vm and templates operations behaves like Basic VM Life cycle test_should_start_with_cloudinit
     Failure/Error: @client.vm_start_with_cloudinit(@vm.id, user_data)
     OVIRT::OvirtException:
       Cannot run VM because the VM is in Powering Down status.
     Shared Example Group: "Basic VM Life cycle" called from ./spec/integration/vm_crud_spec.rb:128
     # ./lib/rbovirt.rb:202:in `handle_fault'
     # ./lib/rbovirt.rb:129:in `rescue in http_post'
     # ./lib/rbovirt.rb:124:in `http_post'
     # ./lib/client/vm_api.rb:150:in `vm_start_with_cloudinit'
     # ./spec/integration/vm_crud_spec.rb:47:in `block (2 levels) in <top (required)>'

  2) Admin API VM Life cycle admin basic vm and templates operations behaves like Basic VM Life cycle test_should_set_vm_ticket
     Failure/Error: @client.vm_action(@vm.id, :start)
     OVIRT::OvirtException:
       Cannot run VM because the VM is in Powering Down status.
     Shared Example Group: "Basic VM Life cycle" called from ./spec/integration/vm_crud_spec.rb:128
     # ./lib/rbovirt.rb:202:in `handle_fault'
     # ./lib/rbovirt.rb:129:in `rescue in http_post'
     # ./lib/rbovirt.rb:124:in `http_post'
     # ./lib/client/vm_api.rb:138:in `vm_action'
     # ./spec/integration/vm_crud_spec.rb:54:in `block (2 levels) in <top (required)>'

  3) User API VM Life cycle user basic vm and templates operations behaves like Basic VM Life cycle test_should_start_with_cloudinit
     Failure/Error: @client.vm_start_with_cloudinit(@vm.id, user_data)
     OVIRT::OvirtException:
       Cannot run VM because the VM is in Powering Down status.
     Shared Example Group: "Basic VM Life cycle" called from ./spec/integration/vm_crud_spec.rb:150
     # ./lib/rbovirt.rb:202:in `handle_fault'
     # ./lib/rbovirt.rb:129:in `rescue in http_post'
     # ./lib/rbovirt.rb:124:in `http_post'
     # ./lib/client/vm_api.rb:150:in `vm_start_with_cloudinit'
     # ./spec/integration/vm_crud_spec.rb:47:in `block (2 levels) in <top (required)>'

  4) User API VM Life cycle user basic vm and templates operations behaves like Basic VM Life cycle test_should_set_vm_ticket
     Failure/Error: @client.vm_action(@vm.id, :start)
     OVIRT::OvirtException:
       Cannot run VM because the VM is in Powering Down status.
     Shared Example Group: "Basic VM Life cycle" called from ./spec/integration/vm_crud_spec.rb:150
     # ./lib/rbovirt.rb:202:in `handle_fault'
     # ./lib/rbovirt.rb:129:in `rescue in http_post'
     # ./lib/rbovirt.rb:124:in `http_post'
     # ./lib/client/vm_api.rb:138:in `vm_action'
     # ./spec/integration/vm_crud_spec.rb:54:in `block (2 levels) in <top (required)>'

  5) VM API support functions options processing should process template option into disk decriptions
     Failure/Error: @template_name = @config['template'] || @client.templates.first.name
     NoMethodError:
       undefined method `name' for nil:NilClass
     # ./spec/integration/vm_crud_spec.rb:159:in `block (2 levels) in <top (required)>'

  6) VM API support functions options processing should process template_name option into disk decriptions
     Failure/Error: @template_name = @config['template'] || @client.templates.first.name
     NoMethodError:
       undefined method `name' for nil:NilClass
     # ./spec/integration/vm_crud_spec.rb:159:in `block (2 levels) in <top (required)>'

  7) VM API support functions options processing should process template and storagedomain options into disk decriptions
     Failure/Error: @template_name = @config['template'] || @client.templates.first.name
     NoMethodError:
       undefined method `name' for nil:NilClass
     # ./spec/integration/vm_crud_spec.rb:159:in `block (2 levels) in <top (required)>'

  8) VM API support functions options processing should process template_name and storagedomain options into disk decriptions
     Failure/Error: @template_name = @config['template'] || @client.templates.first.name
     NoMethodError:
       undefined method `name' for nil:NilClass
     # ./spec/integration/vm_crud_spec.rb:159:in `block (2 levels) in <top (required)>'

  9) VM API support functions options processing should process template and storagedomain_name options into disk decriptions
     Failure/Error: @template_name = @config['template'] || @client.templates.first.name
     NoMethodError:
       undefined method `name' for nil:NilClass
     # ./spec/integration/vm_crud_spec.rb:159:in `block (2 levels) in <top (required)>'

  10) VM API support functions options processing should process template_name and storagedomain_name options into disk decriptions
     Failure/Error: @template_name = @config['template'] || @client.templates.first.name
     NoMethodError:
       undefined method `name' for nil:NilClass
     # ./spec/integration/vm_crud_spec.rb:159:in `block (2 levels) in <top (required)>'

Status field should be handled generically in base object

Based on discussion in pull request #44

Status field is part of base_object in oVirt, and is treated in several different entities in rbovirt making it a "copy paste".
So, it's better to handle it once in base_object in rbovirt, and it will just remain unpopulated for entities that currently don't populate it in oVirt. most of the entities in rbovirt do handle it.
While doing that, the status field should be handled correctly by parsing "status/state" and not just "status" as done in some entities.

Unable to use rbovirt with RHEV 3.3 and templates

Hey,

it looks like rbovirt always inserts os type as "unassigned" to the XML.

But after chat with @mskrivanek it looks like RHEV 3.3 does not like this parameter to be present. RHEV errors out with:

Cannot add VM. Cannot set single display device to non Linux operating system.

It looks like a regression in RHEV when unassigned was previously ignored (and if I understand @mskrivanek correctly this should be fixed in RHEV 3.4), but we need to support 3.3 as well.

Amos, what is your opinion about that?

Implement floating disks attach and detach action

Implement attach and detach action for floating disks according to RH Technical Guide for RHEV 3.4.

This will likely require to implement:

  • disk_api - an API for creation of OVIRT::Volume instances on per entry-point and/or datacenter level.
  • Following methods in vm_api:
    • OVIRT::Client#volume_active?
    • OVIRT::Client#activate_volume
    • OVIRT::Client#deactivate_volume
    • OVIRT::Client#attach_volume
    • OVIRT::Client#detach_volume
  • Implement new and/or enrich other methods that are required by methods mentioned in the item above.

Test suite fails

Hello, it seems that the test suite has some issues with nokogiri 1.5.0? It seems that Nokogiri accepts just Fixnum or Ranges, not ID's (symbols).

$ rspec spec/unit/vm_spec.rb 
F.F

Failures:

  1) OVIRT::VM xml parsing should parse VM xml
     Failure/Error: vm = OVIRT::VM.new(nil, Nokogiri::XML(@xml).xpath('/'))
     TypeError:
       can't convert Symbol into Integer
     # /builddir/build/BUILD/rubygem-rbovirt-0.0.5/usr/share/gems/gems/rbovirt-0.0.5/lib/ovirt/vm.rb:12:in `[]'
     # /builddir/build/BUILD/rubygem-rbovirt-0.0.5/usr/share/gems/gems/rbovirt-0.0.5/lib/ovirt/vm.rb:12:in `initialize'
     # /builddir/build/BUILD/rubygem-rbovirt-0.0.5/usr/share/gems/gems/rbovirt-0.0.5/spec/unit/vm_spec.rb:70:in `new'
     # /builddir/build/BUILD/rubygem-rbovirt-0.0.5/usr/share/gems/gems/rbovirt-0.0.5/spec/unit/vm_spec.rb:70:in `block (3 levels) in <top (required)>'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/example.rb:80:in `instance_eval'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/example.rb:80:in `block in run'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/example.rb:173:in `with_around_hooks'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/example.rb:77:in `run'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/example_group.rb:355:in `block in run_examples'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/example_group.rb:351:in `map'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/example_group.rb:351:in `run_examples'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/example_group.rb:337:in `run'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/example_group.rb:338:in `block in run'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/example_group.rb:338:in `map'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/example_group.rb:338:in `run'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/command_line.rb:28:in `block (2 levels) in run'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/command_line.rb:28:in `map'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/command_line.rb:28:in `block in run'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/reporter.rb:34:in `report'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/command_line.rb:25:in `run'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/runner.rb:80:in `run_in_process'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/runner.rb:69:in `run'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/runner.rb:10:in `block in autorun'

  2) OVIRT::VM xml parsing should be running
     Failure/Error: vm = OVIRT::VM.new(nil, Nokogiri::XML(@xml).xpath('/'))
     TypeError:
       can't convert Symbol into Integer
     # /builddir/build/BUILD/rubygem-rbovirt-0.0.5/usr/share/gems/gems/rbovirt-0.0.5/lib/ovirt/vm.rb:12:in `[]'
     # /builddir/build/BUILD/rubygem-rbovirt-0.0.5/usr/share/gems/gems/rbovirt-0.0.5/lib/ovirt/vm.rb:12:in `initialize'
     # /builddir/build/BUILD/rubygem-rbovirt-0.0.5/usr/share/gems/gems/rbovirt-0.0.5/spec/unit/vm_spec.rb:81:in `new'
     # /builddir/build/BUILD/rubygem-rbovirt-0.0.5/usr/share/gems/gems/rbovirt-0.0.5/spec/unit/vm_spec.rb:81:in `block (3 levels) in <top (required)>'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/example.rb:80:in `instance_eval'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/example.rb:80:in `block in run'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/example.rb:173:in `with_around_hooks'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/example.rb:77:in `run'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/example_group.rb:355:in `block in run_examples'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/example_group.rb:351:in `map'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/example_group.rb:351:in `run_examples'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/example_group.rb:337:in `run'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/example_group.rb:338:in `block in run'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/example_group.rb:338:in `map'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/example_group.rb:338:in `run'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/command_line.rb:28:in `block (2 levels) in run'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/command_line.rb:28:in `map'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/command_line.rb:28:in `block in run'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/reporter.rb:34:in `report'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/command_line.rb:25:in `run'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/runner.rb:80:in `run_in_process'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/runner.rb:69:in `run'
     # /usr/share/gems/gems/rspec-core-2.8.0/lib/rspec/core/runner.rb:10:in `block in autorun'

Finished in 0.00216 seconds
3 examples, 2 failures

Failed examples:

rspec ./spec/unit/vm_spec.rb:69 # OVIRT::VM xml parsing should parse VM xml
rspec ./spec/unit/vm_spec.rb:80 # OVIRT::VM xml parsing should be running

Disk is not activated after adding it

Testing Foreman 1.7.4 and OVirt 3.5 i found that after adding a disk via Foreman the disk is created, added to the VM but not activated.

It seem an "activate" function is missing from rbovirt or the default behaviour after adding a disk was changed in the OVirt 3.5 api. Where disks activated before OVirt 3.5?

adding disk profiles

Currently there is no way to add disk profiles when creating a volume. I there are more than one disk profile in the storage domain this will be a helpful feature.

Fix Overriden Rest Client delete method compatibility issues in other projects

As reported by @ehelms in pull request #62, overriding default RestClient::Resource#delete method introduced compatibility issues and breaks any other projects that uses rbovirt.

@ehelms has provided a fix for this in #62 ๐Ÿ‘ I have tested the proposed change and it works fine.

I propose to roll back the OVIRT::Client#http_delete to its version from d0e6726 and implement OVIRT::Client#http_delete_with_payload.

I shall created a pull request that will include @ehelms' #62 and the proposal above.

client.templates fails if filtered_api = true

ovirt 3.6.5, rbovirt 0.1.1

  • User with admin privileges
client = OVIRT::Client.new(
  "adminuser@domain",
  "password",
  "https://ovirt.example.com/api",
  { :datacenter_id =>'5ac1ff95-d7ac-4b42-89d5-241eef81b9a6',
    :ca_no_verify => true
  },)
client.templates ## returns lots of information about templates
  • Same user
client = OVIRT::Client.new(
  "adminuser@domain",
  "password",
  "https://ovirt.example.com/api",
  { :datacenter_id =>'5ac1ff95-d7ac-4b42-89d5-241eef81b9a6',
    :ca_no_verify => true, :filtered_api = true
  },)
irb(main):058:0> client.templates
NoMethodError: undefined method `[]' for nil:NilClass
        from /home/vagrant/.gem/ruby/gems/rbovirt-0.1.1/lib/ovirt/template.rb:40:in `parse_xml_attributes!'
        from /home/vagrant/.gem/ruby/gems/rbovirt-0.1.1/lib/ovirt/template.rb:8:in `initialize'
        from /home/vagrant/.gem/ruby/gems/rbovirt-0.1.1/lib/client/template_api.rb:7:in `new'
        from /home/vagrnat/.gem/ruby/gems/rbovirt-0.1.1/lib/client/template_api.rb:7:in `block in templates'
        from /usr/share/gems/gems/nokogiri-1.6.7.2/lib/nokogiri/xml/node_set.rb:187:in `block in each'
        from /usr/share/gems/gems/nokogiri-1.6.7.2/lib/nokogiri/xml/node_set.rb:186:in `upto'
        from /usr/share/gems/gems/nokogiri-1.6.7.2/lib/nokogiri/xml/node_set.rb:186:in `each'
        from /home/vagrant/.gem/ruby/gems/rbovirt-0.1.1/lib/client/template_api.rb:6:in `collect'
        from /home/vagrant/.gem/ruby/gems/rbovirt-0.1.1/lib/client/template_api.rb:6:in `templates'
        from (irb):58
        from /usr/bin/irb:11:in `<main>'

Cannot configure CPU sockets

vm.rb allows you to set cores but not sockets. Is this by design? the oVirt UI allows it so I'm curious if it's possible.

Error while deleting VM from Foreman

I'm on oVirt-3.6.1/foreman-1.10 and that is using rbovirt-0.0.35 and when I try to delete a VM I get an error in the log of foreman.

2016-01-03 10:43:13 [app] [W] Action failed
 | NoMethodError: undefined method `text' for nil:NilClass
 | /opt/theforeman/tfm/root/usr/share/gems/gems/rbovirt-0.0.35/lib/ovirt/vm.rb:240:in `parse_xml_attributes!'

Line 240 is:
:type => (xml/'display/type').first.text,

That triggered a memory that there was a change from oVirt-3.5.Z to oVirt-3.6.Z in the handling of the console display. There is now an entry 'Video Type' which is either Cirrus or QXL. Looks like its not set for VMs that has been around from before the upgrade to 3.6. Saving the VM configuration fixes the rbovirt error but being defensive about what line 240 returns would save me and others, a lot of edit VM/save VM actions.

Joop

Integration tests do not work on RHEL 6 against oVirt 3.5

Hello,

it looks like latest changes in the master broke the integration tests. Can you take a look please?

# ** Invoke spec (first_time)
# ** Execute spec
# /opt/rh/ruby193/root/usr/bin/ruby -S rspec ./spec/unit/client_spec.rb ./spec/unit/vm_spec.rb ./spec/integration/api_spec.rb ./spec/integration/vm_crud_spec.rb --color
# .............FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
# 
# Failures:
# 
#   1) OVIRT Https authentication authenticate using the server ca certificate should_authenticate_with_ca_certificate
#      Failure/Error: client.api_version.class.should eql(String)
#      OVIRT::OvirtException:
#        can't convert String into time interval
#      # ./lib/rbovirt.rb:195:in `handle_fault'
#      # ./lib/rbovirt.rb:112:in `rescue in http_get'
#      # ./lib/rbovirt.rb:107:in `http_get'
#      # ./lib/rbovirt.rb:79:in `api_version'
#      # ./spec/integration/api_spec.rb:56:in `block (3 levels) in <top (required)>'
# 
#   2) OVIRT Admin API basic admin api and listing test_should_return_hosts
#      Failure/Error: setup_client
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      # ./spec/integration/api_spec.rb:64:in `block (2 levels) in <top (required)>'
# 
#   3) OVIRT Admin API basic admin api and listing behaves like API test_should_return_a_version
#      Failure/Error: setup_client
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "API" called from ./spec/integration/api_spec.rb:71
#      # ./spec/integration/api_spec.rb:64:in `block (2 levels) in <top (required)>'
# 
#   4) OVIRT Admin API basic admin api and listing behaves like API test_should_return_datacenters
#      Failure/Error: setup_client
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "API" called from ./spec/integration/api_spec.rb:71
#      # ./spec/integration/api_spec.rb:64:in `block (2 levels) in <top (required)>'
# 
#   5) OVIRT Admin API basic admin api and listing behaves like API test_should_return_clusters
#      Failure/Error: setup_client
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "API" called from ./spec/integration/api_spec.rb:71
#      # ./spec/integration/api_spec.rb:64:in `block (2 levels) in <top (required)>'
# 
#   6) OVIRT Admin API basic admin api and listing behaves like API test_should_return_templates
#      Failure/Error: setup_client
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "API" called from ./spec/integration/api_spec.rb:71
#      # ./spec/integration/api_spec.rb:64:in `block (2 levels) in <top (required)>'
# 
#   7) OVIRT Admin API basic admin api and listing behaves like API test_should_return_vms
#      Failure/Error: setup_client
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "API" called from ./spec/integration/api_spec.rb:71
#      # ./spec/integration/api_spec.rb:64:in `block (2 levels) in <top (required)>'
# 
#   8) OVIRT Admin API basic admin api and listing behaves like API test_should_return_storage
#      Failure/Error: setup_client
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "API" called from ./spec/integration/api_spec.rb:71
#      # ./spec/integration/api_spec.rb:64:in `block (2 levels) in <top (required)>'
# 
#   9) OVIRT User API basic user api and listing test_should_not_return_hosts
#      Failure/Error: setup_client :filtered_api => support_user_level_api
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      # ./spec/integration/api_spec.rb:83:in `block (2 levels) in <top (required)>'
# 
#   10) OVIRT User API basic user api and listing behaves like API test_should_return_a_version
#      Failure/Error: setup_client :filtered_api => support_user_level_api
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "API" called from ./spec/integration/api_spec.rb:90
#      # ./spec/integration/api_spec.rb:83:in `block (2 levels) in <top (required)>'
# 
#   11) OVIRT User API basic user api and listing behaves like API test_should_return_datacenters
#      Failure/Error: setup_client :filtered_api => support_user_level_api
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "API" called from ./spec/integration/api_spec.rb:90
#      # ./spec/integration/api_spec.rb:83:in `block (2 levels) in <top (required)>'
# 
#   12) OVIRT User API basic user api and listing behaves like API test_should_return_clusters
#      Failure/Error: setup_client :filtered_api => support_user_level_api
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "API" called from ./spec/integration/api_spec.rb:90
#      # ./spec/integration/api_spec.rb:83:in `block (2 levels) in <top (required)>'
# 
#   13) OVIRT User API basic user api and listing behaves like API test_should_return_templates
#      Failure/Error: setup_client :filtered_api => support_user_level_api
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "API" called from ./spec/integration/api_spec.rb:90
#      # ./spec/integration/api_spec.rb:83:in `block (2 levels) in <top (required)>'
# 
#   14) OVIRT User API basic user api and listing behaves like API test_should_return_vms
#      Failure/Error: setup_client :filtered_api => support_user_level_api
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "API" called from ./spec/integration/api_spec.rb:90
#      # ./spec/integration/api_spec.rb:83:in `block (2 levels) in <top (required)>'
# 
#   15) OVIRT User API basic user api and listing behaves like API test_should_return_storage
#      Failure/Error: setup_client :filtered_api => support_user_level_api
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "API" called from ./spec/integration/api_spec.rb:90
#      # ./spec/integration/api_spec.rb:83:in `block (2 levels) in <top (required)>'
# 
#   16) Admin API VM Life cycle admin basic vm and templates operations behaves like Basic VM Life cycle test_should_create_template
#      Failure/Error: setup_client
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "Basic VM Life cycle" called from ./spec/integration/vm_crud_spec.rb:127
#      # ./spec/integration/vm_crud_spec.rb:123:in `block (2 levels) in <top (required)>'
# 
#   17) Admin API VM Life cycle admin basic vm and templates operations behaves like Basic VM Life cycle test_should_return_a_template
#      Failure/Error: setup_client
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "Basic VM Life cycle" called from ./spec/integration/vm_crud_spec.rb:127
#      # ./spec/integration/vm_crud_spec.rb:123:in `block (2 levels) in <top (required)>'
# 
#   18) Admin API VM Life cycle admin basic vm and templates operations behaves like Basic VM Life cycle test_should_return_a_vm
#      Failure/Error: setup_client
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "Basic VM Life cycle" called from ./spec/integration/vm_crud_spec.rb:127
#      # ./spec/integration/vm_crud_spec.rb:123:in `block (2 levels) in <top (required)>'
# 
#   19) Admin API VM Life cycle admin basic vm and templates operations behaves like Basic VM Life cycle test_should_start_and_stop_vm
#      Failure/Error: setup_client
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "Basic VM Life cycle" called from ./spec/integration/vm_crud_spec.rb:127
#      # ./spec/integration/vm_crud_spec.rb:123:in `block (2 levels) in <top (required)>'
# 
#   20) Admin API VM Life cycle admin basic vm and templates operations behaves like Basic VM Life cycle test_should_start_with_cloudinit
#      Failure/Error: setup_client
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "Basic VM Life cycle" called from ./spec/integration/vm_crud_spec.rb:127
#      # ./spec/integration/vm_crud_spec.rb:123:in `block (2 levels) in <top (required)>'
# 
#   21) Admin API VM Life cycle admin basic vm and templates operations behaves like Basic VM Life cycle test_should_set_vm_ticket
#      Failure/Error: setup_client
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "Basic VM Life cycle" called from ./spec/integration/vm_crud_spec.rb:127
#      # ./spec/integration/vm_crud_spec.rb:123:in `block (2 levels) in <top (required)>'
# 
#   22) Admin API VM Life cycle admin basic vm and templates operations behaves like Basic VM Life cycle test_should_destroy_vm
#      Failure/Error: setup_client
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "Basic VM Life cycle" called from ./spec/integration/vm_crud_spec.rb:127
#      # ./spec/integration/vm_crud_spec.rb:123:in `block (2 levels) in <top (required)>'
# 
#   23) Admin API VM Life cycle admin basic vm and templates operations behaves like Basic VM Life cycle test_should_update_vm
#      Failure/Error: setup_client
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "Basic VM Life cycle" called from ./spec/integration/vm_crud_spec.rb:127
#      # ./spec/integration/vm_crud_spec.rb:123:in `block (2 levels) in <top (required)>'
# 
#   24) Admin API VM Life cycle admin basic vm and templates operations behaves like Basic VM Life cycle test_should_create_a_vm
#      Failure/Error: setup_client
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "Basic VM Life cycle" called from ./spec/integration/vm_crud_spec.rb:127
#      # ./spec/integration/vm_crud_spec.rb:123:in `block (2 levels) in <top (required)>'
# 
#   25) Admin API VM Life cycle admin basic vm and templates operations behaves like Basic VM Life cycle test_should_update_volume
#      Failure/Error: setup_client
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "Basic VM Life cycle" called from ./spec/integration/vm_crud_spec.rb:127
#      # ./spec/integration/vm_crud_spec.rb:123:in `block (2 levels) in <top (required)>'
# 
#   26) Admin API VM Life cycle without any template admin basic vm and templates operations behaves like VM Life cycle without template test_should_return_a_vm
#      Failure/Error: setup_client
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "VM Life cycle without template" called from ./spec/integration/vm_crud_spec.rb:138
#      # ./spec/integration/vm_crud_spec.rb:134:in `block (2 levels) in <top (required)>'
# 
#   27) Admin API VM Life cycle without any template admin basic vm and templates operations behaves like VM Life cycle without template test_should_update_vm
#      Failure/Error: setup_client
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "VM Life cycle without template" called from ./spec/integration/vm_crud_spec.rb:138
#      # ./spec/integration/vm_crud_spec.rb:134:in `block (2 levels) in <top (required)>'
# 
#   28) Admin API VM Life cycle without any template admin basic vm and templates operations behaves like VM Life cycle without template test_should_start_and_stop_vm
#      Failure/Error: setup_client
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "VM Life cycle without template" called from ./spec/integration/vm_crud_spec.rb:138
#      # ./spec/integration/vm_crud_spec.rb:134:in `block (2 levels) in <top (required)>'
# 
#   29) User API VM Life cycle user basic vm and templates operations behaves like Basic VM Life cycle test_should_create_template
#      Failure/Error: setup_client :filtered_api => support_user_level_api
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "Basic VM Life cycle" called from ./spec/integration/vm_crud_spec.rb:149
#      # ./spec/integration/vm_crud_spec.rb:145:in `block (2 levels) in <top (required)>'
# 
#   30) User API VM Life cycle user basic vm and templates operations behaves like Basic VM Life cycle test_should_return_a_template
#      Failure/Error: setup_client :filtered_api => support_user_level_api
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "Basic VM Life cycle" called from ./spec/integration/vm_crud_spec.rb:149
#      # ./spec/integration/vm_crud_spec.rb:145:in `block (2 levels) in <top (required)>'
# 
#   31) User API VM Life cycle user basic vm and templates operations behaves like Basic VM Life cycle test_should_return_a_vm
#      Failure/Error: setup_client :filtered_api => support_user_level_api
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "Basic VM Life cycle" called from ./spec/integration/vm_crud_spec.rb:149
#      # ./spec/integration/vm_crud_spec.rb:145:in `block (2 levels) in <top (required)>'
# 
#   32) User API VM Life cycle user basic vm and templates operations behaves like Basic VM Life cycle test_should_start_and_stop_vm
#      Failure/Error: setup_client :filtered_api => support_user_level_api
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "Basic VM Life cycle" called from ./spec/integration/vm_crud_spec.rb:149
#      # ./spec/integration/vm_crud_spec.rb:145:in `block (2 levels) in <top (required)>'
# 
#   33) User API VM Life cycle user basic vm and templates operations behaves like Basic VM Life cycle test_should_start_with_cloudinit
#      Failure/Error: setup_client :filtered_api => support_user_level_api
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "Basic VM Life cycle" called from ./spec/integration/vm_crud_spec.rb:149
#      # ./spec/integration/vm_crud_spec.rb:145:in `block (2 levels) in <top (required)>'
# 
#   34) User API VM Life cycle user basic vm and templates operations behaves like Basic VM Life cycle test_should_set_vm_ticket
#      Failure/Error: setup_client :filtered_api => support_user_level_api
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "Basic VM Life cycle" called from ./spec/integration/vm_crud_spec.rb:149
#      # ./spec/integration/vm_crud_spec.rb:145:in `block (2 levels) in <top (required)>'
# 
#   35) User API VM Life cycle user basic vm and templates operations behaves like Basic VM Life cycle test_should_destroy_vm
#      Failure/Error: setup_client :filtered_api => support_user_level_api
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "Basic VM Life cycle" called from ./spec/integration/vm_crud_spec.rb:149
#      # ./spec/integration/vm_crud_spec.rb:145:in `block (2 levels) in <top (required)>'
# 
#   36) User API VM Life cycle user basic vm and templates operations behaves like Basic VM Life cycle test_should_update_vm
#      Failure/Error: setup_client :filtered_api => support_user_level_api
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "Basic VM Life cycle" called from ./spec/integration/vm_crud_spec.rb:149
#      # ./spec/integration/vm_crud_spec.rb:145:in `block (2 levels) in <top (required)>'
# 
#   37) User API VM Life cycle user basic vm and templates operations behaves like Basic VM Life cycle test_should_create_a_vm
#      Failure/Error: setup_client :filtered_api => support_user_level_api
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "Basic VM Life cycle" called from ./spec/integration/vm_crud_spec.rb:149
#      # ./spec/integration/vm_crud_spec.rb:145:in `block (2 levels) in <top (required)>'
# 
#   38) User API VM Life cycle user basic vm and templates operations behaves like Basic VM Life cycle test_should_update_volume
#      Failure/Error: setup_client :filtered_api => support_user_level_api
#      RuntimeError:
#        Cannot find datacenter local_datacenter
#      Shared Example Group: "Basic VM Life cycle" called from ./spec/integration/vm_crud_spec.rb:149
#      # ./spec/integration/vm_crud_spec.rb:145:in `block (2 levels) in <top (required)>'
# 
# Finished in 0.388 seconds
#51 examples, 38 failures
# 
# Failed examples:
# 
# rspec ./spec/integration/api_spec.rb:49 # OVIRT Https authentication authenticate using the server ca certificate should_authenticate_with_ca_certificate
# rspec ./spec/integration/api_spec.rb:73 # OVIRT Admin API basic admin api and listing test_should_return_hosts
# rspec ./spec/integration/api_spec.rb:16 # OVIRT Admin API basic admin api and listing behaves like API test_should_return_a_version
# rspec ./spec/integration/api_spec.rb:20 # OVIRT Admin API basic admin api and listing behaves like API test_should_return_datacenters
# rspec ./spec/integration/api_spec.rb:24 # OVIRT Admin API basic admin api and listing behaves like API test_should_return_clusters
# rspec ./spec/integration/api_spec.rb:28 # OVIRT Admin API basic admin api and listing behaves like API test_should_return_templates
# rspec ./spec/integration/api_spec.rb:32 # OVIRT Admin API basic admin api and listing behaves like API test_should_return_vms
# rspec ./spec/integration/api_spec.rb:36 # OVIRT Admin API basic admin api and listing behaves like API test_should_return_storage
# rspec ./spec/integration/api_spec.rb:92 # OVIRT User API basic user api and listing test_should_not_return_hosts
# rspec ./spec/integration/api_spec.rb:16 # OVIRT User API basic user api and listing behaves like API test_should_return_a_version
# rspec ./spec/integration/api_spec.rb:20 # OVIRT User API basic user api and listing behaves like API test_should_return_datacenters
# rspec ./spec/integration/api_spec.rb:24 # OVIRT User API basic user api and listing behaves like API test_should_return_clusters
# rspec ./spec/integration/api_spec.rb:28 # OVIRT User API basic user api and listing behaves like API test_should_return_templates
# rspec ./spec/integration/api_spec.rb:32 # OVIRT User API basic user api and listing behaves like API test_should_return_vms
# rspec ./spec/integration/api_spec.rb:36 # OVIRT User API basic user api and listing behaves like API test_should_return_storage
# rspec ./spec/integration/vm_crud_spec.rb:20 # Admin API VM Life cycle admin basic vm and templates operations behaves like Basic VM Life cycle test_should_create_template
# rspec ./spec/integration/vm_crud_spec.rb:29 # Admin API VM Life cycle admin basic vm and templates operations behaves like Basic VM Life cycle test_should_return_a_template
# rspec ./spec/integration/vm_crud_spec.rb:33 # Admin API VM Life cycle admin basic vm and templates operations behaves like Basic VM Life cycle test_should_return_a_vm
# rspec ./spec/integration/vm_crud_spec.rb:37 # Admin API VM Life cycle admin basic vm and templates operations behaves like Basic VM Life cycle test_should_start_and_stop_vm
# rspec ./spec/integration/vm_crud_spec.rb:44 # Admin API VM Life cycle admin basic vm and templates operations behaves like Basic VM Life cycle test_should_start_with_cloudinit
# rspec ./spec/integration/vm_crud_spec.rb:53 # Admin API VM Life cycle admin basic vm and templates operations behaves like Basic VM Life cycle test_should_set_vm_ticket
# rspec ./spec/integration/vm_crud_spec.rb:61 # Admin API VM Life cycle admin basic vm and templates operations behaves like Basic VM Life cycle test_should_destroy_vm
# rspec ./spec/integration/vm_crud_spec.rb:67 # Admin API VM Life cycle admin basic vm and templates operations behaves like Basic VM Life cycle test_should_update_vm
# rspec ./spec/integration/vm_crud_spec.rb:72 # Admin API VM Life cycle admin basic vm and templates operations behaves like Basic VM Life cycle test_should_create_a_vm
# rspec ./spec/integration/vm_crud_spec.rb:79 # Admin API VM Life cycle admin basic vm and templates operations behaves like Basic VM Life cycle test_should_update_volume
# rspec ./spec/integration/vm_crud_spec.rb:103 # Admin API VM Life cycle without any template admin basic vm and templates operations behaves like VM Life cycle without template test_should_return_a_vm
# rspec ./spec/integration/vm_crud_spec.rb:107 # Admin API VM Life cycle without any template admin basic vm and templates operations behaves like VM Life cycle without template test_should_update_vm
# rspec ./spec/integration/vm_crud_spec.rb:112 # Admin API VM Life cycle without any template admin basic vm and templates operations behaves like VM Life cycle without template test_should_start_and_stop_vm
# rspec ./spec/integration/vm_crud_spec.rb:20 # User API VM Life cycle user basic vm and templates operations behaves like Basic VM Life cycle test_should_create_template
# rspec ./spec/integration/vm_crud_spec.rb:29 # User API VM Life cycle user basic vm and templates operations behaves like Basic VM Life cycle test_should_return_a_template
# rspec ./spec/integration/vm_crud_spec.rb:33 # User API VM Life cycle user basic vm and templates operations behaves like Basic VM Life cycle test_should_return_a_vm
# rspec ./spec/integration/vm_crud_spec.rb:37 # User API VM Life cycle user basic vm and templates operations behaves like Basic VM Life cycle test_should_start_and_stop_vm
# rspec ./spec/integration/vm_crud_spec.rb:44 # User API VM Life cycle user basic vm and templates operations behaves like Basic VM Life cycle test_should_start_with_cloudinit
# rspec ./spec/integration/vm_crud_spec.rb:53 # User API VM Life cycle user basic vm and templates operations behaves like Basic VM Life cycle test_should_set_vm_ticket
# rspec ./spec/integration/vm_crud_spec.rb:61 # User API VM Life cycle user basic vm and templates operations behaves like Basic VM Life cycle test_should_destroy_vm
# rspec ./spec/integration/vm_crud_spec.rb:67 # User API VM Life cycle user basic vm and templates operations behaves like Basic VM Life cycle test_should_update_vm
# rspec ./spec/integration/vm_crud_spec.rb:72 # User API VM Life cycle user basic vm and templates operations behaves like Basic VM Life cycle test_should_create_a_vm
# rspec ./spec/integration/vm_crud_spec.rb:79 # User API VM Life cycle user basic vm and templates operations behaves like Basic VM Life cycle test_should_update_volume
# rake aborted!
# /opt/rh/ruby193/root/usr/bin/ruby -S rspec ./spec/unit/client_spec.rb ./spec/unit/vm_spec.rb ./spec/integration/api_spec.rb ./spec/integration/vm_crud_spec.rb --color failed
# /opt/rh/ruby193/root/usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/rake_task.rb:137:in `block (2 levels) in initialize'
# /opt/rh/ruby193/root/usr/share/ruby/rake/file_utils_ext.rb:60:in `verbose'
# /opt/rh/ruby193/root/usr/share/gems/gems/rspec-core-2.11.1/lib/rspec/core/rake_task.rb:127:in `block in initialize'
# /opt/rh/ruby193/root/usr/share/ruby/rake/task.rb:205:in `call'
# /opt/rh/ruby193/root/usr/share/ruby/rake/task.rb:205:in `block in execute'
# /opt/rh/ruby193/root/usr/share/ruby/rake/task.rb:200:in `each'
# /opt/rh/ruby193/root/usr/share/ruby/rake/task.rb:200:in `execute'
# /opt/rh/ruby193/root/usr/share/ruby/rake/task.rb:158:in `block in invoke_with_call_chain'
# /opt/rh/ruby193/root/usr/share/ruby/monitor.rb:211:in `mon_synchronize'
# /opt/rh/ruby193/root/usr/share/ruby/rake/task.rb:151:in `invoke_with_call_chain'
# /opt/rh/ruby193/root/usr/share/ruby/rake/task.rb:144:in `invoke'
# /opt/rh/ruby193/root/usr/share/ruby/rake/application.rb:116:in `invoke_task'
# /opt/rh/ruby193/root/usr/share/ruby/rake/application.rb:94:in `block (2 levels) in top_level'
# /opt/rh/ruby193/root/usr/share/ruby/rake/application.rb:94:in `each'
# /opt/rh/ruby193/root/usr/share/ruby/rake/application.rb:94:in `block in top_level'
# /opt/rh/ruby193/root/usr/share/ruby/rake/application.rb:133:in `standard_exception_handling'
# /opt/rh/ruby193/root/usr/share/ruby/rake/application.rb:88:in `top_level'
# /opt/rh/ruby193/root/usr/share/ruby/rake/application.rb:66:in `block in run'
# /opt/rh/ruby193/root/usr/share/ruby/rake/application.rb:133:in `standard_exception_handling'
# /opt/rh/ruby193/root/usr/share/ruby/rake/application.rb:63:in `run'
# /opt/rh/ruby193/root/usr/bin/rake:32:in `<main>'
# Tasks: TOP => spec

My daily testing was broken for some time, but once I fix RHEL 6, I will start again testing against RHEL 7 too.

I get the same result against oVirt 3.4. Ping me if you want to see/clone beaker jobs I run every day.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.