ominfra 0.0.0.dev50__tar.gz → 0.0.0.dev52__tar.gz
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-0.0.0.dev50/ominfra.egg-info → ominfra-0.0.0.dev52}/PKG-INFO +3 -3
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/ssh.py +3 -3
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/tools/listresources.py +18 -13
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52/ominfra.egg-info}/PKG-INFO +3 -3
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra.egg-info/requires.txt +2 -2
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/pyproject.toml +4 -3
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/LICENSE +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/MANIFEST.in +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/README.rst +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/.manifests.json +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/__about__.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/__init__.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/clouds/__init__.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/clouds/aws/__init__.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/clouds/aws/auth.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/cmds.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/deploy/__init__.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/deploy/_executor.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/deploy/configs.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/deploy/executor/__init__.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/deploy/executor/base.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/deploy/executor/concerns/__init__.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/deploy/executor/concerns/dirs.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/deploy/executor/concerns/nginx.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/deploy/executor/concerns/repo.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/deploy/executor/concerns/supervisor.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/deploy/executor/concerns/systemd.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/deploy/executor/concerns/user.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/deploy/executor/concerns/venv.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/deploy/executor/main.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/deploy/poly/__init__.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/deploy/poly/_main.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/deploy/poly/base.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/deploy/poly/configs.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/deploy/poly/deploy.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/deploy/poly/main.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/deploy/poly/nginx.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/deploy/poly/repo.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/deploy/poly/runtime.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/deploy/poly/site.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/deploy/poly/supervisor.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/deploy/poly/venv.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/deploy/remote.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/manage/__init__.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/manage/manage.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/pyremote/__init__.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/pyremote/_runcommands.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/pyremote/bootstrap.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/pyremote/runcommands.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra/tools/__init__.py +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra.egg-info/SOURCES.txt +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra.egg-info/dependency_links.txt +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra.egg-info/entry_points.txt +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/ominfra.egg-info/top_level.txt +0 -0
- {ominfra-0.0.0.dev50 → ominfra-0.0.0.dev52}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ominfra
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev52
|
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.dev52
|
16
|
+
Requires-Dist: omlish==0.0.0.dev52
|
17
17
|
Provides-Extra: all
|
18
18
|
Requires-Dist: paramiko~=3.5; extra == "all"
|
19
19
|
Requires-Dist: asyncssh~=2.17; python_version < "3.13" and extra == "all"
|
@@ -172,9 +172,9 @@ async def _a_main() -> None:
|
|
172
172
|
cfg = load_secrets()
|
173
173
|
|
174
174
|
sc = SshConfig(
|
175
|
-
host=cfg
|
176
|
-
username=cfg
|
177
|
-
key_file_path=cfg
|
175
|
+
host=cfg.get('ec2_ssh_host').reveal(),
|
176
|
+
username=cfg.get('ec2_ssh_user').reveal(),
|
177
|
+
key_file_path=cfg.get('ec2_ssh_key_file').reveal(),
|
178
178
|
)
|
179
179
|
|
180
180
|
for scr in [
|
@@ -12,7 +12,6 @@ unique server ids:
|
|
12
12
|
"""
|
13
13
|
import json
|
14
14
|
import pprint
|
15
|
-
import typing as ta
|
16
15
|
|
17
16
|
import urllib3
|
18
17
|
|
@@ -20,13 +19,14 @@ from omdev.secrets import load_secrets
|
|
20
19
|
from omlish import check
|
21
20
|
from omlish import dataclasses as dc
|
22
21
|
from omlish import lang
|
22
|
+
from omlish import secrets as sec
|
23
23
|
|
24
24
|
|
25
25
|
##
|
26
26
|
|
27
27
|
|
28
28
|
@lang.cached_function
|
29
|
-
def _get_secrets() ->
|
29
|
+
def _get_secrets() -> sec.Secrets:
|
30
30
|
return load_secrets()
|
31
31
|
|
32
32
|
|
@@ -72,9 +72,9 @@ def get_ec2_servers() -> list[Ec2Server]:
|
|
72
72
|
cfg = _get_secrets()
|
73
73
|
import boto3
|
74
74
|
session = boto3.Session(
|
75
|
-
aws_access_key_id=cfg
|
76
|
-
aws_secret_access_key=cfg
|
77
|
-
region_name=cfg
|
75
|
+
aws_access_key_id=cfg.get('aws_access_key_id').reveal(),
|
76
|
+
aws_secret_access_key=cfg.get('aws_secret_access_key').reveal(),
|
77
|
+
region_name=cfg.get('aws_region').reveal(),
|
78
78
|
)
|
79
79
|
ec2 = session.client('ec2')
|
80
80
|
resp = ec2.describe_instances()
|
@@ -103,9 +103,9 @@ def get_rds_instances() -> list[RdsInstance]:
|
|
103
103
|
cfg = _get_secrets()
|
104
104
|
import boto3
|
105
105
|
session = boto3.Session(
|
106
|
-
aws_access_key_id=cfg
|
107
|
-
aws_secret_access_key=cfg
|
108
|
-
region_name=cfg
|
106
|
+
aws_access_key_id=cfg.get('aws_access_key_id').reveal(),
|
107
|
+
aws_secret_access_key=cfg.get('aws_secret_access_key').reveal(),
|
108
|
+
region_name=cfg.get('aws_region').reveal(),
|
109
109
|
)
|
110
110
|
rds = session.client('rds')
|
111
111
|
resp = rds.describe_db_instances()
|
@@ -132,13 +132,17 @@ class GcpServer(Server):
|
|
132
132
|
|
133
133
|
def get_gcp_servers() -> list[GcpServer]:
|
134
134
|
cfg = _get_secrets()
|
135
|
+
creds = cfg.try_get('gcp_oauth2').reveal()
|
136
|
+
|
135
137
|
from google.oauth2 import service_account
|
136
|
-
credentials = service_account.Credentials.from_service_account_info(
|
138
|
+
credentials = service_account.Credentials.from_service_account_info(json.loads(creds))
|
139
|
+
|
137
140
|
from google.cloud import compute_v1
|
138
141
|
instance_client = compute_v1.InstancesClient(credentials=credentials)
|
139
142
|
request = compute_v1.AggregatedListInstancesRequest()
|
140
|
-
request.project = cfg
|
143
|
+
request.project = cfg.get('gcp_project_id').reveal()
|
141
144
|
request.max_results = 50
|
145
|
+
|
142
146
|
out: list[GcpServer] = []
|
143
147
|
for zone, response in instance_client.aggregated_list(request=request):
|
144
148
|
for instance in (response.instances or []):
|
@@ -148,6 +152,7 @@ def get_gcp_servers() -> list[GcpServer]:
|
|
148
152
|
id=instance.name,
|
149
153
|
zone=zone,
|
150
154
|
))
|
155
|
+
|
151
156
|
return out
|
152
157
|
|
153
158
|
|
@@ -160,7 +165,7 @@ class RunpodServer(Server):
|
|
160
165
|
|
161
166
|
|
162
167
|
def get_runpod_servers() -> list[RunpodServer]:
|
163
|
-
api_key = _get_secrets()
|
168
|
+
api_key = _get_secrets().get('runpod_api_key').reveal()
|
164
169
|
query = 'query Pods { myself { pods { id runtime { ports { ip isIpPublic privatePort publicPort type } } } } }'
|
165
170
|
resp = urllib3.request(
|
166
171
|
'POST',
|
@@ -190,7 +195,7 @@ class LambdaLabsServer(Server):
|
|
190
195
|
|
191
196
|
|
192
197
|
def get_lambda_labs_servers() -> list[LambdaLabsServer]:
|
193
|
-
api_key = _get_secrets()
|
198
|
+
api_key = _get_secrets().get('lambda_labs_api_key').reveal()
|
194
199
|
resp = urllib3.request(
|
195
200
|
'GET',
|
196
201
|
'https://cloud.lambdalabs.com/api/v1/instances',
|
@@ -217,7 +222,7 @@ class DigitalOceanServer(Server):
|
|
217
222
|
|
218
223
|
|
219
224
|
def get_digital_ocean_servers() -> list[DigitalOceanServer]:
|
220
|
-
api_key = _get_secrets()
|
225
|
+
api_key = _get_secrets().get('digital_ocean_api_key').reveal()
|
221
226
|
resp = urllib3.request(
|
222
227
|
'GET',
|
223
228
|
'https://api.digitalocean.com/v2/droplets',
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ominfra
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev52
|
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.dev52
|
16
|
+
Requires-Dist: omlish==0.0.0.dev52
|
17
17
|
Provides-Extra: all
|
18
18
|
Requires-Dist: paramiko~=3.5; extra == "all"
|
19
19
|
Requires-Dist: asyncssh~=2.17; python_version < "3.13" and extra == "all"
|
@@ -12,7 +12,7 @@ authors = [
|
|
12
12
|
urls = {source = 'https://github.com/wrmsr/omlish'}
|
13
13
|
license = {text = 'BSD-3-Clause'}
|
14
14
|
requires-python = '~=3.12'
|
15
|
-
version = '0.0.0.
|
15
|
+
version = '0.0.0.dev52'
|
16
16
|
classifiers = [
|
17
17
|
'License :: OSI Approved :: BSD License',
|
18
18
|
'Development Status :: 2 - Pre-Alpha',
|
@@ -22,8 +22,8 @@ classifiers = [
|
|
22
22
|
]
|
23
23
|
description = 'ominfra'
|
24
24
|
dependencies = [
|
25
|
-
'omdev == 0.0.0.
|
26
|
-
'omlish == 0.0.0.
|
25
|
+
'omdev == 0.0.0.dev52',
|
26
|
+
'omlish == 0.0.0.dev52',
|
27
27
|
]
|
28
28
|
|
29
29
|
[project.optional-dependencies]
|
@@ -56,6 +56,7 @@ exclude = [
|
|
56
56
|
'*.c',
|
57
57
|
'*.cc',
|
58
58
|
'*.cu',
|
59
|
+
'*.g4',
|
59
60
|
'*.h',
|
60
61
|
'.manifests.json',
|
61
62
|
'LICENSE',
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|