Provide a simple create domain test that uncovered a bug with an
exception in addition to fixing the tests to avoid unnecessary output
when the code sends messages via the UI.
Users are allowed to set a LIBVIRT_DEFAULT_URI environment variable that
controls tools (i.e. virsh, virt-install, etc) that communicate with
libvirt. Let's allow for that mechanism to be used here.
Test settings modifying the `@uri` and `@qemu_use_session` variables to make
it easier to update and perform an initial minor refactor to reduce some
of the code currently in use to set `@uri`.
Make it easier to tweak some qemu options by allowing passthru of
command line environment variables.
- Also cleans up weird variable indirection used for qemu commandline args
variable through `qargs` in various constructors.
- Addresses some functionality discussed in #776.
Make the unit test match the new requirement that if a _ postfix is desired
when default_prefix is defined, then it must be added to the default_prefix.
* Add USB controller configuration
* Update README with USB controller configuration info
* Rename USB controller parameter to usb_controller
* Code style fixup
Some UEFI firmwares may want to use a non-volatile memory to store
variables.
This requires to specify loader and nvram to use UEFI boot in QEMU.
Specifying loader and nvram at the same time will set loader to
type 'pflash' instead of 'rom'.
If loader is used without nvram option type will remain 'rom'.
Further information can be found at libvirt documentation:
https://libvirt.org/formatdomain.html#elementsOS
Changes in names of data being passed through from the config object to
the CreateDomain action means that to test the domain xml template,
need to add an additional variable of qargs when testing.
Commonly found in other Vagrant providers, a MAC address format without
colon delimiters is now accepted for better cross-compatibility of
Vagrantfiles.
assert_invalid was previously only raising an error if there was a
validation error logged, rather than if there wasn't an error. Tests
that expected validation failures were passing without any validation
errors being logged.
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
Some simple spec tests to ensure validate and finalize work, which also
includes some tests showing that merging is not functioning as needed
for disks/cdroms both in cdroms not being merged across configs and
device ids are not handled correctly for merged configs.
Add basic spec tests for the domain template to test rendering through
simple wrapping of a config object to provide values for class instance
variables used by the template as it mostly mirrors those required.
Use the more conservative path if either disks or cdroms present for
the domain configuration.
Domain destroy including volumes will attempt to delete any attached
CDROM images as they are registered as volumes. Resulting in the
following error message:
fog-libvirt-0.0.3/lib/fog/libvirt/requests/compute/volume_action.rb:6:in
`delete': Call to virStorageVol Delete failed: cannot unlink file
'<path-to-iso>': Success (Libvirt::Error)
Co-Authored-By: Darragh Bailey <dbailey@hpe.com>
Change-Id: Ia497aef0e871de88e65c46afe071b2618fda5588
Reporting the MAC address being looked for in the ARP table should help
determine why some machines pick up an address belonging to another
when starting multiple VM's in parallel.
To distinguish between future addition of acceptance tests, rename the
existing to tests to match their type as 'unit' tests in line with
other uses of vagrant-spec.
Vagrant supports a --no-destroy-on-error option to up to skip destroying
of the machine if there was an error on bringing it up. This can be
useful where an environment can trigger a bug which would normally
result in the domain being torn down preventing additional analysis.
Make sure to simply exit the loops by returning terminate, instead of
looking to execute the remaining retries.
Add spec tests to check that terminate does not call the runner to
remove the domain if the user has disabled destroy on error.
Define a missing constant for vagrant < 1.6 exposed by the added tests.
Add some basic spec tests for the WaitTillUp action class to lay some
foundations. Utilize vagrant-spec pinned to a known working commit for
tests to pass consistently until they provide releases.
Requires updating some of the rspec libraries and includes
sharedcontext.rb from the jantman/vagrant-r10k project on github.
This commit lets users enable hostname randomization from their
Vagrantfile. Without this option enabled, domain creation will fail when
multiple VMs are spun up from the same Vagrantfile, due to a domain name
conflict.