mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
Merge 3006.x into 3007.x
This commit is contained in:
commit
34ab8c732b
62 changed files with 572 additions and 266 deletions
2
changelog/65154.fixed.md
Normal file
2
changelog/65154.fixed.md
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Fix an issue where the minion would crash on Windows if some of the grains
|
||||||
|
failed to resolve
|
1
changelog/66090.security.md
Normal file
1
changelog/66090.security.md
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Bump to `cryptography==42.0.3` due to https://github.com/advisories/GHSA-3ww4-gg4f-jr7f
|
|
@ -20,7 +20,7 @@ charset-normalizer==3.2.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/py3.10/linux.txt
|
# -c requirements/static/ci/py3.10/linux.txt
|
||||||
# requests
|
# requests
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/py3.10/linux.txt
|
# -c requirements/static/ci/py3.10/linux.txt
|
||||||
# pyspnego
|
# pyspnego
|
||||||
|
|
|
@ -23,7 +23,7 @@ async-timeout==4.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.10/darwin.txt
|
# -c requirements/static/ci/../pkg/py3.10/darwin.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.10/darwin.txt
|
# -c requirements/static/ci/../pkg/py3.10/darwin.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
|
@ -97,7 +97,7 @@ contextvars==2.4
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
croniter==1.3.15 ; sys_platform != "win32"
|
croniter==1.3.15 ; sys_platform != "win32"
|
||||||
# via -r requirements/static/ci/common.in
|
# via -r requirements/static/ci/common.in
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.10/darwin.txt
|
# -c requirements/static/ci/../pkg/py3.10/darwin.txt
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
|
|
|
@ -23,7 +23,7 @@ async-timeout==4.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.10/freebsd.txt
|
# -c requirements/static/ci/../pkg/py3.10/freebsd.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.10/freebsd.txt
|
# -c requirements/static/ci/../pkg/py3.10/freebsd.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
|
@ -96,7 +96,7 @@ contextvars==2.4
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
croniter==1.3.15 ; sys_platform != "win32"
|
croniter==1.3.15 ; sys_platform != "win32"
|
||||||
# via -r requirements/static/ci/common.in
|
# via -r requirements/static/ci/common.in
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.10/freebsd.txt
|
# -c requirements/static/ci/../pkg/py3.10/freebsd.txt
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
|
|
|
@ -17,7 +17,7 @@ aiosignal==1.3.1
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.10/linux.txt
|
# -c requirements/static/ci/../pkg/py3.10/linux.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
ansible-core==2.16.2
|
ansible-core==2.16.3
|
||||||
# via ansible
|
# via ansible
|
||||||
ansible==9.1.0 ; python_version >= "3.10"
|
ansible==9.1.0 ; python_version >= "3.10"
|
||||||
# via -r requirements/static/ci/linux.in
|
# via -r requirements/static/ci/linux.in
|
||||||
|
@ -33,7 +33,7 @@ async-timeout==4.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.10/linux.txt
|
# -c requirements/static/ci/../pkg/py3.10/linux.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.10/linux.txt
|
# -c requirements/static/ci/../pkg/py3.10/linux.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
|
@ -109,7 +109,7 @@ contextvars==2.4
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
croniter==1.3.15 ; sys_platform != "win32"
|
croniter==1.3.15 ; sys_platform != "win32"
|
||||||
# via -r requirements/static/ci/common.in
|
# via -r requirements/static/ci/common.in
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.10/linux.txt
|
# -c requirements/static/ci/../pkg/py3.10/linux.txt
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
#
|
#
|
||||||
# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.10/tools.txt requirements/static/ci/tools.in
|
# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.10/tools.txt requirements/static/ci/tools.in
|
||||||
#
|
#
|
||||||
attrs==20.3.0
|
attrs==23.2.0
|
||||||
# via
|
# via
|
||||||
# -r requirements/static/ci/tools.in
|
# -r requirements/static/ci/tools.in
|
||||||
# python-tools-scripts
|
# python-tools-scripts
|
||||||
|
|
|
@ -17,7 +17,7 @@ async-timeout==4.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.10/windows.txt
|
# -c requirements/static/ci/../pkg/py3.10/windows.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.10/windows.txt
|
# -c requirements/static/ci/../pkg/py3.10/windows.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
|
@ -93,7 +93,7 @@ contextvars==2.4
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.10/windows.txt
|
# -c requirements/static/ci/../pkg/py3.10/windows.txt
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.10/windows.txt
|
# -c requirements/static/ci/../pkg/py3.10/windows.txt
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
|
|
|
@ -20,7 +20,7 @@ charset-normalizer==3.2.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/py3.11/linux.txt
|
# -c requirements/static/ci/py3.11/linux.txt
|
||||||
# requests
|
# requests
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/py3.11/linux.txt
|
# -c requirements/static/ci/py3.11/linux.txt
|
||||||
# pyspnego
|
# pyspnego
|
||||||
|
|
|
@ -23,12 +23,11 @@ asn1crypto==1.5.1
|
||||||
# via
|
# via
|
||||||
# certvalidator
|
# certvalidator
|
||||||
# oscrypto
|
# oscrypto
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.11/darwin.txt
|
# -c requirements/static/ci/../pkg/py3.11/darwin.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
# jsonschema
|
# jsonschema
|
||||||
# pytest
|
|
||||||
# pytest-salt-factories
|
# pytest-salt-factories
|
||||||
# pytest-shell-utilities
|
# pytest-shell-utilities
|
||||||
# pytest-skip-markers
|
# pytest-skip-markers
|
||||||
|
@ -97,7 +96,7 @@ contextvars==2.4
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
croniter==1.3.15 ; sys_platform != "win32"
|
croniter==1.3.15 ; sys_platform != "win32"
|
||||||
# via -r requirements/static/ci/common.in
|
# via -r requirements/static/ci/common.in
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.11/darwin.txt
|
# -c requirements/static/ci/../pkg/py3.11/darwin.txt
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
|
@ -379,7 +378,7 @@ pytest-system-statistics==1.0.2
|
||||||
# via pytest-salt-factories
|
# via pytest-salt-factories
|
||||||
pytest-timeout==1.4.2
|
pytest-timeout==1.4.2
|
||||||
# via -r requirements/pytest.txt
|
# via -r requirements/pytest.txt
|
||||||
pytest==7.2.0
|
pytest==7.3.2
|
||||||
# via
|
# via
|
||||||
# -r requirements/pytest.txt
|
# -r requirements/pytest.txt
|
||||||
# pytest-custom-exit-code
|
# pytest-custom-exit-code
|
||||||
|
|
|
@ -23,12 +23,11 @@ asn1crypto==1.5.1
|
||||||
# via
|
# via
|
||||||
# certvalidator
|
# certvalidator
|
||||||
# oscrypto
|
# oscrypto
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.11/freebsd.txt
|
# -c requirements/static/ci/../pkg/py3.11/freebsd.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
# jsonschema
|
# jsonschema
|
||||||
# pytest
|
|
||||||
# pytest-salt-factories
|
# pytest-salt-factories
|
||||||
# pytest-shell-utilities
|
# pytest-shell-utilities
|
||||||
# pytest-skip-markers
|
# pytest-skip-markers
|
||||||
|
@ -96,7 +95,7 @@ contextvars==2.4
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
croniter==1.3.15 ; sys_platform != "win32"
|
croniter==1.3.15 ; sys_platform != "win32"
|
||||||
# via -r requirements/static/ci/common.in
|
# via -r requirements/static/ci/common.in
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.11/freebsd.txt
|
# -c requirements/static/ci/../pkg/py3.11/freebsd.txt
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
|
@ -383,7 +382,7 @@ pytest-system-statistics==1.0.2
|
||||||
# via pytest-salt-factories
|
# via pytest-salt-factories
|
||||||
pytest-timeout==1.4.2
|
pytest-timeout==1.4.2
|
||||||
# via -r requirements/pytest.txt
|
# via -r requirements/pytest.txt
|
||||||
pytest==7.2.0
|
pytest==7.3.2
|
||||||
# via
|
# via
|
||||||
# -r requirements/pytest.txt
|
# -r requirements/pytest.txt
|
||||||
# pytest-custom-exit-code
|
# pytest-custom-exit-code
|
||||||
|
|
|
@ -21,7 +21,7 @@ annotated-types==0.6.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.11/linux.txt
|
# -c requirements/static/ci/../pkg/py3.11/linux.txt
|
||||||
# pydantic
|
# pydantic
|
||||||
ansible-core==2.16.2
|
ansible-core==2.16.3
|
||||||
# via ansible
|
# via ansible
|
||||||
ansible==9.1.0 ; python_version >= "3.10"
|
ansible==9.1.0 ; python_version >= "3.10"
|
||||||
# via -r requirements/static/ci/linux.in
|
# via -r requirements/static/ci/linux.in
|
||||||
|
@ -33,12 +33,11 @@ asn1crypto==1.5.1
|
||||||
# via
|
# via
|
||||||
# certvalidator
|
# certvalidator
|
||||||
# oscrypto
|
# oscrypto
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.11/linux.txt
|
# -c requirements/static/ci/../pkg/py3.11/linux.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
# jsonschema
|
# jsonschema
|
||||||
# pytest
|
|
||||||
# pytest-salt-factories
|
# pytest-salt-factories
|
||||||
# pytest-shell-utilities
|
# pytest-shell-utilities
|
||||||
# pytest-skip-markers
|
# pytest-skip-markers
|
||||||
|
@ -109,7 +108,7 @@ contextvars==2.4
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
croniter==1.3.15 ; sys_platform != "win32"
|
croniter==1.3.15 ; sys_platform != "win32"
|
||||||
# via -r requirements/static/ci/common.in
|
# via -r requirements/static/ci/common.in
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.11/linux.txt
|
# -c requirements/static/ci/../pkg/py3.11/linux.txt
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
|
@ -415,7 +414,7 @@ pytest-system-statistics==1.0.2
|
||||||
# via pytest-salt-factories
|
# via pytest-salt-factories
|
||||||
pytest-timeout==1.4.2
|
pytest-timeout==1.4.2
|
||||||
# via -r requirements/pytest.txt
|
# via -r requirements/pytest.txt
|
||||||
pytest==7.2.0
|
pytest==7.3.2
|
||||||
# via
|
# via
|
||||||
# -r requirements/pytest.txt
|
# -r requirements/pytest.txt
|
||||||
# pytest-custom-exit-code
|
# pytest-custom-exit-code
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
#
|
#
|
||||||
# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.11/tools.txt requirements/static/ci/tools.in
|
# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.11/tools.txt requirements/static/ci/tools.in
|
||||||
#
|
#
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via
|
# via
|
||||||
# -r requirements/static/ci/tools.in
|
# -r requirements/static/ci/tools.in
|
||||||
# python-tools-scripts
|
# python-tools-scripts
|
||||||
|
|
|
@ -17,12 +17,11 @@ annotated-types==0.6.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.11/windows.txt
|
# -c requirements/static/ci/../pkg/py3.11/windows.txt
|
||||||
# pydantic
|
# pydantic
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.11/windows.txt
|
# -c requirements/static/ci/../pkg/py3.11/windows.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
# jsonschema
|
# jsonschema
|
||||||
# pytest
|
|
||||||
# pytest-salt-factories
|
# pytest-salt-factories
|
||||||
# pytest-shell-utilities
|
# pytest-shell-utilities
|
||||||
# pytest-skip-markers
|
# pytest-skip-markers
|
||||||
|
@ -93,7 +92,7 @@ contextvars==2.4
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.11/windows.txt
|
# -c requirements/static/ci/../pkg/py3.11/windows.txt
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.11/windows.txt
|
# -c requirements/static/ci/../pkg/py3.11/windows.txt
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
|
@ -336,7 +335,7 @@ pytest-system-statistics==1.0.2
|
||||||
# via pytest-salt-factories
|
# via pytest-salt-factories
|
||||||
pytest-timeout==2.1.0
|
pytest-timeout==2.1.0
|
||||||
# via -r requirements/pytest.txt
|
# via -r requirements/pytest.txt
|
||||||
pytest==7.2.0
|
pytest==7.3.2
|
||||||
# via
|
# via
|
||||||
# -r requirements/pytest.txt
|
# -r requirements/pytest.txt
|
||||||
# pytest-custom-exit-code
|
# pytest-custom-exit-code
|
||||||
|
|
|
@ -30,13 +30,12 @@ asn1crypto==1.5.1
|
||||||
# -c requirements/static/ci/py3.12/linux.txt
|
# -c requirements/static/ci/py3.12/linux.txt
|
||||||
# certvalidator
|
# certvalidator
|
||||||
# oscrypto
|
# oscrypto
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.12/linux.txt
|
# -c requirements/static/ci/../pkg/py3.12/linux.txt
|
||||||
# -c requirements/static/ci/py3.12/linux.txt
|
# -c requirements/static/ci/py3.12/linux.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
# jsonschema
|
# jsonschema
|
||||||
# pytest
|
|
||||||
# pytest-salt-factories
|
# pytest-salt-factories
|
||||||
# pytest-shell-utilities
|
# pytest-shell-utilities
|
||||||
# pytest-skip-markers
|
# pytest-skip-markers
|
||||||
|
@ -130,7 +129,7 @@ croniter==1.3.15 ; sys_platform != "win32"
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/py3.12/linux.txt
|
# -c requirements/static/ci/py3.12/linux.txt
|
||||||
# -r requirements/static/ci/common.in
|
# -r requirements/static/ci/common.in
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.12/linux.txt
|
# -c requirements/static/ci/../pkg/py3.12/linux.txt
|
||||||
# -c requirements/static/ci/py3.12/linux.txt
|
# -c requirements/static/ci/py3.12/linux.txt
|
||||||
|
@ -548,7 +547,7 @@ pytest-timeout==1.4.2
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/py3.12/linux.txt
|
# -c requirements/static/ci/py3.12/linux.txt
|
||||||
# -r requirements/pytest.txt
|
# -r requirements/pytest.txt
|
||||||
pytest==7.2.0
|
pytest==7.3.2
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/py3.12/linux.txt
|
# -c requirements/static/ci/py3.12/linux.txt
|
||||||
# -r requirements/pytest.txt
|
# -r requirements/pytest.txt
|
||||||
|
|
|
@ -28,7 +28,6 @@ attrs==23.2.0
|
||||||
# -c requirements/static/ci/../pkg/py3.12/darwin.txt
|
# -c requirements/static/ci/../pkg/py3.12/darwin.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
# jsonschema
|
# jsonschema
|
||||||
# pytest
|
|
||||||
# pytest-salt-factories
|
# pytest-salt-factories
|
||||||
# pytest-shell-utilities
|
# pytest-shell-utilities
|
||||||
# pytest-skip-markers
|
# pytest-skip-markers
|
||||||
|
@ -97,7 +96,7 @@ contextvars==2.4
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
croniter==1.3.15 ; sys_platform != "win32"
|
croniter==1.3.15 ; sys_platform != "win32"
|
||||||
# via -r requirements/static/ci/common.in
|
# via -r requirements/static/ci/common.in
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.12/darwin.txt
|
# -c requirements/static/ci/../pkg/py3.12/darwin.txt
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
|
@ -379,7 +378,7 @@ pytest-system-statistics==1.0.2
|
||||||
# via pytest-salt-factories
|
# via pytest-salt-factories
|
||||||
pytest-timeout==1.4.2
|
pytest-timeout==1.4.2
|
||||||
# via -r requirements/pytest.txt
|
# via -r requirements/pytest.txt
|
||||||
pytest==7.2.0
|
pytest==7.3.2
|
||||||
# via
|
# via
|
||||||
# -r requirements/pytest.txt
|
# -r requirements/pytest.txt
|
||||||
# pytest-custom-exit-code
|
# pytest-custom-exit-code
|
||||||
|
|
|
@ -18,7 +18,7 @@ annotated-types==0.6.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/py3.12/linux.txt
|
# -c requirements/static/ci/py3.12/linux.txt
|
||||||
# pydantic
|
# pydantic
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/py3.12/linux.txt
|
# -c requirements/static/ci/py3.12/linux.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
|
@ -53,7 +53,7 @@ contextvars==2.4
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/py3.12/linux.txt
|
# -c requirements/static/ci/py3.12/linux.txt
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/py3.12/linux.txt
|
# -c requirements/static/ci/py3.12/linux.txt
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
|
|
|
@ -23,12 +23,11 @@ asn1crypto==1.5.1
|
||||||
# via
|
# via
|
||||||
# certvalidator
|
# certvalidator
|
||||||
# oscrypto
|
# oscrypto
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.12/freebsd.txt
|
# -c requirements/static/ci/../pkg/py3.12/freebsd.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
# jsonschema
|
# jsonschema
|
||||||
# pytest
|
|
||||||
# pytest-salt-factories
|
# pytest-salt-factories
|
||||||
# pytest-shell-utilities
|
# pytest-shell-utilities
|
||||||
# pytest-skip-markers
|
# pytest-skip-markers
|
||||||
|
@ -96,7 +95,7 @@ contextvars==2.4
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
croniter==1.3.15 ; sys_platform != "win32"
|
croniter==1.3.15 ; sys_platform != "win32"
|
||||||
# via -r requirements/static/ci/common.in
|
# via -r requirements/static/ci/common.in
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.12/freebsd.txt
|
# -c requirements/static/ci/../pkg/py3.12/freebsd.txt
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
|
@ -383,7 +382,7 @@ pytest-system-statistics==1.0.2
|
||||||
# via pytest-salt-factories
|
# via pytest-salt-factories
|
||||||
pytest-timeout==1.4.2
|
pytest-timeout==1.4.2
|
||||||
# via -r requirements/pytest.txt
|
# via -r requirements/pytest.txt
|
||||||
pytest==7.2.0
|
pytest==7.3.2
|
||||||
# via
|
# via
|
||||||
# -r requirements/pytest.txt
|
# -r requirements/pytest.txt
|
||||||
# pytest-custom-exit-code
|
# pytest-custom-exit-code
|
||||||
|
|
|
@ -26,7 +26,7 @@ annotated-types==0.6.0
|
||||||
# -c requirements/static/ci/../pkg/py3.12/linux.txt
|
# -c requirements/static/ci/../pkg/py3.12/linux.txt
|
||||||
# -c requirements/static/ci/py3.12/linux.txt
|
# -c requirements/static/ci/py3.12/linux.txt
|
||||||
# pydantic
|
# pydantic
|
||||||
ansible-core==2.16.2
|
ansible-core==2.16.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/py3.12/linux.txt
|
# -c requirements/static/ci/py3.12/linux.txt
|
||||||
# ansible
|
# ansible
|
||||||
|
@ -49,7 +49,7 @@ asn1crypto==1.5.1
|
||||||
# oscrypto
|
# oscrypto
|
||||||
astroid==2.3.3
|
astroid==2.3.3
|
||||||
# via pylint
|
# via pylint
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.12/linux.txt
|
# -c requirements/static/ci/../pkg/py3.12/linux.txt
|
||||||
# -c requirements/static/ci/py3.12/linux.txt
|
# -c requirements/static/ci/py3.12/linux.txt
|
||||||
|
@ -147,7 +147,7 @@ croniter==1.3.15 ; sys_platform != "win32"
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/py3.12/linux.txt
|
# -c requirements/static/ci/py3.12/linux.txt
|
||||||
# -r requirements/static/ci/common.in
|
# -r requirements/static/ci/common.in
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.12/linux.txt
|
# -c requirements/static/ci/../pkg/py3.12/linux.txt
|
||||||
# -c requirements/static/ci/py3.12/linux.txt
|
# -c requirements/static/ci/py3.12/linux.txt
|
||||||
|
|
|
@ -21,7 +21,7 @@ annotated-types==0.6.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.12/linux.txt
|
# -c requirements/static/ci/../pkg/py3.12/linux.txt
|
||||||
# pydantic
|
# pydantic
|
||||||
ansible-core==2.16.2
|
ansible-core==2.16.3
|
||||||
# via ansible
|
# via ansible
|
||||||
ansible==9.1.0 ; python_version >= "3.10"
|
ansible==9.1.0 ; python_version >= "3.10"
|
||||||
# via -r requirements/static/ci/linux.in
|
# via -r requirements/static/ci/linux.in
|
||||||
|
@ -33,12 +33,11 @@ asn1crypto==1.5.1
|
||||||
# via
|
# via
|
||||||
# certvalidator
|
# certvalidator
|
||||||
# oscrypto
|
# oscrypto
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.12/linux.txt
|
# -c requirements/static/ci/../pkg/py3.12/linux.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
# jsonschema
|
# jsonschema
|
||||||
# pytest
|
|
||||||
# pytest-salt-factories
|
# pytest-salt-factories
|
||||||
# pytest-shell-utilities
|
# pytest-shell-utilities
|
||||||
# pytest-skip-markers
|
# pytest-skip-markers
|
||||||
|
@ -109,7 +108,7 @@ contextvars==2.4
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
croniter==1.3.15 ; sys_platform != "win32"
|
croniter==1.3.15 ; sys_platform != "win32"
|
||||||
# via -r requirements/static/ci/common.in
|
# via -r requirements/static/ci/common.in
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.12/linux.txt
|
# -c requirements/static/ci/../pkg/py3.12/linux.txt
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
|
@ -415,7 +414,7 @@ pytest-system-statistics==1.0.2
|
||||||
# via pytest-salt-factories
|
# via pytest-salt-factories
|
||||||
pytest-timeout==1.4.2
|
pytest-timeout==1.4.2
|
||||||
# via -r requirements/pytest.txt
|
# via -r requirements/pytest.txt
|
||||||
pytest==7.2.0
|
pytest==7.3.2
|
||||||
# via
|
# via
|
||||||
# -r requirements/pytest.txt
|
# -r requirements/pytest.txt
|
||||||
# pytest-custom-exit-code
|
# pytest-custom-exit-code
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
#
|
#
|
||||||
# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.12/tools.txt requirements/static/ci/tools.in
|
# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.12/tools.txt requirements/static/ci/tools.in
|
||||||
#
|
#
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via
|
# via
|
||||||
# -r requirements/static/ci/tools.in
|
# -r requirements/static/ci/tools.in
|
||||||
# python-tools-scripts
|
# python-tools-scripts
|
||||||
|
|
|
@ -17,12 +17,11 @@ annotated-types==0.6.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.12/windows.txt
|
# -c requirements/static/ci/../pkg/py3.12/windows.txt
|
||||||
# pydantic
|
# pydantic
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.12/windows.txt
|
# -c requirements/static/ci/../pkg/py3.12/windows.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
# jsonschema
|
# jsonschema
|
||||||
# pytest
|
|
||||||
# pytest-salt-factories
|
# pytest-salt-factories
|
||||||
# pytest-shell-utilities
|
# pytest-shell-utilities
|
||||||
# pytest-skip-markers
|
# pytest-skip-markers
|
||||||
|
@ -93,7 +92,7 @@ contextvars==2.4
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.12/windows.txt
|
# -c requirements/static/ci/../pkg/py3.12/windows.txt
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.12/windows.txt
|
# -c requirements/static/ci/../pkg/py3.12/windows.txt
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
|
@ -336,7 +335,7 @@ pytest-system-statistics==1.0.2
|
||||||
# via pytest-salt-factories
|
# via pytest-salt-factories
|
||||||
pytest-timeout==2.1.0
|
pytest-timeout==2.1.0
|
||||||
# via -r requirements/pytest.txt
|
# via -r requirements/pytest.txt
|
||||||
pytest==7.2.0
|
pytest==7.3.2
|
||||||
# via
|
# via
|
||||||
# -r requirements/pytest.txt
|
# -r requirements/pytest.txt
|
||||||
# pytest-custom-exit-code
|
# pytest-custom-exit-code
|
||||||
|
|
|
@ -20,7 +20,7 @@ charset-normalizer==3.2.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/py3.8/linux.txt
|
# -c requirements/static/ci/py3.8/linux.txt
|
||||||
# requests
|
# requests
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/py3.8/linux.txt
|
# -c requirements/static/ci/py3.8/linux.txt
|
||||||
# pyspnego
|
# pyspnego
|
||||||
|
|
|
@ -23,7 +23,7 @@ async-timeout==4.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.8/freebsd.txt
|
# -c requirements/static/ci/../pkg/py3.8/freebsd.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.8/freebsd.txt
|
# -c requirements/static/ci/../pkg/py3.8/freebsd.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
|
@ -96,7 +96,7 @@ contextvars==2.4
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
croniter==1.3.15 ; sys_platform != "win32"
|
croniter==1.3.15 ; sys_platform != "win32"
|
||||||
# via -r requirements/static/ci/common.in
|
# via -r requirements/static/ci/common.in
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.8/freebsd.txt
|
# -c requirements/static/ci/../pkg/py3.8/freebsd.txt
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
|
|
|
@ -29,7 +29,7 @@ async-timeout==4.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.8/linux.txt
|
# -c requirements/static/ci/../pkg/py3.8/linux.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.8/linux.txt
|
# -c requirements/static/ci/../pkg/py3.8/linux.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
|
@ -105,7 +105,7 @@ contextvars==2.4
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
croniter==1.3.15 ; sys_platform != "win32"
|
croniter==1.3.15 ; sys_platform != "win32"
|
||||||
# via -r requirements/static/ci/common.in
|
# via -r requirements/static/ci/common.in
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.8/linux.txt
|
# -c requirements/static/ci/../pkg/py3.8/linux.txt
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
|
|
|
@ -17,7 +17,7 @@ async-timeout==4.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.8/windows.txt
|
# -c requirements/static/ci/../pkg/py3.8/windows.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.8/windows.txt
|
# -c requirements/static/ci/../pkg/py3.8/windows.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
|
@ -93,7 +93,7 @@ contextvars==2.4
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.8/windows.txt
|
# -c requirements/static/ci/../pkg/py3.8/windows.txt
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.8/windows.txt
|
# -c requirements/static/ci/../pkg/py3.8/windows.txt
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
|
|
|
@ -20,7 +20,7 @@ charset-normalizer==3.2.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/py3.9/linux.txt
|
# -c requirements/static/ci/py3.9/linux.txt
|
||||||
# requests
|
# requests
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/py3.9/linux.txt
|
# -c requirements/static/ci/py3.9/linux.txt
|
||||||
# pyspnego
|
# pyspnego
|
||||||
|
|
|
@ -23,7 +23,7 @@ async-timeout==4.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.9/darwin.txt
|
# -c requirements/static/ci/../pkg/py3.9/darwin.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.9/darwin.txt
|
# -c requirements/static/ci/../pkg/py3.9/darwin.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
|
@ -97,7 +97,7 @@ contextvars==2.4
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
croniter==1.3.15 ; sys_platform != "win32"
|
croniter==1.3.15 ; sys_platform != "win32"
|
||||||
# via -r requirements/static/ci/common.in
|
# via -r requirements/static/ci/common.in
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.9/darwin.txt
|
# -c requirements/static/ci/../pkg/py3.9/darwin.txt
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
|
|
|
@ -23,7 +23,7 @@ async-timeout==4.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.9/freebsd.txt
|
# -c requirements/static/ci/../pkg/py3.9/freebsd.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.9/freebsd.txt
|
# -c requirements/static/ci/../pkg/py3.9/freebsd.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
|
@ -96,7 +96,7 @@ contextvars==2.4
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
croniter==1.3.15 ; sys_platform != "win32"
|
croniter==1.3.15 ; sys_platform != "win32"
|
||||||
# via -r requirements/static/ci/common.in
|
# via -r requirements/static/ci/common.in
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.9/freebsd.txt
|
# -c requirements/static/ci/../pkg/py3.9/freebsd.txt
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
|
|
|
@ -29,7 +29,7 @@ async-timeout==4.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.9/linux.txt
|
# -c requirements/static/ci/../pkg/py3.9/linux.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.9/linux.txt
|
# -c requirements/static/ci/../pkg/py3.9/linux.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
|
@ -105,7 +105,7 @@ contextvars==2.4
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
croniter==1.3.15 ; sys_platform != "win32"
|
croniter==1.3.15 ; sys_platform != "win32"
|
||||||
# via -r requirements/static/ci/common.in
|
# via -r requirements/static/ci/common.in
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.9/linux.txt
|
# -c requirements/static/ci/../pkg/py3.9/linux.txt
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
#
|
#
|
||||||
# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/tools.txt requirements/static/ci/tools.in
|
# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/tools.txt requirements/static/ci/tools.in
|
||||||
#
|
#
|
||||||
attrs==20.3.0
|
attrs==23.2.0
|
||||||
# via
|
# via
|
||||||
# -r requirements/static/ci/tools.in
|
# -r requirements/static/ci/tools.in
|
||||||
# python-tools-scripts
|
# python-tools-scripts
|
||||||
|
|
|
@ -17,7 +17,7 @@ async-timeout==4.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.9/windows.txt
|
# -c requirements/static/ci/../pkg/py3.9/windows.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.9/windows.txt
|
# -c requirements/static/ci/../pkg/py3.9/windows.txt
|
||||||
# aiohttp
|
# aiohttp
|
||||||
|
@ -93,7 +93,7 @@ contextvars==2.4
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.9/windows.txt
|
# -c requirements/static/ci/../pkg/py3.9/windows.txt
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -c requirements/static/ci/../pkg/py3.9/windows.txt
|
# -c requirements/static/ci/../pkg/py3.9/windows.txt
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
|
|
|
@ -10,7 +10,7 @@ aiosignal==1.3.1
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
async-timeout==4.0.3
|
async-timeout==4.0.3
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
autocommand==2.2.2
|
autocommand==2.2.2
|
||||||
# via jaraco.text
|
# via jaraco.text
|
||||||
|
@ -26,7 +26,7 @@ cherrypy==18.8.0
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
contextvars==2.4
|
contextvars==2.4
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
# pyopenssl
|
# pyopenssl
|
||||||
|
|
|
@ -10,7 +10,7 @@ aiosignal==1.3.1
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
async-timeout==4.0.3
|
async-timeout==4.0.3
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
autocommand==2.2.2
|
autocommand==2.2.2
|
||||||
# via jaraco.text
|
# via jaraco.text
|
||||||
|
@ -26,7 +26,7 @@ cherrypy==18.8.0
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
contextvars==2.4
|
contextvars==2.4
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
# pyopenssl
|
# pyopenssl
|
||||||
|
|
|
@ -10,7 +10,7 @@ aiosignal==1.3.1
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
async-timeout==4.0.3
|
async-timeout==4.0.3
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
autocommand==2.2.2
|
autocommand==2.2.2
|
||||||
# via jaraco.text
|
# via jaraco.text
|
||||||
|
@ -26,7 +26,7 @@ cherrypy==18.8.0
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
contextvars==2.4
|
contextvars==2.4
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
# pyopenssl
|
# pyopenssl
|
||||||
|
|
|
@ -10,7 +10,7 @@ aiosignal==1.3.1
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
async-timeout==4.0.3
|
async-timeout==4.0.3
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
autocommand==2.2.2
|
autocommand==2.2.2
|
||||||
# via jaraco.text
|
# via jaraco.text
|
||||||
|
@ -30,7 +30,7 @@ clr-loader==0.2.6
|
||||||
# via pythonnet
|
# via pythonnet
|
||||||
contextvars==2.4
|
contextvars==2.4
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
# pyopenssl
|
# pyopenssl
|
||||||
|
|
|
@ -10,7 +10,7 @@ aiosignal==1.3.1
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
annotated-types==0.6.0
|
annotated-types==0.6.0
|
||||||
# via pydantic
|
# via pydantic
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
autocommand==2.2.2
|
autocommand==2.2.2
|
||||||
# via jaraco.text
|
# via jaraco.text
|
||||||
|
@ -26,7 +26,7 @@ cherrypy==18.8.0
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
contextvars==2.4
|
contextvars==2.4
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
# pyopenssl
|
# pyopenssl
|
||||||
|
|
|
@ -10,7 +10,7 @@ aiosignal==1.3.1
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
annotated-types==0.6.0
|
annotated-types==0.6.0
|
||||||
# via pydantic
|
# via pydantic
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
autocommand==2.2.2
|
autocommand==2.2.2
|
||||||
# via jaraco.text
|
# via jaraco.text
|
||||||
|
@ -26,7 +26,7 @@ cherrypy==18.8.0
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
contextvars==2.4
|
contextvars==2.4
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
# pyopenssl
|
# pyopenssl
|
||||||
|
|
|
@ -10,7 +10,7 @@ aiosignal==1.3.1
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
annotated-types==0.6.0
|
annotated-types==0.6.0
|
||||||
# via pydantic
|
# via pydantic
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
autocommand==2.2.2
|
autocommand==2.2.2
|
||||||
# via jaraco.text
|
# via jaraco.text
|
||||||
|
@ -26,7 +26,7 @@ cherrypy==18.8.0
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
contextvars==2.4
|
contextvars==2.4
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
# pyopenssl
|
# pyopenssl
|
||||||
|
|
|
@ -10,7 +10,7 @@ aiosignal==1.3.1
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
annotated-types==0.6.0
|
annotated-types==0.6.0
|
||||||
# via pydantic
|
# via pydantic
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
autocommand==2.2.2
|
autocommand==2.2.2
|
||||||
# via jaraco.text
|
# via jaraco.text
|
||||||
|
@ -30,7 +30,7 @@ clr-loader==0.2.6
|
||||||
# via pythonnet
|
# via pythonnet
|
||||||
contextvars==2.4
|
contextvars==2.4
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
# pyopenssl
|
# pyopenssl
|
||||||
|
|
|
@ -26,7 +26,7 @@ cherrypy==18.8.0
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
contextvars==2.4
|
contextvars==2.4
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
# pyopenssl
|
# pyopenssl
|
||||||
|
|
|
@ -10,7 +10,7 @@ aiosignal==1.3.1
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
annotated-types==0.6.0
|
annotated-types==0.6.0
|
||||||
# via pydantic
|
# via pydantic
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
autocommand==2.2.2
|
autocommand==2.2.2
|
||||||
# via jaraco.text
|
# via jaraco.text
|
||||||
|
@ -26,7 +26,7 @@ cherrypy==18.8.0
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
contextvars==2.4
|
contextvars==2.4
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
# pyopenssl
|
# pyopenssl
|
||||||
|
|
|
@ -10,7 +10,7 @@ aiosignal==1.3.1
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
annotated-types==0.6.0
|
annotated-types==0.6.0
|
||||||
# via pydantic
|
# via pydantic
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
autocommand==2.2.2
|
autocommand==2.2.2
|
||||||
# via jaraco.text
|
# via jaraco.text
|
||||||
|
@ -26,7 +26,7 @@ cherrypy==18.8.0
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
contextvars==2.4
|
contextvars==2.4
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
# pyopenssl
|
# pyopenssl
|
||||||
|
|
|
@ -10,7 +10,7 @@ aiosignal==1.3.1
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
annotated-types==0.6.0
|
annotated-types==0.6.0
|
||||||
# via pydantic
|
# via pydantic
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
autocommand==2.2.2
|
autocommand==2.2.2
|
||||||
# via jaraco.text
|
# via jaraco.text
|
||||||
|
@ -30,7 +30,7 @@ clr-loader==0.2.6
|
||||||
# via pythonnet
|
# via pythonnet
|
||||||
contextvars==2.4
|
contextvars==2.4
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
# pyopenssl
|
# pyopenssl
|
||||||
|
|
|
@ -10,7 +10,7 @@ aiosignal==1.3.1
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
async-timeout==4.0.3
|
async-timeout==4.0.3
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
autocommand==2.2.2
|
autocommand==2.2.2
|
||||||
# via jaraco.text
|
# via jaraco.text
|
||||||
|
@ -26,7 +26,7 @@ cherrypy==18.8.0
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
contextvars==2.4
|
contextvars==2.4
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
# pyopenssl
|
# pyopenssl
|
||||||
|
|
|
@ -10,7 +10,7 @@ aiosignal==1.3.1
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
async-timeout==4.0.3
|
async-timeout==4.0.3
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
autocommand==2.2.2
|
autocommand==2.2.2
|
||||||
# via jaraco.text
|
# via jaraco.text
|
||||||
|
@ -26,7 +26,7 @@ cherrypy==18.8.0
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
contextvars==2.4
|
contextvars==2.4
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
# pyopenssl
|
# pyopenssl
|
||||||
|
|
|
@ -10,7 +10,7 @@ aiosignal==1.3.1
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
async-timeout==4.0.3
|
async-timeout==4.0.3
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
autocommand==2.2.2
|
autocommand==2.2.2
|
||||||
# via jaraco.text
|
# via jaraco.text
|
||||||
|
@ -30,7 +30,7 @@ clr-loader==0.2.6
|
||||||
# via pythonnet
|
# via pythonnet
|
||||||
contextvars==2.4
|
contextvars==2.4
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
# pyopenssl
|
# pyopenssl
|
||||||
|
|
|
@ -10,7 +10,7 @@ aiosignal==1.3.1
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
async-timeout==4.0.3
|
async-timeout==4.0.3
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
autocommand==2.2.2
|
autocommand==2.2.2
|
||||||
# via jaraco.text
|
# via jaraco.text
|
||||||
|
@ -26,7 +26,7 @@ cherrypy==18.8.0
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
contextvars==2.4
|
contextvars==2.4
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
# pyopenssl
|
# pyopenssl
|
||||||
|
|
|
@ -10,7 +10,7 @@ aiosignal==1.3.1
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
async-timeout==4.0.3
|
async-timeout==4.0.3
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
autocommand==2.2.2
|
autocommand==2.2.2
|
||||||
# via jaraco.text
|
# via jaraco.text
|
||||||
|
@ -26,7 +26,7 @@ cherrypy==18.8.0
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
contextvars==2.4
|
contextvars==2.4
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
# pyopenssl
|
# pyopenssl
|
||||||
|
|
|
@ -10,7 +10,7 @@ aiosignal==1.3.1
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
async-timeout==4.0.3
|
async-timeout==4.0.3
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
autocommand==2.2.2
|
autocommand==2.2.2
|
||||||
# via jaraco.text
|
# via jaraco.text
|
||||||
|
@ -26,7 +26,7 @@ cherrypy==18.8.0
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
contextvars==2.4
|
contextvars==2.4
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
# pyopenssl
|
# pyopenssl
|
||||||
|
|
|
@ -10,7 +10,7 @@ aiosignal==1.3.1
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
async-timeout==4.0.3
|
async-timeout==4.0.3
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
attrs==23.1.0
|
attrs==23.2.0
|
||||||
# via aiohttp
|
# via aiohttp
|
||||||
autocommand==2.2.2
|
autocommand==2.2.2
|
||||||
# via jaraco.text
|
# via jaraco.text
|
||||||
|
@ -30,7 +30,7 @@ clr-loader==0.2.6
|
||||||
# via pythonnet
|
# via pythonnet
|
||||||
contextvars==2.4
|
contextvars==2.4
|
||||||
# via -r requirements/base.txt
|
# via -r requirements/base.txt
|
||||||
cryptography==42.0.0
|
cryptography==42.0.3
|
||||||
# via
|
# via
|
||||||
# -r requirements/base.txt
|
# -r requirements/base.txt
|
||||||
# pyopenssl
|
# pyopenssl
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
-r base.txt
|
-r base.txt
|
||||||
-r crypto.txt
|
-r crypto.txt
|
||||||
|
|
||||||
pyzmq>=24.0.0
|
pyzmq>=25.1.2
|
||||||
|
|
|
@ -420,6 +420,7 @@ def set_logging_options_dict(opts):
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
pass
|
pass
|
||||||
set_logging_options_dict.__options_dict__ = opts
|
set_logging_options_dict.__options_dict__ = opts
|
||||||
|
set_lowest_log_level_by_opts(opts)
|
||||||
|
|
||||||
|
|
||||||
def freeze_logging_options_dict():
|
def freeze_logging_options_dict():
|
||||||
|
|
|
@ -730,46 +730,62 @@ def _windows_virtual(osdata):
|
||||||
if osdata["kernel"] != "Windows":
|
if osdata["kernel"] != "Windows":
|
||||||
return grains
|
return grains
|
||||||
|
|
||||||
grains["virtual"] = osdata.get("virtual", "physical")
|
# Set the default virtual environment to physical, meaning not a VM
|
||||||
|
grains["virtual"] = "physical"
|
||||||
|
|
||||||
# It is possible that the 'manufacturer' and/or 'productname' grains
|
# It is possible that the 'manufacturer' and/or 'productname' grains exist
|
||||||
# exist but have a value of None.
|
# but have a value of None
|
||||||
manufacturer = osdata.get("manufacturer", "")
|
manufacturer = osdata.get("manufacturer", "")
|
||||||
if manufacturer is None:
|
if manufacturer is None:
|
||||||
manufacturer = ""
|
manufacturer = ""
|
||||||
productname = osdata.get("productname", "")
|
product_name = osdata.get("productname", "")
|
||||||
if productname is None:
|
if product_name is None:
|
||||||
productname = ""
|
product_name = ""
|
||||||
|
bios_string = osdata.get("biosstring", "")
|
||||||
|
if bios_string is None:
|
||||||
|
bios_string = ""
|
||||||
|
|
||||||
if "QEMU" in manufacturer:
|
if "QEMU" in manufacturer:
|
||||||
# FIXME: Make this detect between kvm or qemu
|
# FIXME: Make this detect between kvm or qemu
|
||||||
grains["virtual"] = "kvm"
|
grains["virtual"] = "kvm"
|
||||||
if "Bochs" in manufacturer:
|
elif "VRTUAL" in bios_string: # (not a typo)
|
||||||
|
grains["virtual"] = "HyperV"
|
||||||
|
elif "A M I" in bios_string:
|
||||||
|
grains["virtual"] = "VirtualPC"
|
||||||
|
elif "Xen" in bios_string:
|
||||||
|
grains["virtual"] = "Xen"
|
||||||
|
if "HVM domU" in product_name:
|
||||||
|
grains["virtual_subtype"] = "HVM domU"
|
||||||
|
elif "AMAZON" in bios_string:
|
||||||
|
grains["virtual"] = "EC2"
|
||||||
|
elif "Bochs" in manufacturer:
|
||||||
grains["virtual"] = "kvm"
|
grains["virtual"] = "kvm"
|
||||||
# Product Name: (oVirt) www.ovirt.org
|
# Product Name: (oVirt) www.ovirt.org
|
||||||
# Red Hat Community virtualization Project based on kvm
|
# Red Hat Community virtualization Project based on kvm
|
||||||
elif "oVirt" in productname:
|
elif "oVirt" in product_name:
|
||||||
grains["virtual"] = "kvm"
|
grains["virtual"] = "kvm"
|
||||||
grains["virtual_subtype"] = "oVirt"
|
grains["virtual_subtype"] = "oVirt"
|
||||||
# Red Hat Enterprise Virtualization
|
# Red Hat Enterprise Virtualization
|
||||||
elif "RHEV Hypervisor" in productname:
|
elif "RHEV Hypervisor" in product_name:
|
||||||
grains["virtual"] = "kvm"
|
grains["virtual"] = "kvm"
|
||||||
grains["virtual_subtype"] = "rhev"
|
grains["virtual_subtype"] = "rhev"
|
||||||
# Product Name: VirtualBox
|
# Product Name: VirtualBox
|
||||||
elif "VirtualBox" in productname:
|
elif "VirtualBox" in product_name:
|
||||||
grains["virtual"] = "VirtualBox"
|
grains["virtual"] = "VirtualBox"
|
||||||
# Product Name: VMware Virtual Platform
|
# Product Name: VMware Virtual Platform
|
||||||
elif "VMware" in productname:
|
elif "VMware" in product_name:
|
||||||
grains["virtual"] = "VMware"
|
grains["virtual"] = "VMware"
|
||||||
# Manufacturer: Microsoft Corporation
|
# Manufacturer: Microsoft Corporation
|
||||||
# Product Name: Virtual Machine
|
# Product Name: Virtual Machine
|
||||||
elif "Microsoft" in manufacturer and "Virtual Machine" in productname:
|
elif "Microsoft" in manufacturer and "Virtual Machine" in product_name:
|
||||||
grains["virtual"] = "VirtualPC"
|
grains["virtual"] = "VirtualPC"
|
||||||
|
elif "OpenStack" in product_name:
|
||||||
|
grains["virtual"] = "OpenStack"
|
||||||
# Manufacturer: Parallels Software International Inc.
|
# Manufacturer: Parallels Software International Inc.
|
||||||
elif "Parallels" in manufacturer:
|
elif "Parallels" in manufacturer:
|
||||||
grains["virtual"] = "Parallels"
|
grains["virtual"] = "Parallels"
|
||||||
# Apache CloudStack
|
# Apache CloudStack
|
||||||
elif "CloudStack KVM Hypervisor" in productname:
|
elif "CloudStack KVM Hypervisor" in product_name:
|
||||||
grains["virtual"] = "kvm"
|
grains["virtual"] = "kvm"
|
||||||
grains["virtual_subtype"] = "cloudstack"
|
grains["virtual_subtype"] = "cloudstack"
|
||||||
return grains
|
return grains
|
||||||
|
@ -1498,88 +1514,143 @@ def _windows_platform_data():
|
||||||
if not HAS_WMI:
|
if not HAS_WMI:
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
|
grains = {}
|
||||||
with salt.utils.winapi.Com():
|
with salt.utils.winapi.Com():
|
||||||
wmi_c = wmi.WMI()
|
wmi_c = wmi.WMI()
|
||||||
# http://msdn.microsoft.com/en-us/library/windows/desktop/aa394102%28v=vs.85%29.aspx
|
try:
|
||||||
systeminfo = wmi_c.Win32_ComputerSystem()[0]
|
# http://msdn.microsoft.com/en-us/library/windows/desktop/aa394102%28v=vs.85%29.aspx
|
||||||
# https://msdn.microsoft.com/en-us/library/aa394239(v=vs.85).aspx
|
systeminfo = wmi_c.Win32_ComputerSystem()[0]
|
||||||
osinfo = wmi_c.Win32_OperatingSystem()[0]
|
grains.update(
|
||||||
# http://msdn.microsoft.com/en-us/library/windows/desktop/aa394077(v=vs.85).aspx
|
{
|
||||||
biosinfo = wmi_c.Win32_BIOS()[0]
|
"manufacturer": _clean_value(
|
||||||
# http://msdn.microsoft.com/en-us/library/windows/desktop/aa394498(v=vs.85).aspx
|
"manufacturer", systeminfo.Manufacturer
|
||||||
timeinfo = wmi_c.Win32_TimeZone()[0]
|
),
|
||||||
# https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-computersystemproduct
|
"productname": _clean_value("productname", systeminfo.Model),
|
||||||
csproductinfo = wmi_c.Win32_ComputerSystemProduct()[0]
|
}
|
||||||
|
)
|
||||||
|
except IndexError:
|
||||||
|
grains.update({"manufacturer": None, "productname": None})
|
||||||
|
log.warning("Computer System info not available on this system")
|
||||||
|
|
||||||
|
try:
|
||||||
|
# https://msdn.microsoft.com/en-us/library/aa394239(v=vs.85).aspx
|
||||||
|
osinfo = wmi_c.Win32_OperatingSystem()[0]
|
||||||
|
os_release = _windows_os_release_grain(
|
||||||
|
caption=osinfo.Caption, product_type=osinfo.ProductType
|
||||||
|
)
|
||||||
|
grains.update(
|
||||||
|
{
|
||||||
|
"kernelrelease": _clean_value("kernelrelease", osinfo.Version),
|
||||||
|
"osfullname": _clean_value("osfullname", osinfo.Caption),
|
||||||
|
"osmanufacturer": _clean_value(
|
||||||
|
"osmanufacturer", osinfo.Manufacturer
|
||||||
|
),
|
||||||
|
"osrelease": _clean_value("osrelease", os_release),
|
||||||
|
"osversion": _clean_value("osversion", osinfo.Version),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
except IndexError:
|
||||||
|
grains.update(
|
||||||
|
{
|
||||||
|
"kernelrelease": None,
|
||||||
|
"osfullname": None,
|
||||||
|
"osmanufacturer": None,
|
||||||
|
"osrelease": None,
|
||||||
|
"osversion": None,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
log.warning("Operating System info not available on this system")
|
||||||
|
|
||||||
|
try:
|
||||||
|
# http://msdn.microsoft.com/en-us/library/windows/desktop/aa394077(v=vs.85).aspx
|
||||||
|
biosinfo = wmi_c.Win32_BIOS()[0]
|
||||||
|
grains.update(
|
||||||
|
{
|
||||||
|
# bios name had a bunch of whitespace appended to it in my testing
|
||||||
|
# 'PhoenixBIOS 4.0 Release 6.0 '
|
||||||
|
"biosversion": _clean_value("biosversion", biosinfo.Name.strip()),
|
||||||
|
"biosstring": _clean_value("string", biosinfo.Version),
|
||||||
|
"serialnumber": _clean_value("serialnumber", biosinfo.SerialNumber),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
except IndexError:
|
||||||
|
grains.update(
|
||||||
|
{"biosstring": None, "biosversion": None, "serialnumber": None}
|
||||||
|
)
|
||||||
|
log.warning("BIOS info not available on this system")
|
||||||
|
|
||||||
|
try:
|
||||||
|
# http://msdn.microsoft.com/en-us/library/windows/desktop/aa394498(v=vs.85).aspx
|
||||||
|
timeinfo = wmi_c.Win32_TimeZone()[0]
|
||||||
|
grains.update(
|
||||||
|
{
|
||||||
|
"timezone": _clean_value("timezone", timeinfo.Description),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
except IndexError:
|
||||||
|
grains.update({"timezone": None})
|
||||||
|
log.warning("TimeZone info not available on this system")
|
||||||
|
|
||||||
|
try:
|
||||||
|
# https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-computersystemproduct
|
||||||
|
csproductinfo = wmi_c.Win32_ComputerSystemProduct()[0]
|
||||||
|
grains.update(
|
||||||
|
{
|
||||||
|
"uuid": _clean_value("uuid", csproductinfo.UUID.lower()),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
except IndexError:
|
||||||
|
grains.update({"uuid": None})
|
||||||
|
log.warning("Computer System Product info not available on this system")
|
||||||
|
|
||||||
# http://msdn.microsoft.com/en-us/library/windows/desktop/aa394072(v=vs.85).aspx
|
# http://msdn.microsoft.com/en-us/library/windows/desktop/aa394072(v=vs.85).aspx
|
||||||
motherboard = {"product": None, "serial": None}
|
|
||||||
try:
|
try:
|
||||||
motherboardinfo = wmi_c.Win32_BaseBoard()[0]
|
motherboardinfo = wmi_c.Win32_BaseBoard()[0]
|
||||||
motherboard["product"] = motherboardinfo.Product
|
grains.update(
|
||||||
motherboard["serial"] = motherboardinfo.SerialNumber
|
{
|
||||||
|
"motherboard": {
|
||||||
|
"productname": _clean_value(
|
||||||
|
"motherboard.productname", motherboardinfo.Product
|
||||||
|
),
|
||||||
|
"serialnumber": _clean_value(
|
||||||
|
"motherboard.serialnumber", motherboardinfo.SerialNumber
|
||||||
|
),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
)
|
||||||
except IndexError:
|
except IndexError:
|
||||||
|
grains.update(
|
||||||
|
{
|
||||||
|
"motherboard": {"productname": None, "serialnumber": None},
|
||||||
|
}
|
||||||
|
)
|
||||||
log.debug("Motherboard info not available on this system")
|
log.debug("Motherboard info not available on this system")
|
||||||
|
|
||||||
kernel_version = platform.version()
|
grains.update(
|
||||||
info = salt.utils.win_osinfo.get_os_version_info()
|
{
|
||||||
|
"kernelversion": _clean_value("kernelversion", platform.version()),
|
||||||
|
}
|
||||||
|
)
|
||||||
net_info = salt.utils.win_osinfo.get_join_info()
|
net_info = salt.utils.win_osinfo.get_join_info()
|
||||||
|
grains.update(
|
||||||
service_pack = None
|
{
|
||||||
if info["ServicePackMajor"] > 0:
|
"windowsdomain": _clean_value("windowsdomain", net_info["Domain"]),
|
||||||
service_pack = "".join(["SP", str(info["ServicePackMajor"])])
|
"windowsdomaintype": _clean_value(
|
||||||
|
"windowsdomaintype", net_info["DomainType"]
|
||||||
os_release = _windows_os_release_grain(
|
),
|
||||||
caption=osinfo.Caption, product_type=osinfo.ProductType
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
grains = {
|
info = salt.utils.win_osinfo.get_os_version_info()
|
||||||
"kernelrelease": _clean_value("kernelrelease", osinfo.Version),
|
if info["ServicePackMajor"] > 0:
|
||||||
"kernelversion": _clean_value("kernelversion", kernel_version),
|
service_pack = "".join(["SP", str(info["ServicePackMajor"])])
|
||||||
"osversion": _clean_value("osversion", osinfo.Version),
|
grains.update(
|
||||||
"osrelease": _clean_value("osrelease", os_release),
|
{
|
||||||
"osservicepack": _clean_value("osservicepack", service_pack),
|
"osservicepack": _clean_value("osservicepack", service_pack),
|
||||||
"osmanufacturer": _clean_value("osmanufacturer", osinfo.Manufacturer),
|
}
|
||||||
"manufacturer": _clean_value("manufacturer", systeminfo.Manufacturer),
|
)
|
||||||
"productname": _clean_value("productname", systeminfo.Model),
|
else:
|
||||||
# bios name had a bunch of whitespace appended to it in my testing
|
grains.update({"osservicepack": None})
|
||||||
# 'PhoenixBIOS 4.0 Release 6.0 '
|
|
||||||
"biosversion": _clean_value("biosversion", biosinfo.Name.strip()),
|
|
||||||
"serialnumber": _clean_value("serialnumber", biosinfo.SerialNumber),
|
|
||||||
"osfullname": _clean_value("osfullname", osinfo.Caption),
|
|
||||||
"timezone": _clean_value("timezone", timeinfo.Description),
|
|
||||||
"uuid": _clean_value("uuid", csproductinfo.UUID.lower()),
|
|
||||||
"windowsdomain": _clean_value("windowsdomain", net_info["Domain"]),
|
|
||||||
"windowsdomaintype": _clean_value(
|
|
||||||
"windowsdomaintype", net_info["DomainType"]
|
|
||||||
),
|
|
||||||
"motherboard": {
|
|
||||||
"productname": _clean_value(
|
|
||||||
"motherboard.productname", motherboard["product"]
|
|
||||||
),
|
|
||||||
"serialnumber": _clean_value(
|
|
||||||
"motherboard.serialnumber", motherboard["serial"]
|
|
||||||
),
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
# test for virtualized environments
|
|
||||||
# I only had VMware available so the rest are unvalidated
|
|
||||||
if "VRTUAL" in biosinfo.Version: # (not a typo)
|
|
||||||
grains["virtual"] = "HyperV"
|
|
||||||
elif "A M I" in biosinfo.Version:
|
|
||||||
grains["virtual"] = "VirtualPC"
|
|
||||||
elif "VMware" in systeminfo.Model:
|
|
||||||
grains["virtual"] = "VMware"
|
|
||||||
elif "VirtualBox" in systeminfo.Model:
|
|
||||||
grains["virtual"] = "VirtualBox"
|
|
||||||
elif "Xen" in biosinfo.Version:
|
|
||||||
grains["virtual"] = "Xen"
|
|
||||||
if "HVM domU" in systeminfo.Model:
|
|
||||||
grains["virtual_subtype"] = "HVM domU"
|
|
||||||
elif "OpenStack" in systeminfo.Model:
|
|
||||||
grains["virtual"] = "OpenStack"
|
|
||||||
elif "AMAZON" in biosinfo.Version:
|
|
||||||
grains["virtual"] = "EC2"
|
|
||||||
|
|
||||||
return grains
|
return grains
|
||||||
|
|
||||||
|
|
|
@ -72,12 +72,12 @@ def install(app_id, enable=True, tries=3, wait=10):
|
||||||
f"Error installing app({app_id}): {exc}"
|
f"Error installing app({app_id}): {exc}"
|
||||||
)
|
)
|
||||||
elif num_tries < tries:
|
elif num_tries < tries:
|
||||||
time.sleep(wait)
|
|
||||||
num_tries += 1
|
num_tries += 1
|
||||||
else:
|
else:
|
||||||
raise CommandExecutionError(
|
raise CommandExecutionError(
|
||||||
f"Error installing app({app_id}): {exc}"
|
f"Error installing app({app_id}): {exc}"
|
||||||
)
|
)
|
||||||
|
time.sleep(wait)
|
||||||
|
|
||||||
|
|
||||||
def installed(app_id):
|
def installed(app_id):
|
||||||
|
|
|
@ -48,7 +48,7 @@ def log_nameToLevel(name):
|
||||||
|
|
||||||
def test_lowest_log_level():
|
def test_lowest_log_level():
|
||||||
ret = log_impl.get_lowest_log_level()
|
ret = log_impl.get_lowest_log_level()
|
||||||
assert ret is None
|
assert ret is not None
|
||||||
|
|
||||||
log_impl.set_lowest_log_level(log_nameToLevel("DEBUG"))
|
log_impl.set_lowest_log_level(log_nameToLevel("DEBUG"))
|
||||||
ret = log_impl.get_lowest_log_level()
|
ret = log_impl.get_lowest_log_level()
|
||||||
|
|
|
@ -9,6 +9,7 @@ import pytest
|
||||||
from pytestshellutils.utils.processes import terminate_process
|
from pytestshellutils.utils.processes import terminate_process
|
||||||
|
|
||||||
from salt._logging.handlers import DeferredStreamHandler
|
from salt._logging.handlers import DeferredStreamHandler
|
||||||
|
from salt._logging.impl import set_lowest_log_level
|
||||||
from salt.utils.nb_popen import NonBlockingPopen
|
from salt.utils.nb_popen import NonBlockingPopen
|
||||||
from tests.support.helpers import CaptureOutput, dedent
|
from tests.support.helpers import CaptureOutput, dedent
|
||||||
from tests.support.runtests import RUNTIME_VARS
|
from tests.support.runtests import RUNTIME_VARS
|
||||||
|
@ -20,7 +21,7 @@ def _sync_with_handlers_proc_target():
|
||||||
|
|
||||||
with CaptureOutput() as stds:
|
with CaptureOutput() as stds:
|
||||||
handler = DeferredStreamHandler(sys.stderr)
|
handler = DeferredStreamHandler(sys.stderr)
|
||||||
handler.setLevel(logging.DEBUG)
|
set_lowest_log_level(logging.DEBUG)
|
||||||
formatter = logging.Formatter("%(message)s")
|
formatter = logging.Formatter("%(message)s")
|
||||||
handler.setFormatter(formatter)
|
handler.setFormatter(formatter)
|
||||||
logging.root.addHandler(handler)
|
logging.root.addHandler(handler)
|
||||||
|
@ -45,7 +46,7 @@ def _deferred_write_on_flush_proc_target():
|
||||||
|
|
||||||
with CaptureOutput() as stds:
|
with CaptureOutput() as stds:
|
||||||
handler = DeferredStreamHandler(sys.stderr)
|
handler = DeferredStreamHandler(sys.stderr)
|
||||||
handler.setLevel(logging.DEBUG)
|
set_lowest_log_level(logging.DEBUG)
|
||||||
formatter = logging.Formatter("%(message)s")
|
formatter = logging.Formatter("%(message)s")
|
||||||
handler.setFormatter(formatter)
|
handler.setFormatter(formatter)
|
||||||
logging.root.addHandler(handler)
|
logging.root.addHandler(handler)
|
||||||
|
@ -126,7 +127,7 @@ def test_deferred_write_on_atexit(tmp_path):
|
||||||
# Just loop consuming output
|
# Just loop consuming output
|
||||||
while True:
|
while True:
|
||||||
if time.time() > max_time:
|
if time.time() > max_time:
|
||||||
pytest.fail("Script didn't exit after {} second".format(execution_time))
|
pytest.fail(f"Script didn't exit after {execution_time} second")
|
||||||
|
|
||||||
time.sleep(0.125)
|
time.sleep(0.125)
|
||||||
_out = proc.recv()
|
_out = proc.recv()
|
||||||
|
@ -146,7 +147,7 @@ def test_deferred_write_on_atexit(tmp_path):
|
||||||
finally:
|
finally:
|
||||||
terminate_process(proc.pid, kill_children=True)
|
terminate_process(proc.pid, kill_children=True)
|
||||||
if b"Foo" not in err:
|
if b"Foo" not in err:
|
||||||
pytest.fail("'Foo' should be in stderr and it's not: {}".format(err))
|
pytest.fail(f"'Foo' should be in stderr and it's not: {err}")
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.skip_on_windows(reason="Windows does not support SIGINT")
|
@pytest.mark.skip_on_windows(reason="Windows does not support SIGINT")
|
||||||
|
|
|
@ -2866,6 +2866,10 @@ def test_virtual_has_virtual_grain():
|
||||||
assert virtual_grains["virtual"] != "physical"
|
assert virtual_grains["virtual"] != "physical"
|
||||||
|
|
||||||
|
|
||||||
|
def test__windows_platform_data():
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.skip_unless_on_windows
|
@pytest.mark.skip_unless_on_windows
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
("osdata", "expected"),
|
("osdata", "expected"),
|
||||||
|
@ -2873,6 +2877,13 @@ def test_virtual_has_virtual_grain():
|
||||||
({"kernel": "Not Windows"}, {}),
|
({"kernel": "Not Windows"}, {}),
|
||||||
({"kernel": "Windows"}, {"virtual": "physical"}),
|
({"kernel": "Windows"}, {"virtual": "physical"}),
|
||||||
({"kernel": "Windows", "manufacturer": "QEMU"}, {"virtual": "kvm"}),
|
({"kernel": "Windows", "manufacturer": "QEMU"}, {"virtual": "kvm"}),
|
||||||
|
({"kernel": "Windows", "biosstring": "VRTUAL"}, {"virtual": "HyperV"}),
|
||||||
|
({"kernel": "Windows", "biosstring": "A M I"}, {"virtual": "VirtualPC"}),
|
||||||
|
(
|
||||||
|
{"kernel": "Windows", "biosstring": "Xen", "productname": "HVM domU"},
|
||||||
|
{"virtual": "Xen", "virtual_subtype": "HVM domU"},
|
||||||
|
),
|
||||||
|
({"kernel": "Windows", "biosstring": "AMAZON"}, {"virtual": "EC2"}),
|
||||||
({"kernel": "Windows", "manufacturer": "Bochs"}, {"virtual": "kvm"}),
|
({"kernel": "Windows", "manufacturer": "Bochs"}, {"virtual": "kvm"}),
|
||||||
(
|
(
|
||||||
{"kernel": "Windows", "productname": "oVirt"},
|
{"kernel": "Windows", "productname": "oVirt"},
|
||||||
|
@ -2882,10 +2893,6 @@ def test_virtual_has_virtual_grain():
|
||||||
{"kernel": "Windows", "productname": "RHEV Hypervisor"},
|
{"kernel": "Windows", "productname": "RHEV Hypervisor"},
|
||||||
{"virtual": "kvm", "virtual_subtype": "rhev"},
|
{"virtual": "kvm", "virtual_subtype": "rhev"},
|
||||||
),
|
),
|
||||||
(
|
|
||||||
{"kernel": "Windows", "productname": "CloudStack KVM Hypervisor"},
|
|
||||||
{"virtual": "kvm", "virtual_subtype": "cloudstack"},
|
|
||||||
),
|
|
||||||
(
|
(
|
||||||
{"kernel": "Windows", "productname": "VirtualBox"},
|
{"kernel": "Windows", "productname": "VirtualBox"},
|
||||||
{"virtual": "VirtualBox"},
|
{"virtual": "VirtualBox"},
|
||||||
|
@ -2913,6 +2920,7 @@ def test_virtual_has_virtual_grain():
|
||||||
},
|
},
|
||||||
{"virtual": "VirtualPC"},
|
{"virtual": "VirtualPC"},
|
||||||
),
|
),
|
||||||
|
({"kernel": "Windows", "productname": "OpenStack"}, {"virtual": "OpenStack"}),
|
||||||
(
|
(
|
||||||
{"kernel": "Windows", "manufacturer": "Parallels Software"},
|
{"kernel": "Windows", "manufacturer": "Parallels Software"},
|
||||||
{"virtual": "Parallels"},
|
{"virtual": "Parallels"},
|
||||||
|
@ -2921,6 +2929,10 @@ def test_virtual_has_virtual_grain():
|
||||||
{"kernel": "Windows", "manufacturer": None, "productname": None},
|
{"kernel": "Windows", "manufacturer": None, "productname": None},
|
||||||
{"virtual": "physical"},
|
{"virtual": "physical"},
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
{"kernel": "Windows", "productname": "CloudStack KVM Hypervisor"},
|
||||||
|
{"virtual": "kvm", "virtual_subtype": "cloudstack"},
|
||||||
|
),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
def test__windows_virtual(osdata, expected):
|
def test__windows_virtual(osdata, expected):
|
||||||
|
@ -2941,17 +2953,7 @@ def test_windows_virtual_set_virtual_grain():
|
||||||
_,
|
_,
|
||||||
) = platform.uname()
|
) = platform.uname()
|
||||||
|
|
||||||
with patch.dict(
|
virtual_grains = core._windows_virtual(osdata)
|
||||||
core.__salt__,
|
|
||||||
{
|
|
||||||
"cmd.run": salt.modules.cmdmod.run,
|
|
||||||
"cmd.run_all": salt.modules.cmdmod.run_all,
|
|
||||||
"cmd.retcode": salt.modules.cmdmod.retcode,
|
|
||||||
"smbios.get": salt.modules.smbios.get,
|
|
||||||
},
|
|
||||||
):
|
|
||||||
|
|
||||||
virtual_grains = core._windows_virtual(osdata)
|
|
||||||
|
|
||||||
assert "virtual" in virtual_grains
|
assert "virtual" in virtual_grains
|
||||||
|
|
||||||
|
@ -2969,46 +2971,15 @@ def test_windows_virtual_has_virtual_grain():
|
||||||
_,
|
_,
|
||||||
) = platform.uname()
|
) = platform.uname()
|
||||||
|
|
||||||
with patch.dict(
|
virtual_grains = core._windows_virtual(osdata)
|
||||||
core.__salt__,
|
|
||||||
{
|
|
||||||
"cmd.run": salt.modules.cmdmod.run,
|
|
||||||
"cmd.run_all": salt.modules.cmdmod.run_all,
|
|
||||||
"cmd.retcode": salt.modules.cmdmod.retcode,
|
|
||||||
"smbios.get": salt.modules.smbios.get,
|
|
||||||
},
|
|
||||||
):
|
|
||||||
|
|
||||||
virtual_grains = core._windows_virtual(osdata)
|
|
||||||
|
|
||||||
assert "virtual" in virtual_grains
|
assert "virtual" in virtual_grains
|
||||||
assert virtual_grains["virtual"] != "physical"
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.skip_unless_on_windows
|
@pytest.mark.skip_unless_on_windows
|
||||||
def test_osdata_virtual_key_win():
|
def test_osdata_virtual_key_win():
|
||||||
with patch.dict(
|
osdata_grains = core.os_data()
|
||||||
core.__salt__,
|
assert "virtual" in osdata_grains
|
||||||
{
|
|
||||||
"cmd.run": salt.modules.cmdmod.run,
|
|
||||||
"cmd.run_all": salt.modules.cmdmod.run_all,
|
|
||||||
"cmd.retcode": salt.modules.cmdmod.retcode,
|
|
||||||
"smbios.get": salt.modules.smbios.get,
|
|
||||||
},
|
|
||||||
):
|
|
||||||
|
|
||||||
_windows_platform_data_ret = core.os_data()
|
|
||||||
_windows_platform_data_ret["virtual"] = "something"
|
|
||||||
|
|
||||||
with patch.object(
|
|
||||||
core, "_windows_platform_data", return_value=_windows_platform_data_ret
|
|
||||||
) as _windows_platform_data:
|
|
||||||
|
|
||||||
osdata_grains = core.os_data()
|
|
||||||
_windows_platform_data.assert_called_once()
|
|
||||||
|
|
||||||
assert "virtual" in osdata_grains
|
|
||||||
assert osdata_grains["virtual"] != "physical"
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.skip_unless_on_linux
|
@pytest.mark.skip_unless_on_linux
|
||||||
|
|
258
tests/pytests/unit/grains/test_core_windows_platform_data.py
Normal file
258
tests/pytests/unit/grains/test_core_windows_platform_data.py
Normal file
|
@ -0,0 +1,258 @@
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
import salt.grains.core as core
|
||||||
|
from tests.support.mock import MagicMock, Mock, patch
|
||||||
|
|
||||||
|
pytestmark = [
|
||||||
|
pytest.mark.skip_unless_on_windows,
|
||||||
|
]
|
||||||
|
|
||||||
|
wmi = pytest.importorskip("wmi", reason="WMI only available on Windows")
|
||||||
|
|
||||||
|
|
||||||
|
def test__windows_platform_data_index_errors():
|
||||||
|
# mock = [MagicMock(Manufacturer="Dell Inc.", Model="Precision 5820 Tower")]
|
||||||
|
# mock = [MagicMock(
|
||||||
|
# Version="10.0.22631",
|
||||||
|
# Caption="Microsoft Windows 11 Enterprise",
|
||||||
|
# Manufacturer="Microsoft Corporation",
|
||||||
|
# ProductType=1,
|
||||||
|
# )]
|
||||||
|
|
||||||
|
WMI = Mock()
|
||||||
|
platform_version = "1.2.3"
|
||||||
|
os_version_info = {"Domain": "test", "DomainType": "test_type"}
|
||||||
|
|
||||||
|
with patch("salt.utils.winapi.Com", MagicMock()), patch.object(
|
||||||
|
wmi, "WMI", Mock(return_value=WMI)
|
||||||
|
), patch.object(WMI, "Win32_ComputerSystem", return_value=[]), patch.object(
|
||||||
|
WMI, "Win32_OperatingSystem", return_value=[]
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_BIOS", return_value=[]
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_TimeZone", return_value=[]
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_ComputerSystemProduct", return_value=[]
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_BaseBoard", return_value=[]
|
||||||
|
), patch(
|
||||||
|
"platform.version", return_value=platform_version
|
||||||
|
), patch(
|
||||||
|
"salt.utils.win_osinfo.get_join_info", return_value=os_version_info
|
||||||
|
):
|
||||||
|
result = core._windows_platform_data()
|
||||||
|
expected = {
|
||||||
|
"biosstring": None,
|
||||||
|
"biosversion": None,
|
||||||
|
"kernelrelease": None,
|
||||||
|
"kernelversion": platform_version,
|
||||||
|
"manufacturer": None,
|
||||||
|
"motherboard": {"productname": None, "serialnumber": None},
|
||||||
|
"osfullname": None,
|
||||||
|
"osmanufacturer": None,
|
||||||
|
"osrelease": None,
|
||||||
|
"osservicepack": None,
|
||||||
|
"osversion": None,
|
||||||
|
"productname": None,
|
||||||
|
"serialnumber": None,
|
||||||
|
"timezone": None,
|
||||||
|
"uuid": None,
|
||||||
|
"windowsdomain": os_version_info["Domain"],
|
||||||
|
"windowsdomaintype": os_version_info["DomainType"],
|
||||||
|
}
|
||||||
|
assert result == expected
|
||||||
|
|
||||||
|
|
||||||
|
def test__windows_platform_data_computer_system():
|
||||||
|
mock = [MagicMock(Manufacturer="Dell Inc.", Model="Precision 5820 Tower")]
|
||||||
|
WMI = Mock()
|
||||||
|
platform_version = "1.2.3"
|
||||||
|
os_version_info = {"Domain": "test", "DomainType": "test_type"}
|
||||||
|
with patch("salt.utils.winapi.Com", MagicMock()), patch.object(
|
||||||
|
wmi, "WMI", Mock(return_value=WMI)
|
||||||
|
), patch.object(WMI, "Win32_ComputerSystem", return_value=mock), patch.object(
|
||||||
|
WMI, "Win32_OperatingSystem", return_value=[]
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_BIOS", return_value=[]
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_TimeZone", return_value=[]
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_ComputerSystemProduct", return_value=[]
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_BaseBoard", return_value=[]
|
||||||
|
), patch(
|
||||||
|
"platform.version", return_value=platform_version
|
||||||
|
), patch(
|
||||||
|
"salt.utils.win_osinfo.get_join_info", return_value=os_version_info
|
||||||
|
):
|
||||||
|
result = core._windows_platform_data()
|
||||||
|
assert result["manufacturer"] == "Dell Inc."
|
||||||
|
assert result["productname"] == "Precision 5820 Tower"
|
||||||
|
|
||||||
|
|
||||||
|
def test__windows_platform_data_operating_system():
|
||||||
|
mock = [
|
||||||
|
MagicMock(
|
||||||
|
Version="10.0.22631",
|
||||||
|
Caption="Microsoft Windows 11 Enterprise",
|
||||||
|
Manufacturer="Microsoft Corporation",
|
||||||
|
ProductType=1,
|
||||||
|
)
|
||||||
|
]
|
||||||
|
|
||||||
|
WMI = Mock()
|
||||||
|
platform_version = "1.2.3"
|
||||||
|
os_version_info = {"Domain": "test", "DomainType": "test_type"}
|
||||||
|
with patch("salt.utils.winapi.Com", MagicMock()), patch.object(
|
||||||
|
wmi, "WMI", Mock(return_value=WMI)
|
||||||
|
), patch.object(WMI, "Win32_ComputerSystem", return_value=[]), patch.object(
|
||||||
|
WMI, "Win32_OperatingSystem", return_value=mock
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_BIOS", return_value=[]
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_TimeZone", return_value=[]
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_ComputerSystemProduct", return_value=[]
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_BaseBoard", return_value=[]
|
||||||
|
), patch(
|
||||||
|
"platform.version", return_value=platform_version
|
||||||
|
), patch(
|
||||||
|
"salt.utils.win_osinfo.get_join_info", return_value=os_version_info
|
||||||
|
):
|
||||||
|
result = core._windows_platform_data()
|
||||||
|
assert result["kernelrelease"] == "10.0.22631"
|
||||||
|
assert result["osfullname"] == "Microsoft Windows 11 Enterprise"
|
||||||
|
assert result["osmanufacturer"] == "Microsoft Corporation"
|
||||||
|
assert result["osrelease"] == "11"
|
||||||
|
assert result["osversion"] == "10.0.22631"
|
||||||
|
|
||||||
|
|
||||||
|
def test__windows_platform_data_bios():
|
||||||
|
mock = [
|
||||||
|
MagicMock(
|
||||||
|
Name="11.22.33",
|
||||||
|
Version="DELL - 1072009",
|
||||||
|
SerialNumber="BCF3H13",
|
||||||
|
)
|
||||||
|
]
|
||||||
|
|
||||||
|
WMI = Mock()
|
||||||
|
platform_version = "1.2.3"
|
||||||
|
os_version_info = {"Domain": "test", "DomainType": "test_type"}
|
||||||
|
with patch("salt.utils.winapi.Com", MagicMock()), patch.object(
|
||||||
|
wmi, "WMI", Mock(return_value=WMI)
|
||||||
|
), patch.object(WMI, "Win32_ComputerSystem", return_value=[]), patch.object(
|
||||||
|
WMI, "Win32_OperatingSystem", return_value=[]
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_BIOS", return_value=mock
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_TimeZone", return_value=[]
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_ComputerSystemProduct", return_value=[]
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_BaseBoard", return_value=[]
|
||||||
|
), patch(
|
||||||
|
"platform.version", return_value=platform_version
|
||||||
|
), patch(
|
||||||
|
"salt.utils.win_osinfo.get_join_info", return_value=os_version_info
|
||||||
|
):
|
||||||
|
result = core._windows_platform_data()
|
||||||
|
assert result["biosversion"] == "11.22.33"
|
||||||
|
assert result["biosstring"] == "DELL - 1072009"
|
||||||
|
assert result["serialnumber"] == "BCF3H13"
|
||||||
|
|
||||||
|
|
||||||
|
def test__windows_platform_data_timezone():
|
||||||
|
mock = [
|
||||||
|
MagicMock(
|
||||||
|
Description="(UTC-07:00) Mountain Time (US & Canada)",
|
||||||
|
)
|
||||||
|
]
|
||||||
|
|
||||||
|
WMI = Mock()
|
||||||
|
platform_version = "1.2.3"
|
||||||
|
os_version_info = {"Domain": "test", "DomainType": "test_type"}
|
||||||
|
with patch("salt.utils.winapi.Com", MagicMock()), patch.object(
|
||||||
|
wmi, "WMI", Mock(return_value=WMI)
|
||||||
|
), patch.object(WMI, "Win32_ComputerSystem", return_value=[]), patch.object(
|
||||||
|
WMI, "Win32_OperatingSystem", return_value=[]
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_BIOS", return_value=[]
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_TimeZone", return_value=mock
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_ComputerSystemProduct", return_value=[]
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_BaseBoard", return_value=[]
|
||||||
|
), patch(
|
||||||
|
"platform.version", return_value=platform_version
|
||||||
|
), patch(
|
||||||
|
"salt.utils.win_osinfo.get_join_info", return_value=os_version_info
|
||||||
|
):
|
||||||
|
result = core._windows_platform_data()
|
||||||
|
assert result["timezone"] == "(UTC-07:00) Mountain Time (US & Canada)"
|
||||||
|
|
||||||
|
|
||||||
|
def test__windows_platform_data_computer_system_product():
|
||||||
|
mock = [
|
||||||
|
MagicMock(
|
||||||
|
UUID="4C4C4544-0043-4610-8030-C2C04F483033",
|
||||||
|
)
|
||||||
|
]
|
||||||
|
|
||||||
|
WMI = Mock()
|
||||||
|
platform_version = "1.2.3"
|
||||||
|
os_version_info = {"Domain": "test", "DomainType": "test_type"}
|
||||||
|
with patch("salt.utils.winapi.Com", MagicMock()), patch.object(
|
||||||
|
wmi, "WMI", Mock(return_value=WMI)
|
||||||
|
), patch.object(WMI, "Win32_ComputerSystem", return_value=[]), patch.object(
|
||||||
|
WMI, "Win32_OperatingSystem", return_value=[]
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_BIOS", return_value=[]
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_TimeZone", return_value=[]
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_ComputerSystemProduct", return_value=mock
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_BaseBoard", return_value=[]
|
||||||
|
), patch(
|
||||||
|
"platform.version", return_value=platform_version
|
||||||
|
), patch(
|
||||||
|
"salt.utils.win_osinfo.get_join_info", return_value=os_version_info
|
||||||
|
):
|
||||||
|
result = core._windows_platform_data()
|
||||||
|
assert result["uuid"] == "4c4c4544-0043-4610-8030-c2c04f483033"
|
||||||
|
|
||||||
|
|
||||||
|
def test__windows_platform_data_baseboard():
|
||||||
|
mock = [
|
||||||
|
MagicMock(
|
||||||
|
Product="002KVM",
|
||||||
|
SerialNumber="/BCF0H03/CNFCW0097F00TM/",
|
||||||
|
)
|
||||||
|
]
|
||||||
|
|
||||||
|
WMI = Mock()
|
||||||
|
platform_version = "1.2.3"
|
||||||
|
os_version_info = {"Domain": "test", "DomainType": "test_type"}
|
||||||
|
with patch("salt.utils.winapi.Com", MagicMock()), patch.object(
|
||||||
|
wmi, "WMI", Mock(return_value=WMI)
|
||||||
|
), patch.object(WMI, "Win32_ComputerSystem", return_value=[]), patch.object(
|
||||||
|
WMI, "Win32_OperatingSystem", return_value=[]
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_BIOS", return_value=[]
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_TimeZone", return_value=[]
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_ComputerSystemProduct", return_value=[]
|
||||||
|
), patch.object(
|
||||||
|
WMI, "Win32_BaseBoard", return_value=mock
|
||||||
|
), patch(
|
||||||
|
"platform.version", return_value=platform_version
|
||||||
|
), patch(
|
||||||
|
"salt.utils.win_osinfo.get_join_info", return_value=os_version_info
|
||||||
|
):
|
||||||
|
result = core._windows_platform_data()
|
||||||
|
assert result["motherboard"]["productname"] == "002KVM"
|
||||||
|
assert result["motherboard"]["serialnumber"] == "/BCF0H03/CNFCW0097F00TM/"
|
|
@ -1,3 +1,5 @@
|
||||||
|
import logging
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
import salt.modules.win_file as win_file
|
import salt.modules.win_file as win_file
|
||||||
|
@ -158,11 +160,14 @@ def test_set_value_log_messages(caplog):
|
||||||
mock_set_file_data = MagicMock(return_value=True)
|
mock_set_file_data = MagicMock(return_value=True)
|
||||||
mock_set_pol_data = MagicMock(return_value=False)
|
mock_set_pol_data = MagicMock(return_value=False)
|
||||||
mock_context = {"lgpo.adv_audit_data": {"test_option": "test_value"}}
|
mock_context = {"lgpo.adv_audit_data": {"test_option": "test_value"}}
|
||||||
with patch.object(
|
with caplog.at_level(logging.DEBUG):
|
||||||
win_lgpo, "_set_advaudit_file_data", mock_set_file_data
|
with patch.object(
|
||||||
), patch.object(win_lgpo, "_set_advaudit_pol_data", mock_set_pol_data), patch.dict(
|
win_lgpo, "_set_advaudit_file_data", mock_set_file_data
|
||||||
win_lgpo.__context__, mock_context
|
), patch.object(
|
||||||
):
|
win_lgpo, "_set_advaudit_pol_data", mock_set_pol_data
|
||||||
win_lgpo._set_advaudit_value("test_option", None)
|
), patch.dict(
|
||||||
assert "Failed to apply audit setting:" in caplog.text
|
win_lgpo.__context__, mock_context
|
||||||
|
):
|
||||||
|
win_lgpo._set_advaudit_value("test_option", None)
|
||||||
|
assert "Failed to apply audit setting:" in caplog.text
|
||||||
assert "LGPO: Removing Advanced Audit data:" in caplog.text
|
assert "LGPO: Removing Advanced Audit data:" in caplog.text
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
import logging
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
import salt.modules.cmdmod as cmd
|
import salt.modules.cmdmod as cmd
|
||||||
|
@ -69,15 +71,17 @@ def test_write_secedit_data_import_fail(caplog):
|
||||||
patch_cmd_retcode = patch.dict(
|
patch_cmd_retcode = patch.dict(
|
||||||
win_lgpo.__salt__, {"cmd.retcode": MagicMock(return_value=1)}
|
win_lgpo.__salt__, {"cmd.retcode": MagicMock(return_value=1)}
|
||||||
)
|
)
|
||||||
with patch_cmd_retcode:
|
with caplog.at_level(logging.DEBUG):
|
||||||
assert win_lgpo._write_secedit_data("spongebob") is False
|
with patch_cmd_retcode:
|
||||||
assert "Secedit failed to import template data" in caplog.text
|
assert win_lgpo._write_secedit_data("spongebob") is False
|
||||||
|
assert "Secedit failed to import template data" in caplog.text
|
||||||
|
|
||||||
|
|
||||||
def test_write_secedit_data_configure_fail(caplog):
|
def test_write_secedit_data_configure_fail(caplog):
|
||||||
patch_cmd_retcode = patch.dict(
|
patch_cmd_retcode = patch.dict(
|
||||||
win_lgpo.__salt__, {"cmd.retcode": MagicMock(side_effect=[0, 1])}
|
win_lgpo.__salt__, {"cmd.retcode": MagicMock(side_effect=[0, 1])}
|
||||||
)
|
)
|
||||||
with patch_cmd_retcode:
|
with caplog.at_level(logging.DEBUG):
|
||||||
assert win_lgpo._write_secedit_data("spongebob") is False
|
with patch_cmd_retcode:
|
||||||
assert "Secedit failed to apply security database" in caplog.text
|
assert win_lgpo._write_secedit_data("spongebob") is False
|
||||||
|
assert "Secedit failed to apply security database" in caplog.text
|
||||||
|
|
|
@ -42,10 +42,11 @@ def test_format_log_list(caplog):
|
||||||
"""
|
"""
|
||||||
Test running format_log when ret is not a dictionary
|
Test running format_log when ret is not a dictionary
|
||||||
"""
|
"""
|
||||||
ret = ["test1", "test2"]
|
with caplog.at_level(logging.INFO):
|
||||||
salt.state.format_log(ret)
|
ret = ["test1", "test2"]
|
||||||
assert "INFO" in caplog.text
|
salt.state.format_log(ret)
|
||||||
assert f"{ret}" in caplog.text
|
assert "INFO" in caplog.text
|
||||||
|
assert f"{ret}" in caplog.text
|
||||||
|
|
||||||
|
|
||||||
def test_render_error_on_invalid_requisite(minion_opts):
|
def test_render_error_on_invalid_requisite(minion_opts):
|
||||||
|
|
Loading…
Add table
Reference in a new issue