vantage6 5.0.0a34__py3-none-any.whl → 5.0.0a35__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.

@@ -1,33 +1,336 @@
1
- api_path: {{ api_path }}
2
- encryption:
3
- enabled: false
4
- private_key: null
5
- logging:
6
- backup_count: 5
7
- datefmt: '%Y-%m-%d %H:%M:%S'
8
- file: {{ logging["file"] }}
9
- format: '%(asctime)s - %(name)-14s - %(levelname)-8s - %(message)s'
10
- level: DEBUG
11
- max_size: 1024
12
- use_console: true
13
- loggers:
14
- - level: warning
15
- name: urllib3
16
- - level: warning
17
- name: requests
18
- - level: warning
19
- name: engineio.client
20
- - level: warning
21
- name: docker.utils.config
22
- - level: warning
23
- name: docker.auth
24
- - level: warning
25
- name: kubernetes.client.rest
26
- node_proxy_port: {{ node_proxy_port }}
27
- port: {{ port }}
28
- server_url: {{ server_url }}
29
- task_dir: {{ task_dir}}
30
- dev:
31
- task_dir_extension: {{ task_dir_extension }}
32
- task_namespace: {{ task_namespace }}
33
- {{- user_provided_config -}}
1
+ # override the chart name
2
+ nameOverride: {{ nameOverride | default('vantage6-node') }}
3
+ # Optional, by default the Release.Namespace is used
4
+ # namespace: vantage6-node
5
+ node:
6
+
7
+ # Set to false to prevent creation of node secrets (useful when secrets are managed
8
+ # externally)
9
+ createSecrets: {{ node.createSecrets | default(true) }}
10
+
11
+ name: {{ node.name | default('put-your-node-name-here') }}
12
+ apiKey: {{ node.apiKey | default('put-your-api-key-here') }}
13
+
14
+ # Keycloak configuration
15
+ keycloakUrl: {{ node.keycloakUrl | default('http://vantage6-auth-keycloak.vantage6.svc.cluster.local') }}
16
+ keycloakRealm: {{ node.keycloakRealm | default('vantage6') }}
17
+
18
+ # TODO v5+ set the url/port directly on node-configmap.yaml using \{\{ .Release.Name \}\}-vantage6-server-service
19
+ {% if node.server is defined %}
20
+ server:
21
+ url: {{ node.server.url | default('http://vantage6-server-vantage6-server-service') }}
22
+ port: {{ node.server.port | default(7601) }}
23
+ path: {{ node.server.path | default('/server') }}
24
+ {% else %}
25
+ server:
26
+ url: http://vantage6-server-vantage6-server-service
27
+ port: 7601
28
+ path: /server
29
+ {% endif %}
30
+
31
+
32
+ image: {{ node.image | default('harbor2.vantage6.ai/infrastructure/node:latest') }}
33
+
34
+ # Namespace in which the task kubernetes resources are created. This must be a
35
+ # namespace where the node has access to create pods.
36
+ taskNamespace: {{ node.taskNamespace | default('vantage6-tasks') }}
37
+
38
+ # Kubernetes node name, used for local persistent volumes
39
+ k8sNodeName: {{ node.k8sNodeName | default('docker-desktop') }}
40
+
41
+ logging:
42
+ # Controls the logging output level. Could be one of the following
43
+ # levels: CRITICAL, ERROR, WARNING, INFO, DEBUG, NOTSET
44
+ level: {{ node.logging.level | default('INFO') }}
45
+
46
+ # Location to the log file
47
+ file: {{ node.logging.file | default('node.log') }}
48
+
49
+ # Size in kb of a single log file
50
+ max_size: {{ node.logging.max_size | default(1024) }}
51
+ use_console: {{ node.logging.use_console | default(true) }}
52
+
53
+ # Date format for the log file
54
+ datefmt: "{{ node.logging.datefmt | default('%Y-%m-%d %H:%M:%S') }}"
55
+
56
+ # Format for the log file
57
+ format: "{{ node.logging.format | default('%(asctime)s - %(name)-14s - %(levelname)-8s - %(message)s') }}"
58
+
59
+ # Maximum number of log files to keep. Log files are rotated when the size of the
60
+ # current log file exceeds `max_size`.
61
+ backup_count: {{ node.logging.backup_count | default(5) }}
62
+
63
+ # Loggers to include in the log file
64
+ loggers:
65
+ {% if node.logging.loggers is defined %}
66
+ {% for logger in node.logging.loggers %}
67
+ - level: {{ logger.level }}
68
+ name: {{ logger.name }}
69
+ {% endfor %}
70
+ {% endif %}
71
+ {% if node.logging.loggers is not defined %}
72
+ - level: warning
73
+ name: urllib3
74
+ - level: warning
75
+ name: socketIO-client
76
+ - level: warning
77
+ name: socketio.server
78
+ - level: warning
79
+ name: engineio.server
80
+ - level: warning
81
+ name: sqlalchemy.engine
82
+ {% endif %}
83
+
84
+ {% if node.encryption is defined %}
85
+ encryption:
86
+ # Whether encryption is enabled or not. This should be the same as the `encrypted`
87
+ # setting of the collaboration to which this node belongs.
88
+ enabled: {{ node.encryption.enabled | default(false) }}
89
+
90
+ # Location to the private key file. Required if encryption is enabled.
91
+ {% if node.encryption.enabled | default(false) %}
92
+ private_key: {{ node.encryption.private_key | default('/path/to/private_key.pem') }}
93
+ {% else %}
94
+ # private_key: /path/to/private_key.pem
95
+ {% endif %}
96
+ {% else %}
97
+ encryption:
98
+ # Whether encryption is enabled or not. This should be the same as the `encrypted`
99
+ # setting of the collaboration to which this node belongs.
100
+ enabled: false
101
+
102
+ # Location to the private key file. Required if encryption is enabled.
103
+ # private_key: /path/to/private_key.pem
104
+ {% endif %}
105
+
106
+ # Port for the node proxy to run on
107
+ proxyPort: {{ node.proxyPort | default(7654) }}
108
+
109
+ # Storage settings on host of the node machine. This defines where the database is
110
+ # stored as well as the task directory (which will contain the input/output of the
111
+ # tasks).
112
+ {% if node.persistence is defined %}
113
+ persistence:
114
+ tasks:
115
+ storageClass: {{ node.persistence.tasks.storageClass | default('local-storage') }}
116
+ size: {{ node.persistence.tasks.size | default('10Gi') }}
117
+ hostPath: {{ node.persistence.tasks.hostPath | default('/path/to/where/task/files/are/stored') }}
118
+ database:
119
+ storageClass: {{ node.persistence.database.storageClass | default('local-storage') }}
120
+ size: {{ node.persistence.database.size | default('5Gi') }}
121
+ {% else %}
122
+ persistence:
123
+ tasks:
124
+ storageClass: local-storage
125
+ size: 10Gi
126
+ hostPath: /path/to/where/task/files/are/stored
127
+ database:
128
+ storageClass: local-storage
129
+ size: 5Gi
130
+ {% endif %}
131
+
132
+
133
+ # It is also possible not to specify the details of the service-based databases
134
+ # here. The node will then automatically detect the databases in the environment
135
+ # variables. This allows parent charts to specify the databases in their own
136
+ # values.yaml file or define them runtime using the CLI.
137
+ #
138
+ # In this case, the node expects the following environment variables to be set:
139
+ #
140
+ # DATABASE_LABELS: comma-separated list of database labels
141
+ # DATABASE_[LABEL]_URI: URI of the database
142
+ # DATABASE_[LABEL]_TYPE: type of the database
143
+ #
144
+ # Optionally, you can also specify additional environment variables for each
145
+ # database by setting the DATABASE_[LABEL]_SOME_OTHER_KEY variable.
146
+ #
147
+ # DATABASE_[LABEL]_SOME_OTHER_KEY: some_other_value
148
+ #
149
+ # It is recommended to do this through Kubernetes secrets. If you specify the
150
+ # details here, secrets will be used. File-based databases are automatically made
151
+ # available to your node.
152
+ {% if node.databases is defined %}
153
+ databases:
154
+ {% if node.databases.fileBased is defined %}
155
+ fileBased:
156
+ {% for db in node.databases.fileBased %}
157
+ - name: {{ db.name }}
158
+ uri: {{ db.uri }}
159
+ type: {{ db.type }}
160
+ volumePath: {{ db.volumePath }}
161
+ originalName: {{ db.originalName }}
162
+ {% endfor %}
163
+ {% endif %}
164
+ {% if node.databases.serviceBased is defined %}
165
+ serviceBased:
166
+ {% for db in node.databases.serviceBased %}
167
+ - name: {{ db.name }}
168
+ uri: {{ db.uri }}
169
+ type: {{ db.type }}
170
+ env:
171
+ {% for key, value in db.env.items() %}
172
+ {{ key }}: {{ value }}
173
+ {% endfor %}
174
+ {% endfor %}
175
+ {% endif %}
176
+ {% else %}
177
+ databases: []
178
+ {% endif %}
179
+
180
+ # Whether or not your node shares some configuration (e.g. which images are
181
+ # allowed to run on your node) with the central server. This can be useful
182
+ # for other organizations in your collaboration to understand why a task
183
+ # is not completed. Obviously, no sensitive data is shared. Default true
184
+ share_config: {{ node.share_config | default(true) }}
185
+
186
+ # Whether or not to share algorithm logs with the server. Otherwise they will
187
+ # only be displayed as part of the node logs. Default is true.
188
+ # NOTE: It's recommented to set this to false when using sensitive data
189
+ share_algorithm_logs: {{ node.share_algorithm_logs | default(true) }}
190
+
191
+ # Define who is allowed to run which algorithms on this node.
192
+ {% if node.policies is defined %}
193
+ policies:
194
+ # Control which algorithm images are allowed to run on this node. This is
195
+ # expected to be a valid regular expression. If you don't specify this, all algorithm
196
+ # images are allowed to run on this node (unless other policies restrict this).
197
+ {% if node.policies.allowed_algorithms is defined %}
198
+ allowed_algorithms:
199
+ {% for algo in node.policies.allowed_algorithms %}
200
+ - {{ algo }}
201
+ {% endfor %}
202
+ {% else %}
203
+ # allowed_algorithms:
204
+ # - ^harbor2\.vantage6\.ai/[a-zA-Z]+/[a-zA-Z]+
205
+ # - ^myalgorithm\.ai/some-algorithm
206
+ {% endif %}
207
+
208
+ # It is also possible to allow all algorithms from particular algorithm stores. Set
209
+ # these stores here. They may be strings or regular expressions. If you don't specify
210
+ # this, algorithms from any store are allowed (unless other policies prevent this).
211
+ {% if node.policies.allowed_algorithm_stores is defined %}
212
+ allowed_algorithm_stores:
213
+ {% for store in node.policies.allowed_algorithm_stores %}
214
+ - {{ store }}
215
+ {% endfor %}
216
+ {% else %}
217
+ # allowed_algorithm_stores:
218
+ # # allow all algorithms from the vantage6 community store
219
+ # - https://store.cotopaxi.vantage6.ai
220
+ # # allow any store that is a subdomain of vantage6.ai
221
+ # - ^https://[a-z]+\.vantage6\.ai$
222
+ {% endif %}
223
+
224
+ # If you define both `allowed_algorithm_stores` and `allowed_algorithms`, you can
225
+ # choose to only allow algorithms that both policies allow, or you can allow
226
+ # algorithms that either of them allows. By default, only algorithms that are given
227
+ # in *both* the `allowed_algorithms` and `allowed_algorithm_stores` are allowed by
228
+ # setting this to the default value `false`.
229
+ allow_either_whitelist_or_store: {{ node.policies.allow_either_whitelist_or_store | default(false) }}
230
+
231
+ # Define which users are allowed to run algorithms on your node by their ID
232
+ {% if node.policies.allowed_users is defined %}
233
+ allowed_users:
234
+ {% for user in node.policies.allowed_users %}
235
+ - {{ user }}
236
+ {% endfor %}
237
+ {% else %}
238
+ # allowed_users:
239
+ # - 2
240
+ {% endif %}
241
+
242
+ # Define which organizations are allowed to run images on your node by
243
+ # their ID or name
244
+ {% if node.policies.allowed_organizations is defined %}
245
+ allowed_organizations:
246
+ {% for org in node.policies.allowed_organizations %}
247
+ - {{ org }}
248
+ {% endfor %}
249
+ {% else %}
250
+ # allowed_organizations:
251
+ # - 6
252
+ # - root
253
+ {% endif %}
254
+
255
+ # Set to true to always require that the algorithm image is successfully pulled. This
256
+ # ensures that no potentially outdated local images are used if internet connection
257
+ # is not available. This option should be set to false if you are testing with local
258
+ # algorithm images. Default value is true.
259
+ require_algorithm_pull: {{ node.policies.require_algorithm_pull | default(true) }}
260
+ {% else %}
261
+ policies:
262
+ # Control which algorithm images are allowed to run on this node. This is
263
+ # expected to be a valid regular expression. If you don't specify this, all algorithm
264
+ # images are allowed to run on this node (unless other policies restrict this).
265
+ # allowed_algorithms:
266
+ # - ^harbor2\.vantage6\.ai/[a-zA-Z]+/[a-zA-Z]+
267
+ # - ^myalgorithm\.ai/some-algorithm
268
+
269
+ # It is also possible to allow all algorithms from particular algorithm stores. Set
270
+ # these stores here. They may be strings or regular expressions. If you don't specify
271
+ # this, algorithms from any store are allowed (unless other policies prevent this).
272
+ # allowed_algorithm_stores:
273
+ # # allow all algorithms from the vantage6 community store
274
+ # - https://store.cotopaxi.vantage6.ai
275
+ # # allow any store that is a subdomain of vantage6.ai
276
+ # - ^https://[a-z]+\.vantage6\.ai$
277
+
278
+ # If you define both `allowed_algorithm_stores` and `allowed_algorithms`, you can
279
+ # choose to only allow algorithms that both policies allow, or you can allow
280
+ # algorithms that either of them allows. By default, only algorithms that are given
281
+ # in *both* the `allowed_algorithms` and `allowed_algorithm_stores` are allowed by
282
+ # setting this to the default value `false`.
283
+ # allow_either_whitelist_or_store: false
284
+
285
+ # Define which users are allowed to run algorithms on your node by their ID
286
+ # allowed_users:
287
+ # - 2
288
+ # Define which organizations are allowed to run images on your node by
289
+ # their ID or name
290
+ # allowed_organizations:
291
+ # - 6
292
+ # - root
293
+
294
+ # Set to true to always require that the algorithm image is successfully pulled. This
295
+ # ensures that no potentially outdated local images are used if internet connection
296
+ # is not available. This option should be set to false if you are testing with local
297
+ # algorithm images. Default value is true.
298
+ require_algorithm_pull: true
299
+ {% endif %}
300
+
301
+ # Prometheus settings, for sending system metadata to the server.
302
+ {% if node.prometheus is defined %}
303
+ prometheus:
304
+ # Whether or not to enable Prometheus reporting. Default is false.
305
+ enabled: {{ node.prometheus.enabled | default(false) }}
306
+
307
+ # Interval (in seconds) at which the node sends system metadata to the server.
308
+ # This should align with the Prometheus scrape_interval to avoid stale data.
309
+ report_interval_seconds: {{ node.prometheus.report_interval_seconds | default(45) }}
310
+ {% else %}
311
+ prometheus:
312
+ # Whether or not to enable Prometheus reporting. Default is false.
313
+ enabled: false
314
+
315
+ # Interval (in seconds) at which the node sends system metadata to the server.
316
+ # This should align with the Prometheus scrape_interval to avoid stale data.
317
+ # report_interval_seconds: 45
318
+ {% endif %}
319
+
320
+ {% if node.debug is defined %}
321
+ # Debug settings
322
+ debug:
323
+ # Set to `true` to enable print debug messages from Flask/socketio.
324
+ socketio: {{ node.debug.socketio | default(false) }}
325
+
326
+ # Set to `true` to set the Flask app used for proxy service into debug mode.
327
+ proxy_server: {{ node.debug.proxy_server | default(false) }}
328
+ {% endif %}
329
+
330
+ {% if node.dev is defined %}
331
+ dev:
332
+ # Set extension for the task directory. In the development environment, the task
333
+ # directory is mounted as a volume. If multiple nodes are then running on the same
334
+ # machine, this extension is added to the task directory to avoid conflicts.
335
+ task_dir_extension: {{ node.dev.task_dir_extension }}
336
+ {% endif %}
vantage6/cli/utils.py CHANGED
@@ -32,8 +32,6 @@ def check_config_name_allowed(name: str) -> None:
32
32
  f"Name '{name}' is not allowed. Please use only the following "
