aws-bootstrap-g4dn 0.6.0__py3-none-any.whl → 0.8.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.
- aws_bootstrap/cli.py +411 -101
- aws_bootstrap/ec2.py +45 -8
- aws_bootstrap/output.py +106 -0
- aws_bootstrap/ssh.py +21 -20
- aws_bootstrap/tests/test_cli.py +377 -0
- aws_bootstrap/tests/test_ebs.py +90 -0
- aws_bootstrap/tests/test_output.py +192 -0
- {aws_bootstrap_g4dn-0.6.0.dist-info → aws_bootstrap_g4dn-0.8.0.dist-info}/METADATA +34 -1
- {aws_bootstrap_g4dn-0.6.0.dist-info → aws_bootstrap_g4dn-0.8.0.dist-info}/RECORD +13 -11
- {aws_bootstrap_g4dn-0.6.0.dist-info → aws_bootstrap_g4dn-0.8.0.dist-info}/WHEEL +0 -0
- {aws_bootstrap_g4dn-0.6.0.dist-info → aws_bootstrap_g4dn-0.8.0.dist-info}/entry_points.txt +0 -0
- {aws_bootstrap_g4dn-0.6.0.dist-info → aws_bootstrap_g4dn-0.8.0.dist-info}/licenses/LICENSE +0 -0
- {aws_bootstrap_g4dn-0.6.0.dist-info → aws_bootstrap_g4dn-0.8.0.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: aws-bootstrap-g4dn
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.8.0
|
|
4
4
|
Summary: Bootstrap AWS EC2 GPU instances for hybrid local-remote development
|
|
5
5
|
Author: Adam Ever-Hadani
|
|
6
6
|
License-Expression: MIT
|
|
@@ -15,6 +15,8 @@ Description-Content-Type: text/markdown
|
|
|
15
15
|
License-File: LICENSE
|
|
16
16
|
Requires-Dist: boto3>=1.35
|
|
17
17
|
Requires-Dist: click>=8.1
|
|
18
|
+
Requires-Dist: pyyaml>=6.0.3
|
|
19
|
+
Requires-Dist: tabulate>=0.9.0
|
|
18
20
|
Dynamic: license-file
|
|
19
21
|
|
|
20
22
|
# aws-bootstrap-g4dn
|
|
@@ -232,6 +234,30 @@ Then install the [Nsight VSCE extension](https://marketplace.visualstudio.com/it
|
|
|
232
234
|
|
|
233
235
|
See [Nsight remote profiling guide](docs/nsight-remote-profiling.md) for more details on CUDA debugging and profiling workflows.
|
|
234
236
|
|
|
237
|
+
### 📤 Structured Output
|
|
238
|
+
|
|
239
|
+
All commands support `--output` / `-o` for machine-readable output — useful for scripting, piping to `jq`, or LLM tool-use:
|
|
240
|
+
|
|
241
|
+
```bash
|
|
242
|
+
# JSON output (pipe to jq)
|
|
243
|
+
aws-bootstrap -o json status
|
|
244
|
+
aws-bootstrap -o json status | jq '.instances[0].instance_id'
|
|
245
|
+
|
|
246
|
+
# YAML output
|
|
247
|
+
aws-bootstrap -o yaml status
|
|
248
|
+
|
|
249
|
+
# Table output
|
|
250
|
+
aws-bootstrap -o table status
|
|
251
|
+
|
|
252
|
+
# Works with all commands
|
|
253
|
+
aws-bootstrap -o json list instance-types | jq '.[].instance_type'
|
|
254
|
+
aws-bootstrap -o json launch --dry-run
|
|
255
|
+
aws-bootstrap -o json terminate --yes
|
|
256
|
+
aws-bootstrap -o json cleanup --dry-run
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
Supported formats: `text` (default, human-readable with color), `json`, `yaml`, `table`. Commands that require confirmation (`terminate`, `cleanup`) require `--yes` in structured output modes.
|
|
260
|
+
|
|
235
261
|
### 📋 Listing Resources
|
|
236
262
|
|
|
237
263
|
```bash
|
|
@@ -291,6 +317,12 @@ aws-bootstrap cleanup
|
|
|
291
317
|
# Preview what would be removed without modifying config
|
|
292
318
|
aws-bootstrap cleanup --dry-run
|
|
293
319
|
|
|
320
|
+
# Also find and delete orphan EBS data volumes
|
|
321
|
+
aws-bootstrap cleanup --include-ebs
|
|
322
|
+
|
|
323
|
+
# Preview orphan volumes without deleting
|
|
324
|
+
aws-bootstrap cleanup --include-ebs --dry-run
|
|
325
|
+
|
|
294
326
|
# Skip confirmation prompt
|
|
295
327
|
aws-bootstrap cleanup --yes
|
|
296
328
|
```
|
|
@@ -324,6 +356,7 @@ Key behaviors:
|
|
|
324
356
|
- New volumes are formatted as ext4; existing volumes are mounted as-is
|
|
325
357
|
- Volumes are tagged for automatic discovery by `status` and `terminate`
|
|
326
358
|
- `terminate` deletes data volumes by default; use `--keep-ebs` to preserve them
|
|
359
|
+
- **Orphan cleanup** — use `aws-bootstrap cleanup --include-ebs` to find and delete orphan volumes (e.g. from spot interruptions or forgotten `--keep-ebs` volumes). Use `--dry-run` to preview
|
|
327
360
|
- **Spot-safe** — data volumes survive spot interruptions. If AWS reclaims your instance, the volume detaches automatically and can be reattached to a new instance with `--ebs-volume-id`
|
|
328
361
|
- EBS volumes must be in the same availability zone as the instance
|
|
329
362
|
- Mount failures are non-fatal — the instance remains usable
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
aws_bootstrap/__init__.py,sha256=kl_jvrunGyIyizdRqAP6ROb5P1BBrXX5PTq5gq1ipU0,82
|
|
2
|
-
aws_bootstrap/cli.py,sha256=
|
|
2
|
+
aws_bootstrap/cli.py,sha256=Dcxz5r300gu9H61MaL6KpCkEIMRFmQ_3cDXPQOstRNU,38882
|
|
3
3
|
aws_bootstrap/config.py,sha256=p770XgjfuK1-wVkAEeBdtJSVkc58DKFHgaJlZ-zbGmk,967
|
|
4
|
-
aws_bootstrap/ec2.py,sha256=
|
|
4
|
+
aws_bootstrap/ec2.py,sha256=Ygbl1u0zM8yuvUOlCs_wmB30sVQAvcDbYWarKc_JagI,18110
|
|
5
5
|
aws_bootstrap/gpu.py,sha256=WTnHR0s3mQHDlnzqRgqAC6omWz7nT5YtGpcs0Bf88jk,692
|
|
6
|
-
aws_bootstrap/
|
|
6
|
+
aws_bootstrap/output.py,sha256=3NKIcRiYbS66ZWllpj7tkB_UlnFMHqtgE9ixY8Vhmrc,3753
|
|
7
|
+
aws_bootstrap/ssh.py,sha256=0R1o3aUXxdYWqJ-uvYZZY8rnZO7mfc30PwjCJs_0Qow,23971
|
|
7
8
|
aws_bootstrap/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
9
|
aws_bootstrap/resources/gpu_benchmark.py,sha256=1eFt_3MXvoLhs9HahrRPhbxvtdjFaXG2Ty3GEg7Gud0,29366
|
|
9
10
|
aws_bootstrap/resources/gpu_smoke_test.ipynb,sha256=XvAOEIPa5H9ri5mRZqOdknmwOwKNvCME6DzBGuhRYfg,10698
|
|
@@ -13,17 +14,18 @@ aws_bootstrap/resources/requirements.txt,sha256=gpYl1MFCfWXiAhbIUgAjuTHONz3MKci2
|
|
|
13
14
|
aws_bootstrap/resources/saxpy.cu,sha256=1BSESEwGGCx3KWx9ZJ8jiPHQ42KzQN6i2aP0I28bPsA,1178
|
|
14
15
|
aws_bootstrap/resources/tasks.json,sha256=6U8pB1N8YIWgUCfFet4ne3nYnI92tWv5D5kPiQG3Zlg,1576
|
|
15
16
|
aws_bootstrap/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
|
-
aws_bootstrap/tests/test_cli.py,sha256=
|
|
17
|
+
aws_bootstrap/tests/test_cli.py,sha256=OQYjUNuJV4uFmjOgcHMJwIYUwj3MnrIQTZAchsn3rrg,63938
|
|
17
18
|
aws_bootstrap/tests/test_config.py,sha256=vspSGoben_i7m4Fh6UGSes6Fkr789Y1eaOLe54fRSGc,1524
|
|
18
|
-
aws_bootstrap/tests/test_ebs.py,sha256=
|
|
19
|
+
aws_bootstrap/tests/test_ebs.py,sha256=9Ds7B_f3WPBlCLiOnKkcUvz3kst5Y3xL_95bQNRljuo,10780
|
|
19
20
|
aws_bootstrap/tests/test_ec2.py,sha256=Jmqsjv973hxXbZWfGgECtm6aa2156Lzji227sYMBuMg,10547
|
|
20
21
|
aws_bootstrap/tests/test_gpu.py,sha256=rbMuda_sIVbaCzkWXoLv9YIfnWztgRoP7NuVL8XHrUY,3871
|
|
22
|
+
aws_bootstrap/tests/test_output.py,sha256=RRSbxtGqi7jfC9i4CR4EZXP56SmdsYUZDpT5uj8DWKQ,5250
|
|
21
23
|
aws_bootstrap/tests/test_ssh_config.py,sha256=qy3UDdvkTfrALiF-W3m8aKvnQj3BeCrZdLjG75tcVJU,17131
|
|
22
24
|
aws_bootstrap/tests/test_ssh_ebs.py,sha256=ipt0xOzdf3kfkVt42Dgr_z7D6JDIMuRi3DqX0OP8sm0,2342
|
|
23
25
|
aws_bootstrap/tests/test_ssh_gpu.py,sha256=dRp86Og-8GqiATSff3rxhu83mBZdGgqI4UOnoC00Ln0,1454
|
|
24
|
-
aws_bootstrap_g4dn-0.
|
|
25
|
-
aws_bootstrap_g4dn-0.
|
|
26
|
-
aws_bootstrap_g4dn-0.
|
|
27
|
-
aws_bootstrap_g4dn-0.
|
|
28
|
-
aws_bootstrap_g4dn-0.
|
|
29
|
-
aws_bootstrap_g4dn-0.
|
|
26
|
+
aws_bootstrap_g4dn-0.8.0.dist-info/licenses/LICENSE,sha256=Hen77Mt8sazSQJ9DgrmZuAvDwo2vc5JAkR_avuFV-CM,1067
|
|
27
|
+
aws_bootstrap_g4dn-0.8.0.dist-info/METADATA,sha256=TXm4SGbTxvbkrySCL0RTWUfW7thyHz-ul6BkL7yX1SM,17067
|
|
28
|
+
aws_bootstrap_g4dn-0.8.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
29
|
+
aws_bootstrap_g4dn-0.8.0.dist-info/entry_points.txt,sha256=T8FXfOgmLEvFi8DHaFJ3tCzId9J3_d2Y6qT98OXxCjA,57
|
|
30
|
+
aws_bootstrap_g4dn-0.8.0.dist-info/top_level.txt,sha256=mix9gZRs8JUv0OMSB_rwdGcRnTKzsKgHrE5fyAn5zJw,14
|
|
31
|
+
aws_bootstrap_g4dn-0.8.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|