golem-vm-provider 0.1.18__tar.gz → 0.1.19__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.
- {golem_vm_provider-0.1.18 → golem_vm_provider-0.1.19}/PKG-INFO +1 -1
- {golem_vm_provider-0.1.18 → golem_vm_provider-0.1.19}/provider/main.py +6 -2
- {golem_vm_provider-0.1.18 → golem_vm_provider-0.1.19}/provider/vm/proxy_manager.py +19 -6
- {golem_vm_provider-0.1.18 → golem_vm_provider-0.1.19}/pyproject.toml +1 -1
- {golem_vm_provider-0.1.18 → golem_vm_provider-0.1.19}/README.md +0 -0
- {golem_vm_provider-0.1.18 → golem_vm_provider-0.1.19}/provider/__init__.py +0 -0
- {golem_vm_provider-0.1.18 → golem_vm_provider-0.1.19}/provider/api/__init__.py +0 -0
- {golem_vm_provider-0.1.18 → golem_vm_provider-0.1.19}/provider/api/models.py +0 -0
- {golem_vm_provider-0.1.18 → golem_vm_provider-0.1.19}/provider/api/routes.py +0 -0
- {golem_vm_provider-0.1.18 → golem_vm_provider-0.1.19}/provider/config.py +0 -0
- {golem_vm_provider-0.1.18 → golem_vm_provider-0.1.19}/provider/discovery/__init__.py +0 -0
- {golem_vm_provider-0.1.18 → golem_vm_provider-0.1.19}/provider/discovery/advertiser.py +0 -0
- {golem_vm_provider-0.1.18 → golem_vm_provider-0.1.19}/provider/discovery/resource_tracker.py +0 -0
- {golem_vm_provider-0.1.18 → golem_vm_provider-0.1.19}/provider/network/port_verifier.py +0 -0
- {golem_vm_provider-0.1.18 → golem_vm_provider-0.1.19}/provider/security/ethereum.py +0 -0
- {golem_vm_provider-0.1.18 → golem_vm_provider-0.1.19}/provider/utils/ascii_art.py +0 -0
- {golem_vm_provider-0.1.18 → golem_vm_provider-0.1.19}/provider/utils/logging.py +0 -0
- {golem_vm_provider-0.1.18 → golem_vm_provider-0.1.19}/provider/utils/port_display.py +0 -0
- {golem_vm_provider-0.1.18 → golem_vm_provider-0.1.19}/provider/utils/retry.py +0 -0
- {golem_vm_provider-0.1.18 → golem_vm_provider-0.1.19}/provider/utils/setup.py +0 -0
- {golem_vm_provider-0.1.18 → golem_vm_provider-0.1.19}/provider/vm/__init__.py +0 -0
- {golem_vm_provider-0.1.18 → golem_vm_provider-0.1.19}/provider/vm/cloud_init.py +0 -0
- {golem_vm_provider-0.1.18 → golem_vm_provider-0.1.19}/provider/vm/models.py +0 -0
- {golem_vm_provider-0.1.18 → golem_vm_provider-0.1.19}/provider/vm/multipass.py +0 -0
- {golem_vm_provider-0.1.18 → golem_vm_provider-0.1.19}/provider/vm/name_mapper.py +0 -0
- {golem_vm_provider-0.1.18 → golem_vm_provider-0.1.19}/provider/vm/port_manager.py +0 -0
@@ -31,11 +31,15 @@ async def setup_provider() -> None:
|
|
31
31
|
provider = MultipassProvider(resource_tracker, port_manager=port_manager)
|
32
32
|
try:
|
33
33
|
await asyncio.wait_for(provider.initialize(), timeout=30)
|
34
|
-
app.state.provider = provider
|
35
34
|
|
36
|
-
# Store proxy manager
|
35
|
+
# Store provider and proxy manager references
|
36
|
+
app.state.provider = provider
|
37
37
|
app.state.proxy_manager = provider.proxy_manager
|
38
38
|
|
39
|
+
# Restore proxy configurations
|
40
|
+
logger.process("🔄 Restoring proxy configurations...")
|
41
|
+
await app.state.proxy_manager._load_state()
|
42
|
+
|
39
43
|
except asyncio.TimeoutError:
|
40
44
|
logger.error("Provider initialization timed out")
|
41
45
|
raise
|
@@ -158,18 +158,31 @@ class PythonProxyManager:
|
|
158
158
|
self.port_manager = port_manager
|
159
159
|
self.state_file = state_file or os.path.expanduser("~/.golem/provider/proxy_state.json")
|
160
160
|
self._proxies: Dict[str, ProxyServer] = {} # vm_id -> ProxyServer
|
161
|
-
|
161
|
+
# Note: _load_state is now async and will be called explicitly during provider setup
|
162
162
|
|
163
|
-
def _load_state(self) -> None:
|
164
|
-
"""Load proxy state from file."""
|
163
|
+
async def _load_state(self) -> None:
|
164
|
+
"""Load and restore proxy state from file."""
|
165
165
|
try:
|
166
166
|
state_path = Path(self.state_file)
|
167
167
|
if state_path.exists():
|
168
168
|
with open(state_path, 'r') as f:
|
169
169
|
state = json.load(f)
|
170
|
-
#
|
171
|
-
|
172
|
-
|
170
|
+
# Restore proxy servers from saved state
|
171
|
+
restore_tasks = []
|
172
|
+
for vm_id, proxy_info in state.items():
|
173
|
+
# Create task to restore proxy
|
174
|
+
task = self.add_vm(
|
175
|
+
vm_id=vm_id,
|
176
|
+
vm_ip=proxy_info['target'],
|
177
|
+
port=proxy_info['port']
|
178
|
+
)
|
179
|
+
restore_tasks.append(task)
|
180
|
+
|
181
|
+
# Wait for all proxies to be restored
|
182
|
+
if restore_tasks:
|
183
|
+
results = await asyncio.gather(*restore_tasks, return_exceptions=True)
|
184
|
+
successful = sum(1 for r in results if r is True)
|
185
|
+
logger.info(f"Restored {successful}/{len(state)} proxy configurations")
|
173
186
|
except Exception as e:
|
174
187
|
logger.error(f"Failed to load proxy state: {e}")
|
175
188
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "golem-vm-provider"
|
3
|
-
version = "0.1.
|
3
|
+
version = "0.1.19"
|
4
4
|
description = "VM on Golem Provider Node - Run your own provider node to offer VMs on the Golem Network"
|
5
5
|
authors = ["Phillip Jensen <phillip+vm-on-golem@golemgrid.com>"]
|
6
6
|
readme = "README.md"
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{golem_vm_provider-0.1.18 → golem_vm_provider-0.1.19}/provider/discovery/resource_tracker.py
RENAMED
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
|