33
33
  "characters: a-zA-Z0-9_.-"
34
34
  )
35
- # FIXME: FM, 2023-01-03: I dont think this is a good side effect. This
36
- # should be handled by the caller.
37
35
  exit(1)
38
36
 
39
37
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vantage6
3
- Version: 5.0.0a34
3
+ Version: 5.0.0a35
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==1.10.0
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.0a34
22
- Requires-Dist: vantage6-common==5.0.0a34
21
+ Requires-Dist: vantage6-client==5.0.0a35
22
+ Requires-Dist: vantage6-common==5.0.0a35
23
23
  Provides-Extra: dev
24
24
  Requires-Dist: black; extra == 'dev'
25
25
  Requires-Dist: coverage==7.10.2; extra == 'dev'
@@ -1,44 +1,44 @@
1
1
  vantage6/cli/__init__.py,sha256=8KIgMPbZTNdkYlUrB8irpsUA7KdkFdLbNbMKixOP2dE,277
2
- vantage6/cli/cli.py,sha256=EeMfvBABKYauujZDR09IjpBgtbBg1sS1iJPuzre-AqM,6474
2
+ vantage6/cli/cli.py,sha256=1Se1g-qEeC3NrPyTosIT4EPbl-WAnqCwL1mTZyEL5Pc,6552
3
3
  vantage6/cli/config.py,sha256=Jqe3VcvoxPrFlvw7cuKt4-5oyL0YTZXvpNsqPybSAYk,7973
