Commit Graph

460 Commits

Author SHA1 Message Date
Azat Khuzhin
9e7e76b509 Introduce qemuargs (for osx quirks)
v2:
- s/commandline/qemuargs/ (as suggested by @mxl)
- update xmls for testing
- fix merging
2017-04-25 15:06:21 +03:00
Gerben Meijer
ea8e48bc5f Support configurable hypervisor features 2017-03-23 15:20:15 +01:00
dima
43bd92670d Merge branch 'master' of github.com:vagrant-libvirt/vagrant-libvirt 2017-03-21 10:41:31 +01:00
dima
bd9333dff3 temp fix 2017-03-21 10:41:16 +01:00
Dmitry Vasilets
17b6c763e4 Merge pull request #750 from electrofelix/fix-box-package
Use json format when calling qemu-img
2017-03-20 21:18:27 +01:00
Darragh Bailey
1633ec25f1 Use json format when calling qemu-img
Switch from using the default human readable format to request the json
format from qemu-img as this will provide disk sizes in bytes.

This avoids assuming that the returned size is in GigaBytes.

Fixes #743
2017-03-20 13:27:02 +00:00
Dmitry Vasilets
29cb626506 Merge pull request #742 from electrofelix/fix-up-with-provision
Always call provisioners logic for booted machines
2017-03-20 13:25:27 +01:00
dima
a6d6fb58f3 fix arguments order for nokogiri 2017-03-20 00:41:39 +01:00
dima
1b8e96251f fix for new ruby parser restrictions 2017-03-19 22:14:21 +01:00
Quinten Johnson
59edda8623 Allow additional disk serial specification
libvirt uses <serial></serial> to expose a disk serial to the VM.
2017-03-16 10:44:07 -05:00
Darragh Bailey
e3354245f6 Always call provisioners logic for booted machines
Allows `vagrant up` command to handle whether or not to run the
provisioners should the machine already be up. This allows re-running
certain provisioners in parallel using:

  vagrant up --provision --provision-with puppet_server

Which in turn allows for certain scripts that are bootstrap related
only to be skipped.

In general however it is better to let the middleware from vagrant
decided whether provisioners should run or not, as enhancements to that
functionality will then be automatically picked up.

With this change if a user runs `vagrant up` on already running
machines, without the `--provision` option they will be greeted with a
message from vagrant stating "Machine already provisioned. Run ...",
basically letting them know what to do next.

Without this change you simply see a message about "Bringing machine
'<name>' up with 'libvirt' provider..." and then nothing further.

Change-Id: I73ca4262abaa6431a838e4cf6468c06223643dea
2017-03-01 13:54:38 +00:00
dima
a1e06dda0a use nokogiri for snapshot xml 2017-02-11 20:02:20 +01:00
dima
e5635f2da2 fixes #734 fixed logic for set nic model type 2017-02-11 14:07:49 +01:00
dima
fe694b4ad2 dry code 2017-02-11 13:02:32 +01:00
dima
f650843246 Merge branch 'master' of github.com:vagrant-libvirt/vagrant-libvirt 2017-02-11 12:52:10 +01:00
dima
fe5938ce26 simplify templates by nokogiri 2017-02-11 12:52:04 +01:00
Dmitry Vasilets
5ed93bd908 Merge pull request #730 from jarrpa/patch-1
Use slot number to report MAC address
2017-02-09 10:30:34 +01:00
dima
d2f4cf5708 xml by nokogiri instead of xml template 2017-02-09 00:07:56 +01:00
Dmitry Galkin
6fa527c977 Allow to specify libvirt NIC driver and number of queues for it. 2017-02-08 20:19:49 +01:00
Jose A. Rivera
cd8573777a Allow multiple MACs per network. 2017-02-06 15:13:43 +01:00
Jose A. Rivera
da87d06bfb Cleanup some public network MAC code. 2017-02-06 15:13:43 +01:00
Michal Sylwester
07dbb907bd Allow custom name for disk device
This is needed for example for xen in full virtualisation mode
as it won't allow the default vda
2017-02-02 10:02:03 +01:00
Michal Sylwester
ecea549e7f Be tolerant about drivers not supporting listing snapshots 2017-01-30 17:04:46 +01:00
Dmitry Vasilets
c065c1e6e5 test1 2017-01-16 16:40:23 +01:00
Steffen Froemer
e3181e10b6 fix issue #722 2017-01-13 13:29:06 +01:00
Dmitry Galkin
1248dc43e9 sound_type set to nil if UNSET_VALUE. 2017-01-12 19:58:42 +01:00
Liam Campbell
2f091b1cdc patch to include virtual sound card support 2017-01-12 18:31:44 +01:00
Steffen Froemer
639fb240b8 adding support for smartcard device 2017-01-12 09:31:12 +01:00
Steffen Froemer
93cc6fba20 adding watchdog device support
fixed spec file

updated spec file

