osism 0.20250525.0__tar.gz → 0.20250602.0__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 (92) hide show
  1. osism-0.20250602.0/AUTHORS +1 -0
  2. osism-0.20250602.0/ChangeLog +7 -0
  3. {osism-0.20250525.0 → osism-0.20250602.0}/Containerfile +1 -1
  4. {osism-0.20250525.0 → osism-0.20250602.0}/Dockerfile +1 -1
  5. {osism-0.20250525.0/osism.egg-info → osism-0.20250602.0}/PKG-INFO +5 -5
  6. {osism-0.20250525.0 → osism-0.20250602.0}/Pipfile +3 -3
  7. {osism-0.20250525.0 → osism-0.20250602.0}/Pipfile.lock +113 -66
  8. {osism-0.20250525.0 → osism-0.20250602.0}/osism/commands/apply.py +1 -1
  9. osism-0.20250602.0/osism/commands/baremetal.py +237 -0
  10. {osism-0.20250525.0 → osism-0.20250602.0}/osism/commands/netbox.py +1 -1
  11. {osism-0.20250525.0 → osism-0.20250602.0}/osism/commands/reconciler.py +2 -1
  12. {osism-0.20250525.0 → osism-0.20250602.0}/osism/tasks/__init__.py +2 -0
  13. {osism-0.20250525.0 → osism-0.20250602.0}/osism/tasks/conductor.py +22 -0
  14. {osism-0.20250525.0 → osism-0.20250602.0}/osism/tasks/netbox.py +5 -0
  15. {osism-0.20250525.0 → osism-0.20250602.0/osism.egg-info}/PKG-INFO +5 -5
  16. {osism-0.20250525.0 → osism-0.20250602.0}/osism.egg-info/SOURCES.txt +1 -0
  17. {osism-0.20250525.0 → osism-0.20250602.0}/osism.egg-info/entry_points.txt +3 -0
  18. osism-0.20250602.0/osism.egg-info/pbr.json +1 -0
  19. {osism-0.20250525.0 → osism-0.20250602.0}/osism.egg-info/requires.txt +4 -4
  20. osism-0.20250602.0/requirements.netbox-manager.txt +1 -0
  21. {osism-0.20250525.0 → osism-0.20250602.0}/requirements.txt +4 -4
  22. {osism-0.20250525.0 → osism-0.20250602.0}/setup.cfg +3 -0
  23. osism-0.20250525.0/AUTHORS +0 -1
  24. osism-0.20250525.0/ChangeLog +0 -7
  25. osism-0.20250525.0/osism.egg-info/pbr.json +0 -1
  26. osism-0.20250525.0/requirements.netbox-manager.txt +0 -1
  27. {osism-0.20250525.0 → osism-0.20250602.0}/.flake8 +0 -0
  28. {osism-0.20250525.0 → osism-0.20250602.0}/.github/renovate.json +0 -0
  29. {osism-0.20250525.0 → osism-0.20250602.0}/.github/workflows/publish.yml +0 -0
  30. {osism-0.20250525.0 → osism-0.20250602.0}/.hadolint.yaml +0 -0
  31. {osism-0.20250525.0 → osism-0.20250602.0}/.zuul.yaml +0 -0
  32. {osism-0.20250525.0 → osism-0.20250602.0}/LICENSE +0 -0
  33. {osism-0.20250525.0 → osism-0.20250602.0}/README.md +0 -0
  34. {osism-0.20250525.0 → osism-0.20250602.0}/files/change.sh +0 -0
  35. {osism-0.20250525.0 → osism-0.20250602.0}/files/cleanup-ansible-collections.sh +0 -0
  36. {osism-0.20250525.0 → osism-0.20250602.0}/files/clustershell/clush.conf +0 -0
  37. {osism-0.20250525.0 → osism-0.20250602.0}/files/clustershell/groups.conf +0 -0
  38. {osism-0.20250525.0 → osism-0.20250602.0}/files/data/SCS-Spec.MandatoryFlavors.verbose.yaml +0 -0
  39. {osism-0.20250525.0 → osism-0.20250602.0}/files/netbox-manager/settings.toml +0 -0
  40. {osism-0.20250525.0 → osism-0.20250602.0}/files/run-ansible-console.sh +0 -0
  41. {osism-0.20250525.0 → osism-0.20250602.0}/osism/__init__.py +0 -0
  42. {osism-0.20250525.0 → osism-0.20250602.0}/osism/__main__.py +0 -0
  43. {osism-0.20250525.0 → osism-0.20250602.0}/osism/actions/__init__.py +0 -0
  44. {osism-0.20250525.0 → osism-0.20250602.0}/osism/api.py +0 -0
  45. {osism-0.20250525.0 → osism-0.20250602.0}/osism/commands/__init__.py +0 -0
  46. {osism-0.20250525.0 → osism-0.20250602.0}/osism/commands/compose.py +0 -0
  47. {osism-0.20250525.0 → osism-0.20250602.0}/osism/commands/compute.py +0 -0
  48. {osism-0.20250525.0 → osism-0.20250602.0}/osism/commands/configuration.py +0 -0
  49. {osism-0.20250525.0 → osism-0.20250602.0}/osism/commands/console.py +0 -0
  50. {osism-0.20250525.0 → osism-0.20250602.0}/osism/commands/container.py +0 -0
  51. {osism-0.20250525.0 → osism-0.20250602.0}/osism/commands/get.py +0 -0
  52. {osism-0.20250525.0 → osism-0.20250602.0}/osism/commands/log.py +0 -0
  53. {osism-0.20250525.0 → osism-0.20250602.0}/osism/commands/manage.py +0 -0
  54. {osism-0.20250525.0 → osism-0.20250602.0}/osism/commands/noset.py +0 -0
  55. {osism-0.20250525.0 → osism-0.20250602.0}/osism/commands/server.py +0 -0
  56. {osism-0.20250525.0 → osism-0.20250602.0}/osism/commands/service.py +0 -0
  57. {osism-0.20250525.0 → osism-0.20250602.0}/osism/commands/set.py +0 -0
  58. {osism-0.20250525.0 → osism-0.20250602.0}/osism/commands/status.py +0 -0
  59. {osism-0.20250525.0 → osism-0.20250602.0}/osism/commands/sync.py +0 -0
  60. {osism-0.20250525.0 → osism-0.20250602.0}/osism/commands/task.py +0 -0
  61. {osism-0.20250525.0 → osism-0.20250602.0}/osism/commands/validate.py +0 -0
  62. {osism-0.20250525.0 → osism-0.20250602.0}/osism/commands/vault.py +0 -0
  63. {osism-0.20250525.0 → osism-0.20250602.0}/osism/commands/volume.py +0 -0
  64. {osism-0.20250525.0 → osism-0.20250602.0}/osism/commands/wait.py +0 -0
  65. {osism-0.20250525.0 → osism-0.20250602.0}/osism/commands/worker.py +0 -0
  66. {osism-0.20250525.0 → osism-0.20250602.0}/osism/core/__init__.py +0 -0
  67. {osism-0.20250525.0 → osism-0.20250602.0}/osism/core/enums.py +0 -0
  68. {osism-0.20250525.0 → osism-0.20250602.0}/osism/core/playbooks.py +0 -0
  69. {osism-0.20250525.0 → osism-0.20250602.0}/osism/data/__init__.py +0 -0
  70. {osism-0.20250525.0 → osism-0.20250602.0}/osism/main.py +0 -0
  71. {osism-0.20250525.0 → osism-0.20250602.0}/osism/plugins/__init__.py +0 -0
  72. {osism-0.20250525.0 → osism-0.20250602.0}/osism/services/__init__.py +0 -0
  73. {osism-0.20250525.0 → osism-0.20250602.0}/osism/services/listener.py +0 -0
  74. {osism-0.20250525.0 → osism-0.20250602.0}/osism/settings.py +0 -0
  75. {osism-0.20250525.0 → osism-0.20250602.0}/osism/tasks/ansible.py +0 -0
  76. {osism-0.20250525.0 → osism-0.20250602.0}/osism/tasks/ceph.py +0 -0
  77. {osism-0.20250525.0 → osism-0.20250602.0}/osism/tasks/kolla.py +0 -0
  78. {osism-0.20250525.0 → osism-0.20250602.0}/osism/tasks/kubernetes.py +0 -0
  79. {osism-0.20250525.0 → osism-0.20250602.0}/osism/tasks/openstack.py +0 -0
  80. {osism-0.20250525.0 → osism-0.20250602.0}/osism/tasks/reconciler.py +0 -0
  81. {osism-0.20250525.0 → osism-0.20250602.0}/osism/utils/__init__.py +0 -0
  82. {osism-0.20250525.0 → osism-0.20250602.0}/osism.egg-info/dependency_links.txt +0 -0
  83. {osism-0.20250525.0 → osism-0.20250602.0}/osism.egg-info/not-zip-safe +0 -0
  84. {osism-0.20250525.0 → osism-0.20250602.0}/osism.egg-info/top_level.txt +0 -0
  85. {osism-0.20250525.0 → osism-0.20250602.0}/playbooks/build.yml +0 -0
  86. {osism-0.20250525.0 → osism-0.20250602.0}/playbooks/pre.yml +0 -0
  87. {osism-0.20250525.0 → osism-0.20250602.0}/playbooks/test-setup.yml +0 -0
  88. {osism-0.20250525.0 → osism-0.20250602.0}/requirements.ansible.txt +0 -0
  89. {osism-0.20250525.0 → osism-0.20250602.0}/requirements.openstack-flavor-manager.txt +0 -0
  90. {osism-0.20250525.0 → osism-0.20250602.0}/requirements.openstack-image-manager.txt +0 -0
  91. {osism-0.20250525.0 → osism-0.20250602.0}/requirements.yml +0 -0
  92. {osism-0.20250525.0 → osism-0.20250602.0}/setup.py +0 -0