4
- vantage6/cli/configuration_manager.py,sha256=kgQNBaQdypKsqs18s6h1Zp4CwpgcBEqWsRuRC_ZWFPE,5079
5
- vantage6/cli/configuration_wizard.py,sha256=C-Z2e1oEKX2ZLIWO6y3kCwcyhtvxLC1ivcZM_8NDlDA,19613
6
- vantage6/cli/globals.py,sha256=1R1XivMfzU5QmZO-UsrCX1e3im9vdun6v2pw2NUM3JI,2223
7
- vantage6/cli/utils.py,sha256=mhCtsxCf8nOCaW3layW8aJGI0XAjGs0IuheCNj3o-IA,4397
4
+ vantage6/cli/configuration_manager.py,sha256=TtD4PdFrKCuN_zeSAouEgi_htlhBqmiNGqI7yui6EmE,5466
5
+ vantage6/cli/configuration_wizard.py,sha256=JFGeBagW5D4R-sGCXzqU9WpUInq0w7h0MVlbxYC7Q8Q,6634
6
+ vantage6/cli/globals.py,sha256=kbxRcpCFmyIKOma3rWfrcPnV7k5H7MHG9-yY2orzauY,2627
7
+ vantage6/cli/utils.py,sha256=9ZNHtTnOH2RqgYgnoyMR5EJpBE-_kYXEbuHtfrG3ul0,4275
8
8
  vantage6/cli/algorithm/create.py,sha256=kRT1BlBcb0fDaB2Q988WxtA6EyAZmOW5QoU2uhbwBIo,2075
