lablink-cli 0.1.0__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.
- lablink_cli/__init__.py +8 -0
- lablink_cli/api.py +428 -0
- lablink_cli/app.py +938 -0
- lablink_cli/byo_detect.py +112 -0
- lablink_cli/commands/__init__.py +0 -0
- lablink_cli/commands/cleanup.py +647 -0
- lablink_cli/commands/deploy.py +863 -0
- lablink_cli/commands/deploy_compose.py +1203 -0
- lablink_cli/commands/doctor.py +549 -0
- lablink_cli/commands/export_metrics.py +244 -0
- lablink_cli/commands/launch.py +236 -0
- lablink_cli/commands/logs.py +434 -0
- lablink_cli/commands/register.py +839 -0
- lablink_cli/commands/reset_overlay.py +109 -0
- lablink_cli/commands/setup.py +347 -0
- lablink_cli/commands/stats.py +133 -0
- lablink_cli/commands/status.py +934 -0
- lablink_cli/commands/unregister.py +188 -0
- lablink_cli/commands/utils.py +552 -0
- lablink_cli/config/__init__.py +0 -0
- lablink_cli/config/schema.py +212 -0
- lablink_cli/deployment_metrics.py +94 -0
- lablink_cli/docker.py +419 -0
- lablink_cli/log_shipper.py +441 -0
- lablink_cli/templates/docker-compose.tailscale-override.yml +55 -0
- lablink_cli/templates/docker-compose.yml +67 -0
- lablink_cli/tofu_source.py +169 -0
- lablink_cli/tui/__init__.py +0 -0
- lablink_cli/tui/logs_viewer.py +413 -0
- lablink_cli/tui/wizard.py +1814 -0
- lablink_cli-0.1.0.dist-info/METADATA +76 -0
- lablink_cli-0.1.0.dist-info/RECORD +35 -0
- lablink_cli-0.1.0.dist-info/WHEEL +5 -0
- lablink_cli-0.1.0.dist-info/entry_points.txt +2 -0
- lablink_cli-0.1.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: lablink-cli
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: CLI tool for deploying and managing LabLink infrastructure
|
|
5
|
+
Author-email: Elizabeth Berrigan <eberrigan@salk.edu>, Talmo Pereira <talmo@salk.edu>, Andrew Park <hep003@ucsd.edu>
|
|
6
|
+
Project-URL: Homepage, https://github.com/talmolab/lablink
|
|
7
|
+
Project-URL: Issues, https://github.com/talmolab/lablink/issues
|
|
8
|
+
Requires-Python: >=3.10
|
|
9
|
+
Description-Content-Type: text/markdown
|
|
10
|
+
Requires-Dist: lablink-allocator-service[config]>=0.2.0
|
|
11
|
+
Requires-Dist: typer>=0.15
|
|
12
|
+
Requires-Dist: textual>=3.0
|
|
13
|
+
Requires-Dist: rich>=13.0
|
|
14
|
+
Requires-Dist: pyyaml>=6.0
|
|
15
|
+
Requires-Dist: boto3>=1.35
|
|
16
|
+
Requires-Dist: psutil>=5.9
|
|
17
|
+
Provides-Extra: dev
|
|
18
|
+
Requires-Dist: pytest; extra == "dev"
|
|
19
|
+
Requires-Dist: pytest-cov; extra == "dev"
|
|
20
|
+
Requires-Dist: ruff; extra == "dev"
|
|
21
|
+
|
|
22
|
+
# LabLink CLI
|
|
23
|
+
|
|
24
|
+
Command-line tool for deploying and managing LabLink teaching lab infrastructure —
|
|
25
|
+
on AWS (EC2 via Terraform) or on a machine you already have (`provider: manual`,
|
|
26
|
+
deployed with docker-compose).
|
|
27
|
+
|
|
28
|
+
## Installation
|
|
29
|
+
|
|
30
|
+
This package is not yet published to PyPI. Install it from source — the repo is a
|
|
31
|
+
`uv` workspace, so sync all three packages into the shared root venv:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
git clone https://github.com/talmolab/lablink.git
|
|
35
|
+
cd lablink
|
|
36
|
+
uv sync --all-packages
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Usage
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
lablink --help
|
|
43
|
+
lablink --version # or -v
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Commands
|
|
47
|
+
|
|
48
|
+
| Command | Description |
|
|
49
|
+
| ---------------- | ---------------------------------------------------------------------------------------- |
|
|
50
|
+
| `configure` | Create or edit LabLink configuration (interactive TUI) |
|
|
51
|
+
| `setup` | Provision provider-specific bootstrap resources (AWS: S3 + DynamoDB for Terraform state) |
|
|
52
|
+
| `doctor` | Check prerequisites and configuration |
|
|
53
|
+
| `deploy` | Deploy LabLink infrastructure (AWS Terraform or docker-compose) |
|
|
54
|
+
| `destroy` | Tear down LabLink infrastructure |
|
|
55
|
+
| `status` | Show deployment health and inventory |
|
|
56
|
+
| `logs` | View allocator and client logs |
|
|
57
|
+
| `export-metrics` | Export deployment metrics to CSV or JSON |
|
|
58
|
+
| `stats` | Show a cohort session-metrics summary in the terminal |
|
|
59
|
+
| `cleanup` | Remove deployment resources and local state |
|
|
60
|
+
| `show-config` | View the current LabLink configuration |
|
|
61
|
+
| `cache-clear` | Clear LabLink caches (Terraform templates, deployment metrics) |
|
|
62
|
+
|
|
63
|
+
### Client fleet commands
|
|
64
|
+
|
|
65
|
+
| Command | Description |
|
|
66
|
+
| ---------------------- | -------------------------------------------------------------------------------- |
|
|
67
|
+
| `client launch` | Launch client VMs via the allocator service (AWS provider) |
|
|
68
|
+
| `client register` | Register this bring-your-own box as a manual client and run the client container |
|
|
69
|
+
| `client unregister` | Tear down a registered BYO box |
|
|
70
|
+
| `client reset-overlay` | Discard this box's persisted mesh-overlay node identity |
|
|
71
|
+
|
|
72
|
+
Run `lablink <command> --help` for details on any command.
|
|
73
|
+
|
|
74
|
+
## Documentation
|
|
75
|
+
|
|
76
|
+
Full CLI documentation: https://talmolab.github.io/lablink/cli/
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
lablink_cli/__init__.py,sha256=GPotHQCnezcbAREx-2Lk5viagZwTH_NNygroKCOf7wk,376
|
|
2
|
+
lablink_cli/api.py,sha256=lAQNsQMdZWDxlfh1mVO73cncxrs7W3JFfCXKtZq2vBs,15219
|
|
3
|
+
lablink_cli/app.py,sha256=U2N5b9yUW5hEvzgG6n1HFDTlqTE9zvheSOMCb2TVKa8,30679
|
|
4
|
+
lablink_cli/byo_detect.py,sha256=U28rFQMmC2iSuqUc26omELkWUdvYp7RO2dDDgKuR9Og,3585
|
|
5
|
+
lablink_cli/deployment_metrics.py,sha256=8EoCVzFCnVngQWTluL01rYMQmv5eGFfESGbslQZW3hA,3565
|
|
6
|
+
lablink_cli/docker.py,sha256=_ju-ta5FPCQrnQeS1q-LiYnM1pvNVgUAwGzW8dED-Zc,14410
|
|
7
|
+
lablink_cli/log_shipper.py,sha256=LDd0jq5nxA_3O5Odl8bqTjdcPa7AgKa5EgCTnV064ig,15235
|
|
8
|
+
lablink_cli/tofu_source.py,sha256=9DoDbpi64xAFJdkfW0708JJyCPUsdc40IiAwH5z5CvM,5273
|
|
9
|
+
lablink_cli/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
|
+
lablink_cli/commands/cleanup.py,sha256=ZTMt3ZQCLXNnx_uXvaQwRj05pdbE3kyUm00Bqgu8I3Y,20145
|
|
11
|
+
lablink_cli/commands/deploy.py,sha256=gV2zgzmQuMwsjUXCKipSK8lHMWkja4yrSP0iKm-5nEI,27498
|
|
12
|
+
lablink_cli/commands/deploy_compose.py,sha256=RzRIHn7ZlMBTM-9ydy8Bcb2kLUISfRVWYcm9vmJ-uRg,56076
|
|
13
|
+
lablink_cli/commands/doctor.py,sha256=3aDCvDqvW2IiZGZIf6l9BvLpfUWW0xRS4qXm-p4Nm9s,17394
|
|
14
|
+
lablink_cli/commands/export_metrics.py,sha256=yyQsKMbcAHwF3FGk1LNU0yLsiam-i0ThgShSJbiuiAI,8675
|
|
15
|
+
lablink_cli/commands/launch.py,sha256=c9U21XY7DiC2PFuyL3XlDhWnH1xidXxa5DaNx3v36qw,7734
|
|
16
|
+
lablink_cli/commands/logs.py,sha256=TWMSjkChRexllqLZG3NJXAScpnPG2wCEN-z6LBfw4rE,12743
|
|
17
|
+
lablink_cli/commands/register.py,sha256=5vZpA7lkmcieNc4wOTYE3X4OYgq6yEB1N0145MtaYr4,34966
|
|
18
|
+
lablink_cli/commands/reset_overlay.py,sha256=7WkpQEnU6kvprEy8W5gycAps_vkKnTV0RYainw6fioE,4501
|
|
19
|
+
lablink_cli/commands/setup.py,sha256=kUBajKEwpvnZ_J8ONy66sSw13Gn7VIUOTCFIMhxf6j0,10677
|
|
20
|
+
lablink_cli/commands/stats.py,sha256=7x7O3meGACrmV13ieCf3ObOii5dW96QGE0ioU9iaxO8,4104
|
|
21
|
+
lablink_cli/commands/status.py,sha256=8B3Z6zV4ZB5t3oH6oVAy9nlGcMPnYM7J3M3Y91W_IB0,30060
|
|
22
|
+
lablink_cli/commands/unregister.py,sha256=FqWMD4YIYovxgjmZ2foh4KSHDSQhvqNDKYnhi2IZthc,6057
|
|
23
|
+
lablink_cli/commands/utils.py,sha256=c7wAvhMHN0VwDot7WG8aK1kz69eAlNmzbeklaIEbncU,18926
|
|
24
|
+
lablink_cli/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
|
+
lablink_cli/config/schema.py,sha256=Ol1ExvfWRGhEKHgn89CqbdKVx5SLiCBkbHL8KuvbruU,5740
|
|
26
|
+
lablink_cli/templates/docker-compose.tailscale-override.yml,sha256=YlxzBBy487yXe7483MKBsf75C52W9NAjNage_NUWDrI,2552
|
|
27
|
+
lablink_cli/templates/docker-compose.yml,sha256=oP8Bqai9RTetacAt9qMn82m7gOofdHcWyeOO9W-sNRw,3737
|
|
28
|
+
lablink_cli/tui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
29
|
+
lablink_cli/tui/logs_viewer.py,sha256=M8OP2Jx2VYYVlIAr5MLeP5aS55kwAkrZBfs_VeBVKpE,13786
|
|
30
|
+
lablink_cli/tui/wizard.py,sha256=h99QRS7klqBdqpy3mjmD_73xLro1jiS5j2-bPh-QXLs,65876
|
|
31
|
+
lablink_cli-0.1.0.dist-info/METADATA,sha256=916LTw-3HrVJo7fMUC6dh5eV5IscstQ53mLaUztZTFc,3743
|
|
32
|
+
lablink_cli-0.1.0.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
|
|
33
|
+
lablink_cli-0.1.0.dist-info/entry_points.txt,sha256=OIx3kBCMQmyHHDbOBCIAHL7C_nhzmCyh5NIiAnCQF7Y,49
|
|
34
|
+
lablink_cli-0.1.0.dist-info/top_level.txt,sha256=FJGUi8ALnRudnpC2iugwk_AXT3kwOcdAYl5NJf69QhY,12
|
|
35
|
+
lablink_cli-0.1.0.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
lablink_cli
|