2022-11-03 20:33:40 +03:00
|
|
|
[build-system]
|
2024-09-10 05:01:31 +03:00
|
|
|
requires = ["setuptools >= 70", "setuptools_scm[toml] >= 6.2"]
|
2022-11-03 20:33:40 +03:00
|
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
|
|
|
|
|
|
|
|
[project]
|
|
|
|
name = "lisa"
|
Setup pyproject.toml with Poetry toolchain
I ran `poetry init` using the cross-platform Python packaging,
dependency management, and virtual environment management tool Poetry:
https://python-poetry.org/
The chosen version follows Semantic Versioning: https://semver.org/,
with the Python specific pre-release versioning suffix ‘.dev1’:
https://packaging.python.org/guides/distributing-packages-using-setuptools/#choosing-a-versioning-scheme
Since this is “LISAv3” it seemed appropriate to set our version to
‘3.0.0.dev1’, “the first development release of LISAv3.”
I pinned Python to version 3.8, as we will always use a Poetry provided
Python and not depend on a system’s packaged Python version. This will
avoid many headaches. I added Chi’s existing dependencies from
‘requirements.txt’, and then added my suggested development
dependencies:
- black, the opinionated code formatter
- flake8 (and integrations), the semantic analyzer
- isort, the import sorter
- mypy, the static type checker
- python-language-server (and integrations), the de facto LSP server
- rope, to provide completions and renaming to pyls
While Microsoft is developing their own LSP servers, they do not
integrate with the existing ecosystem of tools, and their latest tool,
Pyright, simply does not support ‘pyproject.toml’. Since pyls is used
far more widely, and supports every editor, we will use this.
Finally, I updated the readme with instructions on how to use this
toolchain, and deleted the outdated bootstrap files.
2020-08-04 11:06:22 +03:00
|
|
|
description = "Linux Integration Services Automation"
|
2022-11-03 20:33:40 +03:00
|
|
|
classifiers = [
|
|
|
|
"Programming Language :: Python :: 3",
|
|
|
|
"Development Status :: 5 - Production/Stable",
|
|
|
|
"Topic :: Software Development :: Testing",
|
|
|
|
]
|
|
|
|
dependencies = [
|
|
|
|
"assertpy ~= 1.1",
|
|
|
|
"func-timeout ~= 4.3.5",
|
|
|
|
"dataclasses-json ~= 0.5.2",
|
2024-03-30 03:31:36 +03:00
|
|
|
"paramiko ~= 3.4.0",
|
2022-11-03 20:33:40 +03:00
|
|
|
"pluggy ~= 0.13.1",
|
|
|
|
"python-dateutil ~= 2.8.1",
|
2023-09-02 00:11:03 +03:00
|
|
|
"pytest-html ~= 3.2.0",
|
2023-07-18 05:39:01 +03:00
|
|
|
"PyYAML ~= 6.0.1",
|
2022-11-03 20:33:40 +03:00
|
|
|
"randmac ~= 0.1",
|
|
|
|
"retry ~= 0.9.2",
|
|
|
|
"semver ~= 2.13.0",
|
2023-01-10 00:25:39 +03:00
|
|
|
"simpleeval ~= 0.9.12",
|
2024-03-30 03:31:36 +03:00
|
|
|
"spurplus ~= 2.3.5",
|
2022-11-03 20:33:40 +03:00
|
|
|
"websockets ~= 10.3",
|
2023-10-17 18:49:50 +03:00
|
|
|
"charset_normalizer ~= 2.1.1",
|
2022-11-03 20:33:40 +03:00
|
|
|
]
|
|
|
|
dynamic = ["version"]
|
|
|
|
license = {text = "MIT"}
|
|
|
|
readme = "README.rst"
|
2023-01-26 02:05:56 +03:00
|
|
|
requires-python = ">=3.8"
|
2022-11-03 20:33:40 +03:00
|
|
|
|
|
|
|
|
|
|
|
[project.optional-dependencies]
|
|
|
|
aws = [
|
|
|
|
"boto3 ~= 1.21.37",
|
|
|
|
]
|
|
|
|
|
|
|
|
azure = [
|
2024-05-15 03:58:23 +03:00
|
|
|
"azure-identity ~= 1.17.0b1",
|
2023-10-06 00:48:23 +03:00
|
|
|
"azure-mgmt-compute ~= 30.3.0",
|
Test case Azure Key Vault Linux Extension VM (#2892)
* kvvm_extension
* creation and rotation of certs, logs
* deleted repeated imports
* Update pyproject.toml
added key vault secrets package
* moved logs for better debuggin and added more packages
* system assigned identity, changed priority
* Update pyproject.toml
added missing package
* fixed errors from pylint and flake8
* fixing more styling/worked on mypys errors
* updated package
* addes missing packages
* corrected packages
* change compute package to prev version
* added type ignore
* corrected minor errors with styling
* fixing flake8 errors
* corrected unused type ignore
* delete unused imports
* code refactoring and cleaning resources
* deleted by mistake MIT license, just added it back
* added missing package
* deleted system identity to minimize impact
* minor correction
* deleted extra space
* file back to how it was
* added requested changes
* deleted no longer needed packger and RBAC
* delete OS release version print, deployment already shows OS
* delete and create certs in loop, added env variables
* isort imports
* refactor code: Default credentials change to AzureCredential
* change order of logs, refactor access policies, changed testcase name
* creation of key vault in shared resource group, change error handling
* created methods to fecth tenantid and objectid, made check_system_status private
* merge one line into one log, double checked log info is good for debug
* Update lisa/sut_orchestrator/azure/common.py
Co-authored-by: Chi Song <27178119+squirrelsc@users.noreply.github.com>
* change logs, use regex, change methods name, use retry logic
* changing priority, correcting trail space
* added regex pattern examples, change group name for regex patterns
* changed priority
* service principal test endpoint changed
* corrected objectID fetch, minor changes in assign access policy method, added more randomness in certs name
* ability to handle both scenario with user and app tokens
* cleaning code styling, final changes
* change code logic to fetch objectid, added more specific Lisaexception error message
---------
Co-authored-by: Chi Song <27178119+squirrelsc@users.noreply.github.com>
2023-08-23 07:16:22 +03:00
|
|
|
"azure-mgmt-keyvault ~= 10.2.3",
|
2022-11-03 20:33:40 +03:00
|
|
|
"azure-mgmt-marketplaceordering ~= 1.1.0",
|
2023-09-14 09:08:20 +03:00
|
|
|
"azure-mgmt-msi ~= 7.0.0",
|
2022-11-03 20:33:40 +03:00
|
|
|
"azure-mgmt-network ~= 19.3.0",
|
|
|
|
"azure-mgmt-privatedns ~= 1.0.0",
|
|
|
|
"azure-mgmt-resource ~= 21.0.0",
|
|
|
|
"azure-mgmt-serialconsole ~= 1.0.0",
|
2024-09-10 05:01:31 +03:00
|
|
|
"azure-mgmt-storage ~= 21.2.1",
|
|
|
|
"azure-storage-blob ~= 12.23.0",
|
|
|
|
"azure-storage-file-share ~= 12.18.0",
|
Test case Azure Key Vault Linux Extension VM (#2892)
* kvvm_extension
* creation and rotation of certs, logs
* deleted repeated imports
* Update pyproject.toml
added key vault secrets package
* moved logs for better debuggin and added more packages
* system assigned identity, changed priority
* Update pyproject.toml
added missing package
* fixed errors from pylint and flake8
* fixing more styling/worked on mypys errors
* updated package
* addes missing packages
* corrected packages
* change compute package to prev version
* added type ignore
* corrected minor errors with styling
* fixing flake8 errors
* corrected unused type ignore
* delete unused imports
* code refactoring and cleaning resources
* deleted by mistake MIT license, just added it back
* added missing package
* deleted system identity to minimize impact
* minor correction
* deleted extra space
* file back to how it was
* added requested changes
* deleted no longer needed packger and RBAC
* delete OS release version print, deployment already shows OS
* delete and create certs in loop, added env variables
* isort imports
* refactor code: Default credentials change to AzureCredential
* change order of logs, refactor access policies, changed testcase name
* creation of key vault in shared resource group, change error handling
* created methods to fecth tenantid and objectid, made check_system_status private
* merge one line into one log, double checked log info is good for debug
* Update lisa/sut_orchestrator/azure/common.py
Co-authored-by: Chi Song <27178119+squirrelsc@users.noreply.github.com>
* change logs, use regex, change methods name, use retry logic
* changing priority, correcting trail space
* added regex pattern examples, change group name for regex patterns
* changed priority
* service principal test endpoint changed
* corrected objectID fetch, minor changes in assign access policy method, added more randomness in certs name
* ability to handle both scenario with user and app tokens
* cleaning code styling, final changes
* change code logic to fetch objectid, added more specific Lisaexception error message
---------
Co-authored-by: Chi Song <27178119+squirrelsc@users.noreply.github.com>
2023-08-23 07:16:22 +03:00
|
|
|
"azure-keyvault-secrets ~= 4.7.0",
|
|
|
|
"azure-keyvault-certificates ~= 4.7.0",
|
2023-04-25 06:50:31 +03:00
|
|
|
"msrestazure ~= 0.6.4",
|
2022-11-03 20:33:40 +03:00
|
|
|
"cachetools ~= 5.2.0",
|
2024-05-21 03:14:29 +03:00
|
|
|
"Pillow ~= 10.3.0",
|
2023-01-26 02:05:56 +03:00
|
|
|
"PyGObject ~= 3.42.0; platform_system == 'Linux'",
|
2024-05-28 23:12:20 +03:00
|
|
|
"requests ~= 2.32.0",
|
2024-10-09 12:59:28 +03:00
|
|
|
"pycdlib ~= 1.12.0",
|
2022-11-03 20:33:40 +03:00
|
|
|
]
|
|
|
|
|
2024-03-14 14:58:45 +03:00
|
|
|
ado = [
|
|
|
|
"azure-devops ~= 7.1.0b3",
|
2024-05-28 23:12:20 +03:00
|
|
|
"requests ~= 2.32.0",
|
2024-03-14 14:58:45 +03:00
|
|
|
]
|
|
|
|
|
2023-02-01 17:13:27 +03:00
|
|
|
black = [
|
|
|
|
"black ~= 23.1.0",
|
|
|
|
]
|
|
|
|
|
2022-11-03 20:33:40 +03:00
|
|
|
docs = [
|
|
|
|
"Sphinx >= 4.1.0",
|
|
|
|
"sphinx-argparse >= 0.2.5",
|
|
|
|
"sphinx-rtd-theme >= 0.5.2",
|
|
|
|
"sphinxemoji >= 0.1.8",
|
|
|
|
"sphinx-copybutton >= 0.4.0",
|
|
|
|
]
|
|
|
|
|
|
|
|
flake8 = [
|
2023-01-30 04:31:32 +03:00
|
|
|
"flake8 ~= 6.0.0",
|
2022-11-03 20:33:40 +03:00
|
|
|
"Flake8-pyproject",
|
|
|
|
"flake8-black >= 0.3.2",
|
2023-01-30 04:31:32 +03:00
|
|
|
"flake8-bugbear ~= 23.2.13",
|
2022-11-03 20:33:40 +03:00
|
|
|
"flake8-isort >= 4.1.1",
|
|
|
|
"pep8-naming >= 0.12.1",
|
|
|
|
]
|
|
|
|
|
2023-02-01 17:13:27 +03:00
|
|
|
isort = [
|
|
|
|
"isort ~= 5.12.0",
|
|
|
|
]
|
|
|
|
|
2022-11-03 20:33:40 +03:00
|
|
|
legacy = [
|
|
|
|
"pypiwin32; platform_system == 'Windows'",
|
|
|
|
]
|
|
|
|
|
|
|
|
libvirt = [
|
2023-05-11 21:52:37 +03:00
|
|
|
"libvirt-python ~= 9.3.0; platform_system != 'Windows'",
|
2022-11-03 20:33:40 +03:00
|
|
|
"pycdlib ~= 1.12.0; platform_system != 'Windows'",
|
|
|
|
]
|
|
|
|
|
2023-09-01 05:13:31 +03:00
|
|
|
baremetal = [
|
|
|
|
"pysmb ~= 1.2.9.1",
|
|
|
|
"redfish ~= 3.2.1",
|
|
|
|
]
|
|
|
|
|
2023-01-17 19:40:29 +03:00
|
|
|
mypy = [
|
|
|
|
"mypy == 0.942",
|
|
|
|
]
|
|
|
|
|
|
|
|
pylint = [
|
2023-02-06 04:31:44 +03:00
|
|
|
"pylint ~= 2.17.0"
|
2023-01-17 19:40:29 +03:00
|
|
|
]
|
|
|
|
|
2022-11-03 20:33:40 +03:00
|
|
|
test = [
|
|
|
|
]
|
|
|
|
|
|
|
|
typing = [
|
|
|
|
"types-retry ~= 0.1.3",
|
|
|
|
"types-paramiko ~= 0.1.7",
|
|
|
|
"types-requests ~= 2.25.0",
|
|
|
|
"types-python-dateutil ~= 0.1.4",
|
|
|
|
"types-PyYAML ~= 5.4.3",
|
|
|
|
"types-cachetools ~= 5.2.1",
|
|
|
|
"types-Pillow ~= 8.3.3",
|
|
|
|
"types-toml",
|
|
|
|
"boto3-stubs ~= 1.21.37",
|
|
|
|
"mypy-boto3-ec2",
|
2022-04-14 02:40:06 +03:00
|
|
|
]
|
Setup pyproject.toml with Poetry toolchain
I ran `poetry init` using the cross-platform Python packaging,
dependency management, and virtual environment management tool Poetry:
https://python-poetry.org/
The chosen version follows Semantic Versioning: https://semver.org/,
with the Python specific pre-release versioning suffix ‘.dev1’:
https://packaging.python.org/guides/distributing-packages-using-setuptools/#choosing-a-versioning-scheme
Since this is “LISAv3” it seemed appropriate to set our version to
‘3.0.0.dev1’, “the first development release of LISAv3.”
I pinned Python to version 3.8, as we will always use a Poetry provided
Python and not depend on a system’s packaged Python version. This will
avoid many headaches. I added Chi’s existing dependencies from
‘requirements.txt’, and then added my suggested development
dependencies:
- black, the opinionated code formatter
- flake8 (and integrations), the semantic analyzer
- isort, the import sorter
- mypy, the static type checker
- python-language-server (and integrations), the de facto LSP server
- rope, to provide completions and renaming to pyls
While Microsoft is developing their own LSP servers, they do not
integrate with the existing ecosystem of tools, and their latest tool,
Pyright, simply does not support ‘pyproject.toml’. Since pyls is used
far more widely, and supports every editor, we will use this.
Finally, I updated the readme with instructions on how to use this
toolchain, and deleted the outdated bootstrap files.
2020-08-04 11:06:22 +03:00
|
|
|
|
2022-11-03 20:33:40 +03:00
|
|
|
|
|
|
|
[project.scripts]
|
|
|
|
lisa = "lisa.main:cli"
|
|
|
|
|
|
|
|
|
|
|
|
[project.urls]
|
|
|
|
homepage = "https://github.com/microsoft/lisa"
|
|
|
|
documentation = "https://mslisa.readthedocs.io"
|
|
|
|
|
Setup pyproject.toml with Poetry toolchain
I ran `poetry init` using the cross-platform Python packaging,
dependency management, and virtual environment management tool Poetry:
https://python-poetry.org/
The chosen version follows Semantic Versioning: https://semver.org/,
with the Python specific pre-release versioning suffix ‘.dev1’:
https://packaging.python.org/guides/distributing-packages-using-setuptools/#choosing-a-versioning-scheme
Since this is “LISAv3” it seemed appropriate to set our version to
‘3.0.0.dev1’, “the first development release of LISAv3.”
I pinned Python to version 3.8, as we will always use a Poetry provided
Python and not depend on a system’s packaged Python version. This will
avoid many headaches. I added Chi’s existing dependencies from
‘requirements.txt’, and then added my suggested development
dependencies:
- black, the opinionated code formatter
- flake8 (and integrations), the semantic analyzer
- isort, the import sorter
- mypy, the static type checker
- python-language-server (and integrations), the de facto LSP server
- rope, to provide completions and renaming to pyls
While Microsoft is developing their own LSP servers, they do not
integrate with the existing ecosystem of tools, and their latest tool,
Pyright, simply does not support ‘pyproject.toml’. Since pyls is used
far more widely, and supports every editor, we will use this.
Finally, I updated the readme with instructions on how to use this
toolchain, and deleted the outdated bootstrap files.
2020-08-04 11:06:22 +03:00
|
|
|
|
2020-08-05 23:59:55 +03:00
|
|
|
[tool.black]
|
|
|
|
line-length = 88
|
|
|
|
target-version = ['py38']
|
|
|
|
|
2023-02-02 01:22:18 +03:00
|
|
|
[tool.coverage.run]
|
|
|
|
branch = true
|
|
|
|
source = [
|
|
|
|
"lisa",
|
|
|
|
"examples",
|
|
|
|
"microsoft/testsuites",
|
2022-11-03 20:33:40 +03:00
|
|
|
]
|
|
|
|
omit = [
|
2023-02-02 01:22:18 +03:00
|
|
|
"lisa/tests",
|
2022-11-03 20:33:40 +03:00
|
|
|
]
|
|
|
|
|
2023-02-02 01:22:18 +03:00
|
|
|
[tool.coverage.report]
|
|
|
|
include_namespace_packages = true
|
|
|
|
precision = 2
|
|
|
|
skip_empty = true
|
2022-11-03 20:33:40 +03:00
|
|
|
|
|
|
|
[tool.flake8]
|
|
|
|
max-line-length = 88
|
|
|
|
select = ["B", "BLK", "C90", "E", "F", "I", "W", "N"]
|
|
|
|
max-complexity = 15
|
|
|
|
extend-ignore = ["E203", "W503", "N818"]
|
|
|
|
exclude = [
|
|
|
|
".git",
|
|
|
|
".nox",
|
|
|
|
"__pycache__",
|
|
|
|
"*.pyi",
|
|
|
|
"runtime",
|
|
|
|
".venv",
|
|
|
|
".vscode",
|
|
|
|
]
|
|
|
|
|
|
|
|
|
2020-08-05 23:59:55 +03:00
|
|
|
[tool.isort]
|
|
|
|
multi_line_output = 3
|
|
|
|
include_trailing_comma = true
|
|
|
|
force_grid_wrap = 0
|
|
|
|
use_parentheses = true
|
|
|
|
ensure_newline_before_comments = true
|
|
|
|
line_length = 88
|
|
|
|
|
2021-09-02 07:06:12 +03:00
|
|
|
|
|
|
|
[tool.mypy]
|
2022-11-03 20:33:40 +03:00
|
|
|
exclude = ".venv/.*"
|
|
|
|
implicit_reexport = true
|
2021-09-02 07:06:12 +03:00
|
|
|
mypy_path = "./typings"
|
2022-04-14 21:08:15 +03:00
|
|
|
strict = true
|
|
|
|
namespace_packages = true
|
2022-11-03 20:33:40 +03:00
|
|
|
show_column_numbers = true
|
|
|
|
explicit_package_bases = true
|
|
|
|
|
|
|
|
|
|
|
|
[tool.setuptools]
|
|
|
|
packages = ["lisa"]
|
|
|
|
|
|
|
|
|
|
|
|
[tool.setuptools_scm]
|
|
|
|
version_scheme = "post-release"
|
|
|
|
local_scheme = "no-local-version"
|