osism 0.20250628.0__py3-none-any.whl → 0.20250709.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.
- osism/api.py +3 -3
- osism/commands/baremetal.py +37 -6
- osism/commands/manage.py +0 -251
- osism/commands/redfish.py +219 -0
- osism/commands/sonic.py +973 -0
- osism/settings.py +3 -0
- osism/tasks/__init__.py +2 -7
- osism/tasks/ansible.py +1 -3
- osism/tasks/conductor/__init__.py +7 -0
- osism/tasks/conductor/config.py +52 -35
- osism/tasks/conductor/ironic.py +96 -102
- osism/tasks/conductor/redfish.py +300 -0
- osism/tasks/conductor/sonic/config_generator.py +38 -14
- osism/tasks/conductor/utils.py +148 -0
- osism/tasks/netbox.py +3 -7
- osism/tasks/reconciler.py +3 -7
- osism/utils/__init__.py +28 -0
- {osism-0.20250628.0.dist-info → osism-0.20250709.0.dist-info}/METADATA +4 -3
- {osism-0.20250628.0.dist-info → osism-0.20250709.0.dist-info}/RECORD +25 -22
- {osism-0.20250628.0.dist-info → osism-0.20250709.0.dist-info}/entry_points.txt +10 -1
- osism-0.20250709.0.dist-info/pbr.json +1 -0
- osism-0.20250628.0.dist-info/pbr.json +0 -1
- {osism-0.20250628.0.dist-info → osism-0.20250709.0.dist-info}/WHEEL +0 -0
- {osism-0.20250628.0.dist-info → osism-0.20250709.0.dist-info}/licenses/AUTHORS +0 -0
- {osism-0.20250628.0.dist-info → osism-0.20250709.0.dist-info}/licenses/LICENSE +0 -0
- {osism-0.20250628.0.dist-info → osism-0.20250709.0.dist-info}/top_level.txt +0 -0
osism/utils/__init__.py
CHANGED
@@ -2,11 +2,13 @@
|
|
2
2
|
|
3
3
|
import time
|
4
4
|
import os
|
5
|
+
from contextlib import redirect_stdout, redirect_stderr
|
5
6
|
from cryptography.fernet import Fernet
|
6
7
|
import keystoneauth1
|
7
8
|
from loguru import logger
|
8
9
|
import openstack
|
9
10
|
import pynetbox
|
11
|
+
from pottery import Redlock
|
10
12
|
from redis import Redis
|
11
13
|
import urllib3
|
12
14
|
import yaml
|
@@ -181,3 +183,29 @@ def finish_task_output(task_id, rc=None):
|
|
181
183
|
if rc:
|
182
184
|
redis.xadd(task_id, {"type": "rc", "content": rc})
|
183
185
|
redis.xadd(task_id, {"type": "action", "content": "quit"})
|
186
|
+
|
187
|
+
|
188
|
+
def create_redlock(key, auto_release_time=3600):
|
189
|
+
"""
|
190
|
+
Create a Redlock instance with output suppression during initialization.
|
191
|
+
|
192
|
+
Args:
|
193
|
+
key (str): The lock key
|
194
|
+
auto_release_time (int): Auto release time in seconds (default: 3600)
|
195
|
+
|
196
|
+
Returns:
|
197
|
+
Redlock: The configured Redlock instance
|
198
|
+
"""
|
199
|
+
import logging
|
200
|
+
|
201
|
+
# Permanently suppress pottery logger output
|
202
|
+
pottery_logger = logging.getLogger("pottery")
|
203
|
+
pottery_logger.setLevel(logging.CRITICAL)
|
204
|
+
|
205
|
+
with open(os.devnull, "w") as devnull:
|
206
|
+
with redirect_stdout(devnull), redirect_stderr(devnull):
|
207
|
+
return Redlock(
|
208
|
+
key=key,
|
209
|
+
masters={redis},
|
210
|
+
auto_release_time=auto_release_time,
|
211
|
+
)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: osism
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.20250709.0
|
4
4
|
Summary: OSISM manager interface
|
5
5
|
Home-page: https://github.com/osism/python-osism
|
6
6
|
Author: OSISM GmbH
|
@@ -32,7 +32,7 @@ Requires-Dist: cliff==4.10.0
|
|
32
32
|
Requires-Dist: deepdiff==8.5.0
|
33
33
|
Requires-Dist: docker==7.1.0
|
34
34
|
Requires-Dist: dtrack-auditor==1.5.0
|
35
|
-
Requires-Dist: fastapi==0.
|
35
|
+
Requires-Dist: fastapi==0.116.0
|
36
36
|
Requires-Dist: flower==2.0.1
|
37
37
|
Requires-Dist: hiredis==3.2.1
|
38
38
|
Requires-Dist: jc==1.25.5
|
@@ -52,8 +52,9 @@ Requires-Dist: setuptools==80.9.0
|
|
52
52
|
Requires-Dist: sqlmodel==0.0.24
|
53
53
|
Requires-Dist: sushy==5.6.0
|
54
54
|
Requires-Dist: tabulate==0.9.0
|
55
|
-
Requires-Dist: transitions==0.9.
|
55
|
+
Requires-Dist: transitions==0.9.3
|
56
56
|
Requires-Dist: uvicorn[standard]==0.35.0
|
57
|
+
Requires-Dist: validators==0.35.0
|
57
58
|
Requires-Dist: watchdog==6.0.0
|
58
59
|
Provides-Extra: ansible
|
59
60
|
Requires-Dist: ansible-runner==2.4.1; extra == "ansible"
|
@@ -1,11 +1,11 @@
|
|
1
1
|
osism/__init__.py,sha256=1UiNTBus0V0f2AbZQzAtVtu6zkfCCrw0OTq--NwFAqY,341
|
2
2
|
osism/__main__.py,sha256=ILe4gu61xEISiBsxanqTQIdSkV-YhpZXTRlguCYyssk,141
|
3
|
-
osism/api.py,sha256=
|
3
|
+
osism/api.py,sha256=7BKVedr3aK8QSRf4ZI1WpraYivibimx-SqVKVAzD6bw,11070
|
4
4
|
osism/main.py,sha256=Dt2-9sLXcS-Ny4DAz7hrha-KRc7zd7BFUTRdfs_X8z4,893
|
5
|
-
osism/settings.py,sha256=
|
5
|
+
osism/settings.py,sha256=IUbUo8kru8TeiMAnnil5oHwd8SqbkPCY401dVONMygo,1885
|
6
6
|
osism/commands/__init__.py,sha256=Ag4wX_DCgXRdoLn6t069jqb3DdRylsX2nyYkiyCx4uk,456
|
7
7
|
osism/commands/apply.py,sha256=GWUccZAXlgkPYqylrCmdWcj8FCkDsPEipIIG937MeII,16833
|
8
|
-
osism/commands/baremetal.py,sha256=
|
8
|
+
osism/commands/baremetal.py,sha256=yxCb0UwBfERinoGvlD9bvsGPEdDcHhq48Mn6u5b2aM8,12037
|
9
9
|
osism/commands/compose.py,sha256=iqzG7mS9E1VWaLNN6yQowjOqiHn3BMdj-yfXb3Dc4Ok,1200
|
10
10
|
osism/commands/compute.py,sha256=cgqXWJa5wAvn-7e3FWCgX6hie_aK0yrKRkcNzjLXwDY,25799
|
11
11
|
osism/commands/configuration.py,sha256=sPe8b0dVKFRbr30xoeVdAnHbGwCwgUh0xa_Vzv5pSQQ,954
|
@@ -13,13 +13,15 @@ osism/commands/console.py,sha256=8BPz1hio5Wi6kONVAWFuSqkDRrMcLEYeFIY8dbtN6e4,321
|
|
13
13
|
osism/commands/container.py,sha256=Fku2GaCM3Idq_FxExUtNqjrEM0XYjpVvXmueSVO8S_c,1601
|
14
14
|
osism/commands/get.py,sha256=ryytjtXWmlMV0NucP5tGkMZu0nIlC4xVtjRk4iMZ06c,8967
|
15
15
|
osism/commands/log.py,sha256=2IpYuosC7FZwwLvM8HmKSU1NRNIelVVYzqjjVMCrOJk,4072
|
16
|
-
osism/commands/manage.py,sha256=
|
16
|
+
osism/commands/manage.py,sha256=FaO9dbYjNHYanS98-zC498bx26oU8E3loxCczH9mfKI,12751
|
17
17
|
osism/commands/netbox.py,sha256=e65P0kWrjTLw2T9HZthxjDTIRa-KAHgSSJAlvVef7n4,7345
|
18
18
|
osism/commands/noset.py,sha256=7zDFuFMyNpo7DUOKcNiYV8nodtdMOYFp5LDPcuJhlZ8,1481
|
19
19
|
osism/commands/reconciler.py,sha256=ubQfX8j13s3NuMKnT0Lt6O-szf7Z1V02AfsMQFHmO74,2209
|
20
|
+
osism/commands/redfish.py,sha256=oBfxd5UBX4ED8XulEuIYziIYQqTvUKpKfcdGyg_AoiI,8431
|
20
21
|
osism/commands/server.py,sha256=avmoOv5rjOi-fN2A-27cPwOtiy2Q2j6UFtCh3QrfWAI,7512
|
21
22
|
osism/commands/service.py,sha256=A1lgAlGeCJpbFFqF55DRWPcCirIgpU0dzjzVLZ0mz3k,2649
|
22
23
|
osism/commands/set.py,sha256=xLBi2DzbVQo2jb3-cOIE9In5UB3vFxquQJkDN-EsfhM,1425
|
24
|
+
osism/commands/sonic.py,sha256=siuYUIlLfNuCKe9BLZ_9Pj2FkzcUCxusBOyaFnwiIF0,35303
|
23
25
|
osism/commands/status.py,sha256=X-Rcj-XuNPDBoxsGkf96NswwpmTognxz1V6E2NX2ZgY,1997
|
24
26
|
osism/commands/sync.py,sha256=jOg-g8NmVOkXBI6rOuiOx2WgUJc1PplLAAAwc0VuIfw,1919
|
25
27
|
osism/commands/task.py,sha256=mwJJ7a71Lw3o_FX7j3rR0-NbPdPwMDOjbOAiiXE4uGc,543
|
@@ -33,36 +35,37 @@ osism/data/enums.py,sha256=gItIjOK6xWuOZSkMxpMdYLRyt4ezyhzkqA7BGiah2o0,10030
|
|
33
35
|
osism/data/playbooks.py,sha256=M3T3ajV-8Lt-orsRO3jAoukhaoYFr4EZ2dzYXQjt1kg,728
|
34
36
|
osism/services/__init__.py,sha256=bG7Ffen4LvQtgnYPFEpFccsWs81t4zqqeqn9ZeirH6E,38
|
35
37
|
osism/services/listener.py,sha256=Vf8LOZkHzlspm40BZ1az3o1O_ar34_i6C83p-D8KzzM,9783
|
36
|
-
osism/tasks/__init__.py,sha256=
|
37
|
-
osism/tasks/ansible.py,sha256
|
38
|
+
osism/tasks/__init__.py,sha256=XZhUQLamrS0ikRkYNCxv-H8KQ0I51Uda7fq6botVpXo,6998
|
39
|
+
osism/tasks/ansible.py,sha256=-gUe6uZFhPLI3DGZHlpQlghuDKpp4Drn5IEctlV6Sv8,1300
|
38
40
|
osism/tasks/ceph.py,sha256=eIQkah3Kj4INtOkF9kTjHbXJ3_J2lg48EWJKfHc-UYw,615
|
39
41
|
osism/tasks/conductor.py,sha256=WBLsoPtr0iGUzRGERs0Xt7CMYrnHQVEwNV9qXBssI3s,274
|
40
42
|
osism/tasks/kolla.py,sha256=wJQpWn_01iWLkr7l7T7RNrQGfRgsgmYi4WQlTmNGvew,618
|
41
43
|
osism/tasks/kubernetes.py,sha256=VzXq_VrYU_CLm4cOruqnE3Kq2ydfO9glZ3p0bp3OYoc,625
|
42
|
-
osism/tasks/netbox.py,sha256=
|
44
|
+
osism/tasks/netbox.py,sha256=QGQGz3s0V8WvPvhEJWwo0H24aLFaZrSl-voN-axzRwY,5846
|
43
45
|
osism/tasks/openstack.py,sha256=g15tCll5vP1pC6ysxRCTZxplsdGmXbxaCH3k1Qdv5Xg,6367
|
44
|
-
osism/tasks/reconciler.py,sha256=
|
45
|
-
osism/tasks/conductor/__init__.py,sha256=
|
46
|
-
osism/tasks/conductor/config.py,sha256=
|
47
|
-
osism/tasks/conductor/ironic.py,sha256=
|
46
|
+
osism/tasks/reconciler.py,sha256=PnGWfvfmomzbgddvyCdxul-z5ZLXxWAmrQyRCN874-s,1958
|
47
|
+
osism/tasks/conductor/__init__.py,sha256=HW8CXpZOQ6aNgLZ3Ck08YcfQfueoA0ce35Kolh0rWww,1903
|
48
|
+
osism/tasks/conductor/config.py,sha256=tMI0dtEFSWxfueRZdvocpbEq0sIN_PnXG08CuATkPz4,4489
|
49
|
+
osism/tasks/conductor/ironic.py,sha256=LyUm9xk1oqjarRona2UVodMO7clIt2sqtiW76elqEak,15352
|
48
50
|
osism/tasks/conductor/netbox.py,sha256=5Nc7wrriDOtSuru1KDLt9QpA54vC7tXDPB2J0JP9GKo,11393
|
49
|
-
osism/tasks/conductor/
|
51
|
+
osism/tasks/conductor/redfish.py,sha256=hOOS-_l3Qmo_6vLsgjZmJwTxLTf029hhFRVkU0TMLL0,12723
|
52
|
+
osism/tasks/conductor/utils.py,sha256=ZSbQumQr-uL-B9XOwbsscLIX7czJHu6Mq0t_poRpMsw,7769
|
50
53
|
osism/tasks/conductor/sonic/__init__.py,sha256=oxTTl_MGK4iWK9uNDRNlULtGrDGCQHrlJZ04weh_Lh8,777
|
51
54
|
osism/tasks/conductor/sonic/bgp.py,sha256=PC6gGI5bCj2PCXcNGyMV9-EdlJWDsYaodzxigmYSZvw,3088
|
52
55
|
osism/tasks/conductor/sonic/cache.py,sha256=Asv2k3nLJejuq7iB0a_LyK8dEmJzypP9v3OHkNY3GwI,3438
|
53
|
-
osism/tasks/conductor/sonic/config_generator.py,sha256=
|
56
|
+
osism/tasks/conductor/sonic/config_generator.py,sha256=_B001d6YdhLjAl61WGhlF2xyMXvcyJv0TQ16zuzJjB8,40117
|
54
57
|
osism/tasks/conductor/sonic/connections.py,sha256=NvRjwJv3NF3ry5Xe9qHzk7pQbfDQHYx_j3ATRMUs7gA,14244
|
55
58
|
osism/tasks/conductor/sonic/constants.py,sha256=HjVFwmH-AN3np1qN97ahEAcwz2-4cHa-pA9pXWqWsqs,2219
|
56
59
|
osism/tasks/conductor/sonic/device.py,sha256=ZYJA0bQ8waKWStzWUPxbcwNWa2Z_hMB3pqs8aA_nxXA,2458
|
57
60
|
osism/tasks/conductor/sonic/exporter.py,sha256=25L1vbi84ZQD0xNHNTWk-anTz5QRkGJskCECBkeGQw4,8882
|
58
61
|
osism/tasks/conductor/sonic/interface.py,sha256=318wOwXYSSMKTPP2WSZIps-JvIkCQ2gYdQs9ZYHXwwg,38957
|
59
62
|
osism/tasks/conductor/sonic/sync.py,sha256=fpgsQVwq6Hb7eeDHhLkAqx5BkaK3Ce_m_WvmWEsJyOo,9182
|
60
|
-
osism/utils/__init__.py,sha256=
|
61
|
-
osism-0.
|
62
|
-
osism-0.
|
63
|
-
osism-0.
|
64
|
-
osism-0.
|
65
|
-
osism-0.
|
66
|
-
osism-0.
|
67
|
-
osism-0.
|
68
|
-
osism-0.
|
63
|
+
osism/utils/__init__.py,sha256=cMKOYH8mg9PXnIDoSume1KF3OpELhHWhKYL8ScY0_EY,6903
|
64
|
+
osism-0.20250709.0.dist-info/licenses/AUTHORS,sha256=oWotd63qsnNR945QLJP9mEXaXNtCMaesfo8ZNuLjwpU,39
|
65
|
+
osism-0.20250709.0.dist-info/licenses/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
|
66
|
+
osism-0.20250709.0.dist-info/METADATA,sha256=yodBqt4lzfRfMB1-pdlKX7shsBBy67vdP4Zl8xfHa_c,2937
|
67
|
+
osism-0.20250709.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
68
|
+
osism-0.20250709.0.dist-info/entry_points.txt,sha256=NlvBIfH7JWQ5xhjcYQeCpQKpP_3RjXxJIW1XK8oYhmk,3802
|
69
|
+
osism-0.20250709.0.dist-info/pbr.json,sha256=ux-nCNhP6rA-LJ8vLyJsdbbHawfvybH88tJFSPLDB6Q,47
|
70
|
+
osism-0.20250709.0.dist-info/top_level.txt,sha256=8L8dsI9hcaGHsdnR4k_LN9EM78EhwrXRFHyAryPXZtY,6
|
71
|
+
osism-0.20250709.0.dist-info/RECORD,,
|
@@ -43,9 +43,9 @@ manage image clusterapi = osism.commands.manage:ImageClusterapi
|
|
43
43
|
manage image octavia = osism.commands.manage:ImageOctavia
|
44
44
|
manage images = osism.commands.manage:Images
|
45
45
|
manage netbox = osism.commands.netbox:Manage
|
46
|
+
manage redfish list = osism.commands.redfish:List
|
46
47
|
manage server list = osism.commands.server:ServerList
|
47
48
|
manage server migrate = osism.commands.server:ServerMigrate
|
48
|
-
manage sonic = osism.commands.manage:Sonic
|
49
49
|
manage volume list = osism.commands.volume:VolumeList
|
50
50
|
netbox = osism.commands.netbox:Console
|
51
51
|
noset bootstrap = osism.commands.noset:NoBootstrap
|
@@ -57,6 +57,15 @@ service = osism.commands.service:Run
|
|
57
57
|
set bootstrap = osism.commands.set:Bootstrap
|
58
58
|
set maintenance = osism.commands.set:Maintenance
|
59
59
|
set vault password = osism.commands.vault:SetPassword
|
60
|
+
sonic backup = osism.commands.sonic:Backup
|
61
|
+
sonic console = osism.commands.sonic:Console
|
62
|
+
sonic load = osism.commands.sonic:Load
|
63
|
+
sonic reboot = osism.commands.sonic:Reboot
|
64
|
+
sonic reload = osism.commands.sonic:Reload
|
65
|
+
sonic reset = osism.commands.sonic:Reset
|
66
|
+
sonic show = osism.commands.sonic:Show
|
67
|
+
sonic sync = osism.commands.sync:Sonic
|
68
|
+
sonic ztp = osism.commands.sonic:Ztp
|
60
69
|
sync configuration = osism.commands.configuration:Sync
|
61
70
|
sync dnsmasq = osism.commands.manage:Dnsmasq
|
62
71
|
sync facts = osism.commands.sync:Facts
|
@@ -0,0 +1 @@
|
|
1
|
+
{"git_version": "ed8c436", "is_release": false}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"git_version": "f3fe7d7", "is_release": false}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|