9
9
  vantage6/cli/algorithm/generate_algorithm_json.py,sha256=huaqoadhz-2-Sy6SON9zFe_cAatvE7dtTQazvmNOgMA,19558
10
10
  vantage6/cli/algorithm/update.py,sha256=WwAfTnq0kTOgePUsBzGoo1AJQqGMn82E9Bjk1wf61CQ,1338
11
11
  vantage6/cli/algostore/attach.py,sha256=0WzLnKigJAelPpL5EaWcnRuUyQzMSofrrZfEzwDIvSw,311
12
12
  vantage6/cli/algostore/files.py,sha256=r89VRixK_K-c44qseq58Aa2Dqf1wEf8yompQRN5AVu4,580
13
13
  vantage6/cli/algostore/list.py,sha256=xBCnwGbuWY_rrx6jrFX8JVAEFXh8GwqwicqpxMiaSa8,418
14
- vantage6/cli/algostore/new.py,sha256=8ZUpW_K8m_R3MUSe9d6bl-ia3QWLeLXwmvmiv4JwpCI,1018
15
- vantage6/cli/algostore/remove.py,sha256=ieQLpo2ZpblpPxaeRXdB7IO0DzTtURnveYQltW7TTSw,1643
16
- vantage6/cli/algostore/start.py,sha256=YjhnkLjPLVhsxpQxzPgsYc7p8Un6YJ91_OpukTso2eE,2107
17
- vantage6/cli/algostore/stop.py,sha256=n6FTmXF7Np9gZgPJMF71YkRR3aK0PkK64MRjULysH_4,2927
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
18
  vantage6/cli/common/decorator.py,sha256=KF3uFjmn00qtTSD90BLczaX-gqvlt2Kud4PJGm7P4jU,3627
