ominfra 0.0.0.dev156__py3-none-any.whl → 0.0.0.dev158__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -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,,