ominfra 0.0.0.dev420__py3-none-any.whl → 0.0.0.dev421__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.
Files changed (42) hide show
  1. ominfra/clouds/aws/models/base.py +1 -2
  2. ominfra/clouds/aws/models/services/ec2.py +45 -0
  3. ominfra/clouds/aws/models/services/rds.py +10 -0
  4. ominfra/manage/commands/base.py +5 -4
  5. ominfra/manage/deploy/conf/specs.py +2 -2
  6. ominfra/manage/deploy/paths/owners.py +3 -2
  7. ominfra/manage/deploy/paths/paths.py +4 -3
  8. ominfra/manage/deploy/tags.py +8 -8
  9. ominfra/manage/inject.py +2 -1
  10. ominfra/manage/remote/channel.py +2 -1
  11. ominfra/manage/remote/execution.py +4 -4
  12. ominfra/manage/remote/spawning.py +2 -1
  13. ominfra/manage/system/packages.py +2 -1
  14. ominfra/manage/system/platforms.py +3 -3
  15. ominfra/manage/targets/connection.py +2 -1
  16. ominfra/manage/targets/targets.py +5 -5
  17. ominfra/scripts/journald2aws.py +436 -133
  18. ominfra/scripts/manage.py +2957 -2655
  19. ominfra/scripts/supervisor.py +2806 -2468
  20. ominfra/supervisor/dispatchers.py +3 -0
  21. ominfra/supervisor/dispatchersimpl.py +5 -2
  22. ominfra/supervisor/events.py +6 -6
  23. ominfra/supervisor/groups.py +3 -0
  24. ominfra/supervisor/groupsimpl.py +3 -0
  25. ominfra/supervisor/inject.py +3 -0
  26. ominfra/supervisor/pipes.py +3 -0
  27. ominfra/supervisor/privileges.py +3 -0
  28. ominfra/supervisor/setup.py +4 -2
  29. ominfra/supervisor/signals.py +3 -0
  30. ominfra/supervisor/spawning.py +3 -0
  31. ominfra/supervisor/types.py +9 -8
  32. ominfra/supervisor/utils/collections.py +7 -2
  33. ominfra/supervisor/utils/diag.py +3 -0
  34. ominfra/supervisor/utils/fds.py +3 -0
  35. ominfra/supervisor/utils/fs.py +3 -0
  36. ominfra/threadworkers.py +2 -1
  37. {ominfra-0.0.0.dev420.dist-info → ominfra-0.0.0.dev421.dist-info}/METADATA +3 -3
  38. {ominfra-0.0.0.dev420.dist-info → ominfra-0.0.0.dev421.dist-info}/RECORD +42 -42
  39. {ominfra-0.0.0.dev420.dist-info → ominfra-0.0.0.dev421.dist-info}/WHEEL +0 -0
  40. {ominfra-0.0.0.dev420.dist-info → ominfra-0.0.0.dev421.dist-info}/entry_points.txt +0 -0
  41. {ominfra-0.0.0.dev420.dist-info → ominfra-0.0.0.dev421.dist-info}/licenses/LICENSE +0 -0
  42. {ominfra-0.0.0.dev420.dist-info → ominfra-0.0.0.dev421.dist-info}/top_level.txt +0 -0
@@ -6,6 +6,9 @@ from .utils.collections import KeyedCollection
6
6
  from .utils.ostypes import Fd
7
7
 
8
8
 
9
+ ##
10
+
11
+
9
12
  class Dispatchers(KeyedCollection[Fd, FdioHandler]):
10
13
  def _key(self, v: FdioHandler) -> Fd:
11
14
  return Fd(v.fd())
@@ -1,10 +1,10 @@
1
1
  # ruff: noqa: UP006 UP007 UP045
2
- import abc
3
2
  import errno
4
3
  import logging
5
4
  import os
6
5
  import typing as ta
7
6
 
7
+ from omlish.lite.abstract import Abstract
8
8
  from omlish.lite.logs import log
9
9
 
10
10
  from .configs import ProcessConfig
@@ -26,7 +26,10 @@ from .utils.strings import find_prefix_at_end
26
26
  from .utils.strings import strip_escapes
27
27
 
28
28
 