19
- vantage6/cli/common/new.py,sha256=kY34iuNEq5mXA-XRGY3TlomAvkzzArGjGGwjZFBrGc0,2017
20
- vantage6/cli/common/start.py,sha256=nhxQlqKe3g_sPISswq7tvV5Pf1rQMQWGL6BCpcgzXFQ,9078
21
- vantage6/cli/common/stop.py,sha256=bdo6pA4YLu0orQ4-Ii7P_hqwQJ75kO2WMkp-0gRKVsg,2645
22
- vantage6/cli/common/utils.py,sha256=AEptnTib104bTTmG6XTdDijDaz9IuV480BGcQqLMDEU,10550
19
+ vantage6/cli/common/new.py,sha256=WBGGYknLUMz4iPAzFanG57ioM9bTqFf2ANQRzYg6Ibo,2612
20
+ vantage6/cli/common/remove.py,sha256=sJaPF5y1Gd14I4Xg5QRBq3d1x4j2KF4Ys6wVDuqE6HQ,1697
21
+ vantage6/cli/common/start.py,sha256=jErssa0-E4tl3RI2BMND4PFmLQm3uZzhUJ45cuZEHw8,9784
22
+ vantage6/cli/common/stop.py,sha256=S3IeV_myD01CdSUvl6hkf4qWlWQZ_oUgIkbJoGsQK-Q,4989
23
+ vantage6/cli/common/utils.py,sha256=P1Wp1mKG8Z36IqeE7nyXnrAO_jhIVwnMYBDnJ1ltFPc,11767
23
24
  vantage6/cli/context/__init__.py,sha256=88LSA3h_v-t8PzjCrzl0vw1jkOdNUNr3nPo-L2e9onc,2684
