opencloudtool 0.4.1__tar.gz → 0.5.1__tar.gz

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.
Files changed (49) hide show
  1. {opencloudtool-0.4.1 → opencloudtool-0.5.1}/Cargo.lock +74 -90
  2. {opencloudtool-0.4.1 → opencloudtool-0.5.1}/Cargo.toml +13 -12
  3. opencloudtool-0.5.1/PKG-INFO +112 -0
  4. opencloudtool-0.5.1/README.md +105 -0
  5. {opencloudtool-0.4.1 → opencloudtool-0.5.1}/crates/oct-cloud/README.md +19 -3
  6. {opencloudtool-0.4.1 → opencloudtool-0.5.1}/crates/oct-cloud/src/aws/client.rs +10 -1
  7. opencloudtool-0.5.1/crates/oct-cloud/src/aws/resource.rs +309 -0
  8. opencloudtool-0.5.1/crates/oct-cloud/src/infra/graph.rs +1493 -0
  9. opencloudtool-0.5.1/crates/oct-cloud/src/infra/resource.rs +3063 -0
  10. opencloudtool-0.5.1/crates/oct-cloud/src/infra/state.rs +323 -0
  11. {opencloudtool-0.4.1 → opencloudtool-0.5.1}/crates/oct-cloud/src/lib.rs +0 -1
  12. opencloudtool-0.5.1/crates/oct-ctl-sdk/Cargo.toml +26 -0
  13. {opencloudtool-0.4.1/crates/oct-orchestrator → opencloudtool-0.5.1/crates/oct-ctl-sdk}/README.md +19 -3
  14. opencloudtool-0.4.1/crates/oct-orchestrator/src/oct_ctl_sdk.rs → opencloudtool-0.5.1/crates/oct-ctl-sdk/src/lib.rs +12 -12
  15. {opencloudtool-0.4.1 → opencloudtool-0.5.1}/crates/oct-orchestrator/Cargo.toml +2 -1
  16. opencloudtool-0.5.1/crates/oct-orchestrator/README.md +230 -0
  17. {opencloudtool-0.4.1 → opencloudtool-0.5.1}/crates/oct-orchestrator/src/backend.rs +36 -13
  18. {opencloudtool-0.4.1 → opencloudtool-0.5.1}/crates/oct-orchestrator/src/config.rs +206 -9
  19. opencloudtool-0.5.1/crates/oct-orchestrator/src/lib.rs +468 -0
  20. {opencloudtool-0.4.1 → opencloudtool-0.5.1}/crates/oct-orchestrator/src/scheduler.rs +1 -2
  21. {opencloudtool-0.4.1 → opencloudtool-0.5.1}/crates/oct-py/Cargo.toml +1 -1
  22. opencloudtool-0.5.1/crates/oct-py/README.md +105 -0
  23. opencloudtool-0.5.1/crates/oct-py/python/opencloudtool/__init__.py +3 -0
  24. opencloudtool-0.5.1/crates/oct-py/python/opencloudtool/py_api.py +142 -0
  25. {opencloudtool-0.4.1 → opencloudtool-0.5.1}/crates/oct-py/src/lib.rs +16 -26
  26. {opencloudtool-0.4.1 → opencloudtool-0.5.1}/crates/oct-py/uv.lock +33 -3
  27. {opencloudtool-0.4.1 → opencloudtool-0.5.1}/pyproject.toml +3 -2
  28. opencloudtool-0.5.1/python/opencloudtool/__init__.py +3 -0
  29. opencloudtool-0.5.1/python/opencloudtool/py_api.py +142 -0
  30. opencloudtool-0.4.1/PKG-INFO +0 -63
  31. opencloudtool-0.4.1/README.md +0 -56
  32. opencloudtool-0.4.1/crates/oct-cloud/src/aws/resource.rs +0 -2599
  33. opencloudtool-0.4.1/crates/oct-cloud/src/infra/graph.rs +0 -809
  34. opencloudtool-0.4.1/crates/oct-cloud/src/infra/resource.rs +0 -990
  35. opencloudtool-0.4.1/crates/oct-cloud/src/infra/state.rs +0 -112
  36. opencloudtool-0.4.1/crates/oct-cloud/src/state.rs +0 -1599
  37. opencloudtool-0.4.1/crates/oct-orchestrator/src/lib.rs +0 -909
  38. opencloudtool-0.4.1/crates/oct-py/README.md +0 -56
  39. opencloudtool-0.4.1/crates/oct-py/python/oct/__init__.py +0 -3
  40. opencloudtool-0.4.1/crates/oct-py/python/oct/py_api.py +0 -66
  41. opencloudtool-0.4.1/python/oct/__init__.py +0 -3
  42. opencloudtool-0.4.1/python/oct/py_api.py +0 -66
  43. {opencloudtool-0.4.1 → opencloudtool-0.5.1}/crates/oct-cloud/Cargo.toml +0 -0
  44. {opencloudtool-0.4.1 → opencloudtool-0.5.1}/crates/oct-cloud/src/aws/mod.rs +0 -0
  45. {opencloudtool-0.4.1 → opencloudtool-0.5.1}/crates/oct-cloud/src/aws/types.rs +0 -0
  46. {opencloudtool-0.4.1 → opencloudtool-0.5.1}/crates/oct-cloud/src/infra/mod.rs +0 -0
  47. {opencloudtool-0.4.1 → opencloudtool-0.5.1}/crates/oct-cloud/src/resource.rs +0 -0
  48. {opencloudtool-0.4.1 → opencloudtool-0.5.1}/crates/oct-orchestrator/src/user_state.rs +0 -0
  49. {opencloudtool-0.4.1 → opencloudtool-0.5.1}/crates/oct-py/.python-version +0 -0
