ominfra 0.0.0.dev179__py3-none-any.whl → 0.0.0.dev180__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- ominfra/clouds/aws/cli.py +1 -1
- ominfra/manage/main.py +2 -2
- ominfra/manage/remote/spawning.py +1 -1
- ominfra/scripts/manage.py +29 -29
- ominfra/scripts/supervisor.py +80 -74
- ominfra/supervisor/http.py +1 -1
- ominfra/systemd.py +18 -0
- ominfra/tailscale/cli.py +4 -4
- {ominfra-0.0.0.dev179.dist-info → ominfra-0.0.0.dev180.dist-info}/METADATA +3 -3
- {ominfra-0.0.0.dev179.dist-info → ominfra-0.0.0.dev180.dist-info}/RECORD +14 -13
- {ominfra-0.0.0.dev179.dist-info → ominfra-0.0.0.dev180.dist-info}/LICENSE +0 -0
- {ominfra-0.0.0.dev179.dist-info → ominfra-0.0.0.dev180.dist-info}/WHEEL +0 -0
- {ominfra-0.0.0.dev179.dist-info → ominfra-0.0.0.dev180.dist-info}/entry_points.txt +0 -0
- {ominfra-0.0.0.dev179.dist-info → ominfra-0.0.0.dev180.dist-info}/top_level.txt +0 -0
ominfra/clouds/aws/cli.py
CHANGED
ominfra/manage/main.py
CHANGED
@@ -14,7 +14,7 @@ import typing as ta
|
|
14
14
|
|
15
15
|
from omlish.argparse.cli import ArgparseCli
|
16
16
|
from omlish.argparse.cli import argparse_arg
|
17
|
-
from omlish.argparse.cli import
|
17
|
+
from omlish.argparse.cli import argparse_cmd
|
18
18
|
from omlish.lite.cached import cached_nullary
|
19
19
|
from omlish.lite.check import check
|
20
20
|
from omlish.lite.logs import log # noqa
|
@@ -55,7 +55,7 @@ class MainCli(ArgparseCli):
|
|
55
55
|
|
56
56
|
#
|
57
57
|
|
58
|
-
@
|
58
|
+
@argparse_cmd(
|
59
59
|
argparse_arg('--_payload-file'),
|
60
60
|
|
61
61
|
argparse_arg('--pycharm-debug-port', type=int),
|
@@ -9,7 +9,7 @@ import typing as ta
|
|
9
9
|
|
10
10
|
from omlish.asyncs.asyncio.subprocesses import asyncio_subprocesses
|
11
11
|
from omlish.lite.check import check
|
12
|
-
from omlish.
|
12
|
+
from omlish.shlex import shlex_maybe_quote
|
13
13
|
from omlish.subprocesses import SUBPROCESS_CHANNEL_OPTION_VALUES
|
14
14
|
from omlish.subprocesses import SubprocessChannelOption
|
15
15
|
|
ominfra/scripts/manage.py
CHANGED
@@ -111,7 +111,7 @@ CommandT = ta.TypeVar('CommandT', bound='Command')
|
|
111
111
|
CommandOutputT = ta.TypeVar('CommandOutputT', bound='Command.Output')
|
112
112
|
|
113
113
|
# ../../omlish/argparse/cli.py
|
114
|
-
|
114
|
+
ArgparseCmdFn = ta.Callable[[], ta.Optional[int]] # ta.TypeAlias
|
115
115
|
|
116
116
|
# ../../omlish/lite/contextmanagers.py
|
117
117
|
ExitStackedT = ta.TypeVar('ExitStackedT', bound='ExitStacked')
|
@@ -2766,21 +2766,6 @@ def read_package_resource_text(package: str, resource: str) -> str:
|
|
2766
2766
|
return importlib.resources.read_text(package, resource)
|
2767
2767
|
|
2768
2768
|
|
2769
|
-
########################################
|
2770
|
-
# ../../../omlish/lite/shlex.py
|
2771
|
-
|
2772
|
-
|
2773
|
-
def shlex_needs_quote(s: str) -> bool:
|
2774
|
-
return bool(s) and len(list(shlex.shlex(s))) > 1
|
2775
|
-
|
2776
|
-
|
2777
|
-
def shlex_maybe_quote(s: str) -> str:
|
2778
|
-
if shlex_needs_quote(s):
|
2779
|
-
return shlex.quote(s)
|
2780
|
-
else:
|
2781
|
-
return s
|
2782
|
-
|
2783
|
-
|
2784
2769
|
########################################
|
2785
2770
|
# ../../../omlish/lite/strings.py
|
2786
2771
|
|
@@ -3580,6 +3565,21 @@ def relative_symlink(
|
|
3580
3565
|
)
|
3581
3566
|
|
3582
3567
|
|
3568
|
+
########################################
|
3569
|
+
# ../../../omlish/shlex.py
|
3570
|
+
|
3571
|
+
|
3572
|
+
def shlex_needs_quote(s: str) -> bool:
|
3573
|
+
return bool(s) and len(list(shlex.shlex(s))) > 1
|
3574
|
+
|
3575
|
+
|
3576
|
+
def shlex_maybe_quote(s: str) -> str:
|
3577
|
+
if shlex_needs_quote(s):
|
3578
|
+
return shlex.quote(s)
|
3579
|
+
else:
|
3580
|
+
return s
|
3581
|
+
|
3582
|
+
|
3583
3583
|
########################################
|
3584
3584
|
# ../../../omdev/packaging/specifiers.py
|
3585
3585
|
# Copyright (c) Donald Stufft and individual contributors.
|
@@ -4546,15 +4546,15 @@ def argparse_arg(*args, **kwargs) -> ArgparseArg:
|
|
4546
4546
|
|
4547
4547
|
|
4548
4548
|
@dc.dataclass(eq=False)
|
4549
|
-
class
|
4549
|
+
class ArgparseCmd:
|
4550
4550
|
name: str
|
4551
|
-
fn:
|
4551
|
+
fn: ArgparseCmdFn
|
4552
4552
|
args: ta.Sequence[ArgparseArg] = () # noqa
|
4553
4553
|
|
4554
4554
|
# _: dc.KW_ONLY
|
4555
4555
|
|
4556
4556
|
aliases: ta.Optional[ta.Sequence[str]] = None
|
4557
|
-
parent: ta.Optional['
|
4557
|
+
parent: ta.Optional['ArgparseCmd'] = None
|
4558
4558
|
accepts_unknown: bool = False
|
4559
4559
|
|
4560
4560
|
def __post_init__(self) -> None:
|
@@ -4569,7 +4569,7 @@ class ArgparseCommand:
|
|
4569
4569
|
|
4570
4570
|
check.arg(callable(self.fn))
|
4571
4571
|
check.arg(all(isinstance(a, ArgparseArg) for a in self.args))
|
4572
|
-
check.isinstance(self.parent, (
|
4572
|
+
check.isinstance(self.parent, (ArgparseCmd, type(None)))
|
4573
4573
|
check.isinstance(self.accepts_unknown, bool)
|
4574
4574
|
|
4575
4575
|
functools.update_wrapper(self, self.fn)
|
@@ -4583,21 +4583,21 @@ class ArgparseCommand:
|
|
4583
4583
|
return self.fn(*args, **kwargs)
|
4584
4584
|
|
4585
4585
|
|
4586
|
-
def
|
4586
|
+
def argparse_cmd(
|
4587
4587
|
*args: ArgparseArg,
|
4588
4588
|
name: ta.Optional[str] = None,
|
4589
4589
|
aliases: ta.Optional[ta.Iterable[str]] = None,
|
4590
|
-
parent: ta.Optional[
|
4590
|
+
parent: ta.Optional[ArgparseCmd] = None,
|
4591
4591
|
accepts_unknown: bool = False,
|
4592
|
-
) -> ta.Any: # ta.Callable[[
|
4592
|
+
) -> ta.Any: # ta.Callable[[ArgparseCmdFn], ArgparseCmd]: # FIXME
|
4593
4593
|
for arg in args:
|
4594
4594
|
check.isinstance(arg, ArgparseArg)
|
4595
4595
|
check.isinstance(name, (str, type(None)))
|
4596
|
-
check.isinstance(parent, (
|
4596
|
+
check.isinstance(parent, (ArgparseCmd, type(None)))
|
4597
4597
|
check.not_isinstance(aliases, str)
|
4598
4598
|
|
4599
4599
|
def inner(fn):
|
4600
|
-
return
|
4600
|
+
return ArgparseCmd(
|
4601
4601
|
(name if name is not None else fn.__name__).replace('_', '-'),
|
4602
4602
|
fn,
|
4603
4603
|
args,
|
@@ -4652,7 +4652,7 @@ class ArgparseCli:
|
|
4652
4652
|
for bns in [bcls.__dict__ for bcls in reversed(mro)] + [ns]:
|
4653
4653
|
bseen = set() # type: ignore
|
4654
4654
|
for k, v in bns.items():
|
4655
|
-
if isinstance(v, (
|
4655
|
+
if isinstance(v, (ArgparseCmd, ArgparseArg)):
|
4656
4656
|
check.not_in(v, bseen)
|
4657
4657
|
bseen.add(v)
|
4658
4658
|
objs[k] = v
|
@@ -4679,7 +4679,7 @@ class ArgparseCli:
|
|
4679
4679
|
subparsers = parser.add_subparsers()
|
4680
4680
|
|
4681
4681
|
for att, obj in objs.items():
|
4682
|
-
if isinstance(obj,
|
4682
|
+
if isinstance(obj, ArgparseCmd):
|
4683
4683
|
if obj.parent is not None:
|
4684
4684
|
raise NotImplementedError
|
4685
4685
|
|
@@ -4741,7 +4741,7 @@ class ArgparseCli:
|
|
4741
4741
|
|
4742
4742
|
#
|
4743
4743
|
|
4744
|
-
def _bind_cli_cmd(self, cmd:
|
4744
|
+
def _bind_cli_cmd(self, cmd: ArgparseCmd) -> ta.Callable:
|
4745
4745
|
return cmd.__get__(self, type(self))
|
4746
4746
|
|
4747
4747
|
def prepare_cli_run(self) -> ta.Optional[ta.Callable]:
|
@@ -11570,7 +11570,7 @@ class MainCli(ArgparseCli):
|
|
11570
11570
|
|
11571
11571
|
#
|
11572
11572
|
|
11573
|
-
@
|
11573
|
+
@argparse_cmd(
|
11574
11574
|
argparse_arg('--_payload-file'),
|
11575
11575
|
|
11576
11576
|
argparse_arg('--pycharm-debug-port', type=int),
|
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
|
|
@@ -5829,6 +5810,31 @@ def journald_log_handler_factory(
|
|
5829
5810
|
return logging.StreamHandler()
|
5830
5811
|
|
5831
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
|
+
|
5832
5838
|
########################################
|
5833
5839
|
# ../../configs.py
|
5834
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
|
@@ -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
|