vantage6 4.3.0b3__py3-none-any.whl → 4.3.0b5__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_server_cli.py +3 -3
- vantage6/cli/__build__ +1 -1
- vantage6/cli/algostore/attach.py +2 -2
- vantage6/cli/algostore/files.py +17 -0
- vantage6/cli/algostore/list.py +15 -0
- vantage6/cli/algostore/start.py +2 -2
- vantage6/cli/algostore/stop.py +2 -2
- vantage6/cli/cli.py +4 -0
- vantage6/cli/common/decorator.py +2 -2
- vantage6/cli/common/utils.py +116 -0
- vantage6/cli/configuration_manager.py +1 -1
- vantage6/cli/configuration_wizard.py +13 -1
- vantage6/cli/context/__init__.py +1 -0
- vantage6/cli/dev/create.py +2 -4
- vantage6/cli/dev/remove.py +2 -2
- vantage6/cli/dev/start.py +2 -2
- vantage6/cli/dev/stop.py +2 -2
- vantage6/cli/globals.py +1 -0
- vantage6/cli/node/common/__init__.py +1 -0
- vantage6/cli/node/start.py +1 -1
- vantage6/cli/server/common/__init__.py +10 -85
- vantage6/cli/server/files.py +2 -2
- vantage6/cli/server/import_.py +3 -2
- vantage6/cli/server/list.py +3 -47
- vantage6/cli/server/remove.py +2 -2
- vantage6/cli/server/shell.py +2 -2
- vantage6/cli/server/start.py +3 -2
- vantage6/cli/server/stop.py +2 -2
- vantage6/cli/server/version.py +6 -19
- vantage6/cli/test/feature_tester.py +8 -1
- vantage6/cli/utils.py +1 -0
- {vantage6-4.3.0b3.dist-info → vantage6-4.3.0b5.dist-info}/METADATA +3 -3
- {vantage6-4.3.0b3.dist-info → vantage6-4.3.0b5.dist-info}/RECORD +36 -33
- {vantage6-4.3.0b3.dist-info → vantage6-4.3.0b5.dist-info}/WHEEL +0 -0
- {vantage6-4.3.0b3.dist-info → vantage6-4.3.0b5.dist-info}/entry_points.txt +0 -0
- {vantage6-4.3.0b3.dist-info → vantage6-4.3.0b5.dist-info}/top_level.txt +0 -0
tests_cli/test_server_cli.py
CHANGED
|
@@ -19,7 +19,7 @@ class ServerCLITest(unittest.TestCase):
|
|
|
19
19
|
@patch("vantage6.cli.server.start.docker.types.Mount")
|
|
20
20
|
@patch("os.makedirs")
|
|
21
21
|
@patch("vantage6.cli.common.start.pull_if_newer")
|
|
22
|
-
@patch("vantage6.cli.
|
|
22
|
+
@patch("vantage6.cli.common.decorator.get_context")
|
|
23
23
|
@patch("vantage6.cli.server.start.docker.from_env")
|
|
24
24
|
@patch("vantage6.cli.common.start.check_docker_running", return_value=True)
|
|
25
25
|
def test_start(
|
|
@@ -73,7 +73,7 @@ class ServerCLITest(unittest.TestCase):
|
|
|
73
73
|
self.assertEqual(result.exit_code, 0)
|
|
74
74
|
self.assertIsNone(result.exception)
|
|
75
75
|
|
|
76
|
-
@patch("vantage6.cli.
|
|
76
|
+
@patch("vantage6.cli.common.decorator.get_context")
|
|
77
77
|
def test_files(self, context):
|
|
78
78
|
"""Configuration files without errors."""
|
|
79
79
|
|
|
@@ -92,7 +92,7 @@ class ServerCLITest(unittest.TestCase):
|
|
|
92
92
|
@patch("vantage6.cli.server.import_.print_log_worker")
|
|
93
93
|
@patch("vantage6.cli.server.import_.click.Path")
|
|
94
94
|
@patch("vantage6.cli.server.import_.check_docker_running", return_value=True)
|
|
95
|
-
@patch("vantage6.cli.
|
|
95
|
+
@patch("vantage6.cli.common.decorator.get_context")
|
|
96
96
|
def test_import(self, context, docker_check, click_path, log, containers):
|
|
97
97
|
"""Import entities without errors."""
|
|
98
98
|
click_path.return_value = MagicMock()
|
vantage6/cli/__build__
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
5
|
vantage6/cli/algostore/attach.py
CHANGED
|
@@ -6,13 +6,13 @@ from colorama import Fore, Style
|
|
|
6
6
|
from vantage6.common import error
|
|
7
7
|
from vantage6.common.docker.addons import check_docker_running
|
|
8
8
|
from vantage6.common.globals import APPNAME, InstanceType
|
|
9
|
-
from vantage6.cli.common.decorator import
|
|
9
|
+
from vantage6.cli.common.decorator import click_insert_context
|
|
10
10
|
from vantage6.cli.common.start import attach_logs
|
|
11
11
|
from vantage6.cli.context.algorithm_store import AlgorithmStoreContext
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
@click.command()
|
|
15
|
-
@
|
|
15
|
+
@click_insert_context(InstanceType.ALGORITHM_STORE)
|
|
16
16
|
def cli_algo_store_attach(ctx: AlgorithmStoreContext) -> None:
|
|
17
17
|
"""
|
|
18
18
|
Show the server logs in the current console.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import click
|
|
2
|
+
|
|
3
|
+
from vantage6.common import info
|
|
4
|
+
from vantage6.cli.context.server import ServerContext
|
|
5
|
+
from vantage6.cli.common.decorator import click_insert_context
|
|
6
|
+
from vantage6.common.globals import InstanceType
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@click.command()
|
|
10
|
+
@click_insert_context(type_=InstanceType.ALGORITHM_STORE)
|
|
11
|
+
def cli_algo_store_files(ctx: ServerContext) -> None:
|
|
12
|
+
"""
|
|
13
|
+
List files that belong to a particular server instance.
|
|
14
|
+
"""
|
|
15
|
+
info(f"Configuration file = {ctx.config_file}")
|
|
16
|
+
info(f"Log file = {ctx.log_file}")
|
|
17
|
+
info(f"Database = {ctx.get_database_uri()}")
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import click
|
|
2
|
+
|
|
3
|
+
from vantage6.common.docker.addons import check_docker_running
|
|
4
|
+
from vantage6.common.globals import InstanceType
|
|
5
|
+
from vantage6.cli.common.utils import get_server_configuration_list
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@click.command()
|
|
9
|
+
def cli_algo_store_configuration_list() -> None:
|
|
10
|
+
"""
|
|
11
|
+
Print the available server configurations.
|
|
12
|
+
"""
|
|
13
|
+
check_docker_running()
|
|
14
|
+
|
|
15
|
+
get_server_configuration_list(InstanceType.ALGORITHM_STORE)
|
vantage6/cli/algostore/start.py
CHANGED
|
@@ -13,7 +13,7 @@ from vantage6.cli.common.start import (
|
|
|
13
13
|
)
|
|
14
14
|
from vantage6.cli.globals import AlgoStoreGlobals
|
|
15
15
|
from vantage6.cli.context.algorithm_store import AlgorithmStoreContext
|
|
16
|
-
from vantage6.cli.common.decorator import
|
|
16
|
+
from vantage6.cli.common.decorator import click_insert_context
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
@click.command()
|
|
@@ -36,7 +36,7 @@ from vantage6.cli.common.decorator import insert_context
|
|
|
36
36
|
default=False,
|
|
37
37
|
help="Print server logs to the console after start",
|
|
38
38
|
)
|
|
39
|
-
@
|
|
39
|
+
@click_insert_context(InstanceType.ALGORITHM_STORE)
|
|
40
40
|
def cli_algo_store_start(
|
|
41
41
|
ctx: AlgorithmStoreContext,
|
|
42
42
|
ip: str,
|
vantage6/cli/algostore/stop.py
CHANGED
|
@@ -8,12 +8,12 @@ from vantage6.common.docker.addons import (
|
|
|
8
8
|
remove_container_if_exists,
|
|
9
9
|
)
|
|
10
10
|
from vantage6.common.globals import APPNAME, InstanceType
|
|
11
|
-
from vantage6.cli.common.decorator import
|
|
11
|
+
from vantage6.cli.common.decorator import click_insert_context
|
|
12
12
|
from vantage6.cli.context.algorithm_store import AlgorithmStoreContext
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
@click.command()
|
|
16
|
-
@
|
|
16
|
+
@click_insert_context(InstanceType.ALGORITHM_STORE)
|
|
17
17
|
@click.option("--all", "all_servers", flag_value=True, help="Stop all servers")
|
|
18
18
|
def cli_algo_store_stop(ctx: AlgorithmStoreContext, all_servers: bool):
|
|
19
19
|
"""
|
vantage6/cli/cli.py
CHANGED
|
@@ -33,6 +33,8 @@ from vantage6.cli.algostore.attach import cli_algo_store_attach
|
|
|
33
33
|
from vantage6.cli.algostore.new import cli_algo_store_new
|
|
34
34
|
from vantage6.cli.algostore.start import cli_algo_store_start
|
|
35
35
|
from vantage6.cli.algostore.stop import cli_algo_store_stop
|
|
36
|
+
from vantage6.cli.algostore.files import cli_algo_store_files
|
|
37
|
+
from vantage6.cli.algostore.list import cli_algo_store_configuration_list
|
|
36
38
|
|
|
37
39
|
|
|
38
40
|
# Define the server group
|
|
@@ -134,6 +136,8 @@ cli_algo_store.add_command(cli_algo_store_attach, name="attach")
|
|
|
134
136
|
cli_algo_store.add_command(cli_algo_store_new, name="new")
|
|
135
137
|
cli_algo_store.add_command(cli_algo_store_start, name="start")
|
|
136
138
|
cli_algo_store.add_command(cli_algo_store_stop, name="stop")
|
|
139
|
+
cli_algo_store.add_command(cli_algo_store_files, name="files")
|
|
140
|
+
cli_algo_store.add_command(cli_algo_store_configuration_list, name="list")
|
|
137
141
|
|
|
138
142
|
|
|
139
143
|
# Define the overall group
|
vantage6/cli/common/decorator.py
CHANGED
|
@@ -10,7 +10,7 @@ from vantage6.cli.context import select_context_class, get_context
|
|
|
10
10
|
|
|
11
11
|
# TODO to make this decorator usable by nodes as well, we should make the
|
|
12
12
|
# default for --user/--system configurable
|
|
13
|
-
def
|
|
13
|
+
def click_insert_context(type_: InstanceType) -> callable:
|
|
14
14
|
"""
|
|
15
15
|
Supply the Click function with an additional context parameter. The context
|
|
16
16
|
is passed to the function as the first argument.
|
|
@@ -27,7 +27,7 @@ def insert_context(type_: InstanceType) -> callable:
|
|
|
27
27
|
|
|
28
28
|
Examples
|
|
29
29
|
--------
|
|
30
|
-
>>> @
|
|
30
|
+
>>> @click_insert_context(InstanceType.SERVER)
|
|
31
31
|
>>> def cli_server_start(ctx: ServerContext, *args, **kwargs) -> None:
|
|
32
32
|
>>> pass
|
|
33
33
|
"""
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import questionary as q
|
|
2
|
+
import docker
|
|
3
|
+
import click
|
|
4
|
+
|
|
5
|
+
from colorama import Fore, Style
|
|
6
|
+
|
|
7
|
+
from vantage6.common import warning, error
|
|
8
|
+
from vantage6.common.globals import APPNAME, InstanceType
|
|
9
|
+
from vantage6.cli.context import select_context_class
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def get_server_name(
|
|
13
|
+
name: str,
|
|
14
|
+
system_folders: bool,
|
|
15
|
+
running_server_names: list[str],
|
|
16
|
+
instance_type: InstanceType,
|
|
17
|
+
) -> str:
|
|
18
|
+
"""
|
|
19
|
+
Get the version of a running server.
|
|
20
|
+
|
|
21
|
+
Parameters
|
|
22
|
+
----------
|
|
23
|
+
name : str
|
|
24
|
+
Name of the server to get the version from
|
|
25
|
+
system_folders : bool
|
|
26
|
+
Whether to use system folders or not
|
|
27
|
+
running_server_names : list[str]
|
|
28
|
+
The names of the running servers
|
|
29
|
+
instance_type : InstanceType
|
|
30
|
+
The type of instance to get the running servers from
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
if not name:
|
|
34
|
+
if not running_server_names:
|
|
35
|
+
error(
|
|
36
|
+
f"No {instance_type}s are running! You can only check the version for "
|
|
37
|
+
f"{instance_type}s that are running"
|
|
38
|
+
)
|
|
39
|
+
exit(1)
|
|
40
|
+
name = q.select(
|
|
41
|
+
f"Select the {instance_type} you wish to inspect:",
|
|
42
|
+
choices=running_server_names,
|
|
43
|
+
).ask()
|
|
44
|
+
else:
|
|
45
|
+
post_fix = "system" if system_folders else "user"
|
|
46
|
+
name = f"{APPNAME}-{name}-{post_fix}"
|
|
47
|
+
return name
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def get_running_servers(
|
|
51
|
+
client: docker.DockerClient, instance_type: InstanceType
|
|
52
|
+
) -> list[str]:
|
|
53
|
+
"""Get the running servers of a certain type.
|
|
54
|
+
|
|
55
|
+
Parameters
|
|
56
|
+
----------
|
|
57
|
+
client : docker.DockerClient
|
|
58
|
+
The docker client to use
|
|
59
|
+
instance_type : InstanceType
|
|
60
|
+
The type of instance to get the running servers from
|
|
61
|
+
|
|
62
|
+
Returns
|
|
63
|
+
-------
|
|
64
|
+
list[str]
|
|
65
|
+
The names of the running servers
|
|
66
|
+
"""
|
|
67
|
+
running_servers = client.containers.list(
|
|
68
|
+
filters={"label": f"{APPNAME}-type={instance_type}"}
|
|
69
|
+
)
|
|
70
|
+
return [server.name for server in running_servers]
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def get_server_configuration_list(instance_type: InstanceType.SERVER) -> None:
|
|
74
|
+
"""
|
|
75
|
+
Print list of available server configurations.
|
|
76
|
+
|
|
77
|
+
Parameters
|
|
78
|
+
----------
|
|
79
|
+
instance_type : InstanceType
|
|
80
|
+
The type of instance to get the configurations for
|
|
81
|
+
"""
|
|
82
|
+
client = docker.from_env()
|
|
83
|
+
ctx_class = select_context_class(instance_type)
|
|
84
|
+
|
|
85
|
+
running_server_names = get_running_servers(client, instance_type)
|
|
86
|
+
header = "\nName" + (21 * " ") + "Status" + (10 * " ") + "System/User"
|
|
87
|
+
|
|
88
|
+
click.echo(header)
|
|
89
|
+
click.echo("-" * len(header))
|
|
90
|
+
|
|
91
|
+
running = Fore.GREEN + "Running" + Style.RESET_ALL
|
|
92
|
+
stopped = Fore.RED + "Not running" + Style.RESET_ALL
|
|
93
|
+
|
|
94
|
+
# system folders
|
|
95
|
+
configs, f1 = ctx_class.available_configurations(system_folders=True)
|
|
96
|
+
for config in configs:
|
|
97
|
+
status = (
|
|
98
|
+
running
|
|
99
|
+
if f"{APPNAME}-{config.name}-system-{instance_type}" in running_server_names
|
|
100
|
+
else stopped
|
|
101
|
+
)
|
|
102
|
+
click.echo(f"{config.name:25}" f"{status:25} System ")
|
|
103
|
+
|
|
104
|
+
# user folders
|
|
105
|
+
configs, f2 = ctx_class.available_configurations(system_folders=False)
|
|
106
|
+
for config in configs:
|
|
107
|
+
status = (
|
|
108
|
+
running
|
|
109
|
+
if f"{APPNAME}-{config.name}-user-{instance_type}" in running_server_names
|
|
110
|
+
else stopped
|
|
111
|
+
)
|
|
112
|
+
click.echo(f"{config.name:25}" f"{status:25} User ")
|
|
113
|
+
|
|
114
|
+
click.echo("-" * 85)
|
|
115
|
+
if len(f1) + len(f2):
|
|
116
|
+
warning(f"{Fore.RED}Failed imports: {len(f1)+len(f2)}{Style.RESET_ALL}")
|
|
@@ -24,7 +24,7 @@ class ServerConfiguration(Configuration):
|
|
|
24
24
|
"description": Use(str),
|
|
25
25
|
"ip": Use(str),
|
|
26
26
|
"port": Use(int),
|
|
27
|
-
"api_path":
|
|
27
|
+
Optional("api_path"): str,
|
|
28
28
|
"uri": Use(str),
|
|
29
29
|
"allow_drop_all": Use(bool),
|
|
30
30
|
"logging": {**LOGGING_VALIDATORS, "file": Use(str)},
|
|
@@ -141,7 +141,10 @@ def node_configuration_questionaire(dirs: dict, instance_name: str) -> dict:
|
|
|
141
141
|
|
|
142
142
|
private_key = "" if not encryption else q.text("Path to private key file:").ask()
|
|
143
143
|
|
|
144
|
-
config["encryption"] = {
|
|
144
|
+
config["encryption"] = {
|
|
145
|
+
"enabled": encryption is True or encryption == "true",
|
|
146
|
+
"private_key": private_key,
|
|
147
|
+
}
|
|
145
148
|
|
|
146
149
|
return config
|
|
147
150
|
|
|
@@ -276,6 +279,15 @@ def server_configuration_questionaire(instance_name: str) -> dict:
|
|
|
276
279
|
if is_mfa:
|
|
277
280
|
config["two_factor_auth"] = is_mfa
|
|
278
281
|
|
|
282
|
+
current_server_url = f"http://localhost:{config['port']}{config['api_path']}"
|
|
283
|
+
config["server_url"] = q.text(
|
|
284
|
+
"What is the server url exposed to the users? If you are running a"
|
|
285
|
+
" development server running locally, this is the same as the "
|
|
286
|
+
"server url. If you are running a production server, this is the "
|
|
287
|
+
"url that users will connect to.",
|
|
288
|
+
default=current_server_url,
|
|
289
|
+
).ask()
|
|
290
|
+
|
|
279
291
|
is_add_vpn = q.confirm("Do you want to add a VPN server?", default=False).ask()
|
|
280
292
|
if is_add_vpn:
|
|
281
293
|
vpn_config = q.prompt(
|
vantage6/cli/context/__init__.py
CHANGED
vantage6/cli/dev/create.py
CHANGED
|
@@ -431,12 +431,10 @@ def create_demo_network(
|
|
|
431
431
|
f"{Style.RESET_ALL}."
|
|
432
432
|
)
|
|
433
433
|
else:
|
|
434
|
-
error(
|
|
435
|
-
f"Configuration {Fore.RED}{server_name}{Style.RESET_ALL} " "already exists!"
|
|
436
|
-
)
|
|
434
|
+
error(f"Configuration {Fore.RED}{server_name}{Style.RESET_ALL} already exists!")
|
|
437
435
|
exit(1)
|
|
438
436
|
(node_config, server_import_config, server_config) = demo
|
|
439
|
-
ctx = get_server_context(server_name, True)
|
|
437
|
+
ctx = get_server_context(server_name, True, ServerContext)
|
|
440
438
|
click_ctx.invoke(
|
|
441
439
|
cli_server_import,
|
|
442
440
|
ctx=ctx,
|
vantage6/cli/dev/remove.py
CHANGED
|
@@ -8,14 +8,14 @@ import click
|
|
|
8
8
|
from vantage6.common import info
|
|
9
9
|
from vantage6.cli.context.server import ServerContext
|
|
10
10
|
from vantage6.cli.context.node import NodeContext
|
|
11
|
-
from vantage6.cli.
|
|
11
|
+
from vantage6.cli.common.decorator import click_insert_context
|
|
12
12
|
from vantage6.cli.server.remove import cli_server_remove
|
|
13
13
|
from vantage6.cli.utils import remove_file
|
|
14
14
|
from vantage6.common.globals import InstanceType
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
@click.command()
|
|
18
|
-
@click_insert_context
|
|
18
|
+
@click_insert_context(type_="server")
|
|
19
19
|
@click.pass_context
|
|
20
20
|
def remove_demo_network(click_ctx: click.Context, ctx: ServerContext) -> None:
|
|
21
21
|
"""Remove all related demo network files and folders.
|
vantage6/cli/dev/start.py
CHANGED
|
@@ -3,12 +3,12 @@ import click
|
|
|
3
3
|
|
|
4
4
|
from vantage6.cli.context.server import ServerContext
|
|
5
5
|
from vantage6.cli.context.node import NodeContext
|
|
6
|
-
from vantage6.cli.
|
|
6
|
+
from vantage6.cli.common.decorator import click_insert_context
|
|
7
7
|
from vantage6.cli.server.start import cli_server_start
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
@click.command()
|
|
11
|
-
@click_insert_context
|
|
11
|
+
@click_insert_context(type_="server")
|
|
12
12
|
@click.option(
|
|
13
13
|
"--server-image", type=str, default=None, help="Server Docker image to use"
|
|
14
14
|
)
|
vantage6/cli/dev/stop.py
CHANGED
|
@@ -2,13 +2,13 @@ import click
|
|
|
2
2
|
|
|
3
3
|
from vantage6.cli.context.server import ServerContext
|
|
4
4
|
from vantage6.cli.context.node import NodeContext
|
|
5
|
-
from vantage6.cli.
|
|
5
|
+
from vantage6.cli.common.decorator import click_insert_context
|
|
6
6
|
from vantage6.cli.server.stop import cli_server_stop
|
|
7
7
|
from vantage6.cli.node.stop import cli_node_stop
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
@click.command()
|
|
11
|
-
@click_insert_context
|
|
11
|
+
@click_insert_context(type_="server")
|
|
12
12
|
@click.pass_context
|
|
13
13
|
def stop_demo_network(click_ctx: click.Context, ctx: ServerContext) -> None:
|
|
14
14
|
"""Stops a demo network's server and nodes.
|
vantage6/cli/globals.py
CHANGED
vantage6/cli/node/start.py
CHANGED
|
@@ -198,7 +198,7 @@ def cli_node_start(
|
|
|
198
198
|
# FIXME: should obtain mount points from DockerNodeContext
|
|
199
199
|
mounts = [
|
|
200
200
|
# (target, source)
|
|
201
|
-
(
|
|
201
|
+
("/mnt/log", str(ctx.log_dir)),
|
|
202
202
|
("/mnt/data", data_volume.name),
|
|
203
203
|
("/mnt/vpn", vpn_volume.name),
|
|
204
204
|
("/mnt/ssh", ssh_volume.name),
|
|
@@ -1,96 +1,19 @@
|
|
|
1
1
|
from typing import Iterable
|
|
2
|
-
from functools import wraps
|
|
3
2
|
|
|
4
3
|
from docker.client import DockerClient
|
|
5
|
-
import click
|
|
6
4
|
from colorama import Fore, Style
|
|
7
5
|
|
|
8
6
|
from vantage6.common import error, info
|
|
9
|
-
from vantage6.common.globals import STRING_ENCODING, APPNAME
|
|
7
|
+
from vantage6.common.globals import STRING_ENCODING, APPNAME
|
|
10
8
|
from vantage6.common.docker.addons import remove_container, get_container
|
|
9
|
+
from vantage6.common.context import AppContext
|
|
11
10
|
|
|
12
|
-
from vantage6.cli.globals import DEFAULT_SERVER_SYSTEM_FOLDERS
|
|
13
11
|
from vantage6.cli.context.server import ServerContext
|
|
14
|
-
from vantage6.cli.configuration_wizard import select_configuration_questionaire
|
|
15
12
|
|
|
16
13
|
|
|
17
|
-
def
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
is then passed to the function as the first argument.
|
|
21
|
-
|
|
22
|
-
Parameters
|
|
23
|
-
----------
|
|
24
|
-
func : Callable
|
|
25
|
-
function you want the context to be passed to
|
|
26
|
-
|
|
27
|
-
Returns
|
|
28
|
-
-------
|
|
29
|
-
Callable
|
|
30
|
-
Click function with context
|
|
31
|
-
"""
|
|
32
|
-
|
|
33
|
-
@click.option(
|
|
34
|
-
"-n", "--name", default=None, help="Name of the configuration you want to use."
|
|
35
|
-
)
|
|
36
|
-
@click.option(
|
|
37
|
-
"-c",
|
|
38
|
-
"--config",
|
|
39
|
-
default=None,
|
|
40
|
-
help="Absolute path to configuration-file; overrides NAME",
|
|
41
|
-
)
|
|
42
|
-
@click.option(
|
|
43
|
-
"--system",
|
|
44
|
-
"system_folders",
|
|
45
|
-
flag_value=True,
|
|
46
|
-
help="Use system folders instead of user folders. This is " "the default",
|
|
47
|
-
)
|
|
48
|
-
@click.option(
|
|
49
|
-
"--user",
|
|
50
|
-
"system_folders",
|
|
51
|
-
flag_value=False,
|
|
52
|
-
default=DEFAULT_SERVER_SYSTEM_FOLDERS,
|
|
53
|
-
help="Use user folders instead of system folders",
|
|
54
|
-
)
|
|
55
|
-
@wraps(func)
|
|
56
|
-
def func_with_context(
|
|
57
|
-
name: str, config: str, system_folders: bool, *args, **kwargs
|
|
58
|
-
) -> callable:
|
|
59
|
-
"""
|
|
60
|
-
Decorator function that adds the context to the function.
|
|
61
|
-
|
|
62
|
-
Returns
|
|
63
|
-
-------
|
|
64
|
-
Callable
|
|
65
|
-
Decorated function
|
|
66
|
-
"""
|
|
67
|
-
# path to configuration file always overrides name
|
|
68
|
-
if config:
|
|
69
|
-
ctx = ServerContext.from_external_config_file(config, system_folders)
|
|
70
|
-
elif "ctx" in kwargs:
|
|
71
|
-
# if ctx is already in kwargs (typically when one click command
|
|
72
|
-
# calls another internally), use that existing ctx
|
|
73
|
-
ctx = kwargs.pop("ctx")
|
|
74
|
-
else:
|
|
75
|
-
# in case no name, ctx or config file is supplied, ask the user to
|
|
76
|
-
# select an existing config by name
|
|
77
|
-
if not name:
|
|
78
|
-
try:
|
|
79
|
-
# select configuration if none supplied
|
|
80
|
-
name = select_configuration_questionaire(
|
|
81
|
-
InstanceType.SERVER, system_folders
|
|
82
|
-
)
|
|
83
|
-
except Exception:
|
|
84
|
-
error("No configurations could be found!")
|
|
85
|
-
exit(1)
|
|
86
|
-
|
|
87
|
-
ctx = get_server_context(name, system_folders)
|
|
88
|
-
return func(ctx, *args, **kwargs)
|
|
89
|
-
|
|
90
|
-
return func_with_context
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
def get_server_context(name: str, system_folders: bool) -> ServerContext:
|
|
14
|
+
def get_server_context(
|
|
15
|
+
name: str, system_folders: bool, ctx_class: AppContext
|
|
16
|
+
) -> AppContext:
|
|
94
17
|
"""
|
|
95
18
|
Load the server context from the configuration file.
|
|
96
19
|
|
|
@@ -100,13 +23,15 @@ def get_server_context(name: str, system_folders: bool) -> ServerContext:
|
|
|
100
23
|
Name of the server to inspect
|
|
101
24
|
system_folders : bool
|
|
102
25
|
Wether to use system folders or if False, the user folders
|
|
26
|
+
ctx_class : AppContext
|
|
27
|
+
Context class to be used. Derivative of AppContext class
|
|
103
28
|
|
|
104
29
|
Returns
|
|
105
30
|
-------
|
|
106
31
|
ServerContext
|
|
107
32
|
Server context object
|
|
108
33
|
"""
|
|
109
|
-
if not
|
|
34
|
+
if not ctx_class.config_exists(name, system_folders):
|
|
110
35
|
scope = "system" if system_folders else "user"
|
|
111
36
|
error(
|
|
112
37
|
f"Configuration {Fore.RED}{name}{Style.RESET_ALL} does not "
|
|
@@ -116,10 +41,10 @@ def get_server_context(name: str, system_folders: bool) -> ServerContext:
|
|
|
116
41
|
|
|
117
42
|
# We do not want to log this here, we do this in the container and not on
|
|
118
43
|
# the host. We only want CLI logging here.
|
|
119
|
-
|
|
44
|
+
ctx_class.LOGGING_ENABLED = False
|
|
120
45
|
|
|
121
46
|
# create server context, and initialize db
|
|
122
|
-
ctx =
|
|
47
|
+
ctx = ctx_class(name, system_folders=system_folders)
|
|
123
48
|
|
|
124
49
|
return ctx
|
|
125
50
|
|
vantage6/cli/server/files.py
CHANGED
|
@@ -2,11 +2,11 @@ import click
|
|
|
2
2
|
|
|
3
3
|
from vantage6.common import info
|
|
4
4
|
from vantage6.cli.context.server import ServerContext
|
|
5
|
-
from vantage6.cli.
|
|
5
|
+
from vantage6.cli.common.decorator import click_insert_context
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
@click.command()
|
|
9
|
-
@click_insert_context
|
|
9
|
+
@click_insert_context(type_="server")
|
|
10
10
|
def cli_server_files(ctx: ServerContext) -> None:
|
|
11
11
|
"""
|
|
12
12
|
List files that belong to a particular server instance.
|
vantage6/cli/server/import_.py
CHANGED
|
@@ -16,7 +16,8 @@ from vantage6.common.globals import (
|
|
|
16
16
|
)
|
|
17
17
|
from vantage6.cli.context.server import ServerContext
|
|
18
18
|
from vantage6.cli.utils import check_config_name_allowed
|
|
19
|
-
from vantage6.cli.
|
|
19
|
+
from vantage6.cli.common.decorator import click_insert_context
|
|
20
|
+
from vantage6.cli.server.common import print_log_worker
|
|
20
21
|
|
|
21
22
|
|
|
22
23
|
# TODO this method has a lot of duplicated code from `start`
|
|
@@ -41,7 +42,7 @@ from vantage6.cli.server.common import click_insert_context, print_log_worker
|
|
|
41
42
|
help="Keep image after finishing. Useful for debugging",
|
|
42
43
|
)
|
|
43
44
|
@click.option("--wait", default=False, help="Wait for the import to finish")
|
|
44
|
-
@click_insert_context
|
|
45
|
+
@click_insert_context(type_="server")
|
|
45
46
|
def cli_server_import(
|
|
46
47
|
ctx: ServerContext,
|
|
47
48
|
file: str,
|
vantage6/cli/server/list.py
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
import click
|
|
2
|
-
import docker
|
|
3
2
|
|
|
4
|
-
from colorama import Fore, Style
|
|
5
|
-
|
|
6
|
-
from vantage6.common import warning
|
|
7
3
|
from vantage6.common.docker.addons import check_docker_running
|
|
8
|
-
from vantage6.common.globals import
|
|
9
|
-
from vantage6.cli.
|
|
4
|
+
from vantage6.common.globals import InstanceType
|
|
5
|
+
from vantage6.cli.common.utils import get_server_configuration_list
|
|
10
6
|
|
|
11
7
|
|
|
12
8
|
@click.command()
|
|
@@ -15,45 +11,5 @@ def cli_server_configuration_list() -> None:
|
|
|
15
11
|
Print the available server configurations.
|
|
16
12
|
"""
|
|
17
13
|
check_docker_running()
|
|
18
|
-
client = docker.from_env()
|
|
19
|
-
|
|
20
|
-
running_server = client.containers.list(
|
|
21
|
-
filters={"label": f"{APPNAME}-type={InstanceType.SERVER}"}
|
|
22
|
-
)
|
|
23
|
-
running_node_names = []
|
|
24
|
-
for node in running_server:
|
|
25
|
-
running_node_names.append(node.name)
|
|
26
|
-
|
|
27
|
-
header = "\nName" + (21 * " ") + "Status" + (10 * " ") + "System/User"
|
|
28
|
-
|
|
29
|
-
click.echo(header)
|
|
30
|
-
click.echo("-" * len(header))
|
|
31
|
-
|
|
32
|
-
running = Fore.GREEN + "Running" + Style.RESET_ALL
|
|
33
|
-
stopped = Fore.RED + "Not running" + Style.RESET_ALL
|
|
34
|
-
|
|
35
|
-
# system folders
|
|
36
|
-
configs, f1 = ServerContext.available_configurations(system_folders=True)
|
|
37
|
-
for config in configs:
|
|
38
|
-
status = (
|
|
39
|
-
running
|
|
40
|
-
if f"{APPNAME}-{config.name}-system-{InstanceType.SERVER}"
|
|
41
|
-
in running_node_names
|
|
42
|
-
else stopped
|
|
43
|
-
)
|
|
44
|
-
click.echo(f"{config.name:25}" f"{status:25} System ")
|
|
45
|
-
|
|
46
|
-
# user folders
|
|
47
|
-
configs, f2 = ServerContext.available_configurations(system_folders=False)
|
|
48
|
-
for config in configs:
|
|
49
|
-
status = (
|
|
50
|
-
running
|
|
51
|
-
if f"{APPNAME}-{config.name}-user-{InstanceType.SERVER}"
|
|
52
|
-
in running_node_names
|
|
53
|
-
else stopped
|
|
54
|
-
)
|
|
55
|
-
click.echo(f"{config.name:25}" f"{status:25} User ")
|
|
56
14
|
|
|
57
|
-
|
|
58
|
-
if len(f1) + len(f2):
|
|
59
|
-
warning(f"{Fore.RED}Failed imports: {len(f1)+len(f2)}{Style.RESET_ALL}")
|
|
15
|
+
get_server_configuration_list(InstanceType.SERVER)
|
vantage6/cli/server/remove.py
CHANGED
|
@@ -4,13 +4,13 @@ import questionary as q
|
|
|
4
4
|
|
|
5
5
|
from vantage6.common import info
|
|
6
6
|
from vantage6.common.docker.addons import check_docker_running
|
|
7
|
-
from vantage6.cli.
|
|
7
|
+
from vantage6.cli.common.decorator import click_insert_context
|
|
8
8
|
from vantage6.cli.context import ServerContext
|
|
9
9
|
from vantage6.cli.utils import remove_file
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
@click.command()
|
|
13
|
-
@click_insert_context
|
|
13
|
+
@click_insert_context(type_="server")
|
|
14
14
|
@click.option("-f", "--force", "force", flag_value=True)
|
|
15
15
|
def cli_server_remove(ctx: ServerContext, force: bool) -> None:
|
|
16
16
|
"""
|
vantage6/cli/server/shell.py
CHANGED
|
@@ -8,11 +8,11 @@ from vantage6.common import info, error, debug as debug_msg
|
|
|
8
8
|
from vantage6.common.docker.addons import check_docker_running
|
|
9
9
|
from vantage6.common.globals import APPNAME, InstanceType
|
|
10
10
|
from vantage6.cli.context.server import ServerContext
|
|
11
|
-
from vantage6.cli.
|
|
11
|
+
from vantage6.cli.common.decorator import click_insert_context
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
@click.command()
|
|
15
|
-
@click_insert_context
|
|
15
|
+
@click_insert_context(type_="server")
|
|
16
16
|
def cli_server_shell(ctx: ServerContext) -> None:
|
|
17
17
|
"""
|
|
18
18
|
Run an iPython shell within a running server. This can be used to modify
|
vantage6/cli/server/start.py
CHANGED
|
@@ -14,7 +14,8 @@ from vantage6.common.globals import (
|
|
|
14
14
|
from vantage6.cli.globals import DEFAULT_UI_PORT, ServerGlobals
|
|
15
15
|
from vantage6.cli.context.server import ServerContext
|
|
16
16
|
from vantage6.cli.rabbitmq.queue_manager import RabbitMQManager
|
|
17
|
-
from vantage6.cli.server.common import
|
|
17
|
+
from vantage6.cli.server.common import stop_ui
|
|
18
|
+
from vantage6.cli.common.decorator import click_insert_context
|
|
18
19
|
from vantage6.cli.common.start import (
|
|
19
20
|
attach_logs,
|
|
20
21
|
check_for_start,
|
|
@@ -64,7 +65,7 @@ from vantage6.cli.common.start import (
|
|
|
64
65
|
default=False,
|
|
65
66
|
help="Print server logs to the console after start",
|
|
66
67
|
)
|
|
67
|
-
@click_insert_context
|
|
68
|
+
@click_insert_context(type_="server")
|
|
68
69
|
def cli_server_start(
|
|
69
70
|
ctx: ServerContext,
|
|
70
71
|
ip: str,
|
vantage6/cli/server/stop.py
CHANGED
|
@@ -17,7 +17,7 @@ from vantage6.common.docker.addons import (
|
|
|
17
17
|
)
|
|
18
18
|
from vantage6.common.globals import APPNAME, InstanceType
|
|
19
19
|
from vantage6.cli.rabbitmq import split_rabbitmq_uri
|
|
20
|
-
|
|
20
|
+
from vantage6.cli.context.server import ServerContext
|
|
21
21
|
from vantage6.cli.globals import DEFAULT_SERVER_SYSTEM_FOLDERS
|
|
22
22
|
from vantage6.cli.server.common import get_server_context, stop_ui
|
|
23
23
|
|
|
@@ -91,7 +91,7 @@ def _stop_server_containers(
|
|
|
91
91
|
scope = "system" if system_folders else "user"
|
|
92
92
|
config_name = get_server_config_name(container_name, scope)
|
|
93
93
|
|
|
94
|
-
ctx = get_server_context(config_name, system_folders)
|
|
94
|
+
ctx = get_server_context(config_name, system_folders, ServerContext)
|
|
95
95
|
|
|
96
96
|
# kill the UI container (if it exists)
|
|
97
97
|
stop_ui(client, ctx)
|
vantage6/cli/server/version.py
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import click
|
|
2
|
-
import questionary as q
|
|
3
2
|
import docker
|
|
4
3
|
|
|
5
4
|
from vantage6.common import error
|
|
6
5
|
from vantage6.common.docker.addons import check_docker_running
|
|
7
|
-
from vantage6.common.globals import
|
|
6
|
+
from vantage6.common.globals import InstanceType
|
|
7
|
+
from vantage6.cli.common.utils import get_server_name, get_running_servers
|
|
8
8
|
from vantage6.cli.globals import DEFAULT_SERVER_SYSTEM_FOLDERS
|
|
9
9
|
from vantage6.cli import __version__
|
|
10
10
|
|
|
@@ -22,24 +22,11 @@ def cli_server_version(name: str, system_folders: bool) -> None:
|
|
|
22
22
|
check_docker_running()
|
|
23
23
|
client = docker.from_env()
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
filters={"label": f"{APPNAME}-type={InstanceType.SERVER}"}
|
|
27
|
-
)
|
|
28
|
-
running_server_names = [server.name for server in running_servers]
|
|
25
|
+
running_server_names = get_running_servers(client, InstanceType.SERVER)
|
|
29
26
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
"No servers are running! You can only check the version for "
|
|
34
|
-
"servers that are running"
|
|
35
|
-
)
|
|
36
|
-
exit(1)
|
|
37
|
-
name = q.select(
|
|
38
|
-
"Select the server you wish to inspect:", choices=running_server_names
|
|
39
|
-
).ask()
|
|
40
|
-
else:
|
|
41
|
-
post_fix = "system" if system_folders else "user"
|
|
42
|
-
name = f"{APPNAME}-{name}-{post_fix}"
|
|
27
|
+
name = get_server_name(
|
|
28
|
+
name, system_folders, running_server_names, InstanceType.SERVER
|
|
29
|
+
)
|
|
43
30
|
|
|
44
31
|
if name in running_server_names:
|
|
45
32
|
container = client.containers.get(name)
|
|
@@ -47,6 +47,12 @@ from vantage6.cli.test.common.diagnostic_runner import DiagnosticRunner
|
|
|
47
47
|
help="Run the diagnostic test on only nodes that are online",
|
|
48
48
|
)
|
|
49
49
|
@click.option("--no-vpn", is_flag=True, help="Don't execute VPN tests")
|
|
50
|
+
@click.option(
|
|
51
|
+
"--private-key",
|
|
52
|
+
type=str,
|
|
53
|
+
default=None,
|
|
54
|
+
help="Path to the private key for end-to-end encryption",
|
|
55
|
+
)
|
|
50
56
|
def cli_test_features(
|
|
51
57
|
host: str,
|
|
52
58
|
port: int,
|
|
@@ -58,6 +64,7 @@ def cli_test_features(
|
|
|
58
64
|
all_nodes: bool,
|
|
59
65
|
online_only: bool,
|
|
60
66
|
no_vpn: bool,
|
|
67
|
+
private_key: str | None,
|
|
61
68
|
) -> list[dict]:
|
|
62
69
|
"""
|
|
63
70
|
Run diagnostic checks on an existing vantage6 network.
|
|
@@ -74,7 +81,7 @@ def cli_test_features(
|
|
|
74
81
|
|
|
75
82
|
client = UserClient(host=host, port=port, path=api_path, log_level="critical")
|
|
76
83
|
client.authenticate(username=username, password=password)
|
|
77
|
-
client.setup_encryption(
|
|
84
|
+
client.setup_encryption(private_key)
|
|
78
85
|
diagnose = DiagnosticRunner(client, collaboration, organizations, online_only)
|
|
79
86
|
res = diagnose(base=True, vpn=not no_vpn)
|
|
80
87
|
return res
|
vantage6/cli/utils.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: vantage6
|
|
3
|
-
Version: 4.3.
|
|
3
|
+
Version: 4.3.0b5
|
|
4
4
|
Summary: vantage6 command line interface
|
|
5
5
|
Home-page: https://github.com/vantage6/vantage6
|
|
6
6
|
Requires-Python: >=3.10
|
|
@@ -15,8 +15,8 @@ Requires-Dist: questionary ==1.10.0
|
|
|
15
15
|
Requires-Dist: rich ==13.5.2
|
|
16
16
|
Requires-Dist: schema ==0.7.5
|
|
17
17
|
Requires-Dist: SQLAlchemy ==1.4.46
|
|
18
|
-
Requires-Dist: vantage6-common ==4.3.
|
|
19
|
-
Requires-Dist: vantage6-client ==4.3.
|
|
18
|
+
Requires-Dist: vantage6-common ==4.3.0b5
|
|
19
|
+
Requires-Dist: vantage6-client ==4.3.0b5
|
|
20
20
|
Provides-Extra: dev
|
|
21
21
|
Requires-Dist: coverage ==6.4.4 ; extra == 'dev'
|
|
22
22
|
Requires-Dist: black ; extra == 'dev'
|
|
@@ -1,33 +1,36 @@
|
|
|
1
1
|
tests_cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
2
|
tests_cli/test_example.py,sha256=0fw_v-lgZEacshWSDwLNyLMA1_xc48bKUGM3ll-n1L0,146
|
|
3
3
|
tests_cli/test_node_cli.py,sha256=FpK6MXQL_0i42k1hf4enfoLamCZ0Clv2cNLBryS-rEs,15758
|
|
4
|
-
tests_cli/test_server_cli.py,sha256=
|
|
4
|
+
tests_cli/test_server_cli.py,sha256=eGJx_XHzfcYlJC6ytc8tHu6nxkr9FqKws-lovp2WFks,5801
|
|
5
5
|
tests_cli/test_wizard.py,sha256=ntYuXm3SWKvPgcE7wGVPM9ReWoPNMu9_UbDL6KAE1wU,3772
|
|
6
|
-
vantage6/cli/__build__,sha256=
|
|
6
|
+
vantage6/cli/__build__,sha256=7y0SfeN7lCuq0GFF5UsMYZofIjJ7LrvPvsePVWSv450,1
|
|
7
7
|
vantage6/cli/__init__.py,sha256=dEbhLHe9VfU3otY3CQkMVrj39uPGWjqzAvHW2B2Flgs,62
|
|
8
8
|
vantage6/cli/_version.py,sha256=KQrzTJZVe-_U7oqr-s8Cgd2NFSkskimnkIIKa_7yXcc,695
|
|
9
|
-
vantage6/cli/cli.py,sha256=
|
|
10
|
-
vantage6/cli/configuration_manager.py,sha256=
|
|
11
|
-
vantage6/cli/configuration_wizard.py,sha256=
|
|
12
|
-
vantage6/cli/globals.py,sha256
|
|
13
|
-
vantage6/cli/utils.py,sha256=
|
|
9
|
+
vantage6/cli/cli.py,sha256=G7qpHK-LTOjwZOQxVL_BNONekTBSsS9U4ZD1oweGp48,5904
|
|
10
|
+
vantage6/cli/configuration_manager.py,sha256=wxQYhRqjCMgXuk7ycN5AHnD1R6Hi7S2kl7dpCAUHNOc,3506
|
|
11
|
+
vantage6/cli/configuration_wizard.py,sha256=pzKJJvg5idk9kc0sPFTo-Q9VFltm4L5vhSuQDPJV5KM,14295
|
|
12
|
+
vantage6/cli/globals.py,sha256=-d-y-ASioIMhvzVxNATyFOs5cKXGkiWf_75gqiT2B-M,1642
|
|
13
|
+
vantage6/cli/utils.py,sha256=8_PZeihjopYXQU10gMwIKr87yDAq-_z2LKi0BcdhNEc,2365
|
|
14
14
|
vantage6/cli/algorithm/create.py,sha256=xdQGVhpIdqkOXLaVBB8Jc1Q9SbsWtR8KiYIfqH8ww0I,1453
|
|
15
15
|
vantage6/cli/algorithm/update.py,sha256=t2JgJZohYBoVRsIx9er2tKO1yQnzanEJkIEm65XaQqc,800
|
|
16
|
-
vantage6/cli/algostore/attach.py,sha256=
|
|
16
|
+
vantage6/cli/algostore/attach.py,sha256=Gr5Zb320cMdAOOpNbhx459M1YlI9qaCjt8YlSm-wMOQ,1135
|
|
17
|
+
vantage6/cli/algostore/files.py,sha256=r89VRixK_K-c44qseq58Aa2Dqf1wEf8yompQRN5AVu4,580
|
|
18
|
+
vantage6/cli/algostore/list.py,sha256=owBrU52ANp8oE68Rk1Hhd6yNYqWX-7uREtmCok_wndg,417
|
|
17
19
|
vantage6/cli/algostore/new.py,sha256=9CMYBjHyXPIhOx7wtkFf99-6EHSTG70MRdg8m8VtMUg,2009
|
|
18
|
-
vantage6/cli/algostore/start.py,sha256=
|
|
19
|
-
vantage6/cli/algostore/stop.py,sha256=
|
|
20
|
-
vantage6/cli/common/decorator.py,sha256=
|
|
20
|
+
vantage6/cli/algostore/start.py,sha256=UTtw6Q8fNXn4x_JtH2cdQ2V78afSxsQxFtAL9EmAVZA,3099
|
|
21
|
+
vantage6/cli/algostore/stop.py,sha256=q1bkATwB8cdNAgWxGBr9C6o4wSUaKKQky4Oa_f-FFj8,1826
|
|
22
|
+
vantage6/cli/common/decorator.py,sha256=vPAJex_8aEAYgv64l34tupQuU31JOwLkL-jLRaQ96Zs,3234
|
|
21
23
|
vantage6/cli/common/start.py,sha256=P9qXwdEzSL_wPyvsSiF4rcX-aVsO_AwbYPYhXIIh4Cs,7029
|
|
22
|
-
vantage6/cli/
|
|
24
|
+
vantage6/cli/common/utils.py,sha256=EfY0cO2nnM-RLhfb7mVUOMwt8S66ZNAHLV5vxZJWjo0,3408
|
|
25
|
+
vantage6/cli/context/__init__.py,sha256=e8rfY2tCyu6_SLQ-rbVzEHkDtmbnGCZRHFN_HH-2bnA,2683
|
|
23
26
|
vantage6/cli/context/algorithm_store.py,sha256=IyQ8MaaAPI3V73R0NBp3XMJSqYwc0RF83EeILmvuZhY,4063
|
|
24
27
|
vantage6/cli/context/base_server.py,sha256=paKSzNrKWD-J6eakHAtGELk2cD05A8NqoCAuQfF7c2s,2972
|
|
25
28
|
vantage6/cli/context/node.py,sha256=kOSUCEGik4eVIeY2YzUhPI1LwZrmaq1HuXREvBFRFKY,7236
|
|
26
29
|
vantage6/cli/context/server.py,sha256=f19cAc_rjrNctzllrsozZ2O7k2pTS94_oDqzLMsgPj8,4071
|
|
27
|
-
vantage6/cli/dev/create.py,sha256=
|
|
28
|
-
vantage6/cli/dev/remove.py,sha256
|
|
29
|
-
vantage6/cli/dev/start.py,sha256=
|
|
30
|
-
vantage6/cli/dev/stop.py,sha256=
|
|
30
|
+
vantage6/cli/dev/create.py,sha256=65iOMsp3SqHYBwMQhpK3FL2bbf58yPIjd34fO_lexU4,13398
|
|
31
|
+
vantage6/cli/dev/remove.py,sha256=-qPWY9VTpB11QqxznJWhjkobFMP-gxz8EAZyjfZDP5g,2223
|
|
32
|
+
vantage6/cli/dev/start.py,sha256=uIxSJGmqUqOVvMmACaGEO-9q9nAmviyv6g4H-SjdMKk,1667
|
|
33
|
+
vantage6/cli/dev/stop.py,sha256=hZhNXNe4I0Vfq9GFTYZ1vSJCJxSPkpVlud48klmLkwk,1052
|
|
31
34
|
vantage6/cli/node/attach.py,sha256=uWKoP8N__yJZj1QX_xRWHGnBJnEP0peGAH22SpwVXdo,2167
|
|
32
35
|
vantage6/cli/node/clean.py,sha256=9W9PaVILx8SnmB2lymw23KJeQmH5nFcX79QHcEOvo0A,1124
|
|
33
36
|
vantage6/cli/node/create_private_key.py,sha256=ojzwis_EW5AaBHc7gK9LmGhFxZTAkuBUQpEpjYcnC74,4997
|
|
@@ -36,33 +39,33 @@ vantage6/cli/node/list.py,sha256=_WZ8EBIEUlzFhVp3cR2MK5FUuQicMEZHhD8npMwKSpM,166
|
|
|
36
39
|
vantage6/cli/node/new.py,sha256=C-ZHQOiOtslOy6mF-G-MuR5E_65GKJW7L4FxxrKojUg,1923
|
|
37
40
|
vantage6/cli/node/remove.py,sha256=9pBWKF1YtvT6j7fDOKAEkGeT57JpJQgHa3uLorA5e4s,3553
|
|
38
41
|
vantage6/cli/node/set_api_key.py,sha256=IX07QwpTGefRC92lqm34HX9xThRVcXl5DcWSLt1Ro6w,1747
|
|
39
|
-
vantage6/cli/node/start.py,sha256=
|
|
42
|
+
vantage6/cli/node/start.py,sha256=0UxIImtDxcYkjUFz2KzIORhsmsVnE3M2Uz4s-JDZzNs,13318
|
|
40
43
|
vantage6/cli/node/stop.py,sha256=NfXlSCQ6VcC15iVhgiMklIq-inv6aPnoHrjnvbFpAHc,2678
|
|
41
44
|
vantage6/cli/node/version.py,sha256=eYJ4ayQsEsHPL00V88UY1LhmlnQCzF-Te4lrw4SFbHQ,1836
|
|
42
|
-
vantage6/cli/node/common/__init__.py,sha256=
|
|
45
|
+
vantage6/cli/node/common/__init__.py,sha256=blcX0xvTnFvWITdt7d250CxtjxrXbA-xmL6m4G0g8GA,3239
|
|
43
46
|
vantage6/cli/rabbitmq/__init__.py,sha256=Kb8pTiIAoRchbwLznM6-c4j6mkKAKXAparpYbjjajHU,737
|
|
44
47
|
vantage6/cli/rabbitmq/definitions.py,sha256=CcS9jG7ZGB6LjzHQqZ2FliDurPItUvNSjHrOYptORZg,637
|
|
45
48
|
vantage6/cli/rabbitmq/queue_manager.py,sha256=QurvkbgtRUUBSv_XggnLEpvi33oeFuwB7abPe_QSRtA,7543
|
|
46
49
|
vantage6/cli/rabbitmq/rabbitmq.config,sha256=LYAQAEoXaF472XeJDYXc9JfWSETIzPRIR2W-JB2i7fU,136
|
|
47
50
|
vantage6/cli/server/attach.py,sha256=5FhopXz0b25EnL4Pu8auqFKOrSHsTTuNmrmgZ6HS0xs,2004
|
|
48
|
-
vantage6/cli/server/files.py,sha256=
|
|
49
|
-
vantage6/cli/server/import_.py,sha256=
|
|
50
|
-
vantage6/cli/server/list.py,sha256=
|
|
51
|
+
vantage6/cli/server/files.py,sha256=LJhFyYHcEnCgFhVAM-lX6_EnfhMJ7YPdN21kVIpmwkc,507
|
|
52
|
+
vantage6/cli/server/import_.py,sha256=CA0Y2VoyCO8Vg9pkPse9tifalh7meTcXi-cS2tEj38Y,4668
|
|
53
|
+
vantage6/cli/server/list.py,sha256=qxBaUFmkP2tNNo9cuZB5OsVg3KD_c9KJDSTC4cxuUOM,404
|
|
51
54
|
vantage6/cli/server/new.py,sha256=SGOQXQDNg9ihnPpmJCDTQ-Yn2GkDhEu84dtsQ3v5Pq4,1978
|
|
52
|
-
vantage6/cli/server/remove.py,sha256=
|
|
53
|
-
vantage6/cli/server/shell.py,sha256=
|
|
54
|
-
vantage6/cli/server/start.py,sha256=
|
|
55
|
-
vantage6/cli/server/stop.py,sha256=
|
|
56
|
-
vantage6/cli/server/version.py,sha256=
|
|
57
|
-
vantage6/cli/server/common/__init__.py,sha256=
|
|
55
|
+
vantage6/cli/server/remove.py,sha256=2Zjs8Aq3XYNpeaGr5eSJmPCnxbYlyyEQPKSdPaJnAF4,1214
|
|
56
|
+
vantage6/cli/server/shell.py,sha256=9b_koFmBQRQYIK57usm75hZAaIF4msicLTu55dYHlzM,1583
|
|
57
|
+
vantage6/cli/server/start.py,sha256=1060ZBES8MQwLOsPb664q-wv-wNtWycNtKn-TrO5G54,7650
|
|
58
|
+
vantage6/cli/server/stop.py,sha256=A3io-Gopm4vjOfOZYYFze8LQKFtvZBaHx99C_ULnPRk,4018
|
|
59
|
+
vantage6/cli/server/version.py,sha256=AUYp0CJBnYF8tD3HXqE7kM0RycXipjOYEDkraswUlaA,1306
|
|
60
|
+
vantage6/cli/server/common/__init__.py,sha256=q79uqZ4v-biPJcp4-g4_n_voAdYo1HnTgQJtvkAfqzU,2443
|
|
58
61
|
vantage6/cli/template/node_config.j2,sha256=ebTifJuRlfUhjtI8jm9A2SWXGpUcg8L-XUBInSwAppA,522
|
|
59
62
|
vantage6/cli/template/server_config.j2,sha256=rKXMky8rA7Lnf5USlPx0Es9AskwmL4bILWfACPvygv4,394
|
|
60
63
|
vantage6/cli/template/server_import_config.j2,sha256=PRB0ym_FYjx9vhkmY9C0xzlv_85Y5kBfWdUYs089bNQ,1844
|
|
61
|
-
vantage6/cli/test/feature_tester.py,sha256=
|
|
64
|
+
vantage6/cli/test/feature_tester.py,sha256=vTmJrqjA6J_GFWvZDmin4Nx1AO2Mhy21YacTr2vZi2U,2497
|
|
62
65
|
vantage6/cli/test/integration_test.py,sha256=DT3qjl1lq7nVBflT5ed1Yu2aNT1cwHCqh8_hafi4e2k,3802
|
|
63
66
|
vantage6/cli/test/common/diagnostic_runner.py,sha256=x_4ikihgoSTKI914pqlgVziBSg5LpV6MheO6O_GBCeA,6657
|
|
64
|
-
vantage6-4.3.
|
|
65
|
-
vantage6-4.3.
|
|
66
|
-
vantage6-4.3.
|
|
67
|
-
vantage6-4.3.
|
|
68
|
-
vantage6-4.3.
|
|
67
|
+
vantage6-4.3.0b5.dist-info/METADATA,sha256=5eXTgHfu7EM1-pN3CHeb8iHeckzhV5_Etxaq3LOJ4Yk,9845
|
|
68
|
+
vantage6-4.3.0b5.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
|
69
|
+
vantage6-4.3.0b5.dist-info/entry_points.txt,sha256=YFBvwjxoeAGxYyPC-YevEgOBBYRGaXkS6jiOGGCLNy0,157
|
|
70
|
+
vantage6-4.3.0b5.dist-info/top_level.txt,sha256=CYDIBS8jEfFq5YCs_Fuit54K9-3wdosZppTrsymIoUk,19
|
|
71
|
+
vantage6-4.3.0b5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|