vantage6 5.0.0a36__py3-none-any.whl → 5.0.0a38__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.

Files changed (80) hide show
  1. vantage6/cli/algorithm/generate_algorithm_json.py +0 -1
  2. vantage6/cli/algostore/attach.py +28 -3
  3. vantage6/cli/algostore/list.py +2 -2
  4. vantage6/cli/algostore/new.py +3 -2
  5. vantage6/cli/algostore/start.py +25 -6
  6. vantage6/cli/algostore/stop.py +3 -0
  7. vantage6/cli/algostore/version.py +62 -0
  8. vantage6/cli/auth/attach.py +1 -1
  9. vantage6/cli/auth/list.py +2 -2
  10. vantage6/cli/auth/new.py +3 -2
  11. vantage6/cli/auth/remove.py +58 -0
  12. vantage6/cli/auth/start.py +27 -9
  13. vantage6/cli/auth/stop.py +3 -0
  14. vantage6/cli/cli.py +21 -0
  15. vantage6/cli/common/attach.py +114 -0
  16. vantage6/cli/common/decorator.py +25 -4
  17. vantage6/cli/common/list.py +68 -0
  18. vantage6/cli/common/new.py +27 -7
  19. vantage6/cli/common/remove.py +18 -0
  20. vantage6/cli/common/start.py +48 -40
  21. vantage6/cli/common/stop.py +16 -4
  22. vantage6/cli/common/utils.py +65 -74
  23. vantage6/cli/common/version.py +82 -0
  24. vantage6/cli/config.py +10 -2
  25. vantage6/cli/{configuration_wizard.py → configuration_create.py} +22 -14
  26. vantage6/cli/configuration_manager.py +70 -21
  27. vantage6/cli/context/__init__.py +10 -5
  28. vantage6/cli/context/algorithm_store.py +13 -7
  29. vantage6/cli/context/auth.py +23 -5
  30. vantage6/cli/context/node.py +25 -8
  31. vantage6/cli/context/server.py +18 -6
  32. vantage6/cli/globals.py +1 -0
  33. vantage6/cli/node/attach.py +27 -3
  34. vantage6/cli/node/common/__init__.py +26 -10
  35. vantage6/cli/node/common/task_cleanup.py +153 -0
  36. vantage6/cli/node/list.py +3 -44
  37. vantage6/cli/node/new.py +13 -6
  38. vantage6/cli/node/set_api_key.py +1 -1
  39. vantage6/cli/node/start.py +30 -7
  40. vantage6/cli/node/stop.py +151 -7
  41. vantage6/cli/node/version.py +96 -33
  42. vantage6/cli/sandbox/config/base.py +109 -0
  43. vantage6/cli/sandbox/config/core.py +300 -0
  44. vantage6/cli/sandbox/config/node.py +311 -0
  45. vantage6/cli/sandbox/data/km_dataset.csv +2401 -0
  46. vantage6/cli/sandbox/data/olympic_athletes_2016.csv +2425 -0
  47. vantage6/cli/sandbox/new.py +207 -0
  48. vantage6/cli/sandbox/populate/__init__.py +173 -0
  49. vantage6/cli/sandbox/populate/helpers/connect_store.py +203 -0
  50. vantage6/cli/sandbox/populate/helpers/delete_fixtures.py +67 -0
  51. vantage6/cli/sandbox/populate/helpers/load_fixtures.py +476 -0
  52. vantage6/cli/sandbox/populate/helpers/utils.py +35 -0
  53. vantage6/cli/sandbox/remove.py +155 -0
  54. vantage6/cli/sandbox/start.py +349 -0
  55. vantage6/cli/sandbox/stop.py +106 -0
  56. vantage6/cli/server/attach.py +28 -3
  57. vantage6/cli/server/common/__init__.py +5 -6
  58. vantage6/cli/server/import_.py +137 -119
  59. vantage6/cli/server/list.py +2 -2
  60. vantage6/cli/server/new.py +5 -3
  61. vantage6/cli/server/start.py +21 -4
  62. vantage6/cli/server/stop.py +2 -0
  63. vantage6/cli/server/version.py +31 -18
  64. vantage6/cli/template/algo_store_config.j2 +3 -0
  65. vantage6/cli/template/auth_config.j2 +24 -1
  66. vantage6/cli/template/node_config.j2 +2 -0
  67. vantage6/cli/template/server_config.j2 +10 -7
  68. vantage6/cli/use/context.py +8 -1
  69. vantage6/cli/use/namespace.py +10 -7
  70. vantage6/cli/utils.py +33 -1
  71. vantage6/cli/utils_kubernetes.py +270 -0
  72. {vantage6-5.0.0a36.dist-info → vantage6-5.0.0a38.dist-info}/METADATA +4 -4
  73. vantage6-5.0.0a38.dist-info/RECORD +102 -0
  74. vantage6/cli/rabbitmq/__init__.py +0 -0
  75. vantage6/cli/rabbitmq/definitions.py +0 -26
  76. vantage6/cli/rabbitmq/queue_manager.py +0 -220
  77. vantage6/cli/rabbitmq/rabbitmq.config +0 -8
  78. vantage6-5.0.0a36.dist-info/RECORD +0 -86
  79. {vantage6-5.0.0a36.dist-info → vantage6-5.0.0a38.dist-info}/WHEEL +0 -0
  80. {vantage6-5.0.0a36.dist-info → vantage6-5.0.0a38.dist-info}/entry_points.txt +0 -0