@@ -0,0 +1 @@
1
+ Christian Berendt <berendt@osism.tech>
@@ -0,0 +1,7 @@
1
+ CHANGES
2
+ =======
3
+
4
+ v0.20250602.0
5
+ -------------
6
+
7
+ * Allow to change task timeout via OSISM\_TASK\_TIMEOUT environment variable (#1387)
@@ -7,7 +7,7 @@ FROM ${IMAGE}:${PYTHON_VERSION}-alpine${ALPINE_VERSION}
7
7
  ENV PYTHONWARNINGS="ignore::UserWarning"
8
8
 
9
9
  COPY . /src
10
- COPY --from=ghcr.io/astral-sh/uv:0.7.8 /uv /usr/local/bin/uv
10
+ COPY --from=ghcr.io/astral-sh/uv:0.7.9 /uv /usr/local/bin/uv
11
11
 
12
12
  COPY files/data /data
13
13
  COPY files/change.sh /change.sh
@@ -7,7 +7,7 @@ FROM ${IMAGE}:${PYTHON_VERSION}-alpine${ALPINE_VERSION}
7
7
  ENV PYTHONWARNINGS="ignore::UserWarning"
8
8
 
9
9
  COPY . /src
10
- COPY --from=ghcr.io/astral-sh/uv:0.7.8 /uv /usr/local/bin/uv
10
+ COPY --from=ghcr.io/astral-sh/uv:0.7.9 /uv /usr/local/bin/uv
11
11
 
12
12
  COPY files/data /data
13
13
  COPY files/change.sh /change.sh
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: osism
3
- Version: 0.20250525.0
3
+ Version: 0.20250602.0
4
4
  Summary: OSISM manager interface
5
5
  Home-page: https://github.com/osism/python-osism
6
6
  Author: OSISM GmbH
@@ -26,7 +26,7 @@ Requires-Dist: GitPython==3.1.44
26
26
  Requires-Dist: Jinja2==3.1.6
27
27
  Requires-Dist: PyYAML==6.0.2
28
28
  Requires-Dist: ara==1.7.2
29
- Requires-Dist: celery[redis]==5.5.2
29
+ Requires-Dist: celery[redis]==5.5.3
30
30
  Requires-Dist: cliff==4.10.0
31
31
  Requires-Dist: deepdiff==8.5.0
32
32
  Requires-Dist: docker==7.1.0
@@ -36,7 +36,7 @@ Requires-Dist: flower==2.0.1
36
36
  Requires-Dist: hiredis==3.2.1
37
37
  Requires-Dist: jc==1.25.5
38
38
  Requires-Dist: keystoneauth1==5.11.0
39
- Requires-Dist: kombu==5.5.3
39
+ Requires-Dist: kombu==5.5.4
40
40
  Requires-Dist: kubernetes==32.0.1
41
41
  Requires-Dist: loguru==0.7.3
42
42
  Requires-Dist: nbcli==0.10.0.dev2
@@ -47,12 +47,12 @@ Requires-Dist: prompt-toolkit==3.0.51
47
47
  Requires-Dist: pynetbox==7.5.0
48
48
  Requires-Dist: pytest-testinfra==10.2.2
49
49
  Requires-Dist: python-dateutil==2.9.0.post0
50
- Requires-Dist: setuptools==80.8.0
50
+ Requires-Dist: setuptools==80.9.0
51
51
  Requires-Dist: sqlmodel==0.0.24
52
52
  Requires-Dist: sushy==5.6.0
53
53
  Requires-Dist: tabulate==0.9.0
54
54
  Requires-Dist: transitions==0.9.2
55
- Requires-Dist: uvicorn[standard]==0.34.2
55
+ Requires-Dist: uvicorn[standard]==0.34.3
56
56
  Requires-Dist: watchdog==6.0.0
57
57
  Provides-Extra: ansible
58
58
  Requires-Dist: ansible-runner==2.4.1; extra == "ansible"
@@ -10,7 +10,7 @@ Jinja2 = "==3.1.6"
10
10
  PyYAML = "==6.0.2"
11
11
  ansible-runner = "==2.4.1"
12
12
  ara = "==1.7.2"
13
- celery = {version = "==5.5.2", extras = ["redis"]}
13
+ celery = {version = "==5.5.3", extras = ["redis"]}
14
14
  cliff = "==4.10.0"
15
15
  deepdiff = "==8.5.0"
16
16
  docker = "==7.1.0"
@@ -20,7 +20,7 @@ hiredis = "==3.2.1"
20
20
  huey = "==2.5.3"
21
21
  jc = "==1.25.5"
22
22
  keystoneauth1 = "==5.11.0"
23
- kombu = "==5.5.3"
23
+ kombu = "==5.5.4"
24
24
  kubernetes = "==32.0.1"
25
25
  loguru = "==0.7.3"
26
26
  nbcli = "0.10.0.dev2"
@@ -31,7 +31,7 @@ prompt-toolkit = "==3.0.51"
31
31
  pynetbox = "==7.5.0"
32
32
  pytest-testinfra = "==10.2.2"
33
33
  python-dateutil = "==2.9.0.post0"
34
- setuptools = "==80.8.0"
34
+ setuptools = "==80.9.0"
35
35
  sqlmodel = "==0.0.24"
36
36
  sushy = "==5.6.0"
37
37
  transitions = "==0.9.2"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "_meta": {
3
3
  "hash": {
4
- "sha256": "f6c6aa16e29a721dcc65f192658a5d5e0c6922b2573222d311d47b1f19a81d5c"
4
+ "sha256": "1ff9f04228dbfaeaffb96e1ce0da94559d562d17f9888d8db4b4a759effe22dc"
5
5
  },
6
6
  "pipfile-spec": 6,
7
7
  "requires": {},
@@ -134,11 +134,11 @@
134
134
  "redis"
135
135
  ],
136
136
  "hashes": [
137
- "sha256:4d6930f354f9d29295425d7a37261245c74a32807c45d764bedc286afd0e724e",
138
- "sha256:54425a067afdc88b57cd8d94ed4af2ffaf13ab8c7680041ac2c4ac44357bdf4c"
137
+ "sha256:0b5761a07057acee94694464ca482416b959568904c9dfa41ce8413a7d65d525",
138
+ "sha256:6c972ae7968c2b5281227f01c3a3f984037d21c5129d07bf3550cc2afc6b10a5"
139
139
  ],
140
140
  "markers": "python_version >= '3.8'",
141
- "version": "==5.5.2"
141
+ "version": "==5.5.3"
142
142
  },