fixed spec tests
2017-01-10 00:59:40 +01:00
Gerben Meijer
2337c35972 version 0.0.37 2017-01-09 15:47:31 +01:00
Michal Skalski
04b34f8c13 Autostart of libvirt networks
Add option for defining autostart behaviour for mgmt network.
Take into account 'autostart' value for private networks.
Fixes #615
2016-12-16 12:21:30 +01:00
Michal Skalski
8ef6df014d Make mgmt network detachable from no box VMs
Pxe nodes are not provisioned, mgmt network is not required for them.
Provide new domain option 'mgmt_attach' which one can use to remove mgmt
interface from VM. Default behaviour is not changed.
Also take into account bridge interfaces when set boot order, to support
scenario when we would like to use vagrant VM to pxe boot physical nodes
in existing network.
2016-12-13 21:43:59 +01:00
dima
8dfe8d5260 add some ipv6 support between vms 2016-12-07 00:40:44 +01:00
dima
c1898be3d6 rubocop 2016-12-06 23:20:29 +01:00
dima
b92b02b6d6 add ability for test pxe in private network 2016-12-06 19:45:27 +01:00
dima
981ca18b5e amazing rubocop -a autofix 2016-12-06 16:59:28 +01:00
Darragh Bailey
46e0d09ce6 Fix separate storage config blocks device assignment
Move device assignment for CDROM's and disk storage to occur during
finalize, to ensure that storage config blocks are merged before
assigning devices.

This ensures that defining multiple storage config blocks within the
same or different Vagrantfiles that are merged, works as expected to
create multiple separate storage devices without needing to explicitly
define the dev name.

Fixes #655
2016-11-25 17:14:54 +00:00
Darragh Bailey
4af944f9d6 Merge CDROM storage config blocks 2016-11-25 17:14:54 +00:00
Dmitry Vasilets
255146ec41 Merge pull request #677 from knumskull/vagrant-libvirt-redirdev
patch for include support of redirector devices
2016-11-02 21:02:26 +01:00
Erik van Pienbroek
c9123269f6 Use /sbin/ip when there is no 'ip' command in any of the default PATHs
While configuring NFS an attempt is done to find
out all guest IP addresses using the 'ip' tool.
On various distros like Fedora 25, RHEL6 and RHEL 7
this tool is located in /sbin folder which is not
in the default PATH. This can result in errors like:

 INFO warden: Calling OUT action: #<VagrantPlugins::ProviderLibvirt::Action::ShareFolders:0x007fc8689b14b8>
