If libvirt not present, install it and fix if distro is mariner
If libvirt is present, fix it if distro is mariner
Signed-off-by: Smit Gardhariya <sgardhariya@microsoft.com>
No testcase names, areas, or categories should differ only by case.
In many places, testcase areas are formatted with the first letter capitalized (ie. 'Sriov') however if anything other than all lowercase is used in the test critera, all tests will be skipped. This is bad user experience since it does not result in an error and it is unclear why no tests were selected.
Copy kernel config under /boot if passed to the transformer
Copy initrd if passed from runbook else create softlink for existing
initrd image with new kernel version in filename
Signed-off-by: Smit Gardhariya <sgardhariya@microsoft.com>
* Hibernation: Log uptime and resume offset
Uptime seems to have a drift of 1 second due to Hibernation, which is a bug.
To prevent all tests from failing, just log uptime and resume offset details
for debugging purpose.
* Add domain/vendor-device id for lspci tool
Restructure device properties extraction using LISA's inbuilt method
Add support to get domain/vendor-id/device-id for PCI devices
Add support to query the tool to provide list for all devices by vendor/device id
Signed-off-by: Smit Gardhariya <sgardhariya@microsoft.com>
* Add stop/start/restart/pass-through for VM under hyperv tool
Extend hyperv tool to stop/start/restart VM
Extend hyperv tool to configure pre-requisite to enable device pass-through for VM
Signed-off-by: Smit Gardhariya <sgardhariya@microsoft.com>
* Implement common device pool for SUT platforms
Implement common device pool and schema for
SUT platforms.
Signed-off-by: Smit Gardhariya <sgardhariya@microsoft.com>
* Add device passthrough support for hyperv platform
Implement Device Pool as per runbook
Schema change for runbook to get the device pool details
Add powershell script to get all assignable devices
Set the node context as per requirement
platform:
- type: hyperv
hyperv:
device_pools:
- type: "pci_net"
devices:
- vendor_id: xxx
device_id: xxx
requirement:
hyperv:
device_passthrough:
- pool_types: "pci_net"
count: 1
Signed-off-by: Smit Gardhariya <sgardhariya@microsoft.com>
* Add device passthrough support for libvirt platform
Implement device passthrough for libvirt platform
Use device pool and extend the functionality for libvirt platform
Schema change to configure device pool from runbook
Set each node context based on requirement for device pass-through
platform:
- type: cloud-hypervisor
cloud-hypervisor:
device_pools:
- type: "pci_net"
devices:
- vendor_id: xxx
device_id: xxx
requirement:
cloud-hypervisor:
device_passthrough:
- pool_type: "pci_net"
managed: "yes"
count: 1
Signed-off-by: Smit Gardhariya <sgardhariya@microsoft.com>
---------
Signed-off-by: Smit Gardhariya <sgardhariya@microsoft.com>
Read the testcase variable for bzImage and set it accordingly
under env var while running the testcase.
This is needed to test the CH tests with shipped bzImage.
Signed-off-by: Smit Gardhariya <sgardhariya@microsoft.com>
* Fix libvirt tck test
Fix the format of config getting written in /etc/libvirt/qemu.conf
Signed-off-by: Smit Gardhariya <sgardhariya@microsoft.com>
* Add dmesg/journalctl log for libvirt community test
Add dmesg and journalctl log for libvirt community
test under after_case of the testcase: verify_libvirt_tck
Signed-off-by: Smit Gardhariya <sgardhariya@microsoft.com>
---------
Signed-off-by: Smit Gardhariya <sgardhariya@microsoft.com>
* Fix KVM Unit test result parsing
Use lisa.util methods to get the matching pattern
using named regex.
Signed-off-by: Smit Gardhariya <sgardhariya@microsoft.com>
* Fix the chmod usage for kvm unit test
Pass the named parameter instead to chmod and update_filder functions.
Order was wrong which will make chmod command to be failed.
Signed-off-by: Smit Gardhariya <sgardhariya@microsoft.com>
---------
Signed-off-by: Smit Gardhariya <sgardhariya@microsoft.com>
We have 2 points in which LISA might decide to go with a minimal shell profile:
1. When first contacting a node, issuing a 'cmd' command, checking if
'Windows' is present in the output or not (rule out Windows shell
type). A negative case will incur in either the POSIX shell type,
if 'Unknown syntax' is not thrown as output, or an early decision
for the 'minimal' shell type is taken and the shell object is set
to follow that config from there on.
2. When running the actual first lisa suite SSH command on the same
node. It turns out we've seen cases where 'Unknown syntax' is not
output at early node initialization (1), for some reason. Well, the
exception path of actual command execution will check internal node
state, that tracks if a minimal profile has been tested before or
not. If not used yet and under a command execution exception, set
the node to minimal type and try again was the logic.
It turns out the 'minification' of the node config was only done
partially, in (2). We missed the full logic of overriding its final
SSH command tokenizer.
Another missed detail is that the final tokenizer logic at the minimal
shell case was too greedy in trying to remove stray quotes. Let's keep
injecting quotes on tokens with spaces on them. That will not hurt any
legit commands from any minimal context.
* add mariner1 to unsupported list
* modify assert logic to check for any error
* refactor unspported msg
* remove duplicate platform assertion
* use Any instead of list for status_file
* skip mariner2 gen2 because it's unsupported
* add debian images to unspported images list
* verify assessment result in install api call
* use Any instead of any for unknown type
We have observed scenario where hibernation logs are not
consistently present, in those cases, we still need to verify
if Hibernation was successful. One way to do this is using uptime
* Tools: Echo: enclose file in quotes
This is to support write into a file path which has space or other
special characters.
* Tools: Modprobe: support loading module with parameters
add new parameter `parameters` to `load` and pass it to modprobe
command. This is applicable only when `modules` is not of list type.
Current Flatcar images (since 3637.0.0) contain waagent and python in
/usr/{s,}bin. Search for python in the candidate path and use that to
decide whether to call waagent directly or use the module path prefixed
with /usr/share/oem.
Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
* skip mariner3 and add timeout to wait_operation()
* add condition to check for 1804 and 1604 for assertions
* remove unused log
* address failing pipeline, modify function to accept optional arg