29
- class BaseProcessDispatcherImpl(ProcessDispatcher, abc.ABC):
29
+ ##
30
+
31
+
32
+ class BaseProcessDispatcherImpl(ProcessDispatcher, Abstract):
30
33
  def __init__(
31
34
  self,
32
35
  process: Process,
@@ -1,12 +1,12 @@
1
1
  # ruff: noqa: UP006 UP007 UP045
2
- import abc
3
2
  import typing as ta
4
3
 
5
- from .states import ProcessState
4
+ from omlish.lite.abstract import Abstract
6
5
 
6
+ from .states import ProcessState
7
7
 
8
- EventCallback = ta.Callable[['Event'], None]
9
8
 
9
+ EventCallback = ta.Callable[['Event'], None] # ta.TypeAlias
10
10
 
11
11
  ProcessOutputChannel = ta.Literal['stdout', 'stderr'] # ta.TypeAlias
12
12
 
@@ -14,7 +14,7 @@ ProcessOutputChannel = ta.Literal['stdout', 'stderr'] # ta.TypeAlias
14
14
  ##
15
15
 
16
16
 
17
- class Event(abc.ABC): # noqa
17
+ class Event(Abstract):
18
18
  """Abstract event type."""
19
19
 
20
20
 
@@ -45,7 +45,7 @@ class EventCallbacks:
45
45
  ##
46
46
 
47
47
 
48
- class ProcessLogEvent(Event, abc.ABC):
48
+ class ProcessLogEvent(Event, Abstract):
49
49
  channel: ta.ClassVar[ProcessOutputChannel]
50
50
 
51
51
  def __init__(self, process, pid, data):
@@ -67,7 +67,7 @@ class ProcessLogStderrEvent(ProcessLogEvent):
67
67
  #
68
68
 
69
69
 
70
- class ProcessCommunicationEvent(Event, abc.ABC):
70
+ class ProcessCommunicationEvent(Event, Abstract):
71
71
  # event mode tokens
72
72
  BEGIN_TOKEN = b'<!--XSUPERVISOR:BEGIN-->'
73
73
  END_TOKEN = b'<!--XSUPERVISOR:END-->'
@@ -12,6 +12,9 @@ from .types import ProcessGroup
12
12
  from .utils.collections import KeyedCollectionAccessors
13
13
 
14
14
 
15
+ ##
16
+
17
+
15
18
  class ProcessGroupManager(
16
19
  KeyedCollectionAccessors[str, ProcessGroup],
17
20
  HasDispatchers,
@@ -11,6 +11,9 @@ from .types import Process
11
11
  from .types import ProcessGroup
12
12
 
13
13
 
14
+ ##
15
+
16
+
14
17
  class ProcessFactory(Func2[ProcessConfig, ProcessGroup, Process]):
15
18
  pass
16
19
 
@@ -45,6 +45,9 @@ from .utils.signals import SignalReceiver
45
45
  from .utils.users import get_user
46
46
 
47
47
 
48
+ ##
49
+
50
+
48
51
  @dc.dataclass(frozen=True)
49
52
  class _FdioPollerDaemonizeListener(DaemonizeListener):
50
53
  _poller: FdioPoller
@@ -9,6 +9,9 @@ from .utils.fds import make_pipe
9
9
  from .utils.ostypes import Fd
10
10
 
11
11
 
12
+ ##
13
+
14
+
12
15
  @dc.dataclass(frozen=True)
13
16
  class ProcessPipes:
14
17
  child_stdin: ta.Optional[Fd] = None
@@ -5,6 +5,9 @@ import pwd
5
5
  import typing as ta
6
6
 
7
7
 
8
+ ##
9
+
10
+
8
11
  def drop_privileges(user: ta.Union[int, str, None]) -> ta.Optional[str]:
9
12
  """
10
13
  Drop privileges to become the specified user, which may be a username or uid. Called for supervisord startup and
@@ -2,6 +2,8 @@
2
2
  import abc
3
3
  import typing as ta
4
4
 
5
+ from omlish.lite.abstract import Abstract
6
+
5
7
  from .utils.users import User
6
8
 
7
9
 
@@ -14,7 +16,7 @@ SupervisorUser = ta.NewType('SupervisorUser', User)
14
16
  ##
15
17
 
16
18
 
17
- class DaemonizeListener(abc.ABC): # noqa
19
+ class DaemonizeListener(Abstract):
18
20
  def before_daemonize(self) -> None: # noqa
19
21
  pass
20
22
 
@@ -28,7 +30,7 @@ DaemonizeListeners = ta.NewType('DaemonizeListeners', ta.Sequence[DaemonizeListe
28
30
  ##
29
31
 
30
32
 
31
- class SupervisorSetup(abc.ABC):
33
+ class SupervisorSetup(Abstract):
32
34
  @abc.abstractmethod
33
35
  def setup(self) -> None:
34
36
  raise NotImplementedError
@@ -11,6 +11,9 @@ from .utils.signals import SignalReceiver
11
11
  from .utils.signals import sig_name
12
12
 
13
13
 
14
+ ##
15
+
16
+
14
17
  class SignalHandler:
15
18
  def __init__(
16
19
  self,
@@ -8,6 +8,9 @@ from .types import Process
8
8
  from .utils.ostypes import Pid
9
9
 
10
10
 
11
+ ##
12
+
13
+
11
14
  @dc.dataclass(frozen=True)
12
15
  class SpawnedProcess:
13
16
  pid: Pid
@@ -4,6 +4,7 @@ import functools
4
4
  import typing as ta
5
5
 
6
6
  from omlish.io.fdio.handlers import FdioHandler
7
+ from omlish.lite.abstract import Abstract
7
8
 
8
9
  from .configs import ProcessConfig
9
10
  from .configs import ProcessGroupConfig
@@ -33,7 +34,7 @@ ServerEpoch = ta.NewType('ServerEpoch', int)
33
34
 
34
35
 
35
36
  @functools.total_ordering
36
- class ConfigPriorityOrdered(abc.ABC):
37
+ class ConfigPriorityOrdered(Abstract):
37
38
  @property
38
39
  @abc.abstractmethod
39
40
  def config(self) -> ta.Any:
@@ -52,7 +53,7 @@ class ConfigPriorityOrdered(abc.ABC):
52
53
  ##
53
54
 
54
55
 
55
- class SupervisorStateManager(abc.ABC):
56
+ class SupervisorStateManager(Abstract):
56
57
  @property
57
58
  @abc.abstractmethod
58
59
  def state(self) -> SupervisorState:
@@ -66,13 +67,13 @@ class SupervisorStateManager(abc.ABC):
66
67
  ##
67
68
 
68
69
 
69
- class HasDispatchers(abc.ABC):
70
+ class HasDispatchers(Abstract):
70
71
  @abc.abstractmethod
71
72
  def get_dispatchers(self) -> 'Dispatchers':
72
73
  raise NotImplementedError
73
74
 
74
75
 
75
- class ProcessDispatcher(FdioHandler, abc.ABC):
76
+ class ProcessDispatcher(FdioHandler, Abstract):
76
77
  @property
77
78
  @abc.abstractmethod
78
79
  def channel(self) -> ProcessOutputChannel:
@@ -84,7 +85,7 @@ class ProcessDispatcher(FdioHandler, abc.ABC):
84
85
  raise NotImplementedError
85
86
 
86
87
 
87
- class ProcessOutputDispatcher(ProcessDispatcher, abc.ABC):
88
+ class ProcessOutputDispatcher(ProcessDispatcher, Abstract):
88
89
  @abc.abstractmethod
89
90
  def remove_logs(self) -> None:
90
91
  raise NotImplementedError
@@ -94,7 +95,7 @@ class ProcessOutputDispatcher(ProcessDispatcher, abc.ABC):
94
95
  raise NotImplementedError
95
96
 
96
97
 
97
- class ProcessInputDispatcher(ProcessDispatcher, abc.ABC):
98
+ class ProcessInputDispatcher(ProcessDispatcher, Abstract):
98
99
  @abc.abstractmethod
99
100
  def write(self, chars: ta.Union[bytes, str]) -> None:
100
101
  raise NotImplementedError
@@ -110,7 +111,7 @@ class ProcessInputDispatcher(ProcessDispatcher, abc.ABC):
110
111
  class Process(
111
112
  ConfigPriorityOrdered,
112
113
  HasDispatchers,
113
- abc.ABC,
114
+ Abstract,
114
115
  ):
115
116
  @property
116
117
  @abc.abstractmethod
@@ -166,7 +167,7 @@ class Process(
166
167
  class ProcessGroup(
167
168
  ConfigPriorityOrdered,
168
169
  KeyedCollectionAccessors[str, Process],
169
- abc.ABC,
170
+ Abstract,
170
171
  ):
171
172
  @property
172
173
  @abc.abstractmethod
@@ -2,12 +2,17 @@
2
2
  import abc
3
3
  import typing as ta
4
4
 
5
+ from omlish.lite.abstract import Abstract
6
+
5
7
 
6
8
  K = ta.TypeVar('K')
7
9
  V = ta.TypeVar('V')
8
10
 
9
11
 
10
- class KeyedCollectionAccessors(abc.ABC, ta.Generic[K, V]):
12
+ ##
13
+
14
+
15
+ class KeyedCollectionAccessors(Abstract, ta.Generic[K, V]):
11
16
  @property
12
17
  @abc.abstractmethod
13
18
  def _by_key(self) -> ta.Mapping[K, V]:
@@ -32,7 +37,7 @@ class KeyedCollectionAccessors(abc.ABC, ta.Generic[K, V]):
32
37
  return iter(self._by_key.items())
33
38
 
34
39
 
35
- class KeyedCollection(KeyedCollectionAccessors[K, V]):
40
+ class KeyedCollection(KeyedCollectionAccessors[K, V], Abstract):
36
41
  def __init__(self, items: ta.Iterable[V]) -> None:
37
42
  super().__init__()
38
43
 
@@ -4,6 +4,9 @@ import types
4
4
  import typing as ta
5
5
 
6
6
 
7
+ ##
8
+
9
+
7
10
  def compact_traceback() -> ta.Tuple[
8
11
  ta.Tuple[str, str, int],
9
12
  ta.Type[BaseException],
@@ -6,6 +6,9 @@ import typing as ta
6
6
  from .ostypes import Fd
7
7
 
8
8
 
9
+ ##
10
+
11
+
9
12
  class PipeFds(ta.NamedTuple):
10
13
  r: Fd
11
14
  w: Fd
@@ -4,6 +4,9 @@ import tempfile
4
4
  import typing as ta
5
5
 
6
6
 
7
+ ##
8
+
9
+
7
10
  def try_unlink(path: str) -> bool:
8
11
  try:
9
12
  os.unlink(path)
ominfra/threadworkers.py CHANGED
@@ -16,6 +16,7 @@ import threading
16
16
  import time
17
17
  import typing as ta
18
18
 
19
+ from omlish.lite.abstract import Abstract
19
20
  from omlish.lite.contextmanagers import ExitStacked
20
21
  from omlish.lite.logs import log
21
22
 
@@ -27,7 +28,7 @@ ThreadWorkerT = ta.TypeVar('ThreadWorkerT', bound='ThreadWorker')
27
28
  ##
28
29
 
29
30
 
30
- class ThreadWorker(ExitStacked, abc.ABC):
31
+ class ThreadWorker(ExitStacked, Abstract):
31
32
  def __init__(
32
33
  self,
33
34
  *,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ominfra
3
- Version: 0.0.0.dev420
3
+ Version: 0.0.0.dev421
4
4
  Summary: ominfra
5
5
  Author: wrmsr
6
6
  License-Expression: BSD-3-Clause
@@ -14,8 +14,8 @@ Classifier: Programming Language :: Python :: 3.13
14
14
  Requires-Python: >=3.13
15
15
  Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
- Requires-Dist: omdev==0.0.0.dev420
18
- Requires-Dist: omlish==0.0.0.dev420
17
+ Requires-Dist: omdev==0.0.0.dev421
18
+ Requires-Dist: omlish==0.0.0.dev421
19
19
  Provides-Extra: all
20
20
  Requires-Dist: paramiko~=4.0; extra == "all"
21
21
  Requires-Dist: asyncssh~=2.21; extra == "all"
@@ -3,7 +3,7 @@ ominfra/__about__.py,sha256=vHKd5RbDqb9vdcETBCcWeMkYqMNfJMdY_yFxtT3Hglw,705
3
3
  ominfra/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  ominfra/pyremote.py,sha256=hCoh0m-yxAoHOTB_tG8nwqq_CEXxIF0MTZ0A5eaZcSM,16529
5
5
  ominfra/systemd.py,sha256=-tk4qeQF9py98AtK5VVGYwcgQ_mJPanEWbemoU-nmbY,1028
6
- ominfra/threadworkers.py,sha256=We6wkoq-cd0DRAxS0z5bUXQKtSwwfcHNZqRuIU57doU,4980
6
+ ominfra/threadworkers.py,sha256=c9QymSCI5HC19wT6L_bDX2h28fAnYDNw3z6oNuRBtyY,5023
7
7
  ominfra/clouds/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
8
  ominfra/clouds/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  ominfra/clouds/aws/__main__.py,sha256=HXMoxEl9KHhv6zOOPQxiJAftfR2SjBqeVTYw-og9aFw,163
@@ -24,15 +24,15 @@ ominfra/clouds/aws/journald2aws/driver.py,sha256=ORr5ftUHKew4gQX-s-MUDoIPWI7m7eA
24
24
  ominfra/clouds/aws/journald2aws/main.py,sha256=SfRgPiYCllCHBWYy5T4e7ArqrsFb-xD4xLWBg1JH5EY,2184
25
25
  ominfra/clouds/aws/journald2aws/poster.py,sha256=P78uw1SOt8DyLDR2cAwhc4dAVryFjyiKeG0gKOgQ7pg,2845
26
26
  ominfra/clouds/aws/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
- ominfra/clouds/aws/models/base.py,sha256=0VtlcRo4kbjdIOqikTe_cegViBHqb-DoqJSw_8eQZC4,3777
27
+ ominfra/clouds/aws/models/base.py,sha256=0wZYeU3gyWNiplBAZrNdeh_eAE86bCHSj82tWxUiUOk,3764
28
28
  ominfra/clouds/aws/models/gen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
29
  ominfra/clouds/aws/models/gen/__main__.py,sha256=Jsrv3P7LX2Cg08W7ByZfZ1JQT4lgLDPW1qNAmShFuMk,75
30
30
  ominfra/clouds/aws/models/gen/cli.py,sha256=vcI8_-BOv4f-s_TFAqvnyzvBexZ_9y5akiUEGfioCqA,3857
31
31
  ominfra/clouds/aws/models/gen/gen.py,sha256=4pftOlyEIxDDoe73c5Z7NaJ1uhFsTBnMwmS1nlDiLOE,15903
32
32
  ominfra/clouds/aws/models/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
- ominfra/clouds/aws/models/services/ec2.py,sha256=tB6NW2B6RLM1x_0sKkeofn008_jdbVx6n5CSdDDZ5WA,278507
33
+ ominfra/clouds/aws/models/services/ec2.py,sha256=X98QUSf9ds7K_uUcvIvXcmcwUYqhYw95xXETDq-hIAE,280095
34
34
  ominfra/clouds/aws/models/services/lambda_.py,sha256=dp2I4ZVDb6Dci15XcjPPURUElyzH8cwhM911J_HM7Qo,25823
35
- ominfra/clouds/aws/models/services/rds.py,sha256=cYjqdM3Sm3F0qpxinA8A8ofXi_HZflK3epu_sog7LzQ,59759
35
+ ominfra/clouds/aws/models/services/rds.py,sha256=ziHgTwFZwl2FnyOyZMg3yJT_29-e0Z4RXBtWUaFfRr4,60108
36
36
  ominfra/clouds/aws/models/services/s3.py,sha256=aWbl4YtAiQyBfcNgerNxfWBIHZsbpFlT66JdRBYnQ9c,51426
37
37
  ominfra/clouds/aws/models/services/services.toml,sha256=njiWEctmUUrfzZh-aboCNP9BpYBpxGFAVaGvgtv3pMo,866
38
38
  ominfra/clouds/gcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -51,11 +51,11 @@ ominfra/manage/__main__.py,sha256=5IeIERm-371fSI5ZvPv8eldAJBwgKwpR0R49pTsILNM,76
51
51
  ominfra/manage/bootstrap.py,sha256=QMM7SWBzzI8AkeU_9NVJgpKS5TVPTeB_-6Q9i_2zjEo,457
52
52
  ominfra/manage/bootstrap_.py,sha256=3gb4VeM_5WGCXy6aEgXld8q8r43fMvA606ZOJqU1eu0,667
53
53
  ominfra/manage/config.py,sha256=HW0GPeFp9FDFp3sSuvpL4ntjOEP8XbNE1wZVMIpZNkg,195
54
- ominfra/manage/inject.py,sha256=LgDGyELPerQYR-zHJNigp5O--xY1EnPKPkG-GkfbVRk,2036
54
+ ominfra/manage/inject.py,sha256=tqbvdeiJEyH5s3M2kWpW_K0S9NxxvZuPtcDkx2iZlVw,2100
55
55
  ominfra/manage/main.py,sha256=eYWW51Ie9hGAA4F8r1zXEvkNYsuP43VTqtP8beltHnk,4458
56
56
  ominfra/manage/marshal.py,sha256=xIsqgtOJS_3m-byZRtZGKr7TVM5AjnmOB6euNCnXbAo,310
57
57
  ominfra/manage/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
- ominfra/manage/commands/base.py,sha256=8wXSlvihd4GBwYa05HZ9QD2-uiH7dUqEG0uP6flxuJQ,3999
58
+ ominfra/manage/commands/base.py,sha256=c5DduRUzK_AzSVxi4PV_6odDi-6rQtgaspluMMG5NN0,4037
59
59
  ominfra/manage/commands/inject.py,sha256=ixQVuKN808dTSqHp5V-MUIgDHw5jVei8BnEy-bE4tDY,2960
60
60
  ominfra/manage/commands/injection.py,sha256=6jVPO2mhaorVfe7vAv8EQQSkxgEZhu-NZHpK37JlKc0,846
61
61
  ominfra/manage/commands/local.py,sha256=dESeaFeQAiWMCx62wfaqbJlJF6kALKi6Fzy1M5H-H3A,543
@@ -75,77 +75,77 @@ ominfra/manage/deploy/interp.py,sha256=IRM-_r1PWtcrjennC02jbWF6xWsBhxDMQG_6bJ6o3
75
75
  ominfra/manage/deploy/nginx.py,sha256=L_1txY0z4HPAXjz9qkjwM8gT1X16zKCq77Nfp5_F79k,100
76
76
  ominfra/manage/deploy/specs.py,sha256=q3_tfzkVB6bXQ4cNobIRTYoSPFCUFAo_4R71nL9tPfE,2899
77
77
  ominfra/manage/deploy/systemd.py,sha256=5P8QTJ0Oa1PBDja8oljfmaQBetObS1bD9QkwsWNOiuc,3623
78
- ominfra/manage/deploy/tags.py,sha256=Z0uIbiEEGxWtqytMR6QyAquBDRtQBT0apNZB3kHj2Z4,5124
78
+ ominfra/manage/deploy/tags.py,sha256=2ASHDvEeqTHqIwsCRkhTSYmBrDaLXPMo-NXXJpIlxEQ,5130
79
79
  ominfra/manage/deploy/tmp.py,sha256=E-59X9KzV4wXXNr7J4_NbRX8N5EPOo7KL-hRw9pZ6yY,740
80
80
  ominfra/manage/deploy/types.py,sha256=ZcIoheZ3zW7n0IZiqTRW_Uo3JyWWeWg5nyKGryvGc2I,112
81
81
  ominfra/manage/deploy/venvs.py,sha256=QES260A0QbX1YIY7cXxFbSlzXcWGfH05cilZ3fEx0CE,1707
82
82
  ominfra/manage/deploy/conf/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
83
  ominfra/manage/deploy/conf/inject.py,sha256=MWN56HbSBK57WrU4nznJk4lJbQjM4NKwp6VhlKmiqac,464
84
84
  ominfra/manage/deploy/conf/manager.py,sha256=ktLS1sAuVVR0quevr3tEc77q6shGuAcBSmfYO4YHPEw,8328
85
- ominfra/manage/deploy/conf/specs.py,sha256=KwvppmSpAL-ieTk4zOF85wCJovMypAHTMv7daEvnahA,2197
85
+ ominfra/manage/deploy/conf/specs.py,sha256=DHGD1tyuLueeDu6cZJVbym6REDpLw4FqX8svTnGqwGQ,2221
86
86
  ominfra/manage/deploy/paths/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
87
  ominfra/manage/deploy/paths/inject.py,sha256=WZarL7SizE3GR1n1atHXeudBXd2A4R_2-w6iPWuXkG0,607
88
88
  ominfra/manage/deploy/paths/manager.py,sha256=RRgMPJ9gMrEFsU0Dezbls45M6kjmvKzAqRo9vmDWj-w,940
89
- ominfra/manage/deploy/paths/owners.py,sha256=Cb_80BBrsUo6Rm0tWTljjEScoCHL0PWbLGvWlvqBZl8,1240
90
- ominfra/manage/deploy/paths/paths.py,sha256=8_RVgHctv_Lj4v7FjxMDSXcayXaIo_CRMwhIBRUQ2iQ,5643
89
+ ominfra/manage/deploy/paths/owners.py,sha256=O5_szb9EGDIIJf2VSwLDdha0noG5L51ZPX_bTNiyKpM,1284
90
+ ominfra/manage/deploy/paths/paths.py,sha256=hmjkupg6ebhmVKBZCEsvSqs96Wa8qJ8pYh2atH5smsg,5680
91
91
  ominfra/manage/deploy/paths/specs.py,sha256=HDP1XLKHJx1NwpJZuGikirmkHoFPYHX6Myn_Vd03CVQ,255
92
92
  ominfra/manage/deploy/paths/types.py,sha256=WyQA5DlM5vKZnGXZouunuLTPl3KV7ktaez_sqoC5clY,118
93
93
  ominfra/manage/remote/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
94
  ominfra/manage/remote/_main.py,sha256=adFSJsa-_WidSwCAph2k6n2ai4Csw_9FhiFkusGsFcQ,4363
95
- ominfra/manage/remote/channel.py,sha256=6eYzQfmTRN4nvQyFOt37EKPjUQ10Bbu8d6Zq4cpWhNc,2230
95
+ ominfra/manage/remote/channel.py,sha256=FNHHWe57_iXCZFUYn1uMoJEeDyoNnm7cgqE2lwUOebY,2273
96
96
  ominfra/manage/remote/config.py,sha256=0tgfTJKa2Cy2nzl2j3allYyMIEsAwhIlF02v9ke-990,484
97
97
  ominfra/manage/remote/connection.py,sha256=vciH5wtzXN7g-B6hlR97m886YSflbnDASLUDjz5mq7Q,3807
98
- ominfra/manage/remote/execution.py,sha256=0r34APS4YYvUqWijBQa3HizoNJ5U9PAdu5L9mSHPrsE,11744
98
+ ominfra/manage/remote/execution.py,sha256=pF2yIaHaXGE_A044Q6Q95aFKWjyXE-FeQ2DDehzsU54,11754
99
99
  ominfra/manage/remote/inject.py,sha256=SJ7rgcjkKi2JbXm_3SWEXzz7kY5zOms3KRrTlm6ZYv0,1091
100
100
  ominfra/manage/remote/payload.py,sha256=QVNz7bBBWKLdXPuIGfQ0FW1rWE8nrBEE5Q9cLgF8FwU,955
101
- ominfra/manage/remote/spawning.py,sha256=jjReGjsW4MWq5wecrPBLg-4leCVeris04HvctWTnegA,3318
101
+ ominfra/manage/remote/spawning.py,sha256=2V15yubZf1Dngs2eR3RerAT70Cd3OmLdq_JFvBL57c0,3361
102
102
  ominfra/manage/system/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
103
103
  ominfra/manage/system/commands.py,sha256=VN-nthJB4LYwsDvPNmc_mYe4XyWnStAi7SLZGaEPZCA,1179
104
104
  ominfra/manage/system/config.py,sha256=Ql-kCV4BVsgmMh08SrxJ7YW-BCLviOJM-cpoZ2gBIL0,207
105
105
  ominfra/manage/system/inject.py,sha256=i1yCAnmhN_mUe9CY2YdNT0GBipo7WED_vncWbZFvF3c,1885
106
- ominfra/manage/system/packages.py,sha256=xe_JNv5rTPlqKGfkiB9iDmH-bAEdvQ0yeFiY6mPVTKc,4641
107
- ominfra/manage/system/platforms.py,sha256=F0bgYzUzCjZ2LbWVvnEq2ya_X_LfRW406LQYFL7bG44,1202
106
+ ominfra/manage/system/packages.py,sha256=GJLcBCEL0w1TmAUqUd8sGSSoU4Kb5Q1wDbVbX7i6FrM,4684
107
+ ominfra/manage/system/platforms.py,sha256=o9Cf1vABqQajeCp9rIlmx-PcHM1nhM_JxIJ3DHlSWLs,1227
108
108
  ominfra/manage/targets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
109
109
  ominfra/manage/targets/bestpython.py,sha256=nzTt6ssuhKPmKSMTt_Vrlx6mIUEAx7T-DsP_MJCiDVM,636
110
110
  ominfra/manage/targets/bestpython.sh,sha256=RTvImgsRv-67D9Ugg5bo7NfpV2MD8zTsLt6aipdLQiQ,350
111
- ominfra/manage/targets/connection.py,sha256=Ut-R_PvQN9tPBacZD0ODmLIYvLsgS51qvOGrNgAyiEo,5028
111
+ ominfra/manage/targets/connection.py,sha256=mOHCsDVG-DZBhl3Mb7TTr1vhPb0gxDOOMW1xhD1ImiE,5071
112
112
  ominfra/manage/targets/inject.py,sha256=3M4wBkxtvymq_yhiotHlTN8iydELMjVCndyp9Bq-4eo,1572
113
- ominfra/manage/targets/targets.py,sha256=WmasYmL6xfAI7F0XvDhScFdBVxkqPkmo_gRgABmmkGA,1891
113
+ ominfra/manage/targets/targets.py,sha256=LjSQrDsHEjEQMDHcxtNKmLjy0YGLXJRGPFdUjazzFIM,1918
114
114
  ominfra/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
115
- ominfra/scripts/journald2aws.py,sha256=RlrTK5M3XoqzWU7v01J67rl-qZq6_mOWlRay7k0gzWE,174194
116
- ominfra/scripts/manage.py,sha256=nqnuKyL7IkH0iu4ycuJjKXwha7UYgpNBeu9OSLQlGS4,397117
117
- ominfra/scripts/supervisor.py,sha256=YUx_3RmUqkWFQ8PswnZukIESfZKvS6PUSZI43siErjc,306712
115
+ ominfra/scripts/journald2aws.py,sha256=80xCMPV4b5FBfqUGcJHRVgJhD0g3jTJnkWMyRjOF0bk,182585
116
+ ominfra/scripts/manage.py,sha256=PH83ehCZR_Uh26IAtXvcHvUGTqPZNKFrKd90o5gO9kU,405439
117
+ ominfra/scripts/supervisor.py,sha256=fvEBANHEKcFO3F5CTjCdgLXhxFsPvXvgLMhW8Sd68BE,315127
118
118
  ominfra/supervisor/LICENSE.txt,sha256=ZrHY15PVR98y26Yg6iQfa-SXnUaYTDhrUsPVcEO5OKM,1874
119
119
  ominfra/supervisor/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
120
120
  ominfra/supervisor/__main__.py,sha256=I0yFw-C08OOiZ3BF6lF1Oiv789EQXu-_j6whDhQUTEA,66
121
121
  ominfra/supervisor/configs.py,sha256=BD7kaFXSRjXLawTtISC80qv16tKsSjXuXftMucdcfng,13821
122
- ominfra/supervisor/dispatchers.py,sha256=IqsEO-l0UaZK5tRrsDvgl-5eQNj6wPdY3MPv-kHvQ10,1011
123
- ominfra/supervisor/dispatchersimpl.py,sha256=B7TWHkqa9B07mEd4vu0R95JfUUfVMb990-MOhe8IVtc,11355
122
+ ominfra/supervisor/dispatchers.py,sha256=Lj1rmvB3yihMHfVF1gd5ZdZVxHECBquXGhRYWFv3Mz8,1016
123
+ ominfra/supervisor/dispatchersimpl.py,sha256=ETunKO10Q01hy3E9Gevt-dtjrhAivkb20fRFcGK3YYk,11392
124
124
  ominfra/supervisor/errors.py,sha256=Qbu211H3CLlSmi9LsSikOwrcL5HgJP9ugvcKWlGTAoI,750
125
- ominfra/supervisor/events.py,sha256=fcpzUDQ7F9yP3NMEvUVqmy-1IcNZ7AomkHEqc1Z9L40,6705
126
- ominfra/supervisor/groups.py,sha256=vx8X1LL-I9QHykWZaVvttfdinSZlo4sFHx3QfCROikk,2463
127
- ominfra/supervisor/groupsimpl.py,sha256=AP-Qlt8ebmTx9463KBtxYxq_N7l0l2lxxJJ6A5ZqvxA,2287
125
+ ominfra/supervisor/events.py,sha256=d7m6Z5Jmg-hmnJmCwS1x1WAkXqVhgEGDjeE08ms3MjQ,6747
126
+ ominfra/supervisor/groups.py,sha256=C5J52KpTH2QSZbjoVZ4Ka28ZkrlBE_CCESvlTfxmg-E,2468
127
+ ominfra/supervisor/groupsimpl.py,sha256=3Y64j-UuuwX-0kCgUvNzct01oDHUU4Bc5aMYr8TpeOk,2292
128
128
  ominfra/supervisor/http.py,sha256=T1XKDu6viNqEYrj87eDzN5ubMyttUlxZ9MX6HxIcsZM,3462
129
- ominfra/supervisor/inject.py,sha256=AnQSI5J75RF7QnXh6Nyi6eqLBtnGpYox4cniXNvY21U,4837
129
+ ominfra/supervisor/inject.py,sha256=5yCj3VBcj7ke3ZdU6WZCJ2jPOHAXLJw9anvix013vPw,4842
130
130
  ominfra/supervisor/io.py,sha256=9xN_2bPf2XLOaIRbyi2Dng2yz4L0aEfUqPAPbm5ZXc4,3204
131
131
  ominfra/supervisor/main.py,sha256=IjWvVm9_MBJ5lJkgjlv6Ts5647M5zMTt5A3yMonHEFI,4394
132
- ominfra/supervisor/pipes.py,sha256=txKr0tnlw4HsGlcCgstm4C4W2k4CNnw96tB1mLbYvSQ,2237
133
- ominfra/supervisor/privileges.py,sha256=U553jtbWk9480hDzpSEQ54K7ZqRNYH70u0XPLDdIl9Y,2060
132
+ ominfra/supervisor/pipes.py,sha256=LtlbmIra0KhFScp-ODalaw6U5Um2iJS2ROl6W8YNgGc,2242
133
+ ominfra/supervisor/privileges.py,sha256=m5tsuhqy8hBI0G-wxtjztussOP2GQyxi7xlT4TDYT4Q,2065
134
134
  ominfra/supervisor/process.py,sha256=rTHh4gA0Mqko1YIPn56N_tAlCLHHHzHYIUKoecDHsds,223
135
135
  ominfra/supervisor/processimpl.py,sha256=QtKYFA5xc7oTNUFgpN_aEvWFE8G9uoEiJtQYenPDVhM,18730
136
- ominfra/supervisor/setup.py,sha256=l-4WJRh7WYg0iuHv_wi2dVH9HMacyIyUshtdRMbA2Dg,628
136
+ ominfra/supervisor/setup.py,sha256=suiBfA-o3z7x6hqsEJjdkkmTO-dT_AE1yOsRcIWrakE,665
137
137
  ominfra/supervisor/setupimpl.py,sha256=cvhjuyIbVp-VYKXnzCAGh4OzABEF64Af5qFIlK9lbiM,9637
138
- ominfra/supervisor/signals.py,sha256=0YZsFg_0SxGQQ5o4ARL8ertmS5NvBfg_eGMWEdoTuGw,2202
139
- ominfra/supervisor/spawning.py,sha256=Io5bT_rYUl4g7HxhP49wYF6bBccoX3gZUS3PMc9Rppo,628
138
+ ominfra/supervisor/signals.py,sha256=w8KMUQzajjhD4VFatcgcvv8ZCdq3gEid8DgPdOS0P5k,2207
139
+ ominfra/supervisor/spawning.py,sha256=E0EP7LBgPx5e998GPypxQVZqo0CbUdmIgmutTZvbCDc,633
140
140
  ominfra/supervisor/spawningimpl.py,sha256=EqL1DjOU3G5C2Z8hB87oye1hkY-GgH1bT4m9QmtMhYs,11090
141
141
  ominfra/supervisor/states.py,sha256=x1trJQbItkSegOmotpn5YNcZMLbBL8I3GmhvFCQl4Oo,1400
142
142
  ominfra/supervisor/supervisor.py,sha256=QK4v6bV5iOmNEs7KvlSR_6SFyQqryGNLQfuhzjcCC3A,8175
143
- ominfra/supervisor/types.py,sha256=oNfEnm7r09GIvyUyp0noOH4gJMtnR5OzQyjabqeB8M0,4070
143
+ ominfra/supervisor/types.py,sha256=la9VhauhO1TinAcWZQj4cqs9J3U3V85mtBdry0ehVXE,4120
144
144
  ominfra/supervisor/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
145
- ominfra/supervisor/utils/collections.py,sha256=i_0ub93M5DVot50jLgMtqlNoGAd88BTWpbx5S9BJpbU,1367
146
- ominfra/supervisor/utils/diag.py,sha256=QQ68ApJY1v8LjRUu84HNiXH54geHozesuDK_b7W7kzk,711
147
- ominfra/supervisor/utils/fds.py,sha256=G-dOn3leQmG_di_7aJABogyTmUO5FGPKyCD5_xJRw24,855
148
- ominfra/supervisor/utils/fs.py,sha256=CSAbLLPjZ9QyxgTt0NdP8AhnHuph4taHLgirUnBV7lo,1161
145
+ ominfra/supervisor/utils/collections.py,sha256=5tb2iOq2_f9kj3PHLRMlaVV4T28dE2dljGx1zvxDdIQ,1426
146
+ ominfra/supervisor/utils/diag.py,sha256=NnzrLwuoCSgf16KalBHv-NEKADEn2I18S0nsbIOhYiY,716
147
+ ominfra/supervisor/utils/fds.py,sha256=VOZBF8h42s3NWIhKDUce4lSmRwgwiQC1gTYBcY30Lx4,860
148
+ ominfra/supervisor/utils/fs.py,sha256=UhKbW1NBkeSMxDuJgMjOReUtB9vfeWqVg8y4t6mylq4,1166
149
149
  ominfra/supervisor/utils/os.py,sha256=g0nLnQRn4ftY1Ko7Ee54ppT7vnLIwYTp2D0wa6ZqilM,2405
150
150
  ominfra/supervisor/utils/ostypes.py,sha256=B7VjwbzVesz9we9MztoSk8bH8sTxMIWtILy_Qde0G7w,164
151
151
  ominfra/supervisor/utils/signals.py,sha256=mJ108cXHK-f1DETEhoFEpc5coGAJ3OO1kuxtrksYDro,1480
@@ -156,9 +156,9 @@ ominfra/tailscale/api.py,sha256=XASv9C_CWI-u-yX5jVzhJrkJhlwQRkYQWQQG1uJwAd8,1375
156
156
  ominfra/tailscale/cli.py,sha256=zRV7-tKB7kBah1oTVZlol-vwx1FBlnfzYAPGkeU5jX4,3543
157
157
  ominfra/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
158
158
  ominfra/tools/listresources.py,sha256=ePmo7cUAiBZARkM_3K4GKYZXxV73An_aioS1m-AAJis,6181
159
- ominfra-0.0.0.dev420.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
160
- ominfra-0.0.0.dev420.dist-info/METADATA,sha256=F4gLi2KyGacO3BZcq0ZbBAWLu1Lg8FgByCVcg545GBY,2377
161
- ominfra-0.0.0.dev420.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
162
- ominfra-0.0.0.dev420.dist-info/entry_points.txt,sha256=kgecQ2MgGrM9qK744BoKS3tMesaC3yjLnl9pa5CRczg,37
163
- ominfra-0.0.0.dev420.dist-info/top_level.txt,sha256=E-b2OHkk_AOBLXHYZQ2EOFKl-_6uOGd8EjeG-Zy6h_w,8
164
- ominfra-0.0.0.dev420.dist-info/RECORD,,
159
+ ominfra-0.0.0.dev421.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
160
+ ominfra-0.0.0.dev421.dist-info/METADATA,sha256=mtsa9ZcuSSXhdaYOec2Cm0vmzkRTQkSkhcvV6HaFCaQ,2377
161
+ ominfra-0.0.0.dev421.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
162
+ ominfra-0.0.0.dev421.dist-info/entry_points.txt,sha256=kgecQ2MgGrM9qK744BoKS3tMesaC3yjLnl9pa5CRczg,37
163
+ ominfra-0.0.0.dev421.dist-info/top_level.txt,sha256=E-b2OHkk_AOBLXHYZQ2EOFKl-_6uOGd8EjeG-Zy6h_w,8
164
+ ominfra-0.0.0.dev421.dist-info/RECORD,,