Closed insonifi closed 3 years ago
Hi, I had a very similar issue a few days ago except I think it was an undefined active?
method on the StoragePool
or similar class. The issue was with the way I was specifying the CONFIGURE_ARGS
envvar for the ruby-libvirt
compilation. I didn't fully understand the issue that was causing me to use that envvar (it seems to be ArchLinux specific) and I was able to solve it without messing with that and casuing the same type of problem you're having.
I remember looking in the ruby-libvirt
C source and seeing that there was a preprocessor conditional around the active?
function binding. In the case of your issue, it appears to be controlled by the HAVE_VIRDOMAINISACTIVE
flag. If you look in the ext/libvirt/extconf.h
file that is generated before compilation, you will see what that flag is set to. When I was getting that error, the flag was missing and thus the active?
function wasn't being added to the ruby binding.
Sorry I cannot help you more, as my knowledge of C and system libraries is pretty limited. Basically the only thing I know to tell you is check that libvirt is installed and fully updated on your machine and that ruby is finding it correctly. If you post your system info, somebody else may be able to guide you more specifically.
I have the same issue on OS X, Vagrant 1.5.1, vagrant-libvirt 0.0.15 and libvirt 1.2.1.
I have the same issue on OS X 10.9.2, Vagrant 1.5.4, vagrant-libvirt 0.0.16, libvirt 1.2.1
Vagrantfile
config.vm.define :test_vm do |test_vm|
test_vm.vm.box = "centos64"
end
config.vm.provider :libvirt do |libvirt|
libvirt.driver = "kvm"
libvirt.connect_via_ssh = false
libvirt.host = "virthost"
libvirt.storage_pool_name = "default"
end
vagrant up
Vagrant.require_plugin is deprecated and has no effect any longer.
Use `vagrant plugin` commands to manage plugins. This warning will
be removed in the next version of Vagrant.
Bringing machine 'test_vm' up with 'libvirt' provider...
/Users/john/.vagrant.d/gems/gems/fog-1.22.0/lib/fog/libvirt/requests/compute/list_domains.rb:64:in `domain_to_attributes': undefined method `active?' for #<Libvirt::Domain:0x000001016a19e8> (NoMethodError)
from /Users/john/.vagrant.d/gems/gems/fog-1.22.0/lib/fog/libvirt/requests/compute/list_domains.rb:16:in `block in list_domains'
from /Users/john/.vagrant.d/gems/gems/fog-1.22.0/lib/fog/libvirt/requests/compute/list_domains.rb:16:in `map'
from /Users/john/.vagrant.d/gems/gems/fog-1.22.0/lib/fog/libvirt/requests/compute/list_domains.rb:16:in `list_domains'
from /Users/john/.vagrant.d/gems/gems/fog-1.22.0/lib/fog/libvirt/models/compute/servers.rb:13:in `all'
from /Users/john/.vagrant.d/gems/gems/vagrant-libvirt-0.0.16/lib/vagrant-libvirt/action/set_name_of_domain.rb:25:in `call'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/warden.rb:34:in `call'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/warden.rb:34:in `call'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/warden.rb:34:in `call'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/builder.rb:116:in `call'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/runner.rb:69:in `block in run'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/util/busy.rb:19:in `busy'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/runner.rb:69:in `run'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/builtin/call.rb:51:in `call'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/warden.rb:34:in `call'
from /Users/john/.vagrant.d/gems/gems/vagrant-libvirt-0.0.16/lib/vagrant-libvirt/action/connect_libvirt.rb:88:in `call'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/warden.rb:34:in `call'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/builtin/config_validate.rb:25:in `call'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/warden.rb:34:in `call'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/builder.rb:116:in `call'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/runner.rb:69:in `block in run'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/util/busy.rb:19:in `busy'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/action/runner.rb:69:in `run'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/machine.rb:157:in `action'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.4/lib/vagrant/batch_action.rb:72:in `block (2 levels) in run'
Both qmeu+ssh and qemu+tls connection will fail with the same error
vagrant-libvirt is unusable until vagrant up works
It looks like these errors aren't related to Windows guest support, but relate to how libvirt or ruby-libvirt was compiled. @FooBarWidget and @John-Appleseed how did you install libvirt and ruby-libvirt?
I installed libvirt with brew install libvirt
. I didn't install ruby-libvirt: I just installed the vagrant-libvirt plugin with vagrant plugin install
, which handled installing ruby-libvirt for me.
I have a mac, so I'll be able to look into this eventually. I doubt it will be soon, though.
I'm trying to configure vagrant for xen, still not sure if it's possible, so I'm having the same issue on
Archlinux x64 loaded with Xen hypervisor:
(box is created by means of vagrant mutate)
$vagrant up
Bringing machine 'test_vm' up with 'libvirt' provider...
==> test_vm: Creating image (snapshot of base box volume).
==> test_vm: Creating domain with the following settings...
==> test_vm: -- Name: root_test_vm
==> test_vm: -- Domain type: xen
==> test_vm: -- Cpus: 2
==> test_vm: -- Memory: 2048M
==> test_vm: -- Base box: precise32
==> test_vm: -- Storage pool: default
==> test_vm: -- Image: /var/lib/libvirt/images/root_test_vm.img
==> test_vm: -- Volume Cache: default
==> test_vm: -- Kernel:
==> test_vm: -- Initrd:
==> test_vm: -- Command line :
Error while creating domain: Error saving the server: undefined method `active?' for #Libvirt::Domain:0x0000000247a8b8
Currently happening on Arch Linux. I used this to install the plugin or else Bundler would error:
CONFIGURE_ARGS="with-libvirt-include=/usr/include/libvirt with-libvirt-lib=/usr/lib" vagrant plugin install vagrant-libvirt
nuke@arch (~/dev/code/sites/project)[master*] $: vagrant up --provider libvirt
Bringing machine 'default' up with 'libvirt' provider...
/home/nuke/.vagrant.d/gems/gems/fog-1.15.0/lib/fog/libvirt/requests/compute/list_domains.rb:64:in `domain_to_attributes': undefined method `active?' for #<Libvirt::Domain:0x00000002107410> (NoMethodError)
from /home/nuke/.vagrant.d/gems/gems/fog-1.15.0/lib/fog/libvirt/requests/compute/list_domains.rb:16:in `block in list_domains'
from /home/nuke/.vagrant.d/gems/gems/fog-1.15.0/lib/fog/libvirt/requests/compute/list_domains.rb:16:in `map'
from /home/nuke/.vagrant.d/gems/gems/fog-1.15.0/lib/fog/libvirt/requests/compute/list_domains.rb:16:in `list_domains'
from /home/nuke/.vagrant.d/gems/gems/fog-1.15.0/lib/fog/libvirt/models/compute/servers.rb:13:in `all'
from /home/nuke/.vagrant.d/gems/gems/vagrant-libvirt-0.0.23/lib/vagrant-libvirt/action/set_name_of_domain.rb:17:in `call'
from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/warden.rb:34:in `call'
from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/warden.rb:34:in `call'
from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/warden.rb:34:in `call'
from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/builder.rb:116:in `call'
from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/runner.rb:66:in `block in run'
from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/util/busy.rb:19:in `busy'
from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/runner.rb:66:in `run'
from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/builtin/call.rb:53:in `call'
from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/warden.rb:34:in `call'
from /home/nuke/.vagrant.d/gems/gems/vagrant-libvirt-0.0.23/lib/vagrant-libvirt/action/connect_libvirt.rb:45:in `call'
from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/warden.rb:34:in `call'
from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/builtin/config_validate.rb:25:in `call'
from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/warden.rb:34:in `call'
from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/builder.rb:116:in `call'
from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/runner.rb:66:in `block in run'
from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/util/busy.rb:19:in `busy'
from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/action/runner.rb:66:in `run'
from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/machine.rb:196:in `action_raw'
from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/machine.rb:173:in `block in action'
from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/environment.rb:474:in `lock'
from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/machine.rb:161:in `call'
from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/machine.rb:161:in `action'
from /opt/vagrant/embedded/gems/gems/vagrant-1.6.5/lib/vagrant/batch_action.rb:82:in `block (2 levels) in run'
Hi, I've got the same problem on my archlinux. I just followed https://github.com/adrahon/vagrant-kvm/wiki/Install_on_ArchLinux to install this plugin, and replace:
CONFIGURE_ARGS="with-libvirt-include=/usr/include/libvirt with-libvirt-lib=/usr/lib" vagrant plugin install vagrant-kvm
With:
CONFIGURE_ARGS="with-libvirt-include=/usr/include/libvirt with-libvirt-lib=/usr/lib" vagrant plugin install vagrant-libvirt
And it's seems working now.
Hope it'll be usefull. Regards, Guillaume
@guillaumededrie are you saying you have the undefined method `active?' error or not?
@sciurus yes, I did have the problem, I follow strictly the link I pasted, and it solved the problem.
I can confirm that this solves the issue on Archlinux:
# in case it's already installled
vagrant plugin uninstall vagrant-libvirt
sudo mv /opt/vagrant/embedded/lib/libcurl.so{,.backup}
sudo mv /opt/vagrant/embedded/lib/libcurl.so.4{,.backup}
sudo mv /opt/vagrant/embedded/lib/libcurl.so.4.3.0{,.backup}
sudo mv /opt/vagrant/embedded/lib/pkgconfig/libcurl.pc{,.backup}
CONFIGURE_ARGS="with-libvirt-include=/usr/include/libvirt with-libvirt-lib=/usr/lib" vagrant plugin install vagrant-libvirt
sudo mv /opt/vagrant/embedded/lib/libcurl.so{.backup,}
sudo mv /opt/vagrant/embedded/lib/libcurl.so.4{.backup,}
sudo mv /opt/vagrant/embedded/lib/libcurl.so.4.3.0{.backup,}
sudo mv /opt/vagrant/embedded/lib/pkgconfig/libcurl.pc{.backup,}
I'm having this same problem on my ArchLinux box, and I installed the plugin using the incantation above, verbatim, as that's what is currently recommended in the wiki: https://wiki.archlinux.org/index.php/Vagrant#vagrant-libvirt.
No one has mentioned whether or not they're running vagrant as root or as a normal user. I am running as a normal user with authentication turned of via a Polkit rule.
And I can confirm that the recipe @rshk put up works... I forgot to move the curl files.
I'm currently facing the same issue under arch linux, but couldn't resolve it with the solution mentioned by rshk. Anyone can confirm that it works with vagrant 1.7.2?
I ended up doing the workaround mentioned here:
CONFIGURE_ARGS="with-libvirt-include=/usr/include/libvirt with-libvirt-lib=/usr/lib" vagrant plugin install vagrant-libvirt
(don't even bother messing with vagrants embedded curl libs)/usr/lib/ruby/gems/2.2.0/gems/ruby-libvirt
into ~/vagrant.d/gems/gems
vagrant init mylibvirtbox && vagrant up --provider libvirt
@arndo tried you work around (symlink instead of cp) and it works.
I'm flagging this as an upstream bug; if anyone could please report complete steps to replicate the issue under current vagrant (1.8.1+) and vagrant-libvirt (0.0.33) for any host OS, I will attempt to determine whether if we need to file a bug elsewhere.
I have the same issue here, running OSX 10.11 with vagrant 1.8.5, vagrant-libvirt 0.0.33 and with patched ruby-libvirt 0.6.0 (see #497).
/Users/szczepan/.vagrant.d/gems/gems/fog-libvirt-0.0.3/lib/fog/libvirt/requests/compute/list_domains.rb:64:in `domain_to_attributes': undefined method `active?' for #<Libvirt::Domain:0x00000100e01dd8> (NoMethodError)
from /Users/szczepan/.vagrant.d/gems/gems/fog-libvirt-0.0.3/lib/fog/libvirt/requests/compute/list_domains.rb:16:in `block in list_domains'
from /Users/szczepan/.vagrant.d/gems/gems/fog-libvirt-0.0.3/lib/fog/libvirt/requests/compute/list_domains.rb:16:in `map'
from /Users/szczepan/.vagrant.d/gems/gems/fog-libvirt-0.0.3/lib/fog/libvirt/requests/compute/list_domains.rb:16:in `list_domains'
from /Users/szczepan/.vagrant.d/gems/gems/fog-libvirt-0.0.3/lib/fog/libvirt/models/compute/servers.rb:11:in `all'
from /Users/szczepan/.vagrant.d/gems/gems/vagrant-libvirt-0.0.33/lib/vagrant-libvirt/action/set_name_of_domain.rb:18:in `call'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/builder.rb:116:in `call'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/runner.rb:66:in `block in run'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/util/busy.rb:19:in `busy'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/runner.rb:66:in `run'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/builtin/call.rb:53:in `call'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/builtin/config_validate.rb:25:in `call'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/warden.rb:34:in `call'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/builder.rb:116:in `call'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/runner.rb:66:in `block in run'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/util/busy.rb:19:in `busy'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/action/runner.rb:66:in `run'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/machine.rb:225:in `action_raw'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/machine.rb:200:in `block in action'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/environment.rb:561:in `lock'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/machine.rb:186:in `call'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/machine.rb:186:in `action'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/lib/vagrant/batch_action.rb:82:in `block (2 levels) in run'
Please retest this against current master which updates fog-libvirt and ruby-libvirt.
You can git clone
the repo and do a gem build vagrant-libvirt.gemspec
which generates a .gem
that can be installed with vagrant plugin install /path/to/gem
Right now on archlinux:
✗ vagrant up --provider libvirt
/opt/vagrant/embedded/gems/gems/fog-libvirt-0.3.0/lib/fog/libvirt/requests/compute/list_domains.rb:76:in `domain_to_attributes': undefined method `active?' for #<Libvirt::Domain:0x00000001da1dc0> (NoMethodError)
from /opt/vagrant/embedded/gems/gems/fog-libvirt-0.3.0/lib/fog/libvirt/requests/compute/list_domains.rb:16:in `block in list_domains'
from /opt/vagrant/embedded/gems/gems/fog-libvirt-0.3.0/lib/fog/libvirt/requests/compute/list_domains.rb:16:in `map'
from /opt/vagrant/embedded/gems/gems/fog-libvirt-0.3.0/lib/fog/libvirt/requests/compute/list_domains.rb:16:in `list_domains'
from /opt/vagrant/embedded/gems/gems/fog-libvirt-0.3.0/lib/fog/libvirt/models/compute/servers.rb:15:in `get'
from /opt/vagrant/embedded/gems/gems/vagrant-libvirt-0.0.37/lib/vagrant-libvirt/driver.rb:52:in `get_domain'
from /opt/vagrant/embedded/gems/gems/vagrant-libvirt-0.0.37/lib/vagrant-libvirt/driver.rb:66:in `created?'
from /opt/vagrant/embedded/gems/gems/vagrant-libvirt-0.0.37/lib/vagrant-libvirt/provider.rb:101:in `state'
from /opt/vagrant/embedded/gems/gems/vagrant-1.9.2/lib/vagrant/machine.rb:506:in `state'
from /opt/vagrant/embedded/gems/gems/vagrant-1.9.2/lib/vagrant/machine.rb:145:in `initialize'
from /opt/vagrant/embedded/gems/gems/vagrant-1.9.2/lib/vagrant/vagrantfile.rb:79:in `new'
from /opt/vagrant/embedded/gems/gems/vagrant-1.9.2/lib/vagrant/vagrantfile.rb:79:in `machine'
from /opt/vagrant/embedded/gems/gems/vagrant-1.9.2/lib/vagrant/environment.rb:669:in `machine'
from /opt/vagrant/embedded/gems/gems/vagrant-1.9.2/lib/vagrant/plugin/v2/command.rb:177:in `block in with_target_vms'
from /opt/vagrant/embedded/gems/gems/vagrant-1.9.2/lib/vagrant/plugin/v2/command.rb:201:in `call'
from /opt/vagrant/embedded/gems/gems/vagrant-1.9.2/lib/vagrant/plugin/v2/command.rb:201:in `block in with_target_vms'
from /opt/vagrant/embedded/gems/gems/vagrant-1.9.2/lib/vagrant/plugin/v2/command.rb:183:in `each'
from /opt/vagrant/embedded/gems/gems/vagrant-1.9.2/lib/vagrant/plugin/v2/command.rb:183:in `with_target_vms'
from /opt/vagrant/embedded/gems/gems/vagrant-1.9.2/plugins/commands/up/command.rb:131:in `install_providers'
from /opt/vagrant/embedded/gems/gems/vagrant-1.9.2/plugins/commands/up/command.rb:85:in `execute'
from /opt/vagrant/embedded/gems/gems/vagrant-1.9.2/lib/vagrant/cli.rb:42:in `execute'
from /opt/vagrant/embedded/gems/gems/vagrant-1.9.2/lib/vagrant/environment.rb:308:in `cli'
from /opt/vagrant/embedded/gems/gems/vagrant-1.9.2/bin/vagrant:127:in `<main>'
Going through the old issues, I haven't seen this occur for some time.
It also appears that it must be an issue with detecting the header files. To debug if it's still happening (may still occur for Macs) it will require a detailed set of steps to try and reproduce:
Going to let the no-response bot close this in about 30 days if no further details are possible.
This issue has been automatically closed because there has been no response to our request for more information from the original author. With only the information that is currently in the issue, we don't have enough information to take action. Please reach out if you have or find the answers we need so that we can investigate further.
Hi, I need to deploy windows application on KVM. I installed vagrant-windows and vagrant-libvirt. Created a base box following instruction from vagrant-windows (installed and configured Windows), then combined libvirt related parts from vagrant-libvirt (made qcow2 image, created metadata.json and packaged the box).
Now, when I'm trying to
vagrant up --provider=libvirt
, I get following errors:thanks