ominfra 0.0.0.dev188__py3-none-any.whl → 0.0.0.dev190__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.
- ominfra/__about__.py +1 -0
- ominfra/manage/deploy/apps.py +42 -90
- ominfra/manage/deploy/commands.py +1 -1
- ominfra/manage/deploy/conf/manager.py +20 -12
- ominfra/manage/deploy/conf/specs.py +9 -0
- ominfra/manage/deploy/deploy.py +207 -2
- ominfra/manage/deploy/inject.py +4 -6
- ominfra/manage/deploy/nginx.py +8 -0
- ominfra/manage/deploy/paths/paths.py +5 -1
- ominfra/manage/deploy/specs.py +12 -1
- ominfra/manage/deploy/systemd.py +110 -0
- ominfra/manage/deploy/venvs.py +0 -2
- ominfra/scripts/journald2aws.py +11 -0
- ominfra/scripts/manage.py +489 -152
- ominfra/scripts/supervisor.py +11 -0
- {ominfra-0.0.0.dev188.dist-info → ominfra-0.0.0.dev190.dist-info}/METADATA +4 -3
- {ominfra-0.0.0.dev188.dist-info → ominfra-0.0.0.dev190.dist-info}/RECORD +21 -20
- ominfra/manage/deploy/driver.py +0 -62
- {ominfra-0.0.0.dev188.dist-info → ominfra-0.0.0.dev190.dist-info}/LICENSE +0 -0
- {ominfra-0.0.0.dev188.dist-info → ominfra-0.0.0.dev190.dist-info}/WHEEL +0 -0
- {ominfra-0.0.0.dev188.dist-info → ominfra-0.0.0.dev190.dist-info}/entry_points.txt +0 -0
- {ominfra-0.0.0.dev188.dist-info → ominfra-0.0.0.dev190.dist-info}/top_level.txt +0 -0
ominfra/scripts/supervisor.py
CHANGED
@@ -3652,10 +3652,15 @@ class DelimitingBuffer:
|
|
3652
3652
|
|
3653
3653
|
|
3654
3654
|
class ReadableListBuffer:
|
3655
|
+
# FIXME: merge with PrependableGeneratorReader
|
3656
|
+
|
3655
3657
|
def __init__(self) -> None:
|
3656
3658
|
super().__init__()
|
3657
3659
|
self._lst: list[bytes] = []
|
3658
3660
|
|
3661
|
+
def __len__(self) -> int:
|
3662
|
+
return sum(map(len, self._lst))
|
3663
|
+
|
3659
3664
|
def feed(self, d: bytes) -> None:
|
3660
3665
|
if d:
|
3661
3666
|
self._lst.append(d)
|
@@ -3694,6 +3699,12 @@ class ReadableListBuffer:
|
|
3694
3699
|
|
3695
3700
|
return None
|
3696
3701
|
|
3702
|
+
def read_exact(self, sz: int) -> bytes:
|
3703
|
+
d = self.read(sz)
|
3704
|
+
if d is None or len(d) != sz:
|
3705
|
+
raise EOFError(f'ReadableListBuffer got {"no" if d is None else len(d)}, expected {sz}')
|
3706
|
+
return d
|
3707
|
+
|
3697
3708
|
def read_until(self, delim: bytes = b'\n') -> ta.Optional[bytes]:
|
3698
3709
|
if not (lst := self._lst):
|
3699
3710
|
return None
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ominfra
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev190
|
4
4
|
Summary: ominfra
|
5
5
|
Author: wrmsr
|
6
6
|
License: BSD-3-Clause
|
@@ -12,8 +12,9 @@ Classifier: Operating System :: OS Independent
|
|
12
12
|
Classifier: Operating System :: POSIX
|
13
13
|
Requires-Python: >=3.12
|
14
14
|
License-File: LICENSE
|
15
|
-
Requires-Dist: omdev==0.0.0.
|
16
|
-
Requires-Dist: omlish==0.0.0.
|
15
|
+
Requires-Dist: omdev==0.0.0.dev190
|
16
|
+
Requires-Dist: omlish==0.0.0.dev190
|
17
|
+
Requires-Dist: omserv==0.0.0.dev190
|
17
18
|
Provides-Extra: all
|
18
19
|
Requires-Dist: paramiko~=3.5; extra == "all"
|
19
20
|
Requires-Dist: asyncssh~=2.18; extra == "all"
|
@@ -1,5 +1,5 @@
|
|
1
1
|
ominfra/.manifests.json,sha256=8KREXxMAlsilZOktXPYru1ND3V5hFI22vnrp6hT3bio,589
|
2
|
-
ominfra/__about__.py,sha256=
|
2
|
+
ominfra/__about__.py,sha256=_gUs3H7uunGy5IfGw3mq4dFJWaF1mecSPruJPyjbs7Y,741
|
3
3
|
ominfra/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
4
4
|
ominfra/cmds.py,sha256=E0AfnvEmnKntXWvmLW5L05_NeDpBET1VBXn7vV6EwBQ,2083
|
5
5
|
ominfra/configs.py,sha256=UrwZrzsnU4E305OoFH_eAcyI8e82LQZ2yhy8WnuAUGM,3055
|
@@ -44,29 +44,30 @@ ominfra/manage/commands/ping.py,sha256=DVZFzL1Z_f-Bq53vxMrL3xOi0iK_nMonJE4KvQf9w
|
|
44
44
|
ominfra/manage/commands/subprocess.py,sha256=yHGMbAI-xKe_9BUs5IZ3Yav8qRE-I9aGnBtTwW15Pnw,2440
|
45
45
|
ominfra/manage/commands/types.py,sha256=XFZPeqeIBAaIIQF3pdPbGxLlb-LCrz6WtlDWO2q_vz0,210
|
46
46
|
ominfra/manage/deploy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
47
|
-
ominfra/manage/deploy/apps.py,sha256=
|
48
|
-
ominfra/manage/deploy/commands.py,sha256=
|
47
|
+
ominfra/manage/deploy/apps.py,sha256=cZmM3VgWlojKoGFAQN2Zzu5UkT_o7SXaoXg1iKdmFE8,3010
|
48
|
+
ominfra/manage/deploy/commands.py,sha256=OVZzSY4EP_SD7KJRkIIPeqUxcV4mcwrc_WYNvM16ahM,830
|
49
49
|
ominfra/manage/deploy/config.py,sha256=kPpl8TRisz295cM4oj-RHA6oh5jdcJ_N9pVpkl_doO8,114
|
50
|
-
ominfra/manage/deploy/deploy.py,sha256=
|
51
|
-
ominfra/manage/deploy/driver.py,sha256=kSriXFC8L_EpOcHFGxNZDBGyxV_fZAAF95y-czisnwE,1352
|
50
|
+
ominfra/manage/deploy/deploy.py,sha256=qAae-MIsaebt1WuyT6vdYFDX6aLkuhDOesaCzMvpY1w,6041
|
52
51
|
ominfra/manage/deploy/git.py,sha256=g4wzUuSu9HwWSDhdVX-7BvA2htMwtWbRcHaoDy-xOJ4,3960
|
53
|
-
ominfra/manage/deploy/inject.py,sha256=
|
52
|
+
ominfra/manage/deploy/inject.py,sha256=lVNik0CfQMd31fiqzFlM828oQKVUTJY-zTmU1pGOopQ,3467
|
54
53
|
ominfra/manage/deploy/inject_.py,sha256=LR7gEkVx2ldUoQZsGvIcm1Y4QXCVDnLIAdc3LHhQiD4,392
|
55
54
|
ominfra/manage/deploy/interp.py,sha256=_5fuHrY5ZA0eGbnNcOqAhAMSWI1UNvbm0l29eDjE5fI,1037
|
56
|
-
ominfra/manage/deploy/
|
55
|
+
ominfra/manage/deploy/nginx.py,sha256=cU9GjWMSxqeNhbuSBZYRuBXUokiRiY4OWMLAgbj_4m4,89
|
56
|
+
ominfra/manage/deploy/specs.py,sha256=Bl0Fp1_loWZ3Y6gFGE9j_neTslaN4jMwFKHmoFcQixs,2629
|
57
|
+
ominfra/manage/deploy/systemd.py,sha256=aDwm3Ly0I4qSZehInIGn_70RQvgdzUCSTfOTlhRmVrM,2765
|
57
58
|
ominfra/manage/deploy/tags.py,sha256=3BU0OtHQJ1Vk9B_U7Q3Cq1rbVgxcXrFki24WU0nPX1M,5106
|
58
59
|
ominfra/manage/deploy/tmp.py,sha256=FqXoVpIpVe8-KWNu7kXt37A4jKdK_y7h_YFvtrUoOG8,729
|
59
60
|
ominfra/manage/deploy/types.py,sha256=ZcIoheZ3zW7n0IZiqTRW_Uo3JyWWeWg5nyKGryvGc2I,112
|
60
|
-
ominfra/manage/deploy/venvs.py,sha256=
|
61
|
+
ominfra/manage/deploy/venvs.py,sha256=cwHapRRMioWvsYJL2-8SijTDOmiVoXIsOlunEIaIuVU,1532
|
61
62
|
ominfra/manage/deploy/conf/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
62
63
|
ominfra/manage/deploy/conf/inject.py,sha256=xHZQr7oaJCxaKgpJ0H-hgiQNGt4QsskhT3f5v7xrFwE,451
|
63
|
-
ominfra/manage/deploy/conf/manager.py,sha256=
|
64
|
-
ominfra/manage/deploy/conf/specs.py,sha256=
|
64
|
+
ominfra/manage/deploy/conf/manager.py,sha256=h8tJJv-ZfK5Jiw4xM-mbEoWolVUlq_ETsNqNhSzN9ag,6653
|
65
|
+
ominfra/manage/deploy/conf/specs.py,sha256=AWeofV1YbcNZS-7WX7EpsX8i_7stJAXndXktB6fDWw8,2187
|
65
66
|
ominfra/manage/deploy/paths/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
66
67
|
ominfra/manage/deploy/paths/inject.py,sha256=X81C-Qhef1LQ7tILWvkomBwFTvgooLVmWRnKL7TeVoI,596
|
67
68
|
ominfra/manage/deploy/paths/manager.py,sha256=Dnl8euyZQYDGwDzkMvgPAwOssseducr5kP6T0qzVXQk,929
|
68
69
|
ominfra/manage/deploy/paths/owners.py,sha256=sgCdKOFve8XZOtoTjrFrOrJd_MhZOGXo4yFJAFGRQ_s,1229
|
69
|
-
ominfra/manage/deploy/paths/paths.py,sha256=
|
70
|
+
ominfra/manage/deploy/paths/paths.py,sha256=Slh6_ts77c4VVgyOt8GmIBMRz-rKsTnuKaaIYUGNwFY,5637
|
70
71
|
ominfra/manage/deploy/paths/specs.py,sha256=0cXJI7xjevv4qco3qn4jAs9i5pGyupJ3CFAyJh8y1z0,244
|
71
72
|
ominfra/manage/deploy/paths/types.py,sha256=TGgtSASmdyuZ2maZnvahfA0QxPLWlHBtpDeIEoEDGxk,112
|
72
73
|
ominfra/manage/remote/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -91,9 +92,9 @@ ominfra/manage/targets/connection.py,sha256=rVI1YJxFClcF-sdttqWyIz9_XjPI01GUdwxY
|
|
91
92
|
ominfra/manage/targets/inject.py,sha256=P4597xWM-V3I_gCt2O71OLhYQkkXtuJvkYRsIbhhMcE,1561
|
92
93
|
ominfra/manage/targets/targets.py,sha256=7GP6UAZyJFEhpkJN6UQdpr_WN3p7C76v-s445y-WB6U,1885
|
93
94
|
ominfra/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
94
|
-
ominfra/scripts/journald2aws.py,sha256
|
95
|
-
ominfra/scripts/manage.py,sha256=
|
96
|
-
ominfra/scripts/supervisor.py,sha256=
|
95
|
+
ominfra/scripts/journald2aws.py,sha256=jxBI2ETft-GMJn0hFwV_lZgT55tj2kqKl0PszxUkOg8,158938
|
96
|
+
ominfra/scripts/manage.py,sha256=caUPUY6Re52MTbNCdsKLo_z2OAmZo81Dw_tVOpnQ1Ko,338592
|
97
|
+
ominfra/scripts/supervisor.py,sha256=nFPSB-NGQeoHwAA5UCAvcgy6sUWh4UtuQbhVZShk7wI,283226
|
97
98
|
ominfra/supervisor/LICENSE.txt,sha256=yvqaMNsDhWxziHa9ien6qCW1SkZv-DQlAg96XjfSee8,1746
|
98
99
|
ominfra/supervisor/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
|
99
100
|
ominfra/supervisor/__main__.py,sha256=I0yFw-C08OOiZ3BF6lF1Oiv789EQXu-_j6whDhQUTEA,66
|
@@ -135,9 +136,9 @@ ominfra/tailscale/api.py,sha256=C5-t_b6jZXUWcy5k8bXm7CFnk73pSdrlMOgGDeGVrpw,1370
|
|
135
136
|
ominfra/tailscale/cli.py,sha256=3FnJbgpLw6gInTfhERd1mDy9ijjMUGxkdYVo43Tnxx4,3555
|
136
137
|
ominfra/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
137
138
|
ominfra/tools/listresources.py,sha256=4qVg5txsb10EHhvqXXeM6gJ2jx9LbroEnPydDv1uXs0,6176
|
138
|
-
ominfra-0.0.0.
|
139
|
-
ominfra-0.0.0.
|
140
|
-
ominfra-0.0.0.
|
141
|
-
ominfra-0.0.0.
|
142
|
-
ominfra-0.0.0.
|
143
|
-
ominfra-0.0.0.
|
139
|
+
ominfra-0.0.0.dev190.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
140
|
+
ominfra-0.0.0.dev190.dist-info/METADATA,sha256=ZVC-MD5Jy8fZaChCJgEhJBQZ5JRqs_DVijPKgaJtwxs,767
|
141
|
+
ominfra-0.0.0.dev190.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
142
|
+
ominfra-0.0.0.dev190.dist-info/entry_points.txt,sha256=kgecQ2MgGrM9qK744BoKS3tMesaC3yjLnl9pa5CRczg,37
|
143
|
+
ominfra-0.0.0.dev190.dist-info/top_level.txt,sha256=E-b2OHkk_AOBLXHYZQ2EOFKl-_6uOGd8EjeG-Zy6h_w,8
|
144
|
+
ominfra-0.0.0.dev190.dist-info/RECORD,,
|
ominfra/manage/deploy/driver.py
DELETED
@@ -1,62 +0,0 @@
|
|
1
|
-
# ruff: noqa: UP006 UP007
|
2
|
-
import typing as ta
|
3
|
-
|
4
|
-
from omlish.lite.typing import Func1
|
5
|
-
|
6
|
-
from .apps import DeployAppManager
|
7
|
-
from .paths.manager import DeployPathsManager
|
8
|
-
from .specs import DeploySpec
|
9
|
-
from .tags import DeployAppRev
|
10
|
-
from .tags import DeployTagMap
|
11
|
-
from .tags import DeployTime
|
12
|
-
from .types import DeployHome
|
13
|
-
|
14
|
-
|
15
|
-
class DeployDriverFactory(Func1[DeploySpec, ta.ContextManager['DeployDriver']]):
|
16
|
-
pass
|
17
|
-
|
18
|
-
|
19
|
-
class DeployDriver:
|
20
|
-
def __init__(
|
21
|
-
self,
|
22
|
-
*,
|
23
|
-
spec: DeploySpec,
|
24
|
-
home: DeployHome,
|
25
|
-
time: DeployTime,
|
26
|
-
|
27
|
-
paths: DeployPathsManager,
|
28
|
-
apps: DeployAppManager,
|
29
|
-
) -> None:
|
30
|
-
super().__init__()
|
31
|
-
|
32
|
-
self._spec = spec
|
33
|
-
self._home = home
|
34
|
-
self._time = time
|
35
|
-
|
36
|
-
self._paths = paths
|
37
|
-
self._apps = apps
|
38
|
-
|
39
|
-
async def drive_deploy(self) -> None:
|
40
|
-
self._paths.validate_deploy_paths()
|
41
|
-
|
42
|
-
#
|
43
|
-
|
44
|
-
deploy_tags = DeployTagMap(
|
45
|
-
self._time,
|
46
|
-
self._spec.key(),
|
47
|
-
)
|
48
|
-
|
49
|
-
#
|
50
|
-
|
51
|
-
for app in self._spec.apps:
|
52
|
-
app_tags = deploy_tags.add(
|
53
|
-
app.app,
|
54
|
-
app.key(),
|
55
|
-
DeployAppRev(app.git.rev),
|
56
|
-
)
|
57
|
-
|
58
|
-
await self._apps.prepare_app(
|
59
|
-
app,
|
60
|
-
self._home,
|
61
|
-
app_tags,
|
62
|
-
)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|