24
25
  vantage6/cli/context/algorithm_store.py,sha256=qTNRrCo_EWVAfSC4eg_MohSf_Ra4U3tZvB8EwZZREEw,4044
25
26
  vantage6/cli/context/base_server.py,sha256=i0op_9mifKjJIP4I1Z-V3HRFf_WPOrBQGFvTL6pJZL8,2450
26
- vantage6/cli/context/node.py,sha256=RsCO12B21ypaGn96Dz6mriA-RjS9GyptF2bSbUShjcI,7453
27
+ vantage6/cli/context/node.py,sha256=GaU52z4dMnZMDMj3MZACL0VeWZLeeM3lRNvMKlqA1J4,7304
27
28
  vantage6/cli/context/server.py,sha256=o2HMlDEg7RbU44AfwNPln8K64FX4SQ_IgULFY_GBhEI,4837
28
29
  vantage6/cli/dev/create.py,sha256=WBBPG9jyNvPQVb1koHX9y3VKQmlijlq-QBsYYzqqojg,21207
29
30
  vantage6/cli/dev/remove.py,sha256=kjmOqkMO0ZU5F-3KgQ05VlfQQCS5Ta6yLY32DU0rH7k,3917
30
31
  vantage6/cli/dev/data/km_dataset.csv,sha256=OrYF2ympb2QndiUOX_nTFGGB1HbAp2eOvZzrQ_PqJs4,31283
31
- vantage6/cli/node/attach.py,sha256=cmouPrkbIbg21_wlAe-L-ecmrKVxiDkzGmEtRaCnKQY,276
32
- vantage6/cli/node/clean.py,sha256=uCty2GNuwoTybs1nIOygQLxtbleQ-rnnS6_4ieWVmCw,1199
32
+ vantage6/cli/node/attach.py,sha256=5wB6vjp-m44cQx-C20QBo5WhbHqjxrfWWFzTa5YCyww,277
33
33
  vantage6/cli/node/create_private_key.py,sha256=gmgI9Gtcx3z0esxyLw-96HcrfmAJFOjjXbVvA9ZGN3g,5129
34
- vantage6/cli/node/files.py,sha256=V7bJeR8weX0Llpp6y9wQoNrRsvlotEE6e70aTJp9j6M,1331
34
+ vantage6/cli/node/files.py,sha256=y7WOGHCTE3DnmxgbweLcu51t0YLS9Jvl24zgCHKkQTQ,1003
35
35
  vantage6/cli/node/list.py,sha256=_WZ8EBIEUlzFhVp3cR2MK5FUuQicMEZHhD8npMwKSpM,1664