@@ -1,220 +0,0 @@
1
- import base64
2
- import hashlib
3
- import json
4
- import os
5
- import shutil
6
- import time
7
- from pathlib import Path
8
-
9
- import docker
10
-
11
- from vantage6.common import debug, error, info, split_rabbitmq_uri
12
- from vantage6.common.docker.addons import get_container
13
- from vantage6.common.docker.network_manager import NetworkManager
14
- from vantage6.common.globals import APPNAME
15
-
16
- from vantage6.cli.context.server import ServerContext
17
- from vantage6.cli.globals import RABBIT_TIMEOUT
18
- from vantage6.cli.rabbitmq.definitions import RABBITMQ_DEFINITIONS
19
-
20
- DEFAULT_RABBIT_IMAGE = "harbor2.vantage6.ai/infrastructure/rabbitmq"
21
- RABBIT_CONFIG = "rabbitmq.config"
22
- RABBIT_DIR = "rabbitmq"
23
-
24
-
25
- class RabbitMQManager:
26
- """
27
- Manages the RabbitMQ docker container
28
-
29
- Parameters
30
- ----------
31
- ctx: ServerContext
32
- Configuration object
33
- network_mgr: NetworkManager
34
- Network manager for network in which server container resides
35
- image: str
36
- Docker image to use for RabbitMQ container. By default, the image
37
- harbor2.vantage6.ai/infrastructure/rabbitmq is used.
38
- """
39
-
40
- def __init__(
41
- self, ctx: ServerContext, network_mgr: NetworkManager, image: str = None
42
- ) -> None:
43
- self.ctx = ctx
44
- self.queue_uri = self.ctx.config["rabbitmq"].get("uri")
45
- rabbit_splitted = split_rabbitmq_uri(self.queue_uri)
46
- self.rabbit_user = rabbit_splitted["user"]
47
- self.rabbit_pass = rabbit_splitted["password"]
48
- self.vhost = rabbit_splitted["vhost"]
49
- self.port = rabbit_splitted["port"]
50
- self.host = rabbit_splitted["host"]
51
- self.definitions_file = Path(self.ctx.data_dir / "definitions.json")
52
- self.network_mgr = network_mgr
53
-
54
- self.docker = docker.from_env()
55
- self.image = image if image else DEFAULT_RABBIT_IMAGE
56
-
57
- def start(self) -> None:
58
- """
59
- Start a docker container which runs a RabbitMQ queue
60
- """
61
- # get volumes which contain rabbitMQ configuration and a location to
62
- # save rabbitMQ files so that they persist after container is stopped
63
- volumes = self._get_volumes()
64
-
65
- # expose port 5672 inside the container as port 5672 on the host, and
66
- # same for 15672 in container to 8080 on host
67
- # TODO check if these ports are not already used on the host
68
- ports = {
69
- f"{self.port}/tcp": self.port,
70
- # TODO this is for the management tool, do we keep this? Not used
71
- # at the moment..
72
- "15672/tcp": 8080,
73
- }
74
-
75
- # check if a RabbitMQ container is already running
76
- self.rabbit_container = get_container(docker_client=self.docker, name=self.host)
77
- if self.rabbit_container:
78
- info("RabbitMQ is already running! Linking the server to that queue")
79
- if not self.network_mgr.contains(self.rabbit_container):
80
- self.network_mgr.connect(self.rabbit_container)
81
- return
82
-
83
- # start rabbitMQ container
84
- self.rabbit_container = self.docker.containers.run(
85
- name=self.host,
86
- image=self.image,
87
- volumes=volumes,
88
- ports=ports,
89
- detach=True,
90
- restart_policy={"Name": "unless-stopped"},
91
- hostname=self.host,
92
- labels={
93
- f"{APPNAME}-type": "rabbitmq",
94
- },
95
- network=self.network_mgr.network_name,
96
- )
97
-
98
- # Wait until RabbitMQ is up before continuing with other stuff
99
- self._wait_for_startup()
100
-
101
- def _wait_for_startup(self) -> None:
102
- """Wait until RabbitMQ has been initialized"""
103
- interval = 10
104
- attempts = int((RABBIT_TIMEOUT + interval) / interval)
105
- is_running = False
106
- for _ in range(attempts):
107
- if self.is_running():
108
- is_running = True
109
- break
110
- debug(f"RabbitMQ is not yet running. Retrying in {interval}s...")
111
- time.sleep(interval)
112
- if is_running:
113
- info("RabbitMQ was started successfully!")
114
- else:
115
- error("Could not start RabbitMQ! Exiting...")
116
- exit(1)
117
-
118
- def is_running(self) -> bool:
119
- """
120
- Returns
121
- -------
122
- bool
123
- Whether the container has fully initialized RabbitMQ or not
124
- """
125
- response = self.rabbit_container.exec_run(
126
- cmd="rabbitmqctl status --formatter json"
127
- )
128
- return response.exit_code == 0
129
-
130
- def _get_volumes(self) -> dict:
131
- """
132
- Prepare the volumes for the RabbitMQ container. The RabbitMQ should
133
- set up the right vhost and users to allow the server to communicate
134
- with RabbitMQ as configured.
135
-
136
- Returns
137
- -------
138
- dict
139
- Dictionary with the volumes to mount in the RabbitMQ container
140
- """
141
- # default RabbitMQ configuration: replace the user/password with the
142
- # credentials from the configuraiton
143
- rabbit_definitions = self._get_rabbitmq_definitions()
144
-
145
- # write the RabbitMQ definition to file(s)
146
- with open(self.definitions_file, "w") as f:
147
- json.dump(rabbit_definitions, f, indent=2)
148
-
149
- # write RabbitMQ config to file
150
- rabbit_conf = Path(__file__).parent.resolve() / RABBIT_CONFIG
151
- shutil.copyfile(rabbit_conf, self.ctx.data_dir / RABBIT_CONFIG)
152
-
153
- # check if a directory for persistent RabbitMQ storage exists,
154
- # otherwise create it
155
- rabbit_data_dir = self.ctx.data_dir / RABBIT_DIR
156
- if not rabbit_data_dir.exists():
157
- rabbit_data_dir.mkdir(parents=True, exist_ok=True)
158
-
159
- return {
160
- self.definitions_file: {
161
- "bind": "/etc/rabbitmq/definitions.json",
162
- "mode": "ro",
163
- },
164
- self.ctx.data_dir / RABBIT_CONFIG: {
165
- "bind": "/etc/rabbitmq/rabbitmq.config",
166
- "mode": "ro",
167
- },
168
- rabbit_data_dir: {"bind": "/var/lib/rabbitmq", "mode": "rw"},
169
- }
170
-
171
- def _get_rabbitmq_definitions(self) -> dict:
172
- """
173
- Get startup definitions (users/vhosts etc) for RabbitMQ container
174
-
175
- Returns
176
- -------
177
- Dict:
178
- dictionary with all users/vhosts etc that must be generated on
179
- startup of RabbitMQ
180
- """
181
- rabbit_definitions = RABBITMQ_DEFINITIONS
182
- rabbit_definitions["users"][0]["name"] = self.rabbit_user
183
- rabbit_definitions["permissions"][0]["user"] = self.rabbit_user
184
- rabbit_definitions["users"][0]["password_hash"] = self._get_hashed_pw(
185
- self.rabbit_pass
186
- )
187
- rabbit_definitions["vhosts"][0]["name"] = self.vhost
188
- rabbit_definitions["permissions"][0]["vhost"] = self.vhost
189
- return rabbit_definitions
190
-
191
- def _get_hashed_pw(self, pw: str) -> str:
192
- """
193
- Hash a user-defined password for RabbitMQ
194
-
195
- Parameters
196
- ----------
197
- pw: str
198
- The password for RabbitMQ
199
-
200
- Returns
201
- -------
202
- str
203
- Hashed password for RabbitMQ
204
- """
205
-
206
- # Generate a random 32 bit salt:
207
- salt = os.urandom(4)
208
-
209
- # Concatenate that with the UTF-8 representation of the password
210
- tmp0 = salt + pw.encode("utf-8")
211
-
212
- # Take the SHA256 hash and get the bytes back
213
- tmp1 = hashlib.sha256(tmp0).digest()
214
-
215
- # Concatenate the salt again:
216
- salted_hash = salt + tmp1
217
-
218
- # convert to base64 encoding:
219
- pass_hash = base64.b64encode(salted_hash)
220
- return pass_hash.decode("utf-8")
@@ -1,8 +0,0 @@
1
- [
2
- {rabbit, [
3
- {loopback_users, []}
4
- ]},
5
- {rabbitmq_management, [
6
- {load_definitions, "/etc/rabbitmq/definitions.json"}
7
- ]}
8
- ].
@@ -1,86 +0,0 @@
1
- vantage6/cli/__init__.py,sha256=8KIgMPbZTNdkYlUrB8irpsUA7KdkFdLbNbMKixOP2dE,277
2
- vantage6/cli/cli.py,sha256=LO1VuwB0KZB8fCIQpn1YV68voHMuq1znGpzLbzxLVQE,7806
3
- vantage6/cli/config.py,sha256=Jqe3VcvoxPrFlvw7cuKt4-5oyL0YTZXvpNsqPybSAYk,7973
4
- vantage6/cli/configuration_manager.py,sha256=-wIiqBwzxr7BiBcV7juPSFRdrwbhsR8OHUKADZE5cBQ,6317
5
- vantage6/cli/configuration_wizard.py,sha256=S1D4gze-kMlR-YperseYuG4VixOFwYxOr5Jt0t67zVU,6857
6
- vantage6/cli/globals.py,sha256=rREQy0qBPMHW-l4lgoyxKd3Cb4eQGtGmp-UTraYzIQU,2714
7
- vantage6/cli/utils.py,sha256=9ZNHtTnOH2RqgYgnoyMR5EJpBE-_kYXEbuHtfrG3ul0,4275
8
- vantage6/cli/algorithm/create.py,sha256=kRT1BlBcb0fDaB2Q988WxtA6EyAZmOW5QoU2uhbwBIo,2075
9
- vantage6/cli/algorithm/generate_algorithm_json.py,sha256=4pCxXxsWw5WN9e5OAeQ09gO70fRKdyFF3y9a1Ufm8mY,19558
10
- vantage6/cli/algorithm/update.py,sha256=oReCQaOQHfZe-o-zTLD2RyjzhwAaXRQkFHyZZ-JUb4s,1338
11
- vantage6/cli/algostore/attach.py,sha256=kUbG-ke7gN_gQusojG2i7YbXMy9_urwShwTBbZp5NXo,312
12
- vantage6/cli/algostore/files.py,sha256=oqjdGeoyUdCGfoSLbQA6r7GZtJtzSbXMyvojQ80xVCE,581
13
- vantage6/cli/algostore/list.py,sha256=VxOjZiOXUW_6wNl58zeiYByH83NdCBlivVWsDuBhQMg,327
14
- vantage6/cli/algostore/new.py,sha256=7eVovSdNBO_Yj-FQmlV0TTl13Vv4qKP5zA_HuHZMglk,3454
15
- vantage6/cli/algostore/remove.py,sha256=JsZ1L3qH2k_G3Zei-fhb_dApah91gdJKKv2vfsWK6Os,1006
16
- vantage6/cli/algostore/start.py,sha256=15ZebThxgw4H1G8CswRNNoU1bYNflhQ-dWIkzEkwUi0,2137
17
- vantage6/cli/algostore/stop.py,sha256=AF6ay7y6dlCvjPa3ctFOESAfHEA74eK4dKT4o-iFTLE,1814
18
- vantage6/cli/auth/attach.py,sha256=e4cpwckLNwjU6MZ5co2HEZtEEjoJc_C4VT9cB3X_QSw,1746
19
- vantage6/cli/auth/files.py,sha256=zxlZRZ17zpj8JoRIcxBwR7s8FEBO7ehOgw_Hz-qQkwo,448
20
- vantage6/cli/auth/list.py,sha256=O7r8wfsfVxvcvfLmNfECZx5ERJyWisy-37aPTnECe18,308
21
- vantage6/cli/auth/new.py,sha256=HFo0TCveGDgLN1BBOvG2meFZIcfFXPivwNJfWNeWcLM,2142
22
- vantage6/cli/auth/remove.py,sha256=ejeAOpINYBZNuDSIZ7LRb_ZN9FOztOl3uvAD198twhY,884
23
- vantage6/cli/auth/start.py,sha256=FCznjzbWMtvoaFSSqtXvZbxkUqEbrnex095XatYlK2c,2094
24
- vantage6/cli/auth/stop.py,sha256=y0Af-frrFZM0M6lrcDIaMESdvlOJmfWPfEafMlMU0Ek,1769
25
- vantage6/cli/common/decorator.py,sha256=KF3uFjmn00qtTSD90BLczaX-gqvlt2Kud4PJGm7P4jU,3627
26
- vantage6/cli/common/new.py,sha256=WBGGYknLUMz4iPAzFanG57ioM9bTqFf2ANQRzYg6Ibo,2612
27
- vantage6/cli/common/remove.py,sha256=sJaPF5y1Gd14I4Xg5QRBq3d1x4j2KF4Ys6wVDuqE6HQ,1697
28
- vantage6/cli/common/start.py,sha256=JsEEIAEvDqxPbIpVtzxfxG3z8XZsTuNz9FtH58HR2nU,9790
29
- vantage6/cli/common/stop.py,sha256=S3IeV_myD01CdSUvl6hkf4qWlWQZ_oUgIkbJoGsQK-Q,4989
30
- vantage6/cli/common/utils.py,sha256=EDltlX8tigQFMWDwWcApoZMtgxF2qkguDy35XBqraMs,11853
31
- vantage6/cli/context/__init__.py,sha256=x45CqHPiLmjB5qS26sLD_LWpCbGzUgaaxCqoOyQJ-O0,2798
32
- vantage6/cli/context/algorithm_store.py,sha256=qTNRrCo_EWVAfSC4eg_MohSf_Ra4U3tZvB8EwZZREEw,4044
33
- vantage6/cli/context/auth.py,sha256=D1_oZo2wNpocJ4RGI4kSgp0GXdwagdpP3VcyW6XAj-E,3303
34
- vantage6/cli/context/base_server.py,sha256=vln405k6b4z4L_VIfPCycy7gIfpJs0nqvJa8enl2HsA,2390
35
- vantage6/cli/context/node.py,sha256=GaU52z4dMnZMDMj3MZACL0VeWZLeeM3lRNvMKlqA1J4,7304
36
- vantage6/cli/context/server.py,sha256=o2HMlDEg7RbU44AfwNPln8K64FX4SQ_IgULFY_GBhEI,4837
37
- vantage6/cli/dev/clean.py,sha256=4fk5zNU7mi43YTPmgHwl6AC43_uZZyt1SUFy-JXGkRU,829
38
- vantage6/cli/dev/common.py,sha256=fiERHE0o2-m0ZAgIbyaZnFhYdeVMddrHiUoiLjmAR8o,929
39
- vantage6/cli/dev/rebuild.py,sha256=3iMIqAxiwdZkx4Q0xQyqcWHvXUzOQT-9cyRuOiulwR8,1290
40
- vantage6/cli/dev/start.py,sha256=DzFtD_jQaVIIawfPdMwBLjY1E_YOokiWm27oanci8k4,1000
41
- vantage6/cli/dev/stop.py,sha256=-yrLCadDfeLES9pFJz9yxm33XtzEXpdqvHvwakLQNEE,663
42
- vantage6/cli/node/attach.py,sha256=5wB6vjp-m44cQx-C20QBo5WhbHqjxrfWWFzTa5YCyww,277
43
- vantage6/cli/node/create_private_key.py,sha256=gmgI9Gtcx3z0esxyLw-96HcrfmAJFOjjXbVvA9ZGN3g,5129
44
- vantage6/cli/node/files.py,sha256=y7WOGHCTE3DnmxgbweLcu51t0YLS9Jvl24zgCHKkQTQ,1003
45
- vantage6/cli/node/list.py,sha256=ksDnGOqKpV6QgMHFHv82byoOJp8Bu_jfm0KbXhNf8D8,1659
46
- vantage6/cli/node/new.py,sha256=gs0okv4jnh3jPmENNH2RzXxG8Q-bbPmbjxioQOyjUH8,12395
47
- vantage6/cli/node/remove.py,sha256=alInSH_3E-yJthQ8JrGaopvAZ7GgxuRBppnpC8BRTBU,1061
48
- vantage6/cli/node/restart.py,sha256=hJWzyJjetfNe8YYkOt5ZEUE_t-LpvQOwUGcQH0pXfNQ,3122
49
- vantage6/cli/node/set_api_key.py,sha256=OYCCJ8zrbc7uXyv0uLTejqD43xXELVvR01czzG46imo,1998
50
- vantage6/cli/node/start.py,sha256=wzSfN_H9PdorSjJr8dYJl7p0HJ0XuOz-gNDbuHAbWo4,3975
51
- vantage6/cli/node/stop.py,sha256=pQ4auPeGbipBRlgFsuqqsMBlNAbgaowxeFpH-HpikkM,1950
52
- vantage6/cli/node/version.py,sha256=GdHQgcXHFTicL3yHeuW127bwnU85ooDOuqLvBGsH0GI,1957
53
- vantage6/cli/node/common/__init__.py,sha256=gYbdDajTz5Sh-buChejB8-lkMXalL85mMsMbM0OlR1Q,2868
54
- vantage6/cli/prometheus/monitoring_manager.py,sha256=I4iR_2i6EgLMR2dM2e4bOVbTyGN4jPPRDPKHd8_CbRk,4908
55
- vantage6/cli/prometheus/prometheus.yml,sha256=Q4i9lVknITBodHUMgarRnEsXfXTNuSdI6a-9pW4YCoI,98
56
- vantage6/cli/rabbitmq/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
- vantage6/cli/rabbitmq/definitions.py,sha256=CcS9jG7ZGB6LjzHQqZ2FliDurPItUvNSjHrOYptORZg,637
58
- vantage6/cli/rabbitmq/queue_manager.py,sha256=78LWFMK1GO3JXHA-Lv9qAYVEpBD7ox3_lVLgq8xXxuk,7551
59
- vantage6/cli/rabbitmq/rabbitmq.config,sha256=LYAQAEoXaF472XeJDYXc9JfWSETIzPRIR2W-JB2i7fU,136
60
- vantage6/cli/server/attach.py,sha256=XeU5M00R27yqq8oNLOyaNGOdrsQouLzxl-TlASJSifw,323
61
- vantage6/cli/server/files.py,sha256=MsnLaY91F2m49mm_FpVboFrSsZiEsu175KioN1alZfk,568
62
- vantage6/cli/server/import_.py,sha256=vlzS8SUhk93C2zIHox8WFJWULCUB2zVZzkvP5wtWhII,4525
63
- vantage6/cli/server/list.py,sha256=ioHQeBq5_SE6zNcyg9C7lqvcPwyHOyGPZ4SisFgq5-E,314
64
- vantage6/cli/server/new.py,sha256=_W1f4SAxiR5aSoI9KKKvcsuzM64kqYTKi7n-W785tR8,3625
65
- vantage6/cli/server/remove.py,sha256=dwylIP5uEUPTRP9bd6_7rWhyUoCJuYoe1Kon9WUV4tY,891
66
- vantage6/cli/server/start.py,sha256=fO4A7D0aiSVKN4zhX5I1Z6UzQj57Ih4KD8PGuDgQoic,2606
67
- vantage6/cli/server/stop.py,sha256=MwJqGh_9a0RCBQ7ZCDCO3975NyzKzGVz3AKRbghsJnc,2016
68
- vantage6/cli/server/version.py,sha256=lqrPNKMbFO22W-NarJ2TjLd7fZT43hV-sFRbzMlBniw,1307
69
- vantage6/cli/server/common/__init__.py,sha256=U9rjDxfW8tmMRNo-pRaO4xBnpZjXbIq9GWFNz6ka0Lk,1216
70
- vantage6/cli/template/algo_store_config.j2,sha256=eA79CEXGPTO3kWX5SDhuO4VY2t_shjOHIvGIC6ANrro,7377
71
- vantage6/cli/template/auth_config.j2,sha256=U12DSUZE28Uu8sPY-uMUV5ssWT7MW-hukiHKO7T4n0I,9807
72
- vantage6/cli/template/node_config.j2,sha256=Q6-3fGdx0WVN_clTR77KR0Vv77rwOd1jzNCP_oOn81c,13871
73
- vantage6/cli/template/node_config_nonk8s.j2,sha256=mrS-YQwg_9i7zBKuEFG5pe3ZbHCLtl5hGgzk2etXTvo,783
74
- vantage6/cli/template/server_config.j2,sha256=tCgceSajZ-GVG8yEufFBPWkEJKKg3BfECQmO5TzTrgw,10036
75
- vantage6/cli/test/client_script.py,sha256=AHQ4fhzbtD-VcJAm0rxUDteepXNa4Bef9SKWnzobTd0,4825
76
- vantage6/cli/test/feature_tester.py,sha256=AsZam91KqaAo_yIFxyZ5Hmy1ZPw83d02BDyO4TzKFQo,2631
77
- vantage6/cli/test/integration_test.py,sha256=MctR_t-WEyxzFpMdc6ByTcX1BQglZiT5-CIOQXTBBWo,4034
78
- vantage6/cli/test/algo_test_scripts/algo_test_arguments.py,sha256=HIKAhJ5zKkWMGXpCb_KLukbcwbyeMK5j3wcqubalbyM,791
79
- vantage6/cli/test/algo_test_scripts/algo_test_script.py,sha256=jfzXPmpL0HlE_eq1jXLV3HuZgh_aV-ZOaawHcYIuwQE,2741
80
- vantage6/cli/test/common/diagnostic_runner.py,sha256=jFFHqlj3v0WRpVEBa7Ovek3DL6RX6W5cQd9w5hWHtZA,6597
81
- vantage6/cli/use/context.py,sha256=mEtOfbuLtYQlRh-ypif24WtOwgpcvXObX310mmXIkWY,1362
82
- vantage6/cli/use/namespace.py,sha256=-z9uIYqVsqPPLHFy8bI5x2566W5essOkDdKTXUX9dEY,1644
83
- vantage6-5.0.0a36.dist-info/METADATA,sha256=V24plQdl-W9WSFeRA15t-9x25xn1j7BtOjLzrew4QNw,1779
84
- vantage6-5.0.0a36.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
85
- vantage6-5.0.0a36.dist-info/entry_points.txt,sha256=RKVCMsD70s_Gp6If89uDlCphsZ9uLIOMt1gciv8EMDQ,53
86
- vantage6-5.0.0a36.dist-info/RECORD,,