vantage6 5.0.0a21__py3-none-any.whl → 5.0.0a26__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.
- tests_cli/test_client_script.py +23 -0
- vantage6/cli/__build__ +1 -1
- vantage6/cli/algorithm/generate_algorithm_json.py +529 -0
- vantage6/cli/cli.py +25 -0
- vantage6/cli/common/start.py +220 -9
- vantage6/cli/common/stop.py +90 -0
- vantage6/cli/common/utils.py +8 -7
- vantage6/cli/config.py +260 -0
- vantage6/cli/configuration_manager.py +3 -11
- vantage6/cli/configuration_wizard.py +60 -101
- vantage6/cli/context/node.py +34 -45
- vantage6/cli/context/server.py +26 -0
- vantage6/cli/dev/create.py +78 -17
- vantage6/cli/dev/data/km_dataset.csv +2401 -0
- vantage6/cli/dev/remove.py +99 -98
- vantage6/cli/globals.py +20 -0
- vantage6/cli/node/new.py +4 -3
- vantage6/cli/node/remove.py +4 -2
- vantage6/cli/node/start.py +17 -20
- vantage6/cli/prometheus/monitoring_manager.py +146 -0
- vantage6/cli/prometheus/prometheus.yml +5 -0
- vantage6/cli/server/new.py +25 -6
- vantage6/cli/server/start.py +42 -212
- vantage6/cli/server/stop.py +35 -105
- vantage6/cli/template/algo_store_config.j2 +0 -1
- vantage6/cli/template/node_config.j2 +1 -1
- vantage6/cli/template/server_import_config.j2 +0 -2
- vantage6/cli/test/algo_test_scripts/algo_test_arguments.py +29 -0
- vantage6/cli/test/algo_test_scripts/algo_test_script.py +91 -0
- vantage6/cli/test/client_script.py +151 -0
- vantage6/cli/test/common/diagnostic_runner.py +2 -2
- vantage6/cli/use/context.py +46 -0
- vantage6/cli/use/namespace.py +55 -0
- vantage6/cli/utils.py +70 -4
- {vantage6-5.0.0a21.dist-info → vantage6-5.0.0a26.dist-info}/METADATA +5 -8
- {vantage6-5.0.0a21.dist-info → vantage6-5.0.0a26.dist-info}/RECORD +39 -27
- {vantage6-5.0.0a21.dist-info → vantage6-5.0.0a26.dist-info}/WHEEL +0 -0
- {vantage6-5.0.0a21.dist-info → vantage6-5.0.0a26.dist-info}/entry_points.txt +0 -0
- {vantage6-5.0.0a21.dist-info → vantage6-5.0.0a26.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
# import click
|
|
2
|
+
# import json
|
|
3
|
+
# import subprocess
|
|
4
|
+
# import sys
|
|
5
|
+
|
|
6
|
+
# from pathlib import Path
|
|
7
|
+
|
|
8
|
+
# from rich.console import Console
|
|
9
|
+
|
|
10
|
+
# from vantage6.cli.dev.create import create_demo_network
|
|
11
|
+
# from vantage6.cli.dev.remove import remove_demo_network
|
|
12
|
+
|
|
13
|
+
# # from vantage6.cli.dev.start import start_demo_network
|
|
14
|
+
# # from vantage6.cli.dev.stop import stop_demo_network
|
|
15
|
+
# from vantage6.cli.utils import prompt_config_name
|
|
16
|
+
# from vantage6.common.globals import Ports
|
|
17
|
+
|
|
18
|
+
# TEST_FILE_PATH = Path(__file__).parent / "algo_test_scripts" / "algo_test_script.py"
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
# @click.command()
|
|
22
|
+
# @click.option(
|
|
23
|
+
# "--script",
|
|
24
|
+
# type=click.Path(),
|
|
25
|
+
# default=TEST_FILE_PATH,
|
|
26
|
+
# help="Path of the script to test the algorithm. If a script is not provided, the default script is used.",
|
|
27
|
+
# )
|
|
28
|
+
# @click.option(
|
|
29
|
+
# "--task-arguments",
|
|
30
|
+
# type=str,
|
|
31
|
+
# default=None,
|
|
32
|
+
# help="Arguments to be provided to Task.create function. If --script is provided, this should not be set.",
|
|
33
|
+
# )
|
|
34
|
+
# @click.option(
|
|
35
|
+
# "--create-dev-network",
|
|
36
|
+
# is_flag=True,
|
|
37
|
+
# help="Create a new dev network to run the test",
|
|
38
|
+
# )
|
|
39
|
+
# @click.option(
|
|
40
|
+
# "--start-dev-network",
|
|
41
|
+
# is_flag=True,
|
|
42
|
+
# help="Start a dev network to run the test",
|
|
43
|
+
# )
|
|
44
|
+
# @click.option(
|
|
45
|
+
# "-n", "--name", default=None, type=str, help="Name for your development setup"
|
|
46
|
+
# )
|
|
47
|
+
# @click.option(
|
|
48
|
+
# "--server-url",
|
|
49
|
+
# type=str,
|
|
50
|
+
# default="http://host.docker.internal",
|
|
51
|
+
# help="Server URL to point to. If you are using Docker Desktop, "
|
|
52
|
+
# "the default http://host.docker.internal should not be changed.",
|
|
53
|
+
# )
|
|
54
|
+
# @click.option(
|
|
55
|
+
# "-i", "--image", type=str, default=None, help="Server Docker image to use"
|
|
56
|
+
# )
|
|
57
|
+
# @click.option(
|
|
58
|
+
# "--keep",
|
|
59
|
+
# type=bool,
|
|
60
|
+
# default=False,
|
|
61
|
+
# help="Keep the dev network after finishing the test",
|
|
62
|
+
# )
|
|
63
|
+
# @click.option(
|
|
64
|
+
# "--add-dataset",
|
|
65
|
+
# type=(str, click.Path()),
|
|
66
|
+
# default=[],
|
|
67
|
+
# multiple=True,
|
|
68
|
+
# help="Add a dataset to the nodes. The first argument is the label of the database, "
|
|
69
|
+
# "the second is the path to the dataset file.",
|
|
70
|
+
# )
|
|
71
|
+
# @click.pass_context
|
|
72
|
+
# def cli_test_client_script(
|
|
73
|
+
# click_ctx: click.Context,
|
|
74
|
+
# script: Path | None,
|
|
75
|
+
# task_arguments: str | None,
|
|
76
|
+
# name: str,
|
|
77
|
+
# server_url: str,
|
|
78
|
+
# create_dev_network: bool,
|
|
79
|
+
# start_dev_network: bool,
|
|
80
|
+
# image: str,
|
|
81
|
+
# keep: bool,
|
|
82
|
+
# add_dataset: list[tuple[str, Path]] = (),
|
|
83
|
+
# ) -> int:
|
|
84
|
+
# """
|
|
85
|
+
# Run a script for testing an algorithm on a dev network.
|
|
86
|
+
# The path to the script must be provided as an argument.
|
|
87
|
+
# """
|
|
88
|
+
# if not (script or task_arguments):
|
|
89
|
+
# raise click.UsageError("--script or --task-arguments must be set.")
|
|
90
|
+
# elif script != TEST_FILE_PATH and task_arguments:
|
|
91
|
+
# raise click.UsageError("--script and --task-arguments cannot be set together.")
|
|
92
|
+
|
|
93
|
+
# # Check if the task_arguments is a valid JSON string
|
|
94
|
+
# if task_arguments:
|
|
95
|
+
# try:
|
|
96
|
+
# json.loads(task_arguments.replace("'", '"'))
|
|
97
|
+
# except json.JSONDecodeError:
|
|
98
|
+
# raise click.UsageError("task-arguments must be a valid JSON string.")
|
|
99
|
+
|
|
100
|
+
# name = prompt_config_name(name)
|
|
101
|
+
|
|
102
|
+
# # create the network
|
|
103
|
+
# if create_dev_network:
|
|
104
|
+
# click_ctx.invoke(
|
|
105
|
+
# create_demo_network,
|
|
106
|
+
# name=name,
|
|
107
|
+
# num_nodes=3,
|
|
108
|
+
# server_url=server_url,
|
|
109
|
+
# server_port=Ports.DEV_SERVER.value,
|
|
110
|
+
# image=image,
|
|
111
|
+
# extra_server_config=None,
|
|
112
|
+
# extra_node_config=None,
|
|
113
|
+
# add_dataset=add_dataset,
|
|
114
|
+
# )
|
|
115
|
+
|
|
116
|
+
# # start the server and nodes
|
|
117
|
+
# if create_dev_network or start_dev_network:
|
|
118
|
+
# click_ctx.invoke(
|
|
119
|
+
# start_demo_network,
|
|
120
|
+
# name=name,
|
|
121
|
+
# server_image=image,
|
|
122
|
+
# node_image=image,
|
|
123
|
+
# )
|
|
124
|
+
|
|
125
|
+
# # run the test script and get the result
|
|
126
|
+
# if not task_arguments:
|
|
127
|
+
# subprocess_args = ["python", script]
|
|
128
|
+
# else:
|
|
129
|
+
# subprocess_args = ["python", script, task_arguments]
|
|
130
|
+
|
|
131
|
+
# result = subprocess.run(subprocess_args, stdout=sys.stdout, stderr=sys.stderr)
|
|
132
|
+
|
|
133
|
+
# # check the exit code. If the test passed, it should be 0
|
|
134
|
+
# if result.returncode == 0:
|
|
135
|
+
# msg = ":heavy_check_mark: [green]Test passed[/green]"
|
|
136
|
+
# else:
|
|
137
|
+
# msg = ":x: [red]Test failed[/red]"
|
|
138
|
+
|
|
139
|
+
# console = Console()
|
|
140
|
+
# console.print(msg)
|
|
141
|
+
|
|
142
|
+
# # clean up the test resources. Keep the network if --keep is set, or if the network
|
|
143
|
+
# # was created for this test. If the network was started for this test, stop it but
|
|
144
|
+
# # do not remove it.
|
|
145
|
+
# if not keep:
|
|
146
|
+
# if create_dev_network or start_dev_network:
|
|
147
|
+
# click_ctx.invoke(stop_demo_network, name=name)
|
|
148
|
+
# if create_dev_network:
|
|
149
|
+
# click_ctx.invoke(remove_demo_network, name=name)
|
|
150
|
+
|
|
151
|
+
# return result.returncode
|
|
@@ -122,8 +122,8 @@ class DiagnosticRunner:
|
|
|
122
122
|
description="VPN Diagnostic test",
|
|
123
123
|
image=DIAGNOSTICS_IMAGE,
|
|
124
124
|
method="vpn_features",
|
|
125
|
-
|
|
126
|
-
"
|
|
125
|
+
arguments={
|
|
126
|
+
"other_nodes": self.organization_ids,
|
|
127
127
|
},
|
|
128
128
|
organizations=self.organization_ids,
|
|
129
129
|
)
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import click
|
|
2
|
+
import questionary
|
|
3
|
+
from kubernetes import config
|
|
4
|
+
|
|
5
|
+
from vantage6.common import error
|
|
6
|
+
|
|
7
|
+
from vantage6.cli.config import CliConfig
|
|
8
|
+
from vantage6.cli.utils import switch_context_and_namespace
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@click.command()
|
|
12
|
+
@click.argument("context", required=False, type=str, default=None)
|
|
13
|
+
def cli_use_context(context: str):
|
|
14
|
+
"""
|
|
15
|
+
Set which Kubernetes context to use.
|
|
16
|
+
"""
|
|
17
|
+
# Get available contexts
|
|
18
|
+
contexts, active_context = config.list_kube_config_contexts()
|
|
19
|
+
context_names = [ctx["name"] for ctx in contexts]
|
|
20
|
+
|
|
21
|
+
# Prompt user to select a context
|
|
22
|
+
if not context:
|
|
23
|
+
current = active_context["name"] if active_context else None
|
|
24
|
+
context = questionary.select(
|
|
25
|
+
"Which Kubernetes context do you want to use?",
|
|
26
|
+
choices=context_names,
|
|
27
|
+
default=current if current in context_names else None,
|
|
28
|
+
).ask()
|
|
29
|
+
|
|
30
|
+
# If no context is selected (e.g. KeyboardInterrupt), exit
|
|
31
|
+
if not context:
|
|
32
|
+
return
|
|
33
|
+
|
|
34
|
+
# Load the selected context
|
|
35
|
+
try:
|
|
36
|
+
config.load_kube_config(context=context)
|
|
37
|
+
except Exception:
|
|
38
|
+
error(f"Cannot not find {context} in kube config")
|
|
39
|
+
return
|
|
40
|
+
|
|
41
|
+
# Update kubeconfig current-context
|
|
42
|
+
switch_context_and_namespace(context=context)
|
|
43
|
+
|
|
44
|
+
# Clear the last_context in CLI config
|
|
45
|
+
cli_config = CliConfig()
|
|
46
|
+
cli_config.remove_kube()
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import click
|
|
2
|
+
import questionary
|
|
3
|
+
from kubernetes import client, config
|
|
4
|
+
|
|
5
|
+
from vantage6.cli.config import CliConfig
|
|
6
|
+
from vantage6.cli.utils import switch_context_and_namespace
|
|
7
|
+
from vantage6.common import error
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@click.command()
|
|
11
|
+
@click.argument("namespace", required=False, type=str, default=None)
|
|
12
|
+
def cli_use_namespace(namespace: str):
|
|
13
|
+
"""
|
|
14
|
+
Set which Kubernetes namespace to use.
|
|
15
|
+
|
|
16
|
+
The namespace will be created if it does not exist.
|
|
17
|
+
"""
|
|
18
|
+
# Load the active context configuration
|
|
19
|
+
config.load_kube_config()
|
|
20
|
+
|
|
21
|
+
try:
|
|
22
|
+
v1 = client.CoreV1Api()
|
|
23
|
+
namespace_list = v1.list_namespace()
|
|
24
|
+
except Exception:
|
|
25
|
+
error(
|
|
26
|
+
"Failed to connect to Kubernetes cluster. Check if the cluster is running and reachable."
|
|
27
|
+
)
|
|
28
|
+
return
|
|
29
|
+
|
|
30
|
+
namespace_names = [ns.metadata.name for ns in namespace_list.items]
|
|
31
|
+
|
|
32
|
+
# Prompt user to select a namespace
|
|
33
|
+
if not namespace:
|
|
34
|
+
namespace = questionary.select(
|
|
35
|
+
"Which Kubernetes namespace do you want to use?",
|
|
36
|
+
choices=namespace_names,
|
|
37
|
+
).ask()
|
|
38
|
+
|
|
39
|
+
# If no namespace is selected (e.g. KeyboardInterrupt), exit
|
|
40
|
+
if not namespace:
|
|
41
|
+
return
|
|
42
|
+
|
|
43
|
+
# Check if namespace exists, create if not
|
|
44
|
+
if namespace not in namespace_names:
|
|
45
|
+
namespace_body = client.V1Namespace(
|
|
46
|
+
metadata=client.V1ObjectMeta(name=namespace)
|
|
47
|
+
)
|
|
48
|
+
v1.create_namespace(namespace_body)
|
|
49
|
+
|
|
50
|
+
# Switch to the selected namespace for current context
|
|
51
|
+
switch_context_and_namespace(namespace=namespace)
|
|
52
|
+
|
|
53
|
+
# Remove the last_context in CLI config
|
|
54
|
+
cli_config = CliConfig()
|
|
55
|
+
cli_config.remove_kube()
|
vantage6/cli/utils.py
CHANGED
|
@@ -4,14 +4,15 @@ Utility functions for the CLI
|
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
+
import os
|
|
7
8
|
import re
|
|
9
|
+
import subprocess
|
|
10
|
+
from pathlib import Path
|
|
11
|
+
|
|
8
12
|
import docker
|
|
9
|
-
import os
|
|
10
13
|
import questionary as q
|
|
11
14
|
|
|
12
|
-
from
|
|
13
|
-
|
|
14
|
-
from vantage6.common import error, warning, info
|
|
15
|
+
from vantage6.common import error, info, warning
|
|
15
16
|
|
|
16
17
|
|
|
17
18
|
def check_config_name_allowed(name: str) -> None:
|
|
@@ -99,3 +100,68 @@ def prompt_config_name(name: str | None) -> None:
|
|
|
99
100
|
name = name.replace(" ", "-")
|
|
100
101
|
info(f"Replaced spaces from configuration name: {name}")
|
|
101
102
|
return name
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
def switch_context_and_namespace(
|
|
106
|
+
context: str | None = None, namespace: str | None = None
|
|
107
|
+
) -> None:
|
|
108
|
+
# input validation
|
|
109
|
+
validate_input_cmd_args(context, "context name", allow_none=True)
|
|
110
|
+
validate_input_cmd_args(namespace, "namespace name", allow_none=True)
|
|
111
|
+
|
|
112
|
+
try:
|
|
113
|
+
if context:
|
|
114
|
+
subprocess.run(
|
|
115
|
+
["kubectl", "config", "use-context", context],
|
|
116
|
+
check=True,
|
|
117
|
+
stdout=subprocess.DEVNULL,
|
|
118
|
+
)
|
|
119
|
+
info(f"Successfully set context to: {context}")
|
|
120
|
+
|
|
121
|
+
if namespace:
|
|
122
|
+
subprocess.run(
|
|
123
|
+
[
|
|
124
|
+
"kubectl",
|
|
125
|
+
"config",
|
|
126
|
+
"set-context",
|
|
127
|
+
context or "--current",
|
|
128
|
+
f"--namespace={namespace}",
|
|
129
|
+
],
|
|
130
|
+
check=True,
|
|
131
|
+
stdout=subprocess.DEVNULL,
|
|
132
|
+
)
|
|
133
|
+
info(f"Successfully set namespace to: {namespace}")
|
|
134
|
+
|
|
135
|
+
except subprocess.CalledProcessError as e:
|
|
136
|
+
error(f"Failed to set Kubernetes context or namespace: {e}")
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
def validate_input_cmd_args(
|
|
140
|
+
value: str | None, field_name: str, allow_none: bool = False
|
|
141
|
+
) -> None:
|
|
142
|
+
"""
|
|
143
|
+
Validate input for subprocess commands.
|
|
144
|
+
|
|
145
|
+
Parameters
|
|
146
|
+
----------
|
|
147
|
+
value : str | None
|
|
148
|
+
The value to validate.
|
|
149
|
+
field_name : str
|
|
150
|
+
The name of the field being validated, used for error messages.
|
|
151
|
+
allow_none : bool, optional
|
|
152
|
+
Whether None is allowed as a valid value. Defaults to False.
|
|
153
|
+
|
|
154
|
+
Raises
|
|
155
|
+
------
|
|
156
|
+
SystemExit
|
|
157
|
+
If the input is invalid.
|
|
158
|
+
"""
|
|
159
|
+
if allow_none and value is None:
|
|
160
|
+
return
|
|
161
|
+
|
|
162
|
+
if not isinstance(value, str) or not re.match("^[a-zA-Z0-9_.-]+$", value):
|
|
163
|
+
error(
|
|
164
|
+
f"Invalid {field_name}: {value}. Use only alphanumeric characters, "
|
|
165
|
+
"dashes, underscores, or dots."
|
|
166
|
+
)
|
|
167
|
+
exit(1)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: vantage6
|
|
3
|
-
Version: 5.0.
|
|
3
|
+
Version: 5.0.0a26
|
|
4
4
|
Summary: vantage6 command line interface
|
|
5
5
|
Home-page: https://github.com/vantage6/vantage6
|
|
6
6
|
Requires-Python: >=3.10
|
|
@@ -11,13 +11,14 @@ Requires-Dist: copier==9.2.0
|
|
|
11
11
|
Requires-Dist: docker==7.1.0
|
|
12
12
|
Requires-Dist: ipython==8.10.0
|
|
13
13
|
Requires-Dist: jinja2==3.1.6
|
|
14
|
+
Requires-Dist: kubernetes==28.1.0
|
|
14
15
|
Requires-Dist: pandas>=1.5.3
|
|
15
16
|
Requires-Dist: questionary==1.10.0
|
|
16
17
|
Requires-Dist: rich==13.5.2
|
|
17
18
|
Requires-Dist: schema==0.7.5
|
|
18
19
|
Requires-Dist: sqlalchemy==2.0.37
|
|
19
|
-
Requires-Dist: vantage6-common==5.0.
|
|
20
|
-
Requires-Dist: vantage6-client==5.0.
|
|
20
|
+
Requires-Dist: vantage6-common==5.0.0a26
|
|
21
|
+
Requires-Dist: vantage6-client==5.0.0a26
|
|
21
22
|
Provides-Extra: dev
|
|
22
23
|
Requires-Dist: coverage==6.4.4; extra == "dev"
|
|
23
24
|
Requires-Dist: black; extra == "dev"
|
|
@@ -70,7 +71,7 @@ collaborations. The server contains users, organizations, collaborations, tasks
|
|
|
70
71
|
their results. It provides a central access point for both the clients and nodes. The
|
|
71
72
|
nodes have access to privacy sensitive data and handle computation requests retrieved
|
|
72
73
|
from the server. Computation request are executed as separate containers on the node.
|
|
73
|
-
These containers are connected to containers at other nodes by a
|
|
74
|
+
These containers are connected to containers at other nodes by a internal network._
|
|
74
75
|
|
|
75
76
|
## :books: Quickstart
|
|
76
77
|
|
|
@@ -185,11 +186,7 @@ with `VERSION` being the full semantic version of the vantage6 infrastructure, e
|
|
|
185
186
|
Several other images are used to support the infrastructure:
|
|
186
187
|
|
|
187
188
|
- `harbor2.vantage6.ai/infrastructure/infrastructure-base:VERSION` -> _Base image for the infrastructure_
|
|
188
|
-
- `harbor2.vantage6.ai/infrastructure/squid:VERSION` -> _Squid proxy image used for the whitelisting service_
|
|
189
189
|
- `harbor2.vantage6.ai/infrastructure/alpine` -> _Alpine image used for vpn traffic forwarding_
|
|
190
|
-
- `harbor2.vantage6.ai/infrastructure/vpn-client` -> _VPN image used to connect to the VPN_
|
|
191
|
-
- `harbor2.vantage6.ai/infrastructure/vpn-configurator` -> _VPN image used for initialization_
|
|
192
|
-
- `harbor2.vantage6.ai/infrastructure/ssh-tunnel` -> _SSH tunnel image used for connecting algorithms to external services_
|
|
193
190
|
|
|
194
191
|
And finally there are some images released for algorithm development:
|
|
195
192
|
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
tests_cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
+
tests_cli/test_client_script.py,sha256=_Wf8nKEfq6HEnfUQtwZvyICEmEa1TngyI_orPRQ7ZNQ,683
|
|
2
3
|
tests_cli/test_example.py,sha256=0fw_v-lgZEacshWSDwLNyLMA1_xc48bKUGM3ll-n1L0,146
|
|
3
4
|
tests_cli/test_node_cli.py,sha256=jM-nZkcvdEwwHVgQi8C7cYAbTJOzVmFl60MFXYVH9ig,16798
|
|
4
5
|
tests_cli/test_server_cli.py,sha256=Yv6k0mkqElrpPgFtro_OH2Bjixz7mDXioxhvXr9VsAQ,6550
|
|
5
6
|
tests_cli/test_wizard.py,sha256=D0bIMqYJ8vgl4_hTQOH5Tb8JAFt1bIfPzU9zNSvYf8o,5009
|
|
6
|
-
vantage6/cli/__build__,sha256=
|
|
7
|
+
vantage6/cli/__build__,sha256=X5xKsIysdFfpERow5GZJIGB-osEVoUM9e-mOl-ZCRMo,2
|
|
7
8
|
vantage6/cli/__init__.py,sha256=ZXbeQ_-g2-M4XYteWZkoO5lMFYhqjm5doQgGy1fq8i0,125
|
|
8
9
|
vantage6/cli/_version.py,sha256=iDijqhgy5jzZ0LAyzW1LlXeeuMcHWMyg9D8xbXtV7Ck,696
|
|
9
|
-
vantage6/cli/cli.py,sha256=
|
|
10
|
-
vantage6/cli/
|
|
11
|
-
vantage6/cli/
|
|
12
|
-
vantage6/cli/
|
|
13
|
-
vantage6/cli/
|
|
10
|
+
vantage6/cli/cli.py,sha256=EeMfvBABKYauujZDR09IjpBgtbBg1sS1iJPuzre-AqM,6474
|
|
11
|
+
vantage6/cli/config.py,sha256=Jqe3VcvoxPrFlvw7cuKt4-5oyL0YTZXvpNsqPybSAYk,7973
|
|
12
|
+
vantage6/cli/configuration_manager.py,sha256=4MRPG9bVk2RKuM0FKKRu5Eba5xeH8tPze09Ri02zDpY,3353
|
|
13
|
+
vantage6/cli/configuration_wizard.py,sha256=1-fDYQ5PG3Sw7WVHItgnoijZ9wY1u15zQv_ChuRyPQM,19056
|
|
14
|
+
vantage6/cli/globals.py,sha256=qLTqllCKxckl3bGvTg4rifR0nwJ70JO1TscghbNoP_8,2214
|
|
15
|
+
vantage6/cli/utils.py,sha256=mhCtsxCf8nOCaW3layW8aJGI0XAjGs0IuheCNj3o-IA,4397
|
|
14
16
|
vantage6/cli/algorithm/create.py,sha256=kRT1BlBcb0fDaB2Q988WxtA6EyAZmOW5QoU2uhbwBIo,2075
|
|
17
|
+
vantage6/cli/algorithm/generate_algorithm_json.py,sha256=c3__OWap90o1tGPmrlShbnJgybwIqXBmsB9GwWdqRaU,19941
|
|
15
18
|
vantage6/cli/algorithm/update.py,sha256=WwAfTnq0kTOgePUsBzGoo1AJQqGMn82E9Bjk1wf61CQ,1338
|
|
16
19
|
vantage6/cli/algostore/attach.py,sha256=0WzLnKigJAelPpL5EaWcnRuUyQzMSofrrZfEzwDIvSw,311
|
|
17
20
|
vantage6/cli/algostore/files.py,sha256=r89VRixK_K-c44qseq58Aa2Dqf1wEf8yompQRN5AVu4,580
|
|
@@ -21,28 +24,32 @@ vantage6/cli/algostore/remove.py,sha256=ieQLpo2ZpblpPxaeRXdB7IO0DzTtURnveYQltW7T
|
|
|
21
24
|
vantage6/cli/algostore/start.py,sha256=MI1wSvRdORyOdgZZKkyxFZSHwxUj060HXAlm-elYh0M,3181
|
|
22
25
|
vantage6/cli/algostore/stop.py,sha256=79C-q27x_BdkrwZGLVDnKOsyMiHXeG9k_UsfcLrGEgw,1841
|
|
23
26
|
vantage6/cli/common/decorator.py,sha256=7Iwlcc_ekgXJco4tNjEV79ul43Q28OrieiGkvDBeGeE,3625
|
|
24
|
-
vantage6/cli/common/start.py,sha256=
|
|
25
|
-
vantage6/cli/common/
|
|
27
|
+
vantage6/cli/common/start.py,sha256=IwmkA0n4_0rXAebyVWyjaD5ZImHa0icCkbdZAjxHn68,15345
|
|
28
|
+
vantage6/cli/common/stop.py,sha256=CxW5OFZT7eacpln9J05ble2Q3xHCqyxYqJ00rPUbrVo,2645
|
|
29
|
+
vantage6/cli/common/utils.py,sha256=v38HsTT5mJK_s7zD8CoXhmNTjpKRaKZkR6Yqo9OioQs,5147
|
|
26
30
|
vantage6/cli/context/__init__.py,sha256=e8rfY2tCyu6_SLQ-rbVzEHkDtmbnGCZRHFN_HH-2bnA,2683
|
|
27
31
|
vantage6/cli/context/algorithm_store.py,sha256=RimxNcoqfWeu2WQede6wsOu1rx-azzXIPVkCDqVJLWs,3944
|
|
28
32
|
vantage6/cli/context/base_server.py,sha256=paKSzNrKWD-J6eakHAtGELk2cD05A8NqoCAuQfF7c2s,2972
|
|
29
|
-
vantage6/cli/context/node.py,sha256=
|
|
30
|
-
vantage6/cli/context/server.py,sha256=
|
|
31
|
-
vantage6/cli/dev/create.py,sha256=
|
|
32
|
-
vantage6/cli/dev/remove.py,sha256=
|
|
33
|
+
vantage6/cli/context/node.py,sha256=FPIbWu19khKoVAusf3zgcNZqdlPHw3zYsSO4f2bE5WE,7221
|
|
34
|
+
vantage6/cli/context/server.py,sha256=qyslg6jY0I-29nktxROAb-KAVYZGh9TZsuby25rio0U,4588
|
|
35
|
+
vantage6/cli/dev/create.py,sha256=75HRKIgqNU-LYHX7BWDRbbIl7EAPXIC-SWxKhlh_Iac,21238
|
|
36
|
+
vantage6/cli/dev/remove.py,sha256=G6_dvnFFACOLNIzrcRSSBp6N28AwXCcH15OrdnE_JWg,3929
|
|
37
|
+
vantage6/cli/dev/data/km_dataset.csv,sha256=OrYF2ympb2QndiUOX_nTFGGB1HbAp2eOvZzrQ_PqJs4,31283
|
|
33
38
|
vantage6/cli/node/attach.py,sha256=cmouPrkbIbg21_wlAe-L-ecmrKVxiDkzGmEtRaCnKQY,276
|
|
34
39
|
vantage6/cli/node/clean.py,sha256=uCty2GNuwoTybs1nIOygQLxtbleQ-rnnS6_4ieWVmCw,1199
|
|
35
40
|
vantage6/cli/node/create_private_key.py,sha256=iGLK8x1aOmeObq-vZxlveosiqx1R0myfjU64R5lR0ho,5005
|
|
36
41
|
vantage6/cli/node/files.py,sha256=V7bJeR8weX0Llpp6y9wQoNrRsvlotEE6e70aTJp9j6M,1331
|
|
37
42
|
vantage6/cli/node/list.py,sha256=_WZ8EBIEUlzFhVp3cR2MK5FUuQicMEZHhD8npMwKSpM,1664
|
|
38
|
-
vantage6/cli/node/new.py,sha256=
|
|
39
|
-
vantage6/cli/node/remove.py,sha256=
|
|
43
|
+
vantage6/cli/node/new.py,sha256=D-zI20pneF8kmGZKTRj09IaMMsj7z2rhiGXegMZywik,2040
|
|
44
|
+
vantage6/cli/node/remove.py,sha256=5gylLyMa8LoavQNQv71JuwrTZN2rJwLrphl4Z0Fu6_8,3658
|
|
40
45
|
vantage6/cli/node/restart.py,sha256=bWx0n4tN8TWOy_o8lJkA7AR-H1UIbfAiPp93I5wXg1Y,3709
|
|
41
46
|
vantage6/cli/node/set_api_key.py,sha256=2kB8wveTy9_N8kX4huVhJhY86Ppd2BI8v-d7MRXQAdA,1877
|
|
42
|
-
vantage6/cli/node/start.py,sha256=
|
|
47
|
+
vantage6/cli/node/start.py,sha256=iwqRtyt4uLLgPLBxE6lt_lEe__IxKVKB2aECIKPTz9Q,12306
|
|
43
48
|
vantage6/cli/node/stop.py,sha256=Hf5z2r6ttbW-DeU0cdHNXIJcgL-eIVRv8i7zZLo4foY,4159
|
|
44
49
|
vantage6/cli/node/version.py,sha256=X921xyIvIPYObPac2Si5msZ2tay5ySidnPWmGj1ilZw,1959
|
|
45
50
|
vantage6/cli/node/common/__init__.py,sha256=-nNEqN4Cfzkkz7ughjm0FErGI8NgcOzpKw4va5-0W-E,2882
|
|
51
|
+
vantage6/cli/prometheus/monitoring_manager.py,sha256=tNvguLonbVILqCDnHRizef5NwKnEOV0DuzTx0Bhd2HU,4906
|
|
52
|
+
vantage6/cli/prometheus/prometheus.yml,sha256=Q4i9lVknITBodHUMgarRnEsXfXTNuSdI6a-9pW4YCoI,98
|
|
46
53
|
vantage6/cli/rabbitmq/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
47
54
|
vantage6/cli/rabbitmq/definitions.py,sha256=CcS9jG7ZGB6LjzHQqZ2FliDurPItUvNSjHrOYptORZg,637
|
|
48
55
|
vantage6/cli/rabbitmq/queue_manager.py,sha256=KGDGHy4NBN8O9xhjzfI7mh65i9lOQIqQwrOFqvGFdHI,7545
|
|
@@ -51,22 +58,27 @@ vantage6/cli/server/attach.py,sha256=q1E40nGCBEFUF1p94sZoU-Ud3OXAUy4-FJqcP7Gqa7U
|
|
|
51
58
|
vantage6/cli/server/files.py,sha256=LJhFyYHcEnCgFhVAM-lX6_EnfhMJ7YPdN21kVIpmwkc,507
|
|
52
59
|
vantage6/cli/server/import_.py,sha256=pW1WlVc7eKoLhprxkREz9g8RfXxkEylB2467PsRV8eI,4557
|
|
53
60
|
vantage6/cli/server/list.py,sha256=_kVBe7TrtUfT2ZLWPkVvKj4xx5AvS17e99Bwp0ajc_E,410
|
|
54
|
-
vantage6/cli/server/new.py,sha256=
|
|
61
|
+
vantage6/cli/server/new.py,sha256=x7ii_5hUrXDXZOUIot6ghUjvzUjnaSTTVSaP28ojIBY,2474
|
|
55
62
|
vantage6/cli/server/remove.py,sha256=6tfKfVa5dYnZAKQYo_VlGZTuiugi7sh2F3U2cZ7mCmQ,1627
|
|
56
63
|
vantage6/cli/server/shell.py,sha256=7cSdBOwvloWyCz3RXHaFZUnxgNRV4gZUDmIFecV8Hks,1589
|
|
57
|
-
vantage6/cli/server/start.py,sha256=
|
|
58
|
-
vantage6/cli/server/stop.py,sha256=
|
|
64
|
+
vantage6/cli/server/start.py,sha256=wTxBOlf_4pmk-cV07dL1GYkU5nOXO-AOFmKmHlHi5hQ,2448
|
|
65
|
+
vantage6/cli/server/stop.py,sha256=J0jgaroGMFwW-Prj7KAOsqDDi-g4cSa4gTPnXHWHZhM,1319
|
|
59
66
|
vantage6/cli/server/version.py,sha256=aXAztHEky_F2jPbfPdHPfsAY7rdTurl0_3S6bL94_QQ,1318
|
|
60
67
|
vantage6/cli/server/common/__init__.py,sha256=htv0mFYa4GhIHdzA2xqUUgKhHcMh09UQERlIjIgrwOM,2062
|
|
61
|
-
vantage6/cli/template/algo_store_config.j2,sha256=
|
|
62
|
-
vantage6/cli/template/node_config.j2,sha256=
|
|
68
|
+
vantage6/cli/template/algo_store_config.j2,sha256=tdPdoZUlBQsFEUUDGWK65oSsIS29QxToT4n_zu9soQA,528
|
|
69
|
+
vantage6/cli/template/node_config.j2,sha256=420R7mvk4SoISmr3MphB3JQvMGsnLmVjhZd2GEJa5rQ,732
|
|
63
70
|
vantage6/cli/template/server_config.j2,sha256=K7svQM6HTmMrlKPVW9cbNPloH7LicBoLdIEiarD6CP8,765
|
|
64
|
-
vantage6/cli/template/server_import_config.j2,sha256=
|
|
71
|
+
vantage6/cli/template/server_import_config.j2,sha256=eVoQnXfP5IejzlAYiu5GikPibMpBVrxpw-TX0Obi4J0,1782
|
|
72
|
+
vantage6/cli/test/client_script.py,sha256=AHQ4fhzbtD-VcJAm0rxUDteepXNa4Bef9SKWnzobTd0,4825
|
|
65
73
|
vantage6/cli/test/feature_tester.py,sha256=Jd-dSB_4HRcvkDnAMs57m4WK0SDHsqTmg9ON56wnEOc,2634
|
|
66
74
|
vantage6/cli/test/integration_test.py,sha256=MctR_t-WEyxzFpMdc6ByTcX1BQglZiT5-CIOQXTBBWo,4034
|
|
67
|
-
vantage6/cli/test/
|
|
68
|
-
vantage6
|
|
69
|
-
vantage6
|
|
70
|
-
vantage6
|
|
71
|
-
vantage6
|
|
72
|
-
vantage6-5.0.
|
|
75
|
+
vantage6/cli/test/algo_test_scripts/algo_test_arguments.py,sha256=HIKAhJ5zKkWMGXpCb_KLukbcwbyeMK5j3wcqubalbyM,791
|
|
76
|
+
vantage6/cli/test/algo_test_scripts/algo_test_script.py,sha256=SaBpmadYdTGCrx2QBwCtImXcJxqz92QhdnVOmU7NvWk,2752
|
|
77
|
+
vantage6/cli/test/common/diagnostic_runner.py,sha256=5-KgspYW0PncO_t_TrQzd_GSOXVwH-7bIVv-IHOxwQM,6598
|
|
78
|
+
vantage6/cli/use/context.py,sha256=mEtOfbuLtYQlRh-ypif24WtOwgpcvXObX310mmXIkWY,1362
|
|
79
|
+
vantage6/cli/use/namespace.py,sha256=MOd9H3GJwZ0cho0mmlHTRlGPLoQEiSnZIFDsFsvYw4Q,1643
|
|
80
|
+
vantage6-5.0.0a26.dist-info/METADATA,sha256=a1Iczp3c5e-prJBsMCOXgLnBxayrzHKM4Ale7FUu4kQ,10525
|
|
81
|
+
vantage6-5.0.0a26.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
|
82
|
+
vantage6-5.0.0a26.dist-info/entry_points.txt,sha256=YFBvwjxoeAGxYyPC-YevEgOBBYRGaXkS6jiOGGCLNy0,157
|
|
83
|
+
vantage6-5.0.0a26.dist-info/top_level.txt,sha256=CYDIBS8jEfFq5YCs_Fuit54K9-3wdosZppTrsymIoUk,19
|
|
84
|
+
vantage6-5.0.0a26.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|