36
- vantage6/cli/node/new.py,sha256=D-zI20pneF8kmGZKTRj09IaMMsj7z2rhiGXegMZywik,2040
37
- vantage6/cli/node/remove.py,sha256=5gylLyMa8LoavQNQv71JuwrTZN2rJwLrphl4Z0Fu6_8,3658
38
- vantage6/cli/node/restart.py,sha256=bWx0n4tN8TWOy_o8lJkA7AR-H1UIbfAiPp93I5wXg1Y,3709
36
+ vantage6/cli/node/new.py,sha256=gs0okv4jnh3jPmENNH2RzXxG8Q-bbPmbjxioQOyjUH8,12395
37
+ vantage6/cli/node/remove.py,sha256=alInSH_3E-yJthQ8JrGaopvAZ7GgxuRBppnpC8BRTBU,1061
38
+ vantage6/cli/node/restart.py,sha256=hJWzyJjetfNe8YYkOt5ZEUE_t-LpvQOwUGcQH0pXfNQ,3122
39
39
  vantage6/cli/node/set_api_key.py,sha256=OYCCJ8zrbc7uXyv0uLTejqD43xXELVvR01czzG46imo,1998
40
- vantage6/cli/node/start.py,sha256=hyRXp6IAuK_InKSicuDnBYwjJLUUPZUfC8d1nYPAdO4,12226
41
- vantage6/cli/node/stop.py,sha256=DkUtaYRghQz9UR9FG8zRUR4aK0GVlGJGs_8Y5jXSao4,4156
40
+ vantage6/cli/node/start.py,sha256=wzSfN_H9PdorSjJr8dYJl7p0HJ0XuOz-gNDbuHAbWo4,3975
41
+ vantage6/cli/node/stop.py,sha256=pQ4auPeGbipBRlgFsuqqsMBlNAbgaowxeFpH-HpikkM,1950
42
42
  vantage6/cli/node/version.py,sha256=X921xyIvIPYObPac2Si5msZ2tay5ySidnPWmGj1ilZw,1959
43
43
  vantage6/cli/node/common/__init__.py,sha256=gYbdDajTz5Sh-buChejB8-lkMXalL85mMsMbM0OlR1Q,2868
44
44
  vantage6/cli/prometheus/monitoring_manager.py,sha256=tNvguLonbVILqCDnHRizef5NwKnEOV0DuzTx0Bhd2HU,4906
@@ -51,15 +51,15 @@ vantage6/cli/server/attach.py,sha256=q1E40nGCBEFUF1p94sZoU-Ud3OXAUy4-FJqcP7Gqa7U
51
51
  vantage6/cli/server/files.py,sha256=MsnLaY91F2m49mm_FpVboFrSsZiEsu175KioN1alZfk,568
52
52
  vantage6/cli/server/import_.py,sha256=VDzEdEBtCtyF_ofzb6sSkXTNwhzBcq1-ByaHb1jfdes,4523
53
53
  vantage6/cli/server/list.py,sha256=ioHQeBq5_SE6zNcyg9C7lqvcPwyHOyGPZ4SisFgq5-E,314
54
- vantage6/cli/server/new.py,sha256=DV5AmeAxnqV9VAmKXABbrm6-uHnIwtFRJqNQLaKkv_g,1017
55
- vantage6/cli/server/remove.py,sha256=6tfKfVa5dYnZAKQYo_VlGZTuiugi7sh2F3U2cZ7mCmQ,1627
54
+ vantage6/cli/server/new.py,sha256=rXq643DOqladIgGBNTDKSk3p1sUma8AwTIQDEknzCYg,3032
55
+ vantage6/cli/server/remove.py,sha256=dwylIP5uEUPTRP9bd6_7rWhyUoCJuYoe1Kon9WUV4tY,891
56
56
  vantage6/cli/server/shell.py,sha256=47uGPupdG-2b8yhWvJoht-VJL29CodemcgXuo04CMBU,1601
57
- vantage6/cli/server/start.py,sha256=AreESfIl24cqCvBWs5vT-EBRxvRxdMs-iXQXXXOz3zI,2550
58
- vantage6/cli/server/stop.py,sha256=O7138HIE-vJGupRpUgf71cmrBc1PBjJGh9kH2P1a0p4,2997
57
+ vantage6/cli/server/start.py,sha256=fO4A7D0aiSVKN4zhX5I1Z6UzQj57Ih4KD8PGuDgQoic,2606
58
+ vantage6/cli/server/stop.py,sha256=MwJqGh_9a0RCBQ7ZCDCO3975NyzKzGVz3AKRbghsJnc,2016
59
59
  vantage6/cli/server/version.py,sha256=lqrPNKMbFO22W-NarJ2TjLd7fZT43hV-sFRbzMlBniw,1307
60
60
  vantage6/cli/server/common/__init__.py,sha256=htv0mFYa4GhIHdzA2xqUUgKhHcMh09UQERlIjIgrwOM,2062
