validio-cli 0.26.1__tar.gz → 0.27.0__tar.gz
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.
- {validio_cli-0.26.1 → validio_cli-0.27.0}/PKG-INFO +1 -1
- {validio_cli-0.26.1 → validio_cli-0.27.0}/pyproject.toml +1 -1
- {validio_cli-0.26.1 → validio_cli-0.27.0}/validio_cli/__init__.py +0 -10
- {validio_cli-0.26.1 → validio_cli-0.27.0}/validio_cli/bin/entities/config.py +53 -15
- {validio_cli-0.26.1 → validio_cli-0.27.0}/LICENSE +0 -0
- {validio_cli-0.26.1 → validio_cli-0.27.0}/README_PUBLIC.md +0 -0
- {validio_cli-0.26.1 → validio_cli-0.27.0}/validio_cli/bin/entities/channels.py +0 -0
- {validio_cli-0.26.1 → validio_cli-0.27.0}/validio_cli/bin/entities/code.py +0 -0
- {validio_cli-0.26.1 → validio_cli-0.27.0}/validio_cli/bin/entities/credentials.py +0 -0
- {validio_cli-0.26.1 → validio_cli-0.27.0}/validio_cli/bin/entities/dbt.py +0 -0
- {validio_cli-0.26.1 → validio_cli-0.27.0}/validio_cli/bin/entities/filters.py +0 -0
- {validio_cli-0.26.1 → validio_cli-0.27.0}/validio_cli/bin/entities/incidents.py +0 -0
- {validio_cli-0.26.1 → validio_cli-0.27.0}/validio_cli/bin/entities/metrics.py +0 -0
- {validio_cli-0.26.1 → validio_cli-0.27.0}/validio_cli/bin/entities/namespaces.py +0 -0
- {validio_cli-0.26.1 → validio_cli-0.27.0}/validio_cli/bin/entities/notification_rules.py +0 -0
- {validio_cli-0.26.1 → validio_cli-0.27.0}/validio_cli/bin/entities/recommendations.py +0 -0
- {validio_cli-0.26.1 → validio_cli-0.27.0}/validio_cli/bin/entities/resources.py +0 -0
- {validio_cli-0.26.1 → validio_cli-0.27.0}/validio_cli/bin/entities/segmentations.py +0 -0
- {validio_cli-0.26.1 → validio_cli-0.27.0}/validio_cli/bin/entities/segments.py +0 -0
- {validio_cli-0.26.1 → validio_cli-0.27.0}/validio_cli/bin/entities/sources.py +0 -0
- {validio_cli-0.26.1 → validio_cli-0.27.0}/validio_cli/bin/entities/users.py +0 -0
- {validio_cli-0.26.1 → validio_cli-0.27.0}/validio_cli/bin/entities/validators.py +0 -0
- {validio_cli-0.26.1 → validio_cli-0.27.0}/validio_cli/bin/entities/windows.py +0 -0
- {validio_cli-0.26.1 → validio_cli-0.27.0}/validio_cli/bin/main.py +0 -0
- {validio_cli-0.26.1 → validio_cli-0.27.0}/validio_cli/components.py +0 -0
- {validio_cli-0.26.1 → validio_cli-0.27.0}/validio_cli/metadata.py +0 -0
- {validio_cli-0.26.1 → validio_cli-0.27.0}/validio_cli/namespace.py +0 -0
- {validio_cli-0.26.1 → validio_cli-0.27.0}/validio_cli/schema.py +0 -0
|
@@ -3,7 +3,7 @@ name = "validio-cli"
|
|
|
3
3
|
# This version does not represent the released version or any tag. For each
|
|
4
4
|
# release we automatically bump this before building and publishing so this
|
|
5
5
|
# should be kept at 0.0.1dev1
|
|
6
|
-
version = "0.
|
|
6
|
+
version = "0.27.0"
|
|
7
7
|
description = "CLI tool to interact with the Validio platform"
|
|
8
8
|
authors = ["Validio <support@validio.io>"]
|
|
9
9
|
license = "Apache-2.0"
|
|
@@ -18,7 +18,6 @@ from validio_sdk import config
|
|
|
18
18
|
from validio_sdk._api.api import APIClient
|
|
19
19
|
from validio_sdk.config import Config, ValidioConfig
|
|
20
20
|
from validio_sdk.util import ClassJSONEncoder
|
|
21
|
-
from validio_sdk.validio_client import ValidioAPIClient
|
|
22
21
|
|
|
23
22
|
F = TypeVar("F", bound=Callable[..., Any])
|
|
24
23
|
T = TypeVar("T", bound="OutputSettings")
|
|
@@ -101,15 +100,6 @@ def get_client(
|
|
|
101
100
|
return APIClient(config=cfg), cfg
|
|
102
101
|
|
|
103
102
|
|
|
104
|
-
async def get_client_and_config(
|
|
105
|
-
config_dir: str = ConfigDir,
|
|
106
|
-
) -> tuple[ValidioAPIClient, ValidioConfig]:
|
|
107
|
-
cfg = Config(Path(config_dir)).read()
|
|
108
|
-
vc = ValidioAPIClient(validio_config=cfg)
|
|
109
|
-
|
|
110
|
-
return vc, cfg
|
|
111
|
-
|
|
112
|
-
|
|
113
103
|
@dataclass
|
|
114
104
|
class OutputSettings:
|
|
115
105
|
attribute_name: str | None = None
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from pathlib import Path
|
|
2
2
|
from typing import Any
|
|
3
|
+
from urllib.parse import urlparse
|
|
3
4
|
|
|
4
5
|
import typer
|
|
5
6
|
from prompt_toolkit import PromptSession
|
|
@@ -13,6 +14,7 @@ from validio_sdk.config import (
|
|
|
13
14
|
ConfigNotFoundError,
|
|
14
15
|
ValidioConfig,
|
|
15
16
|
)
|
|
17
|
+
from validio_sdk.exception import _show_trace
|
|
16
18
|
|
|
17
19
|
import validio_cli
|
|
18
20
|
from validio_cli import (
|
|
@@ -35,7 +37,11 @@ async def init(config_dir: str = ConfigDir) -> None:
|
|
|
35
37
|
|
|
36
38
|
current_config = cfg.read() if cfg.config_path.is_file() else None
|
|
37
39
|
|
|
40
|
+
print("Address to Validio, should start with 'https://' and usually have no path")
|
|
41
|
+
print("Example: https://my-company.validio.io\n")
|
|
42
|
+
|
|
38
43
|
while True:
|
|
44
|
+
print("-" * 50)
|
|
39
45
|
current_config = await _prompt_for_config(current_config)
|
|
40
46
|
|
|
41
47
|
print()
|
|
@@ -53,8 +59,7 @@ async def init(config_dir: str = ConfigDir) -> None:
|
|
|
53
59
|
if failure_reason is None:
|
|
54
60
|
break
|
|
55
61
|
|
|
56
|
-
print(f"\n
|
|
57
|
-
print("Please correct the configuration\n")
|
|
62
|
+
print(f"\n{failure_reason}\n")
|
|
58
63
|
|
|
59
64
|
cfg.write(current_config)
|
|
60
65
|
|
|
@@ -150,20 +155,44 @@ async def _prompt_for_config(current_config: ValidioConfig | None) -> ValidioCon
|
|
|
150
155
|
endpoint_completer = WordCompleter(["http://localhost:8889"])
|
|
151
156
|
|
|
152
157
|
session: PromptSession = PromptSession()
|
|
153
|
-
current_config.endpoint = (
|
|
154
|
-
await session.prompt_async(
|
|
155
|
-
validio_cli._fixed_width("Validio endpoint URI"),
|
|
156
|
-
completer=endpoint_completer,
|
|
157
|
-
default=current_config.endpoint,
|
|
158
|
-
)
|
|
159
|
-
).strip()
|
|
160
158
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
159
|
+
while True:
|
|
160
|
+
validio_endpoint = (
|
|
161
|
+
(
|
|
162
|
+
await session.prompt_async(
|
|
163
|
+
validio_cli._fixed_width("Validio URL"),
|
|
164
|
+
completer=endpoint_completer,
|
|
165
|
+
default=current_config.endpoint,
|
|
166
|
+
)
|
|
167
|
+
)
|
|
168
|
+
.strip()
|
|
169
|
+
.strip("/")
|
|
165
170
|
)
|
|
166
|
-
|
|
171
|
+
|
|
172
|
+
current_config.endpoint = validio_endpoint
|
|
173
|
+
|
|
174
|
+
try:
|
|
175
|
+
result = urlparse(validio_endpoint)
|
|
176
|
+
assert all([result.scheme, result.netloc])
|
|
177
|
+
|
|
178
|
+
break
|
|
179
|
+
except Exception:
|
|
180
|
+
print("\nValidio URL must be a valid URL")
|
|
181
|
+
|
|
182
|
+
while True:
|
|
183
|
+
api_key = (
|
|
184
|
+
await session.prompt_async(
|
|
185
|
+
validio_cli._fixed_width("API access key ID"),
|
|
186
|
+
default=current_config.access_key,
|
|
187
|
+
)
|
|
188
|
+
).strip()
|
|
189
|
+
|
|
190
|
+
current_config.access_key = api_key
|
|
191
|
+
|
|
192
|
+
if api_key.startswith("APK_"):
|
|
193
|
+
break
|
|
194
|
+
|
|
195
|
+
print("\nAPI access key ID should start with 'APK_'")
|
|
167
196
|
|
|
168
197
|
current_config.access_secret = (
|
|
169
198
|
await session.prompt_async(
|
|
@@ -178,4 +207,13 @@ async def _prompt_for_config(current_config: ValidioConfig | None) -> ValidioCon
|
|
|
178
207
|
|
|
179
208
|
async def _test_configuration(config: ValidioConfig) -> str | None:
|
|
180
209
|
vc = APIClient(config=config)
|
|
181
|
-
|
|
210
|
+
|
|
211
|
+
try:
|
|
212
|
+
await vc.test_connection()
|
|
213
|
+
except Exception as e:
|
|
214
|
+
if _show_trace():
|
|
215
|
+
raise e
|
|
216
|
+
|
|
217
|
+
return str(e)
|
|
218
|
+
|
|
219
|
+
return None
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|