Commit Graph

1455 Commits

Author SHA1 Message Date
Darragh Bailey
0e654579b5
Update the source code URI (#1394)
Update the source code URI so that rubygems references the repository
that the code was moved to instead of from before when it was hosted
under the original author's personal org.
2021-11-04 12:37:13 +00:00
Darragh Bailey
0b53be59cf
Regression unit test for frozen string literal fix (#1393)
Add a unit test for the prepare nfs settings action to act as a
regression test for the recent fix to avoiding modifying a frozen string
literal.

As part of this fix how the communicator is returned via a call to a
machine for testing purposes and remove an obsolete expect from the
wait till up tests as the code that would result in the communicator
being called has been removed.

Ensure that nfsd is not required to run the tests by mocking out the
host capability check.
2021-11-04 10:55:51 +00:00
rledisez
b475293fe9
Fix a FrozenError in prepare_nfs_settings.rb (#1392) 2021-11-03 12:01:09 +00:00
Darragh Bailey
334661497c
Update issue templates (#1391)
Provide updated issue templates.
2021-11-02 12:47:45 +00:00
Aleksandr Mezin
dcbfea2f49
Add options for 3d acceleration (#1386)
When enabling video_accel3d, as graphics_gl is typically required, will 
by default set it to true unless explicitly set to false.

Enabling these should result in a significant performance improvement 
for any VM where the desktop is being used.

Fixes: #893
Fixes: #1009
2021-10-26 10:11:30 +01:00
Darragh Bailey
6c9ec5a190
Update podman instructions to mount tmp (#1388)
Since the podman instructions by-pass use of the entrypoint, it is
necessary to ensure the directories being mounted are pre-created before
running the container.

Fixes: #1373
2021-10-22 17:47:16 +01:00
Scott Walkinshaw
b97c548e6d
Replace Travis references in README (#1387)
Updates them with the GitHub actions equivalents
2021-10-21 08:28:57 +00:00
Itxaka
b771048f0e
Add basic support to control serial console settings (#1385)
Support limited user defined serial console settings to redirect boot
time messages to a log file.

Authored-by: Darragh Bailey <daragh.bailey@gmail.com>
Signed-off-by: Itxaka <igarcia@suse.com>
2021-10-19 14:37:46 +00:00
Jamie Barber
d5971f894f
Add a :libvirt__always_destroy flag to network definitions (#1381)
This ensures that a network is always appended to the created_networks
file, to avoid the case where a domain that created the network gets
destroyed first during cleanup, therefore skipping the network destroy
because some other domain is still using it. Since the second domain did
not create the network, the existing behaviour is that it gets left
behind.

Seting :libvirt__always_destroy to true will ensure that the domain will
destroy the network even if it did not create it, if there are no other
users of the network remaining.
2021-10-19 14:52:54 +01:00
Darragh Bailey
23a23029a7
Re-upload un-versioned boxes based on modified time (#1382)
If no box version available, use the image modified time as part of the
final path in order to allow replacement anytime the box package is
altered.
2021-10-16 14:49:18 +01:00
Darragh Bailey
5b70a4a669
Ensure ssh_run and ssh actions match vagrant (#1378)
Vagrant expects that providers raise specific errors if the machines are
not available. Update to match the built-in providers.

Fixes: #1376
2021-10-12 09:45:49 +01:00
Darragh Bailey
551c303e41
Rework shutdown domain to avoid trailing action (#1377)
Using the trailing action for ShutdownDomain results in it being
executed as part of the start up sequence in the reload action.

This appears to happen because the halt action is not executed in
isolation from the start action that is scheduled afterwards and
consequently the chaining behaviour spans both instead of being treated
as the combination of two distinct actions that should complete.

While this fixes the issue, it is important that subsequently call such
actions can be done without allowing the out part of the middleware
behaviour to be applied to subsequent actions.

Partial-Fix: #1376
2021-10-11 19:47:40 +01:00
Darragh Bailey
b3e445a8b0
Add aliases for devices (#1374)
It is more reliable to identify disk and network devices by use of
aliases, in addition to being able to establish in the absence of
information the purpose of such devices.

There is a possibility that in some cases this will also resolve issues
where the same device attach issued twice with the same details will
fail due to the second request not appearing to be honoured.

Additionally when destroying domains, may not have the relevant details
on how many disks are provided by the box, for those that support
multiple disks. Being able to traverse the domain XML and destroy the
appropriate volumes based on aliases names will remove the need to have
predictable device identifiers during the destroy and allow for an
improved resolver.

Relates: #1342
2021-10-08 18:00:01 +01:00
Darragh Bailey
56282b965c
Provide support for packaging into v2 format (#1360)
Support packaging multi disk machines however default to v1 format
unless v2 format is explicitly enabled. Output a warning to alert users
of the possible change in behaviour in the future.

Allows selecting the format to use via the environment, where use of v1
format with a multi disk machine will ignore the other disks.
2021-10-08 11:05:10 +01:00
Darragh Bailey
81b6fb715a
Handle VM not accessible during reboot (#1367)
To support commands requesting a reboot of a VM after execution, the
query of ssh_info needs to avoid triggering an error when the IP address
is not yet retrievable as this indicates the VM would not be reachable.

Wrap the returning of the state in the driver to distinguish between the
following states:
- :running - indicates the machine is available
- :inaccessible - the machine is running but not yet available to
  connect

This is based on the behaviour from the virtualbox provider.

Includes some rudimentary tests to exercise the driver state code.

Closes: #1366
2021-09-30 12:35:30 +00:00
AverageHumanoid
64c096b040
Document running using Podman (#1359)
Closes: #1357
2021-09-30 12:24:47 +00:00
Darragh Bailey
5de17b0d01
Refactor create domain tests (#1364)
Adjust create domain tests to exercise both with a box defined and
undefined. Switch the default vagrantfile definition to have a box
defined as it is the expected behaviour.
2021-09-28 13:17:22 +01:00
Darragh Bailey
605aabcd98
Support provider URI per machine definition (#1363)
Save the variables on the instance to allow for different connection
settings to be specified on a per machine basis.

Provide some rudimentary tests that ensure that the different URIs are
used when constructing connections, and additionally the connection is
created only once, no matter how many times it is subsequently called.

Fixes: #1358
2021-09-27 18:11:29 +01:00
Darragh Bailey
de4721f62e
Ensure sensible default USB controller model used (#1362)
When users adding devices either via the pass through or USB redirector
approach, ensure a default controller is added using the xhci stack.
This should work for all versions of USB, where as the previous default
of piix3-uhci appears to only work for some USB 1 controllers.

Fixes: #1346
2021-09-27 16:49:15 +01:00
Michael Ablassmeier
5a51c6c617
Merge pull request #1361 from abbbi/1341_poc
#1341 fix condition check on @qemu_use_agent
2021-09-27 16:06:15 +02:00
Michael Ablassmeier
edf392c0b8
Merge branch 'master' into 1341_poc 2021-09-27 15:37:34 +02:00
ma
5f38f8f2a0 #1341 fix condition check on @qemu_use_agent 2021-09-27 13:45:01 +02:00
Darragh Bailey
c3e96d149e
Avoid blanking username if set by user (#1352)
While the username may not be used unless the connection is via ssh,
should avoid forcing to nil by accident when re-parsing from the uri.
2021-09-25 10:24:00 +01:00
Darragh Bailey
da2674b9af
Update to vagrant 2.2.18 for docker image (#1354) 2021-09-24 13:11:51 +01:00
Michael Ablassmeier
e9213b6caa
Merge pull request #1343 from abbbi/1341_poc
Retrieve IP Address of management interface using qemu-guest-agent commands #1341
2021-09-24 11:12:17 +02:00
ma
6c5ecf09af Retrieve IP Address of management interface using qemu-guest-agent commands #1341 2021-09-22 11:41:19 +02:00
Darragh Bailey
d1bad669b6
Merge pull request #1349 from mmguero-dev/topic/docker-entrypoint-fix
Fix variable in entrypoint.sh when determining user based on Vagrantfile ownership
2021-09-14 17:47:22 +01:00
SG
75467924e1 Fix entrypoint.sh determining user based on Vagrantfile ownership
In the entrypoint.sh script, the "$1" variable was used incorrectly
when determining default user based on the ownership of the vagrantfile
(or parents). The "$vagrantfile" variable should have been used
instead, as it was just set.

Signed-off-by: SG <13872653+mmguero@users.noreply.github.com>
2021-09-13 10:48:45 -06:00
Darragh Bailey
b49b1991b9
Improve handling of cpu model and initrd settings (#1333)
Avoid triggering a reconfig of the domain when the cpu model and the
initrd haven't been set via the config.
2021-09-11 22:00:33 +01:00
Darragh Bailey
0756362b84
Output XML elements to debug logs (#1345)
Because libvirt may handle updating the XML of components differently
across different versions and user environments, add the generated
contents to the debug log to assist in understanding what is happening
for different users.
2021-09-11 19:29:45 +01:00
Darragh Bailey
90e89de969
Support dev setting vagrant-spec version from env (#1344)
Allow control of the reference or version of vagrant-spec to be used
from the dev environment where it is necessary to test with older
versions of the plugin which may depend on different versions of
dependencies compared to vagrant-spec.

In this case the latest vagrant-spec has rolled forward the rspec core
version to 3.10, which works with the latest vagrant-libvirt. However
previous versions of vagrant-libvirt require 3.5, which was the previous
minor version pinned.

Adding the option of VAGRANT_SPEC_VERSION that can be set as an
environment variable should help control this explicitly when needed in
the future the same as how VAGRANT_VERSION is handled.
2021-09-11 14:32:42 +01:00
Darragh Bailey
b3ae12d5bc
Merge pull request #1332 from guss77/bugfix-package-domain
Fixed handling of nil volumes
2021-08-21 11:41:08 +01:00
Oded Arbel
bc1e6c3a8c added test for nil volume (verified that it fails without the bugfix) 2021-08-19 22:38:12 +03:00
Oded Arbel
3ec2128c3c fixed handling of nil volumes 2021-08-18 13:15:12 +03:00
Darragh Bailey
2e8df0fa1b
Merge pull request #1310 from chrisroberts/builtin-graceful
Use GracefulHalt builtin action
2021-08-14 00:17:44 +01:00
Darragh Bailey
2ae1421421 Ensure shutdown timeout adjusted if graceful halt fails 2021-08-14 00:13:44 +01:00
Chris Roberts
dd6b17ff9a Add coverage on the ShutdownDomain action 2021-08-14 00:12:58 +01:00
Chris Roberts
9acfd16dfc Add ShutdownDomain action and use during halt sequence
This adds in a ShutdownDomain action which allows for the
    GracefulHalt action to attempt to shutdown the domain. If
    it does not transition to domain successfully to a shutoff
    state, the ShutdownDomain action is used to "nicely" shutdown
    the domain. Likewise, if that action fails to transition the
    domain, the HaltDomain action will be used to forcibly stop it.
2021-08-14 00:12:58 +01:00
Chris Roberts
44d7c5526d Update HaltDomain spec to cover updated implementation 2021-08-14 00:12:58 +01:00
Chris Roberts
64d087d2f9 Use builtin GracefulHalt action on halt
Updates the halt action to use the GracefulHalt builtin action.
    If the GracefulHalt builtin action fails to properly transition
    the state of the guest, it will use the HaltDomain action to
    forcibly stop it.
2021-08-14 00:12:58 +01:00
Chris Roberts
32f69c5361 Update HaltDomain action to only forcibly halt domain 2021-08-14 00:12:58 +01:00
Darragh Bailey
cf51e451a0
Merge pull request #1331 from gmmephisto/fix-update-disk-bus
Fixes typo in start domain that would trigger an exception and prevent
adjustments to the disk bus from being applied.
2021-08-04 14:00:14 +01:00
Mikhail Ushanov
5019e282f2 fix(action): fix typo in change domain disk_bus
Signed-off-by: Mikhail Ushanov <gm.mephisto@gmail.com>
2021-08-04 13:41:27 +03:00
Darragh Bailey
319c4f14c3
Merge pull request #1330 from dcermak/bump-rspec
Unrestrict rspec-* version to >= 3.5 to sync with vagrant
2021-08-04 08:56:11 +01:00
Dan Čermák
d6c603b163
Unrestrict rspec-* version to >= 3.5 to sync with vagrant
Vagrant recently bumped its minimum rspec version to 3.10. This commit
unrestricts the version so that the requirements from old and new vagrant
versions can be accommodated.
2021-08-04 09:27:14 +02:00
Darragh Bailey
4feb0424cd
Bump vagrant version and update README (#1321)
Update to the latest vagrant release and adjust README to align for
latest changes for the docker container.
2021-07-01 10:53:50 +01:00
Darragh Bailey
1f51841678
Use working directory for user/group resolution (#1320)
To handle where the ~/.vagrant.d global state directory for a user
doesn't exist, and thus specifying it as part of the docker run command
will result in the docker daemon creating it with root ownership.

Switch to using the working directory for user/group resolution,
searching for the Vagrantfile in the starting path and then working
up the tree. If it's not found default to the original starting path.

Combined with checking if the mounted vdir is empty, use the resolved
user/group based on the Vagrantfile and working directory to modify the
newly created directory to belong to the running user. Subsequently
ensure that the directories referenced via symlinks are created if they
don't exist.

Fixes: #1191
Closes: #1254
2021-06-30 17:56:09 +01:00
Darragh Bailey
18ebb9d9ed
Enable frozen string across project (#1319)
Turn on frozen string support in all files by using a comment to avoid
enabling across dependencies where it may not work.

Fixes: #1177
2021-06-30 13:27:03 +01:00
Darragh Bailey
6dac9c9054
Remove debug statement accidentally left behind (#1318)
Prune debug print statement added by #1308.
2021-06-29 13:51:29 +01:00
Darragh Bailey
1174685e7b
Basic packaging tests and restructure action (#1307)
Restructure action to remove custom handling around packaging of the
box and instead use more of the built-in provided actions instead.

Includes some packaging tests to cover both simple where the public
key is retained (can't modify the tinycore VM without more complex
provisioning steps), and a more complex one that utilizes a script
and supports triggering regenerating the hosts on subsequent boots.

The use of the upstream packaging helpers means that when the
default insecure ssh key has been replaced, the packaging process
will automatically include the generated key.

Fixes: #759
Fixes: #765
Fixes: #1013
Fixes: #994
2021-06-25 20:01:02 +01:00