vantage6 5.0.0a37__py3-none-any.whl → 5.0.0a40__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.
Potentially problematic release.
This version of vantage6 might be problematic. Click here for more details.
- vantage6/cli/algorithm/generate_algorithm_json.py +2 -1
- vantage6/cli/algostore/attach.py +28 -3
- vantage6/cli/algostore/list.py +2 -2
- vantage6/cli/algostore/start.py +11 -3
- vantage6/cli/algostore/version.py +62 -0
- vantage6/cli/auth/attach.py +1 -1
- vantage6/cli/auth/list.py +2 -2
- vantage6/cli/auth/remove.py +58 -0
- vantage6/cli/auth/start.py +12 -8
- vantage6/cli/cli.py +2 -0
- vantage6/cli/common/attach.py +114 -0
- vantage6/cli/common/decorator.py +9 -6
- vantage6/cli/common/list.py +68 -0
- vantage6/cli/common/new.py +3 -2
- vantage6/cli/common/remove.py +18 -0
- vantage6/cli/common/stop.py +6 -11
- vantage6/cli/common/utils.py +44 -76
- vantage6/cli/common/version.py +82 -0
- vantage6/cli/configuration_create.py +3 -2
- vantage6/cli/context/__init__.py +3 -0
- vantage6/cli/context/algorithm_store.py +2 -2
- vantage6/cli/node/attach.py +27 -3
- vantage6/cli/node/common/__init__.py +31 -6
- vantage6/cli/node/create_private_key.py +11 -10
- vantage6/cli/node/list.py +3 -44
- vantage6/cli/node/set_api_key.py +12 -6
- vantage6/cli/node/start.py +11 -3
- vantage6/cli/node/stop.py +13 -15
- vantage6/cli/node/version.py +96 -33
- vantage6/cli/sandbox/config/base.py +10 -2
- vantage6/cli/sandbox/config/core.py +3 -3
- vantage6/cli/sandbox/config/node.py +2 -5
- vantage6/cli/sandbox/remove.py +17 -35
- vantage6/cli/sandbox/start.py +8 -0
- vantage6/cli/sandbox/stop.py +1 -1
- vantage6/cli/server/attach.py +28 -3
- vantage6/cli/server/import_.py +85 -17
- vantage6/cli/server/list.py +2 -2
- vantage6/cli/server/start.py +11 -3
- vantage6/cli/server/version.py +31 -18
- vantage6/cli/template/algo_store_config.j2 +3 -0
- vantage6/cli/template/node_config.j2 +3 -1
- vantage6/cli/use/context.py +8 -1
- vantage6/cli/use/namespace.py +10 -7
- vantage6/cli/utils_kubernetes.py +270 -0
- {vantage6-5.0.0a37.dist-info → vantage6-5.0.0a40.dist-info}/METADATA +3 -3
- {vantage6-5.0.0a37.dist-info → vantage6-5.0.0a40.dist-info}/RECORD +50 -45
- /vantage6/cli/node/{task_cleanup/__init__.py → common/task_cleanup.py} +0 -0
- {vantage6-5.0.0a37.dist-info → vantage6-5.0.0a40.dist-info}/WHEEL +0 -0
- {vantage6-5.0.0a37.dist-info → vantage6-5.0.0a40.dist-info}/entry_points.txt +0 -0
|
@@ -102,6 +102,9 @@ store:
|
|
|
102
102
|
port: 7602
|
|
103
103
|
{% endif %}
|
|
104
104
|
|
|
105
|
+
# The port to expose the store on in the cluster
|
|
106
|
+
port: {{ store.port | default(7602) }}
|
|
107
|
+
|
|
105
108
|
logging:
|
|
106
109
|
# Controls the logging output level. Could be one of the following
|
|
107
110
|
# levels: CRITICAL, ERROR, WARNING, INFO, DEBUG, NOTSET
|
|
@@ -79,6 +79,8 @@ node:
|
|
|
79
79
|
name: engineio.server
|
|
80
80
|
- level: warning
|
|
81
81
|
name: sqlalchemy.engine
|
|
82
|
+
- level: warning
|
|
83
|
+
name: kubernetes.client.rest
|
|
82
84
|
{% endif %}
|
|
83
85
|
|
|
84
86
|
{% if node.encryption is defined %}
|
|
@@ -88,7 +90,7 @@ node:
|
|
|
88
90
|
enabled: {{ node.encryption.enabled | default(false) }}
|
|
89
91
|
|
|
90
92
|
# Location to the private key file. Required if encryption is enabled.
|
|
91
|
-
{% if node.encryption.
|
|
93
|
+
{% if node.encryption.private_key is defined and node.encryption.private_key != '' %}
|
|
92
94
|
private_key: {{ node.encryption.private_key | default('/path/to/private_key.pem') }}
|
|
93
95
|
{% else %}
|
|
94
96
|
# private_key: /path/to/private_key.pem
|
vantage6/cli/use/context.py
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import click
|
|
2
2
|
import questionary
|
|
3
|
-
from kubernetes import config
|
|
3
|
+
from kubernetes import client, config
|
|
4
4
|
|
|
5
5
|
from vantage6.common import error
|
|
6
6
|
|
|
7
7
|
from vantage6.cli.config import CliConfig
|
|
8
8
|
from vantage6.cli.utils import switch_context_and_namespace
|
|
9
|
+
from vantage6.cli.utils_kubernetes import configure_kubernetes_client_for_microk8s
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
@click.command()
|
|
@@ -14,6 +15,12 @@ def cli_use_context(context: str):
|
|
|
14
15
|
"""
|
|
15
16
|
Set which Kubernetes context to use.
|
|
16
17
|
"""
|
|
18
|
+
# Configure for MicroK8s if needed
|
|
19
|
+
config.load_kube_config()
|
|
20
|
+
cfg = client.Configuration.get_default_copy()
|
|
21
|
+
configure_kubernetes_client_for_microk8s(cfg)
|
|
22
|
+
client.Configuration.set_default(cfg)
|
|
23
|
+
|
|
17
24
|
# Get available contexts
|
|
18
25
|
contexts, active_context = config.list_kube_config_contexts()
|
|
19
26
|
context_names = [ctx["name"] for ctx in contexts]
|
vantage6/cli/use/namespace.py
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import click
|
|
2
2
|
import questionary
|
|
3
|
-
from kubernetes import client
|
|
3
|
+
from kubernetes import client
|
|
4
4
|
|
|
5
5
|
from vantage6.common import error
|
|
6
6
|
|
|
7
7
|
from vantage6.cli.config import CliConfig
|
|
8
8
|
from vantage6.cli.utils import switch_context_and_namespace
|
|
9
|
+
from vantage6.cli.utils_kubernetes import (
|
|
10
|
+
get_core_api_with_ssl_handling,
|
|
11
|
+
)
|
|
9
12
|
|
|
10
13
|
|
|
11
14
|
@click.command()
|
|
@@ -16,15 +19,15 @@ def cli_use_namespace(namespace: str):
|
|
|
16
19
|
|
|
17
20
|
The namespace will be created if it does not exist.
|
|
18
21
|
"""
|
|
19
|
-
#
|
|
20
|
-
|
|
22
|
+
# Configure for MicroK8s if needed
|
|
23
|
+
core_api, _ = get_core_api_with_ssl_handling()
|
|
21
24
|
|
|
22
25
|
try:
|
|
23
|
-
|
|
24
|
-
namespace_list = v1.list_namespace()
|
|
26
|
+
namespace_list = core_api.list_namespace()
|
|
25
27
|
except Exception:
|
|
26
28
|
error(
|
|
27
|
-
"Failed to connect to Kubernetes cluster. Check if the cluster is running
|
|
29
|
+
"Failed to connect to Kubernetes cluster. Check if the cluster is running "
|
|
30
|
+
"and reachable."
|
|
28
31
|
)
|
|
29
32
|
return
|
|
30
33
|
|
|
@@ -46,7 +49,7 @@ def cli_use_namespace(namespace: str):
|
|
|
46
49
|
namespace_body = client.V1Namespace(
|
|
47
50
|
metadata=client.V1ObjectMeta(name=namespace)
|
|
48
51
|
)
|
|
49
|
-
|
|
52
|
+
core_api.create_namespace(namespace_body)
|
|
50
53
|
|
|
51
54
|
# Switch to the selected namespace for current context
|
|
52
55
|
switch_context_and_namespace(namespace=namespace)
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Kubernetes utility functions for Vantage6 CLI.
|
|
3
|
+
|
|
4
|
+
This module provides utilities for handling Kubernetes client configuration,
|
|
5
|
+
especially for MicroK8s environments that may have SSL certificate issues.
|
|
6
|
+
|
|
7
|
+
The issue is that the python kubernetes client does not automatically use the
|
|
8
|
+
certificate from microk8s, so it is manually configured in this module. Note that this
|
|
9
|
+
is only an issue for the CLI and not for running nodes/servers/stores/etc., because
|
|
10
|
+
those are started using the `kubectl` command, which includes the microk8scertificate
|
|
11
|
+
automatically.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
import base64
|
|
15
|
+
import ssl
|
|
16
|
+
from pathlib import Path
|
|
17
|
+
|
|
18
|
+
from kubernetes import client, config
|
|
19
|
+
from kubernetes.config.config_exception import ConfigException
|
|
20
|
+
|
|
21
|
+
from vantage6.common import warning
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def configure_kubernetes_client_for_microk8s(cfg: client.Configuration) -> None:
|
|
25
|
+
"""
|
|
26
|
+
Configure the Kubernetes client to handle MicroK8s SSL certificate issues.
|
|
27
|
+
|
|
28
|
+
This function detects if we're using MicroK8s and configures the client
|
|
29
|
+
to handle SSL certificates appropriately for both development and production.
|
|
30
|
+
|
|
31
|
+
Parameters
|
|
32
|
+
----------
|
|
33
|
+
cfg : client.Configuration
|
|
34
|
+
The Kubernetes client configuration to configure
|
|
35
|
+
"""
|
|
36
|
+
# Check if we're using MicroK8s by looking at the current context
|
|
37
|
+
if is_microk8s_context():
|
|
38
|
+
_configure_microk8s_ssl(cfg)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def _configure_microk8s_ssl(cfg: client.Configuration) -> None:
|
|
42
|
+
"""
|
|
43
|
+
Configure SSL settings for MicroK8s.
|
|
44
|
+
|
|
45
|
+
This function handles MicroK8s SSL certificates in a secure way by:
|
|
46
|
+
1. First trying to use the MicroK8s certificate directly
|
|
47
|
+
2. If that fails, falling back to a more lenient but still secure approach
|
|
48
|
+
"""
|
|
49
|
+
try:
|
|
50
|
+
# Try to get the MicroK8s certificate and use it properly
|
|
51
|
+
if cert_path := _get_microk8s_certificate_path():
|
|
52
|
+
_configure_with_certificate(cert_path, cfg)
|
|
53
|
+
else:
|
|
54
|
+
warning(
|
|
55
|
+
"MicroK8s certificate not found. You may run into errors when using "
|
|
56
|
+
"the CLI."
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
except Exception as e:
|
|
60
|
+
warning(f"Could not configure MicroK8s SSL settings: {e}")
|
|
61
|
+
warning("You may run into errors when using the CLI.")
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def _get_microk8s_certificate_path() -> Path | None:
|
|
65
|
+
"""
|
|
66
|
+
Get the path to the MicroK8s certificate.
|
|
67
|
+
|
|
68
|
+
Returns
|
|
69
|
+
-------
|
|
70
|
+
Path | None
|
|
71
|
+
Path to the MicroK8s certificate if found, None otherwise
|
|
72
|
+
"""
|
|
73
|
+
# Common MicroK8s certificate locations
|
|
74
|
+
possible_paths = [
|
|
75
|
+
Path.home() / ".kube" / "microk8s.crt",
|
|
76
|
+
Path("/var/snap/microk8s/current/certs/ca.crt"),
|
|
77
|
+
Path("/var/snap/microk8s/current/certs/server.crt"),
|
|
78
|
+
]
|
|
79
|
+
|
|
80
|
+
for cert_path in possible_paths:
|
|
81
|
+
if cert_path.exists():
|
|
82
|
+
return cert_path
|
|
83
|
+
|
|
84
|
+
return None
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def _configure_with_certificate(cert_path: Path, cfg: client.Configuration) -> None:
|
|
88
|
+
"""
|
|
89
|
+
Configure the Kubernetes client to use a specific certificate.
|
|
90
|
+
|
|
91
|
+
Parameters
|
|
92
|
+
----------
|
|
93
|
+
cert_path : Path
|
|
94
|
+
Path to the certificate file
|
|
95
|
+
"""
|
|
96
|
+
try:
|
|
97
|
+
# Validate the certificate before using it
|
|
98
|
+
if not _validate_certificate(cert_path):
|
|
99
|
+
warning(
|
|
100
|
+
f"Certificate {cert_path} appears to be invalid. You may run into "
|
|
101
|
+
"errors when using the CLI."
|
|
102
|
+
)
|
|
103
|
+
return
|
|
104
|
+
|
|
105
|
+
cfg.verify_ssl = True
|
|
106
|
+
cfg.ssl_ca_cert = str(cert_path)
|
|
107
|
+
|
|
108
|
+
# Apply the configuration to the default client
|
|
109
|
+
client.Configuration.set_default(cfg)
|
|
110
|
+
|
|
111
|
+
except Exception as e:
|
|
112
|
+
warning(f"Failed to configure with certificate {cert_path}: {e}")
|
|
113
|
+
warning("You may run into errors when using the CLI.")
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
def _validate_certificate(cert_path: Path) -> bool:
|
|
117
|
+
"""
|
|
118
|
+
Validate that a certificate file is readable and appears to be a valid certificate.
|
|
119
|
+
|
|
120
|
+
Parameters
|
|
121
|
+
----------
|
|
122
|
+
cert_path : Path
|
|
123
|
+
Path to the certificate file
|
|
124
|
+
|
|
125
|
+
Returns
|
|
126
|
+
-------
|
|
127
|
+
bool
|
|
128
|
+
True if the certificate appears valid, False otherwise
|
|
129
|
+
"""
|
|
130
|
+
try:
|
|
131
|
+
# Check if the file exists and is readable
|
|
132
|
+
if not cert_path.exists() or not cert_path.is_file():
|
|
133
|
+
return False
|
|
134
|
+
|
|
135
|
+
# Try to read the certificate content
|
|
136
|
+
with open(cert_path, "rb") as f:
|
|
137
|
+
cert_data = f.read()
|
|
138
|
+
|
|
139
|
+
# Basic validation: check if it looks like a PEM certificate
|
|
140
|
+
if b"-----BEGIN CERTIFICATE-----" not in cert_data:
|
|
141
|
+
return False
|
|
142
|
+
|
|
143
|
+
# Try to parse the certificate with Python's ssl module
|
|
144
|
+
if _validate_certificate_with_ssl(cert_data):
|
|
145
|
+
return True
|
|
146
|
+
|
|
147
|
+
# If we can't parse it with ssl module, at least check it has the right
|
|
148
|
+
# structure
|
|
149
|
+
return (
|
|
150
|
+
b"-----BEGIN CERTIFICATE-----" in cert_data
|
|
151
|
+
and b"-----END CERTIFICATE-----" in cert_data
|
|
152
|
+
)
|
|
153
|
+
|
|
154
|
+
except Exception as e:
|
|
155
|
+
warning(f"Certificate validation failed: {e}")
|
|
156
|
+
return False
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
def _validate_certificate_with_ssl(cert_data: bytes) -> bool:
|
|
160
|
+
"""
|
|
161
|
+
Validate a certificate with the ssl module.
|
|
162
|
+
|
|
163
|
+
Parameters
|
|
164
|
+
----------
|
|
165
|
+
cert_data : bytes
|
|
166
|
+
The certificate data
|
|
167
|
+
|
|
168
|
+
Returns
|
|
169
|
+
-------
|
|
170
|
+
bool
|
|
171
|
+
True if the certificate appears valid, False otherwise
|
|
172
|
+
"""
|
|
173
|
+
try:
|
|
174
|
+
# Extract the base64 part between BEGIN and END
|
|
175
|
+
start_text = b"-----BEGIN CERTIFICATE-----"
|
|
176
|
+
len_start_text = len(start_text)
|
|
177
|
+
start = cert_data.find(start_text)
|
|
178
|
+
end = cert_data.find(b"-----END CERTIFICATE-----")
|
|
179
|
+
if start != -1 and end != -1:
|
|
180
|
+
cert_b64 = (
|
|
181
|
+
cert_data[start + len_start_text : end]
|
|
182
|
+
.replace(b"\n", b"")
|
|
183
|
+
.replace(b"\r", b"")
|
|
184
|
+
)
|
|
185
|
+
cert_der = base64.b64decode(cert_b64)
|
|
186
|
+
ssl.DER_cert_to_PEM_cert(cert_der)
|
|
187
|
+
return True
|
|
188
|
+
except Exception:
|
|
189
|
+
pass
|
|
190
|
+
return False
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
def load_kubernetes_config_with_fallback() -> bool:
|
|
194
|
+
"""
|
|
195
|
+
Load Kubernetes configuration with fallback for development environments.
|
|
196
|
+
|
|
197
|
+
This function tries to load the Kubernetes configuration and handles
|
|
198
|
+
common issues like SSL certificate problems in development environments.
|
|
199
|
+
|
|
200
|
+
Returns
|
|
201
|
+
-------
|
|
202
|
+
bool
|
|
203
|
+
True if configuration was loaded successfully, False otherwise
|
|
204
|
+
"""
|
|
205
|
+
# Try to load in-cluster config first (for when running inside Kubernetes)
|
|
206
|
+
try:
|
|
207
|
+
config.load_incluster_config()
|
|
208
|
+
return True
|
|
209
|
+
except ConfigException:
|
|
210
|
+
pass
|
|
211
|
+
|
|
212
|
+
# Fallback to kubeconfig
|
|
213
|
+
try:
|
|
214
|
+
# Load kubeconfig into default config, then adjust CA if MicroK8s
|
|
215
|
+
config.load_kube_config()
|
|
216
|
+
cfg = client.Configuration.get_default_copy()
|
|
217
|
+
configure_kubernetes_client_for_microk8s(cfg)
|
|
218
|
+
client.Configuration.set_default(cfg)
|
|
219
|
+
|
|
220
|
+
return True
|
|
221
|
+
except ConfigException as exc:
|
|
222
|
+
warning(f"Failed to load Kubernetes configuration: {exc}")
|
|
223
|
+
return False
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
def create_kubernetes_apis_with_ssl_handling() -> tuple[
|
|
227
|
+
client.CoreV1Api, client.BatchV1Api
|
|
228
|
+
]:
|
|
229
|
+
"""
|
|
230
|
+
Create Kubernetes API clients with SSL handling for development environments.
|
|
231
|
+
|
|
232
|
+
Returns
|
|
233
|
+
-------
|
|
234
|
+
tuple[client.CoreV1Api, client.BatchV1Api]
|
|
235
|
+
Tuple of CoreV1Api and BatchV1Api clients
|
|
236
|
+
"""
|
|
237
|
+
# Load configuration with fallback handling
|
|
238
|
+
if not load_kubernetes_config_with_fallback():
|
|
239
|
+
raise RuntimeError("Failed to load Kubernetes configuration")
|
|
240
|
+
|
|
241
|
+
# Create API clients
|
|
242
|
+
core_api = client.CoreV1Api()
|
|
243
|
+
batch_api = client.BatchV1Api()
|
|
244
|
+
|
|
245
|
+
return core_api, batch_api
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
def get_core_api_with_ssl_handling() -> client.CoreV1Api:
|
|
249
|
+
"""
|
|
250
|
+
Get the CoreV1Api client with SSL handling for development environments.
|
|
251
|
+
"""
|
|
252
|
+
core_api, _ = create_kubernetes_apis_with_ssl_handling()
|
|
253
|
+
return core_api
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
def is_microk8s_context() -> bool:
|
|
257
|
+
"""
|
|
258
|
+
Check if the current Kubernetes context is MicroK8s.
|
|
259
|
+
|
|
260
|
+
Returns
|
|
261
|
+
-------
|
|
262
|
+
bool
|
|
263
|
+
True if using MicroK8s context, False otherwise
|
|
264
|
+
"""
|
|
265
|
+
try:
|
|
266
|
+
_, active_context = config.list_kube_config_contexts()
|
|
267
|
+
current_context = active_context.get("name", "") if active_context else ""
|
|
268
|
+
return "microk8s" in current_context.lower()
|
|
269
|
+
except Exception:
|
|
270
|
+
return False
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: vantage6
|
|
3
|
-
Version: 5.0.
|
|
3
|
+
Version: 5.0.0a40
|
|
4
4
|
Summary: vantage6 command line interface
|
|
5
5
|
Author: Vantage6 Team
|
|
6
6
|
Maintainer-email: Frank Martin <f.martin@iknl.nl>, Bart van Beusekom <b.vanbeusekom@iknl.nl>
|
|
@@ -18,8 +18,8 @@ Requires-Dist: questionary==2.1.1
|
|
|
18
18
|
Requires-Dist: rich==13.5.2
|
|
19
19
|
Requires-Dist: schema==0.7.5
|
|
20
20
|
Requires-Dist: sqlalchemy==2.0.37
|
|
21
|
-
Requires-Dist: vantage6-client==5.0.
|
|
22
|
-
Requires-Dist: vantage6-common==5.0.
|
|
21
|
+
Requires-Dist: vantage6-client==5.0.0a40
|
|
22
|
+
Requires-Dist: vantage6-common==5.0.0a40
|
|
23
23
|
Provides-Extra: dev
|
|
24
24
|
Requires-Dist: black; extra == 'dev'
|
|
25
25
|
Requires-Dist: coverage==7.10.2; extra == 'dev'
|
|
@@ -1,35 +1,40 @@
|
|
|
1
1
|
vantage6/cli/__init__.py,sha256=8KIgMPbZTNdkYlUrB8irpsUA7KdkFdLbNbMKixOP2dE,277
|
|
2
|
-
vantage6/cli/cli.py,sha256=
|
|
2
|
+
vantage6/cli/cli.py,sha256=uEazjKFMpVWP3rQ0FtHNcOg70qYTymoqPqc8dF5saKg,8591
|
|
3
3
|
vantage6/cli/config.py,sha256=vaHNrgJTaAeYLpxfsXOHkYmsI1gLSipkKzyEOPXF1w4,8258
|
|
4
|
-
vantage6/cli/configuration_create.py,sha256=
|
|
4
|
+
vantage6/cli/configuration_create.py,sha256=Q8qnfDZ7gVEPgIqZJNJl4nEqc13ZVJh9K3U-O4XRk_Y,7354
|
|
5
5
|
vantage6/cli/configuration_manager.py,sha256=zsk6dkdUA9zggUeFSkzXrNZ_XkxmQf26_oZsmLYYsu8,8096
|
|
6
6
|
vantage6/cli/globals.py,sha256=VBa49tjuy9KjeF1eKtZre5QSohnWvlI1hsHeDZNMblA,2738
|
|
7
7
|
vantage6/cli/utils.py,sha256=kq1Nv8SJPG5STII9DAcTSR4yCsZcoOvM8rygA5cWa28,5199
|
|
8
|
+
vantage6/cli/utils_kubernetes.py,sha256=zMdarsuWeeZdrDBTczIjC920HadM_5BcOnhOFXBHk0Q,8200
|
|
8
9
|
vantage6/cli/algorithm/create.py,sha256=kRT1BlBcb0fDaB2Q988WxtA6EyAZmOW5QoU2uhbwBIo,2075
|
|
9
|
-
vantage6/cli/algorithm/generate_algorithm_json.py,sha256=
|
|
10
|
+
vantage6/cli/algorithm/generate_algorithm_json.py,sha256=p22wKt3y3J6G8ZQZ7qy5aNe7KppXdY7au9MKsnRWwwU,19525
|
|
10
11
|
vantage6/cli/algorithm/update.py,sha256=oReCQaOQHfZe-o-zTLD2RyjzhwAaXRQkFHyZZ-JUb4s,1338
|
|
11
|
-
vantage6/cli/algostore/attach.py,sha256=
|
|
12
|
+
vantage6/cli/algostore/attach.py,sha256=GoB1pGLDndKGmzNt5jJCck3yH_cnXkNuPKxDNJ_MZz8,1299
|
|
12
13
|
vantage6/cli/algostore/files.py,sha256=oqjdGeoyUdCGfoSLbQA6r7GZtJtzSbXMyvojQ80xVCE,581
|
|
13
|
-
vantage6/cli/algostore/list.py,sha256=
|
|
14
|
+
vantage6/cli/algostore/list.py,sha256=3DJ0HjdmZ8cPFVPmUgtXdzElHsa73o1ulwfy0FxmvNU,312
|
|
14
15
|
vantage6/cli/algostore/new.py,sha256=BZRJcaY6M84MOG7LPJsZWxbcJ3NCFnkTP3fwOkuyC_s,3497
|
|
15
16
|
vantage6/cli/algostore/remove.py,sha256=JsZ1L3qH2k_G3Zei-fhb_dApah91gdJKKv2vfsWK6Os,1006
|
|
16
|
-
vantage6/cli/algostore/start.py,sha256=
|
|
17
|
+
vantage6/cli/algostore/start.py,sha256=EzReZVH5l4KT0Y0cpe_AFs9TzPaoS5t3VUM971cCImw,2818
|
|
17
18
|
vantage6/cli/algostore/stop.py,sha256=azqUa1gp7VqB1JxaeQKX4mhXACASubVN92VNR8vt3eU,1927
|
|
18
|
-
vantage6/cli/
|
|
19
|
+
vantage6/cli/algostore/version.py,sha256=fxSSyS8LZ_Aiihcbi-zUek6Zg_3SAmmkSGLbapHr_GE,1958
|
|
20
|
+
vantage6/cli/auth/attach.py,sha256=d1NjuzcislTeOIKCNK2IbpKT0H8_6X-tI4ZtSvtaz1M,1780
|
|
19
21
|
vantage6/cli/auth/files.py,sha256=zxlZRZ17zpj8JoRIcxBwR7s8FEBO7ehOgw_Hz-qQkwo,448
|
|
20
|
-
vantage6/cli/auth/list.py,sha256=
|
|
22
|
+
vantage6/cli/auth/list.py,sha256=2MQhLXSuK6qanyFnr3y1duny4lDD6mx1B8YD752qfyI,293
|
|
21
23
|
vantage6/cli/auth/new.py,sha256=JFd3DUf-GK3zWHlCO_xl_syZfZ4GAkoGqxtkKyTpm8Y,2167
|
|
22
|
-
vantage6/cli/auth/remove.py,sha256=
|
|
23
|
-
vantage6/cli/auth/start.py,sha256=
|
|
24
|
+
vantage6/cli/auth/remove.py,sha256=664X1gl77RrHpzJo1xYiAmZMw4K6muqhtytYk50iiWs,3105
|
|
25
|
+
vantage6/cli/auth/start.py,sha256=cH5bYvectyliobd6ybpGYf9wI7FyML5-5HS3jsjIyu8,2805
|
|
24
26
|
vantage6/cli/auth/stop.py,sha256=oWy7jDZ45zEyqSzwJr5-T14vp01D1TTcTYWxjXNtJ_U,1882
|
|
25
|
-
vantage6/cli/common/
|
|
26
|
-
vantage6/cli/common/
|
|
27
|
-
vantage6/cli/common/
|
|
27
|
+
vantage6/cli/common/attach.py,sha256=bw9-Q1JjKa_f8Q7-xI5lpI2WoUmlGKZSvULlGoSmnH8,3423
|
|
28
|
+
vantage6/cli/common/decorator.py,sha256=N08qVbEokkV-XYLwEgEYRzjvgauiUdhIygBQqxR-XoM,4693
|
|
29
|
+
vantage6/cli/common/list.py,sha256=j2q6B4k7wX5UMJ0gkuMrkYPl5I3NmkVuV6eV70hM36I,2075
|
|
30
|
+
vantage6/cli/common/new.py,sha256=_srwNExvphy2SImbeFhGxuSsarkztPxxYXMwGMBy7g8,3278
|
|
31
|
+
vantage6/cli/common/remove.py,sha256=q8YOihk5aClvPuw2cADulHrxeXv_0JhqpaNUVH1zhlQ,2206
|
|
28
32
|
vantage6/cli/common/start.py,sha256=kMDjL_sObSkx4TqhnukyD9Jb7vOGXJ9Bo0pJBcxpbsg,10095
|
|
29
|
-
vantage6/cli/common/stop.py,sha256=
|
|
30
|
-
vantage6/cli/common/utils.py,sha256
|
|
31
|
-
vantage6/cli/
|
|
32
|
-
vantage6/cli/context/
|
|
33
|
+
vantage6/cli/common/stop.py,sha256=qIJ1COJWvQlbIpyMqh6ao2WKuXDqPBbU7-wF7IuOgQc,5614
|
|
34
|
+
vantage6/cli/common/utils.py,sha256=-XP-JslNpnveR37v4vwiCgdj4kXOMlluoPJRmNECtFk,11473
|
|
35
|
+
vantage6/cli/common/version.py,sha256=2XPeZm5NMYSqTGjHLUFcRFZZRhtDVLwytQjoDad3utU,2489
|
|
36
|
+
vantage6/cli/context/__init__.py,sha256=umHNotzJjd2TQCela7V8MTUwN4iAKDy8AR4s7ask5Ic,3135
|
|
37
|
+
vantage6/cli/context/algorithm_store.py,sha256=4_lglDDUyIss_H8iKzNAB0qWzCIppua4q-IvPp_i7A0,4332
|
|
33
38
|
vantage6/cli/context/auth.py,sha256=CozmEzFtpL8K3Pq4rEiHl8MMPnCI7vKwmzsPAIF2Szc,3911
|
|
34
39
|
vantage6/cli/context/base_server.py,sha256=vln405k6b4z4L_VIfPCycy7gIfpJs0nqvJa8enl2HsA,2390
|
|
35
40
|
vantage6/cli/context/node.py,sha256=1jjDw3u1Vf0maycEA0lyiBkXrh_qcw2wGLd_b2tnX4k,7972
|
|
@@ -39,28 +44,28 @@ vantage6/cli/dev/common.py,sha256=fiERHE0o2-m0ZAgIbyaZnFhYdeVMddrHiUoiLjmAR8o,92
|
|
|
39
44
|
vantage6/cli/dev/rebuild.py,sha256=3iMIqAxiwdZkx4Q0xQyqcWHvXUzOQT-9cyRuOiulwR8,1290
|
|
40
45
|
vantage6/cli/dev/start.py,sha256=DzFtD_jQaVIIawfPdMwBLjY1E_YOokiWm27oanci8k4,1000
|
|
41
46
|
vantage6/cli/dev/stop.py,sha256=-yrLCadDfeLES9pFJz9yxm33XtzEXpdqvHvwakLQNEE,663
|
|
42
|
-
vantage6/cli/node/attach.py,sha256=
|
|
43
|
-
vantage6/cli/node/create_private_key.py,sha256=
|
|
47
|
+
vantage6/cli/node/attach.py,sha256=xOTB_79pShvn6B4Ky1bZ3TI_F3gOkGS9huzbEE0DRYc,1217
|
|
48
|
+
vantage6/cli/node/create_private_key.py,sha256=UTsoJ04OCVjubC8b7AZhxrLzdwG-wQ_63ROw5uruxqs,5229
|
|
44
49
|
vantage6/cli/node/files.py,sha256=y7WOGHCTE3DnmxgbweLcu51t0YLS9Jvl24zgCHKkQTQ,1003
|
|
45
|
-
vantage6/cli/node/list.py,sha256=
|
|
50
|
+
vantage6/cli/node/list.py,sha256=cydU5tByy0bHWCApcaZ8Pl_2SEbiqkK-mjVhWeChiCc,361
|
|
46
51
|
vantage6/cli/node/new.py,sha256=XEVsnkI1UBngWwE96-KIOcs4zdPCuq3coTGHPNQxepQ,12717
|
|
47
52
|
vantage6/cli/node/remove.py,sha256=alInSH_3E-yJthQ8JrGaopvAZ7GgxuRBppnpC8BRTBU,1061
|
|
48
53
|
vantage6/cli/node/restart.py,sha256=hJWzyJjetfNe8YYkOt5ZEUE_t-LpvQOwUGcQH0pXfNQ,3122
|
|
49
|
-
vantage6/cli/node/set_api_key.py,sha256=
|
|
50
|
-
vantage6/cli/node/start.py,sha256=
|
|
51
|
-
vantage6/cli/node/stop.py,sha256=
|
|
52
|
-
vantage6/cli/node/version.py,sha256=
|
|
53
|
-
vantage6/cli/node/common/__init__.py,sha256=
|
|
54
|
-
vantage6/cli/node/task_cleanup
|
|
54
|
+
vantage6/cli/node/set_api_key.py,sha256=eLB-NVpvXROlGKPAMua6vBAs5l08-AkENWiTfOB82FM,2103
|
|
55
|
+
vantage6/cli/node/start.py,sha256=dn9wlDzq-XCV4ruMSTt0Nt01TOuJKZbXt3WJ3PPqZQY,4691
|
|
56
|
+
vantage6/cli/node/stop.py,sha256=9936hGZu8EuYFF2NZ2of8U33jc8hKRLc4bXFu1ImuLw,6814
|
|
57
|
+
vantage6/cli/node/version.py,sha256=vuQlq2SFWxHsA2_hqXtYK8c06mS2KqPCPU48F7-XXFU,4001
|
|
58
|
+
vantage6/cli/node/common/__init__.py,sha256=B05W_dhjzhbk056xgxoGDDWlOM0YYGM6ZMslalR-nyw,3977
|
|
59
|
+
vantage6/cli/node/common/task_cleanup.py,sha256=bNa72P_gmGeQ3Z-Vl6Q7tKG8-deSAqk_02gvG--eHIY,4515
|
|
55
60
|
vantage6/cli/prometheus/monitoring_manager.py,sha256=I4iR_2i6EgLMR2dM2e4bOVbTyGN4jPPRDPKHd8_CbRk,4908
|
|
56
61
|
vantage6/cli/prometheus/prometheus.yml,sha256=Q4i9lVknITBodHUMgarRnEsXfXTNuSdI6a-9pW4YCoI,98
|
|
57
62
|
vantage6/cli/sandbox/new.py,sha256=bsHHd7nVVOcoIpl0yhM15LxG_6adOvnIkh8e4h4HwPA,6077
|
|
58
|
-
vantage6/cli/sandbox/remove.py,sha256=
|
|
59
|
-
vantage6/cli/sandbox/start.py,sha256
|
|
60
|
-
vantage6/cli/sandbox/stop.py,sha256=
|
|
61
|
-
vantage6/cli/sandbox/config/base.py,sha256=
|
|
62
|
-
vantage6/cli/sandbox/config/core.py,sha256=
|
|
63
|
-
vantage6/cli/sandbox/config/node.py,sha256=
|
|
63
|
+
vantage6/cli/sandbox/remove.py,sha256=xCLE1ayjaDimby9Out0XgyLZRY0wbwmVpuEBDCrcPkM,5228
|
|
64
|
+
vantage6/cli/sandbox/start.py,sha256=5qJawSH4HBO23RZgaPQd3UUYIJ0tVMcGdzNaKIUE6PU,10256
|
|
65
|
+
vantage6/cli/sandbox/stop.py,sha256=gjNfcoXfB4pVy7x3CvdiJ1yC2x36UO17rBlAaKS_-QE,2782
|
|
66
|
+
vantage6/cli/sandbox/config/base.py,sha256=24Ebo9mVa6KjqZllGkFvzjiD29o1gAVz0KQn6tZCHZU,3948
|
|
67
|
+
vantage6/cli/sandbox/config/core.py,sha256=mScKMiaxpxR9rkuHr8mxjTtk2Dgoh4B4ZlxMrx60f1A,10004
|
|
68
|
+
vantage6/cli/sandbox/config/node.py,sha256=qyxAotGwJStTpO91J0plvgUZsyB_GyRBFNHuCHO0uQ4,10239
|
|
64
69
|
vantage6/cli/sandbox/data/km_dataset.csv,sha256=OrYF2ympb2QndiUOX_nTFGGB1HbAp2eOvZzrQ_PqJs4,31283
|
|
65
70
|
vantage6/cli/sandbox/data/olympic_athletes_2016.csv,sha256=WGycwcwMKEyOyJc3aEo4EhrnBJiTSE0kZAr50j2qzGk,77699
|
|
66
71
|
vantage6/cli/sandbox/populate/__init__.py,sha256=xzrDMnmX60kuuDA7u-E-aABdMO1rZKNwmxOo4cL68L4,4706
|
|
@@ -68,19 +73,19 @@ vantage6/cli/sandbox/populate/helpers/connect_store.py,sha256=Wb4shAbrNU7AARK7KZ
|
|
|
68
73
|
vantage6/cli/sandbox/populate/helpers/delete_fixtures.py,sha256=fIAgzxvJqTfB1BCC-Nsdt1ltBL-o4Afl08zx6ZITb6I,2101
|
|
69
74
|
vantage6/cli/sandbox/populate/helpers/load_fixtures.py,sha256=PQpEo0Q5PyWwYDaenAMqPrgRG6DF_SiFGK1V0BFNY3g,16225
|
|
70
75
|
vantage6/cli/sandbox/populate/helpers/utils.py,sha256=5LSGZ-h7QtMB51IDzawXPIQFF7i2CIm6oYzEsdVKG4Y,1213
|
|
71
|
-
vantage6/cli/server/attach.py,sha256=
|
|
76
|
+
vantage6/cli/server/attach.py,sha256=FrSdpRLJeRKWt0VBifj8oPKZsLNDaKJaI2Hy0D2m3kY,1282
|
|
72
77
|
vantage6/cli/server/files.py,sha256=MsnLaY91F2m49mm_FpVboFrSsZiEsu175KioN1alZfk,568
|
|
73
|
-
vantage6/cli/server/import_.py,sha256=
|
|
74
|
-
vantage6/cli/server/list.py,sha256=
|
|
78
|
+
vantage6/cli/server/import_.py,sha256=m7yjhXhGvL3dJ-8pEN0NMrE3CjMTcf0A0hEhJ5kTBIk,8276
|
|
79
|
+
vantage6/cli/server/list.py,sha256=m-g1k8pmScK_CdhKiVFrLIUZsPnPsHr5CrfHmmI6KJk,299
|
|
75
80
|
vantage6/cli/server/new.py,sha256=6KF07KMmdSQTSbXCxfAztVFb2M10uQdQjLmzCXnnfUo,3802
|
|
76
81
|
vantage6/cli/server/remove.py,sha256=dwylIP5uEUPTRP9bd6_7rWhyUoCJuYoe1Kon9WUV4tY,891
|
|
77
|
-
vantage6/cli/server/start.py,sha256=
|
|
82
|
+
vantage6/cli/server/start.py,sha256=eaQHDoa8ttSK_ZiZPzlYM_EMCqaOG3qFtUPrOnNCJf8,3206
|
|
78
83
|
vantage6/cli/server/stop.py,sha256=4pp9NGh-DWPkJ-pXtyxbu9J-liB8l6uiODCkFKoLbC4,2077
|
|
79
|
-
vantage6/cli/server/version.py,sha256=
|
|
84
|
+
vantage6/cli/server/version.py,sha256=iVYem8Gye4dCChC70s_FTqiWi1AF4VQfvhebnh0jurU,1744
|
|
80
85
|
vantage6/cli/server/common/__init__.py,sha256=Frh_4V8ssoGy8rO3o7mRnlKkpOlNSjA5J6eReN1Yluo,1386
|
|
81
|
-
vantage6/cli/template/algo_store_config.j2,sha256=
|
|
86
|
+
vantage6/cli/template/algo_store_config.j2,sha256=dlKiUzZ-zYGdFCBArMMRpXvoQFG7rYz4vmv6rCwp6fM,7470
|
|
82
87
|
vantage6/cli/template/auth_config.j2,sha256=mFNL7H3plnqN7kpptk2WPXPsnuGddCP_ktbzBZHi5ic,10866
|
|
83
|
-
vantage6/cli/template/node_config.j2,sha256=
|
|
88
|
+
vantage6/cli/template/node_config.j2,sha256=ZHx-PvjldyKLcE3e8V1K0k5LkDUaS1uZunvbQWfgA2E,13963
|
|
84
89
|
vantage6/cli/template/node_config_nonk8s.j2,sha256=mrS-YQwg_9i7zBKuEFG5pe3ZbHCLtl5hGgzk2etXTvo,783
|
|
85
90
|
vantage6/cli/template/server_config.j2,sha256=0uksEkCf4lRcBD39brOGdwoF_vCtieA-FjTiSUxNvo0,10195
|
|
86
91
|
vantage6/cli/test/client_script.py,sha256=AHQ4fhzbtD-VcJAm0rxUDteepXNa4Bef9SKWnzobTd0,4825
|
|
@@ -89,9 +94,9 @@ vantage6/cli/test/integration_test.py,sha256=MctR_t-WEyxzFpMdc6ByTcX1BQglZiT5-CI
|
|
|
89
94
|
vantage6/cli/test/algo_test_scripts/algo_test_arguments.py,sha256=HIKAhJ5zKkWMGXpCb_KLukbcwbyeMK5j3wcqubalbyM,791
|
|
90
95
|
vantage6/cli/test/algo_test_scripts/algo_test_script.py,sha256=jfzXPmpL0HlE_eq1jXLV3HuZgh_aV-ZOaawHcYIuwQE,2741
|
|
91
96
|
vantage6/cli/test/common/diagnostic_runner.py,sha256=jFFHqlj3v0WRpVEBa7Ovek3DL6RX6W5cQd9w5hWHtZA,6597
|
|
92
|
-
vantage6/cli/use/context.py,sha256=
|
|
93
|
-
vantage6/cli/use/namespace.py,sha256
|
|
94
|
-
vantage6-5.0.
|
|
95
|
-
vantage6-5.0.
|
|
96
|
-
vantage6-5.0.
|
|
97
|
-
vantage6-5.0.
|
|
97
|
+
vantage6/cli/use/context.py,sha256=cTp9kwC4hhq4FkPz1wYAeYWUGK4054S19FxpZYLF7lM,1665
|
|
98
|
+
vantage6/cli/use/namespace.py,sha256=ev22EuixwW7ZWqhGo8SiSKgtGq4yy8gEXmMhR31khkE,1729
|
|
99
|
+
vantage6-5.0.0a40.dist-info/METADATA,sha256=fqvEBppeIDSNK1PfILwVHFAI_pboxwjq28EYSeyOAf8,1778
|
|
100
|
+
vantage6-5.0.0a40.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
101
|
+
vantage6-5.0.0a40.dist-info/entry_points.txt,sha256=RKVCMsD70s_Gp6If89uDlCphsZ9uLIOMt1gciv8EMDQ,53
|
|
102
|
+
vantage6-5.0.0a40.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|