61
- vantage6/cli/template/algo_store_config.j2,sha256=5XHkOv4YZU0umkC_11ilFiBXRWQtPeRgu1FfI4hJ6r0,7367
62
- vantage6/cli/template/node_config.j2,sha256=Y5IA5tyG9X8MDMnJ7_ZlMVMCIA6NkZOhwM_ykTOGT4g,784
61
+ vantage6/cli/template/algo_store_config.j2,sha256=eA79CEXGPTO3kWX5SDhuO4VY2t_shjOHIvGIC6ANrro,7377
62
+ vantage6/cli/template/node_config.j2,sha256=tmpTzD62WPTlth3wl_B9VHfk5j9aw1Rlf5BhrxZf65k,13742
63
63
  vantage6/cli/template/server_config.j2,sha256=tCgceSajZ-GVG8yEufFBPWkEJKKg3BfECQmO5TzTrgw,10036
64
64
  vantage6/cli/test/client_script.py,sha256=AHQ4fhzbtD-VcJAm0rxUDteepXNa4Bef9SKWnzobTd0,4825
65
65
  vantage6/cli/test/feature_tester.py,sha256=AsZam91KqaAo_yIFxyZ5Hmy1ZPw83d02BDyO4TzKFQo,2631
@@ -69,7 +69,7 @@ vantage6/cli/test/algo_test_scripts/algo_test_script.py,sha256=jfzXPmpL0HlE_eq1j
69
69
  vantage6/cli/test/common/diagnostic_runner.py,sha256=5-KgspYW0PncO_t_TrQzd_GSOXVwH-7bIVv-IHOxwQM,6598
70
70
  vantage6/cli/use/context.py,sha256=mEtOfbuLtYQlRh-ypif24WtOwgpcvXObX310mmXIkWY,1362
71
71
  vantage6/cli/use/namespace.py,sha256=MOd9H3GJwZ0cho0mmlHTRlGPLoQEiSnZIFDsFsvYw4Q,1643
72
- vantage6-5.0.0a34.dist-info/METADATA,sha256=1EPx21xNrr2y_KkPHz3bvTXtsDBMwL_5e1eAsXbFtdE,1779
73
- vantage6-5.0.0a34.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
74
- vantage6-5.0.0a34.dist-info/entry_points.txt,sha256=RKVCMsD70s_Gp6If89uDlCphsZ9uLIOMt1gciv8EMDQ,53
75
- vantage6-5.0.0a34.dist-info/RECORD,,
72
+ vantage6-5.0.0a35.dist-info/METADATA,sha256=U1-XFn_RjriLgoqwYEkwb_DTjROM-1Y0_YTIw9Rqcfo,1779
73
+ vantage6-5.0.0a35.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
74
+ vantage6-5.0.0a35.dist-info/entry_points.txt,sha256=RKVCMsD70s_Gp6If89uDlCphsZ9uLIOMt1gciv8EMDQ,53
75
+ vantage6-5.0.0a35.dist-info/RECORD,,
@@ -1,46 +0,0 @@
1
- import click
2
- import questionary as q
3
- import docker
4
-
5
- from colorama import Fore, Style
6
-
7
- from vantage6.common import error, info, debug
8
- from vantage6.common.docker.addons import check_docker_running
9
-
10
-
11
- @click.command()
12
- def cli_node_clean() -> None:
13
- """
14
- Erase temporary Docker volumes.
15
- """
16
- check_docker_running()
17
- client = docker.from_env()
18
-
19
- # retrieve all volumes
20
- volumes = client.volumes.list()
21
- candidates = []
22
- msg = "This would remove the following volumes: "
23
- for volume in volumes:
24
- if volume.name[-6:] == "tmpvol":
25
- candidates.append(volume)
26
- msg += volume.name + ","
27
- info(msg)
28
-
29
- try:
30
- confirm = q.confirm("Are you sure?").unsafe_ask()
31
- except KeyboardInterrupt:
32
- confirm = False
33
-
34
- if confirm:
35
- for volume in candidates:
36
- try:
37
- volume.remove()
38
- # info(volume.name)
39
- except docker.errors.APIError as e:
40
- error(
41
- f"Failed to remove volume {Fore.RED}'{volume.name}'"
42
- f"{Style.RESET_ALL}. Is it still in use?"
43
- )
44
- debug(e)
45
- exit(1)
46
- info("Done!")