ominfra 0.0.0.dev156__py3-none-any.whl → 0.0.0.dev158__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.
@@ -245,6 +245,8 @@ class ServerConfig:
245
245
 
246
246
  groups: ta.Optional[ta.Sequence[ProcessGroupConfig]] = None
247
247
 
248
+ group_config_dirs: ta.Optional[ta.Sequence[str]] = None
249
+
248
250
  @classmethod
249
251
  def new(
250
252
  cls,
@@ -4,10 +4,10 @@ import json
4
4
  import socket
5
5
  import typing as ta
6
6
 
7
+ from omlish.http.coro.fdio import CoroHttpServerConnectionFdioHandler
7
8
  from omlish.http.handlers import HttpHandler
8
9
  from omlish.http.handlers import HttpHandlerRequest
9
10
  from omlish.http.handlers import HttpHandlerResponse
10
- from omlish.io.fdio.corohttp import CoroHttpServerConnectionFdioHandler
11
11
  from omlish.io.fdio.handlers import SocketFdioHandler
12
12
  from omlish.lite.check import check
13
13
  from omlish.lite.contextmanagers import defer
@@ -34,10 +34,10 @@ import itertools
34
34
  import os.path
35
35
  import typing as ta
36
36
 
37
- from omlish.http.coroserver import CoroHttpServer
37
+ from omlish.http.coro.server import CoroHttpServer
38
38
  from omlish.lite.inject import inj
39
- from omlish.lite.logs import configure_standard_logging
40
39
  from omlish.lite.runtime import is_debugger_attached
40
+ from omlish.logs.standard import configure_standard_logging
41
41
  from omlish.os.journald import journald_log_handler_factory
42
42
 
43
43
  from ..configs import read_config_file
@@ -1,6 +1,4 @@
1
1
  # ruff: noqa: UP006 UP007
2
- import errno
3
- import os
4
2
  import time
5
3
  import typing as ta
6
4
 
@@ -26,8 +24,7 @@ from .types import ExitNow
26
24
  from .types import Process
27
25
  from .types import SupervisorStateManager
28
26
  from .utils.os import decode_wait_status
29
- from .utils.ostypes import Pid
30
- from .utils.ostypes import Rc
27
+ from .utils.os import waitpid
31
28
 
32
29
 
33
30
  ##
@@ -232,7 +229,7 @@ class Supervisor:
232
229
  if depth >= 100:
233
230
  return
234
231
 
235
- wp = waitpid()
232
+ wp = waitpid(log=log)
236
233
 
237
234
  if wp is None or not wp.pid:
238
235
  return
@@ -271,31 +268,3 @@ class Supervisor:
271
268
  if this_tick != last_tick:
272
269
  self._ticks[period] = this_tick
273
270
  self._event_callbacks.notify(event(this_tick, self))
274
-
275
-
276
- ##
277
-
278
-
279
- class WaitedPid(ta.NamedTuple):
280
- pid: Pid
281
- sts: Rc
282
-
283
-
284
- def waitpid() -> ta.Optional[WaitedPid]:
285
- # Need pthread_sigmask here to avoid concurrent sigchld, but Python doesn't offer in Python < 3.4. There is
286
- # still a race condition here; we can get a sigchld while we're sitting in the waitpid call. However, AFAICT, if
287
- # waitpid is interrupted by SIGCHLD, as long as we call waitpid again (which happens every so often during the
288
- # normal course in the mainloop), we'll eventually reap the child that we tried to reap during the interrupted
289
- # call. At least on Linux, this appears to be true, or at least stopping 50 processes at once never left zombies
290
- # lying around.
291
- try:
292
- pid, sts = os.waitpid(-1, os.WNOHANG)
293
- except OSError as exc:
294
- code = exc.args[0]
295
- if code not in (errno.ECHILD, errno.EINTR):
296
- log.critical('waitpid error %r; a process may not be cleaned up properly', code)
297
- if code == errno.EINTR:
298
- log.debug('EINTR during reap')
299
- return None
300
- else:
301
- return WaitedPid(pid, sts) # type: ignore
@@ -1,7 +1,10 @@
1
1
  # ruff: noqa: UP006 UP007
2
+ import errno
3
+ import logging
2
4
  import os
3
5
  import typing as ta
4
6
 
7
+ from .ostypes import Pid
5
8
  from .ostypes import Rc
6
9
  from .signals import sig_name
7
10
 
@@ -43,3 +46,41 @@ def decode_wait_status(sts: int) -> ta.Tuple[Rc, str]:
43
46
  else:
44
47
  msg = 'unknown termination cause 0x%04x' % sts # noqa
45
48
  return Rc(-1), msg
49
+
50
+
51
+ ##
52
+
53
+
54
+ class WaitedPid(ta.NamedTuple):
55
+ pid: Pid
56
+ sts: Rc
57
+
58
+
59
+ def waitpid(
60
+ *,
61
+ log: ta.Optional[logging.Logger] = None,
62
+ ) -> ta.Optional[WaitedPid]:
63
+ # Need pthread_sigmask here to avoid concurrent sigchld, but Python doesn't offer in Python < 3.4. There is
64
+ # still a race condition here; we can get a sigchld while we're sitting in the waitpid call. However, AFAICT, if
65
+ # waitpid is interrupted by SIGCHLD, as long as we call waitpid again (which happens every so often during the
66
+ # normal course in the mainloop), we'll eventually reap the child that we tried to reap during the interrupted
67
+ # call. At least on Linux, this appears to be true, or at least stopping 50 processes at once never left zombies
68
+ # lying around.
69
+ try:
70
+ pid, sts = os.waitpid(-1, os.WNOHANG)
71
+
72
+ except OSError as exc:
73
+ code = exc.args[0]
74
+
75
+ if code not in (errno.ECHILD, errno.EINTR):
76
+ if log is not None:
77
+ log.critical('waitpid error %r; a process may not be cleaned up properly', code)
78
+
79
+ if code == errno.EINTR:
80
+ if log is not None:
81
+ log.debug('EINTR during reap')
82
+
83
+ return None
84
+
85
+ else:
86
+ return WaitedPid(pid, sts) # type: ignore
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ominfra
3
- Version: 0.0.0.dev156
3
+ Version: 0.0.0.dev158
4
4
  Summary: ominfra
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -12,8 +12,8 @@ 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.dev156
16
- Requires-Dist: omlish==0.0.0.dev156
15
+ Requires-Dist: omdev==0.0.0.dev158
16
+ Requires-Dist: omlish==0.0.0.dev158
17
17
  Provides-Extra: all
18
18
  Requires-Dist: paramiko~=3.5; extra == "all"
19
19
  Requires-Dist: asyncssh~=2.18; extra == "all"
@@ -3,7 +3,7 @@ ominfra/__about__.py,sha256=6i1AoruFYQCd-PyhhbDQDWY2d1tiQu9nkwWr-fXAqfY,705
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=fUjGcYTZDyWcIF0BkHBxkGz64S33DR5NP8tHIf3IaXk,2291
6
- ominfra/pyremote.py,sha256=Q40eRMfJc5MVscI0grfeNAf1hj4R_8V3ceKQZhKKEII,15025
6
+ ominfra/pyremote.py,sha256=YK21mzMMQIpEUGQtUU7n8H8MeSIC5kwFcOXgKXPAZOE,15124
7
7
  ominfra/ssh.py,sha256=jQpc4WvkMckIfk4vILda8zFaeharRqc_6wxW50b0OjQ,5431
8
8
  ominfra/threadworkers.py,sha256=oX4ubZn7h932saXpRIJu2MNhBExgGGMuGhdXarZxLJw,4948
9
9
  ominfra/clouds/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -18,7 +18,7 @@ ominfra/clouds/aws/journald2aws/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxk
18
18
  ominfra/clouds/aws/journald2aws/__main__.py,sha256=d23loR_cKfTYZwYiqpt_CmKI7dd5WcYFgIYzqMep75E,68
19
19
  ominfra/clouds/aws/journald2aws/cursor.py,sha256=tQ7O6BHlEdaalbiI_Rqagj0aHfdtTQ_ZJwdOSRUjNvQ,1173
20
20
  ominfra/clouds/aws/journald2aws/driver.py,sha256=b3XfSlIBWAWJLImmyh1ZK9FpdNAYNZ2YZeCv_Q9GckM,6111
21
- ominfra/clouds/aws/journald2aws/main.py,sha256=RQJhk4aPtnp4EHzC-ST1Rs9BN6D7bqQQVjCRxGU7JuQ,2147
21
+ ominfra/clouds/aws/journald2aws/main.py,sha256=f1YbdF0FulIbUokaNz7NrPS304IdzYiw0Hd3ZDheYf0,2151
22
22
  ominfra/clouds/aws/journald2aws/poster.py,sha256=hz1XuctW8GtLmfjhRvCFY6py52D4BzXHYny5XKFpHSA,2833
23
23
  ominfra/clouds/gcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
24
  ominfra/clouds/gcp/auth.py,sha256=rDIiOH5gP3OSIaMC5Lp8yAD4zWuLDEYlFu37mDx5YDA,1360
@@ -26,14 +26,14 @@ ominfra/journald/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
26
26
  ominfra/journald/fields.py,sha256=NjjVn7GW4jkcGdyiiizVjEfQqSFnolXYk3kDcSQcMmc,12278
27
27
  ominfra/journald/genmessages.py,sha256=rLTS-K2v7otNOtTz4RoOEVYCm0fQuuBzf47e0T61tA8,1857
28
28
  ominfra/journald/messages.py,sha256=zhAQswhpSBybaBPWONCt0quenYK91HMHRkuOz38mq1E,2184
29
- ominfra/journald/tailer.py,sha256=gBVtuc8dm-H13eOYC-F5fCrJLuiC3fAC3TyVdrKhnqQ,33516
29
+ ominfra/journald/tailer.py,sha256=fiyZkzZh3_QaCCeX1pnF1nwOhJ-u-QcbmAEH5V01Vsc,33506
30
30
  ominfra/manage/__init__.py,sha256=aykrEASTHEtJ-o97jUHRIv8oea41tO7RDHB56cQfmis,265
31
31
  ominfra/manage/__main__.py,sha256=5IeIERm-371fSI5ZvPv8eldAJBwgKwpR0R49pTsILNM,76
32
32
  ominfra/manage/bootstrap.py,sha256=1RIRhVkUZjxZcZerHMg8U6xgWhhemGgPN5cDye8dQ68,446
33
- ominfra/manage/bootstrap_.py,sha256=CYO8HfuVsw02PiVMMnyabL5jqJhexeP0b5mWz8eOtoA,652
33
+ ominfra/manage/bootstrap_.py,sha256=B9UfR9J7mS3J54PFaSe1MQS5lCnKgxt5dDRJ9mnHYwg,656
34
34
  ominfra/manage/config.py,sha256=1y2N_8nXHBZc6YbW6BaRZoDDCTBmiHuWtTOQ7zdr5VE,184
35
35
  ominfra/manage/inject.py,sha256=_FVaMZUBKi-oObv14H77luWYCodxNJJD1t4pNQzckFE,2030
36
- ominfra/manage/main.py,sha256=LrjcdTLUtbEho_LNwQ9JBK2BfE5IZuUF-wSHXujiiuY,3489
36
+ ominfra/manage/main.py,sha256=xc8iTMNCvdS_leKA-5vodEj_Dc-V8pThpPxcewrROns,4287
37
37
  ominfra/manage/marshal.py,sha256=WKj7IU9bo4fBMSSzT6ZMm_WFalXIJZ-V7j8oi92fNhk,305
38
38
  ominfra/manage/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
39
  ominfra/manage/commands/base.py,sha256=LtaI0AgnplttQK7gNncNItq8yuTZQimJTaprVpZktI8,3993
@@ -41,18 +41,19 @@ ominfra/manage/commands/inject.py,sha256=uRw6DsllEoL6GDy0dZJdu2z9tf6I7l3YObMli-q
41
41
  ominfra/manage/commands/local.py,sha256=DyHIsQ03_YS6kAA8WLeMyXyGgyizkd1WZUZdATkSsZE,532
42
42
  ominfra/manage/commands/marshal.py,sha256=4DSCMPzRiRhufIB_9DPL6LrZkRZOle5ruOWU4MVlcXM,694
43
43
  ominfra/manage/commands/ping.py,sha256=DVZFzL1Z_f-Bq53vxMrL3xOi0iK_nMonJE4KvQf9wsI,546
44
- ominfra/manage/commands/subprocess.py,sha256=mOZMLp45P87UmRjIStshuSj8STmMma2FvoNomBH4aXE,2453
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=i0iB7vVjnsMRahlKn3nTIComQGtYEEWe2twTpRO43Mg,1747
47
+ ominfra/manage/deploy/apps.py,sha256=zfP25EFzURVt_YlPT9bOSA-G-JBRNC0XyAp1Xxt9YUY,1767
48
48
  ominfra/manage/deploy/commands.py,sha256=YZGdpiaqj_-iMp2SMdz4hB6bTKk3UQxnHeTblGyxuuk,560
49
- ominfra/manage/deploy/config.py,sha256=xBBaeDXmM6omkJHJLMbieKD3wNaxSY1KAaXDiseX7Dk,161
50
- ominfra/manage/deploy/git.py,sha256=l-LcRIsysK6Y1OIwY2NYhuyzRW6wbE2n2vg9RRnQ2Zs,3815
49
+ ominfra/manage/deploy/config.py,sha256=aR6ubMEWqkTI55XtcG1Cczn6YhCVN6eSL8DT5EHQJN0,166
50
+ ominfra/manage/deploy/git.py,sha256=EHdWVM-e5jg6dM8aIOkzkgNg8UoCYmt_KNYetTfbtrw,3560
51
51
  ominfra/manage/deploy/inject.py,sha256=0_dBxMsyRYC9VH26Ue9k176IU22t9hWDmw101uIHyNE,1218
52
52
  ominfra/manage/deploy/interp.py,sha256=OKkenH8YKEW_mEDR6X7_ZLxK9a1Ox6KHSwFPTHT6OzA,1029
53
- ominfra/manage/deploy/paths.py,sha256=QZgeqESogfOw02cswGx-UcAwku-iklSjB46xaoDWJxo,5731
53
+ ominfra/manage/deploy/paths.py,sha256=s7elIUkneG9y8-vZuMwzdY6_TGJR4918-fFWua2orgg,6172
54
+ ominfra/manage/deploy/specs.py,sha256=qO0UacGh6J34R-FDvXEBNkxtZ6htfp-4NlpnayDTooo,597
54
55
  ominfra/manage/deploy/types.py,sha256=zW1nwi_wlBB6ekTmR3udnO2OW-p9JToyh3R27rzNEX8,264
55
- ominfra/manage/deploy/venvs.py,sha256=CCPa8a5f5YamESDB7KemoLxkfszoczC2swnbAG4eOtY,1763
56
+ ominfra/manage/deploy/venvs.py,sha256=mc9SRpkaf5bE_No7XN8FC-9Yech8R8SJ0rCRquoz4RY,1943
56
57
  ominfra/manage/remote/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
58
  ominfra/manage/remote/_main.py,sha256=p5KoiS2WMw6QAqlDl_Zun-JybmCsy8awIfpBMLBjGMY,4356
58
59
  ominfra/manage/remote/channel.py,sha256=36xR9Ti9ZA8TUBtxmY0u7_3Lv7E6wzQTxlZl7gLR5GE,2224
@@ -61,35 +62,35 @@ ominfra/manage/remote/connection.py,sha256=T4fL-GXXAfnbCbkZ3_28t8LAwwki4Td3j41eY
61
62
  ominfra/manage/remote/execution.py,sha256=_bygZi_0Uel615uIg43S14CTdmv1unEIu9TPz2mVRJ4,11738
62
63
  ominfra/manage/remote/inject.py,sha256=nSNP_VInCCZOWVrUIRHBvLmnM45geFoYmMh-zqc__as,1080
63
64
  ominfra/manage/remote/payload.py,sha256=Rn-Yo26POpHEOOfUHX3jWkqcQVEAvkJ_5Bu13jwoob4,944
64
- ominfra/manage/remote/spawning.py,sha256=2k1Zfrn8RgnfCxGEaAk5ditpb2BcMARjdiYC_RiERVY,3203
65
+ ominfra/manage/remote/spawning.py,sha256=dXfJE-T3WdM4ATDQxhbJ7N8xgN4FwDD-JsCrRTl297M,3027
65
66
  ominfra/manage/system/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
67
  ominfra/manage/system/commands.py,sha256=XrYvsxiwTJh17buIWmoFGH8zTUIXmrXvYkLy1INtmkU,1173
67
68
  ominfra/manage/system/config.py,sha256=mEVBL1cy4twO6F0bdnCI01Sm0xuLe1Z5eiAzCvbmoAc,196
68
69
  ominfra/manage/system/inject.py,sha256=Ksc7Xw_Yh3lWwkTRxB2JCeOYO-nMyKj-Kssd1RDkR9g,1871
69
- ominfra/manage/system/packages.py,sha256=uqCemll529Bg6OvJVkk3m4d3xOe_FFrgBgRQep_-Pv8,4612
70
+ ominfra/manage/system/packages.py,sha256=HImCsgzXxcfzAoD2PjrstaSE_qgBWtTFUVb0lTEOxkI,4614
70
71
  ominfra/manage/system/platforms.py,sha256=F0bgYzUzCjZ2LbWVvnEq2ya_X_LfRW406LQYFL7bG44,1202
71
72
  ominfra/manage/targets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
72
73
  ominfra/manage/targets/connection.py,sha256=j2QrVS-QFOZJ47TqwaMt8MSPg0whokysGePagjJg3Jg,4637
73
74
  ominfra/manage/targets/inject.py,sha256=P4597xWM-V3I_gCt2O71OLhYQkkXtuJvkYRsIbhhMcE,1561
74
75
  ominfra/manage/targets/targets.py,sha256=CFl8Uirgn3gfowO1Fn-LBK-6qYqEMFJ9snPUl0gCRuM,1753
75
76
  ominfra/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
- ominfra/scripts/journald2aws.py,sha256=5eqvfZ_qB1wc0WOop3mz82gOHN3SGzFcuwxUeXLOR4I,151695
77
- ominfra/scripts/manage.py,sha256=eB_u6D3BdulXlyis65K28F0IHSTPLPKsSSTafJ1zuJ4,250371
78
- ominfra/scripts/supervisor.py,sha256=PrRSYhPe8K6sOAmmF7-LNvCHsSBIizWDkV_GIsPL2vE,272399
77
+ ominfra/scripts/journald2aws.py,sha256=Ohy311S4ReYSuG773bOr7RNMUt5brXwyIqzcO2bP6Kw,154385
78
+ ominfra/scripts/manage.py,sha256=rrwrgyaIoTh5UgbmgWkBcamLUB9pZuV5ECytQ5Ozyjc,285230
79
+ ominfra/scripts/supervisor.py,sha256=S8cxGkya8OhHa3JtrHrh2Gv32-VTPAz1YWQ4zjocimg,273287
79
80
  ominfra/supervisor/LICENSE.txt,sha256=yvqaMNsDhWxziHa9ien6qCW1SkZv-DQlAg96XjfSee8,1746
80
81
  ominfra/supervisor/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
81
82
  ominfra/supervisor/__main__.py,sha256=I0yFw-C08OOiZ3BF6lF1Oiv789EQXu-_j6whDhQUTEA,66
82
- ominfra/supervisor/configs.py,sha256=SFn1_Cm48fqmjYsFCEx_-fvrnOXHPTIXgcRhHtUz7q8,13650
83
+ ominfra/supervisor/configs.py,sha256=InaLW0T93dbAuzKyc6H8wGIFR2oM1GROSiQX9hZY_ko,13711
83
84
  ominfra/supervisor/dispatchers.py,sha256=zXLwQS4Vc6dWw5o9QOL04UMDt7w6CKu9wf19CjUiS2Q,1005
84
85
  ominfra/supervisor/dispatchersimpl.py,sha256=q3dEyOHWTPKm28nmAGisjgIW1BX6O3-SzbYa7nWuTEs,11349
85
86
  ominfra/supervisor/events.py,sha256=XGrtzHr1xm0dwjz329fn9eR0_Ap-LQL6Sk8LJ8eVDEo,6692
86
87
  ominfra/supervisor/exceptions.py,sha256=Qbu211H3CLlSmi9LsSikOwrcL5HgJP9ugvcKWlGTAoI,750
87
88
  ominfra/supervisor/groups.py,sha256=MBbsbt8Zh_WEYkGOr1KXa82gnPVw9wPB2lAnqhugXSc,2457
88
89
  ominfra/supervisor/groupsimpl.py,sha256=PCDyc_Wc-pnvIj56_aEyiA5exCpK6n9iErqnJzO2rZk,2281
89
- ominfra/supervisor/http.py,sha256=hysC2uFm5wWqi_MmOs1NrQ_UdwiXOawKEV-B37fwA-A,3445
90
+ ominfra/supervisor/http.py,sha256=P8lgeSU1clMDI2oS0sVZvCc0q3OecmUfeJWzQ0PoZKg,3443
90
91
  ominfra/supervisor/inject.py,sha256=6nBEnpE8VLjtYK12z5DGRP7WzgbwLAz5yf__1KnJl6g,4693
91
92
  ominfra/supervisor/io.py,sha256=moaGNaPuYXEAUzLg8Qjo05DEIcOUNYUj8SSr8eT0d24,3198
92
- ominfra/supervisor/main.py,sha256=Pad43J0c6jvWGJqn3BAtIubD6MYuj261z-AgTuchvAs,4246
93
+ ominfra/supervisor/main.py,sha256=7YrreFNntdRCp6MplCclfnRcgrRIb_UCeohJkDC9Few,4251
93
94
  ominfra/supervisor/pipes.py,sha256=2ZihNTnRNjnIPOtPbm3_pyqO15f7BNs7WnNtO5V8ahM,2231
94
95
  ominfra/supervisor/privileges.py,sha256=kaRTHI7XjqzxEWCeHp3_0J0Vc4gSPugRbXEwxuw6MYE,2054
95
96
  ominfra/supervisor/process.py,sha256=UaubVxsxVqDnbuWVpTH0DTGbJGLO0vGJ9mNcvy2kCXM,217
@@ -100,14 +101,14 @@ ominfra/supervisor/signals.py,sha256=jY52naUifcAjd6nICTP1ZW3IQSPsHB4cvbsJo8_QV_U
100
101
  ominfra/supervisor/spawning.py,sha256=i1k3tmqWyU-KIN7kel-JVxTVGnLiTIVmZzlstJSZpjM,622
101
102
  ominfra/supervisor/spawningimpl.py,sha256=rWlL-yumu5I1QGhN08XWHVi5HlNPMPkt08D4jEMb_wU,11104
102
103
  ominfra/supervisor/states.py,sha256=x1trJQbItkSegOmotpn5YNcZMLbBL8I3GmhvFCQl4Oo,1400
103
- ominfra/supervisor/supervisor.py,sha256=yRd9XxTRpI6UaSC2O4cF9U7Yeo2PzPuOmQV3gATU6ow,9329
104
+ ominfra/supervisor/supervisor.py,sha256=XsQrWjMsv0o0CzI5nZoGybeUnSDouc8X7jSLr920_eQ,8169
104
105
  ominfra/supervisor/types.py,sha256=g6C-NuPWMy7pk-kcnT3mO7auLWElZU_4dhzrUaX--TA,4015
105
106
  ominfra/supervisor/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
106
107
  ominfra/supervisor/utils/collections.py,sha256=vcfmVYS4QngMdtEI1DvdRIcubmy55Wj40NCzW27_rIY,1361
107
108
  ominfra/supervisor/utils/diag.py,sha256=ujz4gkW7p3wmbaKFM8Hz5eHEwpoUkbB8JeDvcHilCz0,705
108
109
  ominfra/supervisor/utils/fds.py,sha256=lz8DWXzGYvu93dqhWK0WrhXrrJVQ_psoom4Nj_o8g2g,849
109
110
  ominfra/supervisor/utils/fs.py,sha256=ABbNcsCpzSXAvq_ZZSCj61mj5kGnVuC4spUmoWenlqw,1155
110
- ominfra/supervisor/utils/os.py,sha256=IZJ9mBV23CAI0hSBVQiyCNcf-sWqHAmjAW9bbsvKFao,1095
111
+ ominfra/supervisor/utils/os.py,sha256=S-y50uhwUhYklIkYRXTHiejnWj_wtofplaOvFqwS0iM,2399
111
112
  ominfra/supervisor/utils/ostypes.py,sha256=B7VjwbzVesz9we9MztoSk8bH8sTxMIWtILy_Qde0G7w,164
112
113
  ominfra/supervisor/utils/signals.py,sha256=uZkTvissbtq7TlJD4MkTiL3F-zyWmAFUuWQtFjsf0MI,1474
113
114
  ominfra/supervisor/utils/strings.py,sha256=gZOYiFI3ZQEMrXq6VlK2WadK12JPO6zYjPenq_OPcYU,2475
@@ -117,9 +118,9 @@ ominfra/tailscale/api.py,sha256=C5-t_b6jZXUWcy5k8bXm7CFnk73pSdrlMOgGDeGVrpw,1370
117
118
  ominfra/tailscale/cli.py,sha256=h6akQJMl0KuWLHS7Ur6WcBZ2JwF0DJQhsPTnFBdGyNk,3571
118
119
  ominfra/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
119
120
  ominfra/tools/listresources.py,sha256=4qVg5txsb10EHhvqXXeM6gJ2jx9LbroEnPydDv1uXs0,6176
120
- ominfra-0.0.0.dev156.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
121
- ominfra-0.0.0.dev156.dist-info/METADATA,sha256=Uh8A7yOgSiNjW9yWFY_Vm8fW6j9BVhm8wLX-hZOTbjs,731
122
- ominfra-0.0.0.dev156.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
123
- ominfra-0.0.0.dev156.dist-info/entry_points.txt,sha256=kgecQ2MgGrM9qK744BoKS3tMesaC3yjLnl9pa5CRczg,37
124
- ominfra-0.0.0.dev156.dist-info/top_level.txt,sha256=E-b2OHkk_AOBLXHYZQ2EOFKl-_6uOGd8EjeG-Zy6h_w,8
125
- ominfra-0.0.0.dev156.dist-info/RECORD,,
121
+ ominfra-0.0.0.dev158.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
122
+ ominfra-0.0.0.dev158.dist-info/METADATA,sha256=IgWx7agc84HpjibHPIlR1w3jFX39Cco0yeMtrmWaC-8,731
123
+ ominfra-0.0.0.dev158.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
124
+ ominfra-0.0.0.dev158.dist-info/entry_points.txt,sha256=kgecQ2MgGrM9qK744BoKS3tMesaC3yjLnl9pa5CRczg,37
125
+ ominfra-0.0.0.dev158.dist-info/top_level.txt,sha256=E-b2OHkk_AOBLXHYZQ2EOFKl-_6uOGd8EjeG-Zy6h_w,8
126
+ ominfra-0.0.0.dev158.dist-info/RECORD,,