@@ -667,9 +667,9 @@ dependencies = [
667
667
 
668
668
  [[package]]
669
669
  name = "axum"
670
- version = "0.8.4"
670
+ version = "0.8.6"
671
671
  source = "registry+https://github.com/rust-lang/crates.io-index"
672
- checksum = "021e862c184ae977658b36c4500f7feac3221ca5da43e3f25bd04ab6c79a29b5"
672
+ checksum = "8a18ed336352031311f4e0b4dd2ff392d4fbb370777c9d18d7fc9d7359f73871"
673
673
  dependencies = [
674
674
  "axum-core",
675
675
  "bytes",
@@ -686,8 +686,7 @@ dependencies = [
686
686
  "mime",
687
687
  "percent-encoding",
688
688
  "pin-project-lite",
689
- "rustversion",
690
- "serde",
689
+ "serde_core",
691
690
  "serde_json",
692
691
  "serde_path_to_error",
693
692
  "serde_urlencoded",
@@ -701,9 +700,9 @@ dependencies = [
701
700
 
702
701
  [[package]]
703
702
  name = "axum-core"
704
- version = "0.5.2"
703
+ version = "0.5.5"
705
704
  source = "registry+https://github.com/rust-lang/crates.io-index"
706
- checksum = "68464cd0412f486726fb3373129ef5d2993f90c34bc2bc1c1e9943b2f4fc7ca6"
705
+ checksum = "59446ce19cd142f8833f856eb31f3eb097812d1479ab224f54d72428ca21ea22"
707
706
  dependencies = [
708
707
  "bytes",
709
708
  "futures-core",
@@ -712,7 +711,6 @@ dependencies = [
712
711
  "http-body-util",
713
712
  "mime",
714
713
  "pin-project-lite",
715
- "rustversion",
716
714
  "sync_wrapper",
717
715
  "tower-layer",
718
716
  "tower-service",
@@ -912,9 +910,9 @@ dependencies = [
912
910
 
913
911
  [[package]]
914
912
  name = "clap"
915
- version = "4.5.45"
913
+ version = "4.5.48"
916
914
  source = "registry+https://github.com/rust-lang/crates.io-index"
917
- checksum = "1fc0e74a703892159f5ae7d3aac52c8e6c392f5ae5f359c70b5881d60aaac318"
915
+ checksum = "e2134bb3ea021b78629caa971416385309e0131b351b25e01dc16fb54e1b5fae"
918
916
  dependencies = [
919
917
  "clap_builder",
920
918
  "clap_derive",
@@ -922,9 +920,9 @@ dependencies = [
922
920
 
923
921
  [[package]]
924
922
  name = "clap_builder"
925
- version = "4.5.44"
923
+ version = "4.5.48"
926
924
  source = "registry+https://github.com/rust-lang/crates.io-index"
927
- checksum = "b3e7f4214277f3c7aa526a59dd3fbe306a370daee1f8b7b8c987069cd8e888a8"
925
+ checksum = "c2ba64afa3c0a6df7fa517765e31314e983f51dda798ffba27b988194fb65dc9"
928
926
  dependencies = [
929
927
  "anstream",
930
928
  "anstyle",
@@ -934,11 +932,11 @@ dependencies = [
934
932
 
935
933
  [[package]]
936
934
  name = "clap_derive"
937
- version = "4.5.45"
935
+ version = "4.5.47"
938
936
  source = "registry+https://github.com/rust-lang/crates.io-index"
939
- checksum = "14cb31bb0a7d536caef2639baa7fad459e15c3144efefa6dbd1c84562c4739f6"
937
+ checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c"
940
938
  dependencies = [
941
- "heck 0.5.0",
939
+ "heck",
942
940
  "proc-macro2",
943
941
  "quote",
944
942
  "syn",
@@ -1513,12 +1511,6 @@ dependencies = [
1513
1511
  "foldhash",
1514
1512
  ]
1515
1513
 
1516
- [[package]]
1517
- name = "heck"
1518
- version = "0.4.1"
1519
- source = "registry+https://github.com/rust-lang/crates.io-index"
1520
- checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
1521
-
1522
1514
  [[package]]
1523
1515
  name = "heck"
1524
1516
  version = "0.5.0"
@@ -2065,9 +2057,9 @@ dependencies = [
2065
2057
 
2066
2058
  [[package]]
2067
2059
  name = "log"
2068
- version = "0.4.27"
2060
+ version = "0.4.28"
2069
2061
  source = "registry+https://github.com/rust-lang/crates.io-index"
2070
- checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94"
2062
+ checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432"
2071
2063
 
2072
2064
  [[package]]
2073
2065
  name = "lru"
@@ -2226,12 +2218,11 @@ checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
2226
2218
 
2227
2219
  [[package]]
2228
2220
  name = "nu-ansi-term"
2229
- version = "0.46.0"
2221
+ version = "0.50.1"
2230
2222
  source = "registry+https://github.com/rust-lang/crates.io-index"
2231
- checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
2223
+ checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399"
2232
2224
  dependencies = [
2233
- "overload",
2234
- "winapi",
2225
+ "windows-sys 0.52.0",
2235
2226
  ]
2236
2227
 
2237
2228
  [[package]]
@@ -2269,7 +2260,7 @@ dependencies = [
2269
2260
 
2270
2261
  [[package]]
2271
2262
  name = "oct-cli"
2272
- version = "0.4.1"
2263
+ version = "0.5.1"
2273
2264
  dependencies = [
2274
2265
  "assert_cmd",
2275
2266
  "clap",
@@ -2281,7 +2272,7 @@ dependencies = [
2281
2272
 
2282
2273
  [[package]]
2283
2274
  name = "oct-cloud"
2284
- version = "0.4.1"
2275
+ version = "0.5.1"
2285
2276
  dependencies = [
2286
2277
  "aws-config",
2287
2278
  "aws-sdk-ec2",
@@ -2301,7 +2292,7 @@ dependencies = [
2301
2292
 
2302
2293
  [[package]]
2303
2294
  name = "oct-ctl"
2304
- version = "0.4.1"
2295
+ version = "0.5.1"
2305
2296
  dependencies = [
2306
2297
  "axum",
2307
2298
  "log",
@@ -2315,15 +2306,27 @@ dependencies = [
2315
2306
  "tracing-subscriber",
2316
2307
  ]
2317
2308
 
2309
+ [[package]]
2310
+ name = "oct-ctl-sdk"
2311
+ version = "0.5.1"
2312
+ dependencies = [
2313
+ "mockito",
2314
+ "reqwest",
2315
+ "serde",
2316
+ "serde_json",
2317
+ "tokio",
2318
+ ]
2319
+
2318
2320
  [[package]]
2319
2321
  name = "oct-orchestrator"
2320
- version = "0.4.1"
2322
+ version = "0.5.1"
2321
2323
  dependencies = [
2322
2324
  "async-trait",
2323
2325
  "log",
2324
2326
  "mockito",
2325
2327
  "oct-cloud",
2326
- "reqwest",
2328
+ "oct-ctl-sdk",
2329
+ "petgraph",
2327
2330
  "serde",
2328
2331
  "serde_json",
2329
2332
  "tempfile",
@@ -2334,7 +2337,7 @@ dependencies = [
2334
2337
 
2335
2338
  [[package]]
2336
2339
  name = "oct-py"
2337
- version = "0.4.1"
2340
+ version = "0.5.1"
2338
2341
  dependencies = [
2339
2342
  "env_logger",
2340
2343
  "log",
@@ -2405,12 +2408,6 @@ version = "0.5.2"
2405
2408
  source = "registry+https://github.com/rust-lang/crates.io-index"
2406
2409
  checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e"
2407
2410
 
2408
- [[package]]
2409
- name = "overload"
2410
- version = "0.1.1"
2411
- source = "registry+https://github.com/rust-lang/crates.io-index"
2412
- checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
2413
-
2414
2411
  [[package]]
2415
2412
  name = "p256"
2416
2413
  version = "0.11.1"
@@ -2506,9 +2503,9 @@ dependencies = [
2506
2503
 
2507
2504
  [[package]]
2508
2505
  name = "petgraph"
2509
- version = "0.8.2"
2506
+ version = "0.8.3"
2510
2507
  source = "registry+https://github.com/rust-lang/crates.io-index"
2511
- checksum = "54acf3a685220b533e437e264e4d932cfbdc4cc7ec0cd232ed73c08d03b8a7ca"
2508
+ checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455"
2512
2509
  dependencies = [
2513
2510
  "fixedbitset",
2514
2511
  "hashbrown",
@@ -2672,15 +2669,14 @@ dependencies = [
2672
2669
 
2673
2670
  [[package]]
2674
2671
  name = "pyo3"
2675
- version = "0.20.3"
2672
+ version = "0.26.0"
2676
2673
  source = "registry+https://github.com/rust-lang/crates.io-index"
2677
- checksum = "53bdbb96d49157e65d45cc287af5f32ffadd5f4761438b527b055fb0d4bb8233"
2674
+ checksum = "7ba0117f4212101ee6544044dae45abe1083d30ce7b29c4b5cbdfa2354e07383"
2678
2675
  dependencies = [
2679
- "cfg-if",
2680
2676
  "indoc",
2681
2677
  "libc",
2682
2678
  "memoffset",
2683
- "parking_lot",
2679
+ "once_cell",
2684
2680
  "portable-atomic",
2685
2681
  "pyo3-build-config",
2686
2682
  "pyo3-ffi",
@@ -2690,19 +2686,18 @@ dependencies = [
2690
2686
 
2691
2687
  [[package]]
2692
2688
  name = "pyo3-build-config"
2693
- version = "0.20.3"
2689
+ version = "0.26.0"
2694
2690
  source = "registry+https://github.com/rust-lang/crates.io-index"
2695
- checksum = "deaa5745de3f5231ce10517a1f5dd97d53e5a2fd77aa6b5842292085831d48d7"
2691
+ checksum = "4fc6ddaf24947d12a9aa31ac65431fb1b851b8f4365426e182901eabfb87df5f"
2696
2692
  dependencies = [
2697
- "once_cell",
2698
2693
  "target-lexicon",
2699
2694
  ]
2700
2695
 
2701
2696
  [[package]]
2702
2697
  name = "pyo3-ffi"
2703
- version = "0.20.3"
2698
+ version = "0.26.0"
2704
2699
  source = "registry+https://github.com/rust-lang/crates.io-index"
2705
- checksum = "62b42531d03e08d4ef1f6e85a2ed422eb678b8cd62b762e53891c05faf0d4afa"
2700
+ checksum = "025474d3928738efb38ac36d4744a74a400c901c7596199e20e45d98eb194105"
2706
2701
  dependencies = [
2707
2702
  "libc",
2708
2703
  "pyo3-build-config",
@@ -2710,9 +2705,9 @@ dependencies = [
2710
2705
 
2711
2706
  [[package]]
2712
2707
  name = "pyo3-macros"
2713
- version = "0.20.3"
2708
+ version = "0.26.0"
2714
2709
  source = "registry+https://github.com/rust-lang/crates.io-index"
2715
- checksum = "7305c720fa01b8055ec95e484a6eca7a83c841267f0dd5280f0c8b8551d2c158"
2710
+ checksum = "2e64eb489f22fe1c95911b77c44cc41e7c19f3082fc81cce90f657cdc42ffded"
2716
2711
  dependencies = [
2717
2712
  "proc-macro2",
2718
2713
  "pyo3-macros-backend",
@@ -2722,11 +2717,11 @@ dependencies = [
2722
2717
 
2723
2718
  [[package]]
2724
2719
  name = "pyo3-macros-backend"
2725
- version = "0.20.3"
2720
+ version = "0.26.0"
2726
2721
  source = "registry+https://github.com/rust-lang/crates.io-index"
2727
- checksum = "7c7e9b68bb9c3149c5b0cade5d07f953d6d125eb4337723c4ccdb665f1f96185"
2722
+ checksum = "100246c0ecf400b475341b8455a9213344569af29a3c841d29270e53102e0fcf"
2728
2723
  dependencies = [
2729
- "heck 0.4.1",
2724
+ "heck",
2730
2725
  "proc-macro2",
2731
2726
  "pyo3-build-config",
2732
2727
  "quote",
@@ -3157,18 +3152,28 @@ checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0"
3157
3152
 
3158
3153
  [[package]]
3159
3154
  name = "serde"
3160
- version = "1.0.219"
3155
+ version = "1.0.228"
3161
3156
  source = "registry+https://github.com/rust-lang/crates.io-index"
3162
- checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6"
3157
+ checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
3158
+ dependencies = [
3159
+ "serde_core",
3160
+ "serde_derive",
3161
+ ]
3162
+
3163
+ [[package]]
3164
+ name = "serde_core"
3165
+ version = "1.0.228"
3166
+ source = "registry+https://github.com/rust-lang/crates.io-index"
3167
+ checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
3163
3168
  dependencies = [
3164
3169
  "serde_derive",
3165
3170
  ]
3166
3171
 
3167
3172
  [[package]]
3168
3173
  name = "serde_derive"
3169
- version = "1.0.219"
3174
+ version = "1.0.228"
3170
3175
  source = "registry+https://github.com/rust-lang/crates.io-index"
3171
- checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
3176
+ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
3172
3177
  dependencies = [
3173
3178
  "proc-macro2",
3174
3179
  "quote",
@@ -3177,14 +3182,15 @@ dependencies = [
3177
3182
 
3178
3183
  [[package]]
3179
3184
  name = "serde_json"
3180
- version = "1.0.143"
3185
+ version = "1.0.145"
3181
3186
  source = "registry+https://github.com/rust-lang/crates.io-index"
3182
- checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a"
3187
+ checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c"
3183
3188
  dependencies = [
3184
3189
  "itoa",
3185
3190
  "memchr",
3186
3191
  "ryu",
3187
3192
  "serde",
3193
+ "serde_core",
3188
3194
  ]
3189
3195
 
3190
3196
  [[package]]
@@ -3410,15 +3416,15 @@ dependencies = [
3410
3416
 
3411
3417
  [[package]]
3412
3418
  name = "target-lexicon"
3413
- version = "0.12.16"
3419
+ version = "0.13.3"
3414
3420
  source = "registry+https://github.com/rust-lang/crates.io-index"
3415
- checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
3421
+ checksum = "df7f62577c25e07834649fc3b39fafdc597c0a3527dc1c60129201ccfcbaa50c"
3416
3422
 
3417
3423
  [[package]]
3418
3424
  name = "tempfile"
3419
- version = "3.21.0"
3425
+ version = "3.23.0"
3420
3426
  source = "registry+https://github.com/rust-lang/crates.io-index"
3421
- checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e"
3427
+ checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16"
3422
3428
  dependencies = [
3423
3429
  "fastrand",
3424
3430
  "getrandom 0.3.3",
@@ -3731,9 +3737,9 @@ dependencies = [
3731
3737
 
3732
3738
  [[package]]
3733
3739
  name = "tracing-subscriber"
3734
- version = "0.3.19"
3740
+ version = "0.3.20"
3735
3741
  source = "registry+https://github.com/rust-lang/crates.io-index"
3736
- checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008"
3742
+ checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5"
3737
3743
  dependencies = [
3738
3744
  "nu-ansi-term",
3739
3745
  "sharded-slab",
@@ -3860,9 +3866,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
3860
3866
 
3861
3867
  [[package]]
3862
3868
  name = "uuid"
3863
- version = "1.18.0"
3869
+ version = "1.18.1"
3864
3870
  source = "registry+https://github.com/rust-lang/crates.io-index"
3865
- checksum = "f33196643e165781c20a5ead5582283a7dacbb87855d867fbc2df3f81eddc1be"
3871
+ checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2"
3866
3872
  dependencies = [
3867
3873
  "getrandom 0.3.3",
3868
3874
  "js-sys",
@@ -4029,22 +4035,6 @@ dependencies = [
4029
4035
  "rustix 0.38.44",
4030
4036
  ]
4031
4037
 
4032
- [[package]]
4033
- name = "winapi"
4034
- version = "0.3.9"
4035
- source = "registry+https://github.com/rust-lang/crates.io-index"
4036
- checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
4037
- dependencies = [
4038
- "winapi-i686-pc-windows-gnu",
4039
- "winapi-x86_64-pc-windows-gnu",
4040
- ]
4041
-
4042
- [[package]]
4043
- name = "winapi-i686-pc-windows-gnu"
4044
- version = "0.4.0"
4045
- source = "registry+https://github.com/rust-lang/crates.io-index"
4046
- checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
4047
-
4048
4038
  [[package]]
4049
4039
  name = "winapi-util"
4050
4040
  version = "0.1.9"
@@ -4054,12 +4044,6 @@ dependencies = [
4054
4044
  "windows-sys 0.59.0",
4055
4045
  ]
4056
4046
 
4057
- [[package]]
4058
- name = "winapi-x86_64-pc-windows-gnu"
4059
- version = "0.4.0"
4060
- source = "registry+https://github.com/rust-lang/crates.io-index"
4061
- checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
4062
-
4063
4047
  [[package]]
4064
4048
  name = "windows-core"
4065
4049
  version = "0.61.2"
@@ -1,5 +1,5 @@
1
1
  [workspace.package]
2
- version = "0.4.1"
2
+ version = "0.5.1"
3
3
  authors = ["opencloudtool Contributors"]
4
4
  categories = ["command-line-utilities"]
5
5
  documentation = "https://opencloudtool.com/docs"
@@ -25,8 +25,9 @@ members = ["crates/*"]
25
25
  resolver = "3"
26
26
 
27
27
  [workspace.dependencies]
28
- oct-cloud = { package = "oct-cloud", path = "crates/oct-cloud", version = "0.4.1" }
29
- oct-orchestrator = { package = "oct-orchestrator", path = "crates/oct-orchestrator", version = "0.4.1" }
28
+ oct-cloud = { package = "oct-cloud", path = "crates/oct-cloud", version = "0.5.1" }
29
+ oct-orchestrator = { package = "oct-orchestrator", path = "crates/oct-orchestrator", version = "0.5.1" }
30
+ oct-ctl-sdk = { package = "oct-ctl-sdk", path = "crates/oct-ctl-sdk", version = "0.5.1" }
30
31
 
31
32
  assert_cmd = "2.0.17"
32
33
  async-trait = "0.1.89"
@@ -36,22 +37,22 @@ aws-sdk-ecr = "1.87.0"
36
37
  aws-sdk-iam = "1.83.0"
37
38
  aws-sdk-route53 = "1.88.0"
38
39
  aws-sdk-s3 = "1.100.0"
39
- axum = "0.8.4"
40
+ axum = "0.8.6"
40
41
  base64 = "0.22.1"
41
- clap = { version = "4.5.45", features = ["derive"] }
42
- petgraph = "0.8.1"
42
+ clap = { version = "4.5.48", features = ["derive"] }
43
+ petgraph = "0.8.3"
43
44
  predicates = "3.1.3"
44
- serde = "1.0.219"
45
+ serde = "1.0.228"
45
46
  serde_derive = "1.0.213"
46
- serde_json = "1.0.143"
47
- tempfile = "3.21.0"
47
+ serde_json = "1.0.145"
48
+ tempfile = "3.23.0"
48
49
  tera = { git = "https://github.com/minev-dev/tera.git", rev = "1e36d2f8ba66833ce9ad2b46044e21f8240b5299", version = "1.20.0" } # Contains custom logic to render variables ignoring unknown variables
49
50
  tokio = { version = "1.47.1", features = ["full"] }
50
51
  mockall = "0.13.1"
51
52
  mockito = "1.7.0"
52
- pyo3 = { version = "0.20.0", features = ["extension-module"] }
53
- uuid = { version = "1.18.0", features = ["v4"] }
54
- log = "0.4.27"
53
+ pyo3 = { version = "0.26.0", features = ["extension-module"] }
54
+ uuid = { version = "1.18.1", features = ["v4"] }
55
+ log = "0.4.28"
55
56
  env_logger = "0.11.6"
56
57
  toml = "0.8.23"
57
58
  reqwest = { version = "0.12.23", features = ["json"] }
@@ -0,0 +1,112 @@
1
+ Metadata-Version: 2.4
2
+ Name: opencloudtool
3
+ Version: 0.5.1
4
+ Requires-Python: >=3.8
5
+ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
6
+
7
+ # Opencloudtool Python Library
8
+
9
+ A tool to hide the complexity of the cloud, now available as a Python library.
10
+ This library allows you to deploy services directly from your Python scripts.The core of this library is written in Rust
11
+ for high performance and reliability.
12
+
13
+ ## Installation
14
+
15
+ You can install the library from PyPI using `pip`
16
+
17
+ ```bash
18
+ pip install opencloudtool
19
+
20
+ ```
21
+
22
+ ## Basic Usage
23
+
24
+ To use the library, you need an `oct.toml` configuration file in your project directory.
25
+ The library provides `deploy` and `destroy` functions to manage your stack.
26
+
27
+ Example `deploy.py`
28
+
29
+ ```python
30
+ import opencloudtool as oct
31
+
32
+ # The path to the project directory containing oct.toml
33
+ project_path = "./my-app"
34
+
35
+ oct.deploy(path=project_path)
36
+ ```
37
+
38
+ To destroy infrastructure:
39
+
40
+ ```python
41
+ oct.destroy(path=project_path)
42
+ ```
43
+
44
+ Main repo [opencloudtool](https://github.com/opencloudtool/opencloudtool)
45
+
46
+ ### Dev
47
+
48
+ #### How it works: Python-Rust binding
49
+
50
+ #### The connection between Python and Rust is managed by `maturin` and `PyO3`
51
+
52
+ 1. `maturin` compiles the Rust code in the `oct-py` crate into a native Python module.
53
+ 2. We configure the name of this compiled module in `pyproject.toml` to be `opencloudtool._internal`.
54
+ 3. The leading underscore (`_`) is a standard Python convention that signals that `_internal` is a low-level module not meant for direct use.
55
+ 4. Our user-facing Python code in `opencloudtool/py_api.py` imports functions from `_internal` and presents them as a clean, stable API.
56
+
57
+ #### 1. Navigate to the Python Directory
58
+
59
+ ```bash
60
+ cd crates/oct-py
61
+ ```
62
+
63
+ #### 2. Create and activate the Virtual environment
64
+
65
+ ```bash
66
+ uv venv
67
+
68
+ source .venv/bin/activate # Windows: .venv\Scripts\activate
69
+ ```
70
+
71
+ #### 3. Install dependencies
72
+
73
+ ```bash
74
+ uv sync --group dev
75
+ ```
76
+
77
+ #### 4. Build the Library
78
+
79
+ ```bash
80
+ maturin develop
81
+ ```
82
+
83
+ #### 5. Run the example
84
+
85
+ ```bash
86
+ cd ../../examples/projects/single-host-python-lib
87
+ ```
88
+
89
+ You can now run `python deploy.py` or `python destroy.py` to test your changes.
90
+
91
+ ### Releasing the Python Library
92
+
93
+ #### Bump the Version Number
94
+
95
+ 1. Before releasing, you must increment the version number. PyPI will not accept a version that already exists.
96
+
97
+ - `crates/oct-py/pyproject.toml`
98
+
99
+ 2. Build & upload the Release Packages:
100
+
101
+ ```bash
102
+ cd crates/oct-py
103
+
104
+ maturin sdist
105
+
106
+ maturin build --release
107
+
108
+ cd ../..
109
+
110
+ twine upload target/wheels/*
111
+ ```
112
+
@@ -0,0 +1,105 @@
1
+ # Opencloudtool Python Library
2
+
3
+ A tool to hide the complexity of the cloud, now available as a Python library.
4
+ This library allows you to deploy services directly from your Python scripts.The core of this library is written in Rust
5
+ for high performance and reliability.
6
+
7
+ ## Installation
8
+
9
+ You can install the library from PyPI using `pip`
10
+
11
+ ```bash
12
+ pip install opencloudtool
13
+
14
+ ```
15
+
16
+ ## Basic Usage
17
+
18
+ To use the library, you need an `oct.toml` configuration file in your project directory.
19
+ The library provides `deploy` and `destroy` functions to manage your stack.
20
+
21
+ Example `deploy.py`
22
+
23
+ ```python
24
+ import opencloudtool as oct
25
+
26
+ # The path to the project directory containing oct.toml
27
+ project_path = "./my-app"
28
+
29
+ oct.deploy(path=project_path)
30
+ ```
31
+
32
+ To destroy infrastructure:
33
+
34
+ ```python
35
+ oct.destroy(path=project_path)
36
+ ```
37
+
38
+ Main repo [opencloudtool](https://github.com/opencloudtool/opencloudtool)
39
+
40
+ ### Dev
41
+
42
+ #### How it works: Python-Rust binding
43
+
44
+ #### The connection between Python and Rust is managed by `maturin` and `PyO3`
45
+
46
+ 1. `maturin` compiles the Rust code in the `oct-py` crate into a native Python module.
47
+ 2. We configure the name of this compiled module in `pyproject.toml` to be `opencloudtool._internal`.
48
+ 3. The leading underscore (`_`) is a standard Python convention that signals that `_internal` is a low-level module not meant for direct use.
49
+ 4. Our user-facing Python code in `opencloudtool/py_api.py` imports functions from `_internal` and presents them as a clean, stable API.
50
+
51
+ #### 1. Navigate to the Python Directory
52
+
53
+ ```bash
54
+ cd crates/oct-py
55
+ ```
56
+
57
+ #### 2. Create and activate the Virtual environment
58
+
59
+ ```bash
60
+ uv venv
61
+
62
+ source .venv/bin/activate # Windows: .venv\Scripts\activate
63
+ ```
64
+
65
+ #### 3. Install dependencies
66
+
67
+ ```bash
68
+ uv sync --group dev
69
+ ```
70
+
71
+ #### 4. Build the Library
72
+
73
+ ```bash
74
+ maturin develop
75
+ ```
76
+
77
+ #### 5. Run the example
78
+
79
+ ```bash
80
+ cd ../../examples/projects/single-host-python-lib
81
+ ```
82
+
83
+ You can now run `python deploy.py` or `python destroy.py` to test your changes.
84
+
85
+ ### Releasing the Python Library
86
+
87
+ #### Bump the Version Number
88
+
89
+ 1. Before releasing, you must increment the version number. PyPI will not accept a version that already exists.
90
+
91
+ - `crates/oct-py/pyproject.toml`
92
+
93
+ 2. Build & upload the Release Packages:
94
+
95
+ ```bash
96
+ cd crates/oct-py
97
+
98
+ maturin sdist
99
+
100
+ maturin build --release
101
+
102
+ cd ../..
103
+
104
+ twine upload target/wheels/*
105
+ ```