ominfra 0.0.0.dev178__py3-none-any.whl → 0.0.0.dev180__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/clouds/aws/cli.py +1 -1
- ominfra/manage/deploy/driver.py +7 -16
- ominfra/manage/deploy/inject.py +53 -19
- ominfra/manage/deploy/interp.py +2 -2
- ominfra/manage/deploy/venvs.py +2 -2
- ominfra/manage/main.py +2 -2
- ominfra/manage/remote/spawning.py +1 -1
- ominfra/scripts/manage.py +1001 -866
- ominfra/scripts/supervisor.py +111 -104
- ominfra/supervisor/http.py +1 -1
- ominfra/systemd.py +18 -0
- ominfra/tailscale/cli.py +4 -4
- {ominfra-0.0.0.dev178.dist-info → ominfra-0.0.0.dev180.dist-info}/METADATA +3 -3
- {ominfra-0.0.0.dev178.dist-info → ominfra-0.0.0.dev180.dist-info}/RECORD +18 -17
- {ominfra-0.0.0.dev178.dist-info → ominfra-0.0.0.dev180.dist-info}/LICENSE +0 -0
- {ominfra-0.0.0.dev178.dist-info → ominfra-0.0.0.dev180.dist-info}/WHEEL +0 -0
- {ominfra-0.0.0.dev178.dist-info → ominfra-0.0.0.dev180.dist-info}/entry_points.txt +0 -0
- {ominfra-0.0.0.dev178.dist-info → ominfra-0.0.0.dev180.dist-info}/top_level.txt +0 -0
ominfra/scripts/supervisor.py
CHANGED
@@ -113,15 +113,14 @@ CheckOnRaiseFn = ta.Callable[[Exception], None] # ta.TypeAlias
|
|
113
113
|
CheckExceptionFactory = ta.Callable[..., Exception] # ta.TypeAlias
|
114
114
|
CheckArgsRenderer = ta.Callable[..., ta.Optional[str]] # ta.TypeAlias
|
115
115
|
|
116
|
-
# ../../omlish/lite/socket.py
|
117
|
-
SocketAddress = ta.Any
|
118
|
-
SocketHandlerFactory = ta.Callable[[SocketAddress, ta.BinaryIO, ta.BinaryIO], 'SocketHandler']
|
119
|
-
|
120
116
|
# ../../omlish/lite/typing.py
|
121
117
|
A0 = ta.TypeVar('A0')
|
122
118
|
A1 = ta.TypeVar('A1')
|
123
119
|
A2 = ta.TypeVar('A2')
|
124
120
|
|
121
|
+
# ../../omlish/sockets/addresses.py
|
122
|
+
SocketAddress = ta.Any
|
123
|
+
|
125
124
|
# events.py
|
126
125
|
EventCallback = ta.Callable[['Event'], None]
|
127
126
|
ProcessOutputChannel = ta.Literal['stdout', 'stderr'] # ta.TypeAlias
|
@@ -139,6 +138,9 @@ InjectorProviderFn = ta.Callable[['Injector'], ta.Any]
|
|
139
138
|
InjectorProviderFnMap = ta.Mapping['InjectorKey', 'InjectorProviderFn']
|
140
139
|
InjectorBindingOrBindings = ta.Union['InjectorBinding', 'InjectorBindings']
|
141
140
|
|
141
|
+
# ../../omlish/sockets/handlers.py
|
142
|
+
SocketHandlerFactory = ta.Callable[[SocketAddress, ta.BinaryIO, ta.BinaryIO], 'SocketHandler']
|
143
|
+
|
142
144
|
# ../configs.py
|
143
145
|
ConfigMapping = ta.Mapping[str, ta.Any]
|
144
146
|
|
@@ -2344,76 +2346,6 @@ def deep_subclasses(cls: ta.Type[T]) -> ta.Iterator[ta.Type[T]]:
|
|
2344
2346
|
todo.extend(reversed(cur.__subclasses__()))
|
2345
2347
|
|
2346
2348
|
|
2347
|
-
########################################
|
2348
|
-
# ../../../omlish/lite/socket.py
|
2349
|
-
"""
|
2350
|
-
TODO:
|
2351
|
-
- SocketClientAddress family / tuple pairs
|
2352
|
-
+ codification of https://docs.python.org/3/library/socket.html#socket-families
|
2353
|
-
"""
|
2354
|
-
|
2355
|
-
|
2356
|
-
##
|
2357
|
-
|
2358
|
-
|
2359
|
-
@dc.dataclass(frozen=True)
|
2360
|
-
class SocketAddressInfoArgs:
|
2361
|
-
host: ta.Optional[str]
|
2362
|
-
port: ta.Union[str, int, None]
|
2363
|
-
family: socket.AddressFamily = socket.AddressFamily.AF_UNSPEC
|
2364
|
-
type: int = 0
|
2365
|
-
proto: int = 0
|
2366
|
-
flags: socket.AddressInfo = socket.AddressInfo(0)
|
2367
|
-
|
2368
|
-
|
2369
|
-
@dc.dataclass(frozen=True)
|
2370
|
-
class SocketAddressInfo:
|
2371
|
-
family: socket.AddressFamily
|
2372
|
-
type: int
|
2373
|
-
proto: int
|
2374
|
-
canonname: ta.Optional[str]
|
2375
|
-
sockaddr: SocketAddress
|
2376
|
-
|
2377
|
-
|
2378
|
-
def get_best_socket_family(
|
2379
|
-
host: ta.Optional[str],
|
2380
|
-
port: ta.Union[str, int, None],
|
2381
|
-
family: ta.Union[int, socket.AddressFamily] = socket.AddressFamily.AF_UNSPEC,
|
2382
|
-
) -> ta.Tuple[socket.AddressFamily, SocketAddress]:
|
2383
|
-
"""https://github.com/python/cpython/commit/f289084c83190cc72db4a70c58f007ec62e75247"""
|
2384
|
-
|
2385
|
-
infos = socket.getaddrinfo(
|
2386
|
-
host,
|
2387
|
-
port,
|
2388
|
-
family,
|
2389
|
-
type=socket.SOCK_STREAM,
|
2390
|
-
flags=socket.AI_PASSIVE,
|
2391
|
-
)
|
2392
|
-
ai = SocketAddressInfo(*next(iter(infos)))
|
2393
|
-
return ai.family, ai.sockaddr
|
2394
|
-
|
2395
|
-
|
2396
|
-
##
|
2397
|
-
|
2398
|
-
|
2399
|
-
class SocketHandler(abc.ABC):
|
2400
|
-
def __init__(
|
2401
|
-
self,
|
2402
|
-
client_address: SocketAddress,
|
2403
|
-
rfile: ta.BinaryIO,
|
2404
|
-
wfile: ta.BinaryIO,
|
2405
|
-
) -> None:
|
2406
|
-
super().__init__()
|
2407
|
-
|
2408
|
-
self._client_address = client_address
|
2409
|
-
self._rfile = rfile
|
2410
|
-
self._wfile = wfile
|
2411
|
-
|
2412
|
-
@abc.abstractmethod
|
2413
|
-
def handle(self) -> None:
|
2414
|
-
raise NotImplementedError
|
2415
|
-
|
2416
|
-
|
2417
2349
|
########################################
|
2418
2350
|
# ../../../omlish/lite/strings.py
|
2419
2351
|
|
@@ -2670,6 +2602,55 @@ class ProxyLogHandler(ProxyLogFilterer, logging.Handler):
|
|
2670
2602
|
self._underlying.handleError(record)
|
2671
2603
|
|
2672
2604
|
|
2605
|
+
########################################
|
2606
|
+
# ../../../omlish/sockets/addresses.py
|
2607
|
+
"""
|
2608
|
+
TODO:
|
2609
|
+
- SocketClientAddress family / tuple pairs
|
2610
|
+
+ codification of https://docs.python.org/3/library/socket.html#socket-families
|
2611
|
+
"""
|
2612
|
+
|
2613
|
+
|
2614
|
+
##
|
2615
|
+
|
2616
|
+
|
2617
|
+
@dc.dataclass(frozen=True)
|
2618
|
+
class SocketAddressInfoArgs:
|
2619
|
+
host: ta.Optional[str]
|
2620
|
+
port: ta.Union[str, int, None]
|
2621
|
+
family: socket.AddressFamily = socket.AddressFamily.AF_UNSPEC
|
2622
|
+
type: int = 0
|
2623
|
+
proto: int = 0
|
2624
|
+
flags: socket.AddressInfo = socket.AddressInfo(0)
|
2625
|
+
|
2626
|
+
|
2627
|
+
@dc.dataclass(frozen=True)
|
2628
|
+
class SocketAddressInfo:
|
2629
|
+
family: socket.AddressFamily
|
2630
|
+
type: int
|
2631
|
+
proto: int
|
2632
|
+
canonname: ta.Optional[str]
|
2633
|
+
sockaddr: SocketAddress
|
2634
|
+
|
2635
|
+
|
2636
|
+
def get_best_socket_family(
|
2637
|
+
host: ta.Optional[str],
|
2638
|
+
port: ta.Union[str, int, None],
|
2639
|
+
family: ta.Union[int, socket.AddressFamily] = socket.AddressFamily.AF_UNSPEC,
|
2640
|
+
) -> ta.Tuple[socket.AddressFamily, SocketAddress]:
|
2641
|
+
"""https://github.com/python/cpython/commit/f289084c83190cc72db4a70c58f007ec62e75247"""
|
2642
|
+
|
2643
|
+
infos = socket.getaddrinfo(
|
2644
|
+
host,
|
2645
|
+
port,
|
2646
|
+
family,
|
2647
|
+
type=socket.SOCK_STREAM,
|
2648
|
+
flags=socket.AI_PASSIVE,
|
2649
|
+
)
|
2650
|
+
ai = SocketAddressInfo(*next(iter(infos)))
|
2651
|
+
return ai.family, ai.sockaddr
|
2652
|
+
|
2653
|
+
|
2673
2654
|
########################################
|
2674
2655
|
# ../events.py
|
2675
2656
|
|
@@ -4291,30 +4272,6 @@ def as_injector_bindings(*args: InjectorBindingOrBindings) -> InjectorBindings:
|
|
4291
4272
|
##
|
4292
4273
|
|
4293
4274
|
|
4294
|
-
@dc.dataclass(frozen=True)
|
4295
|
-
class OverridesInjectorBindings(InjectorBindings):
|
4296
|
-
p: InjectorBindings
|
4297
|
-
m: ta.Mapping[InjectorKey, InjectorBinding]
|
4298
|
-
|
4299
|
-
def bindings(self) -> ta.Iterator[InjectorBinding]:
|
4300
|
-
for b in self.p.bindings():
|
4301
|
-
yield self.m.get(b.key, b)
|
4302
|
-
|
4303
|
-
|
4304
|
-
def injector_override(p: InjectorBindings, *args: InjectorBindingOrBindings) -> InjectorBindings:
|
4305
|
-
m: ta.Dict[InjectorKey, InjectorBinding] = {}
|
4306
|
-
|
4307
|
-
for b in as_injector_bindings(*args).bindings():
|
4308
|
-
if b.key in m:
|
4309
|
-
raise DuplicateInjectorKeyError(b.key)
|
4310
|
-
m[b.key] = b
|
4311
|
-
|
4312
|
-
return OverridesInjectorBindings(p, m)
|
4313
|
-
|
4314
|
-
|
4315
|
-
##
|
4316
|
-
|
4317
|
-
|
4318
4275
|
def build_injector_provider_map(bs: InjectorBindings) -> ta.Mapping[InjectorKey, InjectorProvider]:
|
4319
4276
|
pm: ta.Dict[InjectorKey, InjectorProvider] = {}
|
4320
4277
|
am: ta.Dict[InjectorKey, ta.List[InjectorProvider]] = {}
|
@@ -4338,6 +4295,31 @@ def build_injector_provider_map(bs: InjectorBindings) -> ta.Mapping[InjectorKey,
|
|
4338
4295
|
return pm
|
4339
4296
|
|
4340
4297
|
|
4298
|
+
###
|
4299
|
+
# overrides
|
4300
|
+
|
4301
|
+
|
4302
|
+
@dc.dataclass(frozen=True)
|
4303
|
+
class OverridesInjectorBindings(InjectorBindings):
|
4304
|
+
p: InjectorBindings
|
4305
|
+
m: ta.Mapping[InjectorKey, InjectorBinding]
|
4306
|
+
|
4307
|
+
def bindings(self) -> ta.Iterator[InjectorBinding]:
|
4308
|
+
for b in self.p.bindings():
|
4309
|
+
yield self.m.get(b.key, b)
|
4310
|
+
|
4311
|
+
|
4312
|
+
def injector_override(p: InjectorBindings, *args: InjectorBindingOrBindings) -> InjectorBindings:
|
4313
|
+
m: ta.Dict[InjectorKey, InjectorBinding] = {}
|
4314
|
+
|
4315
|
+
for b in as_injector_bindings(*args).bindings():
|
4316
|
+
if b.key in m:
|
4317
|
+
raise DuplicateInjectorKeyError(b.key)
|
4318
|
+
m[b.key] = b
|
4319
|
+
|
4320
|
+
return OverridesInjectorBindings(p, m)
|
4321
|
+
|
4322
|
+
|
4341
4323
|
###
|
4342
4324
|
# scopes
|
4343
4325
|
|
@@ -4362,7 +4344,7 @@ class InjectorScope(abc.ABC): # noqa
|
|
4362
4344
|
@dc.dataclass(frozen=True)
|
4363
4345
|
class State:
|
4364
4346
|
seeds: ta.Dict[InjectorKey, ta.Any]
|
4365
|
-
|
4347
|
+
provisions: ta.Dict[InjectorKey, ta.Any] = dc.field(default_factory=dict)
|
4366
4348
|
|
4367
4349
|
def new_state(self, vs: ta.Mapping[InjectorKey, ta.Any]) -> State:
|
4368
4350
|
vs = dict(vs)
|
@@ -4442,11 +4424,11 @@ class ScopedInjectorProvider(InjectorProvider):
|
|
4442
4424
|
def pfn(i: Injector) -> ta.Any:
|
4443
4425
|
st = i[self.sc].state()
|
4444
4426
|
try:
|
4445
|
-
return st.
|
4427
|
+
return st.provisions[self.k]
|
4446
4428
|
except KeyError:
|
4447
4429
|
pass
|
4448
4430
|
v = ufn(i)
|
4449
|
-
st.
|
4431
|
+
st.provisions[self.k] = v
|
4450
4432
|
return v
|
4451
4433
|
|
4452
4434
|
ufn = self.p.provider_fn()
|
@@ -4470,9 +4452,7 @@ class _ScopeSeedInjectorProvider(InjectorProvider):
|
|
4470
4452
|
|
4471
4453
|
|
4472
4454
|
def bind_injector_scope(sc: ta.Type[InjectorScope]) -> InjectorBindingOrBindings:
|
4473
|
-
return
|
4474
|
-
InjectorBinder.bind(sc, singleton=True),
|
4475
|
-
)
|
4455
|
+
return InjectorBinder.bind(sc, singleton=True)
|
4476
4456
|
|
4477
4457
|
|
4478
4458
|
#
|
@@ -5012,6 +4992,8 @@ class InjectionApi:
|
|
5012
4992
|
def as_bindings(self, *args: InjectorBindingOrBindings) -> InjectorBindings:
|
5013
4993
|
return as_injector_bindings(*args)
|
5014
4994
|
|
4995
|
+
# overrides
|
4996
|
+
|
5015
4997
|
def override(self, p: InjectorBindings, *args: InjectorBindingOrBindings) -> InjectorBindings:
|
5016
4998
|
return injector_override(p, *args)
|
5017
4999
|
|
@@ -5828,6 +5810,31 @@ def journald_log_handler_factory(
|
|
5828
5810
|
return logging.StreamHandler()
|
5829
5811
|
|
5830
5812
|
|
5813
|
+
########################################
|
5814
|
+
# ../../../omlish/sockets/handlers.py
|
5815
|
+
|
5816
|
+
|
5817
|
+
##
|
5818
|
+
|
5819
|
+
|
5820
|
+
class SocketHandler(abc.ABC):
|
5821
|
+
def __init__(
|
5822
|
+
self,
|
5823
|
+
client_address: SocketAddress,
|
5824
|
+
rfile: ta.BinaryIO,
|
5825
|
+
wfile: ta.BinaryIO,
|
5826
|
+
) -> None:
|
5827
|
+
super().__init__()
|
5828
|
+
|
5829
|
+
self._client_address = client_address
|
5830
|
+
self._rfile = rfile
|
5831
|
+
self._wfile = wfile
|
5832
|
+
|
5833
|
+
@abc.abstractmethod
|
5834
|
+
def handle(self) -> None:
|
5835
|
+
raise NotImplementedError
|
5836
|
+
|
5837
|
+
|
5831
5838
|
########################################
|
5832
5839
|
# ../../configs.py
|
5833
5840
|
|
ominfra/supervisor/http.py
CHANGED
@@ -12,7 +12,7 @@ from omlish.io.fdio.handlers import SocketFdioHandler
|
|
12
12
|
from omlish.lite.check import check
|
13
13
|
from omlish.lite.contextmanagers import defer
|
14
14
|
from omlish.lite.json import JSON_PRETTY_KWARGS
|
15
|
-
from omlish.
|
15
|
+
from omlish.sockets.addresses import SocketAddress
|
16
16
|
|
17
17
|
from .dispatchers import Dispatchers
|
18
18
|
from .groups import ProcessGroupManager
|
ominfra/systemd.py
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# @omlish-lite
|
2
|
+
import io
|
3
|
+
import typing as ta
|
4
|
+
|
5
|
+
|
6
|
+
def render_systemd_unit(settings_by_section: ta.Mapping[str, ta.Mapping[str, str]]) -> str:
|
7
|
+
out = io.StringIO()
|
8
|
+
|
9
|
+
for i, (section, settings) in enumerate(settings_by_section.items()):
|
10
|
+
if i:
|
11
|
+
out.write('\n')
|
12
|
+
|
13
|
+
out.write(f'[{section}]\n')
|
14
|
+
|
15
|
+
for k, v in settings.items():
|
16
|
+
out.write(f'{k}={v}\n')
|
17
|
+
|
18
|
+
return out.getvalue()
|
ominfra/tailscale/cli.py
CHANGED
@@ -72,7 +72,7 @@ class Cli(ap.Cli):
|
|
72
72
|
else:
|
73
73
|
return 'tailscale'
|
74
74
|
|
75
|
-
@ap.
|
75
|
+
@ap.cmd(name='bin')
|
76
76
|
def bin_cmd(self) -> None:
|
77
77
|
print(self.bin())
|
78
78
|
|
@@ -84,7 +84,7 @@ class Cli(ap.Cli):
|
|
84
84
|
])
|
85
85
|
return msh.unmarshal(json.loads(stdout.decode()), CliStatus)
|
86
86
|
|
87
|
-
@ap.
|
87
|
+
@ap.cmd(
|
88
88
|
ap.arg('name', nargs='?'),
|
89
89
|
name='status',
|
90
90
|
)
|
@@ -97,14 +97,14 @@ class Cli(ap.Cli):
|
|
97
97
|
out = status
|
98
98
|
print(json.dumps_pretty(msh.marshal(out)))
|
99
99
|
|
100
|
-
@ap.
|
100
|
+
@ap.cmd()
|
101
101
|
def ips(self) -> None:
|
102
102
|
print(json.dumps_pretty({
|
103
103
|
hn: node.ipv4s
|
104
104
|
for hn, node in self.status().nodes_by_host_name.items()
|
105
105
|
}))
|
106
106
|
|
107
|
-
@ap.
|
107
|
+
@ap.cmd(
|
108
108
|
ap.arg('name', nargs='?'),
|
109
109
|
)
|
110
110
|
def ip(self) -> 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.dev180
|
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.
|
16
|
-
Requires-Dist: omlish==0.0.0.
|
15
|
+
Requires-Dist: omdev==0.0.0.dev180
|
16
|
+
Requires-Dist: omlish==0.0.0.dev180
|
17
17
|
Provides-Extra: all
|
18
18
|
Requires-Dist: paramiko~=3.5; extra == "all"
|
19
19
|
Requires-Dist: asyncssh~=2.18; extra == "all"
|
@@ -5,12 +5,13 @@ ominfra/cmds.py,sha256=E0AfnvEmnKntXWvmLW5L05_NeDpBET1VBXn7vV6EwBQ,2083
|
|
5
5
|
ominfra/configs.py,sha256=gY49bZgAQU1IP3lfLbJxOlEuQcL1tlX3TjyJd-XYHt4,2413
|
6
6
|
ominfra/pyremote.py,sha256=HLfAZl3Xw5CpxLS5PS380zqCyE7n3vKVksIYT2Fbdc8,15197
|
7
7
|
ominfra/ssh.py,sha256=jQpc4WvkMckIfk4vILda8zFaeharRqc_6wxW50b0OjQ,5431
|
8
|
+
ominfra/systemd.py,sha256=sepFytuiRjoWHJbiFH8Ti9zm1gvWBaUXNyvSRiVLi-k,419
|
8
9
|
ominfra/threadworkers.py,sha256=oX4ubZn7h932saXpRIJu2MNhBExgGGMuGhdXarZxLJw,4948
|
9
10
|
ominfra/clouds/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
10
11
|
ominfra/clouds/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
12
|
ominfra/clouds/aws/__main__.py,sha256=HXMoxEl9KHhv6zOOPQxiJAftfR2SjBqeVTYw-og9aFw,163
|
12
13
|
ominfra/clouds/aws/auth.py,sha256=lEVAvJLRW9kHw12fIUbIvZNJxbOPtN1piJMGxE3tJr4,6097
|
13
|
-
ominfra/clouds/aws/cli.py,sha256=
|
14
|
+
ominfra/clouds/aws/cli.py,sha256=BjJFYFUrv9LNoARkv9i8u4X69udikPlJ83_-t1c2ypQ,510
|
14
15
|
ominfra/clouds/aws/dataclasses.py,sha256=rKhtJKJ0JhMssU9n9CABX_JaUiokIboEATJ9TZgZQ6A,3868
|
15
16
|
ominfra/clouds/aws/logs.py,sha256=SvOMv5FeRFhxneIyMXCeieyLFpi6byHUsHwOAhFvT0U,5414
|
16
17
|
ominfra/clouds/aws/metadata.py,sha256=XR1BuMdQheyeFjjA3MN8GCNWVAp5ahoPdbWXEmViutQ,2767
|
@@ -33,7 +34,7 @@ ominfra/manage/bootstrap.py,sha256=1RIRhVkUZjxZcZerHMg8U6xgWhhemGgPN5cDye8dQ68,4
|
|
33
34
|
ominfra/manage/bootstrap_.py,sha256=B9UfR9J7mS3J54PFaSe1MQS5lCnKgxt5dDRJ9mnHYwg,656
|
34
35
|
ominfra/manage/config.py,sha256=1y2N_8nXHBZc6YbW6BaRZoDDCTBmiHuWtTOQ7zdr5VE,184
|
35
36
|
ominfra/manage/inject.py,sha256=_FVaMZUBKi-oObv14H77luWYCodxNJJD1t4pNQzckFE,2030
|
36
|
-
ominfra/manage/main.py,sha256=
|
37
|
+
ominfra/manage/main.py,sha256=t4qilhICLxDCgLXaU6PJ56kINx0YwenWd8SXSSBWKVU,4381
|
37
38
|
ominfra/manage/marshal.py,sha256=WKj7IU9bo4fBMSSzT6ZMm_WFalXIJZ-V7j8oi92fNhk,305
|
38
39
|
ominfra/manage/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
39
40
|
ominfra/manage/commands/base.py,sha256=LtaI0AgnplttQK7gNncNItq8yuTZQimJTaprVpZktI8,3993
|
@@ -49,15 +50,15 @@ ominfra/manage/deploy/commands.py,sha256=U74HYQ4nhvH7znAKyXGOmZfdnll2gMWxKWVW4Gz
|
|
49
50
|
ominfra/manage/deploy/conf.py,sha256=fNfFlIb-bB3KAzaYZcjrbqaqKSiSq0Lpk0mIF6WgXiw,5410
|
50
51
|
ominfra/manage/deploy/config.py,sha256=kPpl8TRisz295cM4oj-RHA6oh5jdcJ_N9pVpkl_doO8,114
|
51
52
|
ominfra/manage/deploy/deploy.py,sha256=vyBTbBm51HhRE-MQNvxEt39F8uOYsB4ToqZ3zmVkpqU,819
|
52
|
-
ominfra/manage/deploy/driver.py,sha256=
|
53
|
+
ominfra/manage/deploy/driver.py,sha256=kSriXFC8L_EpOcHFGxNZDBGyxV_fZAAF95y-czisnwE,1352
|
53
54
|
ominfra/manage/deploy/git.py,sha256=g4wzUuSu9HwWSDhdVX-7BvA2htMwtWbRcHaoDy-xOJ4,3960
|
54
|
-
ominfra/manage/deploy/inject.py,sha256=
|
55
|
-
ominfra/manage/deploy/interp.py,sha256=
|
55
|
+
ominfra/manage/deploy/inject.py,sha256=eTQC8Kyk8S8ogTJqti2lTwD2j7ha5qQG6KxqeIpLoxU,3610
|
56
|
+
ominfra/manage/deploy/interp.py,sha256=_5fuHrY5ZA0eGbnNcOqAhAMSWI1UNvbm0l29eDjE5fI,1037
|
56
57
|
ominfra/manage/deploy/specs.py,sha256=usi5AmTlv8OGFcwhVHnu8Qrz1Criu5QP6_ScNMi9ehM,3748
|
57
58
|
ominfra/manage/deploy/tags.py,sha256=NVEJhHKMwoDuCFd8lInH_jIe99FQILBX3wrulh3GiDg,5166
|
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=1Ic3yKap9bTduqHorz1MpmSiQPh9x-vxhLLxgpVpRdc,1592
|
61
62
|
ominfra/manage/deploy/paths/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
62
63
|
ominfra/manage/deploy/paths/inject.py,sha256=X81C-Qhef1LQ7tILWvkomBwFTvgooLVmWRnKL7TeVoI,596
|
63
64
|
ominfra/manage/deploy/paths/manager.py,sha256=Dnl8euyZQYDGwDzkMvgPAwOssseducr5kP6T0qzVXQk,929
|
@@ -72,7 +73,7 @@ ominfra/manage/remote/connection.py,sha256=T4fL-GXXAfnbCbkZ3_28t8LAwwki4Td3j41eY
|
|
72
73
|
ominfra/manage/remote/execution.py,sha256=_bygZi_0Uel615uIg43S14CTdmv1unEIu9TPz2mVRJ4,11738
|
73
74
|
ominfra/manage/remote/inject.py,sha256=nSNP_VInCCZOWVrUIRHBvLmnM45geFoYmMh-zqc__as,1080
|
74
75
|
ominfra/manage/remote/payload.py,sha256=Rn-Yo26POpHEOOfUHX3jWkqcQVEAvkJ_5Bu13jwoob4,944
|
75
|
-
ominfra/manage/remote/spawning.py,sha256=
|
76
|
+
ominfra/manage/remote/spawning.py,sha256=H4NqyfPr-58V3e495NwlVGRmUfs5sDjNWSKLW7H-mcg,3296
|
76
77
|
ominfra/manage/system/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
77
78
|
ominfra/manage/system/commands.py,sha256=XrYvsxiwTJh17buIWmoFGH8zTUIXmrXvYkLy1INtmkU,1173
|
78
79
|
ominfra/manage/system/config.py,sha256=mEVBL1cy4twO6F0bdnCI01Sm0xuLe1Z5eiAzCvbmoAc,196
|
@@ -87,8 +88,8 @@ ominfra/manage/targets/inject.py,sha256=P4597xWM-V3I_gCt2O71OLhYQkkXtuJvkYRsIbhh
|
|
87
88
|
ominfra/manage/targets/targets.py,sha256=7GP6UAZyJFEhpkJN6UQdpr_WN3p7C76v-s445y-WB6U,1885
|
88
89
|
ominfra/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
89
90
|
ominfra/scripts/journald2aws.py,sha256=yEnBAd0Q_3lBkVoTvlJ_uCcUxz7Ckn2qoSWZVhMihvQ,157696
|
90
|
-
ominfra/scripts/manage.py,sha256=
|
91
|
-
ominfra/scripts/supervisor.py,sha256=
|
91
|
+
ominfra/scripts/manage.py,sha256=r0lrDUnP_YCf-L9dg06kpAzNXURBNSty_uaqnvl8Z2o,327238
|
92
|
+
ominfra/scripts/supervisor.py,sha256=aEngsVXbK7DNEtILJ_eMMlUu113kfT2uFJ-bdbcPTro,281984
|
92
93
|
ominfra/supervisor/LICENSE.txt,sha256=yvqaMNsDhWxziHa9ien6qCW1SkZv-DQlAg96XjfSee8,1746
|
93
94
|
ominfra/supervisor/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
|
94
95
|
ominfra/supervisor/__main__.py,sha256=I0yFw-C08OOiZ3BF6lF1Oiv789EQXu-_j6whDhQUTEA,66
|
@@ -99,7 +100,7 @@ ominfra/supervisor/events.py,sha256=XGrtzHr1xm0dwjz329fn9eR0_Ap-LQL6Sk8LJ8eVDEo,
|
|
99
100
|
ominfra/supervisor/exceptions.py,sha256=Qbu211H3CLlSmi9LsSikOwrcL5HgJP9ugvcKWlGTAoI,750
|
100
101
|
ominfra/supervisor/groups.py,sha256=MBbsbt8Zh_WEYkGOr1KXa82gnPVw9wPB2lAnqhugXSc,2457
|
101
102
|
ominfra/supervisor/groupsimpl.py,sha256=PCDyc_Wc-pnvIj56_aEyiA5exCpK6n9iErqnJzO2rZk,2281
|
102
|
-
ominfra/supervisor/http.py,sha256=
|
103
|
+
ominfra/supervisor/http.py,sha256=_5wiB0DpLzqsPTHn9DkWqhrNSVQSbbIiwsCuSEtosoM,3449
|
103
104
|
ominfra/supervisor/inject.py,sha256=6nBEnpE8VLjtYK12z5DGRP7WzgbwLAz5yf__1KnJl6g,4693
|
104
105
|
ominfra/supervisor/io.py,sha256=moaGNaPuYXEAUzLg8Qjo05DEIcOUNYUj8SSr8eT0d24,3198
|
105
106
|
ominfra/supervisor/main.py,sha256=7YrreFNntdRCp6MplCclfnRcgrRIb_UCeohJkDC9Few,4251
|
@@ -127,12 +128,12 @@ ominfra/supervisor/utils/strings.py,sha256=gZOYiFI3ZQEMrXq6VlK2WadK12JPO6zYjPenq
|
|
127
128
|
ominfra/supervisor/utils/users.py,sha256=PRUhWy74WQCxix4BLNYcWW1i2mF1IyAxj1RzElnP4iM,1345
|
128
129
|
ominfra/tailscale/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
129
130
|
ominfra/tailscale/api.py,sha256=C5-t_b6jZXUWcy5k8bXm7CFnk73pSdrlMOgGDeGVrpw,1370
|
130
|
-
ominfra/tailscale/cli.py,sha256=
|
131
|
+
ominfra/tailscale/cli.py,sha256=3FnJbgpLw6gInTfhERd1mDy9ijjMUGxkdYVo43Tnxx4,3555
|
131
132
|
ominfra/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
132
133
|
ominfra/tools/listresources.py,sha256=4qVg5txsb10EHhvqXXeM6gJ2jx9LbroEnPydDv1uXs0,6176
|
133
|
-
ominfra-0.0.0.
|
134
|
-
ominfra-0.0.0.
|
135
|
-
ominfra-0.0.0.
|
136
|
-
ominfra-0.0.0.
|
137
|
-
ominfra-0.0.0.
|
138
|
-
ominfra-0.0.0.
|
134
|
+
ominfra-0.0.0.dev180.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
135
|
+
ominfra-0.0.0.dev180.dist-info/METADATA,sha256=734lpaoe3ooojHKovGR1Rf6CjQl69ZlvZvCaYr9wLog,731
|
136
|
+
ominfra-0.0.0.dev180.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
137
|
+
ominfra-0.0.0.dev180.dist-info/entry_points.txt,sha256=kgecQ2MgGrM9qK744BoKS3tMesaC3yjLnl9pa5CRczg,37
|
138
|
+
ominfra-0.0.0.dev180.dist-info/top_level.txt,sha256=E-b2OHkk_AOBLXHYZQ2EOFKl-_6uOGd8EjeG-Zy6h_w,8
|
139
|
+
ominfra-0.0.0.dev180.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|