DEBUG host: Searching for cap: nfs_installed
DEBUG host: Checking in: redhat
DEBUG host: Checking in: linux
DEBUG host: Found cap: nfs_installed in linux
 INFO host: Execute capability: nfs_installed [#<Vagrant::Environment: /var/lib/jenkins/workspace/pipeline-test_wip-TG6O6HU2IAULWKZINVXPWYUIU4APVEDUCV4TIOMW3LHGUVGFESPQ>] (redhat)
 INFO nfs: Using NFS, preparing NFS settings by reading host IP and machine IP
DEBUG ssh: Checking key permissions: /var/lib/jenkins/.vagrant.d/insecure_private_key
DEBUG ssh: Re-using SSH connection.
 INFO ssh: Execute: ip addr show | grep -i 'inet ' | grep -v '127.0.0.1' | tr -s ' ' | cut -d' ' -f3 | cut -d'/' -f 1 (sudo=false)
DEBUG ssh: stderr: bash: line 2: ip: command not found

DEBUG ssh: Exit status: 0
 INFO nfs: guest IPs:
 INFO nfs: host IP: 127.0.0.1 machine IP: []
 INFO warden: Calling OUT action: #<VagrantPlugins::ProviderLibvirt::Action::PrepareNFSSettings:0x007fc868974b80>
 INFO warden: Calling OUT action: #<VagrantPlugins::ProviderLibvirt::Action::ForwardPorts:0x007fc868948b70>
 INFO warden: Calling OUT action: #<VagrantPlugins::ProviderLibvirt::Action::WaitTillUp:0x007fc868916120>
 INFO warden: Calling OUT action: #<VagrantPlugins::ProviderLibvirt::Action::StartDomain:0x0055a7c389c608>

and later on a fatal error occurs due to the wrong IP address being used:

 INFO guest: Execute capability: mount_nfs_folder [#<Vagrant::Machine: dev01 (VagrantPlugins::ProviderLibvirt::Provider)>, "127.0.0.1", {"/vagrant"=>{:type=>:"", :guestpath=>"/vagrant", :hostpath=>"/var/lib/jenkins/workspace/pipeline-test_rhsm_wip-TG6O6HU2IAULWKZINVXPWYUIU4APVEDUCV4TIOMW3LHGUVGFESPQ", :disabled=>false, :__vagrantfile=>true, :map_uid=>981, :map_gid=>980, :nfs_udp=>true, :nfs_version=>3, :uuid=>"519459908", :linux__nfs_options=>["rw", "no_subtree_check", "all_squash", "anonuid=981", "anongid=980", "fsid=519459908"]}, "/software"=>{:guestpath=>"/software", :hostpath=>"/home/shared/software", :disabled=>false, :__vagrantfile=>true, :map_uid=>1000, :map_gid=>1000, :nfs_udp=>true, :nfs_version=>3, :uuid=>"258980992", :linux__nfs_options=>["rw", "no_subtree_check", "all_squash", "anonuid=1000", "anongid=1000", "fsid=258980992"]}, "/yum_repos"=>{:guestpath=>"/yum_repos", :hostpath=>"/home/shared/yum_repos", :disabled=>false, :__vagrantfile=>true, :map_uid=>1000, :map_gid=>1000, :nfs_udp=>true, :nfs_version=>3, :uuid=>"1600717094", :linux__nfs_options=>["rw", "no_subtree_check", "all_squash", "anonuid=1000", "anongid=1000", "fsid=1600717094"]}}] (redhat)
DEBUG ssh: Re-using SSH connection.
 INFO ssh: Execute: set -e
mkdir -p /vagrant
mount -o vers=3,udp 127.0.0.1:/var/lib/jenkins/workspace/pipeline-test_wip-TG6O6HU2IAULWKZINVXPWYUIU4APVEDUCV4TIOMW3LHGUVGFESPQ /vagrant
if command -v /sbin/init && /sbin/init --version | grep upstart; then
  /sbin/initctl emit --no-wait vagrant-mounted MOUNTPOINT=/vagrant
fi
 (sudo=true)
DEBUG ssh: Re-using SSH connection.
 INFO ssh: Execute: echo; printf $SSH_AUTH_SOCK (sudo=false)
DEBUG ssh: Exit status: 0
DEBUG ssh: stdout:
/tmp/ssh-IQUlPd2203/agent.2203
 INFO ssh: Setting SSH_AUTH_SOCK remotely: /tmp/ssh-IQUlPd2203/agent.2203
DEBUG ssh: stderr: mount.nfs: requested NFS version or transport protocol is not supported

DEBUG ssh: Exit status: 32
 INFO retryable: Retryable exception raised: #<Vagrant::Errors::NFSMountFailed: The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

Made the IP address detection more reliable by first
trying to find the location of the 'ip' tool using
'which' and when that fails (not in the default PATH),
then try to use '/sbin/ip'.
2016-11-02 18:02:55 +01:00
Steffen Froemer
fcf8dc19df Added support for redirected devices and USB filter. 2016-11-01 20:41:41 +01:00
Evgeni Golov
5091844c70 fold cpu_model assignment into one 2016-10-28 22:48:37 +02:00
Evgeni Golov
7ec7b8e35e also set the cpu_model in the config accordingly to the cpu_mode 2016-10-23 16:55:27 +02:00
Evgeni Golov
517da85cee only set the cpu model when using a custom cpu mode
according to https://libvirt.org/formatdomain.html#elementsCPU
setting the model is not supported when using "host-model" and
with recent libvirt this actually results in errors like this:
 Call to virDomainCreateWithFlags failed:
  the CPU is incompatible with host CPU:
  Host CPU does not provide required features: svm
2016-10-23 16:29:33 +02:00
Jiří Stránský
6c11ae7684 Fix default_prefix behavior
Call `dup` on default prefix before amending it via `concat` and
`<<`. Previously when default_prefix was used, it was amended in place,
so it was changing with every VM definition and kept getting longer,
leading to wrong domain names.
2016-10-09 21:34:57 +02:00
dima
7d2c600a40 version 0.0.36 2016-10-07 17:08:09 +02:00
Roman Mohr
1db61bc631 Add support for RNG passthrough
Allow passing through /dev/random from the host to the VM. This speeds
up pretty much everything which needs entropy inside the VM.
2016-09-15 21:39:28 +02:00
Dmitry Vasilets
f28cf2f63b fix numa_nodes value 2016-09-14 16:41:00 +02:00
Stephen Finucane
4d201e5d7e Handle invalid NUMA nodes-memory combinations
Raise an exception if the user specifies a memory allowance that cannot
be divided cleanly between available NUMA nodes.
2016-09-13 11:02:03 +01:00
Tobias Jungel
a609f5b17d add trustGuestRxFilters attribute to public interface
set :trust_guest_rx_filters => true in the network definition to enable
trustGuestRxFilters for the public interface.

Details from http://www.libvirt.org/formatdomain.html#elementsNICSDirect:
"If the model type is set to virtio and interface's trustGuestRxFilters
attribute is set to yes, changes made to the interface mac address,
unicast/multicast receive filters, and vlan settings in the guest will
be monitored and propagated to the associated macvtap device on the host
(Since 1.2.10). If trustGuestRxFilters is not set, or is not supported
for the device model in use, an attempted change to the mac address
originating from the guest side will result in a non-working network
connection."

closes #650
2016-09-13 09:20:46 +02:00