1. move dev/optional packages to main, because dev doesn't support
optional.
2. fix logic to detect platform specified packages to support optional
packages.
3. Update requirements.txt.
With default "poetry install", it can run sample test cases, but not
azure or libvirt. It uses to reduce dependent packages for other
platforms.
If it needs to run against Azure, use "poetry install -E azure". To
support both Azure and libvirt, use "poetry install -E 'azure libvirt'".
* Add support for QEMU/libvirt platform.
Add basic support for running LISA framework on Linux platform
using QEMU via the libvirt API. This includes succesfully running
the Microsoft T0 tests against the CBL-Mariner image.
This version has more power on type assertions, and we can get rid of
a bunch of "# type: ignore" entries. My theory is that they point a
newer release of Typeshed (https://github.com/python/typeshed), so
that we have more type annotations available.
Real mistakes have been caught with this update, BTW.
1. Verified with azure deployment, and passed.
2. Removed protalocker, because the pywin32 is still here.
3. add python-dateutil, which is used but be retired by azure packages.
in our code, search for `dateutil` can find where it is used.
4. not upgrade mypy, because its returns conflict errors on a
`__init__.py` file and a directory. It breaks experience in vscode.
pluggy is designed to support pluggable interface. It will be used on
environment information first. Any may be used by Feature also.
It's different with current subclasses.py. subclasses supports schema,
and instances can be created dynamically.
There are concurrent issues on Azure deployment script count.
If too many deployments in progress in subscription level,
the old scripts may not able to deleted on time.
Deploy storage account outside of template to workaround it.
Some gallery images need to accept term, then it can be deployed.
And when deploying, they need plan information. Implement progress
like LISAv2 to query and accept terms, if it's necessary. As
azure-mgmt-marketplaceordering isn't compatible with latest
azure-identity, so add cred_wrapper to workaround it.
1. Add azure-mgmt-marketplaceordering package to support terms.
2. Query plan for gallery image deployment.
3. add cred_wrapper for azure-identity compatibility.
4. Add plan in arm_template.
Biggest change is the move to Black 20.8b1. W503 is now disabled by
default, and since we control the versions of the tools we use, we can
safely update our configuration.