143
143
  "certifi": {
144
144
  "hashes": [
@@ -368,54 +368,54 @@
368
368
  },
369
369
  "cmd2": {
370
370
  "hashes": [
371
- "sha256:30a0d385021fbe4a4116672845e5695bbe56eb682f9096066776394f954a7429",
372
- "sha256:cbc79525e423dc2085ef7922cdc5586d1fedaecb768cdfb05e5482ee0740b755"
371
+ "sha256:832f8121c4f21ebf2af4292051b34579d7d4c9e917dc54f8e322feb911d76da1",
372
+ "sha256:8cffaba7810526421cab3bfa0101b4907e1298ff2bcd8119615965a2eae5d95f"
373
373
  ],
374
- "markers": "python_version >= '3.8'",
375
- "version": "==2.5.11"
374
+ "markers": "python_version >= '3.9'",
375
+ "version": "==2.6.0"
376
376
  },
377
377
  "cryptography": {
378
378
  "hashes": [
379
- "sha256:057723b79752a142efbc609e90b0dff27b0361ccbee3bd48312d70f5cdf53b78",
380
- "sha256:05c2385b1f5c89a17df19900cfb1345115a77168f5ed44bdf6fd3de1ce5cc65b",
381
- "sha256:08281de408e7eb71ba3cd5098709a356bfdf65eebd7ee7633c3610f0aa80d79b",
382
- "sha256:10d68763892a7b19c22508ab57799c4423c7c8cd61d7eee4c5a6a55a46511949",
383
- "sha256:1655d3a76e3dedb683c982a6c3a2cbfae2d08f47a48ec5a3d58db52b3d29ea6f",
384
- "sha256:18f8084b7ca3ce1b8d38bdfe33c48116edf9a08b4d056ef4a96dceaa36d8d965",
385
- "sha256:2cb03a944a1a412724d15a7c051d50e63a868031f26b6a312f2016965b661942",
386
- "sha256:4142e20c29224cec63e9e32eb1e6014fb285fe39b7be66b3564ca978a3a8afe9",
387
- "sha256:463096533acd5097f8751115bc600b0b64620c4aafcac10c6d0041e6e68f88fe",
388
- "sha256:48caa55c528617fa6db1a9c3bf2e37ccb31b73e098ac2b71408d1f2db551dde4",
389
- "sha256:49af56491473231159c98c2c26f1a8f3799a60e5cf0e872d00745b858ddac9d2",
390
- "sha256:4cc31c66411e14dd70e2f384a9204a859dc25b05e1f303df0f5326691061b839",
391
- "sha256:501de1296b2041dccf2115e3c7d4947430585601b251b140970ce255c5cfb985",
392
- "sha256:59c0c8f043dd376bbd9d4f636223836aed50431af4c5a467ed9bf61520294627",
393
- "sha256:614bca7c6ed0d8ad1dce683a6289afae1f880675b4090878a0136c3da16bc693",
394
- "sha256:61a8b1bbddd9332917485b2453d1de49f142e6334ce1d97b7916d5a85d179c84",
395
- "sha256:7429936146063bd1b2cfc54f0e04016b90ee9b1c908a7bed0800049cbace70eb",
396
- "sha256:7c73968fbb7698a4c5d6160859db560d3aac160edde89c751edd5a8bc6560c88",
397
- "sha256:80303ee6a02ef38c4253160446cbeb5c400c07e01d4ddbd4ff722a89b736d95a",
398
- "sha256:965611880c3fa8e504b7458484c0697e00ae6e937279cd6734fdaa2bc954dc49",
399
- "sha256:9a900036b42f7324df7c7ad9569eb92ba0b613cf699160dd9c2154b24fd02f8e",
400
- "sha256:9cfd1399064b13043082c660ddd97a0358e41c8b0dc7b77c1243e013d305c344",
401
- "sha256:a8ec324711596fbf21837d3a5db543937dd84597d364769b46e0102250023f77",
402
- "sha256:a9727a21957d3327cf6b7eb5ffc9e4b663909a25fea158e3fcbc49d4cdd7881b",
403
- "sha256:b19f4b28dd2ef2e6d600307fee656c00825a2980c4356a7080bd758d633c3a6f",
404
- "sha256:b2de529027579e43b6dc1f805f467b102fb7d13c1e54c334f1403ee2b37d0059",
405
- "sha256:c0c000c1a09f069632d8a9eb3b610ac029fcc682f1d69b758e625d6ee713f4ed",
406
- "sha256:cdafb86eb673c3211accffbffdb3cdffa3aaafacd14819e0898d23696d18e4d3",
407
- "sha256:d2a90ce2f0f5b695e4785ac07c19a58244092f3c85d57db6d8eb1a2b26d2aad6",
408
- "sha256:d784d57b958ffd07e9e226d17272f9af0c41572557604ca7554214def32c26bf",
409
- "sha256:d891942592789fa0ab71b502550bbadb12f540d7413d7d7c4cef4b02af0f5bc6",
410
- "sha256:dc7693573f16535428183de8fd27f0ca1ca37a51baa0b41dc5ed7b3d68fe80e2",
411
- "sha256:ddb8d01aa900b741d6b7cc585a97aff787175f160ab975e21f880e89d810781a",
412
- "sha256:e328357b6bbf79928363dbf13f4635b7aac0306afb7e5ad24d21d0c5761c3253",
413
- "sha256:e86c8d54cd19a13e9081898b3c24351683fd39d726ecf8e774aaa9d8d96f5f3a",
414
- "sha256:e9e4bdcd70216b08801e267c0b563316b787f957a46e215249921f99288456f9",
415
- "sha256:f169469d04a23282de9d0be349499cb6683b6ff1b68901210faacac9b0c24b7d"
379
+ "sha256:00094838ecc7c6594171e8c8a9166124c1197b074cfca23645cee573910d76bc",
380
+ "sha256:050ce5209d5072472971e6efbfc8ec5a8f9a841de5a4db0ebd9c2e392cb81972",
381
+ "sha256:232954730c362638544758a8160c4ee1b832dc011d2c41a306ad8f7cccc5bb0b",
382
+ "sha256:25286aacb947286620a31f78f2ed1a32cded7be5d8b729ba3fb2c988457639e4",
383
+ "sha256:2f8f8f0b73b885ddd7f3d8c2b2234a7d3ba49002b0223f58cfde1bedd9563c56",
384
+ "sha256:38deed72285c7ed699864f964a3f4cf11ab3fb38e8d39cfcd96710cd2b5bb716",
385
+ "sha256:3ad69eeb92a9de9421e1f6685e85a10fbcfb75c833b42cc9bc2ba9fb00da4710",
386
+ "sha256:5555365a50efe1f486eed6ac7062c33b97ccef409f5970a0b6f205a7cfab59c8",
387
+ "sha256:555e5e2d3a53b4fabeca32835878b2818b3f23966a4efb0d566689777c5a12c8",
388
+ "sha256:57a6500d459e8035e813bd8b51b671977fb149a8c95ed814989da682314d0782",
389
+ "sha256:5833bb4355cb377ebd880457663a972cd044e7f49585aee39245c0d592904578",
390
+ "sha256:71320fbefd05454ef2d457c481ba9a5b0e540f3753354fff6f780927c25d19b0",
391
+ "sha256:7573d9eebaeceeb55285205dbbb8753ac1e962af3d9640791d12b36864065e71",
392
+ "sha256:92d5f428c1a0439b2040435a1d6bc1b26ebf0af88b093c3628913dd464d13fa1",
393
+ "sha256:97787952246a77d77934d41b62fb1b6f3581d83f71b44796a4158d93b8f5c490",
394
+ "sha256:9bb5bf55dcb69f7067d80354d0a348368da907345a2c448b0babc4215ccd3497",
395
+ "sha256:9cc80ce69032ffa528b5e16d217fa4d8d4bb7d6ba8659c1b4d74a1b0f4235fca",
396
+ "sha256:9e4253ed8f5948a3589b3caee7ad9a5bf218ffd16869c516535325fece163dcc",
397
+ "sha256:9eda14f049d7f09c2e8fb411dda17dd6b16a3c76a1de5e249188a32aeb92de19",
398
+ "sha256:a2b56de3417fd5f48773ad8e91abaa700b678dc7fe1e0c757e1ae340779acf7b",
399
+ "sha256:af3f92b1dc25621f5fad065288a44ac790c5798e986a34d393ab27d2b27fcff9",
400
+ "sha256:c5edcb90da1843df85292ef3a313513766a78fbbb83f584a5a58fb001a5a9d57",
401
+ "sha256:c824c9281cb628015bfc3c59335163d4ca0540d49de4582d6c2637312907e4b1",
402
+ "sha256:c92519d242703b675ccefd0f0562eb45e74d438e001f8ab52d628e885751fb06",
403
+ "sha256:ca932e11218bcc9ef812aa497cdf669484870ecbcf2d99b765d6c27a86000942",
404
+ "sha256:cb6ab89421bc90e0422aca911c69044c2912fc3debb19bb3c1bfe28ee3dff6ab",
405
+ "sha256:cfd84777b4b6684955ce86156cfb5e08d75e80dc2585e10d69e47f014f0a5342",
406
+ "sha256:d377dde61c5d67eb4311eace661c3efda46c62113ff56bf05e2d679e02aebb5b",
407
+ "sha256:d54ae41e6bd70ea23707843021c778f151ca258081586f0cfa31d936ae43d1b2",
408
+ "sha256:dc10ec1e9f21f33420cc05214989544727e776286c1c16697178978327b95c9c",
409
+ "sha256:ec21313dd335c51d7877baf2972569f40a4291b76a0ce51391523ae358d05899",
410
+ "sha256:ec64ee375b5aaa354b2b273c921144a660a511f9df8785e6d1c942967106438e",
411
+ "sha256:ed43d396f42028c1f47b5fec012e9e12631266e3825e95c00e3cf94d472dac49",
412
+ "sha256:edd6d51869beb7f0d472e902ef231a9b7689508e83880ea16ca3311a00bf5ce7",
413
+ "sha256:f22af3c78abfbc7cbcdf2c55d23c3e022e1a462ee2481011d518c7fb9c9f3d65",
414
+ "sha256:fae1e637f527750811588e4582988932c222f8251f7b7ea93739acb624e1487f",
415
+ "sha256:fed5aaca1750e46db870874c9c273cd5182a9e9deb16f06f7bdffdb5c2bde4b9"
416
416
  ],
417
417
  "markers": "python_version >= '3.7' and python_full_version not in '3.9.0, 3.9.1'",
418
- "version": "==45.0.2"
418
+ "version": "==45.0.3"
419
419
  },
420
420
  "decorator": {
421
421
  "hashes": [
@@ -777,13 +777,16 @@
777
777
  "version": "==5.11.0"
778
778
  },
779
779
  "kombu": {
780
+ "extras": [
781
+ "redis"
782
+ ],
780
783
  "hashes": [
781
- "sha256:021a0e11fcfcd9b0260ef1fb64088c0e92beb976eb59c1dfca7ddd4ad4562ea2",
782
- "sha256:5b0dbceb4edee50aa464f59469d34b97864be09111338cfb224a10b6a163909b"
784
+ "sha256:886600168275ebeada93b888e831352fe578168342f0d1d5833d88ba0d847363",
785
+ "sha256:a12ed0557c238897d8e518f1d1fdf84bd1516c5e305af2dacd85c2015115feb8"
783
786
  ],
784
787
  "index": "pypi",
785
788
  "markers": "python_version >= '3.8'",
786
- "version": "==5.5.3"
789
+ "version": "==5.5.4"
787
790
  },
788
791
  "kubernetes": {
789
792
  "hashes": [
@@ -1293,14 +1296,6 @@
1293
1296
  "markers": "python_version >= '3.8'",
1294
1297
  "version": "==2.19.1"
1295
1298
  },
1296
- "pyjwt": {
1297
- "hashes": [
1298
- "sha256:3b02fb0f44517787776cf48f2ae25d8e14f300e6d7545a4315cee571a415e850",
1299
- "sha256:7e1e5b56cc735432a7369cbfa0efe50fa113ebecdc04ae6922deba8b84582d0c"
1300
- ],
1301
- "markers": "python_version >= '3.8'",
1302
- "version": "==2.9.0"
1303
- },
1304
1299
  "pynacl": {
1305
1300
  "hashes": [
1306
1301
  "sha256:06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858",
@@ -1441,11 +1436,11 @@
1441
1436
  },
1442
1437
  "redis": {
1443
1438
  "hashes": [
1444
- "sha256:8d69d2dde11a12dc85d0dbf5c45577a5af048e2456f7077d87ad35c1c81c310e",
1445
- "sha256:f1deeca1ea2ef25c1e4e46b07f4ea1275140526b1feea4c6459c0ec27a10ef83"
1439
+ "sha256:16f2e22dff21d5125e8481515e386711a34cbec50f0e44413dd7d9c060a54e0f",
1440
+ "sha256:ee7e1056b9aea0f04c6c2ed59452947f34c4940ee025f5dd83e6a6418b6989e4"
1446
1441
  ],
1447
1442
  "markers": "python_version >= '3.8'",
1448
- "version": "==5.3.0"
1443
+ "version": "==5.2.1"
1449
1444
  },
1450
1445
  "requests": {
1451
1446
  "hashes": [
@@ -1488,11 +1483,63 @@
1488
1483
  },
1489
1484
  "ruamel.yaml": {
1490
1485
  "hashes": [
1491
- "sha256:20c86ab29ac2153f80a428e1254a8adf686d3383df04490514ca3b79a362db58",
1492
- "sha256:30f22513ab2301b3d2b577adc121c6471f28734d3d9728581245f1e76468b4f1"
1486
+ "sha256:5a38fd5ce39d223bebb9e3a6779e86b9427a03fb0bf9f270060f8b149cffe5e2",
1487
+ "sha256:790ba4c48b6a6e6b12b532a7308779eb12d2aaab3a80fdb8389216f28ea2b287"
1493
1488
  ],
1494
1489
  "markers": "python_version >= '3.7'",
1495
- "version": "==0.18.10"
1490
+ "version": "==0.18.12"
1491
+ },
1492
+ "ruamel.yaml.clib": {
1493
+ "hashes": [
1494
+ "sha256:040ae85536960525ea62868b642bdb0c2cc6021c9f9d507810c0c604e66f5a7b",
1495
+ "sha256:0467c5965282c62203273b838ae77c0d29d7638c8a4e3a1c8bdd3602c10904e4",
1496
+ "sha256:0b7e75b4965e1d4690e93021adfcecccbca7d61c7bddd8e22406ef2ff20d74ef",
1497
+ "sha256:11f891336688faf5156a36293a9c362bdc7c88f03a8a027c2c1d8e0bcde998e5",
1498
+ "sha256:1492a6051dab8d912fc2adeef0e8c72216b24d57bd896ea607cb90bb0c4981d3",
1499
+ "sha256:20b0f8dc160ba83b6dcc0e256846e1a02d044e13f7ea74a3d1d56ede4e48c632",
1500
+ "sha256:22353049ba4181685023b25b5b51a574bce33e7f51c759371a7422dcae5402a6",
1501
+ "sha256:2c59aa6170b990d8d2719323e628aaf36f3bfbc1c26279c0eeeb24d05d2d11c7",
1502
+ "sha256:32621c177bbf782ca5a18ba4d7af0f1082a3f6e517ac2a18b3974d4edf349680",
1503
+ "sha256:3bc2a80e6420ca8b7d3590791e2dfc709c88ab9152c00eeb511c9875ce5778bf",
1504
+ "sha256:3eac5a91891ceb88138c113f9db04f3cebdae277f5d44eaa3651a4f573e6a5da",
1505
+ "sha256:4a6679521a58256a90b0d89e03992c15144c5f3858f40d7c18886023d7943db6",
1506
+ "sha256:4c8c5d82f50bb53986a5e02d1b3092b03622c02c2eb78e29bec33fd9593bae1a",
1507
+ "sha256:4f6f3eac23941b32afccc23081e1f50612bdbe4e982012ef4f5797986828cd01",
1508
+ "sha256:5a0e060aace4c24dcaf71023bbd7d42674e3b230f7e7b97317baf1e953e5b519",
1509
+ "sha256:6442cb36270b3afb1b4951f060eccca1ce49f3d087ca1ca4563a6eb479cb3de6",
1510
+ "sha256:6c8fbb13ec503f99a91901ab46e0b07ae7941cd527393187039aec586fdfd36f",
1511
+ "sha256:749c16fcc4a2b09f28843cda5a193e0283e47454b63ec4b81eaa2242f50e4ccd",
1512
+ "sha256:7dd5adc8b930b12c8fc5b99e2d535a09889941aa0d0bd06f4749e9a9397c71d2",
1513
+ "sha256:811ea1594b8a0fb466172c384267a4e5e367298af6b228931f273b111f17ef52",
1514
+ "sha256:932205970b9f9991b34f55136be327501903f7c66830e9760a8ffb15b07f05cd",
1515
+ "sha256:943f32bc9dedb3abff9879edc134901df92cfce2c3d5c9348f172f62eb2d771d",
1516
+ "sha256:95c3829bb364fdb8e0332c9931ecf57d9be3519241323c5274bd82f709cebc0c",
1517
+ "sha256:96777d473c05ee3e5e3c3e999f5d23c6f4ec5b0c38c098b3a5229085f74236c6",
1518
+ "sha256:a274fb2cb086c7a3dea4322ec27f4cb5cc4b6298adb583ab0e211a4682f241eb",
1519
+ "sha256:a52d48f4e7bf9005e8f0a89209bf9a73f7190ddf0489eee5eb51377385f59f2a",
1520
+ "sha256:a606ef75a60ecf3d924613892cc603b154178ee25abb3055db5062da811fd969",
1521
+ "sha256:ab007f2f5a87bd08ab1499bdf96f3d5c6ad4dcfa364884cb4549aa0154b13a28",
1522
+ "sha256:b82a7c94a498853aa0b272fd5bc67f29008da798d4f93a2f9f289feb8426a58d",
1523
+ "sha256:bb43a269eb827806502c7c8efb7ae7e9e9d0573257a46e8e952f4d4caba4f31e",
1524
+ "sha256:bc5f1e1c28e966d61d2519f2a3d451ba989f9ea0f2307de7bc45baa526de9e45",
1525
+ "sha256:bd0a08f0bab19093c54e18a14a10b4322e1eacc5217056f3c063bd2f59853ce4",
1526
+ "sha256:beffaed67936fbbeffd10966a4eb53c402fafd3d6833770516bf7314bc6ffa12",
1527
+ "sha256:bf165fef1f223beae7333275156ab2022cffe255dcc51c27f066b4370da81e31",
1528
+ "sha256:cf12567a7b565cbf65d438dec6cfbe2917d3c1bdddfce84a9930b7d35ea59642",
1529
+ "sha256:d84318609196d6bd6da0edfa25cedfbabd8dbde5140a0a23af29ad4b8f91fb1e",
1530
+ "sha256:d85252669dc32f98ebcd5d36768f5d4faeaeaa2d655ac0473be490ecdae3c285",
1531
+ "sha256:e143ada795c341b56de9418c58d028989093ee611aa27ffb9b7f609c00d813ed",
1532
+ "sha256:e188d2699864c11c36cdfdada94d781fd5d6b0071cd9c427bceb08ad3d7c70e1",
1533
+ "sha256:e2f1c3765db32be59d18ab3953f43ab62a761327aafc1594a2a1fbe038b8b8a7",
1534
+ "sha256:e5b8daf27af0b90da7bb903a876477a9e6d7270be6146906b276605997c7e9a3",
1535
+ "sha256:e7e3736715fbf53e9be2a79eb4db68e4ed857017344d697e8b9749444ae57475",
1536
+ "sha256:e8c4ebfcfd57177b572e2040777b8abc537cdef58a2120e830124946aa9b42c5",
1537
+ "sha256:f66efbc1caa63c088dead1c4170d148eabc9b80d95fb75b6c92ac0aad2437d76",
1538
+ "sha256:fc4b630cd3fa2cf7fce38afa91d7cfe844a9f75d7f0f36393fa98815e911d987",
1539
+ "sha256:fd5415dded15c3822597455bc02bcd66e81ef8b7a48cb71a33628fc9fdde39df"
1540
+ ],
1541
+ "markers": "python_version >= '3.9'",
1542
+ "version": "==0.2.12"
1496
1543
  },
1497
1544
  "scp": {
1498
1545
  "hashes": [
@@ -1503,12 +1550,12 @@
1503
1550
  },
1504
1551
  "setuptools": {
1505
1552
  "hashes": [
1506
- "sha256:49f7af965996f26d43c8ae34539c8d99c5042fbff34302ea151eaa9c207cd257",
1507
- "sha256:95a60484590d24103af13b686121328cc2736bee85de8936383111e421b9edc0"
1553
+ "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922",
1554
+ "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c"
1508
1555
  ],
1509
1556
  "index": "pypi",
1510
1557
  "markers": "python_version >= '3.9'",
1511
- "version": "==80.8.0"
1558
+ "version": "==80.9.0"
1512
1559
  },
1513
1560
  "six": {
1514
1561
  "hashes": [
@@ -69,7 +69,7 @@ class Run(Command):
69
69
  )
70
70
  parser.add_argument(
71
71
  "--timeout",
72
- default=300,
72
+ default=os.environ.get("OSISM_TASK_TIMEOUT", 300),
73
73
  type=int,
74
74
  help="Timeout to end if there is no output",
75
75
  )
@@ -0,0 +1,237 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+
3
+ from cliff.command import Command
4
+
5
+ from loguru import logger
6
+ import openstack
7
+ from tabulate import tabulate
8
+ import json
9
+
10
+ from osism.commands import get_cloud_connection
11
+
12
+
13
+ class BaremetalList(Command):
14
+ def get_parser(self, prog_name):
15
+ parser = super(BaremetalList, self).get_parser(prog_name)
16
+ parser.add_argument(
17
+ "--provision-state",
18
+ default=None,
19
+ choices=["enroll", "managable", "available", "active", "error"],
20
+ type=str,
21
+ help="Only list nodes with the given provision state",
22
+ )
23
+ parser.add_argument(
24
+ "--maintenance",
25
+ default=False,
26
+ action="store_true",
27
+ help="Only list baremetal nodes in maintenance mode",
28
+ )
29
+ return parser
30
+
31
+ def take_action(self, parsed_args):
32
+ provision_state = parsed_args.provision_state
33
+ maintenance = parsed_args.maintenance
34
+
35
+ conn = get_cloud_connection()
36
+
37
+ query = {}
38
+ if provision_state:
39
+ query.update(dict(provision_state=provision_state))
40
+ if maintenance:
41
+ query.update(dict(maintenance=maintenance))
42
+
43
+ baremetal = conn.baremetal.nodes(**query)
44
+
45
+ result = [
46
+ [
47
+ b["name"],
48
+ b["power_state"],
49
+ b["provision_state"],
50
+ b["maintenance"],
51
+ ]
52
+ for b in baremetal
53
+ ]
54
+
55
+ print(
56
+ tabulate(
57
+ result,
58
+ headers=[
59
+ "Name",
60
+ "Power State",
61
+ "Provision State",
62
+ "Maintenance",
63
+ ],
64
+ tablefmt="psql",
65
+ )
66
+ )
67
+
68
+
69
+ class BaremetalDeploy(Command):
70
+ def get_parser(self, prog_name):
71
+ parser = super(BaremetalDeploy, self).get_parser(prog_name)
72
+
73
+ parser_exc_group = parser.add_mutually_exclusive_group(required=True)
74
+ parser_exc_group.add_argument(
75
+ "--all",
76
+ default=False,
77
+ help="Deploy all baremetal nodes in provision state available",
78
+ action="store_true",
79
+ )
80
+ parser_exc_group.add_argument(
81
+ "--name",
82
+ default=[],
83
+ help="Deploy given baremetal node when in provision state available. May be specified multiple times",
84
+ action="append",
85
+ )
86
+ parser.add_argument(
87
+ "--rebuild",
88
+ default=False,
89
+ help="Rebuild given nodes in active state",
90
+ action="store_true",
91
+ )
92
+ parser.add_argument(
93
+ "--yes-i-really-really-mean-it",
94
+ default=False,
95
+ help="Specify this in connection with '--rebuild --all' to actually rebuild all nodes",
96
+ action="store_true",
97
+ )
98
+ return parser
99
+
100
+ def take_action(self, parsed_args):
101
+ all_nodes = parsed_args.all
102
+ names = parsed_args.name
103
+ rebuild = parsed_args.rebuild
104
+ yes_i_really_really_mean_it = parsed_args.yes_i_really_really_mean_it
105
+
106
+ if all_nodes and rebuild and not yes_i_really_really_mean_it:
107
+ logger.error(
108
+ "Please confirm that you wish to rebuild all nodes by specifying '--yes-i-really-really-mean-it'"
109
+ )
110
+ return
111
+
112
+ conn = get_cloud_connection()
113
+
114
+ if all_nodes:
115
+ deploy_nodes = list(conn.baremetal.nodes(details=True))
116
+ else:
117
+ deploy_nodes = [
118
+ conn.baremetal.find_node(name, ignore_missing=True, details=True)
119
+ for name in names
120
+ ]
121
+
122
+ for node_idx, node in enumerate(deploy_nodes):
123
+ if not node:
124
+ logger.warning(f"Could not find node {names[node_idx]}")
125
+ continue
126
+
127
+ if node.provision_state in ["available", "deploy failed"]:
128
+ provision_state = "active"
129
+ elif (
130
+ node.provision_state == "error"
131
+ or node.provision_state == "active"
132
+ and rebuild
133
+ ):
134
+ provision_state = "rebuild"
135
+ else:
136
+ logger.warning(
137
+ f"Node {node.name} ({node.id}) not in supported provision state"
138
+ )
139
+ continue
140
+
141
+ try:
142
+ conn.baremetal.validate_node(
143
+ node.id, required=("boot", "deploy", "power")
144
+ )
145
+ except openstack.exceptions.ValidationException:
146
+ logger.warning(f"Node {node.name} ({node.id}) could not be validated")
147
+ continue
148
+ try:
149
+ config_drive = {"meta_data": {}}
150
+ if (
151
+ "netplan_parameters" in node.extra
152
+ and node.extra["netplan_parameters"]
153
+ ):
154
+ config_drive["meta_data"].update(
155
+ {
156
+ "netplan_parameters": json.loads(
157
+ node.extra["netplan_parameters"]
158
+ )
159
+ }
160
+ )
161
+ if "frr_parameters" in node.extra and node.extra["frr_parameters"]:
162
+ config_drive["meta_data"].update(
163
+ {"frr_parameters": json.loads(node.extra["frr_parameters"])}
164
+ )
165
+ conn.baremetal.set_node_provision_state(
166
+ node.id, provision_state, config_drive=config_drive
167
+ )
168
+ except Exception as exc:
169
+ logger.warning(
170
+ f"Node {node.name} ({node.id}) could not be moved to active state: {exc}"
171
+ )
172
+ continue
173
+
174
+
175
+ class BaremetalUndeploy(Command):
176
+ def get_parser(self, prog_name):
177
+ parser = super(BaremetalUndeploy, self).get_parser(prog_name)
178
+
179
+ parser_exc_group = parser.add_mutually_exclusive_group(required=True)
180
+ parser_exc_group.add_argument(
181
+ "--all",
182
+ default=False,
183
+ help="Undeploy all baremetal nodes",
184
+ action="store_true",
185
+ )
186
+ parser_exc_group.add_argument(
187
+ "--name",
188
+ default=[],
189
+ help="Undeploy given baremetal node. May be specified multiple times",
190
+ action="append",
191
+ )
192
+ parser.add_argument(
193
+ "--yes-i-really-really-mean-it",
194
+ default=False,
195
+ help="Specify this to actually undeploy all nodes",
196
+ action="store_true",
197
+ )
198
+ return parser
199
+
200
+ def take_action(self, parsed_args):
201
+ all_nodes = parsed_args.all
202
+ names = parsed_args.name
203
+ yes_i_really_really_mean_it = parsed_args.yes_i_really_really_mean_it
204
+
205
+ if all_nodes and not yes_i_really_really_mean_it:
206
+ logger.error(
207
+ "Please confirm that you wish to undeploy all nodes by specifying '--yes-i-really-really-mean-it'"
208
+ )
209
+ return
210
+
211
+ conn = get_cloud_connection()
212
+
213
+ if all_nodes:
214
+ deploy_nodes = list(conn.baremetal.nodes())
215
+ else:
216
+ deploy_nodes = [
217
+ conn.baremetal.find_node(name, ignore_missing=True, details=False)
218
+ for name in names
219
+ ]
220
+
221
+ for node_idx, node in enumerate(deploy_nodes):
222
+ if not node:
223
+ logger.warning(f"Could not find node {names[node_idx]}")
224
+ continue
225
+
226
+ if node.provision_state in ["active", "deploy failed", "error"]:
227
+ try:
228
+ conn.baremetal.set_node_provision_state(node.id, "undeploy")
229
+ except Exception as exc:
230
+ logger.warning(
231
+ f"Node {node.name} ({node.id}) could not be moved to available state: {exc}"
232
+ )
233
+ continue
234
+ else:
235
+ logger.warning(
236
+ f"Node {node.name} ({node.id}) not in supported provision state"
237
+ )
@@ -106,7 +106,7 @@ class Manage(Command):
106
106
 
107
107
  def take_action(self, parsed_args):
108
108
  wait = not parsed_args.no_wait
109
- arguments = []
109
+ arguments = ["run"]
110
110
 
111
111
  if parsed_args.no_netbox_wait:
112
112
  arguments.append("--no-wait")
@@ -1,5 +1,6 @@
1
1
  # SPDX-License-Identifier: Apache-2.0
2
2
 
3
+ import os
3
4
  import subprocess
4
5
  import time
5
6
 
@@ -34,7 +35,7 @@ class Sync(Command):
34
35
  )
35
36
  parser.add_argument(
36
37
  "--task-timeout",
37
- default=3600,
38
+ default=os.environ.get("OSISM_TASK_TIMEOUT", 300),
38
39
  type=int,
39
40
  help="Timeout for a scheduled task that has not been executed yet",
40
41
  )
@@ -1,5 +1,6 @@
1
1
  # SPDX-License-Identifier: Apache-2.0
2
2
 
3
+ import logging
3
4
  import os
4
5
  import re
5
6
  import subprocess
@@ -77,6 +78,7 @@ def run_ansible_in_environment(
77
78
 
78
79
  # NOTE: Consider arguments in the future
79
80
  if locking:
81
+ logging.getLogger("redlock").setLevel(logging.WARNING)
80
82
  lock = Redlock(
81
83
  key=f"lock-ansible-{environment}-{role}",
82
84
  masters={utils.redis},
@@ -10,6 +10,7 @@ import jinja2
10
10
  from loguru import logger
11
11
  from pottery import Redlock
12
12
  import yaml
13
+ import json
13
14
 
14
15
  from osism import settings
15
16
  from osism import utils
@@ -305,6 +306,27 @@ def sync_ironic(self, force_update=False):
305
306
  )
306
307
  )
307
308
  node_attributes.update({"resource_class": device.name})
309
+ # NOTE: Write metadata used for provisioning into 'extra' field, so that it is available during node deploy without querying the netbox again
310
+ if "extra" not in node_attributes:
311
+ node_attributes["extra"] = {}
312
+ if (
313
+ "netplan_parameters" in device.custom_fields
314
+ and device.custom_fields["netplan_parameters"]
315
+ ):
316
+ node_attributes["extra"].update(
317
+ {
318
+ "netplan_parameters": json.dumps(
319
+ device.custom_fields["netplan_parameters"]
320
+ )
321
+ }
322
+ )
323
+ if (
324
+ "frr_parameters" in device.custom_fields
325
+ and device.custom_fields["frr_parameters"]
326
+ ):
327
+ node_attributes["extra"].update(
328
+ {"frr_parameters": json.dumps(device.custom_fields["frr_parameters"])}
329
+ )
308
330
  ports_attributes = [
309
331
  dict(address=interface.mac_address)
310
332
  for interface in node_interfaces
@@ -151,6 +151,11 @@ def get_interfaces_by_device(self, device_name):
151
151
  return utils.nb.dcim.interfaces.filter(device=device_name)
152
152
 
153
153
 
154
+ @app.task(bind=True, name="osism.tasks.netbox.get_addresses_by_device_and_interface")
155
+ def get_addresses_by_device_and_interface(self, device_name, interface_name):
156
+ return utils.nb.dcim.addresses.filter(device=device_name, interface=interface_name)
157
+
158
+
154
159
  @app.task(bind=True, name="osism.tasks.netbox.manage")
155
160
  def manage(self, *arguments, publish=True, locking=False, auto_release_time=3600):
156
161
  netbox_manager_env = {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: osism
3
- Version: 0.20250525.0
3
+ Version: 0.20250602.0
4
4
  Summary: OSISM manager interface
5
5
  Home-page: https://github.com/osism/python-osism
6
6
  Author: OSISM GmbH
@@ -26,7 +26,7 @@ Requires-Dist: GitPython==3.1.44
26
26
  Requires-Dist: Jinja2==3.1.6
27
27
  Requires-Dist: PyYAML==6.0.2
28
28
  Requires-Dist: ara==1.7.2
29
- Requires-Dist: celery[redis]==5.5.2
29
+ Requires-Dist: celery[redis]==5.5.3
30
30
  Requires-Dist: cliff==4.10.0
31
31
  Requires-Dist: deepdiff==8.5.0
32
32
  Requires-Dist: docker==7.1.0
@@ -36,7 +36,7 @@ Requires-Dist: flower==2.0.1
36
36
  Requires-Dist: hiredis==3.2.1
37
37
  Requires-Dist: jc==1.25.5
38
38
  Requires-Dist: keystoneauth1==5.11.0
39
- Requires-Dist: kombu==5.5.3
39
+ Requires-Dist: kombu==5.5.4
40
40
  Requires-Dist: kubernetes==32.0.1
41
41
  Requires-Dist: loguru==0.7.3
42
42
  Requires-Dist: nbcli==0.10.0.dev2
@@ -47,12 +47,12 @@ Requires-Dist: prompt-toolkit==3.0.51
47
47
  Requires-Dist: pynetbox==7.5.0
48
48
  Requires-Dist: pytest-testinfra==10.2.2
49
49
  Requires-Dist: python-dateutil==2.9.0.post0
50
- Requires-Dist: setuptools==80.8.0
50
+ Requires-Dist: setuptools==80.9.0
51
51
  Requires-Dist: sqlmodel==0.0.24
52
52
  Requires-Dist: sushy==5.6.0
53
53
  Requires-Dist: tabulate==0.9.0
54
54
  Requires-Dist: transitions==0.9.2
55
- Requires-Dist: uvicorn[standard]==0.34.2
55
+ Requires-Dist: uvicorn[standard]==0.34.3
56
56
  Requires-Dist: watchdog==6.0.0
57
57
  Provides-Extra: ansible
58
58
  Requires-Dist: ansible-runner==2.4.1; extra == "ansible"
@@ -42,6 +42,7 @@ osism.egg-info/top_level.txt
42
42
  osism/actions/__init__.py
43
43
  osism/commands/__init__.py
44
44
  osism/commands/apply.py
45
+ osism/commands/baremetal.py
45
46
  osism/commands/compose.py
46
47
  osism/commands/compute.py
47
48
  osism/commands/configuration.py
@@ -26,6 +26,9 @@ log ansible = osism.commands.log:Ansible
26
26
  log container = osism.commands.log:Container
27
27
  log file = osism.commands.log:File
28
28
  log opensearch = osism.commands.log:Opensearch
29
+ manage baremetal deploy = osism.commands.baremetal:BaremetalDeploy
30
+ manage baremetal list = osism.commands.baremetal:BaremetalList
31
+ manage baremetal undeploy = osism.commands.baremetal:BaremetalUndeploy
29
32
  manage compute disable = osism.commands.compute:ComputeDisable
30
33
  manage compute enable = osism.commands.compute:ComputeEnable
31
34
  manage compute evacuate = osism.commands.compute:ComputeEvacuate
@@ -0,0 +1 @@
1
+ {"git_version": "e6f441e", "is_release": false}
@@ -3,7 +3,7 @@ GitPython==3.1.44
3
3
  Jinja2==3.1.6
4
4
  PyYAML==6.0.2
5
5
  ara==1.7.2
6
- celery[redis]==5.5.2
6
+ celery[redis]==5.5.3
7
7
  cliff==4.10.0
8
8
  deepdiff==8.5.0
9
9
  docker==7.1.0
@@ -13,7 +13,7 @@ flower==2.0.1
13
13
  hiredis==3.2.1
14
14
  jc==1.25.5
15
15
  keystoneauth1==5.11.0
16
- kombu==5.5.3
16
+ kombu==5.5.4
17
17
  kubernetes==32.0.1
18
18
  loguru==0.7.3
19
19
  nbcli==0.10.0.dev2
@@ -24,12 +24,12 @@ prompt-toolkit==3.0.51
24
24
  pynetbox==7.5.0
25
25
  pytest-testinfra==10.2.2
26
26
  python-dateutil==2.9.0.post0
27
- setuptools==80.8.0
27
+ setuptools==80.9.0
28
28
  sqlmodel==0.0.24
29
29
  sushy==5.6.0
30
30
  tabulate==0.9.0
31
31
  transitions==0.9.2
32
- uvicorn[standard]==0.34.2
32
+ uvicorn[standard]==0.34.3
33
33
  watchdog==6.0.0
34
34
 
35
35
  [ansible]
@@ -0,0 +1 @@
1
+ netbox-manager==0.20250529.1
@@ -3,7 +3,7 @@ GitPython==3.1.44
3
3
  Jinja2==3.1.6
4
4
  PyYAML==6.0.2
5
5
  ara==1.7.2
6
- celery[redis]==5.5.2
6
+ celery[redis]==5.5.3
7
7
  cliff==4.10.0
8
8
  deepdiff==8.5.0
9
9
  docker==7.1.0
@@ -13,7 +13,7 @@ flower==2.0.1
13
13
  hiredis==3.2.1
14
14
  jc==1.25.5
15
15
  keystoneauth1==5.11.0
16
- kombu==5.5.3
16
+ kombu==5.5.4
17
17
  kubernetes==32.0.1
18
18
  loguru==0.7.3
19
19
  nbcli==0.10.0.dev2
@@ -24,10 +24,10 @@ prompt-toolkit==3.0.51
24
24
  pynetbox==7.5.0
25
25
  pytest-testinfra==10.2.2
26
26
  python-dateutil==2.9.0.post0
27
- setuptools==80.8.0
27
+ setuptools==80.9.0
28
28
  sqlmodel==0.0.24
29
29
  sushy==5.6.0
30
30
  tabulate==0.9.0
31
31
  transitions==0.9.2
32
- uvicorn[standard]==0.34.2
32
+ uvicorn[standard]==0.34.3
33
33
  watchdog==6.0.0
@@ -77,6 +77,9 @@ osism.commands =
77
77
  manage server list = osism.commands.server:ServerList
78
78
  manage server migrate = osism.commands.server:ServerMigrate
79
79
  manage volume list = osism.commands.volume:VolumeList
80
+ manage baremetal list = osism.commands.baremetal:BaremetalList
81
+ manage baremetal deploy = osism.commands.baremetal:BaremetalDeploy
82
+ manage baremetal undeploy = osism.commands.baremetal:BaremetalUndeploy
80
83
  netbox = osism.commands.netbox:Console
81
84
  get versions netbox = osism.commands.netbox:Versions
82
85
  noset bootstrap = osism.commands.noset:NoBootstrap
@@ -1 +0,0 @@
1
- renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@@ -1,7 +0,0 @@
1
- CHANGES
2
- =======
3
-
4
- v0.20250525.0
5
- -------------
6
-
7
- * chore(deps): update dependency netbox-manager to v0.20250525.0 (#1373)
@@ -1 +0,0 @@
1
- {"git_version": "3c67308", "is_release": false}
@@ -1 +0,0 @@
1
- netbox-manager==0.20250525.0
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes