abenari / rbovirt Goto Github PK
View Code? Open in Web Editor NEWa ruby client for ovirt
License: MIT License
a ruby client for ovirt
License: MIT License
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.
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?
If there are multiple data domains in a cluster, I would like to be able to specify which domain a new VM will be placed in when creating a VM from a template.
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!
oVirt 4.1 brings Maximum memory size VM parameter:
http://www.ovirt.org/develop/release-management/features/engine/maximum-memory-size/
In Foreman when I tried to create VM with > 4GB RAM (which is default value of maximum-memory-size).
I get: "Cannot add VM. Memory size (65536MB) cannot exceed maximum memory size (4096MB)."
Is this problem of rbovirt?
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'
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.
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
If you need more info or need me to run some tests, just let me know.
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"a=&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..)
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)>'
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.
I am about to implement affinity groups thus opening a ticket to keep track of the progress.
Details about affinity groups can be found in RHEV Administration Guide as well as in RHEV Technical Guide
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 attach and detach action for floating disks according to RH Technical Guide for RHEV 3.4.
This will likely require to implement:
OVIRT::Volume
instances on per entry-point and/or datacenter level.OVIRT::Client#volume_active?
OVIRT::Client#activate_volume
OVIRT::Client#deactivate_volume
OVIRT::Client#attach_volume
OVIRT::Client#detach_volume
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
Hi,
it seems that a new parameter <use_cloud_init>true</use_cloud_init>
is required for OVirt/RHEVm >= 3.5.5 in POST for cloud init to work. I would be able to implement this and submit PR for review.
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?
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.
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.
hello,
we d like to have a branch created to support rest-client <= 1.7.3
and backport some features from current 0.1.0 release
ovirt 3.6.5, rbovirt 0.1.1
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
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>'
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.
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
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.