pyntcli 0.1.46__py3-none-any.whl → 0.1.48__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py +74 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py +24 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py +74 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py +24 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py +74 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py +24 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py +74 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py +24 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py +74 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py +24 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py +74 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py +24 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py +74 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py +24 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/pyntcli/__init__.py +1 -1
- build/lib/tests/auth/test_login.py +96 -0
- build/lib/tests/store/test_cred_store.py +11 -0
- pyntcli/__init__.py +1 -1
- pyntcli/auth/login.py +3 -0
- pyntcli/commands/postman.py +4 -0
- pyntcli/commands/root.py +1 -0
- pyntcli/pynt_docker/pynt_container.py +10 -2
- {pyntcli-0.1.46.dist-info → pyntcli-0.1.48.dist-info}/METADATA +1 -1
- pyntcli-0.1.48.dist-info/RECORD +127 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/pyntcli/transport/__init__.py +0 -0
- build/lib/build/lib/pyntcli/transport/pynt_requests.py +0 -54
- build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/pyntcli/auth/login.py +0 -156
- build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/pyntcli/commands/har.py +0 -67
- build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/pyntcli/commands/root.py +0 -58
- build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/pyntcli/commands/util.py +0 -71
- build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/pyntcli/store/store.py +0 -58
- build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/pyntcli/transport/__init__.py +0 -0
- build/lib/pyntcli/transport/pynt_requests.py +0 -54
- build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/pyntcli/ui/report.py +0 -62
- build/lib/pyntcli/ui/ui_thread.py +0 -172
- pyntcli-0.1.46.dist-info/RECORD +0 -349
- {pyntcli-0.1.46.dist-info → pyntcli-0.1.48.dist-info}/WHEEL +0 -0
- {pyntcli-0.1.46.dist-info → pyntcli-0.1.48.dist-info}/entry_points.txt +0 -0
- {pyntcli-0.1.46.dist-info → pyntcli-0.1.48.dist-info}/top_level.txt +0 -0
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
from threading import Thread
|
|
2
|
-
import queue
|
|
3
|
-
import os
|
|
4
|
-
import time
|
|
5
|
-
from rich.text import Text
|
|
6
|
-
from rich.console import Console
|
|
7
|
-
from rich.status import Status
|
|
8
|
-
from rich.progress import Progress
|
|
9
|
-
from typing import Tuple
|
|
10
|
-
|
|
11
|
-
from pyntcli import __version__ as cli_version
|
|
12
|
-
from pyntcli.ui.progress import PyntProgress
|
|
13
|
-
|
|
14
|
-
class PrinterText():
|
|
15
|
-
DEFAULT = 0
|
|
16
|
-
HEADER = 1
|
|
17
|
-
INFO = 2
|
|
18
|
-
WARNING = 3
|
|
19
|
-
|
|
20
|
-
def __init__(self,text,style=DEFAULT):
|
|
21
|
-
self.text = Text(text, PrinterText.get_style(style))
|
|
22
|
-
|
|
23
|
-
@staticmethod
|
|
24
|
-
def get_style(style):
|
|
25
|
-
if style == PrinterText.INFO:
|
|
26
|
-
return "bold blue"
|
|
27
|
-
if style == PrinterText.WARNING:
|
|
28
|
-
return "bold red"
|
|
29
|
-
if style == PrinterText.HEADER:
|
|
30
|
-
return "bold"
|
|
31
|
-
if style == PrinterText.DEFAULT:
|
|
32
|
-
return None
|
|
33
|
-
|
|
34
|
-
def with_line(self, line, style=DEFAULT):
|
|
35
|
-
self.text.append(os.linesep)
|
|
36
|
-
self.text.append(Text(line, PrinterText.get_style(style)))
|
|
37
|
-
return self
|
|
38
|
-
|
|
39
|
-
class AnsiText():
|
|
40
|
-
def __init__(self, data) -> None:
|
|
41
|
-
self.data = data
|
|
42
|
-
|
|
43
|
-
@staticmethod
|
|
44
|
-
def wrap_gen(gen):
|
|
45
|
-
for v in gen:
|
|
46
|
-
yield AnsiText(v)
|
|
47
|
-
|
|
48
|
-
class Spinner():
|
|
49
|
-
def __init__(self, prompt, style) -> None:
|
|
50
|
-
self.prompt = prompt
|
|
51
|
-
self.style = style
|
|
52
|
-
self.runnning = False
|
|
53
|
-
|
|
54
|
-
def __enter__(self):
|
|
55
|
-
return self
|
|
56
|
-
|
|
57
|
-
def __exit__(self, exc_type, exc_value, exc_traceback):
|
|
58
|
-
self.running = False
|
|
59
|
-
|
|
60
|
-
def pynt_version()-> Tuple[str,int]:
|
|
61
|
-
return "Pynt CLI version " + cli_version,PrinterText.DEFAULT
|
|
62
|
-
|
|
63
|
-
def pynt_header()-> Tuple[str,int]:
|
|
64
|
-
return "API Security testing autopilot",PrinterText.DEFAULT
|
|
65
|
-
|
|
66
|
-
def gen_func_loop(gen):
|
|
67
|
-
for l in gen:
|
|
68
|
-
data = l
|
|
69
|
-
if type(data) == bytes:
|
|
70
|
-
data = l.decode("utf-8")
|
|
71
|
-
if not isinstance(data, AnsiText) and data[-1] == "\n":
|
|
72
|
-
data = data[:-1]
|
|
73
|
-
_print(data)
|
|
74
|
-
|
|
75
|
-
def print_generator(gen):
|
|
76
|
-
t = Thread(target=gen_func_loop, args=(gen,), daemon=True)
|
|
77
|
-
t.start()
|
|
78
|
-
|
|
79
|
-
def _print(s):
|
|
80
|
-
Printer.instance().print(s)
|
|
81
|
-
|
|
82
|
-
def print(s):
|
|
83
|
-
if type(s) == bytes:
|
|
84
|
-
s = s.decode("utf-8")
|
|
85
|
-
_print(s)
|
|
86
|
-
|
|
87
|
-
def stop():
|
|
88
|
-
Printer.instance().stop()
|
|
89
|
-
|
|
90
|
-
class Printer():
|
|
91
|
-
_instace = None
|
|
92
|
-
|
|
93
|
-
def __init__(self) -> None:
|
|
94
|
-
self.running = False
|
|
95
|
-
self.run_thread = Thread(target=self._print_in_loop, daemon=True)
|
|
96
|
-
self.print_queue = queue.Queue()
|
|
97
|
-
self.console = Console(tab_size=4)
|
|
98
|
-
|
|
99
|
-
@staticmethod
|
|
100
|
-
def instance():
|
|
101
|
-
if not Printer._instace:
|
|
102
|
-
Printer._instace = Printer()
|
|
103
|
-
Printer._instace.start()
|
|
104
|
-
|
|
105
|
-
return Printer._instace
|
|
106
|
-
|
|
107
|
-
def start(self):
|
|
108
|
-
self.running = True
|
|
109
|
-
self.run_thread.start()
|
|
110
|
-
|
|
111
|
-
def _handle_spinner(self, spinner):
|
|
112
|
-
spinner.running = True
|
|
113
|
-
s = Status(spinner.prompt, spinner=spinner.style, console=self.console)
|
|
114
|
-
s.start()
|
|
115
|
-
while spinner.running and self.running:
|
|
116
|
-
time.sleep(0.5)
|
|
117
|
-
s.stop()
|
|
118
|
-
|
|
119
|
-
def _handle_progress(self, progress):
|
|
120
|
-
if not progress.trackable:
|
|
121
|
-
return
|
|
122
|
-
progress.running = True
|
|
123
|
-
with Progress(console=self.console, transient=True) as p:
|
|
124
|
-
t = p.add_task(description=progress.description, total=progress.total)
|
|
125
|
-
for update in progress.trackable:
|
|
126
|
-
if not (progress.running and self.running):
|
|
127
|
-
return
|
|
128
|
-
p.update(t, advance=update)
|
|
129
|
-
time.sleep(0.5)
|
|
130
|
-
|
|
131
|
-
def _print_in_loop(self):
|
|
132
|
-
while self.running:
|
|
133
|
-
try:
|
|
134
|
-
data = self.print_queue.get(timeout=1)
|
|
135
|
-
if isinstance(data, list):
|
|
136
|
-
data = data[0]
|
|
137
|
-
if isinstance(data, Spinner):
|
|
138
|
-
self._handle_spinner(data)
|
|
139
|
-
continue
|
|
140
|
-
if isinstance(data, PyntProgress):
|
|
141
|
-
self._handle_progress(data)
|
|
142
|
-
continue
|
|
143
|
-
else:
|
|
144
|
-
self.console.print(data)
|
|
145
|
-
except queue.Empty:
|
|
146
|
-
pass
|
|
147
|
-
|
|
148
|
-
while not self.print_queue.empty():
|
|
149
|
-
self.console.print(self.print_queue.get())
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
def print(self, data):
|
|
153
|
-
if isinstance(data,PrinterText):
|
|
154
|
-
data = data.text
|
|
155
|
-
if isinstance(data, AnsiText):
|
|
156
|
-
data = Text.from_ansi(data.data.decode())
|
|
157
|
-
self.print_queue.put(data)
|
|
158
|
-
|
|
159
|
-
def stop(self):
|
|
160
|
-
self.running = False
|
|
161
|
-
self.run_thread.join()
|
|
162
|
-
|
|
163
|
-
def spinner(prompt, style):
|
|
164
|
-
s = Spinner(prompt, style)
|
|
165
|
-
_print([s])
|
|
166
|
-
return s
|
|
167
|
-
|
|
168
|
-
def progress(what_to_track,healthcheck, description, total=100):
|
|
169
|
-
pointer_to_progress = [PyntProgress(what_to_track,healthcheck, total, description)]
|
|
170
|
-
_print(pointer_to_progress)
|
|
171
|
-
return pointer_to_progress[0]
|
|
172
|
-
|
|
File without changes
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import requests
|
|
2
|
-
import time
|
|
3
|
-
import platform
|
|
4
|
-
|
|
5
|
-
from pyntcli import __version__
|
|
6
|
-
from pyntcli.transport import pynt_requests
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
PYNT_DEFAULT_USER_ID = "d9e3b82b-2900-43bf-8c8f-7ffe2f0cda36"
|
|
10
|
-
MIXPANEL_TOKEN = "05c26edb86084bbbb803eed6818cd8aa"
|
|
11
|
-
MIXPANEL_URL = "https://api-eu.mixpanel.com/track?ip=1"
|
|
12
|
-
|
|
13
|
-
def stop():
|
|
14
|
-
if not AnalyticsSender._instance:
|
|
15
|
-
return
|
|
16
|
-
AnalyticsSender.instance().done()
|
|
17
|
-
|
|
18
|
-
def emit(event, properties=None):
|
|
19
|
-
AnalyticsSender.instance().emit(event, properties)
|
|
20
|
-
|
|
21
|
-
def set_user_id(user_id):
|
|
22
|
-
AnalyticsSender.instance().set_user_id(user_id)
|
|
23
|
-
|
|
24
|
-
CLI_START = "cli_start"
|
|
25
|
-
LOGIN_START = "cli_login_start"
|
|
26
|
-
LOGIN_DONE = "cli_login_done"
|
|
27
|
-
ERROR = "error"
|
|
28
|
-
|
|
29
|
-
class AnalyticsSender():
|
|
30
|
-
_instance = None
|
|
31
|
-
|
|
32
|
-
def __init__(self, user_id=PYNT_DEFAULT_USER_ID) -> None:
|
|
33
|
-
self.user_id = user_id
|
|
34
|
-
self.version = __version__
|
|
35
|
-
self.events = []
|
|
36
|
-
|
|
37
|
-
@staticmethod
|
|
38
|
-
def instance():
|
|
39
|
-
if not AnalyticsSender._instance:
|
|
40
|
-
AnalyticsSender._instance = AnalyticsSender()
|
|
41
|
-
|
|
42
|
-
return AnalyticsSender._instance
|
|
43
|
-
|
|
44
|
-
def base_event(self, event_type):
|
|
45
|
-
return {
|
|
46
|
-
"event": event_type,
|
|
47
|
-
"properties": {
|
|
48
|
-
"time": time.time(),
|
|
49
|
-
"distinct_id": self.user_id,
|
|
50
|
-
"$os": platform.platform(),
|
|
51
|
-
"cli_version": self.version,
|
|
52
|
-
"token": MIXPANEL_TOKEN
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
def emit(self, event, properties):
|
|
57
|
-
base_event = self.base_event(event)
|
|
58
|
-
|
|
59
|
-
if properties:
|
|
60
|
-
for k,v in properties.items():
|
|
61
|
-
base_event["properties"][k] = v
|
|
62
|
-
|
|
63
|
-
if self.user_id != PYNT_DEFAULT_USER_ID:
|
|
64
|
-
pynt_requests.post(MIXPANEL_URL, json=[base_event])
|
|
65
|
-
else:
|
|
66
|
-
self.events.append(base_event)
|
|
67
|
-
|
|
68
|
-
def set_user_id(self, user_id):
|
|
69
|
-
self.user_id = user_id
|
|
70
|
-
for i, _ in enumerate(self.events):
|
|
71
|
-
self.events[i]["properties"]["distinct_id"] = user_id
|
|
72
|
-
self.done()
|
|
73
|
-
|
|
74
|
-
def done(self):
|
|
75
|
-
if self.events:
|
|
76
|
-
pynt_requests.post(MIXPANEL_URL, json=self.events)
|
|
77
|
-
self.events = []
|
|
File without changes
|
build/lib/pyntcli/auth/login.py
DELETED
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
from base64 import b64decode
|
|
2
|
-
import webbrowser
|
|
3
|
-
import uuid
|
|
4
|
-
import urllib.parse
|
|
5
|
-
import datetime
|
|
6
|
-
import time
|
|
7
|
-
import json
|
|
8
|
-
import os
|
|
9
|
-
|
|
10
|
-
from pyntcli.ui import ui_thread
|
|
11
|
-
from pyntcli.store import CredStore
|
|
12
|
-
from pyntcli.transport import pynt_requests
|
|
13
|
-
|
|
14
|
-
class LoginException(Exception):
|
|
15
|
-
pass
|
|
16
|
-
|
|
17
|
-
class Timeout(LoginException):
|
|
18
|
-
pass
|
|
19
|
-
|
|
20
|
-
class InvalidTokenInEnvVarsException(LoginException):
|
|
21
|
-
pass
|
|
22
|
-
|
|
23
|
-
PYNT_CREDENTIALS = "PYNT_CREDENTIALS"
|
|
24
|
-
|
|
25
|
-
class Login():
|
|
26
|
-
def __init__(self) -> None:
|
|
27
|
-
self.delay = 5
|
|
28
|
-
self.base_authorization_url = "https://pynt.io/login?"
|
|
29
|
-
self.poll_url = "https://n592meacjj.execute-api.us-east-1.amazonaws.com/default/cli_validate_login"
|
|
30
|
-
self.login_wait_period = (60 *3) #3 minutes
|
|
31
|
-
|
|
32
|
-
def create_login_request(self):
|
|
33
|
-
request_id = uuid.uuid4()
|
|
34
|
-
request_url = self.base_authorization_url + urllib.parse.urlencode({"request_id": request_id, "utm_source": "cli"})
|
|
35
|
-
webbrowser.open(request_url)
|
|
36
|
-
|
|
37
|
-
ui_thread.print(ui_thread.PrinterText("To continue, you need to log in to your account.")\
|
|
38
|
-
.with_line("You will now be redirected to the login page.") \
|
|
39
|
-
.with_line("") \
|
|
40
|
-
.with_line("If you are not automatically redirected, please click on the link provided below (or copy to your web browser)") \
|
|
41
|
-
.with_line(request_url))
|
|
42
|
-
return request_id
|
|
43
|
-
|
|
44
|
-
def get_token_using_request_id(self, request_id):
|
|
45
|
-
with ui_thread.spinner("Waiting...", "point"):
|
|
46
|
-
start = time.time()
|
|
47
|
-
while start + self.login_wait_period > time.time():
|
|
48
|
-
response = pynt_requests.get(self.poll_url, params={"request_id": request_id})
|
|
49
|
-
if response.status_code == 200:
|
|
50
|
-
return response.json()
|
|
51
|
-
time.sleep(self.delay)
|
|
52
|
-
raise Timeout()
|
|
53
|
-
|
|
54
|
-
def login(self):
|
|
55
|
-
id = self.create_login_request()
|
|
56
|
-
token = self.get_token_using_request_id(id)
|
|
57
|
-
with CredStore() as store:
|
|
58
|
-
store.put("token", token)
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
def refresh_request(refresh_token):
|
|
62
|
-
return pynt_requests.post("https://auth.pynt.io/default/refresh", json={"refresh_token": refresh_token})
|
|
63
|
-
|
|
64
|
-
def refresh_token():
|
|
65
|
-
token = None
|
|
66
|
-
with CredStore() as store:
|
|
67
|
-
token = store.get("token")
|
|
68
|
-
|
|
69
|
-
if not token:
|
|
70
|
-
Login().login()
|
|
71
|
-
|
|
72
|
-
access_token = token.get("access_token")
|
|
73
|
-
if access_token and not is_jwt_expired(access_token):
|
|
74
|
-
return
|
|
75
|
-
|
|
76
|
-
refresh = token.get("refresh_token", None)
|
|
77
|
-
if not refresh:
|
|
78
|
-
Login().login()
|
|
79
|
-
return
|
|
80
|
-
|
|
81
|
-
refresh_response = refresh_request(refresh)
|
|
82
|
-
if refresh_response.status_code != 200:
|
|
83
|
-
Login().login()
|
|
84
|
-
return
|
|
85
|
-
|
|
86
|
-
with CredStore() as store:
|
|
87
|
-
token["access_token"] = refresh_response.json()["token"]
|
|
88
|
-
store.put("token", token)
|
|
89
|
-
|
|
90
|
-
def decode_jwt(jwt_token):
|
|
91
|
-
splited = jwt_token.split(".")
|
|
92
|
-
if len(splited) != 3:
|
|
93
|
-
return None
|
|
94
|
-
|
|
95
|
-
return json.loads(b64decode(splited[1] + '=' * (-len(splited[1]) % 4)))
|
|
96
|
-
|
|
97
|
-
def user_id():
|
|
98
|
-
with CredStore() as store:
|
|
99
|
-
token = store.get("token")
|
|
100
|
-
if not token:
|
|
101
|
-
return None
|
|
102
|
-
|
|
103
|
-
decoded = decode_jwt(token["access_token"])
|
|
104
|
-
if not decoded:
|
|
105
|
-
return None
|
|
106
|
-
|
|
107
|
-
return decoded.get("sub", None)
|
|
108
|
-
|
|
109
|
-
return None
|
|
110
|
-
|
|
111
|
-
def is_jwt_expired(jwt_token):
|
|
112
|
-
decoded = decode_jwt(jwt_token)
|
|
113
|
-
if not decoded:
|
|
114
|
-
return True
|
|
115
|
-
|
|
116
|
-
exp = decoded.get("exp", None)
|
|
117
|
-
if not exp:
|
|
118
|
-
return True
|
|
119
|
-
|
|
120
|
-
return datetime.datetime.fromtimestamp(exp) < datetime.datetime.now() + datetime.timedelta(minutes=1)
|
|
121
|
-
|
|
122
|
-
def validate_creds_structure(data):
|
|
123
|
-
try:
|
|
124
|
-
creds = json.loads(data.replace("\n", ""))
|
|
125
|
-
token = creds.get("token", None)
|
|
126
|
-
if not token:
|
|
127
|
-
raise InvalidTokenInEnvVarsException()
|
|
128
|
-
if not isinstance(token, dict):
|
|
129
|
-
raise InvalidTokenInEnvVarsException()
|
|
130
|
-
|
|
131
|
-
refresh_token = token.get("refresh_token", None)
|
|
132
|
-
if not refresh_token:
|
|
133
|
-
raise InvalidTokenInEnvVarsException()
|
|
134
|
-
|
|
135
|
-
return token
|
|
136
|
-
except json.JSONDecodeError:
|
|
137
|
-
raise InvalidTokenInEnvVarsException()
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
def should_login():
|
|
141
|
-
env_creds = os.environ.get(PYNT_CREDENTIALS, None)
|
|
142
|
-
if env_creds:
|
|
143
|
-
validated_creds = validate_creds_structure(env_creds)
|
|
144
|
-
with CredStore() as store:
|
|
145
|
-
store.put("token", validated_creds)
|
|
146
|
-
|
|
147
|
-
with CredStore() as store:
|
|
148
|
-
token = store.get("token")
|
|
149
|
-
|
|
150
|
-
if not token or token == store.connector.default_value:
|
|
151
|
-
return True
|
|
152
|
-
|
|
153
|
-
if not token.get("refresh_token"):
|
|
154
|
-
return True
|
|
155
|
-
|
|
156
|
-
return False
|
|
File without changes
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import argparse
|
|
2
|
-
import time
|
|
3
|
-
import os
|
|
4
|
-
from functools import partial
|
|
5
|
-
|
|
6
|
-
from pyntcli.pynt_docker import pynt_container
|
|
7
|
-
from pyntcli.ui import ui_thread
|
|
8
|
-
from pyntcli.ui.progress import PyntProgress
|
|
9
|
-
from pyntcli.commands import sub_command, util
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
def har_usage():
|
|
14
|
-
return ui_thread.PrinterText("Integration with static har file testing") \
|
|
15
|
-
.with_line("") \
|
|
16
|
-
.with_line("Usage:", style=ui_thread.PrinterText.HEADER) \
|
|
17
|
-
.with_line("\tpynt har [OPTIONS]") \
|
|
18
|
-
.with_line("") \
|
|
19
|
-
.with_line("Options:", style=ui_thread.PrinterText.HEADER) \
|
|
20
|
-
.with_line("\t--har - Path to har file") \
|
|
21
|
-
.with_line("\t--reporters output results to json") \
|
|
22
|
-
.with_line("\t--host-ca - path to the CA file in PEM format to enable SSL certificate verification for pynt when running through a VPN.")
|
|
23
|
-
|
|
24
|
-
class HarSubCommand(sub_command.PyntSubCommand):
|
|
25
|
-
def __init__(self, name) -> None:
|
|
26
|
-
super().__init__(name)
|
|
27
|
-
|
|
28
|
-
def usage(self, *args):
|
|
29
|
-
ui_thread.print(har_usage())
|
|
30
|
-
|
|
31
|
-
def add_cmd(self, parent: argparse._SubParsersAction) -> argparse.ArgumentParser:
|
|
32
|
-
har_cmd = parent.add_parser(self.name)
|
|
33
|
-
har_cmd.add_argument("--har", type=str, required=True)
|
|
34
|
-
har_cmd.add_argument("--reporters", action='store_true')
|
|
35
|
-
har_cmd.print_usage = self.usage
|
|
36
|
-
har_cmd.print_help = self.usage
|
|
37
|
-
return har_cmd
|
|
38
|
-
|
|
39
|
-
def run_cmd(self, args: argparse.Namespace):
|
|
40
|
-
port = str(util.find_open_port())
|
|
41
|
-
container = pynt_container.get_container_with_arguments(args, pynt_container.PyntDockerPort(src=port, dest=port, name="--port"))
|
|
42
|
-
|
|
43
|
-
if not os.path.isfile(args.har):
|
|
44
|
-
ui_thread.print(ui_thread.PrinterText("Could not find the provided har path, please provide with a valid har path", ui_thread.PrinterText.WARNING))
|
|
45
|
-
return
|
|
46
|
-
|
|
47
|
-
har_name = os.path.basename(args.har)
|
|
48
|
-
container.docker_arguments += ["--har", har_name]
|
|
49
|
-
container.mounts.append(pynt_container.create_mount(os.path.abspath(args.har), "/etc/pynt/{}".format(har_name)))
|
|
50
|
-
|
|
51
|
-
with util.create_default_file_mounts(args) as m:
|
|
52
|
-
|
|
53
|
-
container.mounts += m
|
|
54
|
-
|
|
55
|
-
har_docker = pynt_container.PyntContainer(image_name=pynt_container.PYNT_DOCKER_IMAGE,
|
|
56
|
-
tag="har-latest",
|
|
57
|
-
detach=True,
|
|
58
|
-
base_container=container)
|
|
59
|
-
|
|
60
|
-
har_docker.run()
|
|
61
|
-
|
|
62
|
-
healthcheck = partial(util.wait_for_healthcheck, "http://localhost:{}".format(port))
|
|
63
|
-
ui_thread.print_generator(ui_thread.AnsiText.wrap_gen(har_docker.stdout))
|
|
64
|
-
|
|
65
|
-
with ui_thread.progress("ws://localhost:{}/progress".format(port),healthcheck, "scan in progress...",100):
|
|
66
|
-
while har_docker.is_alive():
|
|
67
|
-
time.sleep(1)
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import argparse
|
|
2
|
-
|
|
3
|
-
from pyntcli.store.store import CredStore
|
|
4
|
-
from pyntcli.commands import sub_command
|
|
5
|
-
from pyntcli.ui import ui_thread
|
|
6
|
-
|
|
7
|
-
def pyntid_usage():
|
|
8
|
-
return ui_thread.PrinterText("View your pynt-id to use when running pynt in CI pipeline") \
|
|
9
|
-
.with_line("") \
|
|
10
|
-
.with_line("Usage:",style=ui_thread.PrinterText.HEADER) \
|
|
11
|
-
.with_line("\tpynt pynt-id")
|
|
12
|
-
|
|
13
|
-
class PyntShowIdCommand(sub_command.PyntSubCommand):
|
|
14
|
-
def __init__(self, name) -> None:
|
|
15
|
-
super().__init__(name)
|
|
16
|
-
|
|
17
|
-
def usage(self, *args):
|
|
18
|
-
ui_thread.print(pyntid_usage())
|
|
19
|
-
|
|
20
|
-
def add_cmd(self, parent: argparse._SubParsersAction) -> argparse.ArgumentParser:
|
|
21
|
-
cmd = parent.add_parser(self.name)
|
|
22
|
-
cmd.print_usage = self.usage
|
|
23
|
-
cmd.print_help = self.usage
|
|
24
|
-
return cmd
|
|
25
|
-
|
|
26
|
-
def run_cmd(self, args: argparse.Namespace):
|
|
27
|
-
creds_path = CredStore().get_path()
|
|
28
|
-
ui_thread.print(open(creds_path, "r").read())
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import argparse
|
|
2
|
-
import time
|
|
3
|
-
import os
|
|
4
|
-
from functools import partial
|
|
5
|
-
|
|
6
|
-
from pyntcli.pynt_docker import pynt_container
|
|
7
|
-
from pyntcli.commands import sub_command, util
|
|
8
|
-
from pyntcli.ui import ui_thread
|
|
9
|
-
from pyntcli.ui.progress import PyntProgress
|
|
10
|
-
|
|
11
|
-
def newman_usage():
|
|
12
|
-
return ui_thread.PrinterText("Integration with newman, run scan using postman collection from the CLI") \
|
|
13
|
-
.with_line("") \
|
|
14
|
-
.with_line("Usage:", style=ui_thread.PrinterText.HEADER) \
|
|
15
|
-
.with_line("\tpynt newman [OPTIONS]") \
|
|
16
|
-
.with_line("") \
|
|
17
|
-
.with_line("Options:", style=ui_thread.PrinterText.HEADER) \
|
|
18
|
-
.with_line("\t--collection - Postman collection file name") \
|
|
19
|
-
.with_line("\t--environment - Postman environment file name") \
|
|
20
|
-
.with_line("\t--reporters output results to json") \
|
|
21
|
-
.with_line("\t--host-ca - path to the CA file in PEM format to enable SSL certificate verification for pynt when running through a VPN.")
|
|
22
|
-
|
|
23
|
-
class NewmanSubCommand(sub_command.PyntSubCommand):
|
|
24
|
-
def __init__(self, name) -> None:
|
|
25
|
-
super().__init__(name)
|
|
26
|
-
|
|
27
|
-
def usage(self, *args):
|
|
28
|
-
ui_thread.print(newman_usage())
|
|
29
|
-
|
|
30
|
-
def add_cmd(self, parent: argparse._SubParsersAction) -> argparse.ArgumentParser:
|
|
31
|
-
newman_cmd = parent.add_parser(self.name)
|
|
32
|
-
newman_cmd.add_argument("--collection", type=str, required=True)
|
|
33
|
-
newman_cmd.add_argument("--environment", type=str, required=False)
|
|
34
|
-
newman_cmd.add_argument("--reporters", action="store_true",default=False, required=False)
|
|
35
|
-
newman_cmd.print_usage = self.usage
|
|
36
|
-
newman_cmd.print_help = self.usage
|
|
37
|
-
return newman_cmd
|
|
38
|
-
|
|
39
|
-
def run_cmd(self, args: argparse.Namespace):
|
|
40
|
-
port = str(util.find_open_port())
|
|
41
|
-
container = pynt_container.get_container_with_arguments(args, pynt_container.PyntDockerPort(src=port, dest=port, name="--port"))
|
|
42
|
-
|
|
43
|
-
if not os.path.isfile(args.collection):
|
|
44
|
-
ui_thread.print(ui_thread.PrinterText("Could not find the provided collection path, please provide with a valid collection path", ui_thread.PrinterText.WARNING))
|
|
45
|
-
return
|
|
46
|
-
|
|
47
|
-
collection_name = os.path.basename(args.collection)
|
|
48
|
-
container.docker_arguments += ["-c", collection_name]
|
|
49
|
-
container.mounts.append(pynt_container.create_mount(os.path.abspath(args.collection), "/etc/pynt/{}".format(collection_name)))
|
|
50
|
-
|
|
51
|
-
if "environment" in args and args.environment:
|
|
52
|
-
if not os.path.isfile(args.environment):
|
|
53
|
-
ui_thread.print(ui_thread.PrinterText("Could not find the provided environment path, please provide with a valid environment path", ui_thread.PrinterText.WARNING))
|
|
54
|
-
return
|
|
55
|
-
|
|
56
|
-
env_name = os.path.basename(args.environment)
|
|
57
|
-
container.docker_arguments += ["-e", env_name]
|
|
58
|
-
container.mounts.append(pynt_container.create_mount(os.path.abspath(args.environment), "/etc/pynt/{}".format(env_name)))
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
with util.create_default_file_mounts(args) as m:
|
|
62
|
-
|
|
63
|
-
container.mounts += m
|
|
64
|
-
|
|
65
|
-
newman_docker = pynt_container.PyntContainer(image_name=pynt_container.PYNT_DOCKER_IMAGE,
|
|
66
|
-
tag="latest",
|
|
67
|
-
detach=True,
|
|
68
|
-
base_container=container)
|
|
69
|
-
|
|
70
|
-
newman_docker.run()
|
|
71
|
-
|
|
72
|
-
healthcheck = partial(util.wait_for_healthcheck, "http://localhost:{}".format(port))
|
|
73
|
-
ui_thread.print_generator(ui_thread.AnsiText.wrap_gen(newman_docker.stdout))
|
|
74
|
-
|
|
75
|
-
with ui_thread.progress("ws://localhost:{}/progress".format(port),healthcheck, "scan in progress...",100):
|
|
76
|
-
while newman_docker.is_alive():
|
|
77
|
-
time.sleep(1)
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import argparse
|
|
2
|
-
import time
|
|
3
|
-
|
|
4
|
-
from . import sub_command, util
|
|
5
|
-
from pyntcli.pynt_docker import pynt_container
|
|
6
|
-
from pyntcli.ui import ui_thread
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
def postman_usage():
|
|
10
|
-
return ui_thread.PrinterText("Integration with postman, run scan from pynt postman collection") \
|
|
11
|
-
.with_line("") \
|
|
12
|
-
.with_line("Usage:",style=ui_thread.PrinterText.HEADER) \
|
|
13
|
-
.with_line("\tpynt postman [OPTIONS]") \
|
|
14
|
-
.with_line("") \
|
|
15
|
-
.with_line("Options:",style=ui_thread.PrinterText.HEADER) \
|
|
16
|
-
.with_line("\t--port - set the port pynt will listen to (DEFAULT: 5001)") \
|
|
17
|
-
.with_line("\t--insecure - use when target uses self signed certificates") \
|
|
18
|
-
.with_line("\t--host-ca - path to the CA file in PEM format to enable SSL certificate verification for pynt when running through a VPN.")
|
|
19
|
-
|
|
20
|
-
class PostmanSubCommand(sub_command.PyntSubCommand):
|
|
21
|
-
def __init__(self, name) -> None:
|
|
22
|
-
super().__init__(name)
|
|
23
|
-
|
|
24
|
-
def usage(self, *args):
|
|
25
|
-
ui_thread.print(postman_usage())
|
|
26
|
-
|
|
27
|
-
def add_cmd(self, parent_command: argparse._SubParsersAction) -> argparse.ArgumentParser:
|
|
28
|
-
postman_cmd = parent_command.add_parser(self.name)
|
|
29
|
-
postman_cmd.add_argument("--port", "-p", help="set the port pynt will listen to (DEFAULT: 5001)", type=int, default=5001)
|
|
30
|
-
postman_cmd.print_usage = self.usage
|
|
31
|
-
postman_cmd.print_help = self.usage
|
|
32
|
-
return postman_cmd
|
|
33
|
-
|
|
34
|
-
def run_cmd(self, args: argparse.Namespace):
|
|
35
|
-
container = pynt_container.get_container_with_arguments(args ,pynt_container.PyntDockerPort("5001", args.port, name="--port"))
|
|
36
|
-
|
|
37
|
-
if util.is_port_in_use(args.port):
|
|
38
|
-
ui_thread.print(ui_thread.PrinterText("Port: {} already in use, please use a different one".format(args.port), ui_thread.PrinterText.WARNING))
|
|
39
|
-
return
|
|
40
|
-
|
|
41
|
-
postman_docker = pynt_container.PyntContainer(image_name=pynt_container.PYNT_DOCKER_IMAGE,
|
|
42
|
-
tag="postman-latest",
|
|
43
|
-
detach=True,
|
|
44
|
-
base_container=container)
|
|
45
|
-
|
|
46
|
-
postman_docker.run()
|
|
47
|
-
ui_thread.print_generator(postman_docker.stdout)
|
|
48
|
-
|
|
49
|
-
while postman_docker.is_alive():
|
|
50
|
-
time